diff --git a/Pods/Braintree/Braintree/API/@Public/BTAppSwitchErrors.h b/Pods/Braintree/Braintree/API/@Public/BTAppSwitchErrors.h deleted file mode 100644 index e586244..0000000 --- a/Pods/Braintree/Braintree/API/@Public/BTAppSwitchErrors.h +++ /dev/null @@ -1,38 +0,0 @@ -#import - -/// App Switch NSError Domain -extern NSString *const BTAppSwitchErrorDomain; - -/// App Switch NSError Codes -typedef NS_ENUM(NSInteger, BTAppSwitchErrorCode) { - BTAppSwitchErrorUnknown = 0, - - /// A compatible version of the target app is not available on this device. - BTAppSwitchErrorAppNotAvailable = 1, - - /// App switch is not enabled. - BTAppSwitchErrorDisabled = 2, - - /// App switch is not configured appropriately. You must specify a - /// returnURLScheme via Braintree before attempting an app switch. - BTAppSwitchErrorIntegrationReturnURLScheme = 3, - - /// The merchant ID field was not valid or present in the client token. - BTAppSwitchErrorIntegrationMerchantId = 4, - - /// UIApplication failed to switch despite it being available. - /// `[UIApplication openURL:]` returned `NO` when `YES` was expected. - BTAppSwitchErrorFailed = 5, - - /// App switch completed, but the client encountered an error while attempting - /// to communicate with the Braintree server. - /// Check for a `NSUnderlyingError` value in the `userInfo` dictionary for information - /// about the underlying cause. - BTAppSwitchErrorFailureFetchingPaymentMethod = 6, - - /// Parameters used to initiate app switch are invalid - BTAppSwitchErrorIntegrationInvalidParameters = 7, - - /// Invalid CFBundleDisplayName - BTAppSwitchErrorIntegrationInvalidBundleDisplayName = 8, -}; diff --git a/Pods/Braintree/Braintree/API/@Public/BTAppSwitching.h b/Pods/Braintree/Braintree/API/@Public/BTAppSwitching.h deleted file mode 100644 index e5d763b..0000000 --- a/Pods/Braintree/Braintree/API/@Public/BTAppSwitching.h +++ /dev/null @@ -1,59 +0,0 @@ -#import - -#import "BTClient.h" -#import "BTAppSwitchingDelegate.h" - -NS_ASSUME_NONNULL_BEGIN - -@protocol BTAppSwitching - -/// The custom URL scheme that the authenticating app should use to return users to your app via `openURL:` (app switch). -/// -/// When `nil`, One Touch app switch will be disabled -/// -/// @note This must match the entry in your app's Info.plist, and must be prefixed -/// with your Bundle ID, e.g. com.yourcompany.Your-App.payment -@property (nonatomic, copy) NSString *returnURLScheme; - -/// A delegate that receives messages throughout the app switch cycle -@property (nonatomic, weak) iddelegate; - -/// Checks integration setup and presence of app on device to determine -/// if app switch is available for the given client. -/// -/// @param client A BTClient -/// -/// @return Whether app switch is available -- (BOOL)appSwitchAvailableForClient:(BTClient*)client; - -/// Attempt to initiate app switch -/// -/// @param client A BTClient needed for obtaining app switch configuration, -/// reporting analytics events, and performing post-switch -/// gateway operations. -/// @param delegate A delegate that will receive messags throughout the app -/// switch cycle after successful initiation. -/// -/// @param error Error encountered in attempting to app switch if applicable. -/// -/// @return whether app switch is occurring. -- (BOOL)initiateAppSwitchWithClient:(BTClient *)client delegate:(id)delegate error:(NSError * __autoreleasing *)error; - -/// Whether this instance can be used to handle this response URL. -/// -/// @param url A URL string. -/// @param sourceApplication The source application. -/// -/// @return Whether this instance can handle the given callback URL from -/// the given source application. -- (BOOL)canHandleReturnURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication; - -/// Handle the actual response URL that contains payment authorization, -/// indication of cancellation, or error information. -/// -/// @param url The callback response URL. -- (void)handleReturnURL:(NSURL *)url; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/Braintree/Braintree/API/@Public/BTAppSwitchingDelegate.h b/Pods/Braintree/Braintree/API/@Public/BTAppSwitchingDelegate.h deleted file mode 100644 index a98af6e..0000000 --- a/Pods/Braintree/Braintree/API/@Public/BTAppSwitchingDelegate.h +++ /dev/null @@ -1,29 +0,0 @@ -#import - -#import "BTPaymentMethod.h" - -@protocol BTAppSwitching; - -/// Delegate protocol for receiving messages about state changes to an app switch handler -@protocol BTAppSwitchingDelegate - -@optional - -/// This message is sent when the user has authorized payment, and the payment method -/// is about to be created. -- (void)appSwitcherWillCreatePaymentMethod:(id)switcher; - -@required - -/// This message is sent when a payment method has been authorized and is available. -- (void)appSwitcher:(id)switcher didCreatePaymentMethod:(BTPaymentMethod *)paymentMethod; - -/// This message is sent when the payment method could not be created. -- (void)appSwitcher:(id)switcher didFailWithError:(NSError *)error; - -/// This message is sent when the payment was cancelled. -- (void)appSwitcherDidCancel:(id)switcher; - -@end - - diff --git a/Pods/Braintree/Braintree/API/@Public/BTApplePayPaymentMethod.h b/Pods/Braintree/Braintree/API/@Public/BTApplePayPaymentMethod.h deleted file mode 100644 index 2eb91d2..0000000 --- a/Pods/Braintree/Braintree/API/@Public/BTApplePayPaymentMethod.h +++ /dev/null @@ -1,19 +0,0 @@ -#if BT_ENABLE_APPLE_PAY -@import PassKit; - -#import "BTPaymentMethod.h" - -/// The server-side resource that represents a payment method created via Apple Pay. -@interface BTApplePayPaymentMethod : BTPaymentMethod - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -@property (nonatomic, readonly) ABRecordRef billingAddress; -@property (nonatomic, readonly) ABRecordRef shippingAddress; -#pragma clang diagnostic pop -@property (nonatomic, readonly, strong) PKContact *billingContact; -@property (nonatomic, readonly, strong) PKContact *shippingContact; -@property (nonatomic, strong, readonly) PKShippingMethod *shippingMethod; - -@end -#endif diff --git a/Pods/Braintree/Braintree/API/@Public/BTCardPaymentMethod.h b/Pods/Braintree/Braintree/API/@Public/BTCardPaymentMethod.h deleted file mode 100644 index c154854..0000000 --- a/Pods/Braintree/Braintree/API/@Public/BTCardPaymentMethod.h +++ /dev/null @@ -1,37 +0,0 @@ -#import - -#import "BTPaymentMethod.h" - -/// Card type -typedef NS_ENUM(NSInteger, BTCardType) { - BTCardTypeUnknown = 0, - BTCardTypeAMEX, - BTCardTypeDinersClub, - BTCardTypeDiscover, - BTCardTypeMasterCard, - BTCardTypeVisa, - BTCardTypeJCB, - BTCardTypeLaser, - BTCardTypeMaestro, - BTCardTypeUnionPay, - BTCardTypeSolo, - BTCardTypeSwitch, - BTCardTypeUKMaestro, -}; - -/// A payment method returned by the Client API that represents a Card associated with -/// a particular Braintree customer. -/// -/// See also: BTPaymentMethod and BTMutableCardPaymentMethod. -@interface BTCardPaymentMethod : BTPaymentMethod - -/// Type of card -@property (nonatomic, readonly, assign) BTCardType type; - -/// String representation of type -@property (nonatomic, readonly, copy) NSString *typeString; - -/// Last two digits of the card -@property (nonatomic, readonly, copy) NSString *lastTwo; - -@end diff --git a/Pods/Braintree/Braintree/API/@Public/BTClient+Offline.h b/Pods/Braintree/Braintree/API/@Public/BTClient+Offline.h deleted file mode 100644 index efeec6d..0000000 --- a/Pods/Braintree/Braintree/API/@Public/BTClient+Offline.h +++ /dev/null @@ -1,20 +0,0 @@ -#import "BTClient.h" - -/// Category for offline-only BTClient methods -/// -/// Do not use this in production. -/// -/// @see BTOfflineModeURLProtocol -@interface BTClient (Offline) - -/// Obtain a client token only for use in offline development and testing. It looks as if -/// it were generated by a server-side client library, but it causes the iOS code to run -/// offline mode with no network dependencies and faked behavior. -/// -/// @param configuration Optional additional client token parameters (useful for extensions to -/// `BTClient` that rely on the contents of the client token) -/// -/// @return client token string -+ (NSString *)offlineTestClientTokenWithAdditionalParameters:(NSDictionary *)configuration DEPRECATED_MSG_ATTRIBUTE("Offline BTClient is no longer supported. Please use a real client token by on your server. (See https://developers.braintreepayments.com/ios/sdk/overview/generate-client-token)"); - -@end diff --git a/Pods/Braintree/Braintree/API/@Public/BTClient+Testing.h b/Pods/Braintree/Braintree/API/@Public/BTClient+Testing.h deleted file mode 100644 index 6ad57ea..0000000 --- a/Pods/Braintree/Braintree/API/@Public/BTClient+Testing.h +++ /dev/null @@ -1,51 +0,0 @@ -#import "BTClient.h" - -/// BTClient test configuration keys -/// To be used in testing and customizing Braintree configuration -extern NSString *BTClientTestConfigurationKeyMerchantIdentifier; -extern NSString *BTClientTestConfigurationKeyPublicKey; -extern NSString *BTClientTestConfigurationKeyCustomer; -extern NSString *BTClientTestConfigurationKeyNoCustomer; -extern NSString *BTClientTestConfigurationKeySharedCustomerIdentifier; -extern NSString *BTClientTestConfigurationKeySharedCustomerIdentifierType; -extern NSString *BTClientTestConfigurationKeyRevoked; -extern NSString *BTClientTestConfigurationKeyClientTokenVersion; -extern NSString *BTClientTestConfigurationKeyAnalytics; -extern NSString *BTClientTestConfigurationKeyURL; -extern NSString *BTClientTestConfigurationKeyMerchantAccountIdentifier; - -/// Block type that takes an `NSDictionary` that will contain `nonce` info. -typedef void (^BTClientNonceInfoSuccessBlock)(NSDictionary *nonceInfo); - -/// Extensions on `BTClient` for utilizing the testing endpoints in the Gateway -/// in order to perform integration tests without a dedicated merchant server. -/// -/// @warnings These methods will not work outside of Braintree. -@interface BTClient (Testing) - -/// Obtain a client for integration testing with the attributes specified by the configuration dictionary. -/// -/// This method actually makes a request against the gateway in order our integration test suite to create -/// a client without a merchant server that generates real client tokens. -+ (void)testClientWithConfiguration:(NSDictionary *)configurationDictionary async:(BOOL)async completion:(void (^)(BTClient * client))block; - -/// Invokes Success block with Nonce Info if a Nonce is found. -- (void)fetchNonceInfo:(NSString *)nonce success:(BTClientNonceInfoSuccessBlock)successBlock failure:(BTClientFailureBlock)failureBlock; - -/// Invokes Success block with Nonce Info if a Nonce is found. -- (void)fetchNonceThreeDSecureVerificationInfo:(NSString *)nonce success:(BTClientNonceInfoSuccessBlock)successBlock failure:(BTClientFailureBlock)failureBlock; - -/// Ask the gateway to revoke the current authorization fingerprint -/// -/// Available internally at Braintree for testing only -- (void)revokeAuthorizationFingerprintForTestingWithSuccess:(void (^)(void))successBlock - failure:(BTClientFailureBlock)failureBlock; - -/// Update coinbase merchant options for testing -/// -/// Available internally at Braintree for testing only -- (void)updateCoinbaseMerchantOptions:(NSDictionary *)dictionary - success:(void (^)(void))successBlock - failure:(BTClientFailureBlock)failureBlock; - -@end diff --git a/Pods/Braintree/Braintree/API/@Public/BTClient.h b/Pods/Braintree/Braintree/API/@Public/BTClient.h deleted file mode 100644 index 5c1643c..0000000 --- a/Pods/Braintree/Braintree/API/@Public/BTClient.h +++ /dev/null @@ -1,215 +0,0 @@ -#import - -#import "BTCardPaymentMethod.h" -#import "BTPayPalPaymentMethod.h" - -#import "BTApplePayPaymentMethod.h" -#import "BTCoinbasePaymentMethod.h" - -#import "BTErrors.h" -#import "BTClientCardRequest.h" - -NS_ASSUME_NONNULL_BEGIN - -@class BTClient, BTCoinbasePaymentMethod; - -#pragma mark Types - -/// Block type that takes an `NSArray` of `BTPaymentMethod`s -#if (defined(__clang__) && __has_feature(objc_generics)) -typedef void (^BTClientPaymentMethodListSuccessBlock)(NSArray *paymentMethods); -#else -typedef void (^BTClientPaymentMethodListSuccessBlock)(NSArray *paymentMethods); -#endif - -/// Block type that takes a single `BTPaymentMethod` -typedef void (^BTClientPaymentMethodSuccessBlock)(BTPaymentMethod *paymentMethod); - -/// Block type that takes a `BTCardPaymentMethod` -typedef void (^BTClientCardSuccessBlock)(BTCardPaymentMethod *card); - -#if BT_ENABLE_APPLE_PAY -/// Success Block type for the Save Apple Pay call -typedef void (^BTClientApplePaySuccessBlock)(BTApplePayPaymentMethod *applePayPaymentMethod); -#endif - -/// Success Block type for the Save Paypal call -typedef void (^BTClientPaypalSuccessBlock)(BTPayPalPaymentMethod *paypalPaymentMethod); - -/// Success Block type for the Save Coinbase call -typedef void (^BTClientCoinbaseSuccessBlock)(BTCoinbasePaymentMethod *coinbasePaymentMethod); - -/// Success Block type for analytics events -typedef void (^BTClientAnalyticsSuccessBlock)(void); - -/// Block type for handling `BTClient` errors -typedef void (^BTClientFailureBlock)(NSError *error); - -/// A `BTClient` performs Braintree API operations and returns -/// resulting responses or errors. It is the entry-point for all -/// communication with Braintree. -@interface BTClient : NSObject - -/// Initialize and configure a `BTClient` with a client token. -/// The client token dictates the behavior of subsequent operations. -/// -/// @param clientTokenString Braintree client token -- (nullable instancetype)initWithClientToken:(NSString *)clientTokenString; - -/// The set of challenges that need to be provided to `saveCardWithNumber` -/// in order to save a card. This is dependent upon on your Gateway settings -/// (potentially among other factors). -@property (nonatomic, nullable, readonly) NSSet *challenges; - -/// The public Braintree Merchant ID for which this client -/// was initialized. -@property (nonatomic, nullable, copy, readonly) NSString *merchantId; - -/// A set of strings denoting additional scopes to use when authorizing a PayPal account. -/// See PayPalOAuthScopes.h for a list of available scopes. -#if (defined(__clang__) && __has_feature(objc_generics)) -@property (nonatomic, nullable, copy) NSSet *additionalPayPalScopes; -#else -@property (nonatomic, nullable, copy) NSSet *additionalPayPalScopes; -#endif - -#pragma mark - Fetch a Payment Method - -/// Obtain a list of payment methods saved to Braintree -/// -/// @param successBlock success callback for handling the returned list of payment methods -/// @param failureBlock failure callback for handling errors -- (void)fetchPaymentMethodsWithSuccess:(nullable BTClientPaymentMethodListSuccessBlock)successBlock - failure:(nullable BTClientFailureBlock)failureBlock; - -/// Obtain information about a payment method based on a nonce -/// -/// @param successBlock success callback for handling the retrieved payment methods -/// @param failureBlock failure callback for handling errors -- (void)fetchPaymentMethodWithNonce:(NSString *)nonce - success:(nullable BTClientPaymentMethodSuccessBlock)successBlock - failure:(nullable BTClientFailureBlock)failureBlock; - -#pragma mark Save a New Payment Method - -/// Save a card to Braintree -/// -/// @param request an object that includes the raw card details -/// @param successBlock success callback for handling the resulting new card -/// @param failureBlock failure callback for handling errors -/// -/// @see challenges -- (void)saveCardWithRequest:(BTClientCardRequest *)request - success:(nullable BTClientCardSuccessBlock)successBlock - failure:(nullable BTClientFailureBlock)failureBlock; - -#if BT_ENABLE_APPLE_PAY -/// Save a payment method created via Apple Pay -/// -/// @param payment A `PKPayment` instance -/// @param successBlock success callback for handling the resulting payment method -/// @param failureBlock failure callback for handling errors -- (void)saveApplePayPayment:(PKPayment *)payment - success:(nullable BTClientApplePaySuccessBlock)successBlock - failure:(nullable BTClientFailureBlock)failureBlock; -#endif - -/// Save a paypal payment method to Braintree -/// -/// @param authCode Authorization Code -/// @param applicationCorrelationId PayPal App Correlation Id (See `-[BTClient btPayPal_applicationCorrelationId]` and https://github.com/paypal/PayPal-iOS-SDK/blob/master/docs/future_payments_mobile.md#obtain-an-application-correlation-id.) -/// @param successBlock success callback for handling the resulting new PayPal account payment method -/// @param failureBlock failure callback for handling errors -- (void)savePaypalPaymentMethodWithAuthCode:(NSString *)authCode - applicationCorrelationID:(NSString *)applicationCorrelationId - success:(nullable BTClientPaypalSuccessBlock)successBlock - failure:(nullable BTClientFailureBlock)failureBlock; - -/// Save a paypal payment method to Braintree without a PayPal App Correlation ID -/// -/// @note This signature has been deprecated in favor of -/// savePaypalPaymentMethodWithAuthCode:applicationCorrelationID:success:failure: to encourage the submission -/// of PayPal app correlation ids. -/// -/// @param authCode Authorization Code -/// @param successBlock success callback for handling the resulting new PayPal account payment method -/// @param failureBlock failure callback for handling errors -- (void)savePaypalPaymentMethodWithAuthCode:(NSString *)authCode - success:(nullable BTClientPaypalSuccessBlock)successBlock - failure:(nullable BTClientFailureBlock)failureBlock DEPRECATED_ATTRIBUTE; - -/// Save a paypal payment method to Braintree -/// -/// @note This signature has been deprecated in favor of -/// savePaypalPaymentMethodWithAuthCode:applicationCorrelationID:success:failure: for clarity -/// -/// @param authCode Authorization Code -/// @param correlationId PayPal App Correlation ID (See `-[BTClient btPayPal_applicationCorrelationId]` and https://github.com/paypal/PayPal-iOS-SDK/blob/master/docs/future_payments_mobile.md#obtain-an-application-correlation-id.) -/// @param successBlock success callback for handling the resulting new PayPal account payment method -/// @param failureBlock failure callback for handling errors -- (void)savePaypalPaymentMethodWithAuthCode:(NSString *)authCode - correlationId:(NSString *)correlationId - success:(nullable BTClientPaypalSuccessBlock)successBlock - failure:(nullable BTClientFailureBlock)failureBlock DEPRECATED_ATTRIBUTE; - -#pragma mark - Coinbase - -/// Save a Coinbase payment method to Braintree (beta) -/// -/// @param coinbaseAuthResponse A Coinbase authorization response of type NSDictionary -/// @param successBlock success callback for handling the resulting new Coinbase account payment method -/// @param failureBlock failure callback for handling errors -- (void)saveCoinbaseAccount:(id)coinbaseAuthResponse - storeInVault:(BOOL)storeInVault - success:(nullable BTClientCoinbaseSuccessBlock)successBlock - failure:(nullable BTClientFailureBlock)failureBlock; - -#pragma mark Create a Braintree Analytics Event - -/// "Fire and forget analytics" - transmits an analytics event to the Braintree analytics service -/// -/// @param eventKind The analytics event name -- (void)postAnalyticsEvent:(NSString *)eventKind - success:(nullable BTClientAnalyticsSuccessBlock)successBlock - failure:(nullable BTClientFailureBlock)failureBlock; - -- (void)postAnalyticsEvent:(NSString *)eventKind; - -#pragma mark - Library Metadata - -/// Retrieve the current library version. -/// -/// @return A string representation of this library's current semver.org version. -+ (NSString *)libraryVersion; - -@end - -@interface BTClient (Deprecated) - -/// Save a card to Braintree -/// -/// You have two options for validation when saving a card to Braintree. You can specify -/// that only valid options should be saved. -/// -/// @param cardNumber card number (PAN) -/// @param expirationMonth card expiration month (e.g. @"01") -/// @param expirationYear card expiration year (e.g. @"2018")` -/// @param cvv card's cvv three or four digit verification code (optional, depending on your Gateway settings) -/// @param postalCode card's postal code for address verification (optional, depending on your Gateway settings) -/// @param shouldValidate whether details should be validated before creating a nonce for them -/// @param successBlock success callback for handling the resulting new card -/// @param failureBlock failure callback for handling errors -/// -/// @see challenges -- (void)saveCardWithNumber:(NSString *)cardNumber - expirationMonth:(NSString *)expirationMonth - expirationYear:(NSString *)expirationYear - cvv:(nullable NSString *)cvv - postalCode:(nullable NSString *)postalCode - validate:(BOOL)shouldValidate - success:(nullable BTClientCardSuccessBlock)successBlock - failure:(nullable BTClientFailureBlock)failureBlock DEPRECATED_MSG_ATTRIBUTE("Please use BTClientCardRequest and saveCardWithRequest:validate:success:failure:"); - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/Braintree/Braintree/API/@Public/BTClientCardRequest.h b/Pods/Braintree/Braintree/API/@Public/BTClientCardRequest.h deleted file mode 100644 index efa3907..0000000 --- a/Pods/Braintree/Braintree/API/@Public/BTClientCardRequest.h +++ /dev/null @@ -1,22 +0,0 @@ -#import -#import "BTClientCardTokenizationRequest.h" - -/// Representation of a card that should be uploaded to Braintree for payment method creation. -/// -/// @see BTClientCardTokenizationRequest -@interface BTClientCardRequest : BTClientCardTokenizationRequest - -/// Whether or not to return validations and/or verification results to the client -/// -/// @warning Use this flag with caution. By enabling client-side validation, certain save card requests -/// may result in adding the payment method to the Vault. These semantics are not currently -/// documented. -@property (nonatomic, readwrite, assign) BOOL shouldValidate; - -/// Initializes a request with an empty set of card details -- (instancetype)init NS_DESIGNATED_INITIALIZER; - -/// Initializes a request based on card details in a BTClientCardTokenizationRequest -- (instancetype)initWithTokenizationRequest:(BTClientCardTokenizationRequest *)tokenizationRequest; - -@end diff --git a/Pods/Braintree/Braintree/API/@Public/BTClientCardTokenizationRequest.h b/Pods/Braintree/Braintree/API/@Public/BTClientCardTokenizationRequest.h deleted file mode 100644 index 0cb6ac4..0000000 --- a/Pods/Braintree/Braintree/API/@Public/BTClientCardTokenizationRequest.h +++ /dev/null @@ -1,38 +0,0 @@ -#import - -/// Representation of a card that should be uploaded to Braintree for payment method tokenization. -@interface BTClientCardTokenizationRequest : NSObject - -/// The raw card number (PAN) -@property (nonatomic, copy) NSString *number; - -/// The raw expiration month (M or MM, e.g. @"01") -@property (nonatomic, copy) NSString *expirationMonth; - -/// The raw expiration year (YY or YYYY, e.g. @"2018") -@property (nonatomic, copy) NSString *expirationYear; - -/// The raw expiration date (MM/YY or MM/YYYY, e.g. @"5/17"), mutally exclusive with expirationMonth and expirationYear -@property (nonatomic, copy) NSString *expirationDate; - -/// The raw cvv three or four digit verification code (possibly required, depending on your Gateway settings) -@property (nonatomic, copy) NSString *cvv; - -/// The raw postal code (possibly required, depending on your Gateway settings) -@property (nonatomic, copy) NSString *postalCode; - -/// Specifies that the card details should be tokenized, rather than validated and fully created as -/// a Payment Method in the Vault. -/// -/// @return NO -@property (nonatomic, readonly, assign) BOOL shouldValidate; - -/// Additional card parameters. See our documentation online for information about the available fields. -@property (nonatomic, strong) NSDictionary *additionalParameters; - -/// Construct a card request parameter dictionary. -/// -/// @return The card request as a dictionary for uploading as parameters in API requests. -- (NSDictionary *)parameters; - -@end diff --git a/Pods/Braintree/Braintree/API/@Public/BTClientToken.h b/Pods/Braintree/Braintree/API/@Public/BTClientToken.h deleted file mode 100644 index 6d9e770..0000000 --- a/Pods/Braintree/Braintree/API/@Public/BTClientToken.h +++ /dev/null @@ -1,24 +0,0 @@ -#import -#import "BTErrors.h" - -@class BTAPIResponseParser; - -extern NSString *const BTClientTokenKeyVersion; -extern NSString *const BTClientTokenKeyAuthorizationFingerprint; -extern NSString *const BTClientTokenKeyConfigURL; - -@interface BTClientToken : NSObject - -/// Parser to digest the token data -@property (nonatomic, readonly, strong) BTAPIResponseParser *clientTokenParser; -/// The extracted authorization fingerprint -@property (nonatomic, readonly, copy) NSString *authorizationFingerprint; -/// The extracted configURL -@property (nonatomic, readonly, strong) NSURL *configURL; - -#pragma mark - - -//// Initialize a client token with a client token string generated by a Braintree Server SDK. -- (instancetype)initWithClientTokenString:(NSString *)JSONString error:(NSError **)error NS_DESIGNATED_INITIALIZER; - -@end diff --git a/Pods/Braintree/Braintree/API/@Public/BTCoinbasePaymentMethod.h b/Pods/Braintree/Braintree/API/@Public/BTCoinbasePaymentMethod.h deleted file mode 100644 index e4e6f27..0000000 --- a/Pods/Braintree/Braintree/API/@Public/BTCoinbasePaymentMethod.h +++ /dev/null @@ -1,17 +0,0 @@ -#import - -#import "BTPaymentMethod.h" - -/// A payment method returned by the Client API that represents a Coinbase account associated with -/// a particular Braintree customer. -/// -/// This is a beta integration option. For details, see https://www.braintreepayments.com/features/coinbase -/// -/// @see BTPaymentMethod -/// @see BTMutablePayPalPaymentMethod -@interface BTCoinbasePaymentMethod : BTPaymentMethod - -/// The email address associated with the Coinbase account. -@property (nonatomic, readonly, copy) NSString *email; - -@end diff --git a/Pods/Braintree/Braintree/API/@Public/BTErrors.h b/Pods/Braintree/Braintree/API/@Public/BTErrors.h deleted file mode 100644 index e25f6cf..0000000 --- a/Pods/Braintree/Braintree/API/@Public/BTErrors.h +++ /dev/null @@ -1,46 +0,0 @@ -#import - -#pragma mark Braintree NSError Domain - -/// Braintree NSError Domain -extern NSString *const BTBraintreeAPIErrorDomain; - -#pragma mark Braintree NSError Codes - -/// Error codes found in NSError objects returned in Braintree API. -typedef NS_ENUM(NSInteger, BTErrorCode) { - /// An error occurred, but the exact cause was not determined. - BTUnknownError = 0, - /// A client error occurred for an undetermined reason. - BTCustomerInputErrorUnknown, - /// An error occurred due to invalid user input. - BTCustomerInputErrorInvalid, - /// An error occurred due to an authorization problem with SDK integration. - BTMerchantIntegrationErrorUnauthorized, - /// An error occurred due to a remove resource not found. - BTMerchantIntegrationErrorNotFound, - /// An error occurred due to a problem with the client token value. - BTMerchantIntegrationErrorInvalidClientToken, - /// The specified nonce was not found when querying information about it. - BTMerchantIntegrationErrorNonceNotFound, - /// A server-side error occurred. The result of your request is not specified. Please retry your request. - BTServerErrorUnknown, - /// A server-side error occurred due to the Gateway being unavailable. The result of your request is not specified. Please retry your request. - BTServerErrorGatewayUnavailable, - /// A server-side error occurred due to a network problem. See the underlying error for more details and retry your request. - BTServerErrorNetworkUnavailable, - /// An SSL error occurred. - BTServerErrorSSL, - /// A error occurred interpreting the server's response. Please retry your request. - BTServerErrorUnexpectedError, - /// The requested operation is not supported for this merchant or integration - BTErrorUnsupported, -}; - -#pragma mark NSError userInfo Keys - -/// NSError userInfo key for validation errors, present in errors with code BTCustomerInputErrorInvalid. -extern NSString *const BTCustomerInputBraintreeValidationErrorsKey; - -/// NSError userInfo key for 3D Secure liability shift information, present in errors related to 3D Secure -extern NSString *BTThreeDSecureInfoKey; diff --git a/Pods/Braintree/Braintree/API/@Public/BTLogger.h b/Pods/Braintree/Braintree/API/@Public/BTLogger.h deleted file mode 100644 index 2c3913d..0000000 --- a/Pods/Braintree/Braintree/API/@Public/BTLogger.h +++ /dev/null @@ -1,34 +0,0 @@ -#import - -/// Braintree SDK Logging Levels -typedef NS_ENUM(NSUInteger, BTLogLevel) { - - /// Suppress all log output - BTLogLevelNone = 0, - - /// Only log critical issues (e.g. irrecoverable errors) - BTLogLevelCritical = 1, - - /// Log errors (e.g. expected or recoverable errors) - BTLogLevelError = 2, - - /// Log warnings (e.g. use of pre-release features) - BTLogLevelWarning = 3, - - /// Log basic information (e.g. state changes, network activity) - BTLogLevelInfo = 4, - - /// Log debugging statements (anything and everything) - BTLogLevelDebug = 5 -}; - -/// Braintree leveled logger -@interface BTLogger : NSObject - -/// The logger singleton used by the Braintree SDK -+ (instancetype)sharedLogger; - -/// The current log level, with default value BTLogLevelInfo -@property (nonatomic, assign) BTLogLevel level; - -@end diff --git a/Pods/Braintree/Braintree/API/@Public/BTPayPalPaymentMethod.h b/Pods/Braintree/Braintree/API/@Public/BTPayPalPaymentMethod.h deleted file mode 100644 index bae7cf9..0000000 --- a/Pods/Braintree/Braintree/API/@Public/BTPayPalPaymentMethod.h +++ /dev/null @@ -1,17 +0,0 @@ -#import "BTPaymentMethod.h" -#import "BTPostalAddress.h" - -/// A payment method returned by the Client API that represents a PayPal account associated with -/// a particular Braintree customer. -/// -/// @see BTPaymentMethod -/// @see BTMutablePayPalPaymentMethod -@interface BTPayPalPaymentMethod : BTPaymentMethod - -/// Email address associated with the PayPal Account. -@property (nonatomic, readonly, copy) NSString *email; - -/// The billing address. -@property (nonatomic, copy) BTPostalAddress *billingAddress; - -@end diff --git a/Pods/Braintree/Braintree/API/@Public/BTPaymentMethod.h b/Pods/Braintree/Braintree/API/@Public/BTPaymentMethod.h deleted file mode 100644 index 06eec45..0000000 --- a/Pods/Braintree/Braintree/API/@Public/BTPaymentMethod.h +++ /dev/null @@ -1,15 +0,0 @@ -#import - -/// A payment method returned by the Client API that represents a payment method associated with -/// a particular Braintree customer. -/// -/// See also: BTCardPaymentMethod and BTPayPalPaymentMethod. -@interface BTPaymentMethod : NSObject - -/// Unique token that, if unlocked, may be used to create payments -/// -/// Pass this value to the server for use as the `payment_method_nonce` -/// argument of Braintree server-side client library methods. -@property (nonatomic, readonly, copy) NSString *nonce; - -@end diff --git a/Pods/Braintree/Braintree/API/@Public/BTPostalAddress.h b/Pods/Braintree/Braintree/API/@Public/BTPostalAddress.h deleted file mode 100644 index 5fdfbf8..0000000 --- a/Pods/Braintree/Braintree/API/@Public/BTPostalAddress.h +++ /dev/null @@ -1,23 +0,0 @@ -#import - -@interface BTPostalAddress : NSObject - -/// Line 1 of the Address (eg. number, street, etc). -@property (nonatomic, copy) NSString *streetAddress; - -/// Optional line 2 of the Address (eg. suite, apt #, etc.). -@property (nonatomic, copy) NSString *extendedAddress; - -/// City name. -@property (nonatomic, copy) NSString *locality; - -/// 2 letter country code. -@property (nonatomic, copy) NSString *countryCodeAlpha2; - -/// Zip code or equivalent is usually required for countries that have them. For list of countries that do not have postal codes please refer to http://en.wikipedia.org/wiki/Postal_code. -@property (nonatomic, copy) NSString *postalCode; - -/// 2 letter code for US states, and the equivalent for other countries. -@property (nonatomic, copy) NSString *region; - -@end diff --git a/Pods/Braintree/Braintree/API/@Public/Braintree-API.h b/Pods/Braintree/Braintree/API/@Public/Braintree-API.h deleted file mode 100644 index 6a2f618..0000000 --- a/Pods/Braintree/Braintree/API/@Public/Braintree-API.h +++ /dev/null @@ -1,7 +0,0 @@ -/// All-in-one import for the Braintree iOS SDK - -#import -#import -#import -#import -#import diff --git a/Pods/Braintree/Braintree/API/@Public/Braintree-Version.h b/Pods/Braintree/Braintree/API/@Public/Braintree-Version.h deleted file mode 100644 index d6c4a1a..0000000 --- a/Pods/Braintree/Braintree/API/@Public/Braintree-Version.h +++ /dev/null @@ -1 +0,0 @@ -#define BRAINTREE_VERSION (@"3.9.9") diff --git a/Pods/Braintree/Braintree/API/App Switch/BTAppSwitch.h b/Pods/Braintree/Braintree/API/App Switch/BTAppSwitch.h deleted file mode 100644 index e2dc5f9..0000000 --- a/Pods/Braintree/Braintree/API/App Switch/BTAppSwitch.h +++ /dev/null @@ -1,28 +0,0 @@ -#import -#import "BTAppSwitching.h" - -/// Type of payment app -typedef NS_ENUM(NSInteger, BTAppType) { - BTAppTypePayPal = 0, - BTAppTypeVenmo, - BTAppTypeApplePay, - BTAppTypeCoinbase, -}; - -NS_ASSUME_NONNULL_BEGIN - -@interface BTAppSwitch : NSObject - -@property (nonatomic, readwrite, copy) NSString *returnURLScheme; - -+ (instancetype)sharedInstance; - -- (BOOL)handleReturnURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication; - -- (void)addAppSwitching:(id)appSwitching forApp:(BTAppType)type; -- (void)removeAppSwitchingForApp:(BTAppType)type; -- (id )appSwitchingForApp:(BTAppType)type; - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/Braintree/Braintree/API/App Switch/BTAppSwitch.m b/Pods/Braintree/Braintree/API/App Switch/BTAppSwitch.m deleted file mode 100644 index 195d833..0000000 --- a/Pods/Braintree/Braintree/API/App Switch/BTAppSwitch.m +++ /dev/null @@ -1,62 +0,0 @@ -#import "BTAppSwitch.h" - -@interface BTAppSwitch () - -// Dictionary of id keyed by @(BTPaymentAppSwitchType) -@property (nonatomic, strong) NSMutableDictionary *appSwitchingInstances; - -@end - -@implementation BTAppSwitch - -+ (instancetype)sharedInstance { - static BTAppSwitch *instance; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - instance = [[BTAppSwitch alloc] init]; - }); - return instance; -} - -- (instancetype)init { - self = [super init]; - if (self) { - _appSwitchingInstances = [NSMutableDictionary dictionary]; - } - return self; -} - -- (void)setReturnURLScheme:(NSString *)returnURLScheme { - _returnURLScheme = returnURLScheme; - for (id switchingInstance in [self.appSwitchingInstances allValues]) { - [switchingInstance setReturnURLScheme:returnURLScheme]; - } -} - -- (BOOL)handleReturnURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication { - for (id switcher in [self.appSwitchingInstances allValues]) { - if ([switcher canHandleReturnURL:url sourceApplication:sourceApplication]) { - if ([switcher delegate]) { - [switcher handleReturnURL:url]; - } else { - // Fallback BTSwitchingDelegate here - } - return YES; - } - } - return NO; -} - -- (void)addAppSwitching:(id)appSwitching forApp:(BTAppType)type { - self.appSwitchingInstances[@(type)] = appSwitching; -} - -- (void)removeAppSwitchingForApp:(BTAppType)type { - [self.appSwitchingInstances removeObjectForKey:@(type)]; -} - -- (id )appSwitchingForApp:(BTAppType)type { - return self.appSwitchingInstances[@(type)]; -} - -@end diff --git a/Pods/Braintree/Braintree/API/App Switch/BTAppSwitchErrors.m b/Pods/Braintree/Braintree/API/App Switch/BTAppSwitchErrors.m deleted file mode 100644 index d693f96..0000000 --- a/Pods/Braintree/Braintree/API/App Switch/BTAppSwitchErrors.m +++ /dev/null @@ -1,3 +0,0 @@ -#import "BTAppSwitchErrors.h" - -NSString *const BTAppSwitchErrorDomain = @"BTAppSwitchErrorDomain"; diff --git a/Pods/Braintree/Braintree/API/Client/BTAPIResponseParser.h b/Pods/Braintree/Braintree/API/Client/BTAPIResponseParser.h deleted file mode 100644 index f4aa7ab..0000000 --- a/Pods/Braintree/Braintree/API/Client/BTAPIResponseParser.h +++ /dev/null @@ -1,32 +0,0 @@ -#import - -@protocol BTValueTransforming -- (id)transformedValue:(id)value; -@end - -@interface BTAPIResponseParser : NSObject - -+ (instancetype)parserWithDictionary:(NSDictionary *)dictionary; - -- (instancetype)initWithDictionary:(NSDictionary *)dictionary NS_DESIGNATED_INITIALIZER; - -#pragma mark - Accessors with Specified Types - -- (NSString *)stringForKey:(NSString *)key; -- (NSArray *)arrayForKey:(NSString *)key; -- (NSSet *)setForKey:(NSString *)key; -- (NSDictionary *)dictionaryForKey:(NSString *)key; -- (NSURL *)URLForKey:(NSString *)key; - -#pragma mark - Accessors for Nested Resources - -- (BTAPIResponseParser *)responseParserForKey:(NSString *)key; - -#pragma mark - Accessors with Transformed Values - -- (id)objectForKey:(NSString *)key withValueTransformer:(id)valueTransformer; -- (NSArray *)arrayForKey:(NSString *)key withValueTransformer:(id)valueTransformer; -- (NSInteger)integerForKey:(NSString *)key withValueTransformer:(id)valueTransformer; -- (BOOL)boolForKey:(NSString *)key withValueTransformer:(id)valueTransformer; - -@end diff --git a/Pods/Braintree/Braintree/API/Client/BTAPIResponseParser.m b/Pods/Braintree/Braintree/API/Client/BTAPIResponseParser.m deleted file mode 100644 index 3022ad1..0000000 --- a/Pods/Braintree/Braintree/API/Client/BTAPIResponseParser.m +++ /dev/null @@ -1,130 +0,0 @@ -@import PassKit; - -#import "BTAPIResponseParser.h" - -@interface BTAPIResponseParser () -@property (nonatomic, strong) NSDictionary *apiDictionary; -@end - -@implementation BTAPIResponseParser - -+ (instancetype)parserWithDictionary:(NSDictionary *)dictionary { - return [[self alloc] initWithDictionary:dictionary]; -} - -- (instancetype)init { - return [self initWithDictionary:@{}]; -} - -- (instancetype)initWithDictionary:(NSDictionary *)dictionary { - if (![dictionary isKindOfClass:[NSDictionary class]]) { - return nil; - } - - self = [super init]; - if (self) { - self.apiDictionary = dictionary; - } - return self; -} - -- (id)copyWithZone:(NSZone *)zone { - return [BTAPIResponseParser parserWithDictionary:[self.apiDictionary copyWithZone:zone]]; -} - -#pragma mark - - -- (NSString *)stringForKey:(NSString *)key { - NSString *value = self.apiDictionary[key]; - return [value isKindOfClass:[NSString class]] ? value : nil; -} - -- (NSArray *)arrayForKey:(NSString *)key { - NSArray *value = self.apiDictionary[key]; - return [value isKindOfClass:[NSArray class]] ? value : nil; -} - -- (NSSet *)setForKey:(NSString *)key { - NSArray *value = self.apiDictionary[key]; - return [value isKindOfClass:[NSArray class]] ? [NSSet setWithArray:value] : nil; -} - -- (NSURL *)URLForKey:(NSString *)key { - NSString *urlString = [self stringForKey:key]; - if (!urlString) { - return nil; - } - - return [NSURL URLWithString:urlString]; -} - -- (NSDictionary *)dictionaryForKey:(NSString *)key { - NSDictionary *value = self.apiDictionary[key]; - return [value isKindOfClass:[NSDictionary class]] ? value : nil; -} - -- (BTAPIResponseParser *)responseParserForKey:(NSString *)key { - return [BTAPIResponseParser parserWithDictionary:[self dictionaryForKey:key]]; -} - - -#pragma mark - Transformed Values - -- (id)objectForKey:(NSString *)key withValueTransformer:(id)valueTransformer { - id originalValue = self.apiDictionary[key]; - return [valueTransformer transformedValue:originalValue]; -} - -- (NSArray *)arrayForKey:(NSString *)key withValueTransformer:(id)valueTransformer { - NSArray *originalValue = [self arrayForKey:key]; - NSMutableArray *value = [NSMutableArray arrayWithCapacity:originalValue.count]; - for (id obj in originalValue) { - id transformedObj = [valueTransformer transformedValue:obj]; - if (transformedObj != [NSNull null]) { - [value addObject:transformedObj]; - } - } - return [value copy]; -} - -- (NSInteger)integerForKey:(NSString *)key withValueTransformer:(id)valueTransformer { - id originalValue = self.apiDictionary[key]; - id transformedValue = [valueTransformer transformedValue:originalValue]; - return [transformedValue isKindOfClass:[NSNumber class]] ? [transformedValue integerValue] : 0; -} - -- (BOOL)boolForKey:(NSString *)key withValueTransformer:(id)valueTransformer { - id originalValue = self.apiDictionary[key]; - id transformedValue = [valueTransformer transformedValue:originalValue]; - return [transformedValue isKindOfClass:[NSNumber class]] ? [transformedValue boolValue] : NO; -} - - -#pragma mark NSCoding - -- (id)initWithCoder:(NSCoder *)aDecoder { - NSDictionary *apiDictionary = [aDecoder decodeObjectForKey:@"apiDictionary"]; - return [self initWithDictionary:apiDictionary]; -} - -- (void)encodeWithCoder:(NSCoder *)aCoder { - [aCoder encodeObject:self.apiDictionary forKey:@"apiDictionary"]; -} - -#pragma mark NSObject Protocol - -- (BOOL)isEqual:(id)object { - if ([object isKindOfClass:[BTAPIResponseParser class]]) { - return (self == object) || [self.apiDictionary isEqual:[object apiDictionary]]; - } else { - return [super isEqual:object]; - } -} - -- (NSString *)debugDescription { - return [NSString stringWithFormat:@"", self, [self.apiDictionary debugDescription]]; -} - -@end - - diff --git a/Pods/Braintree/Braintree/API/Client/BTClient+Offline.m b/Pods/Braintree/Braintree/API/Client/BTClient+Offline.m deleted file mode 100644 index f4984df..0000000 --- a/Pods/Braintree/Braintree/API/Client/BTClient+Offline.m +++ /dev/null @@ -1,41 +0,0 @@ -#import "BTClient+Offline.h" -#import "BTClientToken.h" -#import "BTOfflineModeURLProtocol.h" -#import "BTOfflineClientBackend.h" -#import "BTConfiguration.h" - -@implementation BTClient (Offline) - -+ (NSString *)offlineTestClientTokenWithAdditionalParameters:(NSDictionary *)overrides { - NSMutableDictionary *clientTokenDataDictionary = - [NSMutableDictionary dictionaryWithDictionary:@{BTClientTokenKeyVersion: @2, - BTClientTokenKeyAuthorizationFingerprint: @"an_authorization_fingerprint", - BTClientTokenKeyConfigURL: [BTOfflineModeClientApiBaseURL stringByAppendingString:@"/configuration"], - // New BTConfiguration constants are the same as the BTClientToken ones were; - // Ensure that old behavior still works. - BTConfigurationKeyClientApiURL: BTOfflineModeClientApiBaseURL, - BTConfigurationKeyApplePay: @{ - BTConfigurationKeyStatus: @"mock", - @"countryCode": @"US", - @"currencyCode": @"USD", - @"merchantIdentifier": @"merchant-id-apple-pay", - @"supportedNetworks": @[ - @"visa", - @"mastercard", - @"amex" - ] - } - }]; - - [clientTokenDataDictionary addEntriesFromDictionary:overrides]; - - NSData *clientTokenData = [NSJSONSerialization dataWithJSONObject:clientTokenDataDictionary - options:0 - error:NULL]; - NSString *clientToken = [clientTokenData base64EncodedStringWithOptions:0]; - [BTOfflineModeURLProtocol setBackend:[BTOfflineClientBackend new]]; - - return clientToken; -} - -@end diff --git a/Pods/Braintree/Braintree/API/Client/BTClient+Testing.m b/Pods/Braintree/Braintree/API/Client/BTClient+Testing.m deleted file mode 100644 index 997c2dd..0000000 --- a/Pods/Braintree/Braintree/API/Client/BTClient+Testing.m +++ /dev/null @@ -1,171 +0,0 @@ -#import "BTClient_Internal.h" -#import "BTClient+Testing.h" - -#import "BTHTTP.h" - -NSString *BTClientTestConfigurationKeyMerchantIdentifier = @"merchant_id"; -NSString *BTClientTestConfigurationKeyPublicKey = @"publicKey"; -NSString *BTClientTestConfigurationKeyCustomer = @"customer"; -NSString *BTClientTestConfigurationKeyNoCustomer = @"no_customer"; -NSString *BTClientTestConfigurationKeySharedCustomerIdentifier = @"sharedCustomerIdentifier"; -NSString *BTClientTestConfigurationKeySharedCustomerIdentifierType = @"sharedCustomerIdentifierType"; -NSString *BTClientTestConfigurationKeyPayPalClientId = @"paypalClientId"; -NSString *BTClientTestConfigurationKeyRevoked = @"authorizationFingerprintRevoked"; -NSString *BTClientTestConfigurationKeyClientTokenVersion = @"tokenVersion"; -NSString *BTClientTestConfigurationKeyAnalytics = @"analytics"; -NSString *BTClientTestConfigurationKeyURL = @"url"; -NSString *BTClientTestConfigurationKeyMerchantAccountIdentifier = @"merchantAccountId"; - -NSString *BTClientTestDefaultMerchantIdentifier = @"integration_merchant_id"; - -@implementation BTClient (Testing) - -+ (void)testClientWithConfiguration:(NSDictionary *)configurationDictionary async:(BOOL)async completion:(void (^)(BTClient *client))completionBlock { - NSAssert(completionBlock != nil, @"Completion is required in %s", __FUNCTION__); - - BTHTTP *http = [[BTHTTP alloc] initWithBaseURL:[[self class] testClientApiURLForMerchant:configurationDictionary[BTClientTestConfigurationKeyMerchantIdentifier]]]; - - NSMutableDictionary *overrides = [NSMutableDictionary dictionaryWithDictionary:configurationDictionary]; - NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; - NSArray *topLevelParams = @[ BTClientTestConfigurationKeyMerchantIdentifier, - BTClientTestConfigurationKeyPublicKey, - BTClientTestConfigurationKeyCustomer, - BTClientTestConfigurationKeyNoCustomer, - BTClientTestConfigurationKeyClientTokenVersion, - BTClientTestConfigurationKeyRevoked, - BTClientTestConfigurationKeySharedCustomerIdentifierType, - BTClientTestConfigurationKeySharedCustomerIdentifier, - BTClientTestConfigurationKeyMerchantAccountIdentifier, ]; - - for (NSString *topLevelParam in topLevelParams) { - if (configurationDictionary[topLevelParam]) { - parameters[topLevelParam] = configurationDictionary[topLevelParam]; - } - [overrides removeObjectForKey:topLevelParam]; - } - parameters[@"overrides"] = overrides; - - [http POST:@"testing/client_token" - parameters:parameters - completion:^(BTHTTPResponse *response, __unused NSError *error) { - if (error != nil) { - NSLog(@"testing/client_token failed or responded with an error: %@", error); - NSLog(@"\n\n====================================================================\n= ARE YOU RUNNING THE GATEWAY ON http://localhost:3000? =\n====================================================================\n\n"); - @throw [NSException exceptionWithName:NSInternalInconsistencyException reason:nil userInfo:nil]; - } - - NSString *clientTokenString = [response.object stringForKey:@"clientToken"]; - if (async) { - [BTClient setupWithClientToken:clientTokenString completion:^(BTClient *client, NSError *error) { - NSAssert(client != nil, @"BTClient setup failed with error = %@", error); - if (client == nil) { NSLog(@"BTClient setup failed with error = %@", error); } - completionBlock(client); - }]; - } else { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - completionBlock([(BTClient *)[BTClient alloc] initWithClientToken:clientTokenString]); -#pragma clang diagnostic pop - } - - }]; -} - -- (void)fetchNonceInfo:(NSString *)nonce success:(BTClientNonceInfoSuccessBlock)successBlock failure:(BTClientFailureBlock)failureBlock { - NSMutableCharacterSet *nonceParamCharacterSet = [NSMutableCharacterSet alphanumericCharacterSet]; - [nonceParamCharacterSet addCharactersInString:@"-"]; - - NSString *path = [NSString stringWithFormat:@"nonces/%@", [nonce stringByAddingPercentEncodingWithAllowedCharacters:nonceParamCharacterSet]]; - - [self.clientApiHttp GET:path parameters:[self defaultRequestParameters] completion:^(BTHTTPResponse *response, NSError *error) { - if (response.isSuccess) { - if (successBlock != nil) { - successBlock([response.object dictionaryForKey:@"nonce"]); - } - } else { - NSError *returnedError = error; - if (error.domain == BTBraintreeAPIErrorDomain && error.code == BTMerchantIntegrationErrorNotFound) { - returnedError = [NSError errorWithDomain:error.domain - code:BTMerchantIntegrationErrorNonceNotFound - userInfo:@{NSUnderlyingErrorKey: error}]; - } - if (failureBlock != nil) { - failureBlock(returnedError); - } - } - }]; -} - -- (void)fetchNonceThreeDSecureVerificationInfo:(NSString *)nonce - success:(BTClientNonceInfoSuccessBlock)successBlock - failure:(BTClientFailureBlock)failureBlock { - NSMutableCharacterSet *nonceParamCharacterSet = [NSMutableCharacterSet alphanumericCharacterSet]; - [nonceParamCharacterSet addCharactersInString:@"-"]; - - NSString *path = [NSString stringWithFormat:@"testing/three_d_secure_verifications/nonce/%@", [nonce stringByAddingPercentEncodingWithAllowedCharacters:nonceParamCharacterSet]]; - - NSDictionary *params = @{ @"public_key": @"integration_public_key", }; - [self.clientApiHttp GET:path parameters:params completion:^(BTHTTPResponse *response, NSError *error) { - if (response.isSuccess) { - if (successBlock != nil) { - successBlock([response.object dictionaryForKey:@"threeDSecureVerification"]); - } - } else { - NSError *returnedError = error; - if (error.domain == BTBraintreeAPIErrorDomain && error.code == BTMerchantIntegrationErrorNotFound) { - returnedError = [NSError errorWithDomain:error.domain - code:BTMerchantIntegrationErrorNonceNotFound - userInfo:@{NSUnderlyingErrorKey: error}]; - } - if (failureBlock != nil) { - failureBlock(returnedError); - } - } - }]; -} - -- (void)revokeAuthorizationFingerprintForTestingWithSuccess:(void (^)(void))successBlock - failure:(BTClientFailureBlock)failureBlock { - [self.clientApiHttp DELETE:@"testing/authorization_fingerprints" - parameters:[self defaultRequestParameters] - completion:^(BTHTTPResponse *response, NSError *error) { - if (response.isSuccess) { - if (successBlock) { - successBlock(); - } - } else { - if (failureBlock) { - failureBlock(error); - } - } - }]; -} - -- (void)updateCoinbaseMerchantOptions:(NSDictionary *)dictionary - success:(void (^)(void))successBlock - failure:(BTClientFailureBlock)failureBlock { - [self.clientApiHttp PUT:@"testing/mock_coinbase_merchant_options" - parameters:@{ @"authorization_fingerprint": self.clientToken.authorizationFingerprint, - @"coinbase_merchant_options": dictionary } - completion:^(BTHTTPResponse *response, NSError *error) { - if (response.isSuccess) { - if (successBlock) { - successBlock(); - } - } else { - if (failureBlock) { - failureBlock(error); - } - } - }]; -} - -- (NSDictionary *)defaultRequestParameters { - return @{ @"authorization_fingerprint": self.clientToken.authorizationFingerprint }; -} - -+ (NSURL *)testClientApiURLForMerchant:(NSString *)merchantIdentifier { - return [NSURL URLWithString:[NSString stringWithFormat:@"http://localhost:3000/merchants/%@/client_api/", merchantIdentifier ?: BTClientTestDefaultMerchantIdentifier]]; -} - -@end diff --git a/Pods/Braintree/Braintree/API/Client/BTClient.m b/Pods/Braintree/Braintree/API/Client/BTClient.m deleted file mode 100644 index acda49d..0000000 --- a/Pods/Braintree/Braintree/API/Client/BTClient.m +++ /dev/null @@ -1,692 +0,0 @@ -#import - -#import "BTClient_Internal.h" -#import "BTClientToken.h" -#import "BTConfiguration.h" -#import "BTLogger_Internal.h" -#import "BTMutablePaymentMethod.h" -#import "BTMutablePayPalPaymentMethod.h" -#import "BTMutableCardPaymentMethod.h" -#import "BTMutableApplePayPaymentMethod.h" -#import "BTHTTP.h" -#import "BTOfflineModeURLProtocol.h" -#import "BTAnalyticsMetadata.h" -#import "Braintree-Version.h" -#import "BTAPIResponseParser.h" -#import "BTClientPaymentMethodValueTransformer.h" -#import "BTCoinbasePaymentMethod_Internal.h" - -@interface BTClient () -- (void)setMetadata:(BTClientMetadata *)metadata; -@end - -@implementation BTClient - -+ (void)setupWithClientToken:(NSString *)clientTokenString completion:(BTClientCompletionBlock)completionBlock { - BTClient *client = [[self alloc] initSyncWithClientTokenString:clientTokenString]; - - if (client) { - [client fetchConfigurationWithCompletion:^(BTClient *client, NSError *error) { - if (client && !error) { - client.hasConfiguration = YES; - } - completionBlock(client, error); - }]; - } else { - completionBlock(nil, [NSError errorWithDomain:BTBraintreeAPIErrorDomain code:BTMerchantIntegrationErrorInvalidClientToken userInfo:@{NSLocalizedDescriptionKey: @"BTClient could not initialize because the provided clientToken was invalid"}]); - } -} - -- (instancetype)initWithClientToken:(NSString *)clientTokenString { - return [self initSyncWithClientTokenString:clientTokenString]; -} - -- (instancetype)initSyncWithClientTokenString:(NSString *)clientTokenString { - if(![clientTokenString isKindOfClass:[NSString class]]){ - NSString *reason = @"BTClient could not initialize because the provided clientToken was invalid"; - [[BTLogger sharedLogger] error:reason]; - return nil; - } - - self = [self init]; - if (self) { - NSError *error; - self.clientToken = [[BTClientToken alloc] initWithClientTokenString:clientTokenString error:&error]; - // Previously, error was ignored. Now, we at least log it - if (error) { [[BTLogger sharedLogger] error:[error localizedDescription]]; } - if (!self.clientToken) { - NSString *reason = @"BTClient could not initialize because the provided clientToken was invalid"; - [[BTLogger sharedLogger] error:reason]; - return nil; - } - - // For older integrations - self.configuration = [[BTConfiguration alloc] initWithResponseParser:[self.clientToken clientTokenParser] error:&error]; - if (error) { [[BTLogger sharedLogger] error:[error localizedDescription]]; } - - self.configHttp = [[BTHTTP alloc] initWithBaseURL:self.clientToken.configURL]; - [self.configHttp setProtocolClasses:@[[BTOfflineModeURLProtocol class]]]; - - [self prepareHttpFromConfiguration]; - - self.metadata = [[BTClientMetadata alloc] init]; - } - return self; -} - -- (void)prepareHttpFromConfiguration { - self.clientApiHttp = [[BTHTTP alloc] initWithBaseURL:self.configuration.clientApiURL]; - [self.clientApiHttp setProtocolClasses:@[[BTOfflineModeURLProtocol class]]]; - - if (self.configuration.analyticsEnabled) { - self.analyticsHttp = [[BTHTTP alloc] initWithBaseURL:self.configuration.analyticsURL]; - [self.analyticsHttp setProtocolClasses:@[[BTOfflineModeURLProtocol class]]]; - } -} - -- (void)fetchConfigurationWithCompletion:(BTClientCompletionBlock)completionBlock { - NSDictionary *parameters = @{ @"authorization_fingerprint": self.clientToken.authorizationFingerprint, @"config_version": @3 }; - [self.configHttp GET:nil - parameters:parameters - completion:^(BTHTTPResponse *response, NSError *error) { - if (response.isSuccess) { - NSError *configurationError; - self.configuration = [[BTConfiguration alloc] initWithResponseParser:response.object error:&configurationError]; - - [self prepareHttpFromConfiguration]; - - if (completionBlock) { - completionBlock(self, configurationError); - } - } else { - if (!error) { - error = [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTServerErrorGatewayUnavailable - userInfo:@{NSLocalizedDescriptionKey: - @"Braintree did not return a successful response, and no underlying error was provided."}]; - } - if (completionBlock) { - completionBlock(nil, error); - } - } - }]; -} - -- (id)copyWithZone:(NSZone *)zone { - BTClient *copiedClient = [[BTClient allocWithZone:zone] init]; - copiedClient.additionalPayPalScopes = [_additionalPayPalScopes copy]; - copiedClient.clientToken = [_clientToken copy]; - copiedClient.configuration = [_configuration copy]; - copiedClient.clientApiHttp = [_clientApiHttp copy]; - copiedClient.analyticsHttp = [_analyticsHttp copy]; - copiedClient.metadata = [self.metadata copy]; - copiedClient.configHttp = [_configHttp copy]; - copiedClient.hasConfiguration = _hasConfiguration; - return copiedClient; -} - -#pragma mark - Configuration - -- (NSSet *)challenges { - return self.configuration.challenges; -} - -- (NSString *)merchantId { - return self.configuration.merchantId; -} - -#pragma mark - NSCoding methods - -// NB: This is not yet used and has not been fully tested. - -- (void)encodeWithCoder:(NSCoder *)coder{ - [coder encodeObject:self.clientToken forKey:@"clientToken"]; - [coder encodeObject:self.configuration forKey:@"configuration"]; - [coder encodeObject:@(self.hasConfiguration) forKey:@"hasConfiguration"]; -} - -- (id)initWithCoder:(NSCoder *)decoder{ - self = [super init]; - if (self){ - self.clientToken = [decoder decodeObjectForKey:@"clientToken"]; - self.configuration = [decoder decodeObjectForKey:@"configuration"]; - - self.configHttp = [[BTHTTP alloc] initWithBaseURL:self.clientToken.configURL]; - [self.configHttp setProtocolClasses:@[[BTOfflineModeURLProtocol class]]]; - - self.clientApiHttp = [[BTHTTP alloc] initWithBaseURL:self.configuration.clientApiURL]; - [self.clientApiHttp setProtocolClasses:@[[BTOfflineModeURLProtocol class]]]; - - if (self.configuration.analyticsEnabled) { - self.analyticsHttp = [[BTHTTP alloc] initWithBaseURL:self.configuration.analyticsURL]; - [self.analyticsHttp setProtocolClasses:@[[BTOfflineModeURLProtocol class]]]; - } - - self.hasConfiguration = [[decoder decodeObjectForKey:@"hasConfiguration"] boolValue]; - } - return self; -} - -#pragma mark - API Methods - -- (void)fetchPaymentMethodsWithSuccess:(BTClientPaymentMethodListSuccessBlock)successBlock - failure:(BTClientFailureBlock)failureBlock { - NSDictionary *parameters = @{ - @"authorization_fingerprint": self.clientToken.authorizationFingerprint, - }; - - [self.clientApiHttp GET:@"v1/payment_methods" parameters:parameters completion:^(BTHTTPResponse *response, NSError *error) { - if (response.isSuccess) { - if (successBlock) { - NSArray *paymentMethods = [response.object arrayForKey:@"paymentMethods" - withValueTransformer:[BTClientPaymentMethodValueTransformer sharedInstance]]; - - successBlock(paymentMethods); - } - } else { - if (failureBlock) { - failureBlock(error); - } - } - }]; -} - -- (void)fetchPaymentMethodWithNonce:(NSString *)nonce - success:(BTClientPaymentMethodSuccessBlock)successBlock - failure:(BTClientFailureBlock)failureBlock { - NSDictionary *parameters = @{ - @"authorization_fingerprint": self.clientToken.authorizationFingerprint, - }; - [self.clientApiHttp GET:[NSString stringWithFormat:@"v1/payment_methods/%@", nonce] - parameters:parameters - completion:^(BTHTTPResponse *response, NSError *error) { - if (response.isSuccess) { - if (successBlock) { - NSArray *paymentMethods = [response.object arrayForKey:@"paymentMethods" withValueTransformer:[BTClientPaymentMethodValueTransformer sharedInstance]]; - - successBlock([paymentMethods firstObject]); - } - } else { - if (failureBlock) { - failureBlock(error); - } - } - }]; -} - -- (void)saveCardWithRequest:(BTClientCardRequest *)request - success:(BTClientCardSuccessBlock)successBlock - failure:(BTClientFailureBlock)failureBlock { - - NSMutableDictionary *requestParameters = [self metaPostParameters]; - NSMutableDictionary *creditCardParams = [request.parameters mutableCopy]; - - [requestParameters addEntriesFromDictionary:@{ @"credit_card": creditCardParams, - @"authorization_fingerprint": self.clientToken.authorizationFingerprint - }]; - - [self.clientApiHttp POST:@"v1/payment_methods/credit_cards" parameters:requestParameters completion:^(BTHTTPResponse *response, NSError *error) { - if (response.isSuccess) { - if (successBlock) { - NSArray *paymentMethods = [response.object arrayForKey:@"creditCards" - withValueTransformer:[BTClientPaymentMethodValueTransformer sharedInstance]]; - successBlock([paymentMethods firstObject]); - } - } else { - NSError *returnedError = error; - if (error.domain == BTBraintreeAPIErrorDomain && error.code == BTCustomerInputErrorInvalid) { - returnedError = [NSError errorWithDomain:error.domain - code:error.code - userInfo:@{BTCustomerInputBraintreeValidationErrorsKey: response.rawObject}]; - } - if (failureBlock) { - failureBlock(returnedError); - } - } - }]; -} - -// Deprecated -- (void)saveCardWithNumber:(NSString *)creditCardNumber - expirationMonth:(NSString *)expirationMonth - expirationYear:(NSString *)expirationYear - cvv:(NSString *)cvv - postalCode:(NSString *)postalCode - validate:(BOOL)shouldValidate - success:(BTClientCardSuccessBlock)successBlock - failure:(BTClientFailureBlock)failureBlock { - - BTClientCardRequest *request = [[BTClientCardRequest alloc] init]; - request.number = creditCardNumber; - request.expirationMonth = expirationMonth; - request.expirationYear = expirationYear; - request.cvv = cvv; - request.postalCode = postalCode; - request.shouldValidate = shouldValidate; - - [self saveCardWithRequest:request - success:successBlock - failure:failureBlock]; -} - -#if BT_ENABLE_APPLE_PAY -- (void)saveApplePayPayment:(PKPayment *)payment - success:(BTClientApplePaySuccessBlock)successBlock - failure:(BTClientFailureBlock)failureBlock { - - if (![PKPayment class]) { - if (failureBlock) { - failureBlock([NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTErrorUnsupported - userInfo:@{NSLocalizedDescriptionKey: @"Apple Pay is not supported on this device"}]); - } - return; - - } - - NSString *encodedPaymentData; - NSError *error; - switch (self.configuration.applePayStatus) { - case BTClientApplePayStatusOff: - error = [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTErrorUnsupported - userInfo:@{ NSLocalizedDescriptionKey: @"Apple Pay is not enabled for this merchant. Please ensure that Apple Pay is enabled in the control panel and then try saving an Apple Pay payment method again." }]; - [[BTLogger sharedLogger] warning:error.localizedDescription]; - break; - case BTClientApplePayStatusMock: { - NSDictionary *mockPaymentDataDictionary = @{ - @"version": @"hello-version", - @"data": @"hello-data", - @"header": @{ - @"transactionId": @"hello-transaction-id", - @"ephemeralPublicKey": @"hello-ephemeral-public-key", - @"publicKeyHash": @"hello-public-key-hash" - }}; - NSError *error; - NSData *paymentData = [NSJSONSerialization dataWithJSONObject:mockPaymentDataDictionary options:0 error:&error]; - NSAssert(error == nil, @"Unexpected JSON serialization error: %@", error); - encodedPaymentData = [paymentData base64EncodedStringWithOptions:0]; - break; - } - - case BTClientApplePayStatusProduction: - if (!payment) { - [[BTLogger sharedLogger] warning:@"-[BTClient saveApplePayPayment:success:failure:] received nil payment."]; - NSError *error = [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTErrorUnsupported - userInfo:@{NSLocalizedDescriptionKey: @"A valid PKPayment is required in production"}]; - if (failureBlock) { - failureBlock(error); - } - return; - } - - encodedPaymentData = [payment.token.paymentData base64EncodedStringWithOptions:0]; - break; - default: - return; - } - - if (error) { - if (failureBlock) { - failureBlock(error); - } - return; - } - - NSMutableDictionary *tokenParameterValue = [NSMutableDictionary dictionary]; - if (encodedPaymentData) { - tokenParameterValue[@"paymentData"] = encodedPaymentData; - } - - // iOS 9 path: PKPaymentToken -paymentMethod is new in iOS 9 - if ([payment.token respondsToSelector:@selector(paymentMethod)]) { - if (payment.token.paymentMethod.network) { - tokenParameterValue[@"paymentNetwork"] = payment.token.paymentMethod.network; - } - - if (payment.token.paymentMethod.displayName) { - tokenParameterValue[@"paymentInstrumentName"] = payment.token.paymentMethod.displayName; - } - } else { - // iOS 8 path: methods were deprecated in iOS 9 -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - if (payment.token.paymentInstrumentName) { - tokenParameterValue[@"paymentInstrumentName"] = payment.token.paymentInstrumentName; - } - - if (payment.token.paymentNetwork) { - tokenParameterValue[@"paymentNetwork"] = payment.token.paymentNetwork; - } -#pragma clang diagnostic pop - } - - if (payment.token.transactionIdentifier) { - tokenParameterValue[@"transactionIdentifier"] = payment.token.transactionIdentifier; - } - - NSMutableDictionary *requestParameters = [self metaPostParameters]; - [requestParameters addEntriesFromDictionary:@{ @"applePaymentToken": tokenParameterValue, - @"authorization_fingerprint": self.clientToken.authorizationFingerprint, - }]; - - [self.clientApiHttp POST:@"v1/payment_methods/apple_payment_tokens" parameters:requestParameters completion:^(BTHTTPResponse *response, NSError *error){ - if (response.isSuccess) { - if (successBlock){ - NSArray *applePayCards = [response.object arrayForKey:@"applePayCards" withValueTransformer:[BTClientPaymentMethodValueTransformer sharedInstance]]; - - BTMutableApplePayPaymentMethod *paymentMethod = [applePayCards firstObject]; - - paymentMethod.shippingMethod = payment.shippingMethod; - - // iOS 9 path: shippingContact and billingContact are new in iOS 9 - if ([payment respondsToSelector:@selector(shippingContact)]) { - paymentMethod.shippingContact = payment.shippingContact; - paymentMethod.billingContact = payment.billingContact; - } - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - // To ensure backwards compatibility with old iOS 8 code, always pass through the deprecated addresses, even on iOS 9 devices - paymentMethod.shippingAddress = payment.shippingAddress; - paymentMethod.billingAddress = payment.billingAddress; -#pragma clang diagnostic pop - - successBlock([paymentMethod copy]); - } - } else { - if (failureBlock) { - NSDictionary *userInfo; - if (error) { - userInfo = @{NSUnderlyingErrorKey: error, - @"statusCode": @(response.statusCode)}; - } - failureBlock([NSError errorWithDomain:BTBraintreeAPIErrorDomain code:BTUnknownError userInfo:userInfo]); - } - } - }]; -} -#endif - -- (void)savePaypalPaymentMethodWithAuthCode:(NSString *)authCode - applicationCorrelationID:(NSString *)correlationId - success:(BTClientPaypalSuccessBlock)successBlock - failure:(BTClientFailureBlock)failureBlock { - return [self savePaypalPaymentMethodWithAuthCode:authCode - optionalApplicationCorrelationID:correlationId - success:successBlock - failure:failureBlock]; -} - -// Required since correlationId in the signature above is __nonnull -- (void)savePaypalPaymentMethodWithAuthCode:(NSString *)authCode - optionalApplicationCorrelationID:(NSString *)correlationId - success:(BTClientPaypalSuccessBlock)successBlock - failure:(BTClientFailureBlock)failureBlock { - NSMutableDictionary *requestParameters = [self metaPostParameters]; - // To preserve backwards compatibility - only set shouldValidate to FALSE when requesting additional scopes - BOOL shouldValidate = [self.additionalPayPalScopes count] == 0; - [requestParameters addEntriesFromDictionary:@{ @"paypal_account": @{ - @"consent_code": authCode ?: NSNull.null, - @"correlation_id": correlationId ?: NSNull.null, - @"options": @{@"validate": @(shouldValidate)} - }, - @"authorization_fingerprint": self.clientToken.authorizationFingerprint - - }]; - - [self.clientApiHttp POST:@"v1/payment_methods/paypal_accounts" parameters:requestParameters completion:^(BTHTTPResponse *response, NSError *error){ - if (response.isSuccess) { - if (successBlock){ - NSArray *payPalPaymentMethods = [response.object arrayForKey:@"paypalAccounts" withValueTransformer:[BTClientPaymentMethodValueTransformer sharedInstance]]; - BTPayPalPaymentMethod *payPalPaymentMethod = [payPalPaymentMethods firstObject]; - - successBlock(payPalPaymentMethod); - } - } else { - if (failureBlock) { - failureBlock([NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTUnknownError // TODO - use a client error code - userInfo:@{NSUnderlyingErrorKey: error}]); - } - } - }]; -} - -// Deprecated -- (void)savePaypalPaymentMethodWithAuthCode:(NSString *)authCode - success:(BTClientPaypalSuccessBlock)successBlock - failure:(BTClientFailureBlock)failureBlock { - [self savePaypalPaymentMethodWithAuthCode:authCode - optionalApplicationCorrelationID:nil - success:successBlock - failure:failureBlock]; -} - -// Deprecated -- (void)savePaypalPaymentMethodWithAuthCode:(NSString *)authCode - correlationId:(NSString *)correlationId - success:(BTClientPaypalSuccessBlock)successBlock - failure:(BTClientFailureBlock)failureBlock { - [self savePaypalPaymentMethodWithAuthCode:authCode - applicationCorrelationID:correlationId - success:successBlock - failure:failureBlock]; -} - -- (void)postAnalyticsEvent:(NSString *)eventKind - success:(BTClientAnalyticsSuccessBlock)successBlock - failure:(BTClientFailureBlock)failureBlock { - - if (self.configuration.analyticsEnabled) { - NSMutableDictionary *requestParameters = [self metaAnalyticsParameters]; - [requestParameters addEntriesFromDictionary:@{ @"analytics": @[@{ @"kind": eventKind }], - @"authorization_fingerprint": self.clientToken.authorizationFingerprint - }]; - - [[BTLogger sharedLogger] debug:@"BTClient postAnalyticsEvent:%@ session:%@", eventKind, self.metadata.sessionId]; - - [self.analyticsHttp POST:@"/" - parameters:requestParameters - completion:^(BTHTTPResponse *response, NSError *error) { - if (response.isSuccess) { - if (successBlock) { - successBlock(); - } - } else { - if (failureBlock) { - failureBlock(error); - } - } - }]; - } else { - if (successBlock) { - successBlock(); - } - } -} - -#pragma mark 3D Secure Lookup - -- (void)lookupNonceForThreeDSecure:(NSString *)nonce - transactionAmount:(NSDecimalNumber *)amount - success:(BTClientThreeDSecureLookupSuccessBlock)successBlock - failure:(BTClientFailureBlock)failureBlock { - NSMutableDictionary *requestParameters = [@{ @"authorization_fingerprint": self.clientToken.authorizationFingerprint, - @"amount": amount } mutableCopy]; - if (self.configuration.merchantAccountId) { - requestParameters[@"merchant_account_id"] = self.configuration.merchantAccountId; - } - NSString *urlSafeNonce = [nonce stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLPathAllowedCharacterSet]]; - [self.clientApiHttp POST:[NSString stringWithFormat:@"v1/payment_methods/%@/three_d_secure/lookup", urlSafeNonce] - parameters:requestParameters - completion:^(BTHTTPResponse *response, NSError *error){ - if (response.isSuccess) { - if (successBlock) { - BTThreeDSecureLookupResult *lookup = [[BTThreeDSecureLookupResult alloc] init]; - - BTAPIResponseParser *lookupResponse = [response.object responseParserForKey:@"lookup"]; - lookup.acsURL = [lookupResponse URLForKey:@"acsUrl"]; - lookup.PAReq = [lookupResponse stringForKey:@"pareq"]; - lookup.MD = [lookupResponse stringForKey:@"md"]; - lookup.termURL = [lookupResponse URLForKey:@"termUrl"]; - BTPaymentMethod *paymentMethod = [response.object objectForKey:@"paymentMethod" - withValueTransformer:[BTClientPaymentMethodValueTransformer sharedInstance]]; - if ([paymentMethod isKindOfClass:[BTCardPaymentMethod class]]) { - lookup.card = (BTCardPaymentMethod *)paymentMethod; - } - successBlock(lookup); - } - } else { - if (failureBlock) { - if (response.statusCode == 422) { - NSString *errorMessage = [[response.object responseParserForKey:@"error"] stringForKey:@"message"]; - NSDictionary *threeDSecureInfo = [response.object dictionaryForKey:@"threeDSecureInfo"]; - NSMutableDictionary *userInfo = [NSMutableDictionary dictionary]; - if (errorMessage) { - userInfo[NSLocalizedDescriptionKey] = errorMessage; - } - if (threeDSecureInfo) { - userInfo[BTThreeDSecureInfoKey] = threeDSecureInfo; - } - NSDictionary *errors = [response.object dictionaryForKey:@"error"]; - if (errors) { - userInfo[BTCustomerInputBraintreeValidationErrorsKey] = errors; - } - failureBlock([NSError errorWithDomain:error.domain - code:error.code - userInfo:userInfo]); - } else { - failureBlock(error); - } - } - } - }]; - -} - -- (void)saveCoinbaseAccount:(id)coinbaseAuthResponse - storeInVault:(BOOL)storeInVault - success:(BTClientCoinbaseSuccessBlock)successBlock - failure:(BTClientFailureBlock)failureBlock { - if (![coinbaseAuthResponse isKindOfClass:[NSDictionary class]]) { - if (failureBlock) { - failureBlock([NSError errorWithDomain:BTBraintreeAPIErrorDomain code:BTCustomerInputErrorInvalid userInfo:@{NSLocalizedDescriptionKey: @"Received an invalid Coinbase response for tokenization, expected an NSDictionary"}]); - } - return; - } - - if (storeInVault) { - NSMutableDictionary *mutableCoinbaseAuthResponse = [coinbaseAuthResponse mutableCopy]; - mutableCoinbaseAuthResponse[@"options"] = @{ @"store_in_vault": @YES }; - coinbaseAuthResponse = mutableCoinbaseAuthResponse; - } - - NSMutableDictionary *parameters = [self metaPostParameters]; - parameters[@"coinbase_account"] = coinbaseAuthResponse; - parameters[@"authorization_fingerprint"] = self.clientToken.authorizationFingerprint; - - [self.clientApiHttp POST:@"v1/payment_methods/coinbase_accounts" - parameters:parameters - completion:^(BTHTTPResponse *response, NSError *error){ - if (response.isSuccess) { - if (successBlock) { - BTCoinbasePaymentMethod *paymentMethod = [[response.object arrayForKey:@"coinbaseAccounts" - withValueTransformer:[BTClientPaymentMethodValueTransformer sharedInstance]] firstObject]; - - successBlock(paymentMethod); - } - } else { - if (failureBlock) { - NSError *returnedError = error; - if (error.domain == BTBraintreeAPIErrorDomain && error.code == BTCustomerInputErrorInvalid) { - returnedError = [NSError errorWithDomain:error.domain - code:error.code - userInfo:@{BTCustomerInputBraintreeValidationErrorsKey: response.rawObject}]; - } - failureBlock(returnedError); - } - } - }]; -} - -#pragma mark Braintree Analytics - -- (void)postAnalyticsEvent:(NSString *)eventKind { - [self postAnalyticsEvent:eventKind success:nil failure:nil]; -} - - -#pragma mark - - -- (NSMutableDictionary *)metaPostParameters { - return [self mutableDictionaryCopyWithClientMetadata:nil]; -} - -- (NSMutableDictionary *)metaAnalyticsParameters { - return [self mutableDictionaryCopyWithClientMetadata:@{@"_meta": [BTAnalyticsMetadata metadata]}]; -} - -- (NSMutableDictionary *)mutableDictionaryCopyWithClientMetadata:(NSDictionary *)parameters { - NSMutableDictionary *result = parameters ? [parameters mutableCopy] : [NSMutableDictionary dictionary]; - NSDictionary *metaValue = result[@"_meta"]; - if (![metaValue isKindOfClass:[NSDictionary class]]) { - metaValue = @{}; - } - NSMutableDictionary *mutableMetaValue = [metaValue mutableCopy]; - mutableMetaValue[@"integration"] = self.metadata.integrationString; - mutableMetaValue[@"source"] = self.metadata.sourceString; - mutableMetaValue[@"sessionId"] = self.metadata.sessionId; - - result[@"_meta"] = mutableMetaValue; - return result; -} - - -#pragma mark - Debug - -- (NSString *)description { - return [NSString stringWithFormat:@"", self, self.clientApiHttp, self.analyticsHttp]; -} - -#pragma mark - Library Version - -+ (NSString *)libraryVersion { - return BRAINTREE_VERSION; -} - -- (BOOL)isEqualToClient:(BTClient *)client { - return ((self.clientToken == client.clientToken) || [self.clientToken isEqual:client.clientToken]) && - ((self.configuration == client.configuration) || [self.configuration isEqual:client.configuration]); -} - -- (BOOL)isEqual:(id)object { - if (self == object) { - return YES; - } - - if ([object isKindOfClass:[BTClient class]]) { - return [self isEqualToClient:object]; - } - - return NO; -} - -#pragma mark - BTClient_Metadata - -- (void)setMetadata:(BTClientMetadata *)metadata { - _metadata = metadata; -} - -- (instancetype)copyWithMetadata:(void (^)(BTClientMutableMetadata *metadata))metadataBlock { - BTClientMutableMetadata *mutableMetadata = [self.metadata mutableCopy]; - if (metadataBlock) { - metadataBlock(mutableMetadata); - } - BTClient *copiedClient = [self copy]; - copiedClient.metadata = mutableMetadata; - return copiedClient; -} - -@end diff --git a/Pods/Braintree/Braintree/API/Client/BTClientMetadata.h b/Pods/Braintree/Braintree/API/Client/BTClientMetadata.h deleted file mode 100644 index ffbfcde..0000000 --- a/Pods/Braintree/Braintree/API/Client/BTClientMetadata.h +++ /dev/null @@ -1,38 +0,0 @@ -#import - -typedef NS_ENUM(NSInteger, BTClientMetadataSourceType) { - BTClientMetadataSourcePayPalSDK, - BTClientMetadataSourcePayPalApp, - BTClientMetadataSourceVenmoApp, - BTClientMetadataSourceForm, - BTClientMetadataSourceUnknown, - BTClientMetadataSourceCoinbaseApp, - BTClientMetadataSourceCoinbaseBrowser, -}; - -typedef NS_ENUM(NSInteger, BTClientMetadataIntegrationType) { - BTClientMetadataIntegrationCustom, - BTClientMetadataIntegrationDropIn, - BTClientMetadataIntegrationUnknown -}; - -@interface BTClientMetadata : NSObject - -@property (nonatomic, assign, readonly) BTClientMetadataIntegrationType integration; -@property (nonatomic, assign, readonly) BTClientMetadataSourceType source; - -@property (nonatomic, copy, readonly) NSString *integrationString; -@property (nonatomic, copy, readonly) NSString *sourceString; - -/// Auto-generated UUID -@property (nonatomic, copy, readonly) NSString *sessionId; - -@end - -@interface BTClientMutableMetadata : BTClientMetadata - -- (void)setIntegration:(BTClientMetadataIntegrationType)integration; -- (void)setSource:(BTClientMetadataSourceType)source; -- (void)setSessionId:(NSString *)sessionId; - -@end diff --git a/Pods/Braintree/Braintree/API/Client/BTClientMetadata.m b/Pods/Braintree/Braintree/API/Client/BTClientMetadata.m deleted file mode 100644 index d570906..0000000 --- a/Pods/Braintree/Braintree/API/Client/BTClientMetadata.m +++ /dev/null @@ -1,96 +0,0 @@ -#import "BTClientMetadata.h" - -@interface BTClientMetadata () { - @protected - BTClientMetadataIntegrationType _integration; - BTClientMetadataSourceType _source; - NSString *_sessionId; -} -@end - -@implementation BTClientMetadata - -- (instancetype)init { - self = [super init]; - if (self) { - _integration = BTClientMetadataIntegrationCustom; - _source = BTClientMetadataSourceUnknown; - _sessionId = [[[NSUUID UUID] UUIDString] stringByReplacingOccurrencesOfString:@"-" withString:@""]; - } - return self; -} - -- (id)copyWithZone:(NSZone *)zone { - BTClientMetadata *copiedMetadata = [[BTClientMetadata allocWithZone:zone] init]; - copiedMetadata->_integration = _integration; - copiedMetadata->_source = _source; - copiedMetadata->_sessionId = [_sessionId copyWithZone:zone]; - return copiedMetadata; -} - -- (id)mutableCopyWithZone:(NSZone *)zone { - BTClientMutableMetadata *mutableMetadata = [[BTClientMutableMetadata allocWithZone:zone] init]; - mutableMetadata.integration = _integration; - mutableMetadata.source = _source; - mutableMetadata.sessionId = [_sessionId copyWithZone:zone]; - return mutableMetadata; -} - -- (NSString *)integrationString { - return [[self class] integrationToString:self.integration]; -} - -- (NSString *)sourceString { - return [[self class] sourceToString:self.source]; -} - -#pragma mark Internal helpers - -+ (NSString *)integrationToString:(BTClientMetadataIntegrationType)integration { - switch (integration) { - case BTClientMetadataIntegrationCustom: - return @"custom"; - case BTClientMetadataIntegrationDropIn: - return @"dropin"; - default: - return @"unknown"; - } -} - -+ (NSString *)sourceToString:(BTClientMetadataSourceType)source { - switch (source) { - case BTClientMetadataSourcePayPalSDK: - return @"paypal-sdk"; - case BTClientMetadataSourcePayPalApp: - return @"paypal-app"; - case BTClientMetadataSourceVenmoApp: - return @"venmo-app"; - case BTClientMetadataSourceForm: - return @"form"; - case BTClientMetadataSourceCoinbaseApp: - return @"coinbase-app"; - case BTClientMetadataSourceCoinbaseBrowser: - return @"coinbase-browser"; - default: - return @"unknown"; - } -} - -@end - - -@implementation BTClientMutableMetadata - -- (void)setIntegration:(BTClientMetadataIntegrationType)integration { - _integration = integration; -} - -- (void)setSource:(BTClientMetadataSourceType)source { - _source = source; -} - -- (void)setSessionId:(NSString *)sessionId { - _sessionId = sessionId; -} - -@end diff --git a/Pods/Braintree/Braintree/API/Client/BTClientPaymentMethodValueTransformer.h b/Pods/Braintree/Braintree/API/Client/BTClientPaymentMethodValueTransformer.h deleted file mode 100644 index 1a49b4d..0000000 --- a/Pods/Braintree/Braintree/API/Client/BTClientPaymentMethodValueTransformer.h +++ /dev/null @@ -1,13 +0,0 @@ -#import - -#import "BTAPIResponseParser.h" -#import "BTPaymentMethod.h" -#import "BTCardPaymentMethod.h" -#import "BTPayPalPaymentMethod.h" -#import "BTApplePayPaymentMethod.h" - -@interface BTClientPaymentMethodValueTransformer : NSObject - -+ (instancetype)sharedInstance; - -@end diff --git a/Pods/Braintree/Braintree/API/Client/BTClientPaymentMethodValueTransformer.m b/Pods/Braintree/Braintree/API/Client/BTClientPaymentMethodValueTransformer.m deleted file mode 100644 index 4f7989c..0000000 --- a/Pods/Braintree/Braintree/API/Client/BTClientPaymentMethodValueTransformer.m +++ /dev/null @@ -1,104 +0,0 @@ -#import "BTClientPaymentMethodValueTransformer.h" -#import "BTAPIResponseParser.h" -#import "BTMutablePaymentMethod.h" -#import "BTMutableCardPaymentMethod.h" -#import "BTMutablePayPalPaymentMethod.h" -#import "BTMutableApplePayPaymentMethod.h" -#import "BTCoinbasePaymentMethod_Internal.h" -#import "BTPostalAddress.h" -#import "BTPostalAddress_Internal.h" - -@implementation BTClientPaymentMethodValueTransformer - -+ (instancetype)sharedInstance { - static BTClientPaymentMethodValueTransformer *instance; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - instance = [[self alloc] init]; - }); - return instance; -} - -- (id)transformedValue:(id)value { - if (![value isKindOfClass:[NSDictionary class]]) { - return nil; - } - - BTAPIResponseParser *responseParser = [BTAPIResponseParser parserWithDictionary:value]; - - BTPaymentMethod *paymentMethod; - - NSString *type = [responseParser stringForKey:@"type"]; - if ([type isEqualToString:@"CreditCard"]) { - BTMutableCardPaymentMethod *card = [[BTMutableCardPaymentMethod alloc] init]; - - card.description = [responseParser stringForKey:@"description"]; - card.typeString = [[responseParser responseParserForKey:@"details"] stringForKey:@"cardType"]; - card.lastTwo = [[responseParser responseParserForKey:@"details"] stringForKey:@"lastTwo"]; - card.challengeQuestions = [responseParser setForKey:@"securityQuestions"]; - card.nonce = [responseParser stringForKey:@"nonce"]; - NSDictionary *threeDSecureInfoDict = [responseParser dictionaryForKey:@"threeDSecureInfo"]; - if (threeDSecureInfoDict) { - card.threeDSecureInfoDictionary = threeDSecureInfoDict; - } - paymentMethod = card; - } else if ([type isEqualToString:@"PayPalAccount"]) { - BTMutablePayPalPaymentMethod *payPal = [[BTMutablePayPalPaymentMethod alloc] init]; - - payPal.nonce = [responseParser stringForKey:@"nonce"]; - - BTAPIResponseParser *detailsParser = [responseParser responseParserForKey:@"details"]; - payPal.email = [detailsParser stringForKey:@"email"]; - NSDictionary *payerInfoDict = [detailsParser dictionaryForKey:@"payerInfo"]; - if (payerInfoDict && payerInfoDict[BTPostalAddressKeyAccountAddress]) { - NSDictionary *addressDictionary = payerInfoDict[BTPostalAddressKeyAccountAddress]; - payPal.billingAddress = [[BTPostalAddress alloc] init]; - payPal.billingAddress.streetAddress = addressDictionary[BTPostalAddressKeyStreetAddress]; - payPal.billingAddress.extendedAddress = addressDictionary[BTPostalAddressKeyExtendedAddress]; - payPal.billingAddress.locality = addressDictionary[BTPostalAddressKeyLocality]; - payPal.billingAddress.region = addressDictionary[BTPostalAddressKeyRegion]; - payPal.billingAddress.postalCode = addressDictionary[BTPostalAddressKeyPostalCode]; - payPal.billingAddress.countryCodeAlpha2 = addressDictionary[BTPostalAddressKeyCountry]; - } - - // Braintree gateway has some inconsistent behavior depending on - // the type of nonce, and sometimes returns "PayPal" for description, - // and sometimes returns a real identifying string. The former is not - // desirable for display. The latter is. - // As a workaround, we ignore descriptions that look like "PayPal". - id description = [responseParser stringForKey:@"description"]; - if (![[description lowercaseString] isEqualToString:@"paypal"]) { - payPal.description = description; - } - - paymentMethod = payPal; -#ifdef BT_ENABLE_APPLE_PAY - } else if ([type isEqualToString:@"ApplePayCard"]) { - BTMutableApplePayPaymentMethod *card = [[BTMutableApplePayPaymentMethod alloc] init]; - - card.nonce = [responseParser stringForKey:@"nonce"]; - card.description = [responseParser stringForKey:@"description"]; - card.challengeQuestions = [responseParser setForKey:@"securityQuestions"]; - - paymentMethod = card; -#endif - } else if ([type isEqualToString:@"CoinbaseAccount"]) { - BTCoinbasePaymentMethod *coinbaseAccount = [[BTCoinbasePaymentMethod alloc] init]; - coinbaseAccount.nonce = [responseParser stringForKey:@"nonce"]; - coinbaseAccount.email = [[responseParser responseParserForKey:@"details"] stringForKey:@"email"]; - coinbaseAccount.description = coinbaseAccount.email; - paymentMethod = coinbaseAccount; - } else { - BTMutablePaymentMethod *genericPaymentMethod = [[BTMutablePaymentMethod alloc] init]; - - genericPaymentMethod.nonce = [responseParser stringForKey:@"nonce"]; - genericPaymentMethod.description = [responseParser stringForKey:@"description"]; - genericPaymentMethod.challengeQuestions = [responseParser setForKey:@"securityQuestions"]; - - paymentMethod = genericPaymentMethod; - } - - return paymentMethod; -} - -@end diff --git a/Pods/Braintree/Braintree/API/Client/BTClientStore.h b/Pods/Braintree/Braintree/API/Client/BTClientStore.h deleted file mode 100644 index e86b2ef..0000000 --- a/Pods/Braintree/Braintree/API/Client/BTClientStore.h +++ /dev/null @@ -1,11 +0,0 @@ -#import -#import "BTClient.h" - -@interface BTClientStore : NSObject - -- (instancetype)initWithIdentifier:(NSString *)identifier; - -- (void)storeClient:(BTClient *)client; -- (BTClient *)fetchClient; - -@end diff --git a/Pods/Braintree/Braintree/API/Client/BTClientStore.m b/Pods/Braintree/Braintree/API/Client/BTClientStore.m deleted file mode 100644 index 7457f16..0000000 --- a/Pods/Braintree/Braintree/API/Client/BTClientStore.m +++ /dev/null @@ -1,44 +0,0 @@ -#import "BTClientStore.h" -#import "BTKeychain.h" -#import "BTClient_Internal.h" - -@interface BTClientStore () - -@property (nonatomic, copy, readonly) NSString *keychainKey; - -@end - -static NSString *const keyPrefix = @"BTAppSwitchClientStore."; - -@implementation BTClientStore - -- (instancetype)initWithIdentifier:(NSString *)identifier { - self = [self init]; - if (self) { - _keychainKey = [NSString stringWithFormat:@"%@%@", keyPrefix, identifier]; - } - return self; -} - -- (BTClient *)fetchClient { - NSData *clientData = [BTKeychain dataForKey:self.keychainKey]; - if (clientData == nil) { - return nil; - } - - NSKeyedUnarchiver *decoder = [[NSKeyedUnarchiver alloc] initForReadingWithData:clientData]; - BTClient *client = [[BTClient alloc] initWithCoder:decoder]; - [decoder finishDecoding]; - return client; -} - -- (void)storeClient:(BTClient *)client { - NSMutableData *clientData = [NSMutableData data]; - NSKeyedArchiver *coder = [[NSKeyedArchiver alloc] initForWritingWithMutableData:clientData]; - [client encodeWithCoder:coder]; - [coder finishEncoding]; - - [BTKeychain setData:clientData forKey:self.keychainKey]; -} - -@end diff --git a/Pods/Braintree/Braintree/API/Client/BTClientToken.m b/Pods/Braintree/Braintree/API/Client/BTClientToken.m deleted file mode 100644 index 31af9d1..0000000 --- a/Pods/Braintree/Braintree/API/Client/BTClientToken.m +++ /dev/null @@ -1,208 +0,0 @@ -#import "BTClientToken.h" -#import "BTAPIResponseParser.h" -#import "BTClientTokenApplePayStatusValueTransformer.h" -#import "BTClientTokenApplePayPaymentNetworksValueTransformer.h" -#import "BTClientTokenBooleanValueTransformer.h" - -NSString *const BTClientTokenKeyVersion = @"version"; -NSString *const BTClientTokenKeyAuthorizationFingerprint = @"authorizationFingerprint"; -NSString *const BTClientTokenKeyConfigURL = @"configUrl"; - -@interface BTClientToken () - -@property (nonatomic, readwrite, strong) BTAPIResponseParser *clientTokenParser; -@property (nonatomic, readwrite, copy) NSString *authorizationFingerprint; -@property (nonatomic, readwrite, strong) NSURL *configURL; - -/// Returns an incomplete client token for manual initialization -- (instancetype)init NS_DESIGNATED_INITIALIZER; - -@end - -@implementation BTClientToken - -- (instancetype)init { - return [super init]; -} - -- (instancetype)initWithClientTokenString:(NSString *)JSONString error:(NSError * __autoreleasing *)error { - self = [super init]; - if (self) { - // Client token must be decoded first because the other values are retrieved from it - self.clientTokenParser = [self decodeClientToken:JSONString error:error]; - self.authorizationFingerprint = [self.clientTokenParser stringForKey:BTClientTokenKeyAuthorizationFingerprint]; - self.configURL = [self.clientTokenParser URLForKey:BTClientTokenKeyConfigURL]; - - if (![self validateClientToken:error]) { - return nil; - } - } - return self; -} - -- (BOOL)validateClientToken:(NSError *__autoreleasing*)error { - if (error != NULL && *error) { - return NO; - } - - if ([self.authorizationFingerprint length] == 0) { - if (error != NULL) { - *error = [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTMerchantIntegrationErrorInvalidClientToken - userInfo:@{ - NSLocalizedDescriptionKey: @"Invalid client token. Please ensure your server is generating a valid Braintree ClientToken.", - NSLocalizedFailureReasonErrorKey: @"Authorization fingerprint was not present or invalid." }]; - } - return NO; - } - - if (![self.configURL isKindOfClass:[NSURL class]] || self.configURL.absoluteString.length == 0) { - if (error != NULL) { - *error = [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTMerchantIntegrationErrorInvalidClientToken - userInfo:@{ - NSLocalizedDescriptionKey: @"Invalid client token: config url was missing or invalid. Please ensure your server is generating a valid Braintree ClientToken." - }]; - } - return NO; - } - - return YES; -} - - -- (instancetype)copyWithZone:(NSZone *)zone { - BTClientToken *copiedClientToken = [[[self class] allocWithZone:zone] init]; - copiedClientToken.authorizationFingerprint = [_authorizationFingerprint copy]; - copiedClientToken.configURL = [_configURL copy]; - copiedClientToken.clientTokenParser = [self.clientTokenParser copy]; - return copiedClientToken; -} - - -#pragma mark JSON Parsing - -- (NSDictionary *)parseJSONString:(NSString *)rawJSONString error:(NSError * __autoreleasing *)error { - NSData *rawJSONData = [rawJSONString dataUsingEncoding:NSUTF8StringEncoding]; - - return [NSJSONSerialization JSONObjectWithData:rawJSONData options:0 error:error]; -} - - -#pragma mark NSCoding - -- (void)encodeWithCoder:(NSCoder *)coder { - [coder encodeObject:self.configURL forKey:@"configURL"]; - [coder encodeObject:self.authorizationFingerprint forKey:@"authorizationFingerprint"]; - [coder encodeObject:self.clientTokenParser forKey:@"claims"]; -} - -- (id)initWithCoder:(NSCoder *)decoder { - self = [self init]; - if (self){ - self.configURL = [decoder decodeObjectForKey:@"configURL"]; - self.authorizationFingerprint = [decoder decodeObjectForKey:@"authorizationFingerprint"]; - self.clientTokenParser = [decoder decodeObjectForKey:@"claims"]; - } - return self; -} - -#pragma mark Client Token Parsing - -- (BTAPIResponseParser *)decodeClientToken:(NSString *)rawClientTokenString error:(NSError * __autoreleasing *)error { - NSError *JSONError; - NSData *base64DecodedClientToken = [[NSData alloc] initWithBase64EncodedString:rawClientTokenString - options:0]; - - NSDictionary *rawClientToken; - if (base64DecodedClientToken) { - rawClientToken = [NSJSONSerialization JSONObjectWithData:base64DecodedClientToken options:0 error:&JSONError]; - } else { - rawClientToken = [self parseJSONString:rawClientTokenString error:&JSONError]; - } - - if (!rawClientToken) { - if (error) { - *error = [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTMerchantIntegrationErrorInvalidClientToken - userInfo:@{ NSUnderlyingErrorKey: JSONError, - NSLocalizedDescriptionKey: @"Invalid client token. Please ensure your server is generating a valid Braintree ClientToken.", - NSLocalizedFailureReasonErrorKey: @"Invalid JSON" }]; - } - return nil; - } - - if (![rawClientToken isKindOfClass:[NSDictionary class]]) { - if (error) { - *error = [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTMerchantIntegrationErrorInvalidClientToken - userInfo:@{ - NSLocalizedDescriptionKey: @"Invalid client token. Please ensure your server is generating a valid Braintree ClientToken.", - NSLocalizedFailureReasonErrorKey: @"Invalid JSON. Expected to find an object at JSON root." - }]; - } - return nil; - } - - NSError *clientTokenFormatError = [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTMerchantIntegrationErrorInvalidClientToken - userInfo:@{ - NSLocalizedDescriptionKey: @"Invalid client token format. Please pass the client token string directly as it is generated by the server-side SDK.", - NSLocalizedFailureReasonErrorKey: @"Unsupported client token format." - }]; - - switch ([rawClientToken[BTClientTokenKeyVersion] integerValue]) { - case 1: - if (base64DecodedClientToken) { - if (error) { - *error = clientTokenFormatError; - } - return nil; - } - break; - case 2: - /* FALLTHROUGH */ - case 3: - if (!base64DecodedClientToken) { - if (error) { - *error = clientTokenFormatError; - } - return nil; - } - break; - default: - if (error) { - *error = [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTMerchantIntegrationErrorInvalidClientToken - userInfo:@{ - NSLocalizedDescriptionKey: @"Invalid client token version. Please ensure your server is generating a valid Braintree ClientToken with a server-side SDK that is compatible with this version of Braintree iOS.", - NSLocalizedFailureReasonErrorKey: @"Unsupported client token version." - }]; - } - return nil; - } - - return [BTAPIResponseParser parserWithDictionary:rawClientToken]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"", self.authorizationFingerprint, self.configURL]; -} - -- (BOOL)isEqualToClientToken:(BTClientToken *)clientToken { - return (self.clientTokenParser == clientToken.clientTokenParser) || [self.clientTokenParser isEqual:clientToken.clientTokenParser]; -} - -- (BOOL)isEqual:(id)object { - if (self == object) { - return YES; - } - - if ([object isKindOfClass:[BTClientToken class]]) { - return [self isEqualToClientToken:object]; - } - - return NO; -} - -@end diff --git a/Pods/Braintree/Braintree/API/Client/BTClientTokenApplePayPaymentNetworksValueTransformer.h b/Pods/Braintree/Braintree/API/Client/BTClientTokenApplePayPaymentNetworksValueTransformer.h deleted file mode 100644 index f69434e..0000000 --- a/Pods/Braintree/Braintree/API/Client/BTClientTokenApplePayPaymentNetworksValueTransformer.h +++ /dev/null @@ -1,12 +0,0 @@ -#if BT_ENABLE_APPLE_PAY -#import -@import PassKit; - -#import "BTAPIResponseParser.h" - -@interface BTClientTokenApplePayPaymentNetworksValueTransformer : NSObject - -+ (instancetype)sharedInstance; - -@end -#endif diff --git a/Pods/Braintree/Braintree/API/Client/BTClientTokenApplePayPaymentNetworksValueTransformer.m b/Pods/Braintree/Braintree/API/Client/BTClientTokenApplePayPaymentNetworksValueTransformer.m deleted file mode 100644 index 0686192..0000000 --- a/Pods/Braintree/Braintree/API/Client/BTClientTokenApplePayPaymentNetworksValueTransformer.m +++ /dev/null @@ -1,33 +0,0 @@ -#if BT_ENABLE_APPLE_PAY -#import "BTClientTokenApplePayPaymentNetworksValueTransformer.h" - -@implementation BTClientTokenApplePayPaymentNetworksValueTransformer - -+ (instancetype)sharedInstance { - static BTClientTokenApplePayPaymentNetworksValueTransformer *instance; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - instance = [[self alloc] init]; - }); - return instance; -} - -- (id)transformedValue:(id)value { - if ([PKPaymentRequest class]) { - if ([value isEqualToString:@"amex"]) { - return PKPaymentNetworkAmex; - } else if ([value isEqualToString:@"visa"]) { - return PKPaymentNetworkVisa; - } else if ([value isEqualToString:@"mastercard"]) { - return PKPaymentNetworkMasterCard; - } else if (&PKPaymentNetworkDiscover != NULL && [value isEqualToString:@"discover"]) { - return PKPaymentNetworkDiscover; - } - } - - return [NSNull null]; -} - -@end -#endif - diff --git a/Pods/Braintree/Braintree/API/Client/BTClientTokenApplePayStatusValueTransformer.h b/Pods/Braintree/Braintree/API/Client/BTClientTokenApplePayStatusValueTransformer.h deleted file mode 100644 index 5771fa3..0000000 --- a/Pods/Braintree/Braintree/API/Client/BTClientTokenApplePayStatusValueTransformer.h +++ /dev/null @@ -1,13 +0,0 @@ -#if BT_ENABLE_APPLE_PAY -#import -@import PassKit; - - -#import "BTAPIResponseParser.h" - -@interface BTClientTokenApplePayStatusValueTransformer : NSObject - -+ (instancetype)sharedInstance; - -@end -#endif diff --git a/Pods/Braintree/Braintree/API/Client/BTClientTokenApplePayStatusValueTransformer.m b/Pods/Braintree/Braintree/API/Client/BTClientTokenApplePayStatusValueTransformer.m deleted file mode 100644 index 68f5345..0000000 --- a/Pods/Braintree/Braintree/API/Client/BTClientTokenApplePayStatusValueTransformer.m +++ /dev/null @@ -1,29 +0,0 @@ -#if BT_ENABLE_APPLE_PAY -#import "BTClientTokenApplePayStatusValueTransformer.h" -#import "BTClientToken.h" -#import "BTConfiguration.h" // For BTClientApplePayStatus* enums - -@implementation BTClientTokenApplePayStatusValueTransformer - -+ (instancetype)sharedInstance { - static BTClientTokenApplePayStatusValueTransformer *instance; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - instance = [[self alloc] init]; - }); - return instance; -} - -- (id)transformedValue:(id)value { - if ([value isEqualToString:@"off"]) { - return @(BTClientApplePayStatusOff); - } else if ([value isEqualToString:@"mock"]) { - return @(BTClientApplePayStatusMock); - } else if ([value isEqualToString:@"production"]) { - return @(BTClientApplePayStatusProduction); - } - return [NSNull null]; -} - -@end -#endif diff --git a/Pods/Braintree/Braintree/API/Client/BTClientTokenBooleanValueTransformer.h b/Pods/Braintree/Braintree/API/Client/BTClientTokenBooleanValueTransformer.h deleted file mode 100644 index 67fdeea..0000000 --- a/Pods/Braintree/Braintree/API/Client/BTClientTokenBooleanValueTransformer.h +++ /dev/null @@ -1,9 +0,0 @@ -#import - -#import "BTAPIResponseParser.h" - -@interface BTClientTokenBooleanValueTransformer : NSObject - -+ (instancetype)sharedInstance; - -@end diff --git a/Pods/Braintree/Braintree/API/Client/BTClientTokenBooleanValueTransformer.m b/Pods/Braintree/Braintree/API/Client/BTClientTokenBooleanValueTransformer.m deleted file mode 100644 index d7c8fb1..0000000 --- a/Pods/Braintree/Braintree/API/Client/BTClientTokenBooleanValueTransformer.m +++ /dev/null @@ -1,24 +0,0 @@ -#import "BTClientTokenBooleanValueTransformer.h" - -@implementation BTClientTokenBooleanValueTransformer - -+ (instancetype)sharedInstance { - static BTClientTokenBooleanValueTransformer *instance; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - instance = [[self alloc] init]; - }); - return instance; -} - -- (id)transformedValue:(id)value { - if ([value isKindOfClass:[NSNumber class]]) { - return value; - } else if ([value isKindOfClass:[NSString class]] && [value length] > 0) { - return @YES; - } else { - return @NO; - } -} - -@end diff --git a/Pods/Braintree/Braintree/API/Client/BTClient_Internal.h b/Pods/Braintree/Braintree/API/Client/BTClient_Internal.h deleted file mode 100644 index bbaf16d..0000000 --- a/Pods/Braintree/Braintree/API/Client/BTClient_Internal.h +++ /dev/null @@ -1,48 +0,0 @@ -#import "BTClient.h" -#import "BTHTTP.h" -#import "BTClientToken.h" -#import "BTConfiguration.h" -#import "BTClientMetadata.h" - -#import "BTThreeDSecureLookupResult.h" - -/// Success Block type for 3D Secure lookups -typedef void (^BTClientThreeDSecureLookupSuccessBlock)(BTThreeDSecureLookupResult *threeDSecureLookup); - -/// Block type that takes a `BTClient` or an error -typedef void (^BTClientCompletionBlock)(BTClient *client, NSError *error); - -@interface BTClient () -@property (nonatomic, strong, readwrite) BTHTTP *configHttp; -@property (nonatomic, strong, readwrite) BTHTTP *clientApiHttp; -@property (nonatomic, strong, readwrite) BTHTTP *analyticsHttp; - -/// Models the contents of the client token, as it is received from the merchant server -@property (nonatomic, strong) BTClientToken *clientToken; -@property (nonatomic, strong) BTConfiguration *configuration; -@property (nonatomic) BOOL hasConfiguration; // YES if configuration was retrieved directly from Braintree, rather than from the client token - -- (void)lookupNonceForThreeDSecure:(NSString *)nonce - transactionAmount:(NSDecimalNumber *)amount - success:(BTClientThreeDSecureLookupSuccessBlock)successBlock - failure:(BTClientFailureBlock)failureBlock; - -@property (nonatomic, copy, readonly) BTClientMetadata *metadata; - -/// Copy of the instance, but with different metadata -/// -/// Useful for temporary metadata overrides. -/// -/// @param metadataBlock block for customizing metadata -- (instancetype)copyWithMetadata:(void (^)(BTClientMutableMetadata *metadata))metadataBlock; - -/// Begins the setup of `BTClient` with a client token. -/// The client token dictates the behavior of subsequent operations. -/// -/// *Not used at this time.* Use -initWithClientToken: instead. -/// -/// @param clientTokenString Braintree client token -/// @param completionBlock callback will be called exactly once asynchronously, providing either an instance of BTClient upon success or an error upon failure. -+ (void)setupWithClientToken:(NSString *)clientTokenString completion:(BTClientCompletionBlock)completionBlock; - -@end diff --git a/Pods/Braintree/Braintree/API/Client/BTConfiguration.h b/Pods/Braintree/Braintree/API/Client/BTConfiguration.h deleted file mode 100644 index 580d2c1..0000000 --- a/Pods/Braintree/Braintree/API/Client/BTConfiguration.h +++ /dev/null @@ -1,128 +0,0 @@ -#import - -#import "BTClientToken.h" -#import "BTAPIResponseParser.h" -#import "BTErrors.h" - -typedef NS_ENUM(NSUInteger, BTClientApplePayStatus) { - BTClientApplePayStatusOff = 0, - BTClientApplePayStatusMock = 1, - BTClientApplePayStatusProduction = 2, -}; - -extern NSString *const BTConfigurationKeyClientApiURL; -extern NSString *const BTConfigurationKeyChallenges; -extern NSString *const BTConfigurationKeyAnalytics; -extern NSString *const BTConfigurationKeyURL; -extern NSString *const BTConfigurationKeyMerchantId; -extern NSString *const BTConfigurationKeyVersion; -extern NSString *const BTConfigurationKeyApplePay; -extern NSString *const BTConfigurationKeyStatus; -extern NSString *const BTConfigurationKeyMerchantAccountId; - -extern NSString *const BTConfigurationKeyPayPal; -extern NSString *const BTConfigurationKeyPayPalClientId; -extern NSString *const BTConfigurationKeyPayPalDirectBaseUrl; -extern NSString *const BTConfigurationKeyPayPalMerchantName; -extern NSString *const BTConfigurationKeyPayPalMerchantPrivacyPolicyUrl; -extern NSString *const BTConfigurationKeyPayPalMerchantUserAgreementUrl; -extern NSString *const BTConfigurationKeyPayPalEnvironment; -extern NSString *const BTConfigurationKeyPayPalEnabled; - -extern NSString *const BTConfigurationPayPalEnvironmentCustom; -extern NSString *const BTConfigurationPayPalEnvironmentLive; -extern NSString *const BTConfigurationPayPalEnvironmentOffline; - -extern NSString *const BTConfigurationKeyPayPalDisableAppSwitch; - -extern NSString *const BTConfigurationKeyVenmo; - -// For testing -extern NSString *const BTConfigurationKeyCoinbaseEnabled; -extern NSString *const BTConfigurationKeyCoinbase; -extern NSString *const BTConfigurationKeyCoinbaseClientId; -extern NSString *const BTConfigurationKeyCoinbaseMerchantAccount; -extern NSString *const BTConfigurationKeyCoinbaseScope; -extern NSString *const BTConfigurationKeyCoinbaseRedirectUri; - -// Default PayPal merchant name in offline mode -extern NSString *const BTConfigurationPayPalNonLiveDefaultValueMerchantName; - -// Default PayPal privacy policy URL in offline mode -extern NSString *const BTConfigurationPayPalNonLiveDefaultValueMerchantPrivacyPolicyUrl; - -// Default PayPal user agreement URL in offline mode -extern NSString *const BTConfigurationPayPalNonLiveDefaultValueMerchantUserAgreementUrl; - -@interface BTConfiguration : NSObject - -#pragma mark Braintree Client API - -@property (nonatomic, readonly, strong) NSURL *clientApiURL; -@property (nonatomic, readonly, strong) NSURL *analyticsURL; -@property (nonatomic, readonly, copy) NSString *merchantId; -@property (nonatomic, readonly, copy) NSString *merchantAccountId; - -- (BOOL)analyticsEnabled; - -#pragma mark Credit Card Processing - -@property (nonatomic, readonly, strong) NSSet *challenges; - -#pragma mark PayPal - -// Returns the PayPal client id determined by Braintree that -// can be used when initializing `PayPalMobile`. -// -// `nil` if PayPal is not enabled for the merchant. -- (NSString *)btPayPal_clientId; - -// Returns a boolean if PayPal is enabled. -- (BOOL) btPayPal_isPayPalEnabled; - -// Returns the PayPal environment name -- (NSString *)btPayPal_environment; - -- (BOOL)btPayPal_isTouchDisabled; - -- (NSString *)btPayPal_merchantName; -- (NSURL *)btPayPal_merchantUserAgreementURL; -- (NSURL *)btPayPal_privacyPolicyURL; - -// Returns the base URL determined by Braintree that points -// to a PayPal stage to be used in when configuring `PayPalMobile`. -// -// @see PayPalMobile.h -// -// @return the PayPal stage URL, including a version path appropriate for the vendored PayPal mSDK, or `nil` if mock mode should be used -- (NSURL *)btPayPal_directBaseURL; - - -#pragma mark Coinbase - -- (BOOL)coinbaseEnabled; -- (NSString *)coinbaseClientId; -- (NSString *)coinbaseMerchantAccount; -- (NSString *)coinbaseScope; -- (NSString *)coinbaseEnvironment; - -#pragma mark Venmo - -- (NSString *)btVenmo_status; - -#pragma mark Apple Pay - -- (BTClientApplePayStatus)applePayStatus; -- (NSString *)applePayCountryCode; -- (NSString *)applePayCurrencyCode; -- (NSString *)applePayMerchantIdentifier; -- (NSArray *)applePaySupportedNetworks; - -#pragma mark - - -//// Initialize Configuration with a configuration response parser fetched from Braintree. -- (instancetype)initWithResponseParser:(BTAPIResponseParser *)responseParser error:(NSError **)error NS_DESIGNATED_INITIALIZER; - -- (instancetype)init __attribute__((unavailable("Please use initWithResponseParser:error: instead."))); - -@end diff --git a/Pods/Braintree/Braintree/API/Client/BTConfiguration.m b/Pods/Braintree/Braintree/API/Client/BTConfiguration.m deleted file mode 100644 index e44487e..0000000 --- a/Pods/Braintree/Braintree/API/Client/BTConfiguration.m +++ /dev/null @@ -1,312 +0,0 @@ -#import "BTConfiguration.h" -#import "BTAPIResponseParser.h" -#import "BTClientTokenApplePayStatusValueTransformer.h" -#import "BTClientTokenApplePayPaymentNetworksValueTransformer.h" -#import "BTClientTokenBooleanValueTransformer.h" - -NSString *const BTConfigurationKeyClientApiURL = @"clientApiUrl"; -NSString *const BTConfigurationKeyChallenges = @"challenges"; -NSString *const BTConfigurationKeyAnalytics = @"analytics"; -NSString *const BTConfigurationKeyURL = @"url"; -NSString *const BTConfigurationKeyMerchantId = @"merchantId"; - -NSString *const BTConfigurationKeyApplePay = @"applePay"; -NSString *const BTConfigurationKeyStatus = @"status"; -NSString *const BTConfigurationKeyMerchantAccountId = @"merchantAccountId"; - -NSString *const BTConfigurationKeyPayPalEnabled = @"paypalEnabled"; -NSString *const BTConfigurationKeyPayPal = @"paypal"; -NSString *const BTConfigurationKeyPayPalClientId = @"clientId"; -NSString *const BTConfigurationKeyPayPalDirectBaseUrl = @"directBaseUrl"; -NSString *const BTConfigurationKeyPayPalMerchantName = @"displayName"; -NSString *const BTConfigurationKeyPayPalMerchantPrivacyPolicyUrl = @"privacyUrl"; -NSString *const BTConfigurationKeyPayPalMerchantUserAgreementUrl = @"userAgreementUrl"; -NSString *const BTConfigurationKeyPayPalEnvironment = @"environment"; - -NSString *const BTConfigurationPayPalBraintreeProxyBasePath = @"/v1/"; -NSString *const BTConfigurationPayPalEnvironmentCustom = @"custom"; -NSString *const BTConfigurationPayPalEnvironmentLive = @"live"; -NSString *const BTConfigurationPayPalEnvironmentOffline = @"offline"; - -NSString *const BTConfigurationKeyPayPalDisableAppSwitch = @"touchDisabled"; - -NSString *const BTConfigurationKeyVenmo = @"venmo"; - -NSString *const BTConfigurationKeyCoinbaseEnabled = @"coinbaseEnabled"; -NSString *const BTConfigurationKeyCoinbase = @"coinbase"; -NSString *const BTConfigurationKeyCoinbaseClientId = @"clientId"; -NSString *const BTConfigurationKeyCoinbaseMerchantAccount = @"merchantAccount"; -NSString *const BTConfigurationKeyCoinbaseScope = @"scopes"; -NSString *const BTConfigurationKeyCoinbaseEnvironment = @"environment"; - -NSString *const BTConfigurationPayPalNonLiveDefaultValueMerchantName = @"Offline Test Merchant"; -NSString *const BTConfigurationPayPalNonLiveDefaultValueMerchantPrivacyPolicyUrl = @"http://example.com/privacy"; -NSString *const BTConfigurationPayPalNonLiveDefaultValueMerchantUserAgreementUrl = @"http://example.com/tos"; - -@interface BTConfiguration () - -@property (nonatomic, readwrite, strong) NSURL *clientApiURL; -@property (nonatomic, readwrite, strong) BTAPIResponseParser *configurationParser; - -@end - -@implementation BTConfiguration - -- (instancetype)init { - return nil; -} - -- (instancetype)initWithResponseParser:(BTAPIResponseParser *)responseParser error:(NSError **)error { - self = [super init]; - if (self) { - self.configurationParser = responseParser; - self.clientApiURL = [self.configurationParser URLForKey:BTConfigurationKeyClientApiURL]; - - if (![self validateConfiguration:error]) { - return nil; - } - } - return self; -} - -- (BOOL)validateConfiguration:(NSError *__autoreleasing*)error { - if (error != NULL && *error) { - return NO; - } - - if (![self.clientApiURL isKindOfClass:[NSURL class]] || self.clientApiURL.absoluteString.length == 0) { - if (error != NULL) { - *error = [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTServerErrorUnexpectedError - userInfo:@{ - NSLocalizedDescriptionKey: @"Invalid configuration: client api url was missing or invalid. Configuration request may have been intercepted. If error persists, contact Braintree support." - }]; - } - return NO; - } - - return YES; -} - -- (NSString *)merchantId { - return [self.configurationParser stringForKey:BTConfigurationKeyMerchantId]; -} - -- (NSString *)merchantAccountId { - return [self.configurationParser stringForKey:BTConfigurationKeyMerchantAccountId]; -} - -- (BTClientApplePayStatus)applePayStatus { -#if BT_ENABLE_APPLE_PAY - return [[self.configurationParser responseParserForKey:BTConfigurationKeyApplePay] integerForKey:@"status" withValueTransformer:[BTClientTokenApplePayStatusValueTransformer sharedInstance]]; -#else - return BTClientApplePayStatusOff; -#endif -} - -- (NSString *)applePayCurrencyCode { - return [[self.configurationParser responseParserForKey:BTConfigurationKeyApplePay] stringForKey:@"currencyCode"]; -} - -- (NSString *)applePayCountryCode { - return [[self.configurationParser responseParserForKey:BTConfigurationKeyApplePay] stringForKey:@"countryCode"]; -} - -- (NSString *)applePayMerchantIdentifier { - return [[self.configurationParser responseParserForKey:BTConfigurationKeyApplePay] stringForKey:@"merchantIdentifier"]; -} - -- (NSArray *)applePaySupportedNetworks { -#if BT_ENABLE_APPLE_PAY - return [[self.configurationParser responseParserForKey:BTConfigurationKeyApplePay] arrayForKey:@"supportedNetworks" - withValueTransformer:[BTClientTokenApplePayPaymentNetworksValueTransformer sharedInstance]]; -#else - return @[]; -#endif -} - -- (instancetype)copyWithZone:(NSZone *)zone { - BTConfiguration *copiedConfiguration = [[[self class] allocWithZone:zone] initWithResponseParser:[self.configurationParser copy] error:NULL]; - copiedConfiguration.clientApiURL = self.clientApiURL; - return copiedConfiguration; -} - -- (NSSet *)challenges { - return [self.configurationParser setForKey:BTConfigurationKeyChallenges]; -} - -- (BOOL)analyticsEnabled { - return self.analyticsURL != nil; -} - -- (NSURL *)analyticsURL { - return [[self.configurationParser responseParserForKey:BTConfigurationKeyAnalytics] URLForKey:BTConfigurationKeyURL]; -} - - -#pragma mark JSON Parsing - -- (NSDictionary *)parseJSONString:(NSString *)rawJSONString error:(NSError * __autoreleasing *)error { - NSData *rawJSONData = [rawJSONString dataUsingEncoding:NSUTF8StringEncoding]; - - return [NSJSONSerialization JSONObjectWithData:rawJSONData options:0 error:error]; -} - - -#pragma mark NSCoding - -- (void)encodeWithCoder:(NSCoder *)coder { - [coder encodeObject:self.clientApiURL forKey:@"clientApiURL"]; - [coder encodeObject:self.configurationParser forKey:@"claims"]; -} - -- (id)initWithCoder:(NSCoder *)decoder { - self = [self initWithResponseParser:[decoder decodeObjectForKey:@"claims"] error:NULL]; - if (self) { - self.clientApiURL = [decoder decodeObjectForKey:@"clientApiURL"]; - } - return self; -} - -#pragma mark Configuration Parsing - -- (BTAPIResponseParser *)decodeConfiguration:(NSString *)rawConfigurationString error:(NSError * __autoreleasing *)error { - NSError *JSONError; - - NSDictionary *rawConfiguration = [self parseJSONString:rawConfigurationString error:&JSONError]; - - if (!rawConfiguration || ![rawConfiguration isKindOfClass:[NSDictionary class]]) { - if (error) { - *error = [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTServerErrorUnexpectedError - userInfo:@{ NSUnderlyingErrorKey: JSONError, - NSLocalizedDescriptionKey: @"Invalid configuration. Configuration request may have been intercepted. If this error persists, contact Braintree support.", - NSLocalizedFailureReasonErrorKey: @"Invalid JSON" }]; - } - return nil; - } - - // Note: "version" is intentionally ignored because it doesn't matter - - return [BTAPIResponseParser parserWithDictionary:rawConfiguration]; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"", self.clientApiURL, self.analyticsURL]; -} - -- (BOOL)isEqualToConfiguration:(BTConfiguration *)configuration { - return (self.configurationParser == configuration.configurationParser) || [self.configurationParser isEqual:configuration.configurationParser]; -} - -- (BOOL)isEqual:(id)object { - if (self == object) { - return YES; - } - - if ([object isKindOfClass:[BTConfiguration class]]) { - return [self isEqualToConfiguration:object]; - } - - return NO; -} - - -#pragma mark PayPal - -- (BTAPIResponseParser *)btPayPal_claims { - return [self.configurationParser responseParserForKey:BTConfigurationKeyPayPal]; -} - -- (NSString *)btPayPal_clientId { - return [self.btPayPal_claims stringForKey:BTConfigurationKeyPayPalClientId]; -} - -- (NSString *)btPayPal_environment { - return [self.btPayPal_claims stringForKey:BTConfigurationKeyPayPalEnvironment]; -} - -- (NSURL *)btPayPal_directBaseURL { - NSString *apiUrl = [self.btPayPal_claims stringForKey:BTConfigurationKeyPayPalDirectBaseUrl]; - NSURL *directBaseURL; - if (apiUrl == nil) { - directBaseURL = nil; - } else { - NSString *urlString = [NSString stringWithFormat:@"%@%@", apiUrl, BTConfigurationPayPalBraintreeProxyBasePath]; - directBaseURL = [NSURL URLWithString:urlString]; - } - return directBaseURL; -} - -- (BOOL)btPayPal_isPayPalEnabled { - return [self.configurationParser boolForKey:BTConfigurationKeyPayPalEnabled - withValueTransformer:[BTClientTokenBooleanValueTransformer sharedInstance]]; -} - -- (BOOL)btPayPal_isTouchDisabled { - return [self.btPayPal_claims boolForKey:BTConfigurationKeyPayPalDisableAppSwitch - withValueTransformer:[BTClientTokenBooleanValueTransformer sharedInstance]]; -} - -- (BOOL)btPayPal_isLive { - return [self.btPayPal_environment isEqualToString:BTConfigurationPayPalEnvironmentLive]; -} - -- (NSString *)btPayPal_merchantName { - NSString *defaultName = self.btPayPal_isLive ? nil : BTConfigurationPayPalNonLiveDefaultValueMerchantName; - return [self.btPayPal_claims stringForKey:BTConfigurationKeyPayPalMerchantName] ?: defaultName; -} - -- (NSURL *)btPayPal_merchantUserAgreementURL { - NSURL *defaultURL = self.btPayPal_isLive ? nil : [NSURL URLWithString:BTConfigurationPayPalNonLiveDefaultValueMerchantUserAgreementUrl]; - - NSURL *url = [self.btPayPal_claims URLForKey:BTConfigurationKeyPayPalMerchantUserAgreementUrl]; - - return url ?: defaultURL; -} - -- (NSURL *)btPayPal_privacyPolicyURL { - NSURL *defaultURL = self.btPayPal_isLive ? nil : [NSURL URLWithString:BTConfigurationPayPalNonLiveDefaultValueMerchantPrivacyPolicyUrl]; - - NSURL *url = [self.btPayPal_claims URLForKey:BTConfigurationKeyPayPalMerchantPrivacyPolicyUrl]; - - return url ?: defaultURL; -} - -#pragma mark Coinbase - -- (BTAPIResponseParser *)coinbaseConfiguration { - return [self.configurationParser responseParserForKey:BTConfigurationKeyCoinbase]; -} - -- (BOOL)coinbaseEnabled { - return ([self coinbaseConfiguration] && - [self coinbaseClientId] && - [self coinbaseScope] && - [self.configurationParser boolForKey:BTConfigurationKeyCoinbaseEnabled - withValueTransformer:[BTClientTokenBooleanValueTransformer sharedInstance]]); -} - -- (NSString *)coinbaseClientId { - return [self.coinbaseConfiguration stringForKey:BTConfigurationKeyCoinbaseClientId]; -} - -- (NSString *)coinbaseMerchantAccount { - return [self.coinbaseConfiguration stringForKey:BTConfigurationKeyCoinbaseMerchantAccount]; -} - -- (NSString *)coinbaseScope { - return [self.coinbaseConfiguration stringForKey:BTConfigurationKeyCoinbaseScope]; -} - -- (NSString *)coinbaseEnvironment { - return [self.coinbaseConfiguration stringForKey:BTConfigurationKeyCoinbaseEnvironment]; -} - -#pragma mark Venmo - -- (NSString *)btVenmo_status { - return [self.configurationParser stringForKey:BTConfigurationKeyVenmo]; -} - -@end diff --git a/Pods/Braintree/Braintree/API/Models/BTApplePayPaymentMethod.m b/Pods/Braintree/Braintree/API/Models/BTApplePayPaymentMethod.m deleted file mode 100644 index 5087bf9..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTApplePayPaymentMethod.m +++ /dev/null @@ -1,78 +0,0 @@ -#if BT_ENABLE_APPLE_PAY -#import "BTApplePayPaymentMethod_Internal.h" -#import "BTMutableApplePayPaymentMethod.h" - -@implementation BTApplePayPaymentMethod - -@synthesize nonce = _nonce; - -- (id)copyWithZone:(NSZone *)zone { - BTApplePayPaymentMethod *copy = [[BTApplePayPaymentMethod allocWithZone:zone] init]; - copy->_nonce = [self.nonce copy]; - copy->_shippingMethod = [self.shippingMethod copy]; - copy.billingAddress = self.billingAddress; - copy.shippingAddress = self.shippingAddress; - copy.billingContact = self.billingContact; - copy.shippingContact = self.shippingContact; - return copy; -} - -- (id)mutableCopyWithZone:(NSZone *)zone { - BTMutableApplePayPaymentMethod *mutableInstance = [[BTMutableApplePayPaymentMethod allocWithZone:zone] init]; - [mutableInstance setNonce:self.nonce]; - [mutableInstance setShippingMethod:self.shippingMethod]; - [mutableInstance setShippingAddress:self.shippingAddress]; - [mutableInstance setBillingAddress:self.billingAddress]; - [mutableInstance setShippingContact:self.shippingContact]; - [mutableInstance setBillingContact:self.billingContact]; - return mutableInstance; -} - -- (NSString *)description { - NSMutableString *description = [NSMutableString stringWithFormat:@""]; - - return [description copy]; -} - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - -- (void)setShippingAddress:(ABRecordRef)shippingAddress { - if (shippingAddress != NULL) { - _shippingAddress = CFRetain(shippingAddress); - } -} - -- (void)setBillingAddress:(ABRecordRef)billingAddress { - if (billingAddress != NULL) { - _billingAddress = CFRetain(billingAddress); - } -} - -#pragma clang diagnostic pop - -- (void)dealloc { - if (_shippingAddress != NULL) { - CFRelease(_shippingAddress); - } - if (_billingAddress != NULL) { - CFRelease(_billingAddress); - } -} - -@end -#endif diff --git a/Pods/Braintree/Braintree/API/Models/BTApplePayPaymentMethod_Internal.h b/Pods/Braintree/Braintree/API/Models/BTApplePayPaymentMethod_Internal.h deleted file mode 100644 index 498145a..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTApplePayPaymentMethod_Internal.h +++ /dev/null @@ -1,17 +0,0 @@ -#if BT_ENABLE_APPLE_PAY -#import "BTApplePayPaymentMethod.h" - -@interface BTApplePayPaymentMethod () -@property (nonatomic, copy, readwrite) NSString *nonce; - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -@property (nonatomic, readwrite) ABRecordRef billingAddress; -@property (nonatomic, readwrite) ABRecordRef shippingAddress; -#pragma clang diagnostic pop -@property (nonatomic, readwrite, strong) PKContact *billingContact; -@property (nonatomic, readwrite, strong) PKContact *shippingContact; -@property (nonatomic, strong, readwrite) PKShippingMethod *shippingMethod; - -@end -#endif diff --git a/Pods/Braintree/Braintree/API/Models/BTCardPaymentMethod.m b/Pods/Braintree/Braintree/API/Models/BTCardPaymentMethod.m deleted file mode 100644 index fea76bc..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTCardPaymentMethod.m +++ /dev/null @@ -1,70 +0,0 @@ -#import "BTCardPaymentMethod_Mutable.h" - -@implementation BTCardPaymentMethod - -- (NSString *)typeString { - switch(self.type) { - case BTCardTypeAMEX: - return @"American Express"; - case BTCardTypeUnionPay: - return @"China UnionPay"; - case BTCardTypeDinersClub: - return @"Diners Club"; - case BTCardTypeDiscover: - return @"Discover"; - case BTCardTypeJCB: - return @"JCB"; - case BTCardTypeMaestro: - return @"Maestro"; - case BTCardTypeMasterCard: - return @"MasterCard"; - case BTCardTypeSolo: - return @"Solo"; - case BTCardTypeSwitch: - return @"Switch"; - case BTCardTypeUKMaestro: - return @"UK Maestro"; - case BTCardTypeLaser: - return @"Laser"; - case BTCardTypeVisa: - return @"Visa"; - default: - return @"Card"; - } -} - -- (void)setTypeString:(NSString *)typeString { - NSString *lowercaseTypeString = [typeString lowercaseString]; - - if ([lowercaseTypeString isEqual:@"american express"]) { - self.type = BTCardTypeAMEX; - } else if ([lowercaseTypeString isEqual:@"diners club"]) { - self.type = BTCardTypeDinersClub; - } else if ([lowercaseTypeString isEqual:@"china unionpay"]) { - self.type = BTCardTypeUnionPay; - } else if ([lowercaseTypeString isEqual:@"discover"]) { - self.type = BTCardTypeDiscover; - } else if ([lowercaseTypeString isEqual:@"jcb"]) { - self.type = BTCardTypeJCB; - } else if ([lowercaseTypeString isEqual:@"maestro"]) { - self.type = BTCardTypeMaestro; - } else if ([lowercaseTypeString isEqual:@"mastercard"]) { - self.type = BTCardTypeMasterCard; - } else if ([lowercaseTypeString isEqual:@"solo"]) { - self.type = BTCardTypeSolo; - } else if ([lowercaseTypeString isEqual:@"switch"]) { - self.type = BTCardTypeSwitch; - } else if ([lowercaseTypeString isEqual:@"uk maestro"]) { - self.type = BTCardTypeUKMaestro; - } else if ([lowercaseTypeString isEqual:@"visa"]) { - self.type = BTCardTypeVisa; - } else { - self.type = BTCardTypeUnknown; - } -} - -- (NSString *)debugDescription { - return [NSString stringWithFormat:@"<%@:%p type:%@ \"%@\" nonce:%@>", NSStringFromClass([self class]), self, self.typeString, [self description], self.nonce]; -} - -@end diff --git a/Pods/Braintree/Braintree/API/Models/BTCardPaymentMethod_Mutable.h b/Pods/Braintree/Braintree/API/Models/BTCardPaymentMethod_Mutable.h deleted file mode 100644 index 27be0e7..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTCardPaymentMethod_Mutable.h +++ /dev/null @@ -1,10 +0,0 @@ -#import "BTCardPaymentMethod.h" - -@interface BTCardPaymentMethod () - -@property (nonatomic, readwrite, assign) BTCardType type; -@property (nonatomic, readwrite, copy) NSString *typeString; -@property (nonatomic, readwrite, copy) NSString *lastTwo; -@property (nonatomic, readwrite, strong) NSDictionary *threeDSecureInfoDictionary; - -@end diff --git a/Pods/Braintree/Braintree/API/Models/BTClientCardRequest.m b/Pods/Braintree/Braintree/API/Models/BTClientCardRequest.m deleted file mode 100644 index bf86919..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTClientCardRequest.m +++ /dev/null @@ -1,34 +0,0 @@ -#import "BTClientCardRequest.h" - -@implementation BTClientCardRequest - -@synthesize shouldValidate = _shouldValidate; - -- (instancetype)init { - return self = [super init]; -} - -- (instancetype)initWithTokenizationRequest:(BTClientCardTokenizationRequest *)tokenizationRequest { - if (!tokenizationRequest) { - return nil; - } - - self = [self init]; - if (self) { - self.number = tokenizationRequest.number; - self.expirationYear = tokenizationRequest.expirationYear; - self.expirationMonth = tokenizationRequest.expirationMonth; - self.expirationDate = tokenizationRequest.expirationDate; - self.cvv = tokenizationRequest.cvv; - self.postalCode = tokenizationRequest.postalCode; - self.shouldValidate = tokenizationRequest.shouldValidate; - self.additionalParameters = tokenizationRequest.additionalParameters; - } - return self; -} - -- (BOOL)shouldValidate { - return _shouldValidate; -} - -@end diff --git a/Pods/Braintree/Braintree/API/Models/BTClientCardTokenizationRequest.m b/Pods/Braintree/Braintree/API/Models/BTClientCardTokenizationRequest.m deleted file mode 100644 index 191f15a..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTClientCardTokenizationRequest.m +++ /dev/null @@ -1,40 +0,0 @@ -#import "BTClientCardTokenizationRequest.h" - -@implementation BTClientCardTokenizationRequest - -- (BOOL)shouldValidate { - return NO; -} - -- (NSDictionary *)parameters { - NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; - - [self safeSetObject:self.number toDictionary:parameters forKey:@"number"]; - [self safeSetObject:self.expirationMonth toDictionary:parameters forKey:@"expiration_month"]; - [self safeSetObject:self.expirationYear toDictionary:parameters forKey:@"expiration_year"]; - [self safeSetObject:self.expirationDate toDictionary:parameters forKey:@"expiration_date"]; - [self safeSetObject:self.cvv toDictionary:parameters forKey:@"cvv"]; - - NSDictionary *options = @{ @"validate": @(self.shouldValidate) }; - [self safeSetObject:options toDictionary:parameters forKey:@"options"]; - - if (self.postalCode) { - NSDictionary *billingAddress = @{ @"postal_code": self.postalCode }; - [self safeSetObject:billingAddress toDictionary:parameters forKey:@"billing_address"]; - } - - if (self.additionalParameters) { - [parameters addEntriesFromDictionary:self.additionalParameters]; - } - - return [parameters copy]; -} - -- (void)safeSetObject:(id)object toDictionary:(NSMutableDictionary *)dictionary forKey:(NSString *)key { - if ([dictionary respondsToSelector:@selector(setObject:forKeyedSubscript:)] && key != nil && object != nil) { - dictionary[key] = object; - } -} - - -@end diff --git a/Pods/Braintree/Braintree/API/Models/BTCoinbasePaymentMethod.m b/Pods/Braintree/Braintree/API/Models/BTCoinbasePaymentMethod.m deleted file mode 100644 index 3f489f8..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTCoinbasePaymentMethod.m +++ /dev/null @@ -1,11 +0,0 @@ -#import "BTCoinbasePaymentMethod.h" - -@implementation BTCoinbasePaymentMethod - -@synthesize email = _email; - -- (void)setEmail:(NSString *)email { - _email = email; -} - -@end diff --git a/Pods/Braintree/Braintree/API/Models/BTCoinbasePaymentMethod_Internal.h b/Pods/Braintree/Braintree/API/Models/BTCoinbasePaymentMethod_Internal.h deleted file mode 100644 index ceee35a..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTCoinbasePaymentMethod_Internal.h +++ /dev/null @@ -1,9 +0,0 @@ -#import "BTCoinbasePaymentMethod.h" - -@interface BTCoinbasePaymentMethod () - -- (void)setNonce:(NSString *)nonce; -- (void)setDescription:(NSString *)description; -- (void)setEmail:(NSString *)email; - -@end diff --git a/Pods/Braintree/Braintree/API/Models/BTMutableApplePayPaymentMethod.h b/Pods/Braintree/Braintree/API/Models/BTMutableApplePayPaymentMethod.h deleted file mode 100644 index 9807b7a..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTMutableApplePayPaymentMethod.h +++ /dev/null @@ -1,8 +0,0 @@ -#if BT_ENABLE_APPLE_PAY -#import "BTApplePayPaymentMethod.h" -#import "BTApplePayPaymentMethod_Internal.h" - -@interface BTMutableApplePayPaymentMethod : BTApplePayPaymentMethod - -@end -#endif diff --git a/Pods/Braintree/Braintree/API/Models/BTMutableApplePayPaymentMethod.m b/Pods/Braintree/Braintree/API/Models/BTMutableApplePayPaymentMethod.m deleted file mode 100644 index 793aeb0..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTMutableApplePayPaymentMethod.m +++ /dev/null @@ -1,8 +0,0 @@ -#if BT_ENABLE_APPLE_PAY -#import "BTMutableApplePayPaymentMethod.h" -#import "BTApplePayPaymentMethod_Internal.h" - -@implementation BTMutableApplePayPaymentMethod - -@end -#endif diff --git a/Pods/Braintree/Braintree/API/Models/BTMutableCardPaymentMethod.h b/Pods/Braintree/Braintree/API/Models/BTMutableCardPaymentMethod.h deleted file mode 100644 index cbb2631..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTMutableCardPaymentMethod.h +++ /dev/null @@ -1,8 +0,0 @@ -#import "BTMutablePaymentMethod.h" - -#import "BTPaymentMethod_Mutable.h" -#import "BTCardPaymentMethod_Mutable.h" - -/// Mutable version of BTCardPaymentMethod. -@interface BTMutableCardPaymentMethod : BTCardPaymentMethod -@end diff --git a/Pods/Braintree/Braintree/API/Models/BTMutableCardPaymentMethod.m b/Pods/Braintree/Braintree/API/Models/BTMutableCardPaymentMethod.m deleted file mode 100644 index c2528e8..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTMutableCardPaymentMethod.m +++ /dev/null @@ -1,14 +0,0 @@ -#import "BTMutableCardPaymentMethod.h" - -@implementation BTMutableCardPaymentMethod - -- (instancetype)init { - self = [super init]; - if (self) { - self.type = BTCardTypeUnknown; - } - return self; -} - - -@end diff --git a/Pods/Braintree/Braintree/API/Models/BTMutablePayPalPaymentMethod.h b/Pods/Braintree/Braintree/API/Models/BTMutablePayPalPaymentMethod.h deleted file mode 100644 index 0f151b8..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTMutablePayPalPaymentMethod.h +++ /dev/null @@ -1,6 +0,0 @@ -#import "BTPayPalPaymentMethod.h" -#import "BTPayPalPaymentMethod_Mutable.h" - -/// Mutable version of BTPayPalPaymentMethod. -@interface BTMutablePayPalPaymentMethod : BTPayPalPaymentMethod -@end diff --git a/Pods/Braintree/Braintree/API/Models/BTMutablePayPalPaymentMethod.m b/Pods/Braintree/Braintree/API/Models/BTMutablePayPalPaymentMethod.m deleted file mode 100644 index 0ef98d9..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTMutablePayPalPaymentMethod.m +++ /dev/null @@ -1,4 +0,0 @@ -#import "BTMutablePayPalPaymentMethod.h" - -@implementation BTMutablePayPalPaymentMethod -@end diff --git a/Pods/Braintree/Braintree/API/Models/BTMutablePaymentMethod.h b/Pods/Braintree/Braintree/API/Models/BTMutablePaymentMethod.h deleted file mode 100644 index 2edc8c6..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTMutablePaymentMethod.h +++ /dev/null @@ -1,5 +0,0 @@ -#import "BTPaymentMethod_Mutable.h" - -@interface BTMutablePaymentMethod : BTPaymentMethod - -@end diff --git a/Pods/Braintree/Braintree/API/Models/BTMutablePaymentMethod.m b/Pods/Braintree/Braintree/API/Models/BTMutablePaymentMethod.m deleted file mode 100644 index b48bfd0..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTMutablePaymentMethod.m +++ /dev/null @@ -1,5 +0,0 @@ -#import "BTMutablePaymentMethod.h" - -@implementation BTMutablePaymentMethod - -@end diff --git a/Pods/Braintree/Braintree/API/Models/BTPayPalPaymentMethod.m b/Pods/Braintree/Braintree/API/Models/BTPayPalPaymentMethod.m deleted file mode 100644 index 8d38ee9..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTPayPalPaymentMethod.m +++ /dev/null @@ -1,22 +0,0 @@ -#import "BTPayPalPaymentMethod_Mutable.h" -#import "BTMutablePayPalPaymentMethod.h" - -@implementation BTPayPalPaymentMethod - -- (id)mutableCopyWithZone:(__unused NSZone *)zone { - BTMutablePayPalPaymentMethod *mutablePayPalPaymentMethod = [[BTMutablePayPalPaymentMethod alloc] init]; - mutablePayPalPaymentMethod.billingAddress = self.billingAddress; - mutablePayPalPaymentMethod.email = self.email; - mutablePayPalPaymentMethod.locked = self.locked; - mutablePayPalPaymentMethod.nonce = self.nonce; - mutablePayPalPaymentMethod.challengeQuestions = [self.challengeQuestions copy]; - mutablePayPalPaymentMethod.description = self.description; - - return mutablePayPalPaymentMethod; -} - -- (NSString *)debugDescription { - return [NSString stringWithFormat:@"<%@:%p \"%@\" email:%@ nonce:%@ billingAddress:%@>", NSStringFromClass([self class]), self, self.email, [self description], self.nonce, self.billingAddress]; -} - -@end diff --git a/Pods/Braintree/Braintree/API/Models/BTPayPalPaymentMethod_Mutable.h b/Pods/Braintree/Braintree/API/Models/BTPayPalPaymentMethod_Mutable.h deleted file mode 100644 index 48af463..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTPayPalPaymentMethod_Mutable.h +++ /dev/null @@ -1,6 +0,0 @@ -#import "BTPayPalPaymentMethod.h" -#import "BTPaymentMethod_Mutable.h" - -@interface BTPayPalPaymentMethod () -@property (nonatomic, readwrite, copy) NSString *email; -@end diff --git a/Pods/Braintree/Braintree/API/Models/BTPaymentMethod.m b/Pods/Braintree/Braintree/API/Models/BTPaymentMethod.m deleted file mode 100644 index 20d1226..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTPaymentMethod.m +++ /dev/null @@ -1,11 +0,0 @@ -#import "BTPaymentMethod.h" -#import "BTPaymentMethod_Mutable.h" - -@implementation BTPaymentMethod -@synthesize description; - -- (NSString *)debugDescription { - return [NSString stringWithFormat:@"<%@:%p \"%@\" nonce:%@>", NSStringFromClass([self class]), self, [self description], self.nonce]; -} - -@end diff --git a/Pods/Braintree/Braintree/API/Models/BTPaymentMethod_Mutable.h b/Pods/Braintree/Braintree/API/Models/BTPaymentMethod_Mutable.h deleted file mode 100644 index f81ecf1..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTPaymentMethod_Mutable.h +++ /dev/null @@ -1,10 +0,0 @@ -#import "BTPaymentMethod.h" - -@interface BTPaymentMethod () - -@property (nonatomic, readwrite, assign, getter = isLocked) BOOL locked; -@property (nonatomic, readwrite, copy) NSString *nonce; -@property (nonatomic, readwrite, strong) NSSet *challengeQuestions; -@property (nonatomic, readwrite, copy) NSString *description; - -@end diff --git a/Pods/Braintree/Braintree/API/Models/BTPostalAddress.m b/Pods/Braintree/Braintree/API/Models/BTPostalAddress.m deleted file mode 100644 index a1b344e..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTPostalAddress.m +++ /dev/null @@ -1,28 +0,0 @@ -#import "BTPostalAddress_Internal.h" -#import "BTPostalAddress.h" - -NSString *const BTPostalAddressKeyAccountAddress = @"accountAddress"; -NSString *const BTPostalAddressKeyLocality = @"city"; -NSString *const BTPostalAddressKeyCountry = @"country"; -NSString *const BTPostalAddressKeyPostalCode = @"postalCode"; -NSString *const BTPostalAddressKeyRegion= @"state"; -NSString *const BTPostalAddressKeyStreetAddress = @"street1"; -NSString *const BTPostalAddressKeyExtendedAddress = @"street2"; - -@implementation BTPostalAddress - -// Property names follow the `Braintree_Address` convention as documented at: -// https://developers.braintreepayments.com/ios+php/reference/response/address - -- (id)copyWithZone:(__unused NSZone *)zone { - BTPostalAddress *address = [[BTPostalAddress alloc] init]; - address.streetAddress = self.streetAddress; - address.extendedAddress = self.extendedAddress; - address.locality = self.locality; - address.countryCodeAlpha2 = self.countryCodeAlpha2; - address.postalCode = self.postalCode; - address.region = self.region; - return address; -} - -@end diff --git a/Pods/Braintree/Braintree/API/Models/BTPostalAddress_Internal.h b/Pods/Braintree/Braintree/API/Models/BTPostalAddress_Internal.h deleted file mode 100644 index 2e4a3fd..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTPostalAddress_Internal.h +++ /dev/null @@ -1,13 +0,0 @@ -#import "BTPostalAddress.h" - -extern NSString *const BTPostalAddressKeyAccountAddress; -extern NSString *const BTPostalAddressKeyLocality; -extern NSString *const BTPostalAddressKeyCountry; -extern NSString *const BTPostalAddressKeyPostalCode; -extern NSString *const BTPostalAddressKeyRegion; -extern NSString *const BTPostalAddressKeyStreetAddress; -extern NSString *const BTPostalAddressKeyExtendedAddress; - -@interface BTPostalAddress () - -@end diff --git a/Pods/Braintree/Braintree/API/Models/BTThreeDSecureLookupResult.h b/Pods/Braintree/Braintree/API/Models/BTThreeDSecureLookupResult.h deleted file mode 100644 index 90a541f..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTThreeDSecureLookupResult.h +++ /dev/null @@ -1,16 +0,0 @@ -#import - -#import "BTCardPaymentMethod.h" - -@interface BTThreeDSecureLookupResult : NSObject - -@property (nonatomic, copy) NSString *PAReq; -@property (nonatomic, copy) NSString *MD; -@property (nonatomic, copy) NSURL *acsURL; -@property (nonatomic, copy) NSURL *termURL; - -@property (nonatomic, strong) BTCardPaymentMethod *card; - -- (BOOL)requiresUserAuthentication; - -@end diff --git a/Pods/Braintree/Braintree/API/Models/BTThreeDSecureLookupResult.m b/Pods/Braintree/Braintree/API/Models/BTThreeDSecureLookupResult.m deleted file mode 100644 index 126e6a3..0000000 --- a/Pods/Braintree/Braintree/API/Models/BTThreeDSecureLookupResult.m +++ /dev/null @@ -1,9 +0,0 @@ -#import "BTThreeDSecureLookupResult.h" - -@implementation BTThreeDSecureLookupResult - -- (BOOL)requiresUserAuthentication { - return self.acsURL != nil; -} - -@end diff --git a/Pods/Braintree/Braintree/API/Networking/BTHTTP.h b/Pods/Braintree/Braintree/API/Networking/BTHTTP.h deleted file mode 100644 index 55bbb55..0000000 --- a/Pods/Braintree/Braintree/API/Networking/BTHTTP.h +++ /dev/null @@ -1,34 +0,0 @@ -#import - -#import "BTHTTPResponse.h" -#import "BTErrors.h" - -@class BTHTTPResponse; - -typedef void (^BTHTTPCompletionBlock)(BTHTTPResponse *response, NSError *error); - -@interface BTHTTP : NSObject - -/// An optional array of pinned certificates, each an NSData instance -/// consisting of DER encoded x509 certificates -@property (nonatomic, strong) NSArray *pinnedCertificates; - -- (instancetype)initWithBaseURL:(NSURL *)URL; - -/// Set an optional array of subclasses of NSURLProtocol -/// that are registered with the underlying URL handler upon initialization. -- (void)setProtocolClasses:(NSArray *)protocolClasses; - -- (void)GET:(NSString *)url completion:(BTHTTPCompletionBlock)completionBlock; -- (void)GET:(NSString *)url parameters:(NSDictionary *)parameters completion:(BTHTTPCompletionBlock)completionBlock; - -- (void)POST:(NSString *)url completion:(BTHTTPCompletionBlock)completionBlock; -- (void)POST:(NSString *)url parameters:(NSDictionary *)parameters completion:(BTHTTPCompletionBlock)completionBlock; - -- (void)PUT:(NSString *)url completion:(BTHTTPCompletionBlock)completionBlock; -- (void)PUT:(NSString *)url parameters:(NSDictionary *)parameters completion:(BTHTTPCompletionBlock)completionBlock; - -- (void)DELETE:(NSString *)url completion:(BTHTTPCompletionBlock)completionBlock; -- (void)DELETE:(NSString *)url parameters:(NSDictionary *)parameters completion:(BTHTTPCompletionBlock)completionBlock; - -@end diff --git a/Pods/Braintree/Braintree/API/Networking/BTHTTP.m b/Pods/Braintree/Braintree/API/Networking/BTHTTP.m deleted file mode 100644 index 25112d3..0000000 --- a/Pods/Braintree/Braintree/API/Networking/BTHTTP.m +++ /dev/null @@ -1,410 +0,0 @@ -#import "BTHTTP.h" - -#include - -#import "BTClient.h" -#import "BTAPIPinnedCertificates.h" -#import "BTURLUtils.h" -#import "BTLogger_Internal.h" - -@interface BTHTTP () - -@property (nonatomic, strong) NSURLSession *session; -@property (nonatomic, strong) NSURL *baseURL; - -- (NSDictionary *)defaultHeaders; - -@end - -@implementation BTHTTP - -- (instancetype)initWithBaseURL:(NSURL *)URL { - self = [self init]; - if (self) { - NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration ephemeralSessionConfiguration]; - configuration.HTTPAdditionalHeaders = self.defaultHeaders; - self.baseURL = URL; - - NSOperationQueue *delegateQueue = [[NSOperationQueue alloc] init]; - delegateQueue.maxConcurrentOperationCount = NSOperationQueueDefaultMaxConcurrentOperationCount; - - self.session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:delegateQueue]; - self.pinnedCertificates = [BTAPIPinnedCertificates trustedCertificates]; - } - return self; -} - -- (instancetype)copyWithZone:(NSZone *)zone { - BTHTTP *copiedHTTP = [[[self class] allocWithZone:zone] initWithBaseURL:_baseURL]; - copiedHTTP.pinnedCertificates = [_pinnedCertificates copy]; - [copiedHTTP setProtocolClasses:_session.configuration.protocolClasses]; - return copiedHTTP; -} - -#pragma mark - Getters/setters - -- (void)setProtocolClasses:(NSArray *)protocolClasses { - NSURLSessionConfiguration *configuration = self.session.configuration; - configuration.protocolClasses = protocolClasses; - self.session = [NSURLSession sessionWithConfiguration:configuration delegate:self delegateQueue:self.session.delegateQueue]; -} - -#pragma mark - HTTP Methods - -- (void)GET:(NSString *)aPath completion:(BTHTTPCompletionBlock)completionBlock { - [self GET:aPath parameters:nil completion:completionBlock]; -} - -- (void)GET:(NSString *)aPath parameters:(NSDictionary *)parameters completion:(BTHTTPCompletionBlock)completionBlock { - [self httpRequest:@"GET" path:aPath parameters:parameters completion:completionBlock]; -} - -- (void)POST:(NSString *)aPath completion:(BTHTTPCompletionBlock)completionBlock { - [self POST:aPath parameters:nil completion:completionBlock]; -} - -- (void)POST:(NSString *)aPath parameters:(NSDictionary *)parameters completion:(BTHTTPCompletionBlock)completionBlock { - [self httpRequest:@"POST" path:aPath parameters:parameters completion:completionBlock]; -} - -- (void)PUT:(NSString *)aPath completion:(BTHTTPCompletionBlock)completionBlock { - [self PUT:aPath parameters:nil completion:completionBlock]; -} - -- (void)PUT:(NSString *)aPath parameters:(NSDictionary *)parameters completion:(BTHTTPCompletionBlock)completionBlock { - [self httpRequest:@"PUT" path:aPath parameters:parameters completion:completionBlock]; -} - -- (void)DELETE:(NSString *)aPath completion:(BTHTTPCompletionBlock)completionBlock { - [self DELETE:aPath parameters:nil completion:completionBlock]; -} - -- (void)DELETE:(NSString *)aPath parameters:(NSDictionary *)parameters completion:(BTHTTPCompletionBlock)completionBlock { - [self httpRequest:@"DELETE" path:aPath parameters:parameters completion:completionBlock]; -} - -#pragma mark - Underlying HTTP - -- (void)httpRequest:(NSString *)method path:(NSString *)aPath parameters:(NSDictionary *)parameters completion:(BTHTTPCompletionBlock)completionBlock { - - BOOL isNotDataURL = ![self.baseURL.scheme isEqualToString:@"data"]; - NSURL *fullPathURL; - if (aPath && isNotDataURL) { - fullPathURL = [self.baseURL URLByAppendingPathComponent:aPath]; - } else { - fullPathURL = self.baseURL; - } - - NSURLComponents *components = [NSURLComponents componentsWithString:fullPathURL.absoluteString]; - - NSMutableDictionary *headers = [NSMutableDictionary dictionaryWithDictionary:self.defaultHeaders]; - - NSMutableURLRequest *request; - - if ([method isEqualToString:@"GET"] || [method isEqualToString:@"DELETE"]) { - if (isNotDataURL) { - NSString *encodedParametersString = [BTURLUtils queryStringWithDictionary:parameters]; - components.percentEncodedQuery = encodedParametersString; - } - request = [NSMutableURLRequest requestWithURL:components.URL]; - } else { - request = [NSMutableURLRequest requestWithURL:components.URL]; - - NSError *jsonSerializationError; - NSData *bodyData; - - if ([parameters isKindOfClass:[NSDictionary class]]) { - bodyData = [NSJSONSerialization dataWithJSONObject:parameters - options:NSJSONWritingPrettyPrinted - error:&jsonSerializationError]; - } - - if (jsonSerializationError != nil) { - completionBlock(nil, [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTServerErrorUnknown - userInfo:@{NSUnderlyingErrorKey: jsonSerializationError}]); - return; - } - - [request setHTTPBody:bodyData]; - headers[@"Content-Type"] = @"application/json; charset=utf-8"; - } - [request setAllHTTPHeaderFields:headers]; - - [request setHTTPMethod:method]; - - // Perform the actual request - NSURLSessionTask *task = [self.session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { - [[self class] handleRequestCompletion:data response:response error:error completionBlock:completionBlock]; - }]; - [task resume]; -} - -+ (void)handleRequestCompletion:(NSData *)data response:(NSURLResponse *)response error:(NSError *)error completionBlock:(BTHTTPCompletionBlock)completionBlock { - // Handle errors for which the response is irrelevant - // e.g. SSL, unavailable network, etc. - NSError *domainRequestError = [self domainRequestErrorForError:error]; - if (domainRequestError != nil) { - [self callCompletionBlock:completionBlock response:nil error:domainRequestError]; - return; - } - - NSInteger statusCode; - // Handle nil or non-HTTP requests, which are an unknown type of error - if ([response.URL.scheme isEqualToString:@"data"]) { - statusCode = 200; - } else if ([response isKindOfClass:[NSHTTPURLResponse class]]) { - statusCode = [(NSHTTPURLResponse *)response statusCode]; - } else { - NSDictionary *userInfoDictionary = error ? @{NSUnderlyingErrorKey: error} : nil; - NSError *returnedError = [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTServerErrorUnknown - userInfo:userInfoDictionary]; - [self callCompletionBlock:completionBlock response:nil error:returnedError]; - return; - } - - NSString *responseContentType = [response MIMEType]; - - if (data.length == 0) { - // Accept empty responses - BTHTTPResponse *btHTTPResponse = [[BTHTTPResponse alloc] initWithStatusCode:statusCode responseObject:nil]; - NSDictionary *userInfoDictionary = error ? @{NSUnderlyingErrorKey: error} : nil; - NSError *returnedError = [self defaultDomainErrorForStatusCode:statusCode userInfo:userInfoDictionary]; - [self callCompletionBlock:completionBlock response:btHTTPResponse error:returnedError]; - } else if ([responseContentType isEqualToString:@"application/json"]) { - // Attempt to parse json, and return an error if parsing fails - NSError *jsonParseError; - NSDictionary *responseObject = [NSJSONSerialization JSONObjectWithData:data options:0 error:&jsonParseError]; - if (jsonParseError != nil) { - NSError *returnedError = [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTServerErrorUnexpectedError - userInfo:@{NSUnderlyingErrorKey: jsonParseError}]; - [self callCompletionBlock:completionBlock response:nil error:returnedError]; - return; - } - - BTHTTPResponse *btHTTPResponse = [[BTHTTPResponse alloc] initWithStatusCode:statusCode responseObject:responseObject]; - NSMutableDictionary *userInfoDictionary = nil; - if ([responseObject isKindOfClass:[NSDictionary class]]) { - userInfoDictionary = [responseObject mutableCopy]; - } - if (error) { - if (userInfoDictionary) { - userInfoDictionary[NSUnderlyingErrorKey] = error; - } else { - userInfoDictionary = [@{NSUnderlyingErrorKey: error} mutableCopy]; - } - } - if (userInfoDictionary && userInfoDictionary[@"error"] && userInfoDictionary[@"error"][@"message"]) { - userInfoDictionary[NSLocalizedDescriptionKey] = userInfoDictionary[@"error"][@"message"]; - } - NSError *returnedError = [self defaultDomainErrorForStatusCode:statusCode userInfo:userInfoDictionary]; - [self callCompletionBlock:completionBlock response:btHTTPResponse error:returnedError]; - } else { - // Return error for unsupported response type - NSError *returnedError = [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTServerErrorUnexpectedError - userInfo:@{NSLocalizedDescriptionKey: [NSString stringWithFormat:@"BTHTTP only supports application/json responses, received Content-Type: %@", responseContentType]}]; - [self callCompletionBlock:completionBlock response:nil error:returnedError]; - return; - } -} - -+ (void)callCompletionBlock:(BTHTTPCompletionBlock)completionBlock response:(BTHTTPResponse *)response error:(NSError *)error { - if (completionBlock) { - dispatch_async(dispatch_get_main_queue(), ^{ - completionBlock(response, error); - }); - } -} - -#pragma mark - Error Classification - -+ (NSError *)domainRequestErrorForError:(NSError *)error { - NSError *returnedError; - if (error != nil) { - NSDictionary *userInfoDictionary = @{NSUnderlyingErrorKey: error}; - if ([error.domain isEqualToString:NSURLErrorDomain]) { - NSInteger returnedErrorCode; - switch (error.code) { - case NSURLErrorSecureConnectionFailed: - case NSURLErrorServerCertificateHasBadDate: - case NSURLErrorServerCertificateUntrusted: - case NSURLErrorServerCertificateHasUnknownRoot: - case NSURLErrorServerCertificateNotYetValid: - case NSURLErrorClientCertificateRejected: - case NSURLErrorClientCertificateRequired: - case NSURLErrorCannotLoadFromNetwork: - returnedErrorCode = BTServerErrorSSL; - break; - case NSURLErrorCannotConnectToHost: - case NSURLErrorTimedOut: - returnedErrorCode = BTServerErrorGatewayUnavailable; - break; - case NSURLErrorUnsupportedURL: - case NSURLErrorBadServerResponse: - returnedErrorCode = BTServerErrorUnexpectedError; - break; - case NSURLErrorNetworkConnectionLost: - case NSURLErrorInternationalRoamingOff: - case NSURLErrorCallIsActive: - case NSURLErrorDataNotAllowed: - case NSURLErrorNotConnectedToInternet: - returnedErrorCode = BTServerErrorNetworkUnavailable; - break; - default: - returnedErrorCode = BTServerErrorUnknown; - break; - } - returnedError = [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:returnedErrorCode - userInfo:userInfoDictionary]; - } else if ([error.domain isEqualToString:NSCocoaErrorDomain] && error.code == NSPropertyListReadCorruptError) { - returnedError = [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTServerErrorUnexpectedError - userInfo:userInfoDictionary]; - } - } - return returnedError; -} - -+ (NSError *)defaultDomainErrorForStatusCode:(NSInteger)statusCode userInfo:(NSDictionary *)userInfoDictionary { - switch (statusCode) { - case 200 ... 299: - return nil; - case 403: - return [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTMerchantIntegrationErrorUnauthorized - userInfo:userInfoDictionary]; - case 404: - return [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTMerchantIntegrationErrorNotFound - userInfo:userInfoDictionary]; - case 422: - return [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTCustomerInputErrorInvalid - userInfo:userInfoDictionary]; - case 400 ... 402: - case 405 ... 421: - case 423 ... 499: - return [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTCustomerInputErrorUnknown - userInfo:userInfoDictionary]; - case 503: - return [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTServerErrorGatewayUnavailable - userInfo:userInfoDictionary]; - case 500 ... 502: - case 504 ... 599: - return [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTServerErrorUnknown - userInfo:userInfoDictionary]; - default: - return [NSError errorWithDomain:BTBraintreeAPIErrorDomain - code:BTUnknownError - userInfo:userInfoDictionary]; - } -} - -#pragma mark - Default Headers - -- (NSDictionary *)defaultHeaders { - return @{ @"User-Agent": [self userAgentString], - @"Accept": [self acceptString], - @"Accept-Language": [self acceptLanguageString] }; -} - -- (NSString *)userAgentString { - return [NSString stringWithFormat:@"Braintree/iOS/%@", - [BTClient libraryVersion]]; -} - -- (NSString *)platformString { - size_t size = 128; - char *hwModel = alloca(size); - - if (sysctlbyname("hw.model", hwModel, &size, NULL, 0) != 0) { - return nil; - } - - NSString *hwModelString = [NSString stringWithCString:hwModel encoding:NSUTF8StringEncoding]; -#if TARGET_IPHONE_SIMULATOR - hwModelString = [hwModelString stringByAppendingString:@"(simulator)"]; -#endif - return hwModelString; -} - -- (NSString *)architectureString { - size_t size = 128; - char *hwMachine = alloca(size); - - if (sysctlbyname("hw.machine", hwMachine, &size, NULL, 0) != 0) { - return nil; - } - - return [NSString stringWithCString:hwMachine encoding:NSUTF8StringEncoding]; -} - -- (NSString *)acceptString { - return @"application/json"; -} - -- (NSString *)acceptLanguageString { - NSLocale *locale = [NSLocale currentLocale]; - return [NSString stringWithFormat:@"%@-%@", - [locale objectForKey:NSLocaleLanguageCode], - [locale objectForKey:NSLocaleCountryCode]]; -} - -#pragma mark - Helpers - -- (NSArray *)pinnedCertificateData { - NSMutableArray *pinnedCertificates = [NSMutableArray array]; - for (NSData *certificateData in self.pinnedCertificates) { - [pinnedCertificates addObject:(__bridge_transfer id)SecCertificateCreateWithData(NULL, (__bridge CFDataRef)certificateData)]; - } - return pinnedCertificates; -} - -- (void)URLSession:(__unused NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition, NSURLCredential *))completionHandler { - if ([[[challenge protectionSpace] authenticationMethod] isEqualToString:NSURLAuthenticationMethodServerTrust]) { - NSString *domain = challenge.protectionSpace.host; - SecTrustRef serverTrust = [[challenge protectionSpace] serverTrust]; - - NSArray *policies = @[(__bridge_transfer id)SecPolicyCreateSSL(true, (__bridge CFStringRef)domain)]; - SecTrustSetPolicies(serverTrust, (__bridge CFArrayRef)policies); - SecTrustSetAnchorCertificates(serverTrust, (__bridge CFArrayRef)self.pinnedCertificateData); - SecTrustResultType result; - - OSStatus errorCode = SecTrustEvaluate(serverTrust, &result); - - BOOL evaluatesAsTrusted = (result == kSecTrustResultUnspecified || result == kSecTrustResultProceed); - if (errorCode == errSecSuccess && evaluatesAsTrusted) { - NSURLCredential *credential = [NSURLCredential credentialForTrust:serverTrust]; - completionHandler(NSURLSessionAuthChallengeUseCredential, credential); - } else { - completionHandler(NSURLSessionAuthChallengeRejectProtectionSpace, NULL); - } - } else { - completionHandler(NSURLSessionAuthChallengePerformDefaultHandling, NULL); - } -} - -- (BOOL)isEqualToHTTP:(BTHTTP *)http { - return (self.baseURL == http.baseURL) || [self.baseURL isEqual:http.baseURL]; -} - -- (BOOL)isEqual:(id)object { - if (self == object) { - return YES; - } - - if ([object isKindOfClass:[BTHTTP class]]) { - return [self isEqualToHTTP:object]; - } - - return NO; -} - -@end diff --git a/Pods/Braintree/Braintree/API/Networking/BTHTTPResponse.h b/Pods/Braintree/Braintree/API/Networking/BTHTTPResponse.h deleted file mode 100644 index d212ec9..0000000 --- a/Pods/Braintree/Braintree/API/Networking/BTHTTPResponse.h +++ /dev/null @@ -1,13 +0,0 @@ -#import -#import "BTAPIResponseParser.h" - -@interface BTHTTPResponse : NSObject - -@property (nonatomic, readonly, strong) BTAPIResponseParser *object; -@property (nonatomic, readonly, strong) NSDictionary *rawObject; -@property (nonatomic, readonly, assign) NSInteger statusCode; -@property (nonatomic, readonly, assign, getter = isSuccess) BOOL success; - -- (instancetype)initWithStatusCode:(NSInteger)statusCode responseObject:(NSDictionary *)response; - -@end diff --git a/Pods/Braintree/Braintree/API/Networking/BTHTTPResponse.m b/Pods/Braintree/Braintree/API/Networking/BTHTTPResponse.m deleted file mode 100644 index 4eff98d..0000000 --- a/Pods/Braintree/Braintree/API/Networking/BTHTTPResponse.m +++ /dev/null @@ -1,34 +0,0 @@ -#import "BTHTTPResponse.h" - -@interface BTHTTPResponse () - -@property (nonatomic, readwrite, strong) BTAPIResponseParser *object; -@property (nonatomic, readwrite, strong) NSDictionary *rawObject; -@property (nonatomic, readwrite, assign) NSInteger statusCode; -@end - -@implementation BTHTTPResponse - -- (instancetype)initWithStatusCode:(NSInteger)statusCode responseObject:(NSDictionary *)object { - self = [self init]; - if (self) { - self.statusCode = statusCode; - self.rawObject = object; - self.object = [BTAPIResponseParser parserWithDictionary:object]; - } - return self; -} - -- (BOOL)isSuccess { - return self.statusCode >= 200 && self.statusCode < 300; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"", (int)self.statusCode, self.object]; -} - -- (NSString *)debugDescription { - return [NSString stringWithFormat:@"", (int)self.statusCode, [self.object debugDescription]]; -} - -@end diff --git a/Pods/Braintree/Braintree/API/Networking/BTURLUtils.h b/Pods/Braintree/Braintree/API/Networking/BTURLUtils.h deleted file mode 100644 index 4930ff3..0000000 --- a/Pods/Braintree/Braintree/API/Networking/BTURLUtils.h +++ /dev/null @@ -1,9 +0,0 @@ -#import - -@interface BTURLUtils : NSObject - -+ (NSURL *)URLfromURL:(NSURL *)URL withAppendedQueryDictionary:(NSDictionary *)dictionary; -+ (NSString *)queryStringWithDictionary:(NSDictionary *)dict; -+ (NSDictionary *)dictionaryForQueryString:(NSString *)queryString; - -@end diff --git a/Pods/Braintree/Braintree/API/Networking/BTURLUtils.m b/Pods/Braintree/Braintree/API/Networking/BTURLUtils.m deleted file mode 100644 index 2d28fdd..0000000 --- a/Pods/Braintree/Braintree/API/Networking/BTURLUtils.m +++ /dev/null @@ -1,87 +0,0 @@ -#import "BTURLUtils.h" - -@implementation BTURLUtils - -+ (NSURL *)URLfromURL:(NSURL *)URL withAppendedQueryDictionary:(NSDictionary *)dictionary { - if (!URL) { - return nil; - } - - NSURLComponents *urlComponents = [NSURLComponents componentsWithURL:URL resolvingAgainstBaseURL:NO]; - urlComponents.percentEncodedQuery = [self queryStringWithDictionary:dictionary]; - return urlComponents.URL; -} - -+ (NSString *)queryStringWithDictionary:(NSDictionary *)dict { - NSMutableString *queryString = [NSMutableString string]; - for (id key in dict) { - NSString *encodedKey = [self stringByURLEncodingAllCharactersInString:[key description]]; - id value = [dict objectForKey:key]; - if([value isKindOfClass:[NSArray class]]) { - for(id obj in value) { - [queryString appendFormat:@"%@%%5B%%5D=%@&", - encodedKey, - [self stringByURLEncodingAllCharactersInString:[obj description]] - ]; - } - } else if([value isKindOfClass:[NSDictionary class]]) { - for(id subkey in value) { - [queryString appendFormat:@"%@%%5B%@%%5D=%@&", - encodedKey, - [self stringByURLEncodingAllCharactersInString:[subkey description]], - [self stringByURLEncodingAllCharactersInString:[[value objectForKey:subkey] description]] - ]; - } - } else if([value isKindOfClass:[NSNull class]]) { - [queryString appendFormat:@"%@=&", encodedKey]; - } else { - [queryString appendFormat:@"%@=%@&", - encodedKey, - [self stringByURLEncodingAllCharactersInString:[value description]] - ]; - } - } - if([queryString length] > 0) { - [queryString deleteCharactersInRange:NSMakeRange([queryString length] - 1, 1)]; // remove trailing & - } - return queryString; -} - -+ (NSString *)stringByURLEncodingAllCharactersInString:(NSString *)aString { - // See Section 2.2. http://www.ietf.org/rfc/rfc2396.txt - NSString *reservedCharacters = @";/?:@&=+$,"; - - NSMutableCharacterSet *URLQueryPartAllowedCharacterSet = [[NSCharacterSet URLQueryAllowedCharacterSet] mutableCopy]; - [URLQueryPartAllowedCharacterSet removeCharactersInString:reservedCharacters]; - - return [aString stringByAddingPercentEncodingWithAllowedCharacters:URLQueryPartAllowedCharacterSet]; -} - -+ (NSDictionary *)dictionaryForQueryString:(NSString *)queryString { - NSMutableDictionary *parameters = [NSMutableDictionary dictionary]; - NSArray *components = [queryString componentsSeparatedByString:@"&"]; - for (NSString *keyValueString in components) { - if ([keyValueString length] == 0) { - continue; - } - - NSArray *keyValueArray = [keyValueString componentsSeparatedByString:@"="]; - NSString *key = [self percentDecodedStringForString:keyValueArray[0]]; - if (!key) { - continue; - } - if (keyValueArray.count == 2) { - NSString *value = [self percentDecodedStringForString:keyValueArray[1]]; - parameters[key] = value; - } else { - parameters[key] = [NSNull null]; - } - } - return [NSDictionary dictionaryWithDictionary:parameters]; -} - -+ (NSString *)percentDecodedStringForString:(NSString *)string { - return [[string stringByReplacingOccurrencesOfString:@"+" withString:@" "] stringByRemovingPercentEncoding]; -} - -@end diff --git a/Pods/Braintree/Braintree/API/Networking/Certificates/BTAPIPinnedCertificates.h b/Pods/Braintree/Braintree/API/Networking/Certificates/BTAPIPinnedCertificates.h deleted file mode 100644 index 5968976..0000000 --- a/Pods/Braintree/Braintree/API/Networking/Certificates/BTAPIPinnedCertificates.h +++ /dev/null @@ -1,14 +0,0 @@ -#import - -// :rotating_light THIS CODE IS GENERATED BY codify_certificates.sh :rotating_light: -/// Encapsualtes our trusted x509 Certificates for Secure SSL Communication with Braintree's servers. -/// -/// This class consists of code that is generated by the codify_certificates.sh script, which takes -/// a set of PEM formatted certificates and encodes them in code in order to avoid storing certificates -/// files in an NSBundle. -@interface BTAPIPinnedCertificates : NSObject -/// Returns the set of trusted root certificates based on the PEM files located in this directory. -/// -/// @return An array of trusted certificates encoded in the DER format, encapsulated in NSData objects. -+ (NSArray *)trustedCertificates; -@end diff --git a/Pods/Braintree/Braintree/API/Networking/Certificates/BTAPIPinnedCertificates.m b/Pods/Braintree/Braintree/API/Networking/Certificates/BTAPIPinnedCertificates.m deleted file mode 100644 index da33f05..0000000 --- a/Pods/Braintree/Braintree/API/Networking/Certificates/BTAPIPinnedCertificates.m +++ /dev/null @@ -1,1022 +0,0 @@ -#import "BTAPIPinnedCertificates.h" - -// :rotating_light THIS CODE IS GENERATED BY codify_certificates.sh :rotating_light: -@implementation BTAPIPinnedCertificates - -+ (NSArray *)trustedCertificates { - NSMutableArray *trustedCertificates = [NSMutableArray arrayWithCapacity:15]; - { -/* subject:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA 2 */ -/* issuer :/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA 2 */ -unsigned char XXX_certificate[874]={ -0x30,0x82,0x03,0x66,0x30,0x82,0x02,0x4E,0xA0,0x03,0x02,0x01,0x02,0x02,0x01,0x01, -0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x30, -0x44,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x16, -0x30,0x14,0x06,0x03,0x55,0x04,0x0A,0x13,0x0D,0x47,0x65,0x6F,0x54,0x72,0x75,0x73, -0x74,0x20,0x49,0x6E,0x63,0x2E,0x31,0x1D,0x30,0x1B,0x06,0x03,0x55,0x04,0x03,0x13, -0x14,0x47,0x65,0x6F,0x54,0x72,0x75,0x73,0x74,0x20,0x47,0x6C,0x6F,0x62,0x61,0x6C, -0x20,0x43,0x41,0x20,0x32,0x30,0x1E,0x17,0x0D,0x30,0x34,0x30,0x33,0x30,0x34,0x30, -0x35,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D,0x31,0x39,0x30,0x33,0x30,0x34,0x30,0x35, -0x30,0x30,0x30,0x30,0x5A,0x30,0x44,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06, -0x13,0x02,0x55,0x53,0x31,0x16,0x30,0x14,0x06,0x03,0x55,0x04,0x0A,0x13,0x0D,0x47, -0x65,0x6F,0x54,0x72,0x75,0x73,0x74,0x20,0x49,0x6E,0x63,0x2E,0x31,0x1D,0x30,0x1B, -0x06,0x03,0x55,0x04,0x03,0x13,0x14,0x47,0x65,0x6F,0x54,0x72,0x75,0x73,0x74,0x20, -0x47,0x6C,0x6F,0x62,0x61,0x6C,0x20,0x43,0x41,0x20,0x32,0x30,0x82,0x01,0x22,0x30, -0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x01,0x05,0x00,0x03,0x82, -0x01,0x0F,0x00,0x30,0x82,0x01,0x0A,0x02,0x82,0x01,0x01,0x00,0xEF,0x3C,0x4D,0x40, -0x3D,0x10,0xDF,0x3B,0x53,0x00,0xE1,0x67,0xFE,0x94,0x60,0x15,0x3E,0x85,0x88,0xF1, -0x89,0x0D,0x90,0xC8,0x28,0x23,0x99,0x05,0xE8,0x2B,0x20,0x9D,0xC6,0xF3,0x60,0x46, -0xD8,0xC1,0xB2,0xD5,0x8C,0x31,0xD9,0xDC,0x20,0x79,0x24,0x81,0xBF,0x35,0x32,0xFC, -0x63,0x69,0xDB,0xB1,0x2A,0x6B,0xEE,0x21,0x58,0xF2,0x08,0xE9,0x78,0xCB,0x6F,0xCB, -0xFC,0x16,0x52,0xC8,0x91,0xC4,0xFF,0x3D,0x73,0xDE,0xB1,0x3E,0xA7,0xC2,0x7D,0x66, -0xC1,0xF5,0x7E,0x52,0x24,0x1A,0xE2,0xD5,0x67,0x91,0xD0,0x82,0x10,0xD7,0x78,0x4B, -0x4F,0x2B,0x42,0x39,0xBD,0x64,0x2D,0x40,0xA0,0xB0,0x10,0xD3,0x38,0x48,0x46,0x88, -0xA1,0x0C,0xBB,0x3A,0x33,0x2A,0x62,0x98,0xFB,0x00,0x9D,0x13,0x59,0x7F,0x6F,0x3B, -0x72,0xAA,0xEE,0xA6,0x0F,0x86,0xF9,0x05,0x61,0xEA,0x67,0x7F,0x0C,0x37,0x96,0x8B, -0xE6,0x69,0x16,0x47,0x11,0xC2,0x27,0x59,0x03,0xB3,0xA6,0x60,0xC2,0x21,0x40,0x56, -0xFA,0xA0,0xC7,0x7D,0x3A,0x13,0xE3,0xEC,0x57,0xC7,0xB3,0xD6,0xAE,0x9D,0x89,0x80, -0xF7,0x01,0xE7,0x2C,0xF6,0x96,0x2B,0x13,0x0D,0x79,0x2C,0xD9,0xC0,0xE4,0x86,0x7B, -0x4B,0x8C,0x0C,0x72,0x82,0x8A,0xFB,0x17,0xCD,0x00,0x6C,0x3A,0x13,0x3C,0xB0,0x84, -0x87,0x4B,0x16,0x7A,0x29,0xB2,0x4F,0xDB,0x1D,0xD4,0x0B,0xF3,0x66,0x37,0xBD,0xD8, -0xF6,0x57,0xBB,0x5E,0x24,0x7A,0xB8,0x3C,0x8B,0xB9,0xFA,0x92,0x1A,0x1A,0x84,0x9E, -0xD8,0x74,0x8F,0xAA,0x1B,0x7F,0x5E,0xF4,0xFE,0x45,0x22,0x21,0x02,0x03,0x01,0x00, -0x01,0xA3,0x63,0x30,0x61,0x30,0x0F,0x06,0x03,0x55,0x1D,0x13,0x01,0x01,0xFF,0x04, -0x05,0x30,0x03,0x01,0x01,0xFF,0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04,0x16,0x04, -0x14,0x71,0x38,0x36,0xF2,0x02,0x31,0x53,0x47,0x2B,0x6E,0xBA,0x65,0x46,0xA9,0x10, -0x15,0x58,0x20,0x05,0x09,0x30,0x1F,0x06,0x03,0x55,0x1D,0x23,0x04,0x18,0x30,0x16, -0x80,0x14,0x71,0x38,0x36,0xF2,0x02,0x31,0x53,0x47,0x2B,0x6E,0xBA,0x65,0x46,0xA9, -0x10,0x15,0x58,0x20,0x05,0x09,0x30,0x0E,0x06,0x03,0x55,0x1D,0x0F,0x01,0x01,0xFF, -0x04,0x04,0x03,0x02,0x01,0x86,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D, -0x01,0x01,0x05,0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x03,0xF7,0xB5,0x2B,0xAB,0x5D, -0x10,0xFC,0x7B,0xB2,0xB2,0x5E,0xAC,0x9B,0x0E,0x7E,0x53,0x78,0x59,0x3E,0x42,0x04, -0xFE,0x75,0xA3,0xAD,0xAC,0x81,0x4E,0xD7,0x02,0x8B,0x5E,0xC4,0x2D,0xC8,0x52,0x76, -0xC7,0x2C,0x1F,0xFC,0x81,0x32,0x98,0xD1,0x4B,0xC6,0x92,0x93,0x33,0x35,0x31,0x2F, -0xFC,0xD8,0x1D,0x44,0xDD,0xE0,0x81,0x7F,0x9D,0xE9,0x8B,0xE1,0x64,0x91,0x62,0x0B, -0x39,0x08,0x8C,0xAC,0x74,0x9D,0x59,0xD9,0x7A,0x59,0x52,0x97,0x11,0xB9,0x16,0x7B, -0x6F,0x45,0xD3,0x96,0xD9,0x31,0x7D,0x02,0x36,0x0F,0x9C,0x3B,0x6E,0xCF,0x2C,0x0D, -0x03,0x46,0x45,0xEB,0xA0,0xF4,0x7F,0x48,0x44,0xC6,0x08,0x40,0xCC,0xDE,0x1B,0x70, -0xB5,0x29,0xAD,0xBA,0x8B,0x3B,0x34,0x65,0x75,0x1B,0x71,0x21,0x1D,0x2C,0x14,0x0A, -0xB0,0x96,0x95,0xB8,0xD6,0xEA,0xF2,0x65,0xFB,0x29,0xBA,0x4F,0xEA,0x91,0x93,0x74, -0x69,0xB6,0xF2,0xFF,0xE1,0x1A,0xD0,0x0C,0xD1,0x76,0x85,0xCB,0x8A,0x25,0xBD,0x97, -0x5E,0x2C,0x6F,0x15,0x99,0x26,0xE7,0xB6,0x29,0xFF,0x22,0xEC,0xC9,0x02,0xC7,0x56, -0x00,0xCD,0x49,0xB9,0xB3,0x6C,0x7B,0x53,0x04,0x1A,0xE2,0xA8,0xC9,0xAA,0x12,0x05, -0x23,0xC2,0xCE,0xE7,0xBB,0x04,0x02,0xCC,0xC0,0x47,0xA2,0xE4,0xC4,0x29,0x2F,0x5B, -0x45,0x57,0x89,0x51,0xEE,0x3C,0xEB,0x52,0x08,0xFF,0x07,0x35,0x1E,0x9F,0x35,0x6A, -0x47,0x4A,0x56,0x98,0xD1,0x5A,0x85,0x1F,0x8C,0xF5,0x22,0xBF,0xAB,0xCE,0x83,0xF3, -0xE2,0x22,0x29,0xAE,0x7D,0x83,0x40,0xA8,0xBA,0x6C, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA */ -/* issuer :/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA */ -unsigned char XXX_certificate[856]={ -0x30,0x82,0x03,0x54,0x30,0x82,0x02,0x3C,0xA0,0x03,0x02,0x01,0x02,0x02,0x03,0x02, -0x34,0x56,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05, -0x00,0x30,0x42,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53, -0x31,0x16,0x30,0x14,0x06,0x03,0x55,0x04,0x0A,0x13,0x0D,0x47,0x65,0x6F,0x54,0x72, -0x75,0x73,0x74,0x20,0x49,0x6E,0x63,0x2E,0x31,0x1B,0x30,0x19,0x06,0x03,0x55,0x04, -0x03,0x13,0x12,0x47,0x65,0x6F,0x54,0x72,0x75,0x73,0x74,0x20,0x47,0x6C,0x6F,0x62, -0x61,0x6C,0x20,0x43,0x41,0x30,0x1E,0x17,0x0D,0x30,0x32,0x30,0x35,0x32,0x31,0x30, -0x34,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D,0x32,0x32,0x30,0x35,0x32,0x31,0x30,0x34, -0x30,0x30,0x30,0x30,0x5A,0x30,0x42,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06, -0x13,0x02,0x55,0x53,0x31,0x16,0x30,0x14,0x06,0x03,0x55,0x04,0x0A,0x13,0x0D,0x47, -0x65,0x6F,0x54,0x72,0x75,0x73,0x74,0x20,0x49,0x6E,0x63,0x2E,0x31,0x1B,0x30,0x19, -0x06,0x03,0x55,0x04,0x03,0x13,0x12,0x47,0x65,0x6F,0x54,0x72,0x75,0x73,0x74,0x20, -0x47,0x6C,0x6F,0x62,0x61,0x6C,0x20,0x43,0x41,0x30,0x82,0x01,0x22,0x30,0x0D,0x06, -0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0F, -0x00,0x30,0x82,0x01,0x0A,0x02,0x82,0x01,0x01,0x00,0xDA,0xCC,0x18,0x63,0x30,0xFD, -0xF4,0x17,0x23,0x1A,0x56,0x7E,0x5B,0xDF,0x3C,0x6C,0x38,0xE4,0x71,0xB7,0x78,0x91, -0xD4,0xBC,0xA1,0xD8,0x4C,0xF8,0xA8,0x43,0xB6,0x03,0xE9,0x4D,0x21,0x07,0x08,0x88, -0xDA,0x58,0x2F,0x66,0x39,0x29,0xBD,0x05,0x78,0x8B,0x9D,0x38,0xE8,0x05,0xB7,0x6A, -0x7E,0x71,0xA4,0xE6,0xC4,0x60,0xA6,0xB0,0xEF,0x80,0xE4,0x89,0x28,0x0F,0x9E,0x25, -0xD6,0xED,0x83,0xF3,0xAD,0xA6,0x91,0xC7,0x98,0xC9,0x42,0x18,0x35,0x14,0x9D,0xAD, -0x98,0x46,0x92,0x2E,0x4F,0xCA,0xF1,0x87,0x43,0xC1,0x16,0x95,0x57,0x2D,0x50,0xEF, -0x89,0x2D,0x80,0x7A,0x57,0xAD,0xF2,0xEE,0x5F,0x6B,0xD2,0x00,0x8D,0xB9,0x14,0xF8, -0x14,0x15,0x35,0xD9,0xC0,0x46,0xA3,0x7B,0x72,0xC8,0x91,0xBF,0xC9,0x55,0x2B,0xCD, -0xD0,0x97,0x3E,0x9C,0x26,0x64,0xCC,0xDF,0xCE,0x83,0x19,0x71,0xCA,0x4E,0xE6,0xD4, -0xD5,0x7B,0xA9,0x19,0xCD,0x55,0xDE,0xC8,0xEC,0xD2,0x5E,0x38,0x53,0xE5,0x5C,0x4F, -0x8C,0x2D,0xFE,0x50,0x23,0x36,0xFC,0x66,0xE6,0xCB,0x8E,0xA4,0x39,0x19,0x00,0xB7, -0x95,0x02,0x39,0x91,0x0B,0x0E,0xFE,0x38,0x2E,0xD1,0x1D,0x05,0x9A,0xF6,0x4D,0x3E, -0x6F,0x0F,0x07,0x1D,0xAF,0x2C,0x1E,0x8F,0x60,0x39,0xE2,0xFA,0x36,0x53,0x13,0x39, -0xD4,0x5E,0x26,0x2B,0xDB,0x3D,0xA8,0x14,0xBD,0x32,0xEB,0x18,0x03,0x28,0x52,0x04, -0x71,0xE5,0xAB,0x33,0x3D,0xE1,0x38,0xBB,0x07,0x36,0x84,0x62,0x9C,0x79,0xEA,0x16, -0x30,0xF4,0x5F,0xC0,0x2B,0xE8,0x71,0x6B,0xE4,0xF9,0x02,0x03,0x01,0x00,0x01,0xA3, -0x53,0x30,0x51,0x30,0x0F,0x06,0x03,0x55,0x1D,0x13,0x01,0x01,0xFF,0x04,0x05,0x30, -0x03,0x01,0x01,0xFF,0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04,0x16,0x04,0x14,0xC0, -0x7A,0x98,0x68,0x8D,0x89,0xFB,0xAB,0x05,0x64,0x0C,0x11,0x7D,0xAA,0x7D,0x65,0xB8, -0xCA,0xCC,0x4E,0x30,0x1F,0x06,0x03,0x55,0x1D,0x23,0x04,0x18,0x30,0x16,0x80,0x14, -0xC0,0x7A,0x98,0x68,0x8D,0x89,0xFB,0xAB,0x05,0x64,0x0C,0x11,0x7D,0xAA,0x7D,0x65, -0xB8,0xCA,0xCC,0x4E,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01, -0x05,0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x35,0xE3,0x29,0x6A,0xE5,0x2F,0x5D,0x54, -0x8E,0x29,0x50,0x94,0x9F,0x99,0x1A,0x14,0xE4,0x8F,0x78,0x2A,0x62,0x94,0xA2,0x27, -0x67,0x9E,0xD0,0xCF,0x1A,0x5E,0x47,0xE9,0xC1,0xB2,0xA4,0xCF,0xDD,0x41,0x1A,0x05, -0x4E,0x9B,0x4B,0xEE,0x4A,0x6F,0x55,0x52,0xB3,0x24,0xA1,0x37,0x0A,0xEB,0x64,0x76, -0x2A,0x2E,0x2C,0xF3,0xFD,0x3B,0x75,0x90,0xBF,0xFA,0x71,0xD8,0xC7,0x3D,0x37,0xD2, -0xB5,0x05,0x95,0x62,0xB9,0xA6,0xDE,0x89,0x3D,0x36,0x7B,0x38,0x77,0x48,0x97,0xAC, -0xA6,0x20,0x8F,0x2E,0xA6,0xC9,0x0C,0xC2,0xB2,0x99,0x45,0x00,0xC7,0xCE,0x11,0x51, -0x22,0x22,0xE0,0xA5,0xEA,0xB6,0x15,0x48,0x09,0x64,0xEA,0x5E,0x4F,0x74,0xF7,0x05, -0x3E,0xC7,0x8A,0x52,0x0C,0xDB,0x15,0xB4,0xBD,0x6D,0x9B,0xE5,0xC6,0xB1,0x54,0x68, -0xA9,0xE3,0x69,0x90,0xB6,0x9A,0xA5,0x0F,0xB8,0xB9,0x3F,0x20,0x7D,0xAE,0x4A,0xB5, -0xB8,0x9C,0xE4,0x1D,0xB6,0xAB,0xE6,0x94,0xA5,0xC1,0xC7,0x83,0xAD,0xDB,0xF5,0x27, -0x87,0x0E,0x04,0x6C,0xD5,0xFF,0xDD,0xA0,0x5D,0xED,0x87,0x52,0xB7,0x2B,0x15,0x02, -0xAE,0x39,0xA6,0x6A,0x74,0xE9,0xDA,0xC4,0xE7,0xBC,0x4D,0x34,0x1E,0xA9,0x5C,0x4D, -0x33,0x5F,0x92,0x09,0x2F,0x88,0x66,0x5D,0x77,0x97,0xC7,0x1D,0x76,0x13,0xA9,0xD5, -0xE5,0xF1,0x16,0x09,0x11,0x35,0xD5,0xAC,0xDB,0x24,0x71,0x70,0x2C,0x98,0x56,0x0B, -0xD9,0x17,0xB4,0xD1,0xE3,0x51,0x2B,0x5E,0x75,0xE8,0xD5,0xD0,0xDC,0x4F,0x34,0xED, -0xC2,0x05,0x66,0x80,0xA1,0xCB,0xE6,0x33, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=GeoTrust Inc./CN=GeoTrust Universal CA 2 */ -/* issuer :/C=US/O=GeoTrust Inc./CN=GeoTrust Universal CA 2 */ -unsigned char XXX_certificate[1392]={ -0x30,0x82,0x05,0x6C,0x30,0x82,0x03,0x54,0xA0,0x03,0x02,0x01,0x02,0x02,0x01,0x01, -0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x30, -0x47,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x16, -0x30,0x14,0x06,0x03,0x55,0x04,0x0A,0x13,0x0D,0x47,0x65,0x6F,0x54,0x72,0x75,0x73, -0x74,0x20,0x49,0x6E,0x63,0x2E,0x31,0x20,0x30,0x1E,0x06,0x03,0x55,0x04,0x03,0x13, -0x17,0x47,0x65,0x6F,0x54,0x72,0x75,0x73,0x74,0x20,0x55,0x6E,0x69,0x76,0x65,0x72, -0x73,0x61,0x6C,0x20,0x43,0x41,0x20,0x32,0x30,0x1E,0x17,0x0D,0x30,0x34,0x30,0x33, -0x30,0x34,0x30,0x35,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D,0x32,0x39,0x30,0x33,0x30, -0x34,0x30,0x35,0x30,0x30,0x30,0x30,0x5A,0x30,0x47,0x31,0x0B,0x30,0x09,0x06,0x03, -0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x16,0x30,0x14,0x06,0x03,0x55,0x04,0x0A, -0x13,0x0D,0x47,0x65,0x6F,0x54,0x72,0x75,0x73,0x74,0x20,0x49,0x6E,0x63,0x2E,0x31, -0x20,0x30,0x1E,0x06,0x03,0x55,0x04,0x03,0x13,0x17,0x47,0x65,0x6F,0x54,0x72,0x75, -0x73,0x74,0x20,0x55,0x6E,0x69,0x76,0x65,0x72,0x73,0x61,0x6C,0x20,0x43,0x41,0x20, -0x32,0x30,0x82,0x02,0x22,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01, -0x01,0x01,0x05,0x00,0x03,0x82,0x02,0x0F,0x00,0x30,0x82,0x02,0x0A,0x02,0x82,0x02, -0x01,0x00,0xB3,0x54,0x52,0xC1,0xC9,0x3E,0xF2,0xD9,0xDC,0xB1,0x53,0x1A,0x59,0x29, -0xE7,0xB1,0xC3,0x45,0x28,0xE5,0xD7,0xD1,0xED,0xC5,0xC5,0x4B,0xA1,0xAA,0x74,0x7B, -0x57,0xAF,0x4A,0x26,0xFC,0xD8,0xF5,0x5E,0xA7,0x6E,0x19,0xDB,0x74,0x0C,0x4F,0x35, -0x5B,0x32,0x0B,0x01,0xE3,0xDB,0xEB,0x7A,0x77,0x35,0xEA,0xAA,0x5A,0xE0,0xD6,0xE8, -0xA1,0x57,0x94,0xF0,0x90,0xA3,0x74,0x56,0x94,0x44,0x30,0x03,0x1E,0x5C,0x4E,0x2B, -0x85,0x26,0x74,0x82,0x7A,0x0C,0x76,0xA0,0x6F,0x4D,0xCE,0x41,0x2D,0xA0,0x15,0x06, -0x14,0x5F,0xB7,0x42,0xCD,0x7B,0x8F,0x58,0x61,0x34,0xDC,0x2A,0x08,0xF9,0x2E,0xC3, -0x01,0xA6,0x22,0x44,0x1C,0x4C,0x07,0x82,0xE6,0x5B,0xCE,0xD0,0x4A,0x7C,0x04,0xD3, -0x19,0x73,0x27,0xF0,0xAA,0x98,0x7F,0x2E,0xAF,0x4E,0xEB,0x87,0x1E,0x24,0x77,0x6A, -0x5D,0xB6,0xE8,0x5B,0x45,0xBA,0xDC,0xC3,0xA1,0x05,0x6F,0x56,0x8E,0x8F,0x10,0x26, -0xA5,0x49,0xC3,0x2E,0xD7,0x41,0x87,0x22,0xE0,0x4F,0x86,0xCA,0x60,0xB5,0xEA,0xA1, -0x63,0xC0,0x01,0x97,0x10,0x79,0xBD,0x00,0x3C,0x12,0x6D,0x2B,0x15,0xB1,0xAC,0x4B, -0xB1,0xEE,0x18,0xB9,0x4E,0x96,0xDC,0xDC,0x76,0xFF,0x3B,0xBE,0xCF,0x5F,0x03,0xC0, -0xFC,0x3B,0xE8,0xBE,0x46,0x1B,0xFF,0xDA,0x40,0xC2,0x52,0xF7,0xFE,0xE3,0x3A,0xF7, -0x6A,0x77,0x35,0xD0,0xDA,0x8D,0xEB,0x5E,0x18,0x6A,0x31,0xC7,0x1E,0xBA,0x3C,0x1B, -0x28,0xD6,0x6B,0x54,0xC6,0xAA,0x5B,0xD7,0xA2,0x2C,0x1B,0x19,0xCC,0xA2,0x02,0xF6, -0x9B,0x59,0xBD,0x37,0x6B,0x86,0xB5,0x6D,0x82,0xBA,0xD8,0xEA,0xC9,0x56,0xBC,0xA9, -0x36,0x58,0xFD,0x3E,0x19,0xF3,0xED,0x0C,0x26,0xA9,0x93,0x38,0xF8,0x4F,0xC1,0x5D, -0x22,0x06,0xD0,0x97,0xEA,0xE1,0xAD,0xC6,0x55,0xE0,0x81,0x2B,0x28,0x83,0x3A,0xFA, -0xF4,0x7B,0x21,0x51,0x00,0xBE,0x52,0x38,0xCE,0xCD,0x66,0x79,0xA8,0xF4,0x81,0x56, -0xE2,0xD0,0x83,0x09,0x47,0x51,0x5B,0x50,0x6A,0xCF,0xDB,0x48,0x1A,0x5D,0x3E,0xF7, -0xCB,0xF6,0x65,0xF7,0x6C,0xF1,0x95,0xF8,0x02,0x3B,0x32,0x56,0x82,0x39,0x7A,0x5B, -0xBD,0x2F,0x89,0x1B,0xBF,0xA1,0xB4,0xE8,0xFF,0x7F,0x8D,0x8C,0xDF,0x03,0xF1,0x60, -0x4E,0x58,0x11,0x4C,0xEB,0xA3,0x3F,0x10,0x2B,0x83,0x9A,0x01,0x73,0xD9,0x94,0x6D, -0x84,0x00,0x27,0x66,0xAC,0xF0,0x70,0x40,0x09,0x42,0x92,0xAD,0x4F,0x93,0x0D,0x61, -0x09,0x51,0x24,0xD8,0x92,0xD5,0x0B,0x94,0x61,0xB2,0x87,0xB2,0xED,0xFF,0x9A,0x35, -0xFF,0x85,0x54,0xCA,0xED,0x44,0x43,0xAC,0x1B,0x3C,0x16,0x6B,0x48,0x4A,0x0A,0x1C, -0x40,0x88,0x1F,0x92,0xC2,0x0B,0x00,0x05,0xFF,0xF2,0xC8,0x02,0x4A,0xA4,0xAA,0xA9, -0xCC,0x99,0x96,0x9C,0x2F,0x58,0xE0,0x7D,0xE1,0xBE,0xBB,0x07,0xDC,0x5F,0x04,0x72, -0x5C,0x31,0x34,0xC3,0xEC,0x5F,0x2D,0xE0,0x3D,0x64,0x90,0x22,0xE6,0xD1,0xEC,0xB8, -0x2E,0xDD,0x59,0xAE,0xD9,0xA1,0x37,0xBF,0x54,0x35,0xDC,0x73,0x32,0x4F,0x8C,0x04, -0x1E,0x33,0xB2,0xC9,0x46,0xF1,0xD8,0x5C,0xC8,0x55,0x50,0xC9,0x68,0xBD,0xA8,0xBA, -0x36,0x09,0x02,0x03,0x01,0x00,0x01,0xA3,0x63,0x30,0x61,0x30,0x0F,0x06,0x03,0x55, -0x1D,0x13,0x01,0x01,0xFF,0x04,0x05,0x30,0x03,0x01,0x01,0xFF,0x30,0x1D,0x06,0x03, -0x55,0x1D,0x0E,0x04,0x16,0x04,0x14,0x76,0xF3,0x55,0xE1,0xFA,0xA4,0x36,0xFB,0xF0, -0x9F,0x5C,0x62,0x71,0xED,0x3C,0xF4,0x47,0x38,0x10,0x2B,0x30,0x1F,0x06,0x03,0x55, -0x1D,0x23,0x04,0x18,0x30,0x16,0x80,0x14,0x76,0xF3,0x55,0xE1,0xFA,0xA4,0x36,0xFB, -0xF0,0x9F,0x5C,0x62,0x71,0xED,0x3C,0xF4,0x47,0x38,0x10,0x2B,0x30,0x0E,0x06,0x03, -0x55,0x1D,0x0F,0x01,0x01,0xFF,0x04,0x04,0x03,0x02,0x01,0x86,0x30,0x0D,0x06,0x09, -0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x03,0x82,0x02,0x01,0x00, -0x66,0xC1,0xC6,0x23,0xF3,0xD9,0xE0,0x2E,0x6E,0x5F,0xE8,0xCF,0xAE,0xB0,0xB0,0x25, -0x4D,0x2B,0xF8,0x3B,0x58,0x9B,0x40,0x24,0x37,0x5A,0xCB,0xAB,0x16,0x49,0xFF,0xB3, -0x75,0x79,0x33,0xA1,0x2F,0x6D,0x70,0x17,0x34,0x91,0xFE,0x67,0x7E,0x8F,0xEC,0x9B, -0xE5,0x5E,0x82,0xA9,0x55,0x1F,0x2F,0xDC,0xD4,0x51,0x07,0x12,0xFE,0xAC,0x16,0x3E, -0x2C,0x35,0xC6,0x63,0xFC,0xDC,0x10,0xEB,0x0D,0xA3,0xAA,0xD0,0x7C,0xCC,0xD1,0xD0, -0x2F,0x51,0x2E,0xC4,0x14,0x5A,0xDE,0xE8,0x19,0xE1,0x3E,0xC6,0xCC,0xA4,0x29,0xE7, -0x2E,0x84,0xAA,0x06,0x30,0x78,0x76,0x54,0x73,0x28,0x98,0x59,0x38,0xE0,0x00,0x0D, -0x62,0xD3,0x42,0x7D,0x21,0x9F,0xAE,0x3D,0x3A,0x8C,0xD5,0xFA,0x77,0x0D,0x18,0x2B, -0x16,0x0E,0x5F,0x36,0xE1,0xFC,0x2A,0xB5,0x30,0x24,0xCF,0xE0,0x63,0x0C,0x7B,0x58, -0x1A,0xFE,0x99,0xBA,0x42,0x12,0xB1,0x91,0xF4,0x7C,0x68,0xE2,0xC8,0xE8,0xAF,0x2C, -0xEA,0xC9,0x7E,0xAE,0xBB,0x2A,0x3D,0x0D,0x15,0xDC,0x34,0x95,0xB6,0x18,0x74,0xA8, -0x6A,0x0F,0xC7,0xB4,0xF4,0x13,0xC4,0xE4,0x5B,0xED,0x0A,0xD2,0xA4,0x97,0x4C,0x2A, -0xED,0x2F,0x6C,0x12,0x89,0x3D,0xF1,0x27,0x70,0xAA,0x6A,0x03,0x52,0x21,0x9F,0x40, -0xA8,0x67,0x50,0xF2,0xF3,0x5A,0x1F,0xDF,0xDF,0x23,0xF6,0xDC,0x78,0x4E,0xE6,0x98, -0x4F,0x55,0x3A,0x53,0xE3,0xEF,0xF2,0xF4,0x9F,0xC7,0x7C,0xD8,0x58,0xAF,0x29,0x22, -0x97,0xB8,0xE0,0xBD,0x91,0x2E,0xB0,0x76,0xEC,0x57,0x11,0xCF,0xEF,0x29,0x44,0xF3, -0xE9,0x85,0x7A,0x60,0x63,0xE4,0x5D,0x33,0x89,0x17,0xD9,0x31,0xAA,0xDA,0xD6,0xF3, -0x18,0x35,0x72,0xCF,0x87,0x2B,0x2F,0x63,0x23,0x84,0x5D,0x84,0x8C,0x3F,0x57,0xA0, -0x88,0xFC,0x99,0x91,0x28,0x26,0x69,0x99,0xD4,0x8F,0x97,0x44,0xBE,0x8E,0xD5,0x48, -0xB1,0xA4,0x28,0x29,0xF1,0x15,0xB4,0xE1,0xE5,0x9E,0xDD,0xF8,0x8F,0xA6,0x6F,0x26, -0xD7,0x09,0x3C,0x3A,0x1C,0x11,0x0E,0xA6,0x6C,0x37,0xF7,0xAD,0x44,0x87,0x2C,0x28, -0xC7,0xD8,0x74,0x82,0xB3,0xD0,0x6F,0x4A,0x57,0xBB,0x35,0x29,0x27,0xA0,0x8B,0xE8, -0x21,0xA7,0x87,0x64,0x36,0x5D,0xCC,0xD8,0x16,0xAC,0xC7,0xB2,0x27,0x40,0x92,0x55, -0x38,0x28,0x8D,0x51,0x6E,0xDD,0x14,0x67,0x53,0x6C,0x71,0x5C,0x26,0x84,0x4D,0x75, -0x5A,0xB6,0x7E,0x60,0x56,0xA9,0x4D,0xAD,0xFB,0x9B,0x1E,0x97,0xF3,0x0D,0xD9,0xD2, -0x97,0x54,0x77,0xDA,0x3D,0x12,0xB7,0xE0,0x1E,0xEF,0x08,0x06,0xAC,0xF9,0x85,0x87, -0xE9,0xA2,0xDC,0xAF,0x7E,0x18,0x12,0x83,0xFD,0x56,0x17,0x41,0x2E,0xD5,0x29,0x82, -0x7D,0x99,0xF4,0x31,0xF6,0x71,0xA9,0xCF,0x2C,0x01,0x27,0xA5,0x05,0xB9,0xAA,0xB2, -0x48,0x4E,0x2A,0xEF,0x9F,0x93,0x52,0x51,0x95,0x3C,0x52,0x73,0x8E,0x56,0x4C,0x17, -0x40,0xC0,0x09,0x28,0xE4,0x8B,0x6A,0x48,0x53,0xDB,0xEC,0xCD,0x55,0x55,0xF1,0xC6, -0xF8,0xE9,0xA2,0x2C,0x4C,0xA6,0xD1,0x26,0x5F,0x7E,0xAF,0x5A,0x4C,0xDA,0x1F,0xA6, -0xF2,0x1C,0x2C,0x7E,0xAE,0x02,0x16,0xD2,0x56,0xD0,0x2F,0x57,0x53,0x47,0xE8,0x92, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=GeoTrust Inc./CN=GeoTrust Universal CA */ -/* issuer :/C=US/O=GeoTrust Inc./CN=GeoTrust Universal CA */ -unsigned char XXX_certificate[1388]={ -0x30,0x82,0x05,0x68,0x30,0x82,0x03,0x50,0xA0,0x03,0x02,0x01,0x02,0x02,0x01,0x01, -0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x30, -0x45,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x16, -0x30,0x14,0x06,0x03,0x55,0x04,0x0A,0x13,0x0D,0x47,0x65,0x6F,0x54,0x72,0x75,0x73, -0x74,0x20,0x49,0x6E,0x63,0x2E,0x31,0x1E,0x30,0x1C,0x06,0x03,0x55,0x04,0x03,0x13, -0x15,0x47,0x65,0x6F,0x54,0x72,0x75,0x73,0x74,0x20,0x55,0x6E,0x69,0x76,0x65,0x72, -0x73,0x61,0x6C,0x20,0x43,0x41,0x30,0x1E,0x17,0x0D,0x30,0x34,0x30,0x33,0x30,0x34, -0x30,0x35,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D,0x32,0x39,0x30,0x33,0x30,0x34,0x30, -0x35,0x30,0x30,0x30,0x30,0x5A,0x30,0x45,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04, -0x06,0x13,0x02,0x55,0x53,0x31,0x16,0x30,0x14,0x06,0x03,0x55,0x04,0x0A,0x13,0x0D, -0x47,0x65,0x6F,0x54,0x72,0x75,0x73,0x74,0x20,0x49,0x6E,0x63,0x2E,0x31,0x1E,0x30, -0x1C,0x06,0x03,0x55,0x04,0x03,0x13,0x15,0x47,0x65,0x6F,0x54,0x72,0x75,0x73,0x74, -0x20,0x55,0x6E,0x69,0x76,0x65,0x72,0x73,0x61,0x6C,0x20,0x43,0x41,0x30,0x82,0x02, -0x22,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x01,0x05,0x00, -0x03,0x82,0x02,0x0F,0x00,0x30,0x82,0x02,0x0A,0x02,0x82,0x02,0x01,0x00,0xA6,0x15, -0x55,0xA0,0xA3,0xC6,0xE0,0x1F,0x8C,0x9D,0x21,0x50,0xD7,0xC1,0xBE,0x2B,0x5B,0xB5, -0xA4,0x9E,0xA1,0xD9,0x72,0x58,0xBD,0x00,0x1B,0x4C,0xBF,0x61,0xC9,0x14,0x1D,0x45, -0x82,0xAB,0xC6,0x1D,0x80,0xD6,0x3D,0xEB,0x10,0x9C,0x3A,0xAF,0x6D,0x24,0xF8,0xBC, -0x71,0x01,0x9E,0x06,0xF5,0x7C,0x5F,0x1E,0xC1,0x0E,0x55,0xCA,0x83,0x9A,0x59,0x30, -0xAE,0x19,0xCB,0x30,0x48,0x95,0xED,0x22,0x37,0x8D,0xF4,0x4A,0x9A,0x72,0x66,0x3E, -0xAD,0x95,0xC0,0xE0,0x16,0x00,0xE0,0x10,0x1F,0x2B,0x31,0x0E,0xD7,0x94,0x54,0xD3, -0x42,0x33,0xA0,0x34,0x1D,0x1E,0x45,0x76,0xDD,0x4F,0xCA,0x18,0x37,0xEC,0x85,0x15, -0x7A,0x19,0x08,0xFC,0xD5,0xC7,0x9C,0xF0,0xF2,0xA9,0x2E,0x10,0xA9,0x92,0xE6,0x3D, -0x58,0x3D,0xA9,0x16,0x68,0x3C,0x2F,0x75,0x21,0x18,0x7F,0x28,0x77,0xA5,0xE1,0x61, -0x17,0xB7,0xA6,0xE9,0xF8,0x1E,0x99,0xDB,0x73,0x6E,0xF4,0x0A,0xA2,0x21,0x6C,0xEE, -0xDA,0xAA,0x85,0x92,0x66,0xAF,0xF6,0x7A,0x6B,0x82,0xDA,0xBA,0x22,0x08,0x35,0x0F, -0xCF,0x42,0xF1,0x35,0xFA,0x6A,0xEE,0x7E,0x2B,0x25,0xCC,0x3A,0x11,0xE4,0x6D,0xAF, -0x73,0xB2,0x76,0x1D,0xAD,0xD0,0xB2,0x78,0x67,0x1A,0xA4,0x39,0x1C,0x51,0x0B,0x67, -0x56,0x83,0xFD,0x38,0x5D,0x0D,0xCE,0xDD,0xF0,0xBB,0x2B,0x96,0x1F,0xDE,0x7B,0x32, -0x52,0xFD,0x1D,0xBB,0xB5,0x06,0xA1,0xB2,0x21,0x5E,0xA5,0xD6,0x95,0x68,0x7F,0xF0, -0x99,0x9E,0xDC,0x45,0x08,0x3E,0xE7,0xD2,0x09,0x0D,0x35,0x94,0xDD,0x80,0x4E,0x53, -0x97,0xD7,0xB5,0x09,0x44,0x20,0x64,0x16,0x17,0x03,0x02,0x4C,0x53,0x0D,0x68,0xDE, -0xD5,0xAA,0x72,0x4D,0x93,0x6D,0x82,0x0E,0xDB,0x9C,0xBD,0xCF,0xB4,0xF3,0x5C,0x5D, -0x54,0x7A,0x69,0x09,0x96,0xD6,0xDB,0x11,0xC1,0x8D,0x75,0xA8,0xB4,0xCF,0x39,0xC8, -0xCE,0x3C,0xBC,0x24,0x7C,0xE6,0x62,0xCA,0xE1,0xBD,0x7D,0xA7,0xBD,0x57,0x65,0x0B, -0xE4,0xFE,0x25,0xED,0xB6,0x69,0x10,0xDC,0x28,0x1A,0x46,0xBD,0x01,0x1D,0xD0,0x97, -0xB5,0xE1,0x98,0x3B,0xC0,0x37,0x64,0xD6,0x3D,0x94,0xEE,0x0B,0xE1,0xF5,0x28,0xAE, -0x0B,0x56,0xBF,0x71,0x8B,0x23,0x29,0x41,0x8E,0x86,0xC5,0x4B,0x52,0x7B,0xD8,0x71, -0xAB,0x1F,0x8A,0x15,0xA6,0x3B,0x83,0x5A,0xD7,0x58,0x01,0x51,0xC6,0x4C,0x41,0xD9, -0x7F,0xD8,0x41,0x67,0x72,0xA2,0x28,0xDF,0x60,0x83,0xA9,0x9E,0xC8,0x7B,0xFC,0x53, -0x73,0x72,0x59,0xF5,0x93,0x7A,0x17,0x76,0x0E,0xCE,0xF7,0xE5,0x5C,0xD9,0x0B,0x55, -0x34,0xA2,0xAA,0x5B,0xB5,0x6A,0x54,0xE7,0x13,0xCA,0x57,0xEC,0x97,0x6D,0xF4,0x5E, -0x06,0x2F,0x45,0x8B,0x58,0xD4,0x23,0x16,0x92,0xE4,0x16,0x6E,0x28,0x63,0x59,0x30, -0xDF,0x50,0x01,0x9C,0x63,0x89,0x1A,0x9F,0xDB,0x17,0x94,0x82,0x70,0x37,0xC3,0x24, -0x9E,0x9A,0x47,0xD6,0x5A,0xCA,0x4E,0xA8,0x69,0x89,0x72,0x1F,0x91,0x6C,0xDB,0x7E, -0x9E,0x1B,0xAD,0xC7,0x1F,0x73,0xDD,0x2C,0x4F,0x19,0x65,0xFD,0x7F,0x93,0x40,0x10, -0x2E,0xD2,0xF0,0xED,0x3C,0x9E,0x2E,0x28,0x3E,0x69,0x26,0x33,0xC5,0x7B,0x02,0x03, -0x01,0x00,0x01,0xA3,0x63,0x30,0x61,0x30,0x0F,0x06,0x03,0x55,0x1D,0x13,0x01,0x01, -0xFF,0x04,0x05,0x30,0x03,0x01,0x01,0xFF,0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04, -0x16,0x04,0x14,0xDA,0xBB,0x2E,0xAA,0xB0,0x0C,0xB8,0x88,0x26,0x51,0x74,0x5C,0x6D, -0x03,0xD3,0xC0,0xD8,0x8F,0x7A,0xD6,0x30,0x1F,0x06,0x03,0x55,0x1D,0x23,0x04,0x18, -0x30,0x16,0x80,0x14,0xDA,0xBB,0x2E,0xAA,0xB0,0x0C,0xB8,0x88,0x26,0x51,0x74,0x5C, -0x6D,0x03,0xD3,0xC0,0xD8,0x8F,0x7A,0xD6,0x30,0x0E,0x06,0x03,0x55,0x1D,0x0F,0x01, -0x01,0xFF,0x04,0x04,0x03,0x02,0x01,0x86,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86, -0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x03,0x82,0x02,0x01,0x00,0x31,0x78,0xE6,0xC7, -0xB5,0xDF,0xB8,0x94,0x40,0xC9,0x71,0xC4,0xA8,0x35,0xEC,0x46,0x1D,0xC2,0x85,0xF3, -0x28,0x58,0x86,0xB0,0x0B,0xFC,0x8E,0xB2,0x39,0x8F,0x44,0x55,0xAB,0x64,0x84,0x5C, -0x69,0xA9,0xD0,0x9A,0x38,0x3C,0xFA,0xE5,0x1F,0x35,0xE5,0x44,0xE3,0x80,0x79,0x94, -0x68,0xA4,0xBB,0xC4,0x9F,0x3D,0xE1,0x34,0xCD,0x30,0x46,0x8B,0x54,0x2B,0x95,0xA5, -0xEF,0xF7,0x3F,0x99,0x84,0xFD,0x35,0xE6,0xCF,0x31,0xC6,0xDC,0x6A,0xBF,0xA7,0xD7, -0x23,0x08,0xE1,0x98,0x5E,0xC3,0x5A,0x08,0x76,0xA9,0xA6,0xAF,0x77,0x2F,0xB7,0x60, -0xBD,0x44,0x46,0x6A,0xEF,0x97,0xFF,0x73,0x95,0xC1,0x8E,0xE8,0x93,0xFB,0xFD,0x31, -0xB7,0xEC,0x57,0x11,0x11,0x45,0x9B,0x30,0xF1,0x1A,0x88,0x39,0xC1,0x4F,0x3C,0xA7, -0x00,0xD5,0xC7,0xFC,0xAB,0x6D,0x80,0x22,0x70,0xA5,0x0C,0xE0,0x5D,0x04,0x29,0x02, -0xFB,0xCB,0xA0,0x91,0xD1,0x7C,0xD6,0xC3,0x7E,0x50,0xD5,0x9D,0x58,0xBE,0x41,0x38, -0xEB,0xB9,0x75,0x3C,0x15,0xD9,0x9B,0xC9,0x4A,0x83,0x59,0xC0,0xDA,0x53,0xFD,0x33, -0xBB,0x36,0x18,0x9B,0x85,0x0F,0x15,0xDD,0xEE,0x2D,0xAC,0x76,0x93,0xB9,0xD9,0x01, -0x8D,0x48,0x10,0xA8,0xFB,0xF5,0x38,0x86,0xF1,0xDB,0x0A,0xC6,0xBD,0x84,0xA3,0x23, -0x41,0xDE,0xD6,0x77,0x6F,0x85,0xD4,0x85,0x1C,0x50,0xE0,0xAE,0x51,0x8A,0xBA,0x8D, -0x3E,0x76,0xE2,0xB9,0xCA,0x27,0xF2,0x5F,0x9F,0xEF,0x6E,0x59,0x0D,0x06,0xD8,0x2B, -0x17,0xA4,0xD2,0x7C,0x6B,0xBB,0x5F,0x14,0x1A,0x48,0x8F,0x1A,0x4C,0xE7,0xB3,0x47, -0x1C,0x8E,0x4C,0x45,0x2B,0x20,0xEE,0x48,0xDF,0xE7,0xDD,0x09,0x8E,0x18,0xA8,0xDA, -0x40,0x8D,0x92,0x26,0x11,0x53,0x61,0x73,0x5D,0xEB,0xBD,0xE7,0xC4,0x4D,0x29,0x37, -0x61,0xEB,0xAC,0x39,0x2D,0x67,0x2E,0x16,0xD6,0xF5,0x00,0x83,0x85,0xA1,0xCC,0x7F, -0x76,0xC4,0x7D,0xE4,0xB7,0x4B,0x66,0xEF,0x03,0x45,0x60,0x69,0xB6,0x0C,0x52,0x96, -0x92,0x84,0x5E,0xA6,0xA3,0xB5,0xA4,0x3E,0x2B,0xD9,0xCC,0xD8,0x1B,0x47,0xAA,0xF2, -0x44,0xDA,0x4F,0xF9,0x03,0xE8,0xF0,0x14,0xCB,0x3F,0xF3,0x83,0xDE,0xD0,0xC1,0x54, -0xE3,0xB7,0xE8,0x0A,0x37,0x4D,0x8B,0x20,0x59,0x03,0x30,0x19,0xA1,0x2C,0xC8,0xBD, -0x11,0x1F,0xDF,0xAE,0xC9,0x4A,0xC5,0xF3,0x27,0x66,0x66,0x86,0xAC,0x68,0x91,0xFF, -0xD9,0xE6,0x53,0x1C,0x0F,0x8B,0x5C,0x69,0x65,0x0A,0x26,0xC8,0x1E,0x34,0xC3,0x5D, -0x51,0x7B,0xD7,0xA9,0x9C,0x06,0xA1,0x36,0xDD,0xD5,0x89,0x94,0xBC,0xD9,0xE4,0x2D, -0x0C,0x5E,0x09,0x6C,0x08,0x97,0x7C,0xA3,0x3D,0x7C,0x93,0xFF,0x3F,0xA1,0x14,0xA7, -0xCF,0xB5,0x5D,0xEB,0xDB,0xDB,0x1C,0xC4,0x76,0xDF,0x88,0xB9,0xBD,0x45,0x05,0x95, -0x1B,0xAE,0xFC,0x46,0x6A,0x4C,0xAF,0x48,0xE3,0xCE,0xAE,0x0F,0xD2,0x7E,0xEB,0xE6, -0x6C,0x9C,0x4F,0x81,0x6A,0x7A,0x64,0xAC,0xBB,0x3E,0xD5,0xE7,0xCB,0x76,0x2E,0xC5, -0xA7,0x48,0xC1,0x5C,0x90,0x0F,0xCB,0xC8,0x3F,0xFA,0xE6,0x32,0xE1,0x8D,0x1B,0x6F, -0xA4,0xE6,0x8E,0xD8,0xF9,0x29,0x48,0x8A,0xCE,0x73,0xFE,0x2C, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./CN=Go Daddy Root Certificate Authority - G2 */ -/* issuer :/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./CN=Go Daddy Root Certificate Authority - G2 */ -unsigned char XXX_certificate[969]={ -0x30,0x82,0x03,0xC5,0x30,0x82,0x02,0xAD,0xA0,0x03,0x02,0x01,0x02,0x02,0x01,0x00, -0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x0B,0x05,0x00,0x30, -0x81,0x83,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31, -0x10,0x30,0x0E,0x06,0x03,0x55,0x04,0x08,0x13,0x07,0x41,0x72,0x69,0x7A,0x6F,0x6E, -0x61,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x07,0x13,0x0A,0x53,0x63,0x6F,0x74, -0x74,0x73,0x64,0x61,0x6C,0x65,0x31,0x1A,0x30,0x18,0x06,0x03,0x55,0x04,0x0A,0x13, -0x11,0x47,0x6F,0x44,0x61,0x64,0x64,0x79,0x2E,0x63,0x6F,0x6D,0x2C,0x20,0x49,0x6E, -0x63,0x2E,0x31,0x31,0x30,0x2F,0x06,0x03,0x55,0x04,0x03,0x13,0x28,0x47,0x6F,0x20, -0x44,0x61,0x64,0x64,0x79,0x20,0x52,0x6F,0x6F,0x74,0x20,0x43,0x65,0x72,0x74,0x69, -0x66,0x69,0x63,0x61,0x74,0x65,0x20,0x41,0x75,0x74,0x68,0x6F,0x72,0x69,0x74,0x79, -0x20,0x2D,0x20,0x47,0x32,0x30,0x1E,0x17,0x0D,0x30,0x39,0x30,0x39,0x30,0x31,0x30, -0x30,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D,0x33,0x37,0x31,0x32,0x33,0x31,0x32,0x33, -0x35,0x39,0x35,0x39,0x5A,0x30,0x81,0x83,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04, -0x06,0x13,0x02,0x55,0x53,0x31,0x10,0x30,0x0E,0x06,0x03,0x55,0x04,0x08,0x13,0x07, -0x41,0x72,0x69,0x7A,0x6F,0x6E,0x61,0x31,0x13,0x30,0x11,0x06,0x03,0x55,0x04,0x07, -0x13,0x0A,0x53,0x63,0x6F,0x74,0x74,0x73,0x64,0x61,0x6C,0x65,0x31,0x1A,0x30,0x18, -0x06,0x03,0x55,0x04,0x0A,0x13,0x11,0x47,0x6F,0x44,0x61,0x64,0x64,0x79,0x2E,0x63, -0x6F,0x6D,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x31,0x31,0x30,0x2F,0x06,0x03,0x55,0x04, -0x03,0x13,0x28,0x47,0x6F,0x20,0x44,0x61,0x64,0x64,0x79,0x20,0x52,0x6F,0x6F,0x74, -0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x65,0x20,0x41,0x75,0x74, -0x68,0x6F,0x72,0x69,0x74,0x79,0x20,0x2D,0x20,0x47,0x32,0x30,0x82,0x01,0x22,0x30, -0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x01,0x05,0x00,0x03,0x82, -0x01,0x0F,0x00,0x30,0x82,0x01,0x0A,0x02,0x82,0x01,0x01,0x00,0xBF,0x71,0x62,0x08, -0xF1,0xFA,0x59,0x34,0xF7,0x1B,0xC9,0x18,0xA3,0xF7,0x80,0x49,0x58,0xE9,0x22,0x83, -0x13,0xA6,0xC5,0x20,0x43,0x01,0x3B,0x84,0xF1,0xE6,0x85,0x49,0x9F,0x27,0xEA,0xF6, -0x84,0x1B,0x4E,0xA0,0xB4,0xDB,0x70,0x98,0xC7,0x32,0x01,0xB1,0x05,0x3E,0x07,0x4E, -0xEE,0xF4,0xFA,0x4F,0x2F,0x59,0x30,0x22,0xE7,0xAB,0x19,0x56,0x6B,0xE2,0x80,0x07, -0xFC,0xF3,0x16,0x75,0x80,0x39,0x51,0x7B,0xE5,0xF9,0x35,0xB6,0x74,0x4E,0xA9,0x8D, -0x82,0x13,0xE4,0xB6,0x3F,0xA9,0x03,0x83,0xFA,0xA2,0xBE,0x8A,0x15,0x6A,0x7F,0xDE, -0x0B,0xC3,0xB6,0x19,0x14,0x05,0xCA,0xEA,0xC3,0xA8,0x04,0x94,0x3B,0x46,0x7C,0x32, -0x0D,0xF3,0x00,0x66,0x22,0xC8,0x8D,0x69,0x6D,0x36,0x8C,0x11,0x18,0xB7,0xD3,0xB2, -0x1C,0x60,0xB4,0x38,0xFA,0x02,0x8C,0xCE,0xD3,0xDD,0x46,0x07,0xDE,0x0A,0x3E,0xEB, -0x5D,0x7C,0xC8,0x7C,0xFB,0xB0,0x2B,0x53,0xA4,0x92,0x62,0x69,0x51,0x25,0x05,0x61, -0x1A,0x44,0x81,0x8C,0x2C,0xA9,0x43,0x96,0x23,0xDF,0xAC,0x3A,0x81,0x9A,0x0E,0x29, -0xC5,0x1C,0xA9,0xE9,0x5D,0x1E,0xB6,0x9E,0x9E,0x30,0x0A,0x39,0xCE,0xF1,0x88,0x80, -0xFB,0x4B,0x5D,0xCC,0x32,0xEC,0x85,0x62,0x43,0x25,0x34,0x02,0x56,0x27,0x01,0x91, -0xB4,0x3B,0x70,0x2A,0x3F,0x6E,0xB1,0xE8,0x9C,0x88,0x01,0x7D,0x9F,0xD4,0xF9,0xDB, -0x53,0x6D,0x60,0x9D,0xBF,0x2C,0xE7,0x58,0xAB,0xB8,0x5F,0x46,0xFC,0xCE,0xC4,0x1B, -0x03,0x3C,0x09,0xEB,0x49,0x31,0x5C,0x69,0x46,0xB3,0xE0,0x47,0x02,0x03,0x01,0x00, -0x01,0xA3,0x42,0x30,0x40,0x30,0x0F,0x06,0x03,0x55,0x1D,0x13,0x01,0x01,0xFF,0x04, -0x05,0x30,0x03,0x01,0x01,0xFF,0x30,0x0E,0x06,0x03,0x55,0x1D,0x0F,0x01,0x01,0xFF, -0x04,0x04,0x03,0x02,0x01,0x06,0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04,0x16,0x04, -0x14,0x3A,0x9A,0x85,0x07,0x10,0x67,0x28,0xB6,0xEF,0xF6,0xBD,0x05,0x41,0x6E,0x20, -0xC1,0x94,0xDA,0x0F,0xDE,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01, -0x01,0x0B,0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x99,0xDB,0x5D,0x79,0xD5,0xF9,0x97, -0x59,0x67,0x03,0x61,0xF1,0x7E,0x3B,0x06,0x31,0x75,0x2D,0xA1,0x20,0x8E,0x4F,0x65, -0x87,0xB4,0xF7,0xA6,0x9C,0xBC,0xD8,0xE9,0x2F,0xD0,0xDB,0x5A,0xEE,0xCF,0x74,0x8C, -0x73,0xB4,0x38,0x42,0xDA,0x05,0x7B,0xF8,0x02,0x75,0xB8,0xFD,0xA5,0xB1,0xD7,0xAE, -0xF6,0xD7,0xDE,0x13,0xCB,0x53,0x10,0x7E,0x8A,0x46,0xD1,0x97,0xFA,0xB7,0x2E,0x2B, -0x11,0xAB,0x90,0xB0,0x27,0x80,0xF9,0xE8,0x9F,0x5A,0xE9,0x37,0x9F,0xAB,0xE4,0xDF, -0x6C,0xB3,0x85,0x17,0x9D,0x3D,0xD9,0x24,0x4F,0x79,0x91,0x35,0xD6,0x5F,0x04,0xEB, -0x80,0x83,0xAB,0x9A,0x02,0x2D,0xB5,0x10,0xF4,0xD8,0x90,0xC7,0x04,0x73,0x40,0xED, -0x72,0x25,0xA0,0xA9,0x9F,0xEC,0x9E,0xAB,0x68,0x12,0x99,0x57,0xC6,0x8F,0x12,0x3A, -0x09,0xA4,0xBD,0x44,0xFD,0x06,0x15,0x37,0xC1,0x9B,0xE4,0x32,0xA3,0xED,0x38,0xE8, -0xD8,0x64,0xF3,0x2C,0x7E,0x14,0xFC,0x02,0xEA,0x9F,0xCD,0xFF,0x07,0x68,0x17,0xDB, -0x22,0x90,0x38,0x2D,0x7A,0x8D,0xD1,0x54,0xF1,0x69,0xE3,0x5F,0x33,0xCA,0x7A,0x3D, -0x7B,0x0A,0xE3,0xCA,0x7F,0x5F,0x39,0xE5,0xE2,0x75,0xBA,0xC5,0x76,0x18,0x33,0xCE, -0x2C,0xF0,0x2F,0x4C,0xAD,0xF7,0xB1,0xE7,0xCE,0x4F,0xA8,0xC4,0x9B,0x4A,0x54,0x06, -0xC5,0x7F,0x7D,0xD5,0x08,0x0F,0xE2,0x1C,0xFE,0x7E,0x17,0xB8,0xAC,0x5E,0xF6,0xD4, -0x16,0xB2,0x43,0x09,0x0C,0x4D,0xF6,0xA7,0x6B,0xB4,0x99,0x84,0x65,0xCA,0x7A,0x88, -0xE2,0xE2,0x44,0xBE,0x5C,0xF7,0xEA,0x1C,0xF5, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=SecureTrust Corporation/CN=SecureTrust CA */ -/* issuer :/C=US/O=SecureTrust Corporation/CN=SecureTrust CA */ -unsigned char XXX_certificate[956]={ -0x30,0x82,0x03,0xB8,0x30,0x82,0x02,0xA0,0xA0,0x03,0x02,0x01,0x02,0x02,0x10,0x0C, -0xF0,0x8E,0x5C,0x08,0x16,0xA5,0xAD,0x42,0x7F,0xF0,0xEB,0x27,0x18,0x59,0xD0,0x30, -0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x30,0x48, -0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x20,0x30, -0x1E,0x06,0x03,0x55,0x04,0x0A,0x13,0x17,0x53,0x65,0x63,0x75,0x72,0x65,0x54,0x72, -0x75,0x73,0x74,0x20,0x43,0x6F,0x72,0x70,0x6F,0x72,0x61,0x74,0x69,0x6F,0x6E,0x31, -0x17,0x30,0x15,0x06,0x03,0x55,0x04,0x03,0x13,0x0E,0x53,0x65,0x63,0x75,0x72,0x65, -0x54,0x72,0x75,0x73,0x74,0x20,0x43,0x41,0x30,0x1E,0x17,0x0D,0x30,0x36,0x31,0x31, -0x30,0x37,0x31,0x39,0x33,0x31,0x31,0x38,0x5A,0x17,0x0D,0x32,0x39,0x31,0x32,0x33, -0x31,0x31,0x39,0x34,0x30,0x35,0x35,0x5A,0x30,0x48,0x31,0x0B,0x30,0x09,0x06,0x03, -0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x20,0x30,0x1E,0x06,0x03,0x55,0x04,0x0A, -0x13,0x17,0x53,0x65,0x63,0x75,0x72,0x65,0x54,0x72,0x75,0x73,0x74,0x20,0x43,0x6F, -0x72,0x70,0x6F,0x72,0x61,0x74,0x69,0x6F,0x6E,0x31,0x17,0x30,0x15,0x06,0x03,0x55, -0x04,0x03,0x13,0x0E,0x53,0x65,0x63,0x75,0x72,0x65,0x54,0x72,0x75,0x73,0x74,0x20, -0x43,0x41,0x30,0x82,0x01,0x22,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D, -0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0F,0x00,0x30,0x82,0x01,0x0A,0x02,0x82, -0x01,0x01,0x00,0xAB,0xA4,0x81,0xE5,0x95,0xCD,0xF5,0xF6,0x14,0x8E,0xC2,0x4F,0xCA, -0xD4,0xE2,0x78,0x95,0x58,0x9C,0x41,0xE1,0x0D,0x99,0x40,0x24,0x17,0x39,0x91,0x33, -0x66,0xE9,0xBE,0xE1,0x83,0xAF,0x62,0x5C,0x89,0xD1,0xFC,0x24,0x5B,0x61,0xB3,0xE0, -0x11,0x11,0x41,0x1C,0x1D,0x6E,0xF0,0xB8,0xBB,0xF8,0xDE,0xA7,0x81,0xBA,0xA6,0x48, -0xC6,0x9F,0x1D,0xBD,0xBE,0x8E,0xA9,0x41,0x3E,0xB8,0x94,0xED,0x29,0x1A,0xD4,0x8E, -0xD2,0x03,0x1D,0x03,0xEF,0x6D,0x0D,0x67,0x1C,0x57,0xD7,0x06,0xAD,0xCA,0xC8,0xF5, -0xFE,0x0E,0xAF,0x66,0x25,0x48,0x04,0x96,0x0B,0x5D,0xA3,0xBA,0x16,0xC3,0x08,0x4F, -0xD1,0x46,0xF8,0x14,0x5C,0xF2,0xC8,0x5E,0x01,0x99,0x6D,0xFD,0x88,0xCC,0x86,0xA8, -0xC1,0x6F,0x31,0x42,0x6C,0x52,0x3E,0x68,0xCB,0xF3,0x19,0x34,0xDF,0xBB,0x87,0x18, -0x56,0x80,0x26,0xC4,0xD0,0xDC,0xC0,0x6F,0xDF,0xDE,0xA0,0xC2,0x91,0x16,0xA0,0x64, -0x11,0x4B,0x44,0xBC,0x1E,0xF6,0xE7,0xFA,0x63,0xDE,0x66,0xAC,0x76,0xA4,0x71,0xA3, -0xEC,0x36,0x94,0x68,0x7A,0x77,0xA4,0xB1,0xE7,0x0E,0x2F,0x81,0x7A,0xE2,0xB5,0x72, -0x86,0xEF,0xA2,0x6B,0x8B,0xF0,0x0F,0xDB,0xD3,0x59,0x3F,0xBA,0x72,0xBC,0x44,0x24, -0x9C,0xE3,0x73,0xB3,0xF7,0xAF,0x57,0x2F,0x42,0x26,0x9D,0xA9,0x74,0xBA,0x00,0x52, -0xF2,0x4B,0xCD,0x53,0x7C,0x47,0x0B,0x36,0x85,0x0E,0x66,0xA9,0x08,0x97,0x16,0x34, -0x57,0xC1,0x66,0xF7,0x80,0xE3,0xED,0x70,0x54,0xC7,0x93,0xE0,0x2E,0x28,0x15,0x59, -0x87,0xBA,0xBB,0x02,0x03,0x01,0x00,0x01,0xA3,0x81,0x9D,0x30,0x81,0x9A,0x30,0x13, -0x06,0x09,0x2B,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x04,0x06,0x1E,0x04,0x00, -0x43,0x00,0x41,0x30,0x0B,0x06,0x03,0x55,0x1D,0x0F,0x04,0x04,0x03,0x02,0x01,0x86, -0x30,0x0F,0x06,0x03,0x55,0x1D,0x13,0x01,0x01,0xFF,0x04,0x05,0x30,0x03,0x01,0x01, -0xFF,0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04,0x16,0x04,0x14,0x42,0x32,0xB6,0x16, -0xFA,0x04,0xFD,0xFE,0x5D,0x4B,0x7A,0xC3,0xFD,0xF7,0x4C,0x40,0x1D,0x5A,0x43,0xAF, -0x30,0x34,0x06,0x03,0x55,0x1D,0x1F,0x04,0x2D,0x30,0x2B,0x30,0x29,0xA0,0x27,0xA0, -0x25,0x86,0x23,0x68,0x74,0x74,0x70,0x3A,0x2F,0x2F,0x63,0x72,0x6C,0x2E,0x73,0x65, -0x63,0x75,0x72,0x65,0x74,0x72,0x75,0x73,0x74,0x2E,0x63,0x6F,0x6D,0x2F,0x53,0x54, -0x43,0x41,0x2E,0x63,0x72,0x6C,0x30,0x10,0x06,0x09,0x2B,0x06,0x01,0x04,0x01,0x82, -0x37,0x15,0x01,0x04,0x03,0x02,0x01,0x00,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86, -0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x30,0xED,0x4F,0x4A, -0xE1,0x58,0x3A,0x52,0x72,0x5B,0xB5,0xA6,0xA3,0x65,0x18,0xA6,0xBB,0x51,0x3B,0x77, -0xE9,0x9D,0xEA,0xD3,0x9F,0x5C,0xE0,0x45,0x65,0x7B,0x0D,0xCA,0x5B,0xE2,0x70,0x50, -0xB2,0x94,0x05,0x14,0xAE,0x49,0xC7,0x8D,0x41,0x07,0x12,0x73,0x94,0x7E,0x0C,0x23, -0x21,0xFD,0xBC,0x10,0x7F,0x60,0x10,0x5A,0x72,0xF5,0x98,0x0E,0xAC,0xEC,0xB9,0x7F, -0xDD,0x7A,0x6F,0x5D,0xD3,0x1C,0xF4,0xFF,0x88,0x05,0x69,0x42,0xA9,0x05,0x71,0xC8, -0xB7,0xAC,0x26,0xE8,0x2E,0xB4,0x8C,0x6A,0xFF,0x71,0xDC,0xB8,0xB1,0xDF,0x99,0xBC, -0x7C,0x21,0x54,0x2B,0xE4,0x58,0xA2,0xBB,0x57,0x29,0xAE,0x9E,0xA9,0xA3,0x19,0x26, -0x0F,0x99,0x2E,0x08,0xB0,0xEF,0xFD,0x69,0xCF,0x99,0x1A,0x09,0x8D,0xE3,0xA7,0x9F, -0x2B,0xC9,0x36,0x34,0x7B,0x24,0xB3,0x78,0x4C,0x95,0x17,0xA4,0x06,0x26,0x1E,0xB6, -0x64,0x52,0x36,0x5F,0x60,0x67,0xD9,0x9C,0xC5,0x05,0x74,0x0B,0xE7,0x67,0x23,0xD2, -0x08,0xFC,0x88,0xE9,0xAE,0x8B,0x7F,0xE1,0x30,0xF4,0x37,0x7E,0xFD,0xC6,0x32,0xDA, -0x2D,0x9E,0x44,0x30,0x30,0x6C,0xEE,0x07,0xDE,0xD2,0x34,0xFC,0xD2,0xFF,0x40,0xF6, -0x4B,0xF4,0x66,0x46,0x06,0x54,0xA6,0xF2,0x32,0x0A,0x63,0x26,0x30,0x6B,0x9B,0xD1, -0xDC,0x8B,0x47,0xBA,0xE1,0xB9,0xD5,0x62,0xD0,0xA2,0xA0,0xF4,0x67,0x05,0x78,0x29, -0x63,0x1A,0x6F,0x04,0xD6,0xF8,0xC6,0x4C,0xA3,0x9A,0xB1,0x37,0xB4,0x8D,0xE5,0x28, -0x4B,0x1D,0x9E,0x2C,0xC2,0xB8,0x68,0xBC,0xED,0x02,0xEE,0x31, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=SecureTrust Corporation/CN=SecureTrust CA */ -/* issuer :/C=US/O=SecureTrust Corporation/CN=SecureTrust CA */ -unsigned char XXX_certificate[956]={ -0x30,0x82,0x03,0xB8,0x30,0x82,0x02,0xA0,0xA0,0x03,0x02,0x01,0x02,0x02,0x10,0x0C, -0xF0,0x8E,0x5C,0x08,0x16,0xA5,0xAD,0x42,0x7F,0xF0,0xEB,0x27,0x18,0x59,0xD0,0x30, -0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x30,0x48, -0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x20,0x30, -0x1E,0x06,0x03,0x55,0x04,0x0A,0x13,0x17,0x53,0x65,0x63,0x75,0x72,0x65,0x54,0x72, -0x75,0x73,0x74,0x20,0x43,0x6F,0x72,0x70,0x6F,0x72,0x61,0x74,0x69,0x6F,0x6E,0x31, -0x17,0x30,0x15,0x06,0x03,0x55,0x04,0x03,0x13,0x0E,0x53,0x65,0x63,0x75,0x72,0x65, -0x54,0x72,0x75,0x73,0x74,0x20,0x43,0x41,0x30,0x1E,0x17,0x0D,0x30,0x36,0x31,0x31, -0x30,0x37,0x31,0x39,0x33,0x31,0x31,0x38,0x5A,0x17,0x0D,0x32,0x39,0x31,0x32,0x33, -0x31,0x31,0x39,0x34,0x30,0x35,0x35,0x5A,0x30,0x48,0x31,0x0B,0x30,0x09,0x06,0x03, -0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x20,0x30,0x1E,0x06,0x03,0x55,0x04,0x0A, -0x13,0x17,0x53,0x65,0x63,0x75,0x72,0x65,0x54,0x72,0x75,0x73,0x74,0x20,0x43,0x6F, -0x72,0x70,0x6F,0x72,0x61,0x74,0x69,0x6F,0x6E,0x31,0x17,0x30,0x15,0x06,0x03,0x55, -0x04,0x03,0x13,0x0E,0x53,0x65,0x63,0x75,0x72,0x65,0x54,0x72,0x75,0x73,0x74,0x20, -0x43,0x41,0x30,0x82,0x01,0x22,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D, -0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0F,0x00,0x30,0x82,0x01,0x0A,0x02,0x82, -0x01,0x01,0x00,0xAB,0xA4,0x81,0xE5,0x95,0xCD,0xF5,0xF6,0x14,0x8E,0xC2,0x4F,0xCA, -0xD4,0xE2,0x78,0x95,0x58,0x9C,0x41,0xE1,0x0D,0x99,0x40,0x24,0x17,0x39,0x91,0x33, -0x66,0xE9,0xBE,0xE1,0x83,0xAF,0x62,0x5C,0x89,0xD1,0xFC,0x24,0x5B,0x61,0xB3,0xE0, -0x11,0x11,0x41,0x1C,0x1D,0x6E,0xF0,0xB8,0xBB,0xF8,0xDE,0xA7,0x81,0xBA,0xA6,0x48, -0xC6,0x9F,0x1D,0xBD,0xBE,0x8E,0xA9,0x41,0x3E,0xB8,0x94,0xED,0x29,0x1A,0xD4,0x8E, -0xD2,0x03,0x1D,0x03,0xEF,0x6D,0x0D,0x67,0x1C,0x57,0xD7,0x06,0xAD,0xCA,0xC8,0xF5, -0xFE,0x0E,0xAF,0x66,0x25,0x48,0x04,0x96,0x0B,0x5D,0xA3,0xBA,0x16,0xC3,0x08,0x4F, -0xD1,0x46,0xF8,0x14,0x5C,0xF2,0xC8,0x5E,0x01,0x99,0x6D,0xFD,0x88,0xCC,0x86,0xA8, -0xC1,0x6F,0x31,0x42,0x6C,0x52,0x3E,0x68,0xCB,0xF3,0x19,0x34,0xDF,0xBB,0x87,0x18, -0x56,0x80,0x26,0xC4,0xD0,0xDC,0xC0,0x6F,0xDF,0xDE,0xA0,0xC2,0x91,0x16,0xA0,0x64, -0x11,0x4B,0x44,0xBC,0x1E,0xF6,0xE7,0xFA,0x63,0xDE,0x66,0xAC,0x76,0xA4,0x71,0xA3, -0xEC,0x36,0x94,0x68,0x7A,0x77,0xA4,0xB1,0xE7,0x0E,0x2F,0x81,0x7A,0xE2,0xB5,0x72, -0x86,0xEF,0xA2,0x6B,0x8B,0xF0,0x0F,0xDB,0xD3,0x59,0x3F,0xBA,0x72,0xBC,0x44,0x24, -0x9C,0xE3,0x73,0xB3,0xF7,0xAF,0x57,0x2F,0x42,0x26,0x9D,0xA9,0x74,0xBA,0x00,0x52, -0xF2,0x4B,0xCD,0x53,0x7C,0x47,0x0B,0x36,0x85,0x0E,0x66,0xA9,0x08,0x97,0x16,0x34, -0x57,0xC1,0x66,0xF7,0x80,0xE3,0xED,0x70,0x54,0xC7,0x93,0xE0,0x2E,0x28,0x15,0x59, -0x87,0xBA,0xBB,0x02,0x03,0x01,0x00,0x01,0xA3,0x81,0x9D,0x30,0x81,0x9A,0x30,0x13, -0x06,0x09,0x2B,0x06,0x01,0x04,0x01,0x82,0x37,0x14,0x02,0x04,0x06,0x1E,0x04,0x00, -0x43,0x00,0x41,0x30,0x0B,0x06,0x03,0x55,0x1D,0x0F,0x04,0x04,0x03,0x02,0x01,0x86, -0x30,0x0F,0x06,0x03,0x55,0x1D,0x13,0x01,0x01,0xFF,0x04,0x05,0x30,0x03,0x01,0x01, -0xFF,0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04,0x16,0x04,0x14,0x42,0x32,0xB6,0x16, -0xFA,0x04,0xFD,0xFE,0x5D,0x4B,0x7A,0xC3,0xFD,0xF7,0x4C,0x40,0x1D,0x5A,0x43,0xAF, -0x30,0x34,0x06,0x03,0x55,0x1D,0x1F,0x04,0x2D,0x30,0x2B,0x30,0x29,0xA0,0x27,0xA0, -0x25,0x86,0x23,0x68,0x74,0x74,0x70,0x3A,0x2F,0x2F,0x63,0x72,0x6C,0x2E,0x73,0x65, -0x63,0x75,0x72,0x65,0x74,0x72,0x75,0x73,0x74,0x2E,0x63,0x6F,0x6D,0x2F,0x53,0x54, -0x43,0x41,0x2E,0x63,0x72,0x6C,0x30,0x10,0x06,0x09,0x2B,0x06,0x01,0x04,0x01,0x82, -0x37,0x15,0x01,0x04,0x03,0x02,0x01,0x00,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86, -0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x30,0xED,0x4F,0x4A, -0xE1,0x58,0x3A,0x52,0x72,0x5B,0xB5,0xA6,0xA3,0x65,0x18,0xA6,0xBB,0x51,0x3B,0x77, -0xE9,0x9D,0xEA,0xD3,0x9F,0x5C,0xE0,0x45,0x65,0x7B,0x0D,0xCA,0x5B,0xE2,0x70,0x50, -0xB2,0x94,0x05,0x14,0xAE,0x49,0xC7,0x8D,0x41,0x07,0x12,0x73,0x94,0x7E,0x0C,0x23, -0x21,0xFD,0xBC,0x10,0x7F,0x60,0x10,0x5A,0x72,0xF5,0x98,0x0E,0xAC,0xEC,0xB9,0x7F, -0xDD,0x7A,0x6F,0x5D,0xD3,0x1C,0xF4,0xFF,0x88,0x05,0x69,0x42,0xA9,0x05,0x71,0xC8, -0xB7,0xAC,0x26,0xE8,0x2E,0xB4,0x8C,0x6A,0xFF,0x71,0xDC,0xB8,0xB1,0xDF,0x99,0xBC, -0x7C,0x21,0x54,0x2B,0xE4,0x58,0xA2,0xBB,0x57,0x29,0xAE,0x9E,0xA9,0xA3,0x19,0x26, -0x0F,0x99,0x2E,0x08,0xB0,0xEF,0xFD,0x69,0xCF,0x99,0x1A,0x09,0x8D,0xE3,0xA7,0x9F, -0x2B,0xC9,0x36,0x34,0x7B,0x24,0xB3,0x78,0x4C,0x95,0x17,0xA4,0x06,0x26,0x1E,0xB6, -0x64,0x52,0x36,0x5F,0x60,0x67,0xD9,0x9C,0xC5,0x05,0x74,0x0B,0xE7,0x67,0x23,0xD2, -0x08,0xFC,0x88,0xE9,0xAE,0x8B,0x7F,0xE1,0x30,0xF4,0x37,0x7E,0xFD,0xC6,0x32,0xDA, -0x2D,0x9E,0x44,0x30,0x30,0x6C,0xEE,0x07,0xDE,0xD2,0x34,0xFC,0xD2,0xFF,0x40,0xF6, -0x4B,0xF4,0x66,0x46,0x06,0x54,0xA6,0xF2,0x32,0x0A,0x63,0x26,0x30,0x6B,0x9B,0xD1, -0xDC,0x8B,0x47,0xBA,0xE1,0xB9,0xD5,0x62,0xD0,0xA2,0xA0,0xF4,0x67,0x05,0x78,0x29, -0x63,0x1A,0x6F,0x04,0xD6,0xF8,0xC6,0x4C,0xA3,0x9A,0xB1,0x37,0xB4,0x8D,0xE5,0x28, -0x4B,0x1D,0x9E,0x2C,0xC2,0xB8,0x68,0xBC,0xED,0x02,0xEE,0x31, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority - G2/OU=(c) 1998 VeriSign, Inc. - For authorized use only/OU=VeriSign Trust Network */ -/* issuer :/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority - G2/OU=(c) 1998 VeriSign, Inc. - For authorized use only/OU=VeriSign Trust Network */ -unsigned char XXX_certificate[774]={ -0x30,0x82,0x03,0x02,0x30,0x82,0x02,0x6B,0x02,0x10,0x7D,0xD9,0xFE,0x07,0xCF,0xA8, -0x1E,0xB7,0x10,0x79,0x67,0xFB,0xA7,0x89,0x34,0xC6,0x30,0x0D,0x06,0x09,0x2A,0x86, -0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x30,0x81,0xC1,0x31,0x0B,0x30,0x09, -0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x17,0x30,0x15,0x06,0x03,0x55, -0x04,0x0A,0x13,0x0E,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20,0x49,0x6E, -0x63,0x2E,0x31,0x3C,0x30,0x3A,0x06,0x03,0x55,0x04,0x0B,0x13,0x33,0x43,0x6C,0x61, -0x73,0x73,0x20,0x33,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x20,0x50,0x72,0x69,0x6D, -0x61,0x72,0x79,0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F, -0x6E,0x20,0x41,0x75,0x74,0x68,0x6F,0x72,0x69,0x74,0x79,0x20,0x2D,0x20,0x47,0x32, -0x31,0x3A,0x30,0x38,0x06,0x03,0x55,0x04,0x0B,0x13,0x31,0x28,0x63,0x29,0x20,0x31, -0x39,0x39,0x38,0x20,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20,0x49,0x6E, -0x63,0x2E,0x20,0x2D,0x20,0x46,0x6F,0x72,0x20,0x61,0x75,0x74,0x68,0x6F,0x72,0x69, -0x7A,0x65,0x64,0x20,0x75,0x73,0x65,0x20,0x6F,0x6E,0x6C,0x79,0x31,0x1F,0x30,0x1D, -0x06,0x03,0x55,0x04,0x0B,0x13,0x16,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x20, -0x54,0x72,0x75,0x73,0x74,0x20,0x4E,0x65,0x74,0x77,0x6F,0x72,0x6B,0x30,0x1E,0x17, -0x0D,0x39,0x38,0x30,0x35,0x31,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D, -0x32,0x38,0x30,0x38,0x30,0x31,0x32,0x33,0x35,0x39,0x35,0x39,0x5A,0x30,0x81,0xC1, -0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x17,0x30, -0x15,0x06,0x03,0x55,0x04,0x0A,0x13,0x0E,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E, -0x2C,0x20,0x49,0x6E,0x63,0x2E,0x31,0x3C,0x30,0x3A,0x06,0x03,0x55,0x04,0x0B,0x13, -0x33,0x43,0x6C,0x61,0x73,0x73,0x20,0x33,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x20, -0x50,0x72,0x69,0x6D,0x61,0x72,0x79,0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63, -0x61,0x74,0x69,0x6F,0x6E,0x20,0x41,0x75,0x74,0x68,0x6F,0x72,0x69,0x74,0x79,0x20, -0x2D,0x20,0x47,0x32,0x31,0x3A,0x30,0x38,0x06,0x03,0x55,0x04,0x0B,0x13,0x31,0x28, -0x63,0x29,0x20,0x31,0x39,0x39,0x38,0x20,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E, -0x2C,0x20,0x49,0x6E,0x63,0x2E,0x20,0x2D,0x20,0x46,0x6F,0x72,0x20,0x61,0x75,0x74, -0x68,0x6F,0x72,0x69,0x7A,0x65,0x64,0x20,0x75,0x73,0x65,0x20,0x6F,0x6E,0x6C,0x79, -0x31,0x1F,0x30,0x1D,0x06,0x03,0x55,0x04,0x0B,0x13,0x16,0x56,0x65,0x72,0x69,0x53, -0x69,0x67,0x6E,0x20,0x54,0x72,0x75,0x73,0x74,0x20,0x4E,0x65,0x74,0x77,0x6F,0x72, -0x6B,0x30,0x81,0x9F,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01, -0x01,0x05,0x00,0x03,0x81,0x8D,0x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xCC,0x5E, -0xD1,0x11,0x5D,0x5C,0x69,0xD0,0xAB,0xD3,0xB9,0x6A,0x4C,0x99,0x1F,0x59,0x98,0x30, -0x8E,0x16,0x85,0x20,0x46,0x6D,0x47,0x3F,0xD4,0x85,0x20,0x84,0xE1,0x6D,0xB3,0xF8, -0xA4,0xED,0x0C,0xF1,0x17,0x0F,0x3B,0xF9,0xA7,0xF9,0x25,0xD7,0xC1,0xCF,0x84,0x63, -0xF2,0x7C,0x63,0xCF,0xA2,0x47,0xF2,0xC6,0x5B,0x33,0x8E,0x64,0x40,0x04,0x68,0xC1, -0x80,0xB9,0x64,0x1C,0x45,0x77,0xC7,0xD8,0x6E,0xF5,0x95,0x29,0x3C,0x50,0xE8,0x34, -0xD7,0x78,0x1F,0xA8,0xBA,0x6D,0x43,0x91,0x95,0x8F,0x45,0x57,0x5E,0x7E,0xC5,0xFB, -0xCA,0xA4,0x04,0xEB,0xEA,0x97,0x37,0x54,0x30,0x6F,0xBB,0x01,0x47,0x32,0x33,0xCD, -0xDC,0x57,0x9B,0x64,0x69,0x61,0xF8,0x9B,0x1D,0x1C,0x89,0x4F,0x5C,0x67,0x02,0x03, -0x01,0x00,0x01,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05, -0x05,0x00,0x03,0x81,0x81,0x00,0x51,0x4D,0xCD,0xBE,0x5C,0xCB,0x98,0x19,0x9C,0x15, -0xB2,0x01,0x39,0x78,0x2E,0x4D,0x0F,0x67,0x70,0x70,0x99,0xC6,0x10,0x5A,0x94,0xA4, -0x53,0x4D,0x54,0x6D,0x2B,0xAF,0x0D,0x5D,0x40,0x8B,0x64,0xD3,0xD7,0xEE,0xDE,0x56, -0x61,0x92,0x5F,0xA6,0xC4,0x1D,0x10,0x61,0x36,0xD3,0x2C,0x27,0x3C,0xE8,0x29,0x09, -0xB9,0x11,0x64,0x74,0xCC,0xB5,0x73,0x9F,0x1C,0x48,0xA9,0xBC,0x61,0x01,0xEE,0xE2, -0x17,0xA6,0x0C,0xE3,0x40,0x08,0x3B,0x0E,0xE7,0xEB,0x44,0x73,0x2A,0x9A,0xF1,0x69, -0x92,0xEF,0x71,0x14,0xC3,0x39,0xAC,0x71,0xA7,0x91,0x09,0x6F,0xE4,0x71,0x06,0xB3, -0xBA,0x59,0x57,0x26,0x79,0x00,0xF6,0xF8,0x0D,0xA2,0x33,0x30,0x28,0xD4,0xAA,0x58, -0xA0,0x9D,0x9D,0x69,0x91,0xFD, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 1999 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G3 */ -/* issuer :/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 1999 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G3 */ -unsigned char XXX_certificate[1054]={ -0x30,0x82,0x04,0x1A,0x30,0x82,0x03,0x02,0x02,0x11,0x00,0x9B,0x7E,0x06,0x49,0xA3, -0x3E,0x62,0xB9,0xD5,0xEE,0x90,0x48,0x71,0x29,0xEF,0x57,0x30,0x0D,0x06,0x09,0x2A, -0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x30,0x81,0xCA,0x31,0x0B,0x30, -0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x17,0x30,0x15,0x06,0x03, -0x55,0x04,0x0A,0x13,0x0E,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20,0x49, -0x6E,0x63,0x2E,0x31,0x1F,0x30,0x1D,0x06,0x03,0x55,0x04,0x0B,0x13,0x16,0x56,0x65, -0x72,0x69,0x53,0x69,0x67,0x6E,0x20,0x54,0x72,0x75,0x73,0x74,0x20,0x4E,0x65,0x74, -0x77,0x6F,0x72,0x6B,0x31,0x3A,0x30,0x38,0x06,0x03,0x55,0x04,0x0B,0x13,0x31,0x28, -0x63,0x29,0x20,0x31,0x39,0x39,0x39,0x20,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E, -0x2C,0x20,0x49,0x6E,0x63,0x2E,0x20,0x2D,0x20,0x46,0x6F,0x72,0x20,0x61,0x75,0x74, -0x68,0x6F,0x72,0x69,0x7A,0x65,0x64,0x20,0x75,0x73,0x65,0x20,0x6F,0x6E,0x6C,0x79, -0x31,0x45,0x30,0x43,0x06,0x03,0x55,0x04,0x03,0x13,0x3C,0x56,0x65,0x72,0x69,0x53, -0x69,0x67,0x6E,0x20,0x43,0x6C,0x61,0x73,0x73,0x20,0x33,0x20,0x50,0x75,0x62,0x6C, -0x69,0x63,0x20,0x50,0x72,0x69,0x6D,0x61,0x72,0x79,0x20,0x43,0x65,0x72,0x74,0x69, -0x66,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x20,0x41,0x75,0x74,0x68,0x6F,0x72,0x69, -0x74,0x79,0x20,0x2D,0x20,0x47,0x33,0x30,0x1E,0x17,0x0D,0x39,0x39,0x31,0x30,0x30, -0x31,0x30,0x30,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D,0x33,0x36,0x30,0x37,0x31,0x36, -0x32,0x33,0x35,0x39,0x35,0x39,0x5A,0x30,0x81,0xCA,0x31,0x0B,0x30,0x09,0x06,0x03, -0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x17,0x30,0x15,0x06,0x03,0x55,0x04,0x0A, -0x13,0x0E,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20,0x49,0x6E,0x63,0x2E, -0x31,0x1F,0x30,0x1D,0x06,0x03,0x55,0x04,0x0B,0x13,0x16,0x56,0x65,0x72,0x69,0x53, -0x69,0x67,0x6E,0x20,0x54,0x72,0x75,0x73,0x74,0x20,0x4E,0x65,0x74,0x77,0x6F,0x72, -0x6B,0x31,0x3A,0x30,0x38,0x06,0x03,0x55,0x04,0x0B,0x13,0x31,0x28,0x63,0x29,0x20, -0x31,0x39,0x39,0x39,0x20,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20,0x49, -0x6E,0x63,0x2E,0x20,0x2D,0x20,0x46,0x6F,0x72,0x20,0x61,0x75,0x74,0x68,0x6F,0x72, -0x69,0x7A,0x65,0x64,0x20,0x75,0x73,0x65,0x20,0x6F,0x6E,0x6C,0x79,0x31,0x45,0x30, -0x43,0x06,0x03,0x55,0x04,0x03,0x13,0x3C,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E, -0x20,0x43,0x6C,0x61,0x73,0x73,0x20,0x33,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x20, -0x50,0x72,0x69,0x6D,0x61,0x72,0x79,0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63, -0x61,0x74,0x69,0x6F,0x6E,0x20,0x41,0x75,0x74,0x68,0x6F,0x72,0x69,0x74,0x79,0x20, -0x2D,0x20,0x47,0x33,0x30,0x82,0x01,0x22,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86, -0xF7,0x0D,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0F,0x00,0x30,0x82,0x01,0x0A, -0x02,0x82,0x01,0x01,0x00,0xCB,0xBA,0x9C,0x52,0xFC,0x78,0x1F,0x1A,0x1E,0x6F,0x1B, -0x37,0x73,0xBD,0xF8,0xC9,0x6B,0x94,0x12,0x30,0x4F,0xF0,0x36,0x47,0xF5,0xD0,0x91, -0x0A,0xF5,0x17,0xC8,0xA5,0x61,0xC1,0x16,0x40,0x4D,0xFB,0x8A,0x61,0x90,0xE5,0x76, -0x20,0xC1,0x11,0x06,0x7D,0xAB,0x2C,0x6E,0xA6,0xF5,0x11,0x41,0x8E,0xFA,0x2D,0xAD, -0x2A,0x61,0x59,0xA4,0x67,0x26,0x4C,0xD0,0xE8,0xBC,0x52,0x5B,0x70,0x20,0x04,0x58, -0xD1,0x7A,0xC9,0xA4,0x69,0xBC,0x83,0x17,0x64,0xAD,0x05,0x8B,0xBC,0xD0,0x58,0xCE, -0x8D,0x8C,0xF5,0xEB,0xF0,0x42,0x49,0x0B,0x9D,0x97,0x27,0x67,0x32,0x6E,0xE1,0xAE, -0x93,0x15,0x1C,0x70,0xBC,0x20,0x4D,0x2F,0x18,0xDE,0x92,0x88,0xE8,0x6C,0x85,0x57, -0x11,0x1A,0xE9,0x7E,0xE3,0x26,0x11,0x54,0xA2,0x45,0x96,0x55,0x83,0xCA,0x30,0x89, -0xE8,0xDC,0xD8,0xA3,0xED,0x2A,0x80,0x3F,0x7F,0x79,0x65,0x57,0x3E,0x15,0x20,0x66, -0x08,0x2F,0x95,0x93,0xBF,0xAA,0x47,0x2F,0xA8,0x46,0x97,0xF0,0x12,0xE2,0xFE,0xC2, -0x0A,0x2B,0x51,0xE6,0x76,0xE6,0xB7,0x46,0xB7,0xE2,0x0D,0xA6,0xCC,0xA8,0xC3,0x4C, -0x59,0x55,0x89,0xE6,0xE8,0x53,0x5C,0x1C,0xEA,0x9D,0xF0,0x62,0x16,0x0B,0xA7,0xC9, -0x5F,0x0C,0xF0,0xDE,0xC2,0x76,0xCE,0xAF,0xF7,0x6A,0xF2,0xFA,0x41,0xA6,0xA2,0x33, -0x14,0xC9,0xE5,0x7A,0x63,0xD3,0x9E,0x62,0x37,0xD5,0x85,0x65,0x9E,0x0E,0xE6,0x53, -0x24,0x74,0x1B,0x5E,0x1D,0x12,0x53,0x5B,0xC7,0x2C,0xE7,0x83,0x49,0x3B,0x15,0xAE, -0x8A,0x68,0xB9,0x57,0x97,0x02,0x03,0x01,0x00,0x01,0x30,0x0D,0x06,0x09,0x2A,0x86, -0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x11,0x14, -0x96,0xC1,0xAB,0x92,0x08,0xF7,0x3F,0x2F,0xC9,0xB2,0xFE,0xE4,0x5A,0x9F,0x64,0xDE, -0xDB,0x21,0x4F,0x86,0x99,0x34,0x76,0x36,0x57,0xDD,0xD0,0x15,0x2F,0xC5,0xAD,0x7F, -0x15,0x1F,0x37,0x62,0x73,0x3E,0xD4,0xE7,0x5F,0xCE,0x17,0x03,0xDB,0x35,0xFA,0x2B, -0xDB,0xAE,0x60,0x09,0x5F,0x1E,0x5F,0x8F,0x6E,0xBB,0x0B,0x3D,0xEA,0x5A,0x13,0x1E, -0x0C,0x60,0x6F,0xB5,0xC0,0xB5,0x23,0x22,0x2E,0x07,0x0B,0xCB,0xA9,0x74,0xCB,0x47, -0xBB,0x1D,0xC1,0xD7,0xA5,0x6B,0xCC,0x2F,0xD2,0x42,0xFD,0x49,0xDD,0xA7,0x89,0xCF, -0x53,0xBA,0xDA,0x00,0x5A,0x28,0xBF,0x82,0xDF,0xF8,0xBA,0x13,0x1D,0x50,0x86,0x82, -0xFD,0x8E,0x30,0x8F,0x29,0x46,0xB0,0x1E,0x3D,0x35,0xDA,0x38,0x62,0x16,0x18,0x4A, -0xAD,0xE6,0xB6,0x51,0x6C,0xDE,0xAF,0x62,0xEB,0x01,0xD0,0x1E,0x24,0xFE,0x7A,0x8F, -0x12,0x1A,0x12,0x68,0xB8,0xFB,0x66,0x99,0x14,0x14,0x45,0x5C,0xAE,0xE7,0xAE,0x69, -0x17,0x81,0x2B,0x5A,0x37,0xC9,0x5E,0x2A,0xF4,0xC6,0xE2,0xA1,0x5C,0x54,0x9B,0xA6, -0x54,0x00,0xCF,0xF0,0xF1,0xC1,0xC7,0x98,0x30,0x1A,0x3B,0x36,0x16,0xDB,0xA3,0x6E, -0xEA,0xFD,0xAD,0xB2,0xC2,0xDA,0xEF,0x02,0x47,0x13,0x8A,0xC0,0xF1,0xB3,0x31,0xAD, -0x4F,0x1C,0xE1,0x4F,0x9C,0xAF,0x0F,0x0C,0x9D,0xF7,0x78,0x0D,0xD8,0xF4,0x35,0x56, -0x80,0xDA,0xB7,0x6D,0x17,0x8F,0x9D,0x1E,0x81,0x64,0xE1,0xFE,0xC5,0x45,0xBA,0xAD, -0x6B,0xB9,0x0A,0x7A,0x4E,0x4F,0x4B,0x84,0xEE,0x4B,0xF1,0x7D,0xDD,0x11, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2007 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G4 */ -/* issuer :/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2007 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G4 */ -unsigned char XXX_certificate[904]={ -0x30,0x82,0x03,0x84,0x30,0x82,0x03,0x0A,0xA0,0x03,0x02,0x01,0x02,0x02,0x10,0x2F, -0x80,0xFE,0x23,0x8C,0x0E,0x22,0x0F,0x48,0x67,0x12,0x28,0x91,0x87,0xAC,0xB3,0x30, -0x0A,0x06,0x08,0x2A,0x86,0x48,0xCE,0x3D,0x04,0x03,0x03,0x30,0x81,0xCA,0x31,0x0B, -0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x17,0x30,0x15,0x06, -0x03,0x55,0x04,0x0A,0x13,0x0E,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20, -0x49,0x6E,0x63,0x2E,0x31,0x1F,0x30,0x1D,0x06,0x03,0x55,0x04,0x0B,0x13,0x16,0x56, -0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x20,0x54,0x72,0x75,0x73,0x74,0x20,0x4E,0x65, -0x74,0x77,0x6F,0x72,0x6B,0x31,0x3A,0x30,0x38,0x06,0x03,0x55,0x04,0x0B,0x13,0x31, -0x28,0x63,0x29,0x20,0x32,0x30,0x30,0x37,0x20,0x56,0x65,0x72,0x69,0x53,0x69,0x67, -0x6E,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x20,0x2D,0x20,0x46,0x6F,0x72,0x20,0x61,0x75, -0x74,0x68,0x6F,0x72,0x69,0x7A,0x65,0x64,0x20,0x75,0x73,0x65,0x20,0x6F,0x6E,0x6C, -0x79,0x31,0x45,0x30,0x43,0x06,0x03,0x55,0x04,0x03,0x13,0x3C,0x56,0x65,0x72,0x69, -0x53,0x69,0x67,0x6E,0x20,0x43,0x6C,0x61,0x73,0x73,0x20,0x33,0x20,0x50,0x75,0x62, -0x6C,0x69,0x63,0x20,0x50,0x72,0x69,0x6D,0x61,0x72,0x79,0x20,0x43,0x65,0x72,0x74, -0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x20,0x41,0x75,0x74,0x68,0x6F,0x72, -0x69,0x74,0x79,0x20,0x2D,0x20,0x47,0x34,0x30,0x1E,0x17,0x0D,0x30,0x37,0x31,0x31, -0x30,0x35,0x30,0x30,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D,0x33,0x38,0x30,0x31,0x31, -0x38,0x32,0x33,0x35,0x39,0x35,0x39,0x5A,0x30,0x81,0xCA,0x31,0x0B,0x30,0x09,0x06, -0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x17,0x30,0x15,0x06,0x03,0x55,0x04, -0x0A,0x13,0x0E,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20,0x49,0x6E,0x63, -0x2E,0x31,0x1F,0x30,0x1D,0x06,0x03,0x55,0x04,0x0B,0x13,0x16,0x56,0x65,0x72,0x69, -0x53,0x69,0x67,0x6E,0x20,0x54,0x72,0x75,0x73,0x74,0x20,0x4E,0x65,0x74,0x77,0x6F, -0x72,0x6B,0x31,0x3A,0x30,0x38,0x06,0x03,0x55,0x04,0x0B,0x13,0x31,0x28,0x63,0x29, -0x20,0x32,0x30,0x30,0x37,0x20,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20, -0x49,0x6E,0x63,0x2E,0x20,0x2D,0x20,0x46,0x6F,0x72,0x20,0x61,0x75,0x74,0x68,0x6F, -0x72,0x69,0x7A,0x65,0x64,0x20,0x75,0x73,0x65,0x20,0x6F,0x6E,0x6C,0x79,0x31,0x45, -0x30,0x43,0x06,0x03,0x55,0x04,0x03,0x13,0x3C,0x56,0x65,0x72,0x69,0x53,0x69,0x67, -0x6E,0x20,0x43,0x6C,0x61,0x73,0x73,0x20,0x33,0x20,0x50,0x75,0x62,0x6C,0x69,0x63, -0x20,0x50,0x72,0x69,0x6D,0x61,0x72,0x79,0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69, -0x63,0x61,0x74,0x69,0x6F,0x6E,0x20,0x41,0x75,0x74,0x68,0x6F,0x72,0x69,0x74,0x79, -0x20,0x2D,0x20,0x47,0x34,0x30,0x76,0x30,0x10,0x06,0x07,0x2A,0x86,0x48,0xCE,0x3D, -0x02,0x01,0x06,0x05,0x2B,0x81,0x04,0x00,0x22,0x03,0x62,0x00,0x04,0xA7,0x56,0x7A, -0x7C,0x52,0xDA,0x64,0x9B,0x0E,0x2D,0x5C,0xD8,0x5E,0xAC,0x92,0x3D,0xFE,0x01,0xE6, -0x19,0x4A,0x3D,0x14,0x03,0x4B,0xFA,0x60,0x27,0x20,0xD9,0x83,0x89,0x69,0xFA,0x54, -0xC6,0x9A,0x18,0x5E,0x55,0x2A,0x64,0xDE,0x06,0xF6,0x8D,0x4A,0x3B,0xAD,0x10,0x3C, -0x65,0x3D,0x90,0x88,0x04,0x89,0xE0,0x30,0x61,0xB3,0xAE,0x5D,0x01,0xA7,0x7B,0xDE, -0x7C,0xB2,0xBE,0xCA,0x65,0x61,0x00,0x86,0xAE,0xDA,0x8F,0x7B,0xD0,0x89,0xAD,0x4D, -0x1D,0x59,0x9A,0x41,0xB1,0xBC,0x47,0x80,0xDC,0x9E,0x62,0xC3,0xF9,0xA3,0x81,0xB2, -0x30,0x81,0xAF,0x30,0x0F,0x06,0x03,0x55,0x1D,0x13,0x01,0x01,0xFF,0x04,0x05,0x30, -0x03,0x01,0x01,0xFF,0x30,0x0E,0x06,0x03,0x55,0x1D,0x0F,0x01,0x01,0xFF,0x04,0x04, -0x03,0x02,0x01,0x06,0x30,0x6D,0x06,0x08,0x2B,0x06,0x01,0x05,0x05,0x07,0x01,0x0C, -0x04,0x61,0x30,0x5F,0xA1,0x5D,0xA0,0x5B,0x30,0x59,0x30,0x57,0x30,0x55,0x16,0x09, -0x69,0x6D,0x61,0x67,0x65,0x2F,0x67,0x69,0x66,0x30,0x21,0x30,0x1F,0x30,0x07,0x06, -0x05,0x2B,0x0E,0x03,0x02,0x1A,0x04,0x14,0x8F,0xE5,0xD3,0x1A,0x86,0xAC,0x8D,0x8E, -0x6B,0xC3,0xCF,0x80,0x6A,0xD4,0x48,0x18,0x2C,0x7B,0x19,0x2E,0x30,0x25,0x16,0x23, -0x68,0x74,0x74,0x70,0x3A,0x2F,0x2F,0x6C,0x6F,0x67,0x6F,0x2E,0x76,0x65,0x72,0x69, -0x73,0x69,0x67,0x6E,0x2E,0x63,0x6F,0x6D,0x2F,0x76,0x73,0x6C,0x6F,0x67,0x6F,0x2E, -0x67,0x69,0x66,0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04,0x16,0x04,0x14,0xB3,0x16, -0x91,0xFD,0xEE,0xA6,0x6E,0xE4,0xB5,0x2E,0x49,0x8F,0x87,0x78,0x81,0x80,0xEC,0xE5, -0xB1,0xB5,0x30,0x0A,0x06,0x08,0x2A,0x86,0x48,0xCE,0x3D,0x04,0x03,0x03,0x03,0x68, -0x00,0x30,0x65,0x02,0x30,0x66,0x21,0x0C,0x18,0x26,0x60,0x5A,0x38,0x7B,0x56,0x42, -0xE0,0xA7,0xFC,0x36,0x84,0x51,0x91,0x20,0x2C,0x76,0x4D,0x43,0x3D,0xC4,0x1D,0x84, -0x23,0xD0,0xAC,0xD6,0x7C,0x35,0x06,0xCE,0xCD,0x69,0xBD,0x90,0x0D,0xDB,0x6C,0x48, -0x42,0x1D,0x0E,0xAA,0x42,0x02,0x31,0x00,0x9C,0x3D,0x48,0x39,0x23,0x39,0x58,0x1A, -0x15,0x12,0x59,0x6A,0x9E,0xEF,0xD5,0x59,0xB2,0x1D,0x52,0x2C,0x99,0x71,0xCD,0xC7, -0x29,0xDF,0x1B,0x2A,0x61,0x7B,0x71,0xD1,0xDE,0xF3,0xC0,0xE5,0x0D,0x3A,0x4A,0xAA, -0x2D,0xA7,0xD8,0x86,0x2A,0xDD,0x2E,0x10, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G5 */ -/* issuer :/C=US/O=VeriSign, Inc./OU=VeriSign Trust Network/OU=(c) 2006 VeriSign, Inc. - For authorized use only/CN=VeriSign Class 3 Public Primary Certification Authority - G5 */ -unsigned char XXX_certificate[1239]={ -0x30,0x82,0x04,0xD3,0x30,0x82,0x03,0xBB,0xA0,0x03,0x02,0x01,0x02,0x02,0x10,0x18, -0xDA,0xD1,0x9E,0x26,0x7D,0xE8,0xBB,0x4A,0x21,0x58,0xCD,0xCC,0x6B,0x3B,0x4A,0x30, -0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x30,0x81, -0xCA,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x17, -0x30,0x15,0x06,0x03,0x55,0x04,0x0A,0x13,0x0E,0x56,0x65,0x72,0x69,0x53,0x69,0x67, -0x6E,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x31,0x1F,0x30,0x1D,0x06,0x03,0x55,0x04,0x0B, -0x13,0x16,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x20,0x54,0x72,0x75,0x73,0x74, -0x20,0x4E,0x65,0x74,0x77,0x6F,0x72,0x6B,0x31,0x3A,0x30,0x38,0x06,0x03,0x55,0x04, -0x0B,0x13,0x31,0x28,0x63,0x29,0x20,0x32,0x30,0x30,0x36,0x20,0x56,0x65,0x72,0x69, -0x53,0x69,0x67,0x6E,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x20,0x2D,0x20,0x46,0x6F,0x72, -0x20,0x61,0x75,0x74,0x68,0x6F,0x72,0x69,0x7A,0x65,0x64,0x20,0x75,0x73,0x65,0x20, -0x6F,0x6E,0x6C,0x79,0x31,0x45,0x30,0x43,0x06,0x03,0x55,0x04,0x03,0x13,0x3C,0x56, -0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x20,0x43,0x6C,0x61,0x73,0x73,0x20,0x33,0x20, -0x50,0x75,0x62,0x6C,0x69,0x63,0x20,0x50,0x72,0x69,0x6D,0x61,0x72,0x79,0x20,0x43, -0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x20,0x41,0x75,0x74, -0x68,0x6F,0x72,0x69,0x74,0x79,0x20,0x2D,0x20,0x47,0x35,0x30,0x1E,0x17,0x0D,0x30, -0x36,0x31,0x31,0x30,0x38,0x30,0x30,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D,0x33,0x36, -0x30,0x37,0x31,0x36,0x32,0x33,0x35,0x39,0x35,0x39,0x5A,0x30,0x81,0xCA,0x31,0x0B, -0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x17,0x30,0x15,0x06, -0x03,0x55,0x04,0x0A,0x13,0x0E,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20, -0x49,0x6E,0x63,0x2E,0x31,0x1F,0x30,0x1D,0x06,0x03,0x55,0x04,0x0B,0x13,0x16,0x56, -0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x20,0x54,0x72,0x75,0x73,0x74,0x20,0x4E,0x65, -0x74,0x77,0x6F,0x72,0x6B,0x31,0x3A,0x30,0x38,0x06,0x03,0x55,0x04,0x0B,0x13,0x31, -0x28,0x63,0x29,0x20,0x32,0x30,0x30,0x36,0x20,0x56,0x65,0x72,0x69,0x53,0x69,0x67, -0x6E,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x20,0x2D,0x20,0x46,0x6F,0x72,0x20,0x61,0x75, -0x74,0x68,0x6F,0x72,0x69,0x7A,0x65,0x64,0x20,0x75,0x73,0x65,0x20,0x6F,0x6E,0x6C, -0x79,0x31,0x45,0x30,0x43,0x06,0x03,0x55,0x04,0x03,0x13,0x3C,0x56,0x65,0x72,0x69, -0x53,0x69,0x67,0x6E,0x20,0x43,0x6C,0x61,0x73,0x73,0x20,0x33,0x20,0x50,0x75,0x62, -0x6C,0x69,0x63,0x20,0x50,0x72,0x69,0x6D,0x61,0x72,0x79,0x20,0x43,0x65,0x72,0x74, -0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x20,0x41,0x75,0x74,0x68,0x6F,0x72, -0x69,0x74,0x79,0x20,0x2D,0x20,0x47,0x35,0x30,0x82,0x01,0x22,0x30,0x0D,0x06,0x09, -0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0F,0x00, -0x30,0x82,0x01,0x0A,0x02,0x82,0x01,0x01,0x00,0xAF,0x24,0x08,0x08,0x29,0x7A,0x35, -0x9E,0x60,0x0C,0xAA,0xE7,0x4B,0x3B,0x4E,0xDC,0x7C,0xBC,0x3C,0x45,0x1C,0xBB,0x2B, -0xE0,0xFE,0x29,0x02,0xF9,0x57,0x08,0xA3,0x64,0x85,0x15,0x27,0xF5,0xF1,0xAD,0xC8, -0x31,0x89,0x5D,0x22,0xE8,0x2A,0xAA,0xA6,0x42,0xB3,0x8F,0xF8,0xB9,0x55,0xB7,0xB1, -0xB7,0x4B,0xB3,0xFE,0x8F,0x7E,0x07,0x57,0xEC,0xEF,0x43,0xDB,0x66,0x62,0x15,0x61, -0xCF,0x60,0x0D,0xA4,0xD8,0xDE,0xF8,0xE0,0xC3,0x62,0x08,0x3D,0x54,0x13,0xEB,0x49, -0xCA,0x59,0x54,0x85,0x26,0xE5,0x2B,0x8F,0x1B,0x9F,0xEB,0xF5,0xA1,0x91,0xC2,0x33, -0x49,0xD8,0x43,0x63,0x6A,0x52,0x4B,0xD2,0x8F,0xE8,0x70,0x51,0x4D,0xD1,0x89,0x69, -0x7B,0xC7,0x70,0xF6,0xB3,0xDC,0x12,0x74,0xDB,0x7B,0x5D,0x4B,0x56,0xD3,0x96,0xBF, -0x15,0x77,0xA1,0xB0,0xF4,0xA2,0x25,0xF2,0xAF,0x1C,0x92,0x67,0x18,0xE5,0xF4,0x06, -0x04,0xEF,0x90,0xB9,0xE4,0x00,0xE4,0xDD,0x3A,0xB5,0x19,0xFF,0x02,0xBA,0xF4,0x3C, -0xEE,0xE0,0x8B,0xEB,0x37,0x8B,0xEC,0xF4,0xD7,0xAC,0xF2,0xF6,0xF0,0x3D,0xAF,0xDD, -0x75,0x91,0x33,0x19,0x1D,0x1C,0x40,0xCB,0x74,0x24,0x19,0x21,0x93,0xD9,0x14,0xFE, -0xAC,0x2A,0x52,0xC7,0x8F,0xD5,0x04,0x49,0xE4,0x8D,0x63,0x47,0x88,0x3C,0x69,0x83, -0xCB,0xFE,0x47,0xBD,0x2B,0x7E,0x4F,0xC5,0x95,0xAE,0x0E,0x9D,0xD4,0xD1,0x43,0xC0, -0x67,0x73,0xE3,0x14,0x08,0x7E,0xE5,0x3F,0x9F,0x73,0xB8,0x33,0x0A,0xCF,0x5D,0x3F, -0x34,0x87,0x96,0x8A,0xEE,0x53,0xE8,0x25,0x15,0x02,0x03,0x01,0x00,0x01,0xA3,0x81, -0xB2,0x30,0x81,0xAF,0x30,0x0F,0x06,0x03,0x55,0x1D,0x13,0x01,0x01,0xFF,0x04,0x05, -0x30,0x03,0x01,0x01,0xFF,0x30,0x0E,0x06,0x03,0x55,0x1D,0x0F,0x01,0x01,0xFF,0x04, -0x04,0x03,0x02,0x01,0x06,0x30,0x6D,0x06,0x08,0x2B,0x06,0x01,0x05,0x05,0x07,0x01, -0x0C,0x04,0x61,0x30,0x5F,0xA1,0x5D,0xA0,0x5B,0x30,0x59,0x30,0x57,0x30,0x55,0x16, -0x09,0x69,0x6D,0x61,0x67,0x65,0x2F,0x67,0x69,0x66,0x30,0x21,0x30,0x1F,0x30,0x07, -0x06,0x05,0x2B,0x0E,0x03,0x02,0x1A,0x04,0x14,0x8F,0xE5,0xD3,0x1A,0x86,0xAC,0x8D, -0x8E,0x6B,0xC3,0xCF,0x80,0x6A,0xD4,0x48,0x18,0x2C,0x7B,0x19,0x2E,0x30,0x25,0x16, -0x23,0x68,0x74,0x74,0x70,0x3A,0x2F,0x2F,0x6C,0x6F,0x67,0x6F,0x2E,0x76,0x65,0x72, -0x69,0x73,0x69,0x67,0x6E,0x2E,0x63,0x6F,0x6D,0x2F,0x76,0x73,0x6C,0x6F,0x67,0x6F, -0x2E,0x67,0x69,0x66,0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04,0x16,0x04,0x14,0x7F, -0xD3,0x65,0xA7,0xC2,0xDD,0xEC,0xBB,0xF0,0x30,0x09,0xF3,0x43,0x39,0xFA,0x02,0xAF, -0x33,0x31,0x33,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05, -0x05,0x00,0x03,0x82,0x01,0x01,0x00,0x93,0x24,0x4A,0x30,0x5F,0x62,0xCF,0xD8,0x1A, -0x98,0x2F,0x3D,0xEA,0xDC,0x99,0x2D,0xBD,0x77,0xF6,0xA5,0x79,0x22,0x38,0xEC,0xC4, -0xA7,0xA0,0x78,0x12,0xAD,0x62,0x0E,0x45,0x70,0x64,0xC5,0xE7,0x97,0x66,0x2D,0x98, -0x09,0x7E,0x5F,0xAF,0xD6,0xCC,0x28,0x65,0xF2,0x01,0xAA,0x08,0x1A,0x47,0xDE,0xF9, -0xF9,0x7C,0x92,0x5A,0x08,0x69,0x20,0x0D,0xD9,0x3E,0x6D,0x6E,0x3C,0x0D,0x6E,0xD8, -0xE6,0x06,0x91,0x40,0x18,0xB9,0xF8,0xC1,0xED,0xDF,0xDB,0x41,0xAA,0xE0,0x96,0x20, -0xC9,0xCD,0x64,0x15,0x38,0x81,0xC9,0x94,0xEE,0xA2,0x84,0x29,0x0B,0x13,0x6F,0x8E, -0xDB,0x0C,0xDD,0x25,0x02,0xDB,0xA4,0x8B,0x19,0x44,0xD2,0x41,0x7A,0x05,0x69,0x4A, -0x58,0x4F,0x60,0xCA,0x7E,0x82,0x6A,0x0B,0x02,0xAA,0x25,0x17,0x39,0xB5,0xDB,0x7F, -0xE7,0x84,0x65,0x2A,0x95,0x8A,0xBD,0x86,0xDE,0x5E,0x81,0x16,0x83,0x2D,0x10,0xCC, -0xDE,0xFD,0xA8,0x82,0x2A,0x6D,0x28,0x1F,0x0D,0x0B,0xC4,0xE5,0xE7,0x1A,0x26,0x19, -0xE1,0xF4,0x11,0x6F,0x10,0xB5,0x95,0xFC,0xE7,0x42,0x05,0x32,0xDB,0xCE,0x9D,0x51, -0x5E,0x28,0xB6,0x9E,0x85,0xD3,0x5B,0xEF,0xA5,0x7D,0x45,0x40,0x72,0x8E,0xB7,0x0E, -0x6B,0x0E,0x06,0xFB,0x33,0x35,0x48,0x71,0xB8,0x9D,0x27,0x8B,0xC4,0x65,0x5F,0x0D, -0x86,0x76,0x9C,0x44,0x7A,0xF6,0x95,0x5C,0xF6,0x5D,0x32,0x08,0x33,0xA4,0x54,0xB6, -0x18,0x3F,0x68,0x5C,0xF2,0x42,0x4A,0x85,0x38,0x54,0x83,0x5F,0xD1,0xE8,0x2C,0xF2, -0xAC,0x11,0xD6,0xA8,0xED,0x63,0x6A, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority */ -/* issuer :/C=US/O=VeriSign, Inc./OU=Class 3 Public Primary Certification Authority */ -unsigned char XXX_certificate[576]={ -0x30,0x82,0x02,0x3C,0x30,0x82,0x01,0xA5,0x02,0x10,0x3C,0x91,0x31,0xCB,0x1F,0xF6, -0xD0,0x1B,0x0E,0x9A,0xB8,0xD0,0x44,0xBF,0x12,0xBE,0x30,0x0D,0x06,0x09,0x2A,0x86, -0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x30,0x5F,0x31,0x0B,0x30,0x09,0x06, -0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x17,0x30,0x15,0x06,0x03,0x55,0x04, -0x0A,0x13,0x0E,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20,0x49,0x6E,0x63, -0x2E,0x31,0x37,0x30,0x35,0x06,0x03,0x55,0x04,0x0B,0x13,0x2E,0x43,0x6C,0x61,0x73, -0x73,0x20,0x33,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x20,0x50,0x72,0x69,0x6D,0x61, -0x72,0x79,0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E, -0x20,0x41,0x75,0x74,0x68,0x6F,0x72,0x69,0x74,0x79,0x30,0x1E,0x17,0x0D,0x39,0x36, -0x30,0x31,0x32,0x39,0x30,0x30,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D,0x32,0x38,0x30, -0x38,0x30,0x32,0x32,0x33,0x35,0x39,0x35,0x39,0x5A,0x30,0x5F,0x31,0x0B,0x30,0x09, -0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x17,0x30,0x15,0x06,0x03,0x55, -0x04,0x0A,0x13,0x0E,0x56,0x65,0x72,0x69,0x53,0x69,0x67,0x6E,0x2C,0x20,0x49,0x6E, -0x63,0x2E,0x31,0x37,0x30,0x35,0x06,0x03,0x55,0x04,0x0B,0x13,0x2E,0x43,0x6C,0x61, -0x73,0x73,0x20,0x33,0x20,0x50,0x75,0x62,0x6C,0x69,0x63,0x20,0x50,0x72,0x69,0x6D, -0x61,0x72,0x79,0x20,0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F, -0x6E,0x20,0x41,0x75,0x74,0x68,0x6F,0x72,0x69,0x74,0x79,0x30,0x81,0x9F,0x30,0x0D, -0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8D, -0x00,0x30,0x81,0x89,0x02,0x81,0x81,0x00,0xC9,0x5C,0x59,0x9E,0xF2,0x1B,0x8A,0x01, -0x14,0xB4,0x10,0xDF,0x04,0x40,0xDB,0xE3,0x57,0xAF,0x6A,0x45,0x40,0x8F,0x84,0x0C, -0x0B,0xD1,0x33,0xD9,0xD9,0x11,0xCF,0xEE,0x02,0x58,0x1F,0x25,0xF7,0x2A,0xA8,0x44, -0x05,0xAA,0xEC,0x03,0x1F,0x78,0x7F,0x9E,0x93,0xB9,0x9A,0x00,0xAA,0x23,0x7D,0xD6, -0xAC,0x85,0xA2,0x63,0x45,0xC7,0x72,0x27,0xCC,0xF4,0x4C,0xC6,0x75,0x71,0xD2,0x39, -0xEF,0x4F,0x42,0xF0,0x75,0xDF,0x0A,0x90,0xC6,0x8E,0x20,0x6F,0x98,0x0F,0xF8,0xAC, -0x23,0x5F,0x70,0x29,0x36,0xA4,0xC9,0x86,0xE7,0xB1,0x9A,0x20,0xCB,0x53,0xA5,0x85, -0xE7,0x3D,0xBE,0x7D,0x9A,0xFE,0x24,0x45,0x33,0xDC,0x76,0x15,0xED,0x0F,0xA2,0x71, -0x64,0x4C,0x65,0x2E,0x81,0x68,0x45,0xA7,0x02,0x03,0x01,0x00,0x01,0x30,0x0D,0x06, -0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00, -0x10,0x72,0x52,0xA9,0x05,0x14,0x19,0x32,0x08,0x41,0xF0,0xC5,0x6B,0x0A,0xCC,0x7E, -0x0F,0x21,0x19,0xCD,0xE4,0x67,0xDC,0x5F,0xA9,0x1B,0xE6,0xCA,0xE8,0x73,0x9D,0x22, -0xD8,0x98,0x6E,0x73,0x03,0x61,0x91,0xC5,0x7C,0xB0,0x45,0x40,0x6E,0x44,0x9D,0x8D, -0xB0,0xB1,0x96,0x74,0x61,0x2D,0x0D,0xA9,0x45,0xD2,0xA4,0x92,0x2A,0xD6,0x9A,0x75, -0x97,0x6E,0x3F,0x53,0xFD,0x45,0x99,0x60,0x1D,0xA8,0x2B,0x4C,0xF9,0x5E,0xA7,0x09, -0xD8,0x75,0x30,0xD7,0xD2,0x65,0x60,0x3D,0x67,0xD6,0x48,0x55,0x75,0x69,0x3F,0x91, -0xF5,0x48,0x0B,0x47,0x69,0x22,0x69,0x82,0x96,0xBE,0xC9,0xC8,0x38,0x86,0x4A,0x7A, -0x2C,0x73,0x19,0x48,0x69,0x4E,0x6B,0x7C,0x65,0xBF,0x0F,0xFC,0x70,0xCE,0x88,0x90, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=thawte, Inc./OU=(c) 2007 thawte, Inc. - For authorized use only/CN=thawte Primary Root CA - G2 */ -/* issuer :/C=US/O=thawte, Inc./OU=(c) 2007 thawte, Inc. - For authorized use only/CN=thawte Primary Root CA - G2 */ -unsigned char XXX_certificate[652]={ -0x30,0x82,0x02,0x88,0x30,0x82,0x02,0x0D,0xA0,0x03,0x02,0x01,0x02,0x02,0x10,0x35, -0xFC,0x26,0x5C,0xD9,0x84,0x4F,0xC9,0x3D,0x26,0x3D,0x57,0x9B,0xAE,0xD7,0x56,0x30, -0x0A,0x06,0x08,0x2A,0x86,0x48,0xCE,0x3D,0x04,0x03,0x03,0x30,0x81,0x84,0x31,0x0B, -0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x15,0x30,0x13,0x06, -0x03,0x55,0x04,0x0A,0x13,0x0C,0x74,0x68,0x61,0x77,0x74,0x65,0x2C,0x20,0x49,0x6E, -0x63,0x2E,0x31,0x38,0x30,0x36,0x06,0x03,0x55,0x04,0x0B,0x13,0x2F,0x28,0x63,0x29, -0x20,0x32,0x30,0x30,0x37,0x20,0x74,0x68,0x61,0x77,0x74,0x65,0x2C,0x20,0x49,0x6E, -0x63,0x2E,0x20,0x2D,0x20,0x46,0x6F,0x72,0x20,0x61,0x75,0x74,0x68,0x6F,0x72,0x69, -0x7A,0x65,0x64,0x20,0x75,0x73,0x65,0x20,0x6F,0x6E,0x6C,0x79,0x31,0x24,0x30,0x22, -0x06,0x03,0x55,0x04,0x03,0x13,0x1B,0x74,0x68,0x61,0x77,0x74,0x65,0x20,0x50,0x72, -0x69,0x6D,0x61,0x72,0x79,0x20,0x52,0x6F,0x6F,0x74,0x20,0x43,0x41,0x20,0x2D,0x20, -0x47,0x32,0x30,0x1E,0x17,0x0D,0x30,0x37,0x31,0x31,0x30,0x35,0x30,0x30,0x30,0x30, -0x30,0x30,0x5A,0x17,0x0D,0x33,0x38,0x30,0x31,0x31,0x38,0x32,0x33,0x35,0x39,0x35, -0x39,0x5A,0x30,0x81,0x84,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02, -0x55,0x53,0x31,0x15,0x30,0x13,0x06,0x03,0x55,0x04,0x0A,0x13,0x0C,0x74,0x68,0x61, -0x77,0x74,0x65,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x31,0x38,0x30,0x36,0x06,0x03,0x55, -0x04,0x0B,0x13,0x2F,0x28,0x63,0x29,0x20,0x32,0x30,0x30,0x37,0x20,0x74,0x68,0x61, -0x77,0x74,0x65,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x20,0x2D,0x20,0x46,0x6F,0x72,0x20, -0x61,0x75,0x74,0x68,0x6F,0x72,0x69,0x7A,0x65,0x64,0x20,0x75,0x73,0x65,0x20,0x6F, -0x6E,0x6C,0x79,0x31,0x24,0x30,0x22,0x06,0x03,0x55,0x04,0x03,0x13,0x1B,0x74,0x68, -0x61,0x77,0x74,0x65,0x20,0x50,0x72,0x69,0x6D,0x61,0x72,0x79,0x20,0x52,0x6F,0x6F, -0x74,0x20,0x43,0x41,0x20,0x2D,0x20,0x47,0x32,0x30,0x76,0x30,0x10,0x06,0x07,0x2A, -0x86,0x48,0xCE,0x3D,0x02,0x01,0x06,0x05,0x2B,0x81,0x04,0x00,0x22,0x03,0x62,0x00, -0x04,0xA2,0xD5,0x9C,0x82,0x7B,0x95,0x9D,0xF1,0x52,0x78,0x87,0xFE,0x8A,0x16,0xBF, -0x05,0xE6,0xDF,0xA3,0x02,0x4F,0x0D,0x07,0xC6,0x00,0x51,0xBA,0x0C,0x02,0x52,0x2D, -0x22,0xA4,0x42,0x39,0xC4,0xFE,0x8F,0xEA,0xC9,0xC1,0xBE,0xD4,0x4D,0xFF,0x9F,0x7A, -0x9E,0xE2,0xB1,0x7C,0x9A,0xAD,0xA7,0x86,0x09,0x73,0x87,0xD1,0xE7,0x9A,0xE3,0x7A, -0xA5,0xAA,0x6E,0xFB,0xBA,0xB3,0x70,0xC0,0x67,0x88,0xA2,0x35,0xD4,0xA3,0x9A,0xB1, -0xFD,0xAD,0xC2,0xEF,0x31,0xFA,0xA8,0xB9,0xF3,0xFB,0x08,0xC6,0x91,0xD1,0xFB,0x29, -0x95,0xA3,0x42,0x30,0x40,0x30,0x0F,0x06,0x03,0x55,0x1D,0x13,0x01,0x01,0xFF,0x04, -0x05,0x30,0x03,0x01,0x01,0xFF,0x30,0x0E,0x06,0x03,0x55,0x1D,0x0F,0x01,0x01,0xFF, -0x04,0x04,0x03,0x02,0x01,0x06,0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04,0x16,0x04, -0x14,0x9A,0xD8,0x00,0x30,0x00,0xE7,0x6B,0x7F,0x85,0x18,0xEE,0x8B,0xB6,0xCE,0x8A, -0x0C,0xF8,0x11,0xE1,0xBB,0x30,0x0A,0x06,0x08,0x2A,0x86,0x48,0xCE,0x3D,0x04,0x03, -0x03,0x03,0x69,0x00,0x30,0x66,0x02,0x31,0x00,0xDD,0xF8,0xE0,0x57,0x47,0x5B,0xA7, -0xE6,0x0A,0xC3,0xBD,0xF5,0x80,0x8A,0x97,0x35,0x0D,0x1B,0x89,0x3C,0x54,0x86,0x77, -0x28,0xCA,0xA1,0xF4,0x79,0xDE,0xB5,0xE6,0x38,0xB0,0xF0,0x65,0x70,0x8C,0x7F,0x02, -0x54,0xC2,0xBF,0xFF,0xD8,0xA1,0x3E,0xD9,0xCF,0x02,0x31,0x00,0xC4,0x8D,0x94,0xFC, -0xDC,0x53,0xD2,0xDC,0x9D,0x78,0x16,0x1F,0x15,0x33,0x23,0x53,0x52,0xE3,0x5A,0x31, -0x5D,0x9D,0xCA,0xAE,0xBD,0x13,0x29,0x44,0x0D,0x27,0x5B,0xA8,0xE7,0x68,0x9C,0x12, -0xF7,0x58,0x3F,0x2E,0x72,0x02,0x57,0xA3,0x8F,0xA1,0x14,0x2E, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/C=US/O=thawte, Inc./OU=Certification Services Division/OU=(c) 2006 thawte, Inc. - For authorized use only/CN=thawte Primary Root CA */ -/* issuer :/C=US/O=thawte, Inc./OU=Certification Services Division/OU=(c) 2006 thawte, Inc. - For authorized use only/CN=thawte Primary Root CA */ -unsigned char XXX_certificate[1060]={ -0x30,0x82,0x04,0x20,0x30,0x82,0x03,0x08,0xA0,0x03,0x02,0x01,0x02,0x02,0x10,0x34, -0x4E,0xD5,0x57,0x20,0xD5,0xED,0xEC,0x49,0xF4,0x2F,0xCE,0x37,0xDB,0x2B,0x6D,0x30, -0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x30,0x81, -0xA9,0x31,0x0B,0x30,0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x15, -0x30,0x13,0x06,0x03,0x55,0x04,0x0A,0x13,0x0C,0x74,0x68,0x61,0x77,0x74,0x65,0x2C, -0x20,0x49,0x6E,0x63,0x2E,0x31,0x28,0x30,0x26,0x06,0x03,0x55,0x04,0x0B,0x13,0x1F, -0x43,0x65,0x72,0x74,0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x20,0x53,0x65, -0x72,0x76,0x69,0x63,0x65,0x73,0x20,0x44,0x69,0x76,0x69,0x73,0x69,0x6F,0x6E,0x31, -0x38,0x30,0x36,0x06,0x03,0x55,0x04,0x0B,0x13,0x2F,0x28,0x63,0x29,0x20,0x32,0x30, -0x30,0x36,0x20,0x74,0x68,0x61,0x77,0x74,0x65,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x20, -0x2D,0x20,0x46,0x6F,0x72,0x20,0x61,0x75,0x74,0x68,0x6F,0x72,0x69,0x7A,0x65,0x64, -0x20,0x75,0x73,0x65,0x20,0x6F,0x6E,0x6C,0x79,0x31,0x1F,0x30,0x1D,0x06,0x03,0x55, -0x04,0x03,0x13,0x16,0x74,0x68,0x61,0x77,0x74,0x65,0x20,0x50,0x72,0x69,0x6D,0x61, -0x72,0x79,0x20,0x52,0x6F,0x6F,0x74,0x20,0x43,0x41,0x30,0x1E,0x17,0x0D,0x30,0x36, -0x31,0x31,0x31,0x37,0x30,0x30,0x30,0x30,0x30,0x30,0x5A,0x17,0x0D,0x33,0x36,0x30, -0x37,0x31,0x36,0x32,0x33,0x35,0x39,0x35,0x39,0x5A,0x30,0x81,0xA9,0x31,0x0B,0x30, -0x09,0x06,0x03,0x55,0x04,0x06,0x13,0x02,0x55,0x53,0x31,0x15,0x30,0x13,0x06,0x03, -0x55,0x04,0x0A,0x13,0x0C,0x74,0x68,0x61,0x77,0x74,0x65,0x2C,0x20,0x49,0x6E,0x63, -0x2E,0x31,0x28,0x30,0x26,0x06,0x03,0x55,0x04,0x0B,0x13,0x1F,0x43,0x65,0x72,0x74, -0x69,0x66,0x69,0x63,0x61,0x74,0x69,0x6F,0x6E,0x20,0x53,0x65,0x72,0x76,0x69,0x63, -0x65,0x73,0x20,0x44,0x69,0x76,0x69,0x73,0x69,0x6F,0x6E,0x31,0x38,0x30,0x36,0x06, -0x03,0x55,0x04,0x0B,0x13,0x2F,0x28,0x63,0x29,0x20,0x32,0x30,0x30,0x36,0x20,0x74, -0x68,0x61,0x77,0x74,0x65,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x20,0x2D,0x20,0x46,0x6F, -0x72,0x20,0x61,0x75,0x74,0x68,0x6F,0x72,0x69,0x7A,0x65,0x64,0x20,0x75,0x73,0x65, -0x20,0x6F,0x6E,0x6C,0x79,0x31,0x1F,0x30,0x1D,0x06,0x03,0x55,0x04,0x03,0x13,0x16, -0x74,0x68,0x61,0x77,0x74,0x65,0x20,0x50,0x72,0x69,0x6D,0x61,0x72,0x79,0x20,0x52, -0x6F,0x6F,0x74,0x20,0x43,0x41,0x30,0x82,0x01,0x22,0x30,0x0D,0x06,0x09,0x2A,0x86, -0x48,0x86,0xF7,0x0D,0x01,0x01,0x01,0x05,0x00,0x03,0x82,0x01,0x0F,0x00,0x30,0x82, -0x01,0x0A,0x02,0x82,0x01,0x01,0x00,0xAC,0xA0,0xF0,0xFB,0x80,0x59,0xD4,0x9C,0xC7, -0xA4,0xCF,0x9D,0xA1,0x59,0x73,0x09,0x10,0x45,0x0C,0x0D,0x2C,0x6E,0x68,0xF1,0x6C, -0x5B,0x48,0x68,0x49,0x59,0x37,0xFC,0x0B,0x33,0x19,0xC2,0x77,0x7F,0xCC,0x10,0x2D, -0x95,0x34,0x1C,0xE6,0xEB,0x4D,0x09,0xA7,0x1C,0xD2,0xB8,0xC9,0x97,0x36,0x02,0xB7, -0x89,0xD4,0x24,0x5F,0x06,0xC0,0xCC,0x44,0x94,0x94,0x8D,0x02,0x62,0x6F,0xEB,0x5A, -0xDD,0x11,0x8D,0x28,0x9A,0x5C,0x84,0x90,0x10,0x7A,0x0D,0xBD,0x74,0x66,0x2F,0x6A, -0x38,0xA0,0xE2,0xD5,0x54,0x44,0xEB,0x1D,0x07,0x9F,0x07,0xBA,0x6F,0xEE,0xE9,0xFD, -0x4E,0x0B,0x29,0xF5,0x3E,0x84,0xA0,0x01,0xF1,0x9C,0xAB,0xF8,0x1C,0x7E,0x89,0xA4, -0xE8,0xA1,0xD8,0x71,0x65,0x0D,0xA3,0x51,0x7B,0xEE,0xBC,0xD2,0x22,0x60,0x0D,0xB9, -0x5B,0x9D,0xDF,0xBA,0xFC,0x51,0x5B,0x0B,0xAF,0x98,0xB2,0xE9,0x2E,0xE9,0x04,0xE8, -0x62,0x87,0xDE,0x2B,0xC8,0xD7,0x4E,0xC1,0x4C,0x64,0x1E,0xDD,0xCF,0x87,0x58,0xBA, -0x4A,0x4F,0xCA,0x68,0x07,0x1D,0x1C,0x9D,0x4A,0xC6,0xD5,0x2F,0x91,0xCC,0x7C,0x71, -0x72,0x1C,0xC5,0xC0,0x67,0xEB,0x32,0xFD,0xC9,0x92,0x5C,0x94,0xDA,0x85,0xC0,0x9B, -0xBF,0x53,0x7D,0x2B,0x09,0xF4,0x8C,0x9D,0x91,0x1F,0x97,0x6A,0x52,0xCB,0xDE,0x09, -0x36,0xA4,0x77,0xD8,0x7B,0x87,0x50,0x44,0xD5,0x3E,0x6E,0x29,0x69,0xFB,0x39,0x49, -0x26,0x1E,0x09,0xA5,0x80,0x7B,0x40,0x2D,0xEB,0xE8,0x27,0x85,0xC9,0xFE,0x61,0xFD, -0x7E,0xE6,0x7C,0x97,0x1D,0xD5,0x9D,0x02,0x03,0x01,0x00,0x01,0xA3,0x42,0x30,0x40, -0x30,0x0F,0x06,0x03,0x55,0x1D,0x13,0x01,0x01,0xFF,0x04,0x05,0x30,0x03,0x01,0x01, -0xFF,0x30,0x0E,0x06,0x03,0x55,0x1D,0x0F,0x01,0x01,0xFF,0x04,0x04,0x03,0x02,0x01, -0x06,0x30,0x1D,0x06,0x03,0x55,0x1D,0x0E,0x04,0x16,0x04,0x14,0x7B,0x5B,0x45,0xCF, -0xAF,0xCE,0xCB,0x7A,0xFD,0x31,0x92,0x1A,0x6A,0xB6,0xF3,0x46,0xEB,0x57,0x48,0x50, -0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x03, -0x82,0x01,0x01,0x00,0x79,0x11,0xC0,0x4B,0xB3,0x91,0xB6,0xFC,0xF0,0xE9,0x67,0xD4, -0x0D,0x6E,0x45,0xBE,0x55,0xE8,0x93,0xD2,0xCE,0x03,0x3F,0xED,0xDA,0x25,0xB0,0x1D, -0x57,0xCB,0x1E,0x3A,0x76,0xA0,0x4C,0xEC,0x50,0x76,0xE8,0x64,0x72,0x0C,0xA4,0xA9, -0xF1,0xB8,0x8B,0xD6,0xD6,0x87,0x84,0xBB,0x32,0xE5,0x41,0x11,0xC0,0x77,0xD9,0xB3, -0x60,0x9D,0xEB,0x1B,0xD5,0xD1,0x6E,0x44,0x44,0xA9,0xA6,0x01,0xEC,0x55,0x62,0x1D, -0x77,0xB8,0x5C,0x8E,0x48,0x49,0x7C,0x9C,0x3B,0x57,0x11,0xAC,0xAD,0x73,0x37,0x8E, -0x2F,0x78,0x5C,0x90,0x68,0x47,0xD9,0x60,0x60,0xE6,0xFC,0x07,0x3D,0x22,0x20,0x17, -0xC4,0xF7,0x16,0xE9,0xC4,0xD8,0x72,0xF9,0xC8,0x73,0x7C,0xDF,0x16,0x2F,0x15,0xA9, -0x3E,0xFD,0x6A,0x27,0xB6,0xA1,0xEB,0x5A,0xBA,0x98,0x1F,0xD5,0xE3,0x4D,0x64,0x0A, -0x9D,0x13,0xC8,0x61,0xBA,0xF5,0x39,0x1C,0x87,0xBA,0xB8,0xBD,0x7B,0x22,0x7F,0xF6, -0xFE,0xAC,0x40,0x79,0xE5,0xAC,0x10,0x6F,0x3D,0x8F,0x1B,0x79,0x76,0x8B,0xC4,0x37, -0xB3,0x21,0x18,0x84,0xE5,0x36,0x00,0xEB,0x63,0x20,0x99,0xB9,0xE9,0xFE,0x33,0x04, -0xBB,0x41,0xC8,0xC1,0x02,0xF9,0x44,0x63,0x20,0x9E,0x81,0xCE,0x42,0xD3,0xD6,0x3F, -0x2C,0x76,0xD3,0x63,0x9C,0x59,0xDD,0x8F,0xA6,0xE1,0x0E,0xA0,0x2E,0x41,0xF7,0x2E, -0x95,0x47,0xCF,0xBC,0xFD,0x33,0xF3,0xF6,0x0B,0x61,0x7E,0x7E,0x91,0x2B,0x81,0x47, -0xC2,0x27,0x30,0xEE,0xA7,0x10,0x5D,0x37,0x8F,0x5C,0x39,0x2B,0xE4,0x04,0xF0,0x7B, -0x8D,0x56,0x8C,0x68, -}; - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - { -/* subject:/L=ValiCert Validation Network/O=ValiCert, Inc./OU=ValiCert Class 2 Policy Validation Authority/CN=http://www.valicert.com//emailAddress=info@valicert.com */ -/* issuer :/L=ValiCert Validation Network/O=ValiCert, Inc./OU=ValiCert Class 2 Policy Validation Authority/CN=http://www.valicert.com//emailAddress=info@valicert.com */ -unsigned char XXX_certificate[747]={ -0x30,0x82,0x02,0xE7,0x30,0x82,0x02,0x50,0x02,0x01,0x01,0x30,0x0D,0x06,0x09,0x2A, -0x86,0x48,0x86,0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x30,0x81,0xBB,0x31,0x24,0x30, -0x22,0x06,0x03,0x55,0x04,0x07,0x13,0x1B,0x56,0x61,0x6C,0x69,0x43,0x65,0x72,0x74, -0x20,0x56,0x61,0x6C,0x69,0x64,0x61,0x74,0x69,0x6F,0x6E,0x20,0x4E,0x65,0x74,0x77, -0x6F,0x72,0x6B,0x31,0x17,0x30,0x15,0x06,0x03,0x55,0x04,0x0A,0x13,0x0E,0x56,0x61, -0x6C,0x69,0x43,0x65,0x72,0x74,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x31,0x35,0x30,0x33, -0x06,0x03,0x55,0x04,0x0B,0x13,0x2C,0x56,0x61,0x6C,0x69,0x43,0x65,0x72,0x74,0x20, -0x43,0x6C,0x61,0x73,0x73,0x20,0x32,0x20,0x50,0x6F,0x6C,0x69,0x63,0x79,0x20,0x56, -0x61,0x6C,0x69,0x64,0x61,0x74,0x69,0x6F,0x6E,0x20,0x41,0x75,0x74,0x68,0x6F,0x72, -0x69,0x74,0x79,0x31,0x21,0x30,0x1F,0x06,0x03,0x55,0x04,0x03,0x13,0x18,0x68,0x74, -0x74,0x70,0x3A,0x2F,0x2F,0x77,0x77,0x77,0x2E,0x76,0x61,0x6C,0x69,0x63,0x65,0x72, -0x74,0x2E,0x63,0x6F,0x6D,0x2F,0x31,0x20,0x30,0x1E,0x06,0x09,0x2A,0x86,0x48,0x86, -0xF7,0x0D,0x01,0x09,0x01,0x16,0x11,0x69,0x6E,0x66,0x6F,0x40,0x76,0x61,0x6C,0x69, -0x63,0x65,0x72,0x74,0x2E,0x63,0x6F,0x6D,0x30,0x1E,0x17,0x0D,0x39,0x39,0x30,0x36, -0x32,0x36,0x30,0x30,0x31,0x39,0x35,0x34,0x5A,0x17,0x0D,0x31,0x39,0x30,0x36,0x32, -0x36,0x30,0x30,0x31,0x39,0x35,0x34,0x5A,0x30,0x81,0xBB,0x31,0x24,0x30,0x22,0x06, -0x03,0x55,0x04,0x07,0x13,0x1B,0x56,0x61,0x6C,0x69,0x43,0x65,0x72,0x74,0x20,0x56, -0x61,0x6C,0x69,0x64,0x61,0x74,0x69,0x6F,0x6E,0x20,0x4E,0x65,0x74,0x77,0x6F,0x72, -0x6B,0x31,0x17,0x30,0x15,0x06,0x03,0x55,0x04,0x0A,0x13,0x0E,0x56,0x61,0x6C,0x69, -0x43,0x65,0x72,0x74,0x2C,0x20,0x49,0x6E,0x63,0x2E,0x31,0x35,0x30,0x33,0x06,0x03, -0x55,0x04,0x0B,0x13,0x2C,0x56,0x61,0x6C,0x69,0x43,0x65,0x72,0x74,0x20,0x43,0x6C, -0x61,0x73,0x73,0x20,0x32,0x20,0x50,0x6F,0x6C,0x69,0x63,0x79,0x20,0x56,0x61,0x6C, -0x69,0x64,0x61,0x74,0x69,0x6F,0x6E,0x20,0x41,0x75,0x74,0x68,0x6F,0x72,0x69,0x74, -0x79,0x31,0x21,0x30,0x1F,0x06,0x03,0x55,0x04,0x03,0x13,0x18,0x68,0x74,0x74,0x70, -0x3A,0x2F,0x2F,0x77,0x77,0x77,0x2E,0x76,0x61,0x6C,0x69,0x63,0x65,0x72,0x74,0x2E, -0x63,0x6F,0x6D,0x2F,0x31,0x20,0x30,0x1E,0x06,0x09,0x2A,0x86,0x48,0x86,0xF7,0x0D, -0x01,0x09,0x01,0x16,0x11,0x69,0x6E,0x66,0x6F,0x40,0x76,0x61,0x6C,0x69,0x63,0x65, -0x72,0x74,0x2E,0x63,0x6F,0x6D,0x30,0x81,0x9F,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48, -0x86,0xF7,0x0D,0x01,0x01,0x01,0x05,0x00,0x03,0x81,0x8D,0x00,0x30,0x81,0x89,0x02, -0x81,0x81,0x00,0xCE,0x3A,0x71,0xCA,0xE5,0xAB,0xC8,0x59,0x92,0x55,0xD7,0xAB,0xD8, -0x74,0x0E,0xF9,0xEE,0xD9,0xF6,0x55,0x47,0x59,0x65,0x47,0x0E,0x05,0x55,0xDC,0xEB, -0x98,0x36,0x3C,0x5C,0x53,0x5D,0xD3,0x30,0xCF,0x38,0xEC,0xBD,0x41,0x89,0xED,0x25, -0x42,0x09,0x24,0x6B,0x0A,0x5E,0xB3,0x7C,0xDD,0x52,0x2D,0x4C,0xE6,0xD4,0xD6,0x7D, -0x5A,0x59,0xA9,0x65,0xD4,0x49,0x13,0x2D,0x24,0x4D,0x1C,0x50,0x6F,0xB5,0xC1,0x85, -0x54,0x3B,0xFE,0x71,0xE4,0xD3,0x5C,0x42,0xF9,0x80,0xE0,0x91,0x1A,0x0A,0x5B,0x39, -0x36,0x67,0xF3,0x3F,0x55,0x7C,0x1B,0x3F,0xB4,0x5F,0x64,0x73,0x34,0xE3,0xB4,0x12, -0xBF,0x87,0x64,0xF8,0xDA,0x12,0xFF,0x37,0x27,0xC1,0xB3,0x43,0xBB,0xEF,0x7B,0x6E, -0x2E,0x69,0xF7,0x02,0x03,0x01,0x00,0x01,0x30,0x0D,0x06,0x09,0x2A,0x86,0x48,0x86, -0xF7,0x0D,0x01,0x01,0x05,0x05,0x00,0x03,0x81,0x81,0x00,0x3B,0x7F,0x50,0x6F,0x6F, -0x50,0x94,0x99,0x49,0x62,0x38,0x38,0x1F,0x4B,0xF8,0xA5,0xC8,0x3E,0xA7,0x82,0x81, -0xF6,0x2B,0xC7,0xE8,0xC5,0xCE,0xE8,0x3A,0x10,0x82,0xCB,0x18,0x00,0x8E,0x4D,0xBD, -0xA8,0x58,0x7F,0xA1,0x79,0x00,0xB5,0xBB,0xE9,0x8D,0xAF,0x41,0xD9,0x0F,0x34,0xEE, -0x21,0x81,0x19,0xA0,0x32,0x49,0x28,0xF4,0xC4,0x8E,0x56,0xD5,0x52,0x33,0xFD,0x50, -0xD5,0x7E,0x99,0x6C,0x03,0xE4,0xC9,0x4C,0xFC,0xCB,0x6C,0xAB,0x66,0xB3,0x4A,0x21, -0x8C,0xE5,0xB5,0x0C,0x32,0x3E,0x10,0xB2,0xCC,0x6C,0xA1,0xDC,0x9A,0x98,0x4C,0x02, -0x5B,0xF3,0xCE,0xB9,0x9E,0xA5,0x72,0x0E,0x4A,0xB7,0x3F,0x3C,0xE6,0x16,0x68,0xF8, -0xBE,0xED,0x74,0x4C,0xBC,0x5B,0xD5,0x62,0x1F,0x43,0xDD, -}; - - [trustedCertificates addObject:[NSData dataWithBytes:XXX_certificate length:sizeof(XXX_certificate)]]; - } - return [NSArray arrayWithArray:trustedCertificates]; -} - -@end diff --git a/Pods/Braintree/Braintree/API/Offline Mode/BTOfflineClientBackend.h b/Pods/Braintree/Braintree/API/Offline Mode/BTOfflineClientBackend.h deleted file mode 100644 index 6a27832..0000000 --- a/Pods/Braintree/Braintree/API/Offline Mode/BTOfflineClientBackend.h +++ /dev/null @@ -1,11 +0,0 @@ -#import - -@class BTPaymentMethod; - -@interface BTOfflineClientBackend : NSObject - -- (instancetype)init; -- (NSArray *)allPaymentMethods; -- (void)addPaymentMethod:(BTPaymentMethod *)card; - -@end diff --git a/Pods/Braintree/Braintree/API/Offline Mode/BTOfflineClientBackend.m b/Pods/Braintree/Braintree/API/Offline Mode/BTOfflineClientBackend.m deleted file mode 100644 index 4e7ef66..0000000 --- a/Pods/Braintree/Braintree/API/Offline Mode/BTOfflineClientBackend.m +++ /dev/null @@ -1,29 +0,0 @@ -#import "BTOfflineClientBackend.h" - -@interface BTOfflineClientBackend () - -@property (nonatomic, strong) NSMutableArray *paymentMethods; - -@end - -@implementation BTOfflineClientBackend - -- (instancetype)init { - self = [super init]; - if (self) { - self.paymentMethods = [NSMutableArray array]; - } - return self; -} - -- (NSArray *)allPaymentMethods { - return self.paymentMethods; -} - -- (void)addPaymentMethod:(BTPaymentMethod *)card { - if (card) { - [self.paymentMethods insertObject:card atIndex:0]; - } -} - -@end diff --git a/Pods/Braintree/Braintree/API/Offline Mode/BTOfflineModeURLProtocol.h b/Pods/Braintree/Braintree/API/Offline Mode/BTOfflineModeURLProtocol.h deleted file mode 100644 index d5b5126..0000000 --- a/Pods/Braintree/Braintree/API/Offline Mode/BTOfflineModeURLProtocol.h +++ /dev/null @@ -1,14 +0,0 @@ -#import - -@class BTOfflineClientBackend; - -extern NSString *const BTOfflineModeClientApiBaseURL; - -@interface BTOfflineModeURLProtocol : NSURLProtocol - -+ (NSURL *)clientApiBaseURL; - -+ (void)setBackend:(BTOfflineClientBackend *)backend; -+ (BTOfflineClientBackend *)backend; - -@end diff --git a/Pods/Braintree/Braintree/API/Offline Mode/BTOfflineModeURLProtocol.m b/Pods/Braintree/Braintree/API/Offline Mode/BTOfflineModeURLProtocol.m deleted file mode 100644 index 65f9d44..0000000 --- a/Pods/Braintree/Braintree/API/Offline Mode/BTOfflineModeURLProtocol.m +++ /dev/null @@ -1,344 +0,0 @@ -#import "BTOfflineModeURLProtocol.h" -#import "BTOfflineClientBackend.h" -#import "BTMutableApplePayPaymentMethod.h" -#import "BTMutableCardPaymentMethod.h" -#import "BTMutablePayPalPaymentMethod.h" -#import - -NSString *const BTOfflineModeClientApiBaseURL = @"braintree-api-offline-http://client-api"; -NSString *const BTOfflineModeHTTPVersionString = @"HTTP/1.1"; - -void *backend_associated_object_key = &backend_associated_object_key; - -static BTOfflineClientBackend *backend; - -@implementation BTOfflineModeURLProtocol - -+ (NSURL *)clientApiBaseURL { - return [NSURL URLWithString:BTOfflineModeClientApiBaseURL]; -} - -+ (BOOL)canInitWithRequest:(NSURLRequest *)request { - NSURL *requestURL = request.URL; - - BOOL hasCorrectScheme = [requestURL.scheme isEqualToString:[[self clientApiBaseURL] scheme]]; - BOOL hasCorrectHost = [requestURL.host isEqualToString:[[self clientApiBaseURL] host]]; - - return hasCorrectScheme && hasCorrectHost; -} - -+ (NSURLRequest *)canonicalRequestForRequest:(NSURLRequest *)request { - return request; -} - -- (void)startLoading { - id client = self.client; - NSURLRequest *request = self.request; - - __block NSHTTPURLResponse *response; - __block NSData *responseData; - - if ([request.HTTPMethod isEqualToString:@"GET"] && [request.URL.path isEqualToString:@"/v1/payment_methods"]) { - response = [[NSHTTPURLResponse alloc] initWithURL:self.request.URL - statusCode:200 - HTTPVersion:BTOfflineModeHTTPVersionString - headerFields:@{@"Content-Type": @"application/json" }]; - - NSMutableArray *responseCards = [NSMutableArray array]; - for (BTPaymentMethod *paymentMethod in [[[self class] backend] allPaymentMethods]) { - [responseCards addObject:[self responseDictionaryForPaymentMethod:paymentMethod]]; - } - - responseData = ({ - NSError *error; - NSData *data = [NSJSONSerialization dataWithJSONObject:@{@"paymentMethods": responseCards} - options:0 - error:&error]; - NSAssert(error == nil, @"Error writing offline mode JSON response: %@", error); - data; - }); - } else if ([request.HTTPMethod isEqualToString:@"POST"] && [request.URL.path isEqualToString:@"/v1/payment_methods/credit_cards"]) { - - NSDictionary *requestObject = [self queryDictionaryFromRequest:request]; - - NSString *number = requestObject[@"credit_card"][@"number"]; - NSString *lastTwo = [number substringFromIndex:([number length] - 2)]; - - BTMutableCardPaymentMethod *card = [BTMutableCardPaymentMethod new]; - card.lastTwo = lastTwo; - card.typeString = [self cardTypeStringForNumber:number]; - - if (card) { - [[[self class] backend] addPaymentMethod:card]; - - response = [[NSHTTPURLResponse alloc] initWithURL:self.request.URL - statusCode:201 - HTTPVersion:BTOfflineModeHTTPVersionString - headerFields:@{@"Content-Type": @"application/json"}]; - responseData = ({ - NSError *error; - NSData *data = [NSJSONSerialization dataWithJSONObject:@{ @"creditCards": @[ [self responseDictionaryForPaymentMethod:card] ] } - options:0 - error:&error]; - NSAssert(error == nil, @"Error writing offline mode JSON response: %@", error); - data; - }); - } else { - response = [[NSHTTPURLResponse alloc] initWithURL:self.request.URL - statusCode:501 - HTTPVersion:BTOfflineModeHTTPVersionString - headerFields:@{}]; - responseData = nil; - } - } else if ([request.HTTPMethod isEqualToString:@"POST"] && [request.URL.path isEqualToString:@"/v1/payment_methods/apple_payment_tokens"]) { - NSDictionary *requestObject = [self queryDictionaryFromRequest:request]; - NSDictionary *payment = requestObject[@"applePaymentToken"]; - if (payment) { -#if BT_ENABLE_APPLE_PAY - BTMutableApplePayPaymentMethod *apple = [[BTMutableApplePayPaymentMethod alloc] init]; - [[[self class] backend] addPaymentMethod:apple]; - - response = [[NSHTTPURLResponse alloc] initWithURL:self.request.URL - statusCode:201 - HTTPVersion:BTOfflineModeHTTPVersionString - headerFields:@{@"Content-Type": @"application/json"}]; - responseData = ({ - NSError *error; - NSData *data = [NSJSONSerialization dataWithJSONObject:@{ @"applePayCards": @[ [self responseDictionaryForApplePayPayment] ] } - options:0 - error:&error]; - NSAssert(error == nil, @"Error writing offline mode JSON response: %@", error); - data; - }); -#else - response = [[NSHTTPURLResponse alloc] initWithURL:self.request.URL - statusCode:501 - HTTPVersion:BTOfflineModeHTTPVersionString - headerFields:@{}]; - responseData = nil; -#endif - } else { - response = [[NSHTTPURLResponse alloc] initWithURL:self.request.URL - statusCode:501 - HTTPVersion:BTOfflineModeHTTPVersionString - headerFields:@{}]; - responseData = nil; - } - - } else if ([request.HTTPMethod isEqualToString:@"POST"] && [request.URL.path isEqualToString:@"/v1/payment_methods/paypal_accounts"]) { - BTMutablePayPalPaymentMethod *payPalPaymentMethod = [BTMutablePayPalPaymentMethod new]; - payPalPaymentMethod.email = @"fake.paypal.customer@example.com"; - - if (payPalPaymentMethod) { - [[[self class] backend] addPaymentMethod:payPalPaymentMethod]; - response = [[NSHTTPURLResponse alloc] initWithURL:self.request.URL - statusCode:201 - HTTPVersion:BTOfflineModeHTTPVersionString - headerFields:@{@"Content-Type": @"application/json"}]; - - responseData = ({ - NSError *error; - NSData *data = [NSJSONSerialization dataWithJSONObject:@{ @"paypalAccounts": @[ [self responseDictionaryForPaymentMethod:payPalPaymentMethod] ] } - options:0 - error:&error]; - NSAssert(error == nil, @"Error writing offline mode JSON response: %@", error); - data; - }); - } else { - response = [[NSHTTPURLResponse alloc] initWithURL:self.request.URL - statusCode:501 - HTTPVersion:BTOfflineModeHTTPVersionString - headerFields:@{}]; - responseData = nil; - } - } else if ([request.HTTPMethod isEqualToString:@"POST"] && [request.URL.path isEqualToString:@"/v1/analytics"]) { - response = [[NSHTTPURLResponse alloc] initWithURL:self.request.URL - statusCode:201 - HTTPVersion:BTOfflineModeHTTPVersionString - headerFields:@{ @"Content-Type": @"application/json" }]; - - responseData = ({ - NSError *error; - NSData *data = [NSJSONSerialization dataWithJSONObject:@{ @"message": @"created", @"amount": @2 } - options:0 - error:&error]; - NSAssert(error == nil, @"Error writing offline mode JSON response: %@", error); - data; - }); - } else if ([request.HTTPMethod isEqualToString:@"GET"] && [request.URL.path isEqualToString:@"/configuration"]) { - response = [[NSHTTPURLResponse alloc] initWithURL:self.request.URL - statusCode:200 - HTTPVersion:BTOfflineModeHTTPVersionString - headerFields:@{@"Content-Type": @"application/json" }]; - Class TestConfigurationFactoryClass = [NSClassFromString(@"BTTestClientTokenFactory") class]; - NSDictionary *testConfiguration = TestConfigurationFactoryClass ? (NSDictionary *)[TestConfigurationFactoryClass performSelector:@selector(configuration)] : - @{ - @"applePay": @{ @"status": @"mock", - @"countryCode": @"US", - @"currencyCode": @"USD", - @"supportedNetworks": @[ @"visa", @"mastercard", @"amex" ], - @"merchantIdentifier": @"offline-mode-apple-merchant-identifier" } - }; - responseData = ({ - NSError *error; - NSData *data = [NSJSONSerialization dataWithJSONObject:testConfiguration - options:0 - error:&error]; - NSAssert(error == nil, @"Error writing offline mode JSON response: %@", error); - data; - }); - } else { - response = [[NSHTTPURLResponse alloc] initWithURL:self.request.URL - statusCode:501 - HTTPVersion:BTOfflineModeHTTPVersionString - headerFields:@{}]; - responseData = nil; - } - - [client URLProtocol:self didReceiveResponse:response cacheStoragePolicy:NSURLCacheStorageNotAllowed]; - - if (responseData) { - [client URLProtocol:self didLoadData:responseData]; - } - - [client URLProtocolDidFinishLoading:self]; -} - -- (void)stopLoading { -} - -#pragma mark Request Parsing - -- (NSDictionary *)queryDictionaryFromRequest:(NSURLRequest *)request { - - NSData *bodyData; - if (request.HTTPBodyStream) { - NSInputStream *inputStream = request.HTTPBodyStream; - [inputStream open]; - NSMutableData *mutableBodyData = [NSMutableData data]; - - while ([inputStream hasBytesAvailable]) { - uint8_t buffer[128]; - NSUInteger bytesRead = [inputStream read:buffer maxLength:128]; - [mutableBodyData appendBytes:buffer length:bytesRead]; - } - [inputStream close]; - bodyData = [mutableBodyData copy]; - } else { - bodyData = request.HTTPBody; - } - NSString *contentType = request.allHTTPHeaderFields[@"Content-Type"]; - if ([contentType rangeOfString:@"application/json"].location != NSNotFound) { - NSDictionary *result = [NSJSONSerialization JSONObjectWithData:bodyData options:kNilOptions error:nil]; - return result; - } else { - NSString *queryString = [[NSString alloc] initWithData:bodyData encoding:NSUTF8StringEncoding]; - NSMutableDictionary *result = [NSMutableDictionary dictionary]; - NSArray *parameters = [queryString componentsSeparatedByString:@"&"]; - for (NSString *parameter in parameters) { - NSArray *parts = [parameter componentsSeparatedByString:@"="]; - NSString *key = [[parts objectAtIndex:0] stringByRemovingPercentEncoding]; - if ([parts count] > 1) { - id value = [[parts objectAtIndex:1] stringByRemovingPercentEncoding]; - [result setObject:value forKey:key]; - } - } - return result; - } -} - -#pragma mark Response Generation - -- (NSDictionary *)responseDictionaryForPaymentMethod:(BTPaymentMethod *)paymentMethod { - if ([paymentMethod isKindOfClass:[BTCardPaymentMethod class]]) { - return [self responseDictionaryForCard:(BTCardPaymentMethod *)paymentMethod]; - } else if ([paymentMethod isKindOfClass:[BTPayPalPaymentMethod class]]) { - return [self responseDictionaryForPayPalPaymentMethod]; - } else { - return nil; - } -} - -- (NSDictionary *)responseDictionaryForApplePayPayment { - return @{ - @"nonce": [self generateNonce], - @"type": @"ApplePayCard" - }; -} - -- (NSDictionary *)responseDictionaryForCard:(BTCardPaymentMethod *)card { - return @{ - @"nonce": [self generateNonce], - @"details": @{ - @"lastTwo": card.lastTwo, - @"cardType": card.typeString, - }, - @"isLocked": @0, - @"securityQuestions": @[@"cvv"], - @"type": @"CreditCard" - }; -} - -- (NSDictionary *)responseDictionaryForPayPalPaymentMethod { - return @{ - @"description": @"PayPal", - @"nonce": [self generateNonce], - @"isLocked": @0, - @"details": @{ @"email": @"email@example.com" }, - @"type": @"PayPalAccount" - }; -} - -- (NSString *)generateNonce { - static unsigned int initialNonceValue = 0; - initialNonceValue++; - return [NSString stringWithFormat:@"00000000-0000-0000-0000-%012x", initialNonceValue]; -} - -#pragma mark Offline Card Data - -+ (NSDictionary *)cardNamesAndRegexes { - NSMutableDictionary *cardNamesAndRegex = [NSMutableDictionary dictionary]; - - NSDictionary *cardNamesAndRegexPatterns = @{ - @"Visa": @"^4[0-9]", - @"MasterCard": @"^5[1-5]", - @"American Express": @"^3[47]", - @"Diners Club": @"^3(?:0[0-5]|[68][0-9])", - @"Discover": @"^6(?:011|5[0-9]{2})", - @"JCB": @"^(?:2131|1800|35)" }; - - for (NSString *cardType in [cardNamesAndRegexPatterns allKeys]) { - NSError *error; - NSRegularExpression *regex = [[NSRegularExpression alloc] initWithPattern:cardNamesAndRegexPatterns[cardType] options:0 error:&error]; - NSAssert(error == nil, @"Could not compile card type detection regex for offline client: %@", error); - cardNamesAndRegex[cardType] = regex; - } - - return cardNamesAndRegex; -} - -- (NSString *)cardTypeStringForNumber:(NSString *)number { - NSDictionary *cardNamesAndRegex = [[self class] cardNamesAndRegexes]; - - for (NSString *cardType in [cardNamesAndRegex allKeys]) { - NSRegularExpression *regex = cardNamesAndRegex[cardType]; - if ([regex numberOfMatchesInString:number options:0 range:NSMakeRange(0, [number length])] > 0) { - return cardType; - } - } - - return nil; -} - -#pragma mark - Offline Client Backend - -+ (BTOfflineClientBackend *)backend { - return objc_getAssociatedObject(self, backend_associated_object_key); -} - -+ (void)setBackend:(BTOfflineClientBackend *)backend { - objc_setAssociatedObject(self, backend_associated_object_key, backend, OBJC_ASSOCIATION_RETAIN_NONATOMIC); -} - -@end diff --git a/Pods/Braintree/Braintree/API/Utility/BTAnalyticsMetadata.h b/Pods/Braintree/Braintree/API/Utility/BTAnalyticsMetadata.h deleted file mode 100644 index 11de62e..0000000 --- a/Pods/Braintree/Braintree/API/Utility/BTAnalyticsMetadata.h +++ /dev/null @@ -1,7 +0,0 @@ -#import - -@interface BTAnalyticsMetadata : NSObject - -+ (NSDictionary *)metadata; - -@end diff --git a/Pods/Braintree/Braintree/API/Utility/BTAnalyticsMetadata.m b/Pods/Braintree/Braintree/API/Utility/BTAnalyticsMetadata.m deleted file mode 100644 index 09fb631..0000000 --- a/Pods/Braintree/Braintree/API/Utility/BTAnalyticsMetadata.m +++ /dev/null @@ -1,219 +0,0 @@ -#import "BTAnalyticsMetadata.h" -#import "BTClient.h" - -#import "BTKeychain.h" -@import CoreLocation; -#import -#import - -#import - -#ifdef __IPHONE_8_0 -#define kBTCLAuthorizationStatusAuthorized kCLAuthorizationStatusAuthorizedAlways -#else -#define kBTCLAuthorizationStatusAuthorized kCLAuthorizationStatusAuthorized -#endif - -@implementation BTAnalyticsMetadata - -+ (NSDictionary *)metadata { - BTAnalyticsMetadata *m = [[BTAnalyticsMetadata alloc] init]; - - NSMutableDictionary *data = [NSMutableDictionary dictionaryWithCapacity:16]; - - [self setObject:[m platform] forKey:@"platform" inDictionary:data]; - [self setObject:[m platformVersion] forKey:@"platformVersion" inDictionary:data]; - [self setObject:[m sdkVersion] forKey:@"sdkVersion" inDictionary:data]; - [self setObject:[m merchantAppId] forKey:@"merchantAppId" inDictionary:data]; - [self setObject:[m merchantAppName] forKey:@"merchantAppName" inDictionary:data]; - [self setObject:[m merchantAppVersion] forKey:@"merchantAppVersion" inDictionary:data]; -#ifndef __IPHONE_8_0 - [self setObject:@([m deviceRooted]) forKey:@"deviceRooted" inDictionary:data]; -#endif - [self setObject:[m deviceManufacturer] forKey:@"deviceManufacturer" inDictionary:data]; - [self setObject:[m deviceModel] forKey:@"deviceModel" inDictionary:data]; - if ([CLLocationManager locationServicesEnabled] && [CLLocationManager authorizationStatus] == kBTCLAuthorizationStatusAuthorized) { - [self setObject:@([m deviceLocationLatitude]) forKey:@"deviceLocationLatitude" inDictionary:data]; - [self setObject:@([m deviceLocationLongitude]) forKey:@"deviceLocationLongitude" inDictionary:data]; - } - [self setObject:[m iosDeviceName] forKey:@"iosDeviceName" inDictionary:data]; - [self setObject:[m iosSystemName] forKey:@"iosSystemName" inDictionary:data]; - [self setObject:[m iosBaseSDK] forKey:@"iosBaseSDK" inDictionary:data]; - [self setObject:[m iosDeploymentTarget] forKey:@"iosDeploymentTarget" inDictionary:data]; - [self setObject:[m iosIdentifierForVendor] forKey:@"iosIdentifierForVendor" inDictionary:data]; - [self setObject:@([m iosIsCocoapods]) forKey:@"iosIsCocoapods" inDictionary:data]; - [self setObject:[m deviceAppGeneratedPersistentUuid] forKey:@"deviceAppGeneratedPersistentUuid" inDictionary:data]; - [self setObject:@([m isSimulator]) forKey:@"isSimulator" inDictionary:data]; - [self setObject:[m deviceScreenOrientation] forKey:@"deviceScreenOrientation" inDictionary:data]; - [self setObject:[m userInterfaceOrientation] forKey:@"userInterfaceOrientation" inDictionary:data]; - - return [NSDictionary dictionaryWithDictionary:data]; -} - -+ (void)setObject:(id)object forKey:(id)aKey inDictionary:(NSMutableDictionary *)dictionary { - if (object) { - [dictionary setObject:object forKey:aKey]; - } -} - -#pragma mark Metadata Factors - -- (NSString *)platform { - return @"iOS"; -} - -- (NSString *)platformVersion { - return [[UIDevice currentDevice] systemVersion]; -} - -- (NSString *)sdkVersion { - return [BTClient libraryVersion]; -} - -- (NSString *)merchantAppId { - return [[[NSBundle mainBundle] infoDictionary] objectForKey:(__bridge NSString *)kCFBundleIdentifierKey]; -} - -- (NSString *)merchantAppVersion { - return [[[NSBundle mainBundle] infoDictionary] objectForKey:(__bridge NSString *)kCFBundleVersionKey]; -} - -- (NSString *)merchantAppName { - return [[[NSBundle mainBundle] infoDictionary] objectForKey:(__bridge NSString *)kCFBundleNameKey]; -} - -- (BOOL)deviceRooted { -#if TARGET_IPHONE_SIMULATOR || __IPHONE_8_0 - return NO; -#else - BOOL isJailbroken = system(NULL) == 1; - - return isJailbroken; -#endif -} - -- (NSString *)deviceManufacturer { - return @"Apple"; -} - -- (NSString *)deviceModel { - struct utsname systemInfo; - - uname(&systemInfo); - - NSString* code = [NSString stringWithCString:systemInfo.machine - encoding:NSUTF8StringEncoding]; - - - return code; -} - -- (CLLocationDegrees)deviceLocationLatitude { - return [[[[CLLocationManager alloc] init] location] coordinate].latitude; -} - -- (CLLocationDegrees)deviceLocationLongitude { - return [[[[CLLocationManager alloc] init] location] coordinate].longitude; -} - -- (NSString *)iosIdentifierForVendor { - return [[[UIDevice currentDevice] identifierForVendor] UUIDString]; -} - -- (NSString *)iosDeploymentTarget { - return [@(__IPHONE_OS_VERSION_MIN_REQUIRED) stringValue]; -} - -- (NSString *)iosBaseSDK { - return [@(__IPHONE_OS_VERSION_MAX_ALLOWED) stringValue]; -} - -- (NSString *)iosDeviceName { - return [[UIDevice currentDevice] name]; -} - -- (NSString *)iosSystemName { - return [[UIDevice currentDevice] systemName]; -} - -- (BOOL)iosIsCocoapods { -#ifdef COCOAPODS - return YES; -#else - return NO; -#endif -} - -- (NSString *)deviceAppGeneratedPersistentUuid { - @try { - static NSString *deviceAppGeneratedPersistentUuidKeychainKey = @"deviceAppGeneratedPersistentUuid"; - NSString *savedIdentifier = [BTKeychain stringForKey:deviceAppGeneratedPersistentUuidKeychainKey]; - if (savedIdentifier.length == 0) { - savedIdentifier = [[NSUUID UUID] UUIDString]; - BOOL setDidSucceed = [BTKeychain setString:savedIdentifier - forKey:deviceAppGeneratedPersistentUuidKeychainKey]; - if (!setDidSucceed) { - return nil; - } - } - return savedIdentifier; - } @catch (NSException *exception) { - return nil; - } -} - -- (BOOL)isSimulator { - return TARGET_IPHONE_SIMULATOR; -} - -- (NSString *)userInterfaceOrientation { -// UIViewController interface orientation methods are deprecated as of iOS 8 -#ifndef __IPHONE_8_0 - if ([UIApplication class] == nil) { - return nil; - } - - UIInterfaceOrientation deviceOrientation = [[[[UIApplication sharedApplication] keyWindow] rootViewController] interfaceOrientation]; - - switch (deviceOrientation) { - case UIInterfaceOrientationPortrait: - return @"Portrait"; - case UIInterfaceOrientationPortraitUpsideDown: - return @"PortraitUpsideDown"; - case UIInterfaceOrientationLandscapeLeft: - return @"LandscapeLeft"; - case UIInterfaceOrientationLandscapeRight: - return @"LandscapeRight"; - default: - return @"Unknown"; - } -#else - return nil; -#endif -} - -- (NSString *)deviceScreenOrientation { - if ([UIDevice class] == nil) { - return nil; - } - - switch ([[UIDevice currentDevice] orientation]) { - case UIDeviceOrientationFaceUp: - return @"FaceUp"; - case UIDeviceOrientationFaceDown: - return @"FaceDown"; - case UIDeviceOrientationPortrait: - return @"Portrait"; - case UIDeviceOrientationPortraitUpsideDown: - return @"PortraitUpsideDown"; - case UIDeviceOrientationLandscapeLeft: - return @"LandscapeLeft"; - case UIDeviceOrientationLandscapeRight: - return @"LandscapeRight"; - default: - return @"Unknown"; - } -} - - -@end diff --git a/Pods/Braintree/Braintree/API/Utility/BTErrors.m b/Pods/Braintree/Braintree/API/Utility/BTErrors.m deleted file mode 100644 index 33e3b9b..0000000 --- a/Pods/Braintree/Braintree/API/Utility/BTErrors.m +++ /dev/null @@ -1,11 +0,0 @@ -#import "BTErrors.h" - -#pragma mark Braintree Error Domains - -NSString *const BTBraintreeAPIErrorDomain = @"BTBraintreeAPIErrorDomain"; - -#pragma mark Error userInfo Keys - -NSString *const BTCustomerInputBraintreeValidationErrorsKey = @"BTCustomerInputBraintreeValidationErrorsKey"; - -NSString *BTThreeDSecureInfoKey = @"BTThreeDSecureInfoKey"; diff --git a/Pods/Braintree/Braintree/API/Utility/BTKeychain.h b/Pods/Braintree/Braintree/API/Utility/BTKeychain.h deleted file mode 100644 index 99b7e12..0000000 --- a/Pods/Braintree/Braintree/API/Utility/BTKeychain.h +++ /dev/null @@ -1,12 +0,0 @@ -#import - -@interface BTKeychain : NSObject - -+ (BOOL)setString:(NSString *)string forKey:(NSString *)key; -+ (NSString *)stringForKey:(NSString *)key; - -+ (BOOL)setData:(NSData *)data forKey:(NSString *)key; -+ (NSData *)dataForKey:(NSString *)key; - - -@end diff --git a/Pods/Braintree/Braintree/API/Utility/BTKeychain.m b/Pods/Braintree/Braintree/API/Utility/BTKeychain.m deleted file mode 100644 index fb631af..0000000 --- a/Pods/Braintree/Braintree/API/Utility/BTKeychain.m +++ /dev/null @@ -1,98 +0,0 @@ -#import "BTKeychain.h" -@import Security; - -@implementation BTKeychain - -+ (BOOL)setString:(NSString *)string forKey:(NSString *)key { - NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; - return [self setData:data forKey:key]; -} - -+ (NSString *)stringForKey:(NSString *)key { - NSData *data = [self dataForKey:key]; - return data == nil ? nil : [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; -} - -+ (NSString *)keychainKeyForKey:(NSString *)key { - return [NSString stringWithFormat:@"com.braintreepayments.Braintree-API.%@", key]; -} - -+ (BOOL)setData:(NSData *)data forKey:(NSString *)key { - if(!key) { - return NO; - } - - BOOL success = YES; - - key = [self keychainKeyForKey:key]; - - // First check if it already exists, by creating a search dictionary and requesting that - // nothing be returned, and performing the search anyway. - NSMutableDictionary *existsQueryDictionary = [NSMutableDictionary dictionary]; - - [existsQueryDictionary setObject:(__bridge id)kSecClassGenericPassword forKey:(__bridge id)kSecClass]; - - // Add the keys to the search dict - [existsQueryDictionary setObject:@"Service" forKey:(__bridge id)kSecAttrService]; - [existsQueryDictionary setObject:key forKey:(__bridge id)kSecAttrAccount]; - - OSStatus res = SecItemCopyMatching((__bridge CFDictionaryRef)existsQueryDictionary, NULL); - if(res == errSecItemNotFound) { - if(data) { - NSMutableDictionary *addDict = existsQueryDictionary; - [addDict setObject:data forKey:(__bridge id)kSecValueData]; - [addDict setObject:(__bridge id)kSecAttrAccessibleWhenUnlockedThisDeviceOnly forKey:(__bridge id)kSecAttrAccessible]; - - res = SecItemAdd((__bridge CFDictionaryRef)addDict, NULL); - if (res != errSecSuccess) { - success = NO; - } - } - } - else if(res == errSecSuccess) { - if(data) { - // Modify an existing one - // Actually pull it now of the keychain at this point. - NSDictionary *attributeDict = [NSDictionary dictionaryWithObject:data forKey:(__bridge id)kSecValueData]; - - res = SecItemUpdate((__bridge CFDictionaryRef)existsQueryDictionary, (__bridge CFDictionaryRef)attributeDict); - if (res != errSecSuccess) { - success = NO; - } - } else { - SecItemDelete((__bridge CFDictionaryRef)existsQueryDictionary); - } - } - else { - success = NO; - } - - return success; -} - -+ (NSData *)dataForKey:(NSString *)key { - - key = [self keychainKeyForKey:key]; - - NSMutableDictionary *existsQueryDictionary = [NSMutableDictionary dictionary]; - - [existsQueryDictionary setObject:(__bridge id)kSecClassGenericPassword forKey:(__bridge id)kSecClass]; - - // Add the keys to the search dict - [existsQueryDictionary setObject:@"Service" forKey:(__bridge id)kSecAttrService]; - [existsQueryDictionary setObject:key forKey:(__bridge id)kSecAttrAccount]; - - // We want the data back! - [existsQueryDictionary setObject:(id)kCFBooleanTrue forKey:(__bridge id)kSecReturnData]; - - CFTypeRef cfData = NULL; - OSStatus res = SecItemCopyMatching((__bridge CFDictionaryRef)existsQueryDictionary, &cfData); - NSData *data = (id)CFBridgingRelease(cfData); - if(res == errSecSuccess) { - return data; - } - - return nil; -} - -@end diff --git a/Pods/Braintree/Braintree/API/Utility/BTLogger.m b/Pods/Braintree/Braintree/API/Utility/BTLogger.m deleted file mode 100644 index 83bbda1..0000000 --- a/Pods/Braintree/Braintree/API/Utility/BTLogger.m +++ /dev/null @@ -1,85 +0,0 @@ -#import - -#import "BTLogger_Internal.h" - -#define variadicLogLevel(level, format) \ - va_list args; \ - va_start(args, format); \ - [self logLevel:level format:format arguments:args]; \ - va_end(args); - - -@implementation BTLogger - -+ (instancetype)sharedLogger { - static BTLogger *instance; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - instance = [self new]; - }); - - return instance; -} - -- (instancetype)init { - self = [super init]; - if (self) { - _level = BTLogLevelInfo; - } - return self; -} - -- (void)log:(NSString *)format, ... { - variadicLogLevel(BTLogLevelInfo, format) -} - -- (void)critical:(NSString *)format, ... { - variadicLogLevel(BTLogLevelCritical, format) -} - -- (void)error:(NSString *)format, ... { - variadicLogLevel(BTLogLevelError, format) -} - -- (void)warning:(NSString *)format, ... { - variadicLogLevel(BTLogLevelWarning, format) -} - -- (void)info:(NSString *)format, ... { - variadicLogLevel(BTLogLevelInfo, format) -} - -- (void)debug:(NSString *)format, ... { - variadicLogLevel(BTLogLevelDebug, format) -} - -- (void)logLevel:(BTLogLevel)level format:(NSString *)format arguments:(va_list)arguments { - if (level <= self.level) { - NSString *message = [[NSString alloc] initWithFormat:format arguments:arguments]; - if (self.logBlock) { - self.logBlock(level, message); - } else { - NSString *levelString = [[self class] levelString:level]; - NSLog(@"[BraintreeSDK] %@ %@", [levelString uppercaseString], message); - } - } -} - -+ (NSString *)levelString:(BTLogLevel)level { - switch (level) { - case BTLogLevelCritical: - return @"Critical"; - case BTLogLevelError: - return @"Error"; - case BTLogLevelWarning: - return @"Warning"; - case BTLogLevelInfo: - return @"Info"; - case BTLogLevelDebug: - return @"Debug"; - default: - return nil; - } -} - -@end diff --git a/Pods/Braintree/Braintree/API/Utility/BTLogger_Internal.h b/Pods/Braintree/Braintree/API/Utility/BTLogger_Internal.h deleted file mode 100644 index 0ba8d92..0000000 --- a/Pods/Braintree/Braintree/API/Utility/BTLogger_Internal.h +++ /dev/null @@ -1,17 +0,0 @@ -#import - -#import "BTLogger.h" - -@interface BTLogger () - -- (void)log:(NSString *)format, ...; -- (void)critical:(NSString *)format, ...; -- (void)error:(NSString *)format, ...; -- (void)warning:(NSString *)format, ...; -- (void)info:(NSString *)format, ...; -- (void)debug:(NSString *)format, ...; - -/// Custom block for handling log messages -@property (nonatomic, copy) void (^logBlock)(BTLogLevel level, NSString *message); - -@end diff --git a/Pods/Braintree/Braintree/Braintree.h b/Pods/Braintree/Braintree/Braintree.h deleted file mode 100644 index b807d90..0000000 --- a/Pods/Braintree/Braintree/Braintree.h +++ /dev/null @@ -1,202 +0,0 @@ -#import -#import - -#import -#import -#import -#import - -#import -#import -#import - -@class Braintree; -@class PKPayment; - -NS_ASSUME_NONNULL_BEGIN - -typedef void (^BraintreeCompletionBlock)(Braintree *__nullable braintree, NSError *__nullable error); - -/// The `Braintree` class is the front door to the Braintree SDK for iOS. It contains -/// everything you need to easily start accepting payments in your mobile app. -/// -/// You can use Drop-In (our own provided UI components), or Custom (your own UI with a -/// Braintree backend). -/// -/// With Drop-In, you can rely us to provide a fast, easy-to-use UI, which your users will -/// interact with in order to provide payment details. -/// -/// With Custom, you have control of your UI, but errors will be handled on the -/// server-side via multiple server-side calls to Braintree. Like Drop-In, the end result is -/// a nonce, which you may transmit to your servers. -/// -/// Regardless of how you integrate, the result, from the programmer's perspective, is a `BTPaymentMethod` -/// that has a `nonce` property. Send this nonce to your server to perform a variety of payment -/// operations, such as creating a sale. -/// -/// For advanced integrations, you can use BTClient, BTPaymentButton, BTDropInViewController, etc. directly. -@interface Braintree : NSObject - -/// Returns an instance of `Braintree`, the public interface of Braintree-iOS. -/// -/// @param clientToken value that is generated on your server using a Braintree server-side -/// client library that contains all necessary configuration to setup the client SDKs. It also -/// authenticates the application to communicate directly to Braintree. -/// -/// @see BTClient+Offline.h for offline client tokens that make it easy to test out the SDK without a -/// server-side integration. -/// -/// @note You should generate a new client token before each checkout to ensure it has not expired. -/// -/// @return An instance of the Braintree Library to perform payment operations. -+ (nullable Braintree *)braintreeWithClientToken:(NSString *)clientToken; - -#pragma mark UI - -/// Creates and returns a payment flow for accepting credit card, PayPal and Venmo based payments. -/// -/// Present this view controller in your app to prompt your user for payment info, and you will -/// receive a payment method nonce. -/// -/// @param delegate Delegate that is notified of success with a payment method containing a payment method nonce or an error. -/// -/// @return A Drop-In view controller to be presented in your app's payment flow. -- (BTDropInViewController *)dropInViewControllerWithDelegate:(id)delegate; - -/// Creates and returns a payment button for accepting PayPal and Venmo based payments. -/// -/// Payment method creation may take place via app switch or via a UI flow in a view controller. -/// -/// If available, this button will initiate One Touch Payments for PayPal or Venmo. -/// To enable One Touch, you should use setReturnURLSchemes: and handleOpenURL:sourceApplication: (see below). -/// -/// @note The payment button touch handlers may initiate view controllers and/or app switching. For fine-grained control, you may use BTPaymentProvider directly. -/// -/// @param delegate a delegate that receives lifecycle updates about the payment method authorization -/// -/// @return A button you can add to your checkout flow. -- (BTPaymentButton *)paymentButtonWithDelegate:(id)delegate; - -/// Creates and returns a payment button for accepting PayPal and/or Venmo based payments. -/// -/// This method has identical behavior to paymentButtonWithDelegate: but allows you to specify the -/// payment provider types and their display order. -/// -/// @param delegate a delegate that receives lifecycle updates about the payment method authorization -/// @param types payment method types to enable from BTPaymentProviderType. If nil, the button may expose any available payment authorization types. -/// -/// @return A button you can add to your checkout flow. -- (BTPaymentButton *)paymentButtonWithDelegate:(id)delegate paymentProviderTypes:(nullable NSOrderedSet *)types; - - -#pragma mark Custom - -/// Creates and returns a payment method nonce for the given credit card details. -/// -/// @note The credit card details provided are neither validated nor added to the Vault until you -/// perform a server-side operation with the nonce, such as `Transaction.create`, is performed. -/// -/// @see BTClientCardRequest -/// -/// @param cardDetails a tokenization request object containing the raw card details -/// @param completionBlock Completion block that is called exactly once asynchronously, providing either a nonce upon success or an error upon failure. -- (void)tokenizeCard:(BTClientCardTokenizationRequest *)cardDetails - completion:(void (^)(NSString * __nullable nonce, NSError * __nullable error))completionBlock; - -/// Creates and returns a payment method nonce for the given Apple Pay payment details -/// -/// @note You should use this method if you have implemented Apple Pay directly with PassKit (PKPaymentRequest, -/// PKPaymentAuthorizationViewController, etc.). Alternatively, you can use paymentProviderWithDelegate:. -/// -/// @param applePayPayment a PKPayment you receive from a PKPaymentAuthorizationViewControllerDelegate -/// @param completionBlock Completion block that is called exactly once asynchronously, providing either a nonce upon success or an error upon failure. -- (void)tokenizeApplePayPayment:(PKPayment *)applePayPayment - completion:(void (^)(NSString * __nullable nonce, NSError * __nullable error))completionBlock; - -/// Initializes a provider that can initiate various payment method creation flows. -/// -/// You should send `createPaymentMethod:` to the returned BTPaymentProvider after some user interaction takes place (for example, when the user taps your "Pay with PayPal" button.) -/// -/// In order to receive delegate methods, the caller is responsible for retaining this Braintree -/// instance or the returned BTPaymentProvider object! -/// -/// Payment method authorization may take place via app switch or via a UI flow in a view controller. -/// -/// If available, this method may initiate One Touch Payments for PayPal or Venmo. -/// To enable One Touch, you should use setReturnURLSchemes: and handleOpenURL:sourceApplication: (see below). -/// -/// @note If you do not wish to implement your own UI, see also dropInViewControllerWithDelegate: and paymentButtonWithDelegate:paymentProviderTypes:. -/// -/// @note The payment button touch handlers may initiate view controllers and/or app switching. For fine-grained control, you may use BTPaymentProvider directly. -/// -/// @see BTDropInViewController -/// @see BTPaymentButton -/// @param delegate a delegate that receives lifecycle updates about the payment method authorization -- (BTPaymentProvider *)paymentProviderWithDelegate:(id)delegate; - -#pragma mark - One Touch Payments - -/// The custom URL scheme that the authenticating app should use to return users to your app via `openURL:` (app switch). -/// -/// When `nil` or when invalid, One Touch app switch will be disabled -/// -/// @note This must match the entry in your app's Info.plist, and must be prefixed -/// with your Bundle ID, e.g. com.yourcompany.Your-App.payment -+ (void)setReturnURLScheme:(NSString *)scheme; - -/// Handle app switch URL requests for the Braintree SDK -/// -/// @param url The URL received by the application delegate `openURL` method -/// @param sourceApplication The source application received by the application delegate `openURL` method -/// -/// @return Whether Braintree was able to handle the URL and source application -+ (BOOL)handleOpenURL:(NSURL *)url sourceApplication:(nullable NSString *)sourceApplication; - - -#pragma mark Advanced Integrations - -/// A pre-configured BTClient based on your client token. -/// -/// You can use this client to initialize various SDK objects, such as BTDropInViewController, BTPaymentButton, BTPaymentProvider, etc. -@property (nonatomic, readonly) BTClient *client; - - -#pragma mark - Library Metadata - -/// Returns the current library version. -/// -/// @return A string representation of this library's current semver.org version (if integrating with CocoaPods). -+ (NSString *)libraryVersion; - -@end - -@interface Braintree (Deprecated) - -/// Creates and returns a nonce for the given credit card details. -/// -/// This signature has been deprecated in favor of the more flexible `tokenizeCard:completion:`. -/// -/// @note The credit card details provided are not validated until a -/// Braintree operation, such as `Transaction.Create` is performed on -/// your server. -/// -/// @param cardNumber Card number to tokenize -/// @param expirationMonth Card's expiration month -/// @param expirationYear Card's expiration year -/// @param completionBlock Completion block that is called exactly once asynchronously, providing either a nonce upon success or an error upon failure. -- (void)tokenizeCardWithNumber:(NSString *)cardNumber - expirationMonth:(NSString *)expirationMonth - expirationYear:(NSString *)expirationYear - completion:(void (^)(NSString * __nullable nonce, NSError * __nullable error))completionBlock DEPRECATED_MSG_ATTRIBUTE("Please use -[Braintree tokenizeCardWithComponents:completion:]"); - - -/// Creates and returns a PayPal button that can be added to the UI. When tapped, this button will initiate the PayPal authorization flow. -/// -/// @param delegate Delegate that is notified of completion, receiving either a payment method with a nonce (upon user agreement and success) or an error (upon failure). -/// -/// @return A PayPal button to be added as a subview in your UI. -- (nullable BTPayPalButton *)payPalButtonWithDelegate:(id)delegate DEPRECATED_MSG_ATTRIBUTE("Please use -[Braintree paymentButtonWithDelegate:]"); - -@end - -NS_ASSUME_NONNULL_END diff --git a/Pods/Braintree/Braintree/Braintree.m b/Pods/Braintree/Braintree/Braintree.m deleted file mode 100644 index c93b7f3..0000000 --- a/Pods/Braintree/Braintree/Braintree.m +++ /dev/null @@ -1,203 +0,0 @@ -#import "Braintree_Internal.h" - -#import "BTClient.h" -#import "BTClient+BTPayPal.h" -#import "BTClient_Internal.h" -#import "BTLogger_Internal.h" - -#import "BTPayPalButton.h" -#import "BTPaymentProvider.h" - -#import "BTDropInViewController.h" - -#import "BTAppSwitch.h" - -@interface Braintree () -@property (nonatomic, strong) BTClient *client; - -@property (nonatomic, strong) NSMutableSet *retainedPaymentProviders; -@end - -@implementation Braintree - -+ (Braintree *)braintreeWithClientToken:(NSString *)clientToken { - return [[self alloc] initWithClientToken:clientToken]; -} - -+ (void)setupWithClientToken:(NSString *)clientToken - completion:(BraintreeCompletionBlock)completionBlock { - - [BTClient setupWithClientToken:clientToken - completion:^(BTClient *client, NSError *error) - { - Braintree *braintree = [[self alloc] initWithClient:client]; - completionBlock(braintree, error); - }]; -} - -- (id)init { - self = [super init]; - if (self) { - self.retainedPaymentProviders = [NSMutableSet set]; - } - return self; -} - -- (instancetype)initWithClientToken:(NSString *)clientToken { - return [self initWithClient:[[BTClient alloc] initWithClientToken:clientToken]]; -} - -- (instancetype)initWithClient:(BTClient *)client { - self = [self init]; - if (self) { - self.client = client; - [self.client postAnalyticsEvent:@"sdk.ios.braintree.init"]; - } - return self; -} - -#pragma mark UI - -- (BTDropInViewController *)dropInViewControllerWithDelegate:(id)delegate { - [self.client postAnalyticsEvent:@"custom.ios.dropin.init" - success:nil - failure:nil]; - - BTDropInViewController *dropInViewController = [[BTDropInViewController alloc] initWithClient:self.client]; - - dropInViewController.delegate = delegate; - [dropInViewController fetchPaymentMethods]; - return dropInViewController; -} - - -- (BTPaymentButton *)paymentButtonWithDelegate:(id)delegate { - return [self paymentButtonWithDelegate:delegate paymentProviderTypes:nil]; -} - -- (BTPaymentButton *)paymentButtonWithDelegate:(id)delegate paymentProviderTypes:(NSOrderedSet *)types { - BTPaymentButton *button = [[BTPaymentButton alloc] initWithPaymentProviderTypes:types]; - button.client = self.client; - button.delegate = delegate; - return button; -} - -#pragma mark Custom - -- (void)tokenizeCard:(BTClientCardTokenizationRequest *)tokenizationRequest - completion:(void (^)(NSString *, NSError *))completionBlock { - [self.client postAnalyticsEvent:@"custom.ios.tokenize.call" - success:nil - failure:nil]; - - BTClientCardRequest *cardRequest = [[BTClientCardRequest alloc] initWithTokenizationRequest:tokenizationRequest]; - - [self.client saveCardWithRequest:cardRequest - success:^(BTCardPaymentMethod *card) { - if (completionBlock) { - completionBlock(card.nonce, nil); - } - } - failure:^(NSError *error) { - if (completionBlock) { - completionBlock(nil, error); - } - }]; - return; -} - -- (void)tokenizeCardWithNumber:(NSString *)cardNumber - expirationMonth:(NSString *)expirationMonth - expirationYear:(NSString *)expirationYear - completion:(void (^)(NSString *nonce, NSError *error))completionBlock { - BTClientCardRequest *request = [[BTClientCardRequest alloc] init]; - request.number = cardNumber; - request.expirationMonth = expirationMonth; - request.expirationYear = expirationYear; - - [self tokenizeCard:request - completion:completionBlock]; -} - -#if BT_ENABLE_APPLE_PAY -- (void)tokenizeApplePayPayment:(PKPayment *)payment - completion:(void (^)(NSString *, NSError *))completionBlock { - [self.client postAnalyticsEvent:@"custom.ios.tokenize.apple-pay"]; - - [self.client saveApplePayPayment:payment - success:^(BTApplePayPaymentMethod *applePayPaymentMethod) { - if (completionBlock) { - completionBlock(applePayPaymentMethod.nonce, nil); - } - } - failure:^(NSError *error) { - if (completionBlock) { - completionBlock(nil, error); - } - }]; -} -#else -- (void)tokenizeApplePayPayment:(__unused id)payment - completion:(__unused void (^)(NSString *, NSError *))completionBlock { - NSString *message = @"Apple Pay is not compiled into this integration of Braintree. Please ensure that BT_ENABLE_APPLE_PAY=1 in your framework and app targets."; - [[BTLogger sharedLogger] warning:message]; -#if DEBUG - @throw [NSException exceptionWithName:NSInternalInconsistencyException - reason:message - userInfo:nil]; -#endif -} -#endif - -- (BTPaymentProvider *)paymentProviderWithDelegate:(id)delegate { - BTPaymentProvider *paymentProvider = [[BTPaymentProvider alloc] initWithClient:self.client]; - paymentProvider.delegate = delegate; - - [self.retainedPaymentProviders addObject:paymentProvider]; - - return paymentProvider; -} - -#pragma mark Deprecated - -- (BTPayPalButton *)payPalButtonWithDelegate:(id)delegate { - [self.client postAnalyticsEvent:@"custom.ios.paypal.init" - success:nil - failure:nil]; - - if (!self.client.btPayPal_isPayPalEnabled){ - return nil; - } - - BTPayPalButton *button = [self payPalButton]; - button.client = self.client; - button.delegate = delegate; - - return button; -} - -- (BTPayPalButton *)payPalButton { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - _payPalButton = _payPalButton ?: [[BTPayPalButton alloc] init]; -#pragma clang diagnostic pop - return _payPalButton; -} - -#pragma mark Library - -+ (NSString *)libraryVersion { - return [BTClient libraryVersion]; -} - -#pragma mark App Switching - -+ (void)setReturnURLScheme:(NSString *)scheme { - [BTAppSwitch sharedInstance].returnURLScheme = scheme; -} - -+ (BOOL)handleOpenURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication { - return [[BTAppSwitch sharedInstance] handleReturnURL:url sourceApplication:sourceApplication]; -} - -@end diff --git a/Pods/Braintree/Braintree/Braintree_Internal.h b/Pods/Braintree/Braintree/Braintree_Internal.h deleted file mode 100644 index 075edef..0000000 --- a/Pods/Braintree/Braintree/Braintree_Internal.h +++ /dev/null @@ -1,26 +0,0 @@ -#import "Braintree.h" -#import "BTPayPalButton.h" - -/// Private header -@interface Braintree () - -// For increasing testability -@property (nonatomic, strong) BTPayPalButton *payPalButton; - -/// Begins the setup of Braintree-iOS. Once setup is complete, the supplied completionBlock -/// will be called with either an instance of Braintree or an error. -/// -/// *Not used at this time.* Use +braintreeWithClientToken: instead. -/// -/// @param clientToken value that is generated on your server using a Braintree server-side -/// client library that authenticates this application to communicate directly to Braintree. -/// -/// @see BTClient+Offline.h for offline client tokens that make it easy to test out the SDK without a -/// server-side integration. This is for testing only; production always requires a -/// server-side integration. -/// -/// @note You should generate a new client token before each checkout to ensure it has not expired. -+ (void)setupWithClientToken:(NSString *)clientToken - completion:(BraintreeCompletionBlock)completionBlock; - -@end diff --git a/Pods/Braintree/Braintree/Coinbase/@Public/BTCoinbase.h b/Pods/Braintree/Braintree/Coinbase/@Public/BTCoinbase.h deleted file mode 100644 index 002c833..0000000 --- a/Pods/Braintree/Braintree/Coinbase/@Public/BTCoinbase.h +++ /dev/null @@ -1,46 +0,0 @@ -#import - -#import "BTAppSwitching.h" -#import "BTAppSwitchErrors.h" - -/// Manages the communication with the Coinbase app or browser for authorization -/// -/// This is a beta integration option. For details, see https://www.braintreepayments.com/features/coinbase -/// -/// @see BTAppSwitching -@interface BTCoinbase : NSObject - -@property (nonatomic, assign) BOOL storeInVault; - -/// Dynamically disable Coinbase support on the client-side, -/// e.g. for certain customers, geographies, devices, etc. -/// -/// Example: -/// `[BTCoinbase sharedCoinbase].disabled = [CoinbaseOAuth isAppOAuthAuthenticationAvailable] ? NO : YES;` -@property (nonatomic, assign) BOOL disabled; - -/// -/// Returns `YES` if the Coinbase iOS app is installed on the device. -/// -/// @note This flag does not consider cases where `BTCoinbase` has been -/// disabled, or the gateway configuration has not enabled Coinbase as a -/// payment option, or when `returnURLScheme` is invalid. To check for those -/// conditions, use `providerAppSwitchAvailableForClient:`. -/// -/// @see `providerAppSwitchAvailableForClient:` -@property (nonatomic, assign, readonly) BOOL isProviderAppInstalled; - -+ (instancetype)sharedCoinbase; - -/// Checks whether the Coinbase app is installed (and accepting app switch authorization) -/// and Braintree is configured for Coinbase app switch. This requires a returnURLScheme -/// to be set and for Coinbase to be enabled in your Braintree Control Panel. -/// -/// @param client A BTClient -/// -/// @return YES if the Coinbase native app is available for app switch. -/// -/// @see `+[Braintree setReturnURLScheme:]` -- (BOOL)providerAppSwitchAvailableForClient:(BTClient *)client; - -@end diff --git a/Pods/Braintree/Braintree/Coinbase/@Public/Braintree-Coinbase.h b/Pods/Braintree/Braintree/Coinbase/@Public/Braintree-Coinbase.h deleted file mode 100644 index 30359ac..0000000 --- a/Pods/Braintree/Braintree/Coinbase/@Public/Braintree-Coinbase.h +++ /dev/null @@ -1,3 +0,0 @@ -// All-in-one import for Braintree Coinbase - -#import "BTCoinbase.h" diff --git a/Pods/Braintree/Braintree/Coinbase/BTCoinbase.m b/Pods/Braintree/Braintree/Coinbase/BTCoinbase.m deleted file mode 100644 index 4dcefe7..0000000 --- a/Pods/Braintree/Braintree/Coinbase/BTCoinbase.m +++ /dev/null @@ -1,215 +0,0 @@ -#import "BTAppSwitch.h" -#import "BTCoinbase.h" -#import "BTClient_Internal.h" -#import "BTAppSwitchErrors.h" -#import "BTCoinbaseOAuth.h" - -@interface BTCoinbase () -@property (nonatomic, strong) BTClient *client; -@property (nonatomic, assign) BTCoinbaseOAuthAuthenticationMechanism authenticationMechanism; -@end - -@implementation BTCoinbase - -@synthesize returnURLScheme = _returnURLScheme; -@synthesize delegate = _delegate; - -+ (void)load { - if (self == [BTCoinbase class]) { - [[BTAppSwitch sharedInstance] addAppSwitching:[BTCoinbase sharedCoinbase] forApp:BTAppTypeCoinbase]; - } -} - -+ (instancetype)sharedCoinbase { - static BTCoinbase *coinbase; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - coinbase = [[self alloc] init]; - }); - return coinbase; -} - -- (BOOL)providerAppSwitchAvailableForClient:(BTClient *)client { - return self.returnURLScheme && [self appSwitchAvailableForClient:client] && [BTCoinbaseOAuth isAppOAuthAuthenticationAvailable]; -} - -- (BOOL)isProviderAppInstalled { - return [BTCoinbaseOAuth isAppOAuthAuthenticationAvailable]; -} - -#pragma mark Helpers - -- (NSURL *)redirectUri { - NSURLComponents *components = [[NSURLComponents alloc] init]; - components.scheme = [self returnURLScheme]; - components.path = @"/vzero/auth/coinbase/redirect"; - components.host = @"x-callback-url"; - return [components URL]; -} - - -#pragma mark BTAppSwitching - -- (BOOL)appSwitchAvailableForClient:(BTClient *)client { - return client.configuration.coinbaseEnabled == YES && self.disabled == NO; -} - -// In this context, "AppSwitch" includes both browser switch and provider app switch -- (BOOL)initiateAppSwitchWithClient:(BTClient *)client delegate:(id)delegate error:(NSError *__autoreleasing *)error { - self.client = client; - self.delegate = delegate; - - [self.client postAnalyticsEvent:@"ios.coinbase.initiate.started"]; - - if (!self.returnURLScheme) { - [self.client postAnalyticsEvent:@"ios.coinbase.initiate.invalid-return-url-scheme"]; - if (error != NULL) { - *error = [NSError errorWithDomain:BTAppSwitchErrorDomain code:BTAppSwitchErrorIntegrationReturnURLScheme - userInfo:@{NSLocalizedDescriptionKey: @"Coinbase is not available", - NSLocalizedFailureReasonErrorKey: @"Invalid return URL scheme", - NSLocalizedRecoverySuggestionErrorKey: @"Add scheme to Info.plist and use +[Braintree setReturnURLScheme:]"}]; - } - return NO; - } - - if (![self appSwitchAvailableForClient:client]) { - [self.client postAnalyticsEvent:@"ios.coinbase.initiate.unavailable"]; - if (error != NULL) { - *error = [NSError errorWithDomain:BTAppSwitchErrorDomain code:BTAppSwitchErrorDisabled - userInfo:@{NSLocalizedDescriptionKey: @"Coinbase is not available", - NSLocalizedFailureReasonErrorKey: @"Configuration does not enable Coinbase", - NSLocalizedRecoverySuggestionErrorKey: @"Enable Coinbase in your Braintree Control Panel"}]; - } - return NO; - } - - self.authenticationMechanism = [BTCoinbaseOAuth startOAuthAuthenticationWithClientId:client.configuration.coinbaseClientId - scope:client.configuration.coinbaseScope - redirectUri:[self.redirectUri absoluteString] - meta:(client.configuration.coinbaseMerchantAccount ? @{ @"authorizations_merchant_account": client.configuration.coinbaseMerchantAccount } : nil)]; - - switch (self.authenticationMechanism) { - case BTCoinbaseOAuthMechanismNone: - [self.client postAnalyticsEvent:@"ios.coinbase.initiate.failed"]; - if (error != NULL) { - *error = [NSError errorWithDomain:BTAppSwitchErrorDomain code:BTAppSwitchErrorFailed - userInfo:@{NSLocalizedDescriptionKey: @"Coinbase is not available", - NSLocalizedFailureReasonErrorKey: @"Unable to perform app switch"}]; - } - break; - case BTCoinbaseOAuthMechanismApp: - [self.client postAnalyticsEvent:@"ios.coinbase.appswitch.started"]; - break; - case BTCoinbaseOAuthMechanismBrowser: - [self.client postAnalyticsEvent:@"ios.coinbase.webswitch.started"]; - break; - } - - return self.authenticationMechanism != BTCoinbaseOAuthMechanismNone; -} - -- (BOOL)canHandleReturnURL:(NSURL *)url sourceApplication:(__unused NSString *)sourceApplication { - NSURL *redirectURL = self.redirectUri; - BOOL schemeMatches = [[url.scheme lowercaseString] isEqualToString:[redirectURL.scheme lowercaseString]]; - BOOL hostMatches = [url.host isEqualToString:redirectURL.host]; - BOOL pathMatches = [url.path isEqualToString:redirectURL.path]; - return schemeMatches && hostMatches && pathMatches; -} - -- (void)handleReturnURL:(NSURL *)url { - if (![self canHandleReturnURL:url sourceApplication:nil]) { - return; - } - - [BTCoinbaseOAuth finishOAuthAuthenticationForUrl:url - clientId:self.client.configuration.coinbaseClientId - clientSecret:nil - completion:^(id response, NSError *error) - { - BTCoinbaseOAuthAuthenticationMechanism mechanism = self.authenticationMechanism; - if (error) { - if ([error.domain isEqualToString:BTCoinbaseErrorDomain] && error.code == BTCoinbaseOAuthError && [error.userInfo[BTCoinbaseOAuthErrorUserInfoKey] isEqual:@"access_denied"]) { - switch(mechanism) { - case BTCoinbaseOAuthMechanismApp: [self.client postAnalyticsEvent:@"ios.coinbase.appswitch.denied"]; break; - case BTCoinbaseOAuthMechanismBrowser: [self.client postAnalyticsEvent:@"ios.coinbase.webswitch.denied"]; break; - case BTCoinbaseOAuthMechanismNone: [self.client postAnalyticsEvent:@"ios.coinbase.unknown.denied"]; break; - } - [self informDelegateDidCancel]; - } else { - switch(mechanism) { - case BTCoinbaseOAuthMechanismApp: [self.client postAnalyticsEvent:@"ios.coinbase.appswitch.failed"]; break; - case BTCoinbaseOAuthMechanismBrowser: [self.client postAnalyticsEvent:@"ios.coinbase.webswitch.failed"]; break; - case BTCoinbaseOAuthMechanismNone: [self.client postAnalyticsEvent:@"ios.coinbase.unknown.failed"]; break; - } - [self informDelegateDidFailWithError:error]; - } - } else { - switch(mechanism) { - case BTCoinbaseOAuthMechanismApp: [self.client postAnalyticsEvent:@"ios.coinbase.appswitch.authorized"]; break; - case BTCoinbaseOAuthMechanismBrowser: [self.client postAnalyticsEvent:@"ios.coinbase.webswitch.authorized"]; break; - case BTCoinbaseOAuthMechanismNone: [self.client postAnalyticsEvent:@"ios.coinbase.unknown.authorized"]; break; - } - [self informDelegateWillCreatePaymentMethod]; - - NSMutableDictionary *mutableResponse = [response mutableCopy]; - mutableResponse[@"redirect_uri"] = [self.redirectUri absoluteString]; - response = mutableResponse; - [[self clientWithMetadataForAuthenticationMechanism:mechanism] saveCoinbaseAccount:response - storeInVault:self.storeInVault - success:^(BTCoinbasePaymentMethod *coinbasePaymentMethod) { - [self.client postAnalyticsEvent:@"ios.coinbase.tokenize.succeeded"]; - [self informDelegateDidCreatePaymentMethod:coinbasePaymentMethod]; - } failure:^(NSError *error) { - [self.client postAnalyticsEvent:@"ios.coinbase.tokenize.failed"]; - [self informDelegateDidFailWithError:error]; - }]; - } - }]; -} - - -#pragma mark Delegate Informers - -- (void)informDelegateWillCreatePaymentMethod { - if ([self.delegate respondsToSelector:@selector(appSwitcherWillCreatePaymentMethod:)]) { - [self.delegate appSwitcherWillCreatePaymentMethod:self]; - } -} - -- (void)informDelegateDidFailWithError:(NSError *)error { - if ([self.delegate respondsToSelector:@selector(appSwitcher:didFailWithError:)]) { - [self.delegate appSwitcher:self didFailWithError:error]; - } -} - -- (void)informDelegateDidCancel { - if ([self.delegate respondsToSelector:@selector(appSwitcherDidCancel:)]) { - [self.delegate appSwitcherDidCancel:self]; - } -} - -- (void)informDelegateDidCreatePaymentMethod:(BTCoinbasePaymentMethod *)paymentMethod { - if ([self.delegate respondsToSelector:@selector(appSwitcher:didCreatePaymentMethod:)]) { - [self.delegate appSwitcher:self didCreatePaymentMethod:paymentMethod]; - } -} - -#pragma mark Helpers - -- (BTClient *)clientWithMetadataForAuthenticationMechanism:(BTCoinbaseOAuthAuthenticationMechanism)authenticationMechanism { - return [self.client copyWithMetadata:^(BTClientMutableMetadata *metadata) { - switch (authenticationMechanism) { - case BTCoinbaseOAuthMechanismApp: - metadata.source = BTClientMetadataSourceCoinbaseApp; - break; - case BTCoinbaseOAuthMechanismBrowser: - metadata.source = BTClientMetadataSourceCoinbaseBrowser; - break; - default: - metadata.source = BTClientMetadataSourceUnknown; - break; - } - }]; -} - -@end diff --git a/Pods/Braintree/Braintree/Coinbase/Vendor/BTCoinbaseDefines.h b/Pods/Braintree/Braintree/Coinbase/Vendor/BTCoinbaseDefines.h deleted file mode 100644 index 81561c3..0000000 --- a/Pods/Braintree/Braintree/Coinbase/Vendor/BTCoinbaseDefines.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// BTCoinbaseDefines.h -// -// Vendored from the official Coinbase iOS SDK version 3.0: -// https://github.com/coinbase/coinbase-ios-sdk -// - -#import - -/// If the API request is successful, `response` will be either a NSDictionary or NSArray, and `error` will be nil. -/// Otherwise, `error` will be non-nil. -typedef void (^BTCoinbaseCompletionBlock)(id response, NSError *error); - -/// NSError domain for Coinbase errors. -extern NSString *const BTCoinbaseErrorDomain; - -/// NSError codes for Coinbase errors. -typedef NS_ENUM(NSInteger, BTCoinbaseErrorCode) { - BTCoinbaseOAuthError, - BTCoinbaseServerErrorUnknown, - BTCoinbaseServerErrorWithMessage -}; - diff --git a/Pods/Braintree/Braintree/Coinbase/Vendor/BTCoinbaseDefines.m b/Pods/Braintree/Braintree/Coinbase/Vendor/BTCoinbaseDefines.m deleted file mode 100644 index 8e1dd85..0000000 --- a/Pods/Braintree/Braintree/Coinbase/Vendor/BTCoinbaseDefines.m +++ /dev/null @@ -1,11 +0,0 @@ -// -// BTCoinbaseDefines.m -// -// Vendored from the official Coinbase iOS SDK version 3.0: -// https://github.com/coinbase/coinbase-ios-sdk -// - -#import "BTCoinbaseDefines.h" - -NSString *const BTCoinbaseErrorDomain = @"CoinbaseErrorDomain"; - diff --git a/Pods/Braintree/Braintree/Coinbase/Vendor/BTCoinbaseOAuth.h b/Pods/Braintree/Braintree/Coinbase/Vendor/BTCoinbaseOAuth.h deleted file mode 100644 index 3afeb30..0000000 --- a/Pods/Braintree/Braintree/Coinbase/Vendor/BTCoinbaseOAuth.h +++ /dev/null @@ -1,83 +0,0 @@ -// -// BTCoinbaseOAuth.h -// -// Vendored from the official Coinbase iOS SDK version 3.0: -// https://github.com/coinbase/coinbase-ios-sdk -// - -#import -#import "BTCoinbaseDefines.h" - -/// Indicates where user authentication takes place -typedef NS_ENUM(NSInteger, BTCoinbaseOAuthAuthenticationMechanism){ - /// Neither app switch nor authentication occured - BTCoinbaseOAuthMechanismNone = NO, - /// The user authenticated with Coinbase in Mobile Safari - BTCoinbaseOAuthMechanismBrowser, - /// The user authenticated with Coinbase in the Coinbase app - BTCoinbaseOAuthMechanismApp, -}; - -/// The key in an NSError userInfo dictionary where the coinbase specific error code is returned. -/// -/// For example, when the return URL contains error=acccess_denied, the error you receive in -/// finishOAuthAuthenticationForUrl:clientId:clientSecret:completion: will contain @"access_denied" -/// in the userInfo dictionary. -extern NSString *const BTCoinbaseOAuthErrorUserInfoKey; - -/// `CoinbaseOAuth` contains methods to authenticate users through OAuth2. After obtaining an -/// access token using this class, you can call Coinbase API methods -/// using `[Coinbase coinbaseWithOAuthAccessToken:]`. -@interface BTCoinbaseOAuth : NSObject - -/// Test if the Coinbase app is installed and if the OAuth authentication process will use the Coinbase -/// app to offer an easier authentication process. Can be used to make the Coinbase OAuth sign in action -/// more prominent if the app is installed (thus indicating the user has an interest in Coinbase). -/// -/// @returns True if the app switch was successful -+ (BOOL)isAppOAuthAuthenticationAvailable; - -/// Start the OAuth authentication process. This will open a different application to complete the -/// authentication flow. -/// -/// @return the mechanism of authentication. Example: CoinbaseOAuthMechanismApp -+ (BTCoinbaseOAuthAuthenticationMechanism)startOAuthAuthenticationWithClientId:(NSString *)clientId - scope:(NSString *)scope - redirectUri:(NSString *)redirectUri - meta:(NSDictionary *)meta; - -/// Finish the OAuth authentication process. This should be called when your application is opened -/// for a Coinbase OAuth URI. -/// -/// If you pass your client secret to `clientSecret`, the OAuth access grant will be exchanged for tokens -/// on the device and returned to your in the `success` callback. If you pass nil to `clientSecret`, the -/// OAuth authorization code will be returned to your `success` callback, so you can send it to your server and -/// exchange it for tokens there. If your application has a server side component, the second approach is recommended, -/// as it prevents disclosure of the client secret to the client side. -+ (void)finishOAuthAuthenticationForUrl:(NSURL *)url - clientId:(NSString *)clientId - clientSecret:(NSString *)clientSecret - completion:(BTCoinbaseCompletionBlock)completion; - -/// Get new tokens using a refresh token. -+ (void)getOAuthTokensForRefreshToken:(NSString *)refreshToken - clientId:(NSString *)clientId - clientSecret:(NSString *)clientSecret - completion:(BTCoinbaseCompletionBlock)completion; - -/// Get new tokens using an authorization code. -+ (void)getOAuthTokensForCode:(NSString *)code - redirectUri:(NSString *)redirectUri - clientId:(NSString *)clientId - clientSecret:(NSString *)clientSecret - completion:(BTCoinbaseCompletionBlock)completion; - -/// Make a request to a Coinbase OAuth API. -+ (void)doOAuthPostToPath:(NSString *)path - withParams:(NSDictionary *)params - completion:(BTCoinbaseCompletionBlock)completion; - -/// Set the base URL that will be used when making API requests. Defaults to "https://api.coinbase.com/" -+ (void)setBaseURL:(NSURL *)URL; - -@end diff --git a/Pods/Braintree/Braintree/Coinbase/Vendor/BTCoinbaseOAuth.m b/Pods/Braintree/Braintree/Coinbase/Vendor/BTCoinbaseOAuth.m deleted file mode 100644 index c3391b5..0000000 --- a/Pods/Braintree/Braintree/Coinbase/Vendor/BTCoinbaseOAuth.m +++ /dev/null @@ -1,202 +0,0 @@ -// -// BTCoinbaseOAuth.m -// Pods -// -// Created by Isaac Waller on 10/28/14. -// -// -// Vendored from the official Coinbase iOS SDK version 3.0: -// https://github.com/coinbase/coinbase-ios-sdk -// - -#import "BTCoinbaseOAuth.h" - -NSString *const BTCoinbaseOAuthErrorUserInfoKey = @"CoinbaseOAuthError"; - -@implementation BTCoinbaseOAuth - -static NSURL * __strong baseURL; - -+ (BOOL)isAppOAuthAuthenticationAvailable { - return [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"com.coinbase.oauth-authorize://authorize"]]; -} - -+ (BTCoinbaseOAuthAuthenticationMechanism)startOAuthAuthenticationWithClientId:(NSString *)clientId - scope:(NSString *)scope - redirectUri:(NSString *)redirectUri - meta:(NSDictionary *)meta { - NSString *path = [NSString stringWithFormat: @"/oauth/authorize?response_type=code&client_id=%@", clientId]; - if (scope) { - path = [path stringByAppendingFormat:@"&scope=%@", [self URLEncodedStringFromString:scope]]; - } - if (redirectUri) { - path = [path stringByAppendingFormat:@"&redirect_uri=%@", [self URLEncodedStringFromString:redirectUri]]; - } - if (meta) { - for (NSString *key in meta) { - path = [path stringByAppendingFormat:@"&meta[%@]=%@", [self URLEncodedStringFromString:key], [self URLEncodedStringFromString:meta[key]]]; - } - } - - BTCoinbaseOAuthAuthenticationMechanism mechanism = BTCoinbaseOAuthMechanismNone; - NSURL *coinbaseAppUrl = [NSURL URLWithString:[NSString stringWithFormat:@"com.coinbase.oauth-authorize:%@", path]]; - BOOL appSwitchSuccessful = NO; - if ([[UIApplication sharedApplication] canOpenURL:coinbaseAppUrl] && baseURL == nil) { - appSwitchSuccessful = [[UIApplication sharedApplication] openURL:coinbaseAppUrl]; - if (appSwitchSuccessful) { - mechanism = BTCoinbaseOAuthMechanismApp; - } - } - - if (!appSwitchSuccessful) { - NSURL *base = [NSURL URLWithString:path relativeToURL:(baseURL == nil ? [NSURL URLWithString:@"https://www.coinbase.com/"] : baseURL)]; - NSURL *webUrl = [[NSURL URLWithString:path relativeToURL:base] absoluteURL]; - BOOL browserSwitchSuccessful = [[UIApplication sharedApplication] openURL:webUrl]; - if (browserSwitchSuccessful) { - mechanism = BTCoinbaseOAuthMechanismBrowser; - } - } - - return mechanism; -} - -+ (void)finishOAuthAuthenticationForUrl:(NSURL *)url - clientId:(NSString *)clientId - clientSecret:(NSString *)clientSecret - completion:(BTCoinbaseCompletionBlock)completion { - // Parse params from URL's query string - NSMutableDictionary *params = [NSMutableDictionary dictionary]; - for (NSString *param in [url.query componentsSeparatedByString:@"&"]) { - NSArray *elts = [param componentsSeparatedByString:@"="]; - NSString *key = [elts objectAtIndex:0]; - NSString *value = [elts objectAtIndex:1]; - - params[key] = value; - } - - // Get code from URL and check for error. - NSString *code = params[@"code"]; - - if (params[@"error_description"] != nil) { - NSString *errorDescription = [[params[@"error_description"] stringByReplacingOccurrencesOfString:@"+" withString:@" "] - stringByRemovingPercentEncoding]; - NSDictionary *userInfo = @{ NSLocalizedDescriptionKey: errorDescription, BTCoinbaseOAuthErrorUserInfoKey: (params[@"error"] ?: [NSNull null]) }; - NSError *error = [NSError errorWithDomain:BTCoinbaseErrorDomain - code:BTCoinbaseOAuthError - userInfo:userInfo]; - completion(nil, error); - return; - } else if (!code) { - NSDictionary *userInfo = @{ NSLocalizedDescriptionKey: @"Malformed URL." }; - NSError *error = [NSError errorWithDomain:BTCoinbaseErrorDomain - code:BTCoinbaseOAuthError - userInfo:userInfo]; - completion(nil, error); - return; - } else if (!clientSecret) { - // Do not make token request on client side - completion(@{@"code": code}, nil); - return; - } - - // Make token request - // Obtain original redirect URI by removing 'code' parameter from URI - NSString *redirectUri = [[url absoluteString] stringByReplacingOccurrencesOfString:[url query] withString:@""]; - redirectUri = [redirectUri substringToIndex:redirectUri.length - 1]; // Strip off trailing '?' - [BTCoinbaseOAuth getOAuthTokensForCode:code - redirectUri:redirectUri - clientId:clientId - clientSecret:clientSecret - completion:completion]; - return; -} - -+ (void)getOAuthTokensForCode:(NSString *)code - redirectUri:(NSString *)redirectUri - clientId:(NSString *)clientId - clientSecret:(NSString *)clientSecret - completion:(BTCoinbaseCompletionBlock)completion { - NSDictionary *params = @{ @"grant_type": @"authorization_code", - @"code": code, - @"redirect_uri": redirectUri, - @"client_id": clientId, - @"client_secret": clientSecret }; - [BTCoinbaseOAuth doOAuthPostToPath:@"token" withParams:params completion:completion]; -} - -+ (void)getOAuthTokensForRefreshToken:(NSString *)refreshToken - clientId:(NSString *)clientId - clientSecret:(NSString *)clientSecret - completion:(BTCoinbaseCompletionBlock)completion { - NSDictionary *params = @{ @"grant_type": @"refresh_token", - @"refresh_token": refreshToken, - @"client_id": clientId, - @"client_secret": clientSecret }; - [BTCoinbaseOAuth doOAuthPostToPath:@"token" withParams:params completion:completion]; -} - -+ (void)doOAuthPostToPath:(NSString *)path - withParams:(NSDictionary *)params - completion:(BTCoinbaseCompletionBlock)completion { - - NSURL *base = [NSURL URLWithString:@"oauth/" relativeToURL:(baseURL == nil ? [NSURL URLWithString:@"https://www.coinbase.com/"] : baseURL)]; - NSURL *url = [[NSURL URLWithString:path relativeToURL:base] absoluteURL]; - NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration]; - NSURLSession *session = [NSURLSession sessionWithConfiguration:config]; - - // Create POST data (OAuth APIs only accept standard URL-format data, not JSON) - NSMutableArray *components = [NSMutableArray new]; - NSString *encodedKey, *encodedValue; - for (NSString *key in params) { - encodedKey = [BTCoinbaseOAuth URLEncodedStringFromString:key]; - encodedValue = [BTCoinbaseOAuth URLEncodedStringFromString:[params objectForKey:key]]; - [components addObject:[NSString stringWithFormat:@"%@=%@", encodedKey, encodedValue]]; - } - - NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:url]; - request.HTTPMethod = @"POST"; - NSError *error = nil; - NSData *data = [[components componentsJoinedByString:@"&"] dataUsingEncoding:NSUTF8StringEncoding]; - if (error) { - completion(nil, error); - return; - } - NSURLSessionUploadTask *task; - task = [session uploadTaskWithRequest:request - fromData:data - completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { - if (!error) { - NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response; - NSDictionary *parsedBody = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]; - if (!error) { - if ([parsedBody objectForKey:@"error"] || [httpResponse statusCode] > 300) { - NSDictionary *userInfo = @{ NSLocalizedDescriptionKey: [parsedBody objectForKey:@"error"] }; - error = [NSError errorWithDomain:BTCoinbaseErrorDomain - code:BTCoinbaseOAuthError - userInfo:userInfo]; - } else { - dispatch_async(dispatch_get_main_queue(), ^{ - completion(parsedBody, nil); - }); - return; - } - } - } - - dispatch_async(dispatch_get_main_queue(), ^{ - completion(nil, error); - }); - }]; - [task resume]; -} - -+ (NSString *)URLEncodedStringFromString:(NSString *)string -{ - return [string stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]]; -} - -+ (void)setBaseURL:(NSURL *)URL { - baseURL = URL; -} - -@end diff --git a/Pods/Braintree/Braintree/Drop-In/BTDropInContentView.h b/Pods/Braintree/Braintree/Drop-In/BTDropInContentView.h deleted file mode 100644 index 6c685e5..0000000 --- a/Pods/Braintree/Braintree/Drop-In/BTDropInContentView.h +++ /dev/null @@ -1,40 +0,0 @@ -#import "BTUIThemedView.h" - -#import "Braintree-Payments-UI.h" -#import "Braintree-PayPal.h" - -#import "BTPaymentButton.h" - -typedef NS_ENUM(NSUInteger, BTDropInContentViewStateType) { - BTDropInContentViewStateForm = 0, - BTDropInContentViewStatePaymentMethodsOnFile, - BTDropInContentViewStateActivity -}; - -/// A thin view layer that manages Drop In subviews and their layout. -@interface BTDropInContentView : BTUIThemedView - -@property (nonatomic, strong) BTUISummaryView *summaryView; -@property (nonatomic, strong) BTUICTAControl *ctaControl; -@property (nonatomic, strong) BTPaymentButton *paymentButton; -@property (nonatomic, strong) UILabel *cardFormSectionHeader; -@property (nonatomic, strong) BTUICardFormView *cardForm; - -@property (nonatomic, strong) BTUIPaymentMethodView *selectedPaymentMethodView; -@property (nonatomic, strong) UIButton *changeSelectedPaymentMethodButton; - -/// Whether to hide the call to action -@property (nonatomic, assign) BOOL hideCTA; - -/// Whether to hide the summary banner view -@property (nonatomic, assign) BOOL hideSummary; - -/// The current state -@property (nonatomic, assign) BTDropInContentViewStateType state; - -/// Whether the paymentButton control is hidden -@property (nonatomic, assign) BOOL hidePaymentButton; - -- (void)setState:(BTDropInContentViewStateType)newState animate:(BOOL)animate; - -@end diff --git a/Pods/Braintree/Braintree/Drop-In/BTDropInContentView.m b/Pods/Braintree/Braintree/Drop-In/BTDropInContentView.m deleted file mode 100644 index ffc2ee8..0000000 --- a/Pods/Braintree/Braintree/Drop-In/BTDropInContentView.m +++ /dev/null @@ -1,292 +0,0 @@ -#import "BTDropInContentView.h" -#import "BTDropInLocalizedString.h" - -@interface BTDropInContentView () -@property (nonatomic, strong) NSArray *verticalLayoutConstraints; -@property (nonatomic, strong) UIActivityIndicatorView *activityView; -@property (nonatomic, strong) NSLayoutConstraint *heightConstraint; -@end - -@implementation BTDropInContentView - -- (id)initWithFrame:(CGRect)frame -{ - self = [super initWithFrame:frame]; - if (self) { - // Initialize Subviews - - self.activityView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; - self.activityView.translatesAutoresizingMaskIntoConstraints = NO; - self.activityView.hidden = YES; - [self addSubview:self.activityView]; - [self addConstraint:[NSLayoutConstraint constraintWithItem:self.activityView attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeCenterX multiplier:1.0f constant:0.0f]]; - - self.summaryView = [[BTUISummaryView alloc] init]; - - UIView *summaryBorderBottom = [[UIView alloc] init]; - summaryBorderBottom.backgroundColor = self.theme.borderColor; - summaryBorderBottom.translatesAutoresizingMaskIntoConstraints = NO; - [self.summaryView addSubview:summaryBorderBottom]; - [self.summaryView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[border]|" - options:0 - metrics:nil - views:@{@"border": summaryBorderBottom}]]; - [self.summaryView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[border(==borderWidth)]|" - options:0 - metrics:@{@"borderWidth": @(self.theme.borderWidth)} - views:@{@"border": summaryBorderBottom}]]; - - self.paymentButton = [[BTPaymentButton alloc] init]; - - self.cardFormSectionHeader = [[UILabel alloc] init]; - - self.cardForm = [[BTUICardFormView alloc] init]; - [self.cardForm setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisVertical]; - - self.selectedPaymentMethodView = [[BTUIPaymentMethodView alloc] init]; - - self.changeSelectedPaymentMethodButton = [UIButton buttonWithType:UIButtonTypeSystem]; - [self.changeSelectedPaymentMethodButton setTitle:BTDropInLocalizedString(DROP_IN_CHANGE_PAYMENT_METHOD_BUTTON_TEXT) - forState:UIControlStateNormal]; - - self.ctaControl = [[BTUICTAControl alloc] init]; - - // Add Constraints & Subviews - - // Full-Width Views - for (UIView *view in @[self.paymentButton, self.selectedPaymentMethodView, self.summaryView, self.ctaControl, self.cardForm]) { - [self addSubview:view]; - view.translatesAutoresizingMaskIntoConstraints = NO; - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[view]|" - options:0 - metrics:nil - views:@{@"view": view}]]; - } - - // Not quite full-width views - for (UIView *view in @[self.cardFormSectionHeader, self.changeSelectedPaymentMethodButton]) { - [self addSubview:view]; - view.translatesAutoresizingMaskIntoConstraints = NO; - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(horizontalMargin)-[view]-(horizontalMargin)-|" - options:0 - metrics:@{@"horizontalMargin": @(self.theme.horizontalMargin)} - views:@{@"view": view}]]; - } - - - self.state = BTDropInContentViewStateForm; - - // Keyboard dismissal when tapping outside text field - UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapped)]; - tapGesture.delegate = self; - [self addGestureRecognizer:tapGesture]; - - } - return self; -} - -- (void)updateConstraints { - - if (self.verticalLayoutConstraints != nil) { - [self removeConstraints:self.verticalLayoutConstraints]; - } - - NSDictionary *viewBindings = @{ - @"activityView": self.activityView, - @"summaryView": self.summaryView, - @"paymentButton": self.paymentButton, - @"cardFormSectionHeader": self.cardFormSectionHeader, - @"cardForm": self.cardForm, - @"ctaControl": self.ctaControl, - @"selectedPaymentMethodView": self.selectedPaymentMethodView, - @"changeSelectedPaymentMethodButton": self.changeSelectedPaymentMethodButton - }; - - NSMutableArray *newConstraints = [NSMutableArray array]; - for (NSString *visualFormat in [self evaluateVisualFormat]) { - [newConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:visualFormat - options:0 - metrics:nil - views:viewBindings]]; - } - - if(self.heightConstraint != nil) { - [self.superview removeConstraint:self.heightConstraint]; - } - - if (self.state != BTDropInContentViewStateForm) { - - self.heightConstraint = [NSLayoutConstraint constraintWithItem:self - attribute:NSLayoutAttributeHeight - relatedBy:NSLayoutRelationGreaterThanOrEqual - toItem:self.superview - attribute:NSLayoutAttributeHeight - multiplier:1.0f - constant:0]; - [self.superview addConstraint:self.heightConstraint]; - } - [self.superview setNeedsLayout]; - - [self addConstraints:newConstraints]; - self.verticalLayoutConstraints = newConstraints; - - [super updateConstraints]; - -} -- (void)setHideSummary:(BOOL)hideSummary { - _hideSummary = hideSummary; - [self updateLayout]; -} - -- (void)setHideCTA:(BOOL)hideCTA { - _hideCTA = hideCTA; - [self updateLayout]; -} - -- (void)setState:(BTDropInContentViewStateType)state { - _state = state; - [self updateLayout]; -} - -- (void)setState:(BTDropInContentViewStateType)newState animate:(BOOL)animate { - if (!animate) { - [self setState:newState]; - } else { - BTDropInContentViewStateType oldState = self.state; - CGFloat duration = 0.2f; - if (oldState == BTDropInContentViewStateActivity) { - if (newState == BTDropInContentViewStateForm) { - [UIView animateWithDuration:duration animations:^{ - self.activityView.alpha = 0.0f; - } completion:^(__unused BOOL finished) { - [self setState:newState]; - self.paymentButton.alpha = 0.0f; - self.cardForm.alpha = 0.0f; - self.cardFormSectionHeader.alpha = 0.0f; - self.ctaControl.alpha = 0.0f; - [self setNeedsUpdateConstraints]; - [self layoutIfNeeded]; - [UIView animateWithDuration:duration animations:^{ - self.paymentButton.alpha = 1.0f; - self.cardForm.alpha = 1.0f; - self.cardFormSectionHeader.alpha = 1.0f; - self.ctaControl.alpha = 1.0f; - }]; - }]; - return; - } - - if (newState == BTDropInContentViewStatePaymentMethodsOnFile) { - self.activityView.alpha = 1.0f; - [UIView animateWithDuration:duration animations:^{ - self.activityView.alpha = 0.0f; - } completion:^(__unused BOOL finished) { - [self setState:newState]; - self.selectedPaymentMethodView.alpha = 0.0f; - self.changeSelectedPaymentMethodButton.alpha = 0.0f; - self.ctaControl.alpha = 0.0f; - [self setNeedsUpdateConstraints]; - [self layoutIfNeeded]; - [UIView animateWithDuration:duration animations:^{ - self.selectedPaymentMethodView.alpha = 1.0f; - self.changeSelectedPaymentMethodButton.alpha = 1.0f; - self.ctaControl.alpha = 1.0f; - }]; - }]; - return; - } - } - [self setState:newState]; - } -} - -- (void)setHidePaymentButton:(BOOL)hidePaymentButton { - _hidePaymentButton = hidePaymentButton; - self.paymentButton.hidden = hidePaymentButton; - [self updateLayout]; -} - -- (void)updateLayout { - - // Reset all to hidden, just for clarity - self.activityView.hidden = YES; - self.summaryView.hidden = self.hideSummary; - self.paymentButton.hidden = YES; - self.cardFormSectionHeader.hidden = YES; - self.cardForm.hidden = YES; - self.selectedPaymentMethodView.hidden = YES; - self.changeSelectedPaymentMethodButton.hidden = YES; - self.ctaControl.hidden = YES; - - switch (self.state) { - case BTDropInContentViewStateForm: - self.activityView.hidden = YES; - [self.activityView stopAnimating]; - self.ctaControl.hidden = self.hideCTA; - self.paymentButton.hidden = self.hidePaymentButton; - self.cardFormSectionHeader.hidden = NO; - self.cardForm.hidden = NO; - break; - case BTDropInContentViewStatePaymentMethodsOnFile: - self.activityView.hidden = YES; - [self.activityView stopAnimating]; - self.ctaControl.hidden = self.hideCTA; - self.selectedPaymentMethodView.hidden = NO; - self.changeSelectedPaymentMethodButton.hidden = NO; - break; - case BTDropInContentViewStateActivity: - self.activityView.hidden = NO; - self.activityView.alpha = 1.0f; - [self.activityView startAnimating]; - break; - default: - break; - } - [self setNeedsUpdateConstraints]; -} - - -#pragma mark Tap Gesture Delegate - -- (BOOL)gestureRecognizer:(__unused UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch { - // Disallow recognition of tap gestures on UIControls (like, say, buttons) - if ([touch.view isKindOfClass:[UIControl class]] || [touch.view isDescendantOfView:self.paymentButton]) { - return NO; - } - return YES; -} - - -- (void)tapped { - [self.cardForm endEditing:YES]; -} - -- (NSArray*) evaluateVisualFormat{ - NSString *summaryViewVisualFormat = self.summaryView.hidden ? @"" : @"[summaryView(>=60)]"; - NSString *ctaControlVisualFormat = self.ctaControl.hidden ? @"" : @"[ctaControl(==50)]"; - - if (self.state == BTDropInContentViewStateActivity) { - return @[[NSString stringWithFormat:@"V:|%@-(40)-[activityView]-(>=40)-%@|", summaryViewVisualFormat, ctaControlVisualFormat]]; - - } else if (self.state != BTDropInContentViewStatePaymentMethodsOnFile) { - if (!self.ctaControl.hidden) { - ctaControlVisualFormat = [NSString stringWithFormat:@"-(15)-%@-(>=0)-", ctaControlVisualFormat]; - } - if (self.hidePaymentButton){ - return @[[NSString stringWithFormat:@"V:|%@-(35)-[cardFormSectionHeader]-(7)-[cardForm]%@|", summaryViewVisualFormat, ctaControlVisualFormat]]; - } else { - summaryViewVisualFormat = [NSString stringWithFormat:@"%@-(35)-", summaryViewVisualFormat]; - return @[[NSString stringWithFormat:@"V:|%@[paymentButton(==44)]-(18)-[cardFormSectionHeader]-(7)-[cardForm]%@|", summaryViewVisualFormat, ctaControlVisualFormat]]; - } - - } else { - NSString *primaryLayout = [NSString stringWithFormat:@"V:|%@-(15)-[selectedPaymentMethodView(==45)]-(15)-[changeSelectedPaymentMethodButton]-(>=15)-%@|", summaryViewVisualFormat, ctaControlVisualFormat]; - NSMutableArray *visualLayouts = [NSMutableArray arrayWithObject:primaryLayout]; - if (!self.ctaControl.hidden) { - [visualLayouts addObject:@"V:[ctaControl]|"]; - } - return visualLayouts; - } -} - -@end diff --git a/Pods/Braintree/Braintree/Drop-In/BTDropInErrorAlert.h b/Pods/Braintree/Braintree/Drop-In/BTDropInErrorAlert.h deleted file mode 100644 index e2d372a..0000000 --- a/Pods/Braintree/Braintree/Drop-In/BTDropInErrorAlert.h +++ /dev/null @@ -1,12 +0,0 @@ -#import - -@interface BTDropInErrorAlert : NSObject - -@property (nonatomic, copy) NSString *title; -@property (nonatomic, copy) NSString *message; - -- (instancetype)initWithCancel:(void (^)(void))cancelBlock retry:(void (^)(void))retryBlock; - -- (void)show; - -@end diff --git a/Pods/Braintree/Braintree/Drop-In/BTDropInErrorAlert.m b/Pods/Braintree/Braintree/Drop-In/BTDropInErrorAlert.m deleted file mode 100644 index ce7848e..0000000 --- a/Pods/Braintree/Braintree/Drop-In/BTDropInErrorAlert.m +++ /dev/null @@ -1,87 +0,0 @@ -#import - -#import "BTDropInErrorAlert.h" -#import "BTDropInLocalizedString.h" -#import "BTUIUtil.h" - -@interface BTDropInErrorAlert () - -@property (nonatomic, copy) void (^retryBlock)(void); - -@property (nonatomic, copy) void (^cancelBlock)(void); - -@end - -@implementation BTDropInErrorAlert - -- (instancetype)initWithCancel:(void (^)(void))cancelBlock retry:(void (^)(void))retryBlock { - self = [super init]; - if (self) { - self.retryBlock = retryBlock; - self.cancelBlock = cancelBlock; - } - return self; -} - -- (void)show { - NSString *localizedOK = BTDropInLocalizedString(ERROR_ALERT_OK_BUTTON_TEXT); - NSString *localizedCancel = BTDropInLocalizedString(ERROR_ALERT_CANCEL_BUTTON_TEXT); - - if ([UIAlertController class]) { - UIAlertController *alert = [UIAlertController alertControllerWithTitle:self.title - message:self.message - preferredStyle:UIAlertControllerStyleAlert]; - [alert addAction:[UIAlertAction actionWithTitle:self.retryBlock ? localizedCancel : localizedOK - style:UIAlertActionStyleCancel - handler:^(UIAlertAction * __nonnull __unused action) { - if (self.cancelBlock) { - self.cancelBlock(); - } - }]]; - if (self.retryBlock) { - NSString *localizedTryAgain = BTDropInLocalizedString(ERROR_ALERT_TRY_AGAIN_BUTTON_TEXT); - [alert addAction:[UIAlertAction actionWithTitle:localizedTryAgain - style:UIAlertActionStyleDefault - handler:^(UIAlertAction * __nonnull __unused action) { - if (self.retryBlock) { - self.retryBlock(); - } - }]]; - } - UIViewController *visibleViewController = [[UIApplication sharedApplication].delegate.window.rootViewController BTUI_visibleViewController]; - [visibleViewController presentViewController:alert animated:YES completion:nil]; - } else { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:self.title - message:self.message - delegate:self - cancelButtonTitle:self.retryBlock ? localizedCancel : localizedOK - otherButtonTitles:nil]; - if (self.retryBlock) { - NSString *localizedTryAgain = BTDropInLocalizedString(ERROR_ALERT_TRY_AGAIN_BUTTON_TEXT); - [alertView addButtonWithTitle:localizedTryAgain]; - } - [alertView show]; -#pragma clang diagnostic pop - } -} - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -- (void)alertView:(__unused UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex { -#pragma clang diagnostic pop - if (buttonIndex == 0 && self.cancelBlock) { - self.cancelBlock(); - } else if (buttonIndex == 1 && self.retryBlock) { - self.retryBlock(); - } -} - -- (NSString *)title { - NSString *localizedConnectionError = BTDropInLocalizedString(ERROR_ALERT_CONNECTION_ERROR); - - return _title ?: localizedConnectionError; -} - -@end diff --git a/Pods/Braintree/Braintree/Drop-In/BTDropInErrorState.h b/Pods/Braintree/Braintree/Drop-In/BTDropInErrorState.h deleted file mode 100644 index b90ebc8..0000000 --- a/Pods/Braintree/Braintree/Drop-In/BTDropInErrorState.h +++ /dev/null @@ -1,21 +0,0 @@ -#import - -/// Interprets NSError objects of domainBTBraintreeAPIErrorDomain, code -/// BTCustomerInputErrorInvalid for Drop-In UI Components. -@interface BTDropInErrorState : NSObject - -/// Initializes a new error state object returned by -/// saveCardWithNumber:expirationMonth:expirationYear:cvv:postalCode:validate:success:failure:. -/// -/// @param error The error to interpret -/// -/// @return a new error state instance -- (instancetype)initWithError:(NSError *)error; - -/// Top-level description of error -@property (nonatomic, copy, readonly) NSString *errorTitle; - -/// Set of invalid fields to highlight, each represented as a boxed BTUICardFormField -@property (nonatomic, strong, readonly) NSSet *highlightedFields; - -@end diff --git a/Pods/Braintree/Braintree/Drop-In/BTDropInErrorState.m b/Pods/Braintree/Braintree/Drop-In/BTDropInErrorState.m deleted file mode 100644 index cea46b7..0000000 --- a/Pods/Braintree/Braintree/Drop-In/BTDropInErrorState.m +++ /dev/null @@ -1,63 +0,0 @@ -#import "BTDropInErrorState.h" -#import "BTUICardFormView.h" -#import "BTErrors.h" - -@interface BTDropInErrorState () -@property (nonatomic, strong) NSError *error; -@end - -@implementation BTDropInErrorState - -- (instancetype)initWithError:(__unused NSError *)error{ - self = [super init]; - if (self != nil) { - self.error = error; - } - return self; -} - -- (NSString *)errorTitle { - return self.validationErrors[@"error"][@"message"]; -} - -- (NSDictionary *)validationErrors { - return self.error.userInfo[BTCustomerInputBraintreeValidationErrorsKey]; -} - -- (NSSet *)highlightedFields{ - NSMutableSet *fieldsToHighlight = [[NSMutableSet alloc] init]; - NSArray *fieldErrors = self.validationErrors[@"fieldErrors"]; - - NSArray *creditCardFieldErrors = @[]; - for (NSDictionary *fieldError in fieldErrors) { - if ([fieldError[@"field"] isEqualToString:@"creditCard"]) { - creditCardFieldErrors = fieldError[@"fieldErrors"]; - break; - } - } - - for (NSDictionary *creditCardFieldError in creditCardFieldErrors) { - NSString *field = creditCardFieldError[@"field"]; - if([field isEqualToString:@"cvv"]){ - [fieldsToHighlight addObject:@(BTUICardFormFieldCvv)]; - } else if ([field isEqualToString:@"billingAddress"]) { - for (NSDictionary *billingAddressFieldError in creditCardFieldError[@"fieldErrors"]) { - NSString *billingAddressField = billingAddressFieldError[@"field"]; - if ([billingAddressField isEqualToString:@"postalCode"]) { - [fieldsToHighlight addObject:@(BTUICardFormFieldPostalCode)]; - } - } - } else if ([field isEqualToString:@"number"]) { - [fieldsToHighlight addObject:@(BTUICardFormFieldNumber)]; - } else if ([field isEqualToString:@"expirationDate"] || [field isEqualToString:@"expirationMonth"] || [field isEqualToString:@"expirationYear"]) { - [fieldsToHighlight addObject:@(BTUICardFormFieldExpiration)]; - } - } - return fieldsToHighlight; -} - -- (NSString *)description { - return [NSString stringWithFormat:@"", self, self.errorTitle, self.highlightedFields]; -} - -@end diff --git a/Pods/Braintree/Braintree/Drop-In/BTDropInSelectPaymentMethodViewController.h b/Pods/Braintree/Braintree/Drop-In/BTDropInSelectPaymentMethodViewController.h deleted file mode 100644 index 30ff031..0000000 --- a/Pods/Braintree/Braintree/Drop-In/BTDropInSelectPaymentMethodViewController.h +++ /dev/null @@ -1,28 +0,0 @@ -#import - -#import "Braintree-API.h" - -#import "BTUI.h" - -@protocol BTDropInSelectPaymentMethodViewControllerDelegate; - -/// Drop In's payment method selection flow. -@interface BTDropInSelectPaymentMethodViewController : UITableViewController - -@property (nonatomic, strong) BTClient *client; -@property (nonatomic, weak) id delegate; -@property (nonatomic, strong) NSArray *paymentMethods; -@property (nonatomic, assign) NSInteger selectedPaymentMethodIndex; - -@property (nonatomic, strong) BTUI *theme; - -@end - -@protocol BTDropInSelectPaymentMethodViewControllerDelegate - -- (void)selectPaymentMethodViewController:(BTDropInSelectPaymentMethodViewController *)viewController - didSelectPaymentMethodAtIndex:(NSUInteger)index; - -- (void)selectPaymentMethodViewControllerDidRequestNew:(BTDropInSelectPaymentMethodViewController *)viewController; - -@end diff --git a/Pods/Braintree/Braintree/Drop-In/BTDropInSelectPaymentMethodViewController.m b/Pods/Braintree/Braintree/Drop-In/BTDropInSelectPaymentMethodViewController.m deleted file mode 100644 index bef3d39..0000000 --- a/Pods/Braintree/Braintree/Drop-In/BTDropInSelectPaymentMethodViewController.m +++ /dev/null @@ -1,119 +0,0 @@ -#import "BTDropInSelectPaymentMethodViewController.h" -#import "BTDropInUtil.h" -#import "BTUIViewUtil.h" -#import "BTUI.h" -#import "BTDropInViewController.h" -#import "BTDropInLocalizedString.h" -#import "BTUILocalizedString.h" - -@interface BTDropInSelectPaymentMethodViewController () - -@end - -@implementation BTDropInSelectPaymentMethodViewController - -- (instancetype)init { - return [self initWithStyle:UITableViewStyleGrouped]; -} - -- (id)initWithStyle:(UITableViewStyle)style -{ - self = [super initWithStyle:style]; - if (self) { - self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(didTapAdd)]; - self.tableView.accessibilityIdentifier = @"Payment Methods Table"; - } - return self; -} - -- (void)viewDidAppear:(BOOL)animated { - [super viewDidAppear:animated]; - [self.tableView reloadData]; -} - -#pragma mark - - -- (void)didTapAdd { - [self.delegate selectPaymentMethodViewControllerDidRequestNew:self]; -} - -#pragma mark - Table view data source - -- (NSInteger)tableView:(__unused UITableView *)tableView numberOfRowsInSection:(__unused NSInteger)section -{ - return [self.paymentMethods count] ?: 0; -} - - -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath -{ - static NSString *paymentMethodCellIdentifier = @"paymentMethodCell"; - UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:paymentMethodCellIdentifier]; - if (cell == nil) { - cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:paymentMethodCellIdentifier]; - } - - BTPaymentMethod *paymentMethod = [self.paymentMethods objectAtIndex:indexPath.row]; - if ([paymentMethod isKindOfClass:[BTPayPalPaymentMethod class]]) { - BTPayPalPaymentMethod *payPalPaymentMethod = (BTPayPalPaymentMethod *)paymentMethod; - NSString *typeString = BTUILocalizedString(PAYPAL_CARD_BRAND); - NSMutableAttributedString *typeWithDescription = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@ %@", typeString, (payPalPaymentMethod.description ?: @"")]]; - [typeWithDescription addAttribute:NSFontAttributeName value:self.theme.controlTitleFont range:NSMakeRange(0, [typeString length])]; - [typeWithDescription addAttribute:NSFontAttributeName value:self.theme.controlDetailFont range:NSMakeRange([typeString length], [payPalPaymentMethod.description length])]; - cell.textLabel.attributedText = typeWithDescription; - - - BTUIVectorArtView *iconArt = [[BTUI braintreeTheme] vectorArtViewForPaymentMethodType:BTUIPaymentMethodTypePayPal]; - UIImage *icon = [iconArt imageOfSize:CGSizeMake(42, 23)]; - cell.imageView.contentMode = UIViewContentModeCenter; - cell.imageView.image = icon; - - } else if([paymentMethod isKindOfClass:[BTCardPaymentMethod class]]) { - BTCardPaymentMethod *card = (BTCardPaymentMethod *)paymentMethod; - - - BTUIPaymentMethodType uiPaymentMethodType = [BTDropInUtil uiForCardType:card.type]; - NSString *typeString = [BTUIViewUtil nameForPaymentMethodType:uiPaymentMethodType]; - - NSMutableAttributedString *typeWithDescription = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@ %@", typeString, card.description]]; - [typeWithDescription addAttribute:NSFontAttributeName value:self.theme.controlTitleFont range:NSMakeRange(0, [typeString length])]; - [typeWithDescription addAttribute:NSFontAttributeName value:self.theme.controlDetailFont range:NSMakeRange([typeString length], [card.description length])]; - cell.textLabel.attributedText = typeWithDescription; - - BTUIPaymentMethodType uiType = [BTDropInUtil uiForCardType:card.type]; - BTUIVectorArtView *iconArt = [[BTUI braintreeTheme] vectorArtViewForPaymentMethodType:uiType]; - UIImage *icon = [iconArt imageOfSize:CGSizeMake(42, 23)]; - cell.imageView.contentMode = UIViewContentModeCenter; - cell.imageView.image = icon; - } else if ([paymentMethod isKindOfClass:[BTCoinbasePaymentMethod class]]) { - BTCoinbasePaymentMethod *coinbasePaymentMethod = (BTCoinbasePaymentMethod *)paymentMethod; - NSString *typeString = BTUILocalizedString(PAYMENT_METHOD_TYPE_COINBASE); - NSMutableAttributedString *typeWithDescription = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%@ %@", typeString, (coinbasePaymentMethod.description ?: @"")]]; - [typeWithDescription addAttribute:NSFontAttributeName value:self.theme.controlTitleFont range:NSMakeRange(0, [typeString length])]; - [typeWithDescription addAttribute:NSFontAttributeName value:self.theme.controlDetailFont range:NSMakeRange([typeString length], [coinbasePaymentMethod.description length])]; - cell.textLabel.attributedText = typeWithDescription; - - - BTUIVectorArtView *iconArt = [[BTUI braintreeTheme] vectorArtViewForPaymentMethodType:BTUIPaymentMethodTypeCoinbase]; - UIImage *icon = [iconArt imageOfSize:CGSizeMake(42, 23)]; - cell.imageView.contentMode = UIViewContentModeCenter; - cell.imageView.image = icon; - - } else { - cell.textLabel.text = [paymentMethod description]; - cell.imageView.image = nil; - } - - - cell.accessoryType = (indexPath.row == self.selectedPaymentMethodIndex) ? UITableViewCellAccessoryCheckmark : UITableViewCellAccessoryNone; - - return cell; -} - -- (void)tableView:(__unused UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { - self.selectedPaymentMethodIndex = indexPath.row; - [self.tableView reloadData]; - [self.delegate selectPaymentMethodViewController:self didSelectPaymentMethodAtIndex:indexPath.row]; -} - -@end diff --git a/Pods/Braintree/Braintree/Drop-In/BTDropInUtil.h b/Pods/Braintree/Braintree/Drop-In/BTDropInUtil.h deleted file mode 100644 index 181710c..0000000 --- a/Pods/Braintree/Braintree/Drop-In/BTDropInUtil.h +++ /dev/null @@ -1,8 +0,0 @@ -#import "BTCardPaymentMethod.h" -#import "BTUIPaymentMethodType.h" - -@interface BTDropInUtil : NSObject - -+ (BTUIPaymentMethodType)uiForCardType:(BTCardType)cardType; - -@end diff --git a/Pods/Braintree/Braintree/Drop-In/BTDropInUtil.m b/Pods/Braintree/Braintree/Drop-In/BTDropInUtil.m deleted file mode 100644 index 30dcc05..0000000 --- a/Pods/Braintree/Braintree/Drop-In/BTDropInUtil.m +++ /dev/null @@ -1,24 +0,0 @@ -#import "BTDropInUtil.h" - -@implementation BTDropInUtil - -+ (BTUIPaymentMethodType)uiForCardType:(BTCardType)cardType { - switch (cardType) { - case BTCardTypeUnknown: return BTUIPaymentMethodTypeUnknown; - case BTCardTypeAMEX: return BTUIPaymentMethodTypeAMEX; - case BTCardTypeDinersClub: return BTUIPaymentMethodTypeDinersClub; - case BTCardTypeDiscover: return BTUIPaymentMethodTypeDiscover; - case BTCardTypeMasterCard: return BTUIPaymentMethodTypeMasterCard; - case BTCardTypeVisa: return BTUIPaymentMethodTypeVisa; - case BTCardTypeJCB: return BTUIPaymentMethodTypeJCB; - case BTCardTypeLaser: return BTUIPaymentMethodTypeLaser; - case BTCardTypeMaestro: return BTUIPaymentMethodTypeMaestro; - case BTCardTypeUnionPay: return BTUIPaymentMethodTypeUnionPay; - case BTCardTypeSolo: return BTUIPaymentMethodTypeSolo; - case BTCardTypeSwitch: return BTUIPaymentMethodTypeSwitch; - case BTCardTypeUKMaestro: return BTUIPaymentMethodTypeUKMaestro; - default: return BTUIPaymentMethodTypeUnknown; - } -} - -@end diff --git a/Pods/Braintree/Braintree/Drop-In/BTDropInViewController.h b/Pods/Braintree/Braintree/Drop-In/BTDropInViewController.h deleted file mode 100644 index 94780d8..0000000 --- a/Pods/Braintree/Braintree/Drop-In/BTDropInViewController.h +++ /dev/null @@ -1,125 +0,0 @@ -#import -#import "Braintree-API.h" - -@class BTUI; -@protocol BTDropInViewControllerDelegate; - -/// A view controller that provides a quick and easy payment experience. -/// -/// When initialized with a Braintree client, the Drop In will prompt a user for payment details, -/// based on your Gatweay configuration. The Drop In payment form supports cards and PayPal. When -/// using Drop In, you don't need to worry about which methods are already on file with Braintree; -/// newly created methods are saved as part of the Drop In flow as needed. -/// -/// Upon successful form submission, you will receive a payment method nonce, which you can -/// transact with on your server. Client and validation errors are handled internally by Drop In; -/// other types of Errors are rare and generally irrecoverable. -/// -/// The Drop In view controller delegates presentation and dismissal to the developer. It has been -/// most thoroughly tested in the context of a UINavigationController. -/// -/// The Drop In can send success and cancelation messages to the developer via the -/// delegate. See `delegate` and `BTDropInViewControllerDelegate`. -/// -/// You can customize Drop In in various ways, for example, you can change the primary Call To -/// Action button text. For visual customzation options see `theme` and `BTUI`. Like any -/// UIViewController, you can setup properties like `title` or `navigationBar.rightBarButtonItem`. -@interface BTDropInViewController : UIViewController - -/// Initialize a new Drop In. -/// -/// @param client a client token that has been initialized with a client token -/// -/// @return A new Drop In view controller that is ready to be presented. -- (instancetype)initWithClient:(BTClient *)client; - -/// The Braintree client used internally for communication with the Gateway. This property is exposed -/// to enable the use of other UIViewController initializers, for example, when using Storyboards. -/// -/// @see BTClient -@property (nonatomic, strong) BTClient *client; - -/// The array of `BTPaymentMethod *` payment methods on file. These payment methods may be in the Vault. -/// Most payment methods are automatically Vaulted if the client token was generated with a customer ID. -@property (nonatomic, strong) NSArray *paymentMethods; - -#pragma mark State Change Notifications - -/// The delegate that, if set, is notified of success or failure. -@property (nonatomic, weak) id delegate; - -#pragma mark Customization - -/// The presentation theme to use for the Drop In. -@property (nonatomic, strong) BTUI *theme; - -/// Primary text to display in the summary view. -/// -/// Intended to provide a name the overall transaction taking place. For example, "1 Item", "1 Year Subscription", "Yellow T-Shirt", etc. -/// -/// If summaryTitle or summaryDescription are nil, then the summary view is not shown. -@property (nonatomic, copy) NSString *summaryTitle; - -/// Detail text to display in the summary view. -/// -/// Intended to provide a few words of detail. For example, "Ships in Five Days", "15 feet by 12 feet" or "We know you'll love it" -/// -/// If summaryTitle or summaryDescription are nil, then the summary view is not shown. -@property (nonatomic, copy) NSString *summaryDescription; - -/// A string representation of the grand total amount -/// -/// For example, "$12.95" -@property (nonatomic, copy) NSString *displayAmount; - -/// The text to display in the primary call-to-action button. For example: "$19 - Purchase" or "Subscribe Now". -@property (nonatomic, copy) NSString *callToActionText; - -/// Whether to hide the call to action control. -/// -/// When true, a submit button will be added as a bar button item (which -/// relies on the drop-in view controller being embedded in a navigation controller. -/// -/// Defaults to `NO`. -/// -/// @see callToAction -/// @see callToActionAmount -@property (nonatomic, assign) BOOL shouldHideCallToAction; - -/// Fetches the customer's saved payment methods and populates Drop In with them. -/// -/// @note For the best user experience, you should call this method as early as -/// possible (after initializing BTDropInViewController, before presenting it) -/// in order to avoid a loading spinner. -- (void)fetchPaymentMethods; - - -@end - -/// A protocol for BTDropInViewController completion notifications. -@protocol BTDropInViewControllerDelegate - -/// Informs the delegate when the user has successfully provided a payment method. -/// -/// Upon receiving this message, you should dismiss Drop In. -/// -/// @param viewController The Drop In view controller informing its delegate of success -/// @param paymentMethod The selected (and possibly newly created) payment method. -- (void)dropInViewController:(BTDropInViewController *)viewController didSucceedWithPaymentMethod:(BTPaymentMethod *)paymentMethod; - -/// Informs the delegate when the user has decided to cancel out of the Drop In payment form. -/// -/// Drop In handles its own error cases, so this cancelation is user initiated and -/// irreversable. Upon receiving this message, you should dismiss Drop In. -/// -/// @param viewController The Drop In view controller informing its delegate of failure. -- (void)dropInViewControllerDidCancel:(BTDropInViewController *)viewController; - -@optional - -/// Informs the delegate when the user has entered or selected payment information. -/// -/// @param viewController The Drop In view controller informing its delegate -- (void)dropInViewControllerWillComplete:(BTDropInViewController *)viewController; - -@end diff --git a/Pods/Braintree/Braintree/Drop-In/BTDropInViewController.m b/Pods/Braintree/Braintree/Drop-In/BTDropInViewController.m deleted file mode 100644 index d2d5193..0000000 --- a/Pods/Braintree/Braintree/Drop-In/BTDropInViewController.m +++ /dev/null @@ -1,669 +0,0 @@ -#import "BTDropInViewController.h" -#import "BTDropInContentView.h" -#import "BTDropInSelectPaymentMethodViewController.h" -#import "BTUICardFormView.h" -#import "BTUIScrollView.h" -#import "BTDropInUtil.h" -#import "Braintree-API.h" -#import "BTClient+BTPayPal.h" -#import "BTDropInErrorState.h" -#import "BTDropInErrorAlert.h" -#import "BTDropInLocalizedString.h" -#import "BTPaymentMethodCreationDelegate.h" -#import "BTClient_Internal.h" -#import "BTLogger_Internal.h" -#import "BTCoinbase.h" - -@interface BTDropInViewController () < BTDropInSelectPaymentMethodViewControllerDelegate, BTUIScrollViewScrollRectToVisibleDelegate, BTUICardFormViewDelegate, BTPaymentMethodCreationDelegate, BTDropInViewControllerDelegate> - -@property (nonatomic, strong) BTDropInContentView *dropInContentView; -@property (nonatomic, strong) BTDropInViewController *addPaymentMethodDropInViewController; -@property (nonatomic, strong) BTUIScrollView *scrollView; -@property (nonatomic, assign) NSInteger selectedPaymentMethodIndex; -@property (nonatomic, strong) UIBarButtonItem *submitBarButtonItem; - -/// Whether currently visible. -@property (nonatomic, assign) BOOL visible; -@property (nonatomic, assign) NSTimeInterval visibleStartTime; - -/// If YES, fetch and display payment methods on file, summary view, CTA control. -/// If NO, do not fetch payment methods, and just show UI to add a new method. -/// -/// Defaults to `YES`. -@property (nonatomic, assign) BOOL fullForm; - -/// Strong reference to a BTDropInErrorAlert. Reference is needed to -/// handle user input from UIAlertView. -@property (nonatomic, strong) BTDropInErrorAlert *fetchPaymentMethodsErrorAlert; - -/// Strong reference to BTDropInErrorAlert. Reference is needed to -/// handle user input from UIAlertView. -@property (nonatomic, strong) BTDropInErrorAlert *saveAccountErrorAlert; - -@property (nonatomic, assign) BOOL cardEntryDidBegin; - -@property (nonatomic, assign) BOOL originalCoinbaseStoreInVault; - -@end - -@implementation BTDropInViewController - -- (instancetype)initWithClient:(BTClient *)client { - self = [self init]; - if (self) { - self.theme = [BTUI braintreeTheme]; - self.dropInContentView = [[BTDropInContentView alloc] init]; - - self.client = [client copyWithMetadata:^(BTClientMutableMetadata *metadata) { - metadata.integration = BTClientMetadataIntegrationDropIn; - }]; - self.dropInContentView.paymentButton.client = self.client; - self.dropInContentView.paymentButton.delegate = self; - - self.dropInContentView.hidePaymentButton = !self.dropInContentView.paymentButton.hasAvailablePaymentMethod; - - self.selectedPaymentMethodIndex = NSNotFound; - self.dropInContentView.state = BTDropInContentViewStateActivity; - self.fullForm = YES; - _callToActionText = BTDropInLocalizedString(DEFAULT_CALL_TO_ACTION); - } - return self; -} - -- (void)viewDidLoad { - [super viewDidLoad]; - self.edgesForExtendedLayout = UIRectEdgeNone; - - self.view.backgroundColor = self.theme.viewBackgroundColor; - - // Configure Subviews - self.scrollView = [[BTUIScrollView alloc] init]; - self.scrollView.scrollRectToVisibleDelegate = self; - self.scrollView.bounces = YES; - self.scrollView.scrollsToTop = YES; - self.scrollView.alwaysBounceVertical = YES; - self.scrollView.translatesAutoresizingMaskIntoConstraints = NO; - self.scrollView.delaysContentTouches = NO; - self.scrollView.keyboardDismissMode = UIScrollViewKeyboardDismissModeInteractive; - - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(keyboardWillHide:) - name:UIKeyboardWillHideNotification - object:nil]; - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(keyboardWillShow:) - name:UIKeyboardWillShowNotification - object:nil]; - - self.dropInContentView.translatesAutoresizingMaskIntoConstraints = NO; - - self.dropInContentView.cardForm.delegate = self; - self.dropInContentView.cardForm.alphaNumericPostalCode = YES; - self.dropInContentView.cardForm.optionalFields = self.optionalFieldsFromClientToken; - - [self.dropInContentView.changeSelectedPaymentMethodButton addTarget:self - action:@selector(tappedChangePaymentMethod) - forControlEvents:UIControlEventTouchUpInside]; - - [self.dropInContentView.ctaControl addTarget:self - action:@selector(tappedSubmitForm) - forControlEvents:UIControlEventTouchUpInside]; - - self.dropInContentView.cardFormSectionHeader.textColor = self.theme.sectionHeaderTextColor; - self.dropInContentView.cardFormSectionHeader.font = self.theme.sectionHeaderFont; - self.dropInContentView.cardFormSectionHeader.text = BTDropInLocalizedString(CARD_FORM_SECTION_HEADER); - - - // Call the setters explicitly - [self setCallToActionText:_callToActionText]; - [self setSummaryDescription:_summaryDescription]; - [self setSummaryTitle:_summaryTitle]; - [self setDisplayAmount:_displayAmount]; - [self setShouldHideCallToAction:_shouldHideCallToAction]; - - [self.dropInContentView setNeedsUpdateConstraints]; - - // Add Subviews - [self.view addSubview:self.scrollView]; - [self.scrollView addSubview:self.dropInContentView]; - - // Add initial constraints - [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[scrollView]|" - options:0 - metrics:nil - views:@{@"scrollView": self.scrollView}]]; - [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[scrollView]|" - options:0 - metrics:nil - views:@{@"scrollView": self.scrollView}]]; - - [self.scrollView addConstraint:[NSLayoutConstraint constraintWithItem:self.dropInContentView - attribute:NSLayoutAttributeWidth - relatedBy:NSLayoutRelationEqual - toItem:self.scrollView - attribute:NSLayoutAttributeWidth - multiplier:1 - constant:0]]; - - [self.scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[dropInContentView]|" - options:0 - metrics:nil - views:@{@"dropInContentView": self.dropInContentView}]]; - - [self.scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[dropInContentView]|" - options:0 - metrics:nil - views:@{@"dropInContentView": self.dropInContentView}]]; - - if (!self.fullForm) { - self.dropInContentView.state = BTDropInContentViewStateForm; - } - - [self updateValidity]; -} - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - self.visible = YES; - self.visibleStartTime = [NSDate timeIntervalSinceReferenceDate]; - - // Ensure dropInContentView is visible. See viewWillDisappear below - self.dropInContentView.alpha = 1.0f; - - if (self.fullForm) { - [self.client postAnalyticsEvent:@"dropin.ios.appear"]; - } -} - -- (void)viewWillDisappear:(BOOL)animated { - [super viewWillDisappear:animated]; - - // Quickly fade out the content view to prevent a jarring effect - // as keyboard dimisses. - [UIView animateWithDuration:self.theme.quickTransitionDuration animations:^{ - self.dropInContentView.alpha = 0.0f; - }]; - if (self.fullForm) { - [self.client postAnalyticsEvent:@"dropin.ios.disappear"]; - } -} - -- (void)viewDidDisappear:(BOOL)animated { - [super viewDidDisappear:animated]; - self.visible = NO; -} - -#pragma mark - BTUIScrollViewScrollRectToVisibleDelegate implementation - -// Delegate implementation to handle "custom" autoscrolling via the BTUIScrollView class -// -// Scroll priorities are: -// 1. Attempt to display the submit button, even if it means the card form title is not visible. -// 2. If that isn't possible, at least attempt to show the card form title. -// 3. If that fails, fail just do the default behavior (relevant in landscape). -// -// Some cleanup here could attempt to parameterize or make sane some of the magic number pixel nudging. -- (void)scrollView:(BTUIScrollView *)scrollView requestsScrollRectToVisible:(CGRect)rect animated:(BOOL)animated { - - CGRect targetRect = rect; - - CGRect desiredVisibleTopRect = [self.scrollView convertRect:self.dropInContentView.cardFormSectionHeader.frame fromView:self.dropInContentView]; - desiredVisibleTopRect.origin.y -= 7; - CGRect desiredVisibleBottomRect; - if (self.dropInContentView.ctaControl.hidden) { - desiredVisibleBottomRect = desiredVisibleTopRect; - } else { - desiredVisibleBottomRect = [self.scrollView convertRect:self.dropInContentView.ctaControl.frame fromView:self.dropInContentView]; - } - - CGFloat visibleAreaHeight = self.scrollView.frame.size.height - self.scrollView.contentInset.bottom - self.scrollView.contentInset.top; - - CGRect weightedBottomRect = CGRectUnion(targetRect, desiredVisibleBottomRect); - if (weightedBottomRect.size.height <= visibleAreaHeight) { - targetRect = weightedBottomRect; - } - - CGRect weightedTopRect = CGRectUnion(targetRect, desiredVisibleTopRect); - - if (weightedTopRect.size.height <= visibleAreaHeight) { - targetRect = weightedTopRect; - targetRect.size.height = MIN(visibleAreaHeight, CGRectGetMaxY(weightedBottomRect) - CGRectGetMinY(targetRect)); - } - - [scrollView defaultScrollRectToVisible:targetRect animated:animated]; -} - -#pragma mark - Keyboard behavior - -- (void)keyboardWillHide:(__unused NSNotification *)inputViewNotification { - UIEdgeInsets ei = UIEdgeInsetsMake(0.0, 0.0, 0.0, 0.0); - [UIView animateWithDuration:self.theme.transitionDuration animations:^{ - self.scrollView.scrollIndicatorInsets = ei; - self.scrollView.contentInset = ei; - }]; -} - -- (void)keyboardWillShow:(__unused NSNotification *)inputViewNotification { - CGRect inputViewFrame = [[[inputViewNotification userInfo] valueForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue]; - CGRect inputViewFrameInView = [self.view convertRect:inputViewFrame fromView:nil]; - CGRect intersection = CGRectIntersection(self.scrollView.frame, inputViewFrameInView); - UIEdgeInsets ei = UIEdgeInsetsMake(0.0, 0.0, intersection.size.height, 0.0); - self.scrollView.scrollIndicatorInsets = ei; - self.scrollView.contentInset = ei; -} - -#pragma mark - Handlers - -- (void)tappedChangePaymentMethod { - UIViewController *rootViewController; - if (self.paymentMethods.count == 1) { - rootViewController = self.addPaymentMethodDropInViewController; - } else { - BTDropInSelectPaymentMethodViewController *selectPaymentMethod = [[BTDropInSelectPaymentMethodViewController alloc] init]; - selectPaymentMethod.title = BTDropInLocalizedString(SELECT_PAYMENT_METHOD_TITLE); - selectPaymentMethod.theme = self.theme; - selectPaymentMethod.paymentMethods = self.paymentMethods; - selectPaymentMethod.selectedPaymentMethodIndex = self.selectedPaymentMethodIndex; - selectPaymentMethod.delegate = self; - selectPaymentMethod.client = self.client; - rootViewController = selectPaymentMethod; - } - rootViewController.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel - target:self - action:@selector(didCancelChangePaymentMethod)]; - - UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:rootViewController]; - [self presentViewController:navController animated:YES completion:nil]; -} - -- (void)tappedSubmitForm { - [self showLoadingState:YES]; - - BTPaymentMethod *paymentMethod = [self selectedPaymentMethod]; - if (paymentMethod != nil) { - [self showLoadingState:NO]; - [self informDelegateWillComplete]; - [self informDelegateDidAddPaymentMethod:paymentMethod]; - } else if (!self.dropInContentView.cardForm.hidden) { - BTUICardFormView *cardForm = self.dropInContentView.cardForm; - - BTClient *client = [self.client copyWithMetadata:^(BTClientMutableMetadata *metadata) { - metadata.source = BTClientMetadataSourceForm; - }]; - - if (cardForm.valid) { - [self informDelegateWillComplete]; - - BTClientCardRequest *request = [[BTClientCardRequest alloc] init]; - request.number = cardForm.number; - request.expirationMonth = cardForm.expirationMonth; - request.expirationYear = cardForm.expirationYear; - request.cvv = cardForm.cvv; - request.postalCode = cardForm.postalCode; - request.shouldValidate = YES; - - [client postAnalyticsEvent:@"dropin.ios.add-card.save"]; - [client saveCardWithRequest:request - success:^(BTCardPaymentMethod *card) { - [client postAnalyticsEvent:@"dropin.ios.add-card.success"]; - [self showLoadingState:NO]; - [self informDelegateDidAddPaymentMethod:card]; - } - failure:^(NSError *error) { - [self showLoadingState:NO]; - [client postAnalyticsEvent:@"dropin.ios.add-card.failed"]; - if ([error.domain isEqualToString:BTBraintreeAPIErrorDomain] && error.code == BTCustomerInputErrorInvalid) { - [self informUserDidFailWithError:error]; - } - }]; - } else { - NSString *localizedAlertTitle = BTDropInLocalizedString(ERROR_SAVING_CARD_ALERT_TITLE); - NSString *localizedAlertMessage = BTDropInLocalizedString(ERROR_SAVING_CARD_MESSAGE); - BTDropInErrorAlert *alert = [[BTDropInErrorAlert alloc] initWithCancel:nil retry:nil]; - alert.title = localizedAlertTitle; - alert.message = localizedAlertMessage; - [alert show]; - } - } -} - -- (void)didCancelChangePaymentMethod { - [self dismissViewControllerAnimated:YES completion:nil]; -} - -#pragma mark Progress UI - -- (void)showLoadingState:(BOOL)loadingState { - [self.dropInContentView.ctaControl showLoadingState:loadingState]; - self.submitBarButtonItem.enabled = !loadingState; - if (self.submitBarButtonItem != nil) { - [BTUI activityIndicatorViewStyleForBarTintColor:self.navigationController.navigationBar.barTintColor]; - UIActivityIndicatorView *submitInProgressActivityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite]; - [submitInProgressActivityIndicator startAnimating]; - UIBarButtonItem *submitInProgressActivityIndicatorBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:submitInProgressActivityIndicator]; - [self.navigationItem setRightBarButtonItem:(loadingState ? submitInProgressActivityIndicatorBarButtonItem : self.submitBarButtonItem) animated:YES]; - } -} - -#pragma mark Error UI - -- (void)informUserDidFailWithError:(__unused NSError *)error { - BTDropInErrorState *state = [[BTDropInErrorState alloc] initWithError:error]; - - [self.dropInContentView.cardForm showTopLevelError:state.errorTitle]; - for (NSNumber *fieldNumber in state.highlightedFields) { - BTUICardFormField field = [fieldNumber unsignedIntegerValue]; - [self.dropInContentView.cardForm showErrorForField:field]; - } -} - -#pragma mark Card Form Delegate methods - -- (void)cardFormViewDidChange:(__unused BTUICardFormView *)cardFormView { - - if (!self.cardEntryDidBegin) { - [self.client postAnalyticsEvent:@"dropin.ios.add-card.start"]; - self.cardEntryDidBegin = YES; - } - - [self updateValidity]; -} - -#pragma mark Drop In Select Payment Method Table View Controller Delegate methods - -- (void)selectPaymentMethodViewController:(BTDropInSelectPaymentMethodViewController *)viewController - didSelectPaymentMethodAtIndex:(NSUInteger)index { - self.selectedPaymentMethodIndex = index; - [viewController.navigationController dismissViewControllerAnimated:YES completion:nil]; -} - -- (void)selectPaymentMethodViewControllerDidRequestNew:(BTDropInSelectPaymentMethodViewController *)viewController { - [viewController.navigationController pushViewController:self.addPaymentMethodDropInViewController animated:YES]; -} - -#pragma mark BTDropInViewControllerDelegate implementation - -- (void)dropInViewController:(BTDropInViewController *)viewController didSucceedWithPaymentMethod:(BTPaymentMethod *)paymentMethod { - [viewController.navigationController dismissViewControllerAnimated:YES completion:nil]; - - NSMutableArray *newPaymentMethods = [NSMutableArray arrayWithArray:self.paymentMethods]; - [newPaymentMethods insertObject:paymentMethod atIndex:0]; - self.paymentMethods = newPaymentMethods; -} - -- (void)dropInViewControllerDidCancel:(BTDropInViewController *)viewController { - [viewController.navigationController dismissViewControllerAnimated:YES completion:nil]; -} - -#pragma mark BTPaymentMethodCreationDelegate - -- (void)paymentMethodCreator:(__unused id)sender requestsPresentationOfViewController:(UIViewController *)viewController { - // In order to modally present PayPal on top of a nested Drop In, we need to first dismiss the - // nested Drop In. Canceling will return to the outer Drop In. - if ([self presentedViewController]) { - BTDropInContentViewStateType originalState = self.dropInContentView.state; - self.dropInContentView.state = BTDropInContentViewStateActivity; - [self dismissViewControllerAnimated:YES completion:^{ - [self presentViewController:viewController animated:YES completion:^{ - self.dropInContentView.state = originalState; - }]; - }]; - } else { - [self presentViewController:viewController animated:YES completion:nil]; - } -} - -- (void)paymentMethodCreator:(__unused id)sender requestsDismissalOfViewController:(__unused UIViewController *)viewController { - [self dismissViewControllerAnimated:YES completion:nil]; -} - -- (void)paymentMethodCreatorWillPerformAppSwitch:(__unused id)sender { - // If there is a presented view controller, dismiss it before app switch - // so that the result of the app switch can be shown in this view controller. - if ([self presentedViewController]) { - [self dismissViewControllerAnimated:YES completion:nil]; - } -} - -- (void)paymentMethodCreatorWillProcess:(__unused id)sender { - self.dropInContentView.state = BTDropInContentViewStateActivity; - - self.originalCoinbaseStoreInVault = [[BTCoinbase sharedCoinbase] storeInVault]; - [[BTCoinbase sharedCoinbase] setStoreInVault:YES]; -} - -- (void)paymentMethodCreator:(__unused id)sender didCreatePaymentMethod:(BTPaymentMethod *)paymentMethod { - [[BTCoinbase sharedCoinbase] setStoreInVault:self.originalCoinbaseStoreInVault]; - - NSMutableArray *newPaymentMethods = [NSMutableArray arrayWithArray:self.paymentMethods]; - [newPaymentMethods insertObject:paymentMethod atIndex:0]; - self.paymentMethods = newPaymentMethods; - - // Let the addPaymentMethodDropInViewController release - self.addPaymentMethodDropInViewController = nil; -} - -- (void)paymentMethodCreator:(id)sender didFailWithError:(NSError *)error { - [[BTCoinbase sharedCoinbase] setStoreInVault:self.originalCoinbaseStoreInVault]; - - NSString *savePaymentMethodErrorAlertTitle; - if ([error localizedDescription]) { - savePaymentMethodErrorAlertTitle = [error localizedDescription]; - } else { - savePaymentMethodErrorAlertTitle = BTDropInLocalizedString(ERROR_ALERT_CONNECTION_ERROR); - } - - if (sender != self.dropInContentView.paymentButton) { - - self.saveAccountErrorAlert = [[BTDropInErrorAlert alloc] initWithCancel:^{ - // Use the paymentMethods setter to update state - [self setPaymentMethods:_paymentMethods]; - self.saveAccountErrorAlert = nil; - } retry:nil]; - self.saveAccountErrorAlert.title = savePaymentMethodErrorAlertTitle; - [self.saveAccountErrorAlert show]; - } else { - self.saveAccountErrorAlert = [[BTDropInErrorAlert alloc] initWithCancel:^{ - // Use the paymentMethods setter to update state - [self setPaymentMethods:_paymentMethods]; - self.saveAccountErrorAlert = nil; - } retry:nil]; - self.saveAccountErrorAlert.title = savePaymentMethodErrorAlertTitle; - [self.saveAccountErrorAlert show]; - } - - // Let the addPaymentMethodDropInViewController release - self.addPaymentMethodDropInViewController = nil; -} - -- (void)paymentMethodCreatorDidCancel:(__unused id)sender { - [[BTCoinbase sharedCoinbase] setStoreInVault:self.originalCoinbaseStoreInVault]; - - // Refresh payment methods display - self.paymentMethods = self.paymentMethods; - - // Let the addPaymentMethodDropInViewController release - self.addPaymentMethodDropInViewController = nil; -} - -#pragma mark Delegate Notifications - -- (void)informDelegateWillComplete { - if ([self.delegate respondsToSelector:@selector(dropInViewControllerWillComplete:)]) { - [self.delegate dropInViewControllerWillComplete:self]; - } -} - -- (void)informDelegateDidAddPaymentMethod:(BTPaymentMethod *)paymentMethod { - if ([self.delegate respondsToSelector:@selector(dropInViewController:didSucceedWithPaymentMethod:)]) { - [self.delegate dropInViewController:self - didSucceedWithPaymentMethod:paymentMethod]; - } -} - -- (void)informDelegateDidCancel { - if ([self.delegate respondsToSelector:@selector(dropInViewControllerDidCancel:)]) { - [self.delegate dropInViewControllerDidCancel:self]; - } -} - -#pragma mark User Supplied Parameters - -- (void)setFullForm:(BOOL)fullForm { - _fullForm = fullForm; - if (!self.fullForm) { - self.dropInContentView.state = BTDropInContentViewStateForm; - - } -} - -- (void)setShouldHideCallToAction:(BOOL)shouldHideCallToAction { - _shouldHideCallToAction = shouldHideCallToAction; - self.dropInContentView.hideCTA = shouldHideCallToAction; - - self.submitBarButtonItem = shouldHideCallToAction ? [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemSave - target:self - action:@selector(tappedSubmitForm)] : nil; - self.submitBarButtonItem.style = UIBarButtonItemStyleDone; - self.navigationItem.rightBarButtonItem = self.submitBarButtonItem; -} - -- (void)setSummaryTitle:(NSString *)summaryTitle { - _summaryTitle = summaryTitle; - self.dropInContentView.summaryView.slug = summaryTitle; - self.dropInContentView.hideSummary = (self.summaryTitle == nil || self.summaryDescription == nil); -} - -- (void)setSummaryDescription:(__unused NSString *)summaryDescription { - _summaryDescription = summaryDescription; - self.dropInContentView.summaryView.summary = summaryDescription; - self.dropInContentView.hideSummary = (self.summaryTitle == nil || self.summaryDescription == nil); -} - -- (void)setDisplayAmount:(__unused NSString *)displayAmount { - _displayAmount = displayAmount; - self.dropInContentView.summaryView.amount = displayAmount; -} - -- (void)setCallToActionText:(__unused NSString *)callToActionText { - _callToActionText = callToActionText; - self.dropInContentView.ctaControl.callToAction = callToActionText; -} - -#pragma mark Data - -- (void)setPaymentMethods:(NSArray *)paymentMethods { - _paymentMethods = paymentMethods; - BTDropInContentViewStateType newState; - - if ([self.paymentMethods count] == 0) { - self.selectedPaymentMethodIndex = NSNotFound; - newState = BTDropInContentViewStateForm; - } else { - self.selectedPaymentMethodIndex = 0; - newState = BTDropInContentViewStatePaymentMethodsOnFile; - } - if (self.visible) { - NSTimeInterval elapsed = [NSDate timeIntervalSinceReferenceDate] - self.visibleStartTime; - if (elapsed < self.theme.minimumVisibilityTime) { - NSTimeInterval delay = self.theme.minimumVisibilityTime - elapsed; - - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delay * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - [self.dropInContentView setState:newState animate:YES]; - [self updateValidity]; - }); - return; - } - } - [self.dropInContentView setState:newState animate:self.visible]; - [self updateValidity]; -} - -- (void)setSelectedPaymentMethodIndex:(NSInteger)selectedPaymentMethodIndex { - _selectedPaymentMethodIndex = selectedPaymentMethodIndex; - if (selectedPaymentMethodIndex != NSNotFound) { - BTPaymentMethod *defaultPaymentMethod = [self selectedPaymentMethod]; - if ([defaultPaymentMethod isKindOfClass:[BTCardPaymentMethod class]]) { - BTUIPaymentMethodType uiPaymentMethodType = [BTDropInUtil uiForCardType:((BTCardPaymentMethod *)defaultPaymentMethod).type]; - self.dropInContentView.selectedPaymentMethodView.type = uiPaymentMethodType; - } else if ([defaultPaymentMethod isKindOfClass:[BTPayPalPaymentMethod class]]) { - self.dropInContentView.selectedPaymentMethodView.type = BTUIPaymentMethodTypePayPal; - } else if ([defaultPaymentMethod isKindOfClass:[BTCoinbasePaymentMethod class]]) { - self.dropInContentView.selectedPaymentMethodView.type = BTUIPaymentMethodTypeCoinbase; - } else { - self.dropInContentView.selectedPaymentMethodView.type = BTUIPaymentMethodTypeUnknown; - } - self.dropInContentView.selectedPaymentMethodView.detailDescription = defaultPaymentMethod.description; - } - [self updateValidity]; -} - -- (BTPaymentMethod *)selectedPaymentMethod { - return self.selectedPaymentMethodIndex != NSNotFound ? self.paymentMethods[self.selectedPaymentMethodIndex] : nil; -} - -- (void)updateValidity { - BTPaymentMethod *paymentMethod = [self selectedPaymentMethod]; - BOOL valid = (paymentMethod != nil) || (!self.dropInContentView.cardForm.hidden && self.dropInContentView.cardForm.valid); - - [self.navigationItem.rightBarButtonItem setEnabled:valid]; - [UIView animateWithDuration:self.theme.quickTransitionDuration animations:^{ - self.dropInContentView.ctaControl.enabled = valid; - }]; -} - -- (BTUICardFormOptionalFields)optionalFieldsFromClientToken { - NSSet *challenges = self.client.challenges; - - static NSString *cvvChallenge = @"cvv"; - static NSString *postalCodeChallenge = @"postal_code"; - - if ([challenges containsObject:cvvChallenge] && [challenges containsObject:postalCodeChallenge]) { - return BTUICardFormOptionalFieldsAll; - } else if ([challenges containsObject:cvvChallenge]) { - return BTUICardFormOptionalFieldsCvv; - } else if ([challenges containsObject:postalCodeChallenge]) { - return BTUICardFormOptionalFieldsPostalCode; - } else { - return BTUICardFormOptionalFieldsNone; - } -} - -- (void)fetchPaymentMethods { - BOOL networkActivityIndicatorState = [[UIApplication sharedApplication] isNetworkActivityIndicatorVisible]; - [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:YES]; - - [self.client fetchPaymentMethodsWithSuccess:^(NSArray *paymentMethods) { - [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:networkActivityIndicatorState]; - self.paymentMethods = paymentMethods; - } failure:^(__unused NSError *error) { - [[UIApplication sharedApplication] setNetworkActivityIndicatorVisible:networkActivityIndicatorState]; - - self.fetchPaymentMethodsErrorAlert = [[BTDropInErrorAlert alloc] initWithCancel:^{ - [self informDelegateDidCancel]; - self.fetchPaymentMethodsErrorAlert = nil; - } retry:^{ - [self fetchPaymentMethods]; - self.fetchPaymentMethodsErrorAlert = nil; - }]; - - [self.fetchPaymentMethodsErrorAlert show]; - }]; -} - -#pragma mark - Helpers - -- (BTDropInViewController *)addPaymentMethodDropInViewController { - if (!_addPaymentMethodDropInViewController) { - _addPaymentMethodDropInViewController = [[BTDropInViewController alloc] initWithClient:self.client]; - - _addPaymentMethodDropInViewController.title = BTDropInLocalizedString(ADD_PAYMENT_METHOD_VIEW_CONTROLLER_TITLE); - _addPaymentMethodDropInViewController.fullForm = NO; - _addPaymentMethodDropInViewController.shouldHideCallToAction = YES; - _addPaymentMethodDropInViewController.delegate = self; - _addPaymentMethodDropInViewController.dropInContentView.paymentButton.delegate = self; - } - return _addPaymentMethodDropInViewController; -} - -@end diff --git a/Pods/Braintree/Braintree/Drop-In/BTPaymentButton.h b/Pods/Braintree/Braintree/Drop-In/BTPaymentButton.h deleted file mode 100644 index a927961..0000000 --- a/Pods/Braintree/Braintree/Drop-In/BTPaymentButton.h +++ /dev/null @@ -1,22 +0,0 @@ -#import - -#import "BTUIThemedView.h" - -@class BTClient, BTPaymentMethod; -@protocol BTPaymentMethodCreationDelegate; - -@interface BTPaymentButton : BTUIThemedView - -- (instancetype)initWithPaymentProviderTypes:(NSOrderedSet *)paymentAuthorizationTypes; -- (id)initWithFrame:(CGRect)frame; -- (id)initWithCoder:(NSCoder *)aDecoder; -- (id)init; - -@property (nonatomic, strong) NSOrderedSet *enabledPaymentProviderTypes; - -@property (nonatomic, strong) BTClient *client; -@property (nonatomic, weak) id delegate; - -@property (nonatomic, readonly) BOOL hasAvailablePaymentMethod; - -@end diff --git a/Pods/Braintree/Braintree/Drop-In/BTPaymentButton.m b/Pods/Braintree/Braintree/Drop-In/BTPaymentButton.m deleted file mode 100644 index 23eeee6..0000000 --- a/Pods/Braintree/Braintree/Drop-In/BTPaymentButton.m +++ /dev/null @@ -1,330 +0,0 @@ -#import "BTPaymentButton.h" - -#import "BTClient.h" -#import "BTLogger_Internal.h" -#import "BTUIVenmoButton.h" -#import "BTUIPayPalButton.h" -#import "BTUICoinbaseButton.h" - -#import "BTPaymentProvider.h" -#import "BTUIHorizontalButtonStackCollectionViewFlowLayout.h" -#import "BTUIPaymentButtonCollectionViewCell.h" - -NSString *BTPaymentButtonPaymentButtonCellIdentifier = @"BTPaymentButtonPaymentButtonCellIdentifier"; - -@interface BTPaymentButton () -@property (nonatomic, strong) UICollectionView *paymentButtonsCollectionView; -@property (nonatomic, strong) BTPaymentProvider *paymentProvider; - -@property (nonatomic, strong) UIView *topBorder; -@property (nonatomic, strong) UIView *bottomBorder; -@property (nonatomic, strong) NSOrderedSet *filteredEnabledPaymentProviderTypes; - -@end - -@implementation BTPaymentButton - -- (id)init { - self = [super init]; - return self; -} - -- (instancetype)initWithPaymentProviderTypes:(NSOrderedSet *)enabledPaymentProviderTypes { - self = [self init]; - if (self) { - [self setupViews]; - if (enabledPaymentProviderTypes) { - self.enabledPaymentProviderTypes = enabledPaymentProviderTypes; - } - } - return self; -} - -- (id)initWithFrame:(CGRect)frame -{ - self = [super initWithFrame:frame]; - if (self) { - [self setupViews]; - } - return self; -} - -- (id)initWithCoder:(NSCoder *)aDecoder { - self = [super initWithCoder:aDecoder]; - if (self) { - [self setupViews]; - } - return self; -} - -- (void)setupViews { - self.clipsToBounds = YES; - self.enabledPaymentProviderTypes = [NSOrderedSet orderedSetWithObjects: - @(BTPaymentProviderTypePayPal), - @(BTPaymentProviderTypeVenmo), - @(BTPaymentProviderTypeCoinbase), - nil]; - - BTUIHorizontalButtonStackCollectionViewFlowLayout *layout = [[BTUIHorizontalButtonStackCollectionViewFlowLayout alloc] init]; - layout.minimumInteritemSpacing = 0.0f; - - self.paymentButtonsCollectionView = [[UICollectionView alloc] initWithFrame:self.bounds - collectionViewLayout:layout]; - self.paymentButtonsCollectionView.accessibilityIdentifier = @"Payment Options"; - self.paymentButtonsCollectionView.translatesAutoresizingMaskIntoConstraints = NO; - self.paymentButtonsCollectionView.allowsSelection = YES; - self.paymentButtonsCollectionView.delaysContentTouches = NO; - self.paymentButtonsCollectionView.delegate = self; - self.paymentButtonsCollectionView.dataSource = self; - self.paymentButtonsCollectionView.backgroundColor = [UIColor grayColor]; - [self.paymentButtonsCollectionView registerClass:[BTUIPaymentButtonCollectionViewCell class] forCellWithReuseIdentifier:BTPaymentButtonPaymentButtonCellIdentifier]; - - self.topBorder = [[UIView alloc] init]; - self.topBorder.backgroundColor = [self.theme borderColor]; - self.topBorder.translatesAutoresizingMaskIntoConstraints = NO; - - self.bottomBorder = [[UIView alloc] init]; - self.bottomBorder.backgroundColor = [self.theme borderColor]; - self.bottomBorder.translatesAutoresizingMaskIntoConstraints = NO; - - [self addSubview:self.paymentButtonsCollectionView]; - [self addSubview:self.topBorder]; - [self addSubview:self.bottomBorder]; - - self.paymentProvider = [[BTPaymentProvider alloc] initWithClient:self.client]; - self.paymentProvider.delegate = self; -} - -- (CGSize)intrinsicContentSize { - CGFloat height = self.filteredEnabledPaymentProviderTypes.count > 0 ? 44 : 0; - - return CGSizeMake(UIViewNoIntrinsicMetric, height); -} - -- (void)layoutSubviews { - [super layoutSubviews]; - [self.paymentButtonsCollectionView.collectionViewLayout invalidateLayout]; -} - -- (void)updateConstraints { - NSDictionary *views = @{ @"paymentButtonsCollectionView": self.paymentButtonsCollectionView, - @"topBorder": self.topBorder, - @"bottomBorder": self.bottomBorder }; - NSDictionary *metrics = @{ @"borderWidth": @(self.theme.borderWidth) }; - - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[paymentButtonsCollectionView]|" - options:0 - metrics:metrics - views:views]]; - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[paymentButtonsCollectionView]|" - options:0 - metrics:metrics - views:views]]; - - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[topBorder]|" - options:0 - metrics:metrics - views:views]]; - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[topBorder(==borderWidth)]" - options:0 - metrics:metrics - views:views]]; - - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[bottomBorder]|" - options:0 - metrics:metrics - views:views]]; - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[bottomBorder(==borderWidth)]|" - options:0 - metrics:metrics - views:views]]; - - [super updateConstraints]; -} - -#pragma mark PaymentButton State - -- (void)setClient:(BTClient *)client { - _client = client; - self.paymentProvider.client = client; -} - -- (void)setEnabledPaymentProviderTypes:(NSOrderedSet *)enabledPaymentProviderTypes { - _enabledPaymentProviderTypes = enabledPaymentProviderTypes; - - [self invalidateIntrinsicContentSize]; - [self.paymentButtonsCollectionView reloadData]; -} - -- (NSOrderedSet *)filteredEnabledPaymentProviderTypes { - if (!_filteredEnabledPaymentProviderTypes) { - NSMutableOrderedSet *mutableProviderTypes = [self.enabledPaymentProviderTypes mutableCopy]; - - if (![self.paymentProvider canCreatePaymentMethodWithProviderType:BTPaymentProviderTypeVenmo]) { - [mutableProviderTypes removeObject:@(BTPaymentProviderTypeVenmo)]; - } - if (![self.paymentProvider canCreatePaymentMethodWithProviderType:BTPaymentProviderTypePayPal]) { - [mutableProviderTypes removeObject:@(BTPaymentProviderTypePayPal)]; - } - if (![self.paymentProvider canCreatePaymentMethodWithProviderType:BTPaymentProviderTypeCoinbase]) { - [mutableProviderTypes removeObject:@(BTPaymentProviderTypeCoinbase)]; - } - _filteredEnabledPaymentProviderTypes = [mutableProviderTypes copy]; - } - - return _filteredEnabledPaymentProviderTypes; -} - -- (BOOL)hasAvailablePaymentMethod { - return [self filteredEnabledPaymentProviderTypes].count > 0 ? YES : NO; -} - -- (BTPaymentProviderType)paymentProviderForIndexPath:(NSIndexPath *)indexPath { - NSInteger index = indexPath.row; - NSNumber *paymentProviderTypeNumber = self.filteredEnabledPaymentProviderTypes[index]; - return (BTPaymentProviderType)[paymentProviderTypeNumber integerValue]; -} - -#pragma mark UICollectionViewDataSource methods - -- (NSInteger)collectionView:(__unused UICollectionView *)collectionView numberOfItemsInSection:(__unused NSInteger)section { - NSParameterAssert(section == 0); - return [self.filteredEnabledPaymentProviderTypes count]; -} - -- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath { - NSParameterAssert(indexPath.section == 0); - - BTUIPaymentButtonCollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:BTPaymentButtonPaymentButtonCellIdentifier - forIndexPath:indexPath]; - BTPaymentProviderType paymentMethod = [self paymentProviderForIndexPath:indexPath]; - - UIControl *paymentButton; - switch (paymentMethod) { - case BTPaymentProviderTypePayPal: - paymentButton = [[BTUIPayPalButton alloc] initWithFrame:cell.bounds]; - break; - case BTPaymentProviderTypeVenmo: - paymentButton = [[BTUIVenmoButton alloc] initWithFrame:cell.bounds]; - break; - case BTPaymentProviderTypeCoinbase: - paymentButton = [[BTUICoinbaseButton alloc] initWithFrame:cell.bounds]; - break; - default: - [[BTLogger sharedLogger] warning:@"BTPaymentButton encountered an unexpected BTPaymentProviderType value: %@", @(paymentMethod)]; - return cell; - } - paymentButton.translatesAutoresizingMaskIntoConstraints = NO; - - cell.paymentButton = paymentButton; - - [cell.contentView addSubview:paymentButton]; - - NSDictionary *views = @{ @"paymentButton": paymentButton }; - [cell.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[paymentButton]|" - options:0 - metrics:nil - views:views]]; - [cell.contentView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[paymentButton]|" - options:0 - metrics:nil - views:views]]; - return cell; -} - -- (void)collectionView:(__unused UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath *)indexPath { - NSAssert(self.client, @"BTPaymentButton tapped without a BTClient instance. Please set a client on this payment button: myPaymentButton.client = (BTClient *)myClient;"); - - BTPaymentProviderType paymentMethod = [self paymentProviderForIndexPath:indexPath]; - - switch (paymentMethod) { - case BTPaymentProviderTypePayPal: - [self.paymentProvider createPaymentMethod:BTPaymentProviderTypePayPal]; - break; - case BTPaymentProviderTypeVenmo: - [self.paymentProvider createPaymentMethod:BTPaymentProviderTypeVenmo]; - break; - case BTPaymentProviderTypeCoinbase: - [self.paymentProvider createPaymentMethod:BTPaymentProviderTypeCoinbase]; - break; - default: - NSLog(@"BTPaymentButton collection view received didSelectItemAtIndexPath for unknown indexPath. This should never happen."); - break; - } -} - -#pragma mark Delegate informers - -- (void)informDelegateWillPerformAppSwitch { - if ([self.delegate respondsToSelector:@selector(paymentMethodCreatorWillPerformAppSwitch:)]) { - [self.delegate paymentMethodCreatorWillPerformAppSwitch:self]; - } -} - -- (void)informDelegateWillProcess { - if ([self.delegate respondsToSelector:@selector(paymentMethodCreatorWillProcess:)]) { - [self.delegate paymentMethodCreatorWillProcess:self]; - } -} - -- (void)informDelegateRequestsPresentationOfViewController:(UIViewController *)viewController { - if ([self.delegate respondsToSelector:@selector(paymentMethodCreator:requestsPresentationOfViewController:)]) { - [self.delegate paymentMethodCreator:self requestsPresentationOfViewController:viewController]; - } -} - -- (void)informDelegateRequestsDismissalOfViewController:(UIViewController *)viewController { - if ([self.delegate respondsToSelector:@selector(paymentMethodCreator:requestsDismissalOfViewController:)]) { - [self.delegate paymentMethodCreator:self requestsDismissalOfViewController:viewController]; - } -} - -- (void)informDelegateDidCreatePaymentMethod:(BTPaymentMethod *)paymentMethod { - if ([self.delegate respondsToSelector:@selector(paymentMethodCreator:didCreatePaymentMethod:)]) { - [self.delegate paymentMethodCreator:self didCreatePaymentMethod:paymentMethod]; - } -} - -- (void)informDelegateDidFailWithError:(NSError *)error { - if ([self.delegate respondsToSelector:@selector(paymentMethodCreator:didFailWithError:)]) { - [self.delegate paymentMethodCreator:self didFailWithError:error]; - } -} - -- (void)informDelegateDidCancel { - if ([self.delegate respondsToSelector:@selector(paymentMethodCreatorDidCancel:)]) { - [self.delegate paymentMethodCreatorDidCancel:self]; - } -} - -#pragma mark - BTPaymentProvider Delegate - -- (void)paymentMethodCreator:(__unused id)sender requestsPresentationOfViewController:(UIViewController *)viewController { - [self informDelegateRequestsPresentationOfViewController:viewController]; -} - -- (void)paymentMethodCreator:(__unused id)sender requestsDismissalOfViewController:(UIViewController *)viewController { - [self informDelegateRequestsDismissalOfViewController:viewController]; -} - -- (void)paymentMethodCreatorWillPerformAppSwitch:(__unused id)sender { - [self informDelegateWillPerformAppSwitch]; -} - -- (void)paymentMethodCreatorWillProcess:(__unused id)sender { - [self informDelegateWillProcess]; -} - -- (void)paymentMethodCreatorDidCancel:(__unused id)sender { - [self informDelegateDidCancel]; -} - -- (void)paymentMethodCreator:(__unused id)sender didCreatePaymentMethod:(BTPaymentMethod *)paymentMethod { - [self informDelegateDidCreatePaymentMethod:paymentMethod]; -} - -- (void)paymentMethodCreator:(__unused id)sender didFailWithError:(NSError *)error { - [self informDelegateDidFailWithError:error]; -} - -@end diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/BTDropInLocalizedString.h b/Pods/Braintree/Braintree/Drop-In/Localization/BTDropInLocalizedString.h deleted file mode 100644 index e06d103..0000000 --- a/Pods/Braintree/Braintree/Drop-In/Localization/BTDropInLocalizedString.h +++ /dev/null @@ -1,21 +0,0 @@ -#import - -#define BTDropInLocalizedString(KEY) [BTDropInLocalizedString KEY] - -@interface BTDropInLocalizedString : NSObject - -+ (NSString *)DROP_IN_CHANGE_PAYMENT_METHOD_BUTTON_TEXT; -+ (NSString *)ERROR_ALERT_OK_BUTTON_TEXT; -+ (NSString *)ERROR_ALERT_CANCEL_BUTTON_TEXT; -+ (NSString *)ERROR_ALERT_TRY_AGAIN_BUTTON_TEXT; -+ (NSString *)ERROR_ALERT_CONNECTION_ERROR; -+ (NSString *)DEFAULT_CALL_TO_ACTION; -+ (NSString *)CARD_FORM_SECTION_HEADER; -+ (NSString *)SELECT_PAYMENT_METHOD_TITLE; -+ (NSString *)ERROR_SAVING_CARD_ALERT_TITLE; -+ (NSString *)ERROR_SAVING_CARD_MESSAGE; -+ (NSString *)ERROR_SAVING_PAYMENT_METHOD_ALERT_TITLE; -+ (NSString *)ERROR_SAVING_PAYPAL_ACCOUNT_ALERT_MESSAGE; -+ (NSString *)ADD_PAYMENT_METHOD_VIEW_CONTROLLER_TITLE; - -@end diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/BTDropInLocalizedString.m b/Pods/Braintree/Braintree/Drop-In/Localization/BTDropInLocalizedString.m deleted file mode 100644 index 83b1646..0000000 --- a/Pods/Braintree/Braintree/Drop-In/Localization/BTDropInLocalizedString.m +++ /dev/null @@ -1,74 +0,0 @@ -#import "BTDropInLocalizedString.h" - -@implementation BTDropInLocalizedString - -+ (NSBundle *)localizationBundle { - - static NSString * bundleName = @"Braintree-Drop-In-Localization"; - NSString *localizationBundlePath = [[NSBundle mainBundle] pathForResource:bundleName ofType:@"bundle"]; - if (!localizationBundlePath) { - localizationBundlePath = [[NSBundle bundleForClass:[self class]] pathForResource:bundleName ofType:@"bundle"]; - } - - return localizationBundlePath ? [NSBundle bundleWithPath:localizationBundlePath] : [NSBundle mainBundle]; -} - -+ (NSString *)localizationTable { - return @"Drop-In"; -} - -+ (NSString *)DROP_IN_CHANGE_PAYMENT_METHOD_BUTTON_TEXT { - return NSLocalizedStringWithDefaultValue(@"DROP_IN_CHANGE_PAYMENT_METHOD_BUTTON_TEXT", [self localizationTable], [self localizationBundle], @"Change payment method", @"Title text for button on Drop In with a selected payment method that allows user to choose a different payment method on file"); -} - -+ (NSString *)ERROR_ALERT_OK_BUTTON_TEXT { - return NSLocalizedStringWithDefaultValue(@"ERROR_ALERT_OK_BUTTON_TEXT", [self localizationTable], [self localizationBundle], @"OK", @"Button text to indicate acceptance of an alert condition"); -} - - -+ (NSString *)ERROR_ALERT_CANCEL_BUTTON_TEXT { - return NSLocalizedStringWithDefaultValue(@"ERROR_ALERT_CANCEL_BUTTON_TEXT", [self localizationTable], [self localizationBundle], @"Cancel", @"Button text to indicate acceptance of an alert condition"); -} - -+ (NSString *)ERROR_ALERT_TRY_AGAIN_BUTTON_TEXT { - return NSLocalizedStringWithDefaultValue(@"ERROR_ALERT_TRY_AGAIN_BUTTON_TEXT", [self localizationTable], [self localizationBundle], @"Try Again", @"Button text to request that an failed operation should be restarted and to try again"); -} - -+ (NSString *)ERROR_ALERT_CONNECTION_ERROR { - return NSLocalizedStringWithDefaultValue(@"ERROR_ALERT_CONNECTION_ERROR", [self localizationTable], [self localizationBundle], @"Connection Error", @"Vague title for alert view that ambiguously indicates an unspecified failure"); -} - -+ (NSString *)DEFAULT_CALL_TO_ACTION { - return NSLocalizedStringWithDefaultValue(@"DEFAULT_CALL_TO_ACTION", [self localizationTable], [self localizationBundle], @"Pay", @"Default text to display in Drop In view controller call to action (Submit button)"); -} - -+ (NSString *)CARD_FORM_SECTION_HEADER { - return NSLocalizedStringWithDefaultValue(@"CARD_FORM_SECTION_HEADER", [self localizationTable], [self localizationBundle], @"Pay with a card", @"Section header above card form in Drop In view controller"); -} - -+ (NSString *)SELECT_PAYMENT_METHOD_TITLE { - return NSLocalizedStringWithDefaultValue(@"SELECT_PAYMENT_METHOD_TITLE", [self localizationTable], [self localizationBundle], @"Payment Method", @"Title for select payment method view controller"); -} - -+ (NSString *)ERROR_SAVING_CARD_ALERT_TITLE{ - return NSLocalizedStringWithDefaultValue(@"ERROR_SAVING_CARD_ALERT_TITLE", [self localizationTable], [self localizationBundle], @"Error Saving Card", @"Title for alert view that is displayed when Drop In submission fails because there was an error saving the card"); -} - -+ (NSString *)ERROR_SAVING_CARD_MESSAGE { - return NSLocalizedStringWithDefaultValue(@"ERROR_SAVING_CARD_MESSAGE", [self localizationTable], [self localizationBundle], @"Please try again.", @"Message for alert view that is displayed when Drop In submission fails because there was an error saving the card"); -} - -+ (NSString *)ERROR_SAVING_PAYMENT_METHOD_ALERT_TITLE { - return NSLocalizedStringWithDefaultValue(@"ERROR_SAVING_PAYMENT_METHOD_ALERT_TITLE", [self localizationTable], [self localizationBundle], @"PayPal Error", @"Title for alert view that is displayed when Drop In submission fails because there was an error saving the PayPal account"); -} - - -+ (NSString *)ERROR_SAVING_PAYPAL_ACCOUNT_ALERT_MESSAGE { - return NSLocalizedStringWithDefaultValue(@"ERROR_SAVING_PAYPAL_ACCOUNT_ALERT_MESSAGE", [self localizationTable], [self localizationBundle], @"Please try again.", @"Message for alert view that is displayed when Drop In submission fails because there was an error saving the PayPal account"); -} - -+ (NSString *)ADD_PAYMENT_METHOD_VIEW_CONTROLLER_TITLE { - return NSLocalizedStringWithDefaultValue(@"ADD_PAYMENT_METHOD_VIEW_CONTROLLER_TITLE", [self localizationTable], [self localizationBundle], @"Add Payment Method", @"Title for view controller presented by Drop In to collect a new payment method when payment methods are already on file"); -} - -@end diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/da.lproj/Drop-In.strings b/Pods/Braintree/Braintree/Drop-In/Localization/da.lproj/Drop-In.strings deleted file mode 100644 index 4c29707..0000000 Binary files a/Pods/Braintree/Braintree/Drop-In/Localization/da.lproj/Drop-In.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/de.lproj/Drop-In.strings b/Pods/Braintree/Braintree/Drop-In/Localization/de.lproj/Drop-In.strings deleted file mode 100644 index fb374e0..0000000 Binary files a/Pods/Braintree/Braintree/Drop-In/Localization/de.lproj/Drop-In.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/en.lproj/Drop-In.strings b/Pods/Braintree/Braintree/Drop-In/Localization/en.lproj/Drop-In.strings deleted file mode 100644 index 9f87bef..0000000 Binary files a/Pods/Braintree/Braintree/Drop-In/Localization/en.lproj/Drop-In.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/en_AU.lproj/Drop-In.strings b/Pods/Braintree/Braintree/Drop-In/Localization/en_AU.lproj/Drop-In.strings deleted file mode 100644 index 6831369..0000000 Binary files a/Pods/Braintree/Braintree/Drop-In/Localization/en_AU.lproj/Drop-In.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/en_CA.lproj/Drop-In.strings b/Pods/Braintree/Braintree/Drop-In/Localization/en_CA.lproj/Drop-In.strings deleted file mode 100644 index 9f87bef..0000000 Binary files a/Pods/Braintree/Braintree/Drop-In/Localization/en_CA.lproj/Drop-In.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/en_GB.lproj/Drop-In.strings b/Pods/Braintree/Braintree/Drop-In/Localization/en_GB.lproj/Drop-In.strings deleted file mode 100644 index 66af1ca..0000000 Binary files a/Pods/Braintree/Braintree/Drop-In/Localization/en_GB.lproj/Drop-In.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/es.lproj/Drop-In.strings b/Pods/Braintree/Braintree/Drop-In/Localization/es.lproj/Drop-In.strings deleted file mode 100644 index d22ffec..0000000 Binary files a/Pods/Braintree/Braintree/Drop-In/Localization/es.lproj/Drop-In.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/es_ES.lproj/Drop-In.strings b/Pods/Braintree/Braintree/Drop-In/Localization/es_ES.lproj/Drop-In.strings deleted file mode 100644 index ef39242..0000000 Binary files a/Pods/Braintree/Braintree/Drop-In/Localization/es_ES.lproj/Drop-In.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/fr.lproj/Drop-In.strings b/Pods/Braintree/Braintree/Drop-In/Localization/fr.lproj/Drop-In.strings deleted file mode 100644 index 35a6078..0000000 Binary files a/Pods/Braintree/Braintree/Drop-In/Localization/fr.lproj/Drop-In.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/fr_CA.lproj/Drop-In.strings b/Pods/Braintree/Braintree/Drop-In/Localization/fr_CA.lproj/Drop-In.strings deleted file mode 100644 index 940077d..0000000 Binary files a/Pods/Braintree/Braintree/Drop-In/Localization/fr_CA.lproj/Drop-In.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/fr_FR.lproj/Drop-In.strings b/Pods/Braintree/Braintree/Drop-In/Localization/fr_FR.lproj/Drop-In.strings deleted file mode 100644 index f829499..0000000 Binary files a/Pods/Braintree/Braintree/Drop-In/Localization/fr_FR.lproj/Drop-In.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/he.lproj/Drop-In.strings b/Pods/Braintree/Braintree/Drop-In/Localization/he.lproj/Drop-In.strings deleted file mode 100644 index da09d22..0000000 Binary files a/Pods/Braintree/Braintree/Drop-In/Localization/he.lproj/Drop-In.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/it.lproj/Drop-In.strings b/Pods/Braintree/Braintree/Drop-In/Localization/it.lproj/Drop-In.strings deleted file mode 100644 index a95735c..0000000 Binary files a/Pods/Braintree/Braintree/Drop-In/Localization/it.lproj/Drop-In.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/nb.lproj/Drop-In.strings b/Pods/Braintree/Braintree/Drop-In/Localization/nb.lproj/Drop-In.strings deleted file mode 100644 index 59665fb..0000000 Binary files a/Pods/Braintree/Braintree/Drop-In/Localization/nb.lproj/Drop-In.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/nl.lproj/Drop-In.strings b/Pods/Braintree/Braintree/Drop-In/Localization/nl.lproj/Drop-In.strings deleted file mode 100644 index cbfe53f..0000000 Binary files a/Pods/Braintree/Braintree/Drop-In/Localization/nl.lproj/Drop-In.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/pl.lproj/Drop-In.strings b/Pods/Braintree/Braintree/Drop-In/Localization/pl.lproj/Drop-In.strings deleted file mode 100644 index 5c1c930..0000000 Binary files a/Pods/Braintree/Braintree/Drop-In/Localization/pl.lproj/Drop-In.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/pt.lproj/Drop-In.strings b/Pods/Braintree/Braintree/Drop-In/Localization/pt.lproj/Drop-In.strings deleted file mode 100644 index b0d7302..0000000 Binary files a/Pods/Braintree/Braintree/Drop-In/Localization/pt.lproj/Drop-In.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/ru.lproj/Drop-In.strings b/Pods/Braintree/Braintree/Drop-In/Localization/ru.lproj/Drop-In.strings deleted file mode 100644 index cfaf5d0..0000000 Binary files a/Pods/Braintree/Braintree/Drop-In/Localization/ru.lproj/Drop-In.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/sv.lproj/Drop-In.strings b/Pods/Braintree/Braintree/Drop-In/Localization/sv.lproj/Drop-In.strings deleted file mode 100644 index 0a6c7d7..0000000 Binary files a/Pods/Braintree/Braintree/Drop-In/Localization/sv.lproj/Drop-In.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/tr.lproj/Drop-In.strings b/Pods/Braintree/Braintree/Drop-In/Localization/tr.lproj/Drop-In.strings deleted file mode 100644 index 0a70112..0000000 Binary files a/Pods/Braintree/Braintree/Drop-In/Localization/tr.lproj/Drop-In.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/Drop-In/Localization/zh-Hans.lproj/Drop-In.strings b/Pods/Braintree/Braintree/Drop-In/Localization/zh-Hans.lproj/Drop-In.strings deleted file mode 100644 index 0527d28..0000000 Binary files a/Pods/Braintree/Braintree/Drop-In/Localization/zh-Hans.lproj/Drop-In.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/PayPal/@Public/BTClient+BTPayPal.h b/Pods/Braintree/Braintree/PayPal/@Public/BTClient+BTPayPal.h deleted file mode 100644 index d2cf6be..0000000 --- a/Pods/Braintree/Braintree/PayPal/@Public/BTClient+BTPayPal.h +++ /dev/null @@ -1,25 +0,0 @@ -#import "BTClient.h" - -@class PayPalProfileSharingViewController; -@class PayPalConfiguration; - -@protocol PayPalProfileSharingDelegate; - -extern NSString *const BTClientPayPalMobileEnvironmentName; - -/// Specify this additional scope in order to get the customer's billing address. -/// If this scope is set, the billingAddress property of the returned BTPayPalPaymentMethod should be populated with a BTPostalAddress. -extern NSString *const BTPayPalScopeAddress; - -@interface BTClient (BTPayPal) - -+ (NSString *)btPayPal_offlineTestClientToken; -- (BOOL)btPayPal_preparePayPalMobileWithError:(NSError * __autoreleasing *)error; -- (BOOL)btPayPal_isPayPalEnabled; -- (PayPalProfileSharingViewController *)btPayPal_profileSharingViewControllerWithDelegate:(id)delegate; -- (NSString *)btPayPal_applicationCorrelationId; -- (PayPalConfiguration *)btPayPal_configuration; -- (NSString *)btPayPal_environment; -- (BOOL)btPayPal_isTouchDisabled; -- (NSSet *)btPayPal_scopes; -@end diff --git a/Pods/Braintree/Braintree/PayPal/@Public/BTErrors+BTPayPal.h b/Pods/Braintree/Braintree/PayPal/@Public/BTErrors+BTPayPal.h deleted file mode 100644 index 377d0d4..0000000 --- a/Pods/Braintree/Braintree/PayPal/@Public/BTErrors+BTPayPal.h +++ /dev/null @@ -1,15 +0,0 @@ -#import "BTErrors.h" - -/// Braintree+PayPal NSError Domain -extern NSString *const BTBraintreePayPalErrorDomain; - -/// Errors codes -typedef NS_ENUM(NSInteger, BTPayPalErrorCode) { - BTPayPalUnknownError = 0, - BTMerchantIntegrationErrorPayPalConfiguration = 1, - - /// PayPal is disabled - BTPayPalErrorPayPalDisabled = 2, - - -}; diff --git a/Pods/Braintree/Braintree/PayPal/@Public/BTPayPalButton.h b/Pods/Braintree/Braintree/PayPal/@Public/BTPayPalButton.h deleted file mode 100644 index 91496e0..0000000 --- a/Pods/Braintree/Braintree/PayPal/@Public/BTPayPalButton.h +++ /dev/null @@ -1,88 +0,0 @@ -#import - -#import "Braintree-API.h" -#import "Braintree-Payments-UI.h" - -@protocol BTPayPalButtonDelegate; -@protocol BTPayPalButtonViewControllerPresenterDelegate; - -#pragma mark - - -/// A UIControl subclass for initiating a PayPal auth flow, and displaying the state of the user's PayPal auth. This view -/// is appropriate for adding to your checkout form as a *full-width* button. -/// -/// By default, tapping on this button will result in a `BTPayPalViewController` being presented by a heuristically -/// determined ViewController. If you need to customize this behavior, you can specify your own `BTPayPalButtonViewControllerPresenterDelegate`. -@interface BTPayPalButton : UIControl - -- (id)init DEPRECATED_MSG_ATTRIBUTE("Please use BTUIPayPalButton or BTPaymentButton. BTPayPalButton is deprecated."); -- (id)initWithFrame:(CGRect)frame DEPRECATED_MSG_ATTRIBUTE("Please use BTUIPayPalButton or BTPaymentButton. BTPayPalButton is deprecated."); -- (id)initWithCoder:(NSCoder *)aDecoder DEPRECATED_MSG_ATTRIBUTE("Please use BTUIPayPalButton or BTPaymentButton. BTPayPalButton is deprecated."); - -/// A delegate that is notified as the PayPal consent flow triggered by this button changes state. -@property (nonatomic, weak) id delegate; - -/// An optional delegate that is notified when the `BTPayPalButton` is requesting presentation of -/// a view controller that will manage PayPal authentication flow. -@property (nonatomic, weak) id presentationDelegate; - -/// Your initialized Braintree client. -/// -/// @see Braintree-API-iOS -@property (nonatomic, strong) BTClient *client; - -@property (nonatomic, strong) BTUI *theme; - -@end - -#pragma mark - - -/// Delegate protocol for receiving messages about state changes to a `BTPayPalButton` -/// -/// @see BTPayPalButton -@protocol BTPayPalButtonDelegate - -/// This message is sent when a payment method has been authorized and is available. -/// -/// @param button The requesting `BTPayPalButton` -/// @param paymentMethod The nonce representing proof of an authorized payment method -- (void)payPalButton:(BTPayPalButton *)button didCreatePayPalPaymentMethod:(BTPayPalPaymentMethod *)paymentMethod; - -/// This message is sent when the payment method could not be created. -/// -/// @param button The requesting `BTPayPalButton` -- (void)payPalButton:(BTPayPalButton *)button didFailWithError:(NSError *)error; - -@optional - -/// This message is sent when the user has authorized PayPal, and the payment method -/// is about to be created. -/// -/// @param button The requesting `BTPayPalButton` -- (void)payPalButtonWillCreatePayPalPaymentMethod:(BTPayPalButton *)button; - -- (void)payPalButtonDidCancel:(BTPayPalButton *)button; - -@end - -/// Delegate protocol for receiving request to present a view controller when the user taps the `BTPayPalButton` instance. -/// -/// @note Providing a custom implementation of this protocol to your `BTPayPalButton` is not required. -/// -/// @see BTPayPalButton -@protocol BTPayPalButtonViewControllerPresenterDelegate - -/// The button sends the delegate this message when it has prepared a `BTPayPalViewController`, which your implementation -/// should present to initiate the PayPal UI flow. -/// -/// @param button The requesting `BTPayPalButton` -/// @param viewController A configured view controller to be presented -- (void)payPalButton:(BTPayPalButton *)button requestsPresentationOfViewController:(UIViewController *)viewController; - -/// The button sends the delegate this message when its view controller is ready to be dismissed. -/// -/// @param button The requesting `BTPayPalButton` -/// @param viewController A configured view controller to be presented -- (void)payPalButton:(BTPayPalButton *)button requestsDismissalOfViewController:(UIViewController *)viewController; - -@end diff --git a/Pods/Braintree/Braintree/PayPal/@Public/BTPayPalViewController.h b/Pods/Braintree/Braintree/PayPal/@Public/BTPayPalViewController.h deleted file mode 100644 index dceff4d..0000000 --- a/Pods/Braintree/Braintree/PayPal/@Public/BTPayPalViewController.h +++ /dev/null @@ -1,65 +0,0 @@ -#import - -#import "Braintree-API.h" - -@protocol BTPayPalViewControllerDelegate; - -/// A View Controller that encapsulates the PayPal user authentication and consent flows -/// in order to obtain a Braintree payment method nonce. -/// -/// In the simple case, you should use BTPayPalButton, which will initialize and manage its own -/// BTPayPalViewController instance. This class is only necessary if you want to implement -/// your own button to trigger the Braintree PayPal flow. -@interface BTPayPalViewController : UIViewController - -/// A delegate that should be notified as the PayPal consent flow changes state. -@property (nonatomic, weak) id delegate; - -/// Your initialized Braintree client. -/// -/// @see Braintree-API-iOS -@property (nonatomic, strong) BTClient *client; - -/// Initialize a `BTPayPalViewController` with a preset BTClient -/// -/// @param client Client to retain as the new instance's client -/// @see client -/// -/// @return A new BTPayPalViewController instance -- (instancetype)initWithClient:(BTClient *)client; - -@end - -/// Delegate protocol for receiving results from a BTPayPalViewController -@protocol BTPayPalViewControllerDelegate - -@optional - -/// The user has completed his or her interaction with the PayPal UI. The View Controller will now attempt -/// to create a PayPal account payment method with a nonce. -/// -/// You can implement this in order to dismiss the PayPal View Controller before a definitive -/// success (i.e. nonce) or error (i.e. failure to create a nonce) occurs. -/// -/// @param viewController The `BTPayPalViewController` that will create the nonce. -- (void)payPalViewControllerWillCreatePayPalPaymentMethod:(BTPayPalViewController *)viewController; - -/// The PayPal View Controller will send this message when the PayPal consent flow is complete and a payment method -/// has been created. You can send its nonce value to your server for creating a transaction, subscription, etc. -/// -/// @param viewController The `BTPayPalViewController` that did create the nonce -/// @param payPalPaymentMethod PayPal account payment method that contains a nonce -- (void)payPalViewController:(BTPayPalViewController *)viewController didCreatePayPalPaymentMethod:(BTPayPalPaymentMethod *)payPalPaymentMethod; - -/// The PayPal View Controller will send this message when a nonce could not be created. -/// -/// @param viewController The `BTPayPalViewController` that failed -/// @param error The `BTClient` error that caused the failure. -- (void)payPalViewController:(BTPayPalViewController *)viewController didFailWithError:(NSError *)error; - -/// The user requested to cancel the PayPal consent flow. -/// -/// @param viewController The `BTPayPalViewController` that was cancelled -- (void)payPalViewControllerDidCancel:(BTPayPalViewController *)viewController; - -@end diff --git a/Pods/Braintree/Braintree/PayPal/@Public/Braintree-PayPal.h b/Pods/Braintree/Braintree/PayPal/@Public/Braintree-PayPal.h deleted file mode 100644 index 0827a63..0000000 --- a/Pods/Braintree/Braintree/PayPal/@Public/Braintree-PayPal.h +++ /dev/null @@ -1,6 +0,0 @@ -/// All-in-one import for the Braintree PayPal SDK - -#import -#import -#import -#import diff --git a/Pods/Braintree/Braintree/PayPal/BTErrors+BTPayPal.m b/Pods/Braintree/Braintree/PayPal/BTErrors+BTPayPal.m deleted file mode 100644 index 1692df9..0000000 --- a/Pods/Braintree/Braintree/PayPal/BTErrors+BTPayPal.m +++ /dev/null @@ -1,3 +0,0 @@ -#import "BTErrors+BTPayPal.h" - -NSString *const BTBraintreePayPalErrorDomain = @"BTBraintreePaypalErrorDomain"; diff --git a/Pods/Braintree/Braintree/PayPal/BTPayPalAppSwitchHandler.h b/Pods/Braintree/Braintree/PayPal/BTPayPalAppSwitchHandler.h deleted file mode 100644 index 19816d8..0000000 --- a/Pods/Braintree/Braintree/PayPal/BTPayPalAppSwitchHandler.h +++ /dev/null @@ -1,10 +0,0 @@ -#import -#import "BTAppSwitching.h" -#import "BTAppSwitchErrors.h" -#import "BTErrors+BTPayPal.h" - -@interface BTPayPalAppSwitchHandler : NSObject - -+ (instancetype)sharedHandler; - -@end diff --git a/Pods/Braintree/Braintree/PayPal/BTPayPalAppSwitchHandler.m b/Pods/Braintree/Braintree/PayPal/BTPayPalAppSwitchHandler.m deleted file mode 100644 index dc8e8f8..0000000 --- a/Pods/Braintree/Braintree/PayPal/BTPayPalAppSwitchHandler.m +++ /dev/null @@ -1,238 +0,0 @@ -#import "BTPayPalAppSwitchHandler_Internal.h" - -#import "BTAppSwitch.h" -#import "BTClient_Internal.h" -#import "BTClient+BTPayPal.h" -#import "BTMutablePayPalPaymentMethod.h" -#import "BTLogger_Internal.h" -#import "BTErrors+BTPayPal.h" - -#import "PayPalMobile.h" -#import "PayPalTouch.h" - -@implementation BTPayPalAppSwitchHandler - -@synthesize returnURLScheme; -@synthesize delegate; - -+ (void)load { - if (self == [BTPayPalAppSwitchHandler class]) { - [[BTAppSwitch sharedInstance] addAppSwitching:[BTPayPalAppSwitchHandler sharedHandler] forApp:BTAppTypePayPal]; - } -} - -+ (instancetype)sharedHandler { - static BTPayPalAppSwitchHandler *instance; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - instance = [[BTPayPalAppSwitchHandler alloc] init]; - }); - return instance; -} - -- (BOOL)canHandleReturnURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication { - if (self.client == nil || self.delegate == nil) { - [self.client postAnalyticsEvent:@"ios.paypal.appswitch.can-handle.invalid"]; - return NO; - } - - if (![url.scheme isEqualToString:self.returnURLScheme]) { - [self.client postAnalyticsEvent:@"ios.paypal.appswitch.can-handle.different-scheme"]; - return NO; - } - - if (![PayPalTouch canHandleURL:url sourceApplication:sourceApplication]) { - [self.client postAnalyticsEvent:@"ios.paypal.appswitch.can-handle.paypal-cannot-handle"]; - return NO; - } - return YES; -} - -- (void)handleReturnURL:(NSURL *)url { - PayPalTouchResult *result = [PayPalTouch parseAppSwitchURL:url]; - NSString *code; - switch (result.resultType) { - case PayPalTouchResultTypeError: { - [self.client postAnalyticsEvent:@"ios.paypal.appswitch.handle.error"]; - NSError *error = [NSError errorWithDomain:BTBraintreePayPalErrorDomain code:BTPayPalUnknownError userInfo:nil]; - [self informDelegateDidFailWithError:error]; - return; - } - case PayPalTouchResultTypeCancel: - [self.client postAnalyticsEvent:@"ios.paypal.appswitch.handle.cancel"]; - if (result.error) { - [self.client postAnalyticsEvent:@"ios.paypal.appswitch.handle.cancel-error"]; - [[BTLogger sharedLogger] error:@"PayPal Wallet error: %@", result.error]; - } - [self informDelegateDidCancel]; - return; - case PayPalTouchResultTypeSuccess: - code = result.authorization[@"response"][@"code"]; - break; - } - - if (!code) { - NSError *error = [NSError errorWithDomain:BTBraintreePayPalErrorDomain code:BTPayPalUnknownError userInfo:@{NSLocalizedDescriptionKey: @"Auth code not found in PayPal Touch app switch response" }]; - [self.client postAnalyticsEvent:@"ios.paypal.appswitch.handle.code-error"]; - [self informDelegateDidFailWithError:error]; - return; - } - - [self.client postAnalyticsEvent:@"ios.paypal.appswitch.handle.authorized"]; - - [self informDelegateWillCreatePayPalPaymentMethod]; - - [self.client savePaypalPaymentMethodWithAuthCode:code - applicationCorrelationID:[self.client btPayPal_applicationCorrelationId] - success:^(BTPayPalPaymentMethod *paypalPaymentMethod) { - NSString *userDisplayStringFromAppSwitchResponse = result.authorization[@"user"][@"display_string"]; - if (paypalPaymentMethod.email == nil && [userDisplayStringFromAppSwitchResponse isKindOfClass:[NSString class]]) { - BTMutablePayPalPaymentMethod *mutablePayPalPaymentMethod = [paypalPaymentMethod mutableCopy]; - mutablePayPalPaymentMethod.email = userDisplayStringFromAppSwitchResponse; - paypalPaymentMethod = mutablePayPalPaymentMethod; - } - [self.client postAnalyticsEvent:@"ios.paypal.appswitch.handle.success"]; - [self informDelegateDidCreatePayPalPaymentMethod:paypalPaymentMethod]; - } failure:^(NSError *error) { - [self.client postAnalyticsEvent:@"ios.paypal.appswitch.handle.client-failure"]; - [self informDelegateDidFailWithError:error]; - }]; - -} - -- (BOOL)initiateAppSwitchWithClient:(BTClient *)client delegate:(id)theDelegate error:(NSError *__autoreleasing *)error { - - client = [client copyWithMetadata:^(BTClientMutableMetadata *metadata) { - metadata.source = BTClientMetadataSourcePayPalApp; - }]; - - NSError *appSwitchError = [self appSwitchErrorForClient:client delegate:theDelegate]; - if (appSwitchError) { - BOOL analyticsEventPosted = NO; - if ([appSwitchError.domain isEqualToString:BTAppSwitchErrorDomain]) { - analyticsEventPosted = YES; - switch (appSwitchError.code) { - case BTAppSwitchErrorDisabled: - [client postAnalyticsEvent:@"ios.paypal.appswitch.initiate.error.app-switch-disabled"]; - break; - case BTAppSwitchErrorAppNotAvailable: - [client postAnalyticsEvent:@"ios.paypal.appswitch.initiate.error.unavailable"]; - break; - case BTAppSwitchErrorIntegrationReturnURLScheme: - [client postAnalyticsEvent:@"ios.paypal.appswitch.initiate.error.invalid.return-url-scheme"]; - break; - case BTAppSwitchErrorIntegrationInvalidParameters: - [client postAnalyticsEvent:@"ios.paypal.appswitch.initiate.error.invalid.parameters"]; - break; - default: - analyticsEventPosted = NO; - break; - } - } else if ([appSwitchError.domain isEqualToString:BTBraintreePayPalErrorDomain] && appSwitchError.code == BTPayPalErrorPayPalDisabled) { - [client postAnalyticsEvent:@"ios.paypal.appswitch.initiate.error.disabled"]; - analyticsEventPosted = YES; - } - if (!analyticsEventPosted) { - [client postAnalyticsEvent:@"ios.paypal.appswitch.initiate.error.unrecognized-error"]; - } - if (error) { - *error = appSwitchError; - } - return NO; - } - - self.delegate = theDelegate; - self.client = client; - - PayPalConfiguration *configuration = client.btPayPal_configuration; - configuration.callbackURLScheme = self.returnURLScheme; - - BOOL payPalTouchDidAuthorize = [PayPalTouch authorizeScopeValues:self.client.btPayPal_scopes configuration:configuration]; - if (payPalTouchDidAuthorize) { - [self.client postAnalyticsEvent:@"ios.paypal.appswitch.initiate.success"]; - } else { - // Until 3.8.2, this event was "ios.paypal.appswitch.initiate.error.failed" and returned NO - [self.client postAnalyticsEvent:@"ios.paypal.appswitch.initiate.possible-error"]; - } - // Work around an iOS bug that causes -openURL: to return NO after a new app is installed - return YES; -} - -- (BOOL)appSwitchAvailableForClient:(BTClient *)client { - return [self appSwitchErrorForClient:client] == nil; -} - -- (NSError *)appSwitchErrorForClient:(BTClient *)client delegate:(id)theDelegate { - if (theDelegate == nil) { - return [NSError errorWithDomain:BTAppSwitchErrorDomain - code:BTAppSwitchErrorIntegrationInvalidParameters - userInfo:@{ NSLocalizedDescriptionKey: @"PayPal app switch is missing a delegate." }]; - } - return [self appSwitchErrorForClient:client]; -} - -- (NSError *)appSwitchErrorForClient:(BTClient *)client { - if (client == nil) { - return [NSError errorWithDomain:BTAppSwitchErrorDomain - code:BTAppSwitchErrorIntegrationInvalidParameters - userInfo:@{ NSLocalizedDescriptionKey: @"PayPal app switch is missing a BTClient." }]; - } - - if (![client btPayPal_isPayPalEnabled]){ - return [NSError errorWithDomain:BTBraintreePayPalErrorDomain - code:BTPayPalErrorPayPalDisabled - userInfo:@{NSLocalizedDescriptionKey: @"PayPal is not enabled for this merchant."}]; - } - - if ([client btPayPal_isTouchDisabled]){ - return [NSError errorWithDomain:BTAppSwitchErrorDomain - code:BTAppSwitchErrorDisabled - userInfo:@{NSLocalizedDescriptionKey: @"PayPal app switch is not enabled."}]; - } - - if (self.returnURLScheme == nil) { - return [NSError errorWithDomain:BTAppSwitchErrorDomain - code:BTAppSwitchErrorIntegrationReturnURLScheme - userInfo:@{ NSLocalizedDescriptionKey: @"PayPal app switch is missing a returnURLScheme. See +[Braintree setReturnURLScheme:]." }]; - } - - if (![PayPalTouch canAppSwitchForUrlScheme:self.returnURLScheme]) { - NSString *errorMessage = [NSString stringWithFormat:@"Can not app switch to PayPal. Verify that the return URL scheme (%@) starts with this app's bundle id, and that the PayPal app is installed.", self.returnURLScheme]; - return [NSError errorWithDomain:BTAppSwitchErrorDomain - code:BTAppSwitchErrorAppNotAvailable - userInfo:@{ NSLocalizedDescriptionKey: errorMessage }]; - } - - - return nil; -} - - -#pragma mark Delegate Method Invocations - -- (void)informDelegateWillCreatePayPalPaymentMethod { - if ([self.delegate respondsToSelector:@selector(appSwitcherWillCreatePaymentMethod:)]) { - [self.delegate appSwitcherWillCreatePaymentMethod:self]; - } -} - -- (void)informDelegateDidCreatePayPalPaymentMethod:(BTPaymentMethod *)paymentMethod { - [self.delegate appSwitcher:self didCreatePaymentMethod:paymentMethod]; -} - -- (void)informDelegateDidFailWithError:(NSError *)error { - [self.delegate appSwitcher:self didFailWithError:error]; -} - -- (void)informDelegateDidFailWithErrorCode:(NSInteger)code localizedDescription:(NSString *)localizedDescription { - NSError *error = [NSError errorWithDomain:BTBraintreePayPalErrorDomain - code:code - userInfo:@{ NSLocalizedDescriptionKey:localizedDescription }]; - [self informDelegateDidFailWithError:error]; -} - -- (void)informDelegateDidCancel { - [self.delegate appSwitcherDidCancel:self]; -} - -@end diff --git a/Pods/Braintree/Braintree/PayPal/BTPayPalAppSwitchHandler_Internal.h b/Pods/Braintree/Braintree/PayPal/BTPayPalAppSwitchHandler_Internal.h deleted file mode 100644 index 66d4af8..0000000 --- a/Pods/Braintree/Braintree/PayPal/BTPayPalAppSwitchHandler_Internal.h +++ /dev/null @@ -1,8 +0,0 @@ -#import "BTPayPalAppSwitchHandler.h" -#import "BTAppSwitchErrors.h" - -@interface BTPayPalAppSwitchHandler () - -@property (nonatomic, strong, readwrite) BTClient *client; - -@end diff --git a/Pods/Braintree/Braintree/PayPal/BTPayPalButton.m b/Pods/Braintree/Braintree/PayPal/BTPayPalButton.m deleted file mode 100644 index fe50077..0000000 --- a/Pods/Braintree/Braintree/PayPal/BTPayPalButton.m +++ /dev/null @@ -1,237 +0,0 @@ -#import "BTPayPalButton.h" - -#import "BTUIPaymentMethodView.h" -#import "BTPayPalViewController.h" -#import "BTPayPalHorizontalSignatureWhiteView.h" -#import "BTUI.h" -#import "BTLogger_Internal.h" - -@interface BTPayPalButton () -@property (nonatomic, strong) BTPayPalHorizontalSignatureWhiteView *payPalHorizontalSignatureView; -@property (nonatomic, strong) BTPayPalViewController *braintreePayPalViewController; -@end - -@implementation BTPayPalButton - -- (instancetype)init { - self = [super init]; - if (self != nil) { - [self setupViews]; - } - return self; -} - -- (instancetype)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self != nil) { - [self setupViews]; - } - return self; -} - -- (instancetype)initWithCoder:(NSCoder *)aDecoder { - self = [super initWithCoder:aDecoder]; - if (self != nil) { - [self setupViews]; - } - return self; -} - -- (void)setupViews { - self.accessibilityLabel = @"PayPal"; - self.userInteractionEnabled = YES; - self.clipsToBounds = YES; - self.opaque = NO; - self.backgroundColor = [UIColor clearColor]; - - self.layer.borderWidth = 0.5f; - - self.payPalHorizontalSignatureView = [[BTPayPalHorizontalSignatureWhiteView alloc] init]; - [self.payPalHorizontalSignatureView setTranslatesAutoresizingMaskIntoConstraints:NO]; - self.payPalHorizontalSignatureView.userInteractionEnabled = NO; - - [self addSubview:self.payPalHorizontalSignatureView]; - - self.backgroundColor = [[BTUI braintreeTheme] payPalButtonBlue]; - self.layer.borderColor = [UIColor clearColor].CGColor; - - [self addConstraints:[self defaultConstraints]]; - - [self addTarget:self action:@selector(didReceiveTouch) forControlEvents:UIControlEventTouchUpInside]; -} - -- (void)didReceiveTouch { - if (self.client == nil) { - [[BTLogger sharedLogger] warning:@"BTPayPalButton tapped without a client. You must assign a BTClient to the the BTPayPalButton before it requests presents presentation of the PayPal view controller."]; - return; - } - - // Only allow presentation of one braintreePayPalViewController at a time. - if (self.braintreePayPalViewController == nil) { - self.userInteractionEnabled = NO; - self.braintreePayPalViewController = [[BTPayPalViewController alloc] initWithClient:self.client]; - self.braintreePayPalViewController.delegate = self; - [self requestPresentationOfViewController:self.braintreePayPalViewController]; - } -} - -- (id)presentationDelegate { - return _presentationDelegate ?: self; -} - -#pragma mark State Change Messages - -- (void)informDelegateDidCreatePayPalPaymentMethod:(BTPayPalPaymentMethod *)payPalPaymentMethod { - if ([self.delegate respondsToSelector:@selector(payPalButton:didCreatePayPalPaymentMethod:)]) { - [self.delegate payPalButton:self didCreatePayPalPaymentMethod:payPalPaymentMethod]; - } -} -- (void)informDelegateDidFailWithError:(NSError *)error { - if ([self.delegate respondsToSelector:@selector(payPalButton:didFailWithError:)]) { - [self.delegate payPalButton:self didFailWithError:error]; - } -} - -- (void)informDelegateWillCreatePayPalPaymentMethod { - if ([self.delegate respondsToSelector:@selector(payPalButtonWillCreatePayPalPaymentMethod:)]) { - [self.delegate payPalButtonWillCreatePayPalPaymentMethod:self]; - } -} - -#pragma mark Presentation Delegate Messages - -- (void)requestDismissalOfViewController:(UIViewController *)viewController { - if ([self.presentationDelegate respondsToSelector:@selector(payPalButton:requestsDismissalOfViewController:)]) { - [self.presentationDelegate payPalButton:self requestsDismissalOfViewController:viewController]; - } -} - -- (void)requestPresentationOfViewController:(UIViewController *)viewController { - if ([self.presentationDelegate respondsToSelector:@selector(payPalButton:requestsPresentationOfViewController:)]) { - [self.presentationDelegate payPalButton:self requestsPresentationOfViewController:viewController]; - } -} - -#pragma mark - UIControl methods - -- (void)setHighlighted:(BOOL)highlighted { - [UIView animateWithDuration:0.08f animations:^{ - self.backgroundColor = highlighted ? [[BTUI braintreeTheme] payPalButtonActiveBlue] : [[BTUI braintreeTheme] payPalButtonBlue]; - }]; -} - - -#pragma mark - BTPayPalViewControllerDelegate implementation - -- (void)payPalViewControllerWillCreatePayPalPaymentMethod:(BTPayPalViewController *)viewController { - [self requestDismissalOfViewController:viewController]; - [self informDelegateWillCreatePayPalPaymentMethod]; -} - -- (void)payPalViewController:(__unused BTPayPalViewController *)viewController didCreatePayPalPaymentMethod:(BTPayPalPaymentMethod *)payPalPaymentMethod { - self.userInteractionEnabled = YES; - self.braintreePayPalViewController = nil; - [self informDelegateDidCreatePayPalPaymentMethod:payPalPaymentMethod]; -} - -- (void)payPalViewController:(BTPayPalViewController *)viewController didFailWithError:(NSError *)error { - self.userInteractionEnabled = YES; - NSLog(@"PayPal view controller failed with error: %@", error); - self.braintreePayPalViewController = nil; - [self requestDismissalOfViewController:viewController]; - [self informDelegateDidFailWithError:error]; -} - -- (void)payPalViewControllerDidCancel:(BTPayPalViewController *)viewController { - self.userInteractionEnabled = YES; - self.braintreePayPalViewController = nil; - [self requestDismissalOfViewController:viewController]; -} - -#pragma mark - BTPayPalButtonViewControllerPresenterDelegate default implementation - -- (void)payPalButton:(__unused BTPayPalButton *)button requestsPresentationOfViewController:(UIViewController *)viewController { - [self.window.rootViewController presentViewController:viewController animated:YES completion:nil]; -} - -- (void)payPalButton:(__unused BTPayPalButton *)button requestsDismissalOfViewController:(UIViewController *)viewController { - [viewController dismissViewControllerAnimated:YES completion:nil]; -} - -#pragma mark Auto Layout Constraints - -- (NSArray *)defaultConstraints { - CGFloat BTPayPalButtonHorizontalSignatureWidth = 95.0f; - CGFloat BTPayPalButtonHorizontalSignatureHeight = 23.0f; - CGFloat BTPayPalButtonMinHeight = 40.0f; - CGFloat BTPayPalButtonMaxHeight = 60.0f; - CGFloat BTPayPalButtonMinWidth = 240.0f; - - NSDictionary *metrics = @{ @"minHeight": @(BTPayPalButtonMinHeight), - @"maxHeight": @(BTPayPalButtonMaxHeight), - @"required": @(UILayoutPriorityRequired), - @"minWidth": @(BTPayPalButtonMinWidth) }; - NSDictionary *views = @{ @"self": self, - @"payPalHorizontalSignatureView": self.payPalHorizontalSignatureView }; - - - NSMutableArray *constraints = [NSMutableArray arrayWithCapacity:6]; - // Signature centerY - [constraints addObject: - [NSLayoutConstraint constraintWithItem:self.payPalHorizontalSignatureView - attribute:NSLayoutAttributeCenterY - relatedBy:NSLayoutRelationEqual - toItem:self - attribute:NSLayoutAttributeCenterY - multiplier:1.0f - constant:0.0f]]; - - // Signature centerX - [constraints addObject: - [NSLayoutConstraint constraintWithItem:self.payPalHorizontalSignatureView - attribute:NSLayoutAttributeCenterX - relatedBy:NSLayoutRelationEqual - toItem:self - attribute:NSLayoutAttributeCenterX - multiplier:1.0f - constant:0.0f]]; - - // Signature width - [constraints addObject: - [NSLayoutConstraint constraintWithItem:self.payPalHorizontalSignatureView - attribute:NSLayoutAttributeWidth - relatedBy:NSLayoutRelationEqual - toItem:nil - attribute:NSLayoutAttributeNotAnAttribute - multiplier:1.0f - constant:BTPayPalButtonHorizontalSignatureWidth]]; - - // Signature height - [constraints addObject: - [NSLayoutConstraint constraintWithItem:self.payPalHorizontalSignatureView - attribute:NSLayoutAttributeHeight - relatedBy:NSLayoutRelationEqual - toItem:nil - attribute:NSLayoutAttributeNotAnAttribute - multiplier:1.0f - constant:BTPayPalButtonHorizontalSignatureHeight]]; - - [constraints addObjectsFromArray: - [NSLayoutConstraint constraintsWithVisualFormat:@"V:[self(>=minHeight@required,<=maxHeight@required)]" - options:0 - metrics:metrics - views:views]]; - - [constraints addObjectsFromArray: - [NSLayoutConstraint constraintsWithVisualFormat:@"H:[self(>=260@required)]" - options:0 - metrics:metrics - views:views]]; - return constraints; -} - -- (CGSize)intrinsicContentSize { - return CGSizeMake(320, UIViewNoIntrinsicMetric); -} - -@end diff --git a/Pods/Braintree/Braintree/PayPal/BTPayPalViewController.m b/Pods/Braintree/Braintree/PayPal/BTPayPalViewController.m deleted file mode 100644 index a6527cb..0000000 --- a/Pods/Braintree/Braintree/PayPal/BTPayPalViewController.m +++ /dev/null @@ -1,132 +0,0 @@ -#import "BTPayPalViewController_Internal.h" - -#import "BTClient+BTPayPal.h" -#import "BTClient_Internal.h" -#import "BTErrors+BTPayPal.h" - -#import "BTMutablePayPalPaymentMethod.h" - -@interface BTPayPalViewController () -@property (nonatomic, strong) NSError *failureError; -@property (nonatomic, strong) BTPayPalPaymentMethod *paymentMethod; -@end - -@implementation BTPayPalViewController - -- (instancetype)initWithClient:(BTClient *)client -{ - self = [self init]; - if (self) { - self.client = client; - } - return self; -} - -- (void)viewDidLoad -{ - [super viewDidLoad]; - - if (!self.payPalProfileSharingViewController) { - NSError *error; - [self.client btPayPal_preparePayPalMobileWithError:&error]; - if (error) { - if ([self.delegate respondsToSelector:@selector(payPalViewController:didFailWithError:)]) { - [self.delegate payPalViewController:self didFailWithError:error]; - } - self.view = nil; - return; - } - - self.payPalProfileSharingViewController = [self.client btPayPal_profileSharingViewControllerWithDelegate:self]; - if (!self.payPalProfileSharingViewController) { - if ([self.delegate respondsToSelector:@selector(payPalViewController:didFailWithError:)]) { - NSError *error = [NSError errorWithDomain:BTBraintreePayPalErrorDomain - code:BTMerchantIntegrationErrorPayPalConfiguration - userInfo:@{ NSLocalizedDescriptionKey: @"PayPalProfileSharingViewController could not be initialized. Perhaps client token did not contain a valid PayPal configuration. Please ensure that you have PayPal enabled and are including the configuration in your client token." }]; - [self.delegate payPalViewController:self didFailWithError:error]; - } - self.view = nil; - return; - } - } - - if (self.payPalProfileSharingViewController) { - [self addChildViewController:self.payPalProfileSharingViewController]; - [self.payPalProfileSharingViewController willMoveToParentViewController:self]; - [self.view addSubview:self.payPalProfileSharingViewController.view]; - [self.payPalProfileSharingViewController didMoveToParentViewController:self]; - } -} - -- (void)viewWillAppear:(BOOL)animated { - [super viewWillAppear:animated]; - [self.client postAnalyticsEvent:@"ios.paypal.viewcontroller.will-appear"]; -} - -#pragma mark - PayPalProfileSharingDelegate implementation - - -- (void)userDidCancelPayPalProfileSharingViewController:(__unused PayPalProfileSharingViewController *)profileSharingViewController { - [self.client postAnalyticsEvent:@"ios.paypal.viewcontroller.did-cancel"]; - if ([self.delegate respondsToSelector:@selector(payPalViewControllerDidCancel:)]) { - [self.delegate payPalViewControllerDidCancel:self]; - } -} - -- (void)payPalProfileSharingViewController:(__unused PayPalProfileSharingViewController *)profileSharingViewController - userWillLogInWithAuthorization:(NSDictionary *)profileSharingAuthorization - completionBlock:(PayPalProfileSharingDelegateCompletionBlock)completionBlock { - NSString *authCode = profileSharingAuthorization[@"response"][@"code"]; - - [self.client postAnalyticsEvent:@"ios.paypal.viewcontroller.will-log-in"]; - if (authCode == nil) { - self.failureError = [NSError errorWithDomain:BTBraintreePayPalErrorDomain code:BTPayPalUnknownError userInfo:@{NSLocalizedDescriptionKey: @"PayPal flow failed to generate an auth code" }]; - completionBlock(); - } else { - if ([self.delegate respondsToSelector:@selector(payPalViewControllerWillCreatePayPalPaymentMethod:)]) { - [self.delegate payPalViewControllerWillCreatePayPalPaymentMethod:self]; - } - - BTClient *client = [self.client copyWithMetadata:^(BTClientMutableMetadata *metadata) { - metadata.source = BTClientMetadataSourcePayPalSDK; - }]; - - [client savePaypalPaymentMethodWithAuthCode:authCode - applicationCorrelationID:[client btPayPal_applicationCorrelationId] - success:^(BTPayPalPaymentMethod *paypalPaymentMethod) { - NSString *userDisplayStringFromPayPalSDK = profileSharingAuthorization[@"user"][@"display_string"]; - if (paypalPaymentMethod.email == nil && [userDisplayStringFromPayPalSDK isKindOfClass:[NSString class]]) { - BTMutablePayPalPaymentMethod *mutablePayPalPaymentMethod = [paypalPaymentMethod mutableCopy]; - mutablePayPalPaymentMethod.email = userDisplayStringFromPayPalSDK; - if (!mutablePayPalPaymentMethod.description) { - mutablePayPalPaymentMethod.description = userDisplayStringFromPayPalSDK; - } - paypalPaymentMethod = mutablePayPalPaymentMethod; - } - self.paymentMethod = paypalPaymentMethod; - completionBlock(); - } failure:^(NSError *error) { - self.failureError = error; - completionBlock(); - }]; - } -} - -- (void)payPalProfileSharingViewController:(__unused PayPalProfileSharingViewController *)profileSharingViewController - userDidLogInWithAuthorization:(__unused NSDictionary *)profileSharingAuthorization { - - if (self.paymentMethod && !self.failureError) { - [self.client postAnalyticsEvent:@"ios.paypal.viewcontroller.success"]; - if ([self.delegate respondsToSelector:@selector(payPalViewController:didCreatePayPalPaymentMethod:)]) { - [self.delegate payPalViewController:self didCreatePayPalPaymentMethod:self.paymentMethod]; - } - } else { - [self.client postAnalyticsEvent:@"ios.paypal.viewcontroller.error"]; - if ([self.delegate respondsToSelector:@selector(payPalViewController:didFailWithError:)]) { - [self.delegate payPalViewController:self didFailWithError:self.failureError]; - } - } -} - - -@end diff --git a/Pods/Braintree/Braintree/PayPal/BTPayPalViewController_Internal.h b/Pods/Braintree/Braintree/PayPal/BTPayPalViewController_Internal.h deleted file mode 100644 index ab159be..0000000 --- a/Pods/Braintree/Braintree/PayPal/BTPayPalViewController_Internal.h +++ /dev/null @@ -1,6 +0,0 @@ -#import "BTPayPalViewController.h" -#import "PayPalMobile.h" - -@interface BTPayPalViewController () -@property (nonatomic, readwrite, strong) PayPalProfileSharingViewController *payPalProfileSharingViewController; -@end diff --git a/Pods/Braintree/Braintree/PayPal/Models/BTClient+BTPayPal.m b/Pods/Braintree/Braintree/PayPal/Models/BTClient+BTPayPal.m deleted file mode 100644 index 1f1ebe7..0000000 --- a/Pods/Braintree/Braintree/PayPal/Models/BTClient+BTPayPal.m +++ /dev/null @@ -1,115 +0,0 @@ -#import "BTClient+BTPayPal.h" -#import "BTErrors+BTPayPal.h" - -#import -#import "BTClient_Internal.h" -#import "BTClient+Offline.h" - -NSString *const BTClientPayPalMobileEnvironmentName = @"Braintree"; -NSString *const BTPayPalScopeAddress = @"address"; - -NSString *const BTClientPayPalConfigurationError = @"The PayPal SDK could not be initialized. Perhaps client token did not contain a valid PayPal configuration."; - -@implementation BTClient (BTPayPal) - -+ (NSString *)btPayPal_offlineTestClientToken { - NSDictionary *payPalClientTokenData = @{ BTConfigurationKeyPayPal: @{ - BTConfigurationKeyPayPalMerchantName: @"Offline Test Merchant", - BTConfigurationKeyPayPalClientId: @"paypal-client-id", - BTConfigurationKeyPayPalMerchantPrivacyPolicyUrl: @"http://example.com/privacy", - BTConfigurationKeyPayPalEnvironment: BTConfigurationPayPalEnvironmentOffline, - BTConfigurationKeyPayPalMerchantUserAgreementUrl: @"http://example.com/tos" } - }; - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - return [self offlineTestClientTokenWithAdditionalParameters:payPalClientTokenData]; -#pragma clang diagnostic pop -} - -- (BOOL)btPayPal_preparePayPalMobileWithError:(NSError * __autoreleasing *)error { - - if ([self.configuration.btPayPal_environment isEqualToString:BTConfigurationPayPalEnvironmentOffline]) { - [PayPalMobile initializeWithClientIdsForEnvironments:@{@"": @""}]; - [PayPalMobile preconnectWithEnvironment:PayPalEnvironmentNoNetwork]; - } else if ([self.configuration.btPayPal_environment isEqualToString: BTConfigurationPayPalEnvironmentLive]) { - [PayPalMobile initializeWithClientIdsForEnvironments:@{PayPalEnvironmentProduction: self.configuration.btPayPal_clientId}]; - [PayPalMobile preconnectWithEnvironment:PayPalEnvironmentProduction]; - } else if ([self.configuration.btPayPal_environment isEqualToString: BTConfigurationPayPalEnvironmentCustom]) { - if (self.configuration.btPayPal_directBaseURL == nil || self.configuration.btPayPal_clientId == nil) { - if (error) { - *error = [NSError errorWithDomain:BTBraintreePayPalErrorDomain - code:BTMerchantIntegrationErrorPayPalConfiguration - userInfo:@{ NSLocalizedDescriptionKey: BTClientPayPalConfigurationError }]; - return NO; - } - } else { - [PayPalMobile addEnvironments:@{ BTClientPayPalMobileEnvironmentName:@{ - @"api": [self.configuration.btPayPal_directBaseURL absoluteString] } }]; - [PayPalMobile initializeWithClientIdsForEnvironments:@{BTClientPayPalMobileEnvironmentName: self.configuration.btPayPal_clientId}]; - [PayPalMobile preconnectWithEnvironment:BTClientPayPalMobileEnvironmentName]; - } - } else { - if (error){ - *error = [NSError errorWithDomain:BTBraintreePayPalErrorDomain - code:BTMerchantIntegrationErrorPayPalConfiguration - userInfo:@{ NSLocalizedDescriptionKey: BTClientPayPalConfigurationError}]; - return NO; - } - } - - return YES; -} - -- (NSSet *)btPayPal_scopes { - NSSet *defaultScopes = [NSSet setWithObjects:kPayPalOAuth2ScopeFuturePayments, kPayPalOAuth2ScopeEmail, nil]; - if (self.additionalPayPalScopes != nil) { - return [self.additionalPayPalScopes setByAddingObjectsFromSet:defaultScopes]; - } - return defaultScopes; -} - -- (PayPalProfileSharingViewController *)btPayPal_profileSharingViewControllerWithDelegate:(id)delegate { - return [[PayPalProfileSharingViewController alloc] initWithScopeValues:self.btPayPal_scopes - configuration:self.btPayPal_configuration - delegate:delegate]; -} - -- (BOOL)btPayPal_isPayPalEnabled { - return self.configuration.btPayPal_isPayPalEnabled; -} - -- (NSString *)btPayPal_applicationCorrelationId { - NSString *payPalEnvironment = self.configuration.btPayPal_environment; - if (![payPalEnvironment isEqualToString:PayPalEnvironmentProduction] && ![payPalEnvironment isEqualToString:PayPalEnvironmentSandbox]) { - return nil; - } - - return [PayPalMobile clientMetadataID]; -} - -- (PayPalConfiguration *)btPayPal_configuration { - PayPalConfiguration *configuration = [PayPalConfiguration new]; - - if ([self.configuration.btPayPal_environment isEqualToString: BTConfigurationPayPalEnvironmentLive]) { - configuration.merchantName = self.configuration.btPayPal_merchantName; - configuration.merchantPrivacyPolicyURL = self.configuration.btPayPal_privacyPolicyURL; - configuration.merchantUserAgreementURL = self.configuration.btPayPal_merchantUserAgreementURL; - } else { - configuration.merchantName = self.configuration.btPayPal_merchantName ?: BTConfigurationPayPalNonLiveDefaultValueMerchantName; - configuration.merchantPrivacyPolicyURL = self.configuration.btPayPal_privacyPolicyURL ?: [NSURL URLWithString:BTConfigurationPayPalNonLiveDefaultValueMerchantPrivacyPolicyUrl]; - configuration.merchantUserAgreementURL = self.configuration.btPayPal_merchantUserAgreementURL ?: [NSURL URLWithString:BTConfigurationPayPalNonLiveDefaultValueMerchantUserAgreementUrl]; - } - - return configuration; -} - -- (NSString *)btPayPal_environment { - return [self.configuration.btPayPal_environment isEqualToString:BTConfigurationPayPalEnvironmentLive] ? PayPalEnvironmentProduction : BTClientPayPalMobileEnvironmentName; -} - -- (BOOL)btPayPal_isTouchDisabled { - return self.configuration.btPayPal_isTouchDisabled; -} - -@end diff --git a/Pods/Braintree/Braintree/PayPal/Views/BTPayPalHorizontalSignatureWhiteView.h b/Pods/Braintree/Braintree/PayPal/Views/BTPayPalHorizontalSignatureWhiteView.h deleted file mode 100644 index 36fb9f0..0000000 --- a/Pods/Braintree/Braintree/PayPal/Views/BTPayPalHorizontalSignatureWhiteView.h +++ /dev/null @@ -1,6 +0,0 @@ -#import -#import "BTUIVectorArtView.h" - -@interface BTPayPalHorizontalSignatureWhiteView : BTUIVectorArtView - -@end diff --git a/Pods/Braintree/Braintree/PayPal/Views/BTPayPalHorizontalSignatureWhiteView.m b/Pods/Braintree/Braintree/PayPal/Views/BTPayPalHorizontalSignatureWhiteView.m deleted file mode 100644 index 96196b8..0000000 --- a/Pods/Braintree/Braintree/PayPal/Views/BTPayPalHorizontalSignatureWhiteView.m +++ /dev/null @@ -1,252 +0,0 @@ -#import "BTPayPalHorizontalSignatureWhiteView.h" - -@implementation BTPayPalHorizontalSignatureWhiteView - -- (instancetype)init { - self = [super init]; - if (self) { - self.artDimensions = CGSizeMake(405, 99); - self.opaque = NO; - } - return self; -} - -- (void)drawArt -{ - //// Color Declarations - UIColor* color0 = [UIColor colorWithRed: 1 green: 1 blue: 1 alpha: 1]; - - //// Group - { - //// Group 2 - { - //// Group 3 - { - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint: CGPointMake(311.63, 21.95)]; - [bezierPath addLineToPoint: CGPointMake(289.38, 21.95)]; - [bezierPath addCurveToPoint: CGPointMake(286.33, 24.56) controlPoint1: CGPointMake(287.86, 21.95) controlPoint2: CGPointMake(286.56, 23.06)]; - [bezierPath addLineToPoint: CGPointMake(277.33, 81.62)]; - [bezierPath addCurveToPoint: CGPointMake(279.16, 83.76) controlPoint1: CGPointMake(277.15, 82.74) controlPoint2: CGPointMake(278.02, 83.76)]; - [bezierPath addLineToPoint: CGPointMake(290.58, 83.76)]; - [bezierPath addCurveToPoint: CGPointMake(292.71, 81.93) controlPoint1: CGPointMake(291.64, 83.76) controlPoint2: CGPointMake(292.55, 82.99)]; - [bezierPath addLineToPoint: CGPointMake(295.27, 65.76)]; - [bezierPath addCurveToPoint: CGPointMake(298.32, 63.15) controlPoint1: CGPointMake(295.5, 64.26) controlPoint2: CGPointMake(296.8, 63.15)]; - [bezierPath addLineToPoint: CGPointMake(305.36, 63.15)]; - [bezierPath addCurveToPoint: CGPointMake(330.68, 42) controlPoint1: CGPointMake(320.01, 63.15) controlPoint2: CGPointMake(328.47, 56.06)]; - [bezierPath addCurveToPoint: CGPointMake(327.85, 27.64) controlPoint1: CGPointMake(331.68, 35.85) controlPoint2: CGPointMake(330.72, 31.02)]; - [bezierPath addCurveToPoint: CGPointMake(311.63, 21.95) controlPoint1: CGPointMake(324.68, 23.92) controlPoint2: CGPointMake(319.07, 21.95)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(314.2, 42.79)]; - [bezierPath addCurveToPoint: CGPointMake(300.98, 50.78) controlPoint1: CGPointMake(312.98, 50.78) controlPoint2: CGPointMake(306.88, 50.78)]; - [bezierPath addLineToPoint: CGPointMake(297.62, 50.78)]; - [bezierPath addLineToPoint: CGPointMake(299.98, 35.87)]; - [bezierPath addCurveToPoint: CGPointMake(301.81, 34.3) controlPoint1: CGPointMake(300.12, 34.97) controlPoint2: CGPointMake(300.9, 34.3)]; - [bezierPath addLineToPoint: CGPointMake(303.35, 34.3)]; - [bezierPath addCurveToPoint: CGPointMake(313.11, 36.59) controlPoint1: CGPointMake(307.37, 34.3) controlPoint2: CGPointMake(311.16, 34.3)]; - [bezierPath addCurveToPoint: CGPointMake(314.2, 42.79) controlPoint1: CGPointMake(314.29, 37.96) controlPoint2: CGPointMake(314.64, 39.99)]; - [bezierPath closePath]; - bezierPath.miterLimit = 4; - - [color0 setFill]; - [bezierPath fill]; - - - //// Bezier 2 Drawing - UIBezierPath* bezier2Path = [UIBezierPath bezierPath]; - [bezier2Path moveToPoint: CGPointMake(152.93, 21.95)]; - [bezier2Path addLineToPoint: CGPointMake(130.68, 21.95)]; - [bezier2Path addCurveToPoint: CGPointMake(127.63, 24.56) controlPoint1: CGPointMake(129.16, 21.95) controlPoint2: CGPointMake(127.87, 23.06)]; - [bezier2Path addLineToPoint: CGPointMake(118.63, 81.62)]; - [bezier2Path addCurveToPoint: CGPointMake(120.46, 83.76) controlPoint1: CGPointMake(118.45, 82.74) controlPoint2: CGPointMake(119.32, 83.76)]; - [bezier2Path addLineToPoint: CGPointMake(131.09, 83.76)]; - [bezier2Path addCurveToPoint: CGPointMake(134.14, 81.15) controlPoint1: CGPointMake(132.61, 83.76) controlPoint2: CGPointMake(133.9, 82.65)]; - [bezier2Path addLineToPoint: CGPointMake(136.57, 65.76)]; - [bezier2Path addCurveToPoint: CGPointMake(139.62, 63.15) controlPoint1: CGPointMake(136.81, 64.26) controlPoint2: CGPointMake(138.1, 63.15)]; - [bezier2Path addLineToPoint: CGPointMake(146.66, 63.15)]; - [bezier2Path addCurveToPoint: CGPointMake(171.99, 42) controlPoint1: CGPointMake(161.32, 63.15) controlPoint2: CGPointMake(169.78, 56.06)]; - [bezier2Path addCurveToPoint: CGPointMake(169.15, 27.64) controlPoint1: CGPointMake(172.98, 35.85) controlPoint2: CGPointMake(172.03, 31.02)]; - [bezier2Path addCurveToPoint: CGPointMake(152.93, 21.95) controlPoint1: CGPointMake(165.98, 23.92) controlPoint2: CGPointMake(160.38, 21.95)]; - [bezier2Path closePath]; - [bezier2Path moveToPoint: CGPointMake(155.5, 42.79)]; - [bezier2Path addCurveToPoint: CGPointMake(142.28, 50.78) controlPoint1: CGPointMake(154.28, 50.78) controlPoint2: CGPointMake(148.18, 50.78)]; - [bezier2Path addLineToPoint: CGPointMake(138.93, 50.78)]; - [bezier2Path addLineToPoint: CGPointMake(141.28, 35.87)]; - [bezier2Path addCurveToPoint: CGPointMake(143.11, 34.3) controlPoint1: CGPointMake(141.43, 34.97) controlPoint2: CGPointMake(142.2, 34.3)]; - [bezier2Path addLineToPoint: CGPointMake(144.65, 34.3)]; - [bezier2Path addCurveToPoint: CGPointMake(154.42, 36.59) controlPoint1: CGPointMake(148.67, 34.3) controlPoint2: CGPointMake(152.46, 34.3)]; - [bezier2Path addCurveToPoint: CGPointMake(155.5, 42.79) controlPoint1: CGPointMake(155.59, 37.96) controlPoint2: CGPointMake(155.94, 39.99)]; - [bezier2Path closePath]; - bezier2Path.miterLimit = 4; - - [color0 setFill]; - [bezier2Path fill]; - - - //// Bezier 3 Drawing - UIBezierPath* bezier3Path = [UIBezierPath bezierPath]; - [bezier3Path moveToPoint: CGPointMake(219.44, 42.54)]; - [bezier3Path addLineToPoint: CGPointMake(208.78, 42.54)]; - [bezier3Path addCurveToPoint: CGPointMake(206.95, 44.1) controlPoint1: CGPointMake(207.87, 42.54) controlPoint2: CGPointMake(207.09, 43.2)]; - [bezier3Path addLineToPoint: CGPointMake(206.48, 47.08)]; - [bezier3Path addLineToPoint: CGPointMake(205.74, 46)]; - [bezier3Path addCurveToPoint: CGPointMake(193.15, 41.53) controlPoint1: CGPointMake(203.43, 42.65) controlPoint2: CGPointMake(198.29, 41.53)]; - [bezier3Path addCurveToPoint: CGPointMake(169.37, 62.97) controlPoint1: CGPointMake(181.38, 41.53) controlPoint2: CGPointMake(171.33, 50.45)]; - [bezier3Path addCurveToPoint: CGPointMake(173.34, 79.33) controlPoint1: CGPointMake(168.35, 69.21) controlPoint2: CGPointMake(169.8, 75.17)]; - [bezier3Path addCurveToPoint: CGPointMake(186.75, 84.75) controlPoint1: CGPointMake(176.59, 83.16) controlPoint2: CGPointMake(181.23, 84.75)]; - [bezier3Path addCurveToPoint: CGPointMake(201.5, 78.65) controlPoint1: CGPointMake(196.24, 84.75) controlPoint2: CGPointMake(201.5, 78.65)]; - [bezier3Path addLineToPoint: CGPointMake(201.03, 81.62)]; - [bezier3Path addCurveToPoint: CGPointMake(202.86, 83.76) controlPoint1: CGPointMake(200.85, 82.74) controlPoint2: CGPointMake(201.72, 83.76)]; - [bezier3Path addLineToPoint: CGPointMake(212.46, 83.76)]; - [bezier3Path addCurveToPoint: CGPointMake(215.51, 81.15) controlPoint1: CGPointMake(213.98, 83.76) controlPoint2: CGPointMake(215.27, 82.66)]; - [bezier3Path addLineToPoint: CGPointMake(221.27, 44.68)]; - [bezier3Path addCurveToPoint: CGPointMake(219.44, 42.54) controlPoint1: CGPointMake(221.44, 43.55) controlPoint2: CGPointMake(220.57, 42.54)]; - [bezier3Path closePath]; - [bezier3Path moveToPoint: CGPointMake(204.59, 63.27)]; - [bezier3Path addCurveToPoint: CGPointMake(192.56, 73.45) controlPoint1: CGPointMake(203.56, 69.36) controlPoint2: CGPointMake(198.73, 73.45)]; - [bezier3Path addCurveToPoint: CGPointMake(185.41, 70.57) controlPoint1: CGPointMake(189.47, 73.45) controlPoint2: CGPointMake(187, 72.45)]; - [bezier3Path addCurveToPoint: CGPointMake(183.74, 63.09) controlPoint1: CGPointMake(183.83, 68.71) controlPoint2: CGPointMake(183.24, 66.05)]; - [bezier3Path addCurveToPoint: CGPointMake(195.68, 52.84) controlPoint1: CGPointMake(184.7, 57.06) controlPoint2: CGPointMake(189.61, 52.84)]; - [bezier3Path addCurveToPoint: CGPointMake(202.78, 55.74) controlPoint1: CGPointMake(198.7, 52.84) controlPoint2: CGPointMake(201.16, 53.84)]; - [bezier3Path addCurveToPoint: CGPointMake(204.59, 63.27) controlPoint1: CGPointMake(204.41, 57.65) controlPoint2: CGPointMake(205.06, 60.33)]; - [bezier3Path closePath]; - bezier3Path.miterLimit = 4; - - [color0 setFill]; - [bezier3Path fill]; - - - //// Bezier 4 Drawing - UIBezierPath* bezier4Path = [UIBezierPath bezierPath]; - [bezier4Path moveToPoint: CGPointMake(378.13, 42.54)]; - [bezier4Path addLineToPoint: CGPointMake(367.48, 42.54)]; - [bezier4Path addCurveToPoint: CGPointMake(365.65, 44.1) controlPoint1: CGPointMake(366.57, 42.54) controlPoint2: CGPointMake(365.79, 43.2)]; - [bezier4Path addLineToPoint: CGPointMake(365.18, 47.08)]; - [bezier4Path addLineToPoint: CGPointMake(364.43, 46)]; - [bezier4Path addCurveToPoint: CGPointMake(351.85, 41.53) controlPoint1: CGPointMake(362.12, 42.65) controlPoint2: CGPointMake(356.98, 41.53)]; - [bezier4Path addCurveToPoint: CGPointMake(328.07, 62.97) controlPoint1: CGPointMake(340.08, 41.53) controlPoint2: CGPointMake(330.02, 50.45)]; - [bezier4Path addCurveToPoint: CGPointMake(332.03, 79.33) controlPoint1: CGPointMake(327.05, 69.21) controlPoint2: CGPointMake(328.49, 75.17)]; - [bezier4Path addCurveToPoint: CGPointMake(345.45, 84.75) controlPoint1: CGPointMake(335.28, 83.16) controlPoint2: CGPointMake(339.92, 84.75)]; - [bezier4Path addCurveToPoint: CGPointMake(360.2, 78.65) controlPoint1: CGPointMake(354.94, 84.75) controlPoint2: CGPointMake(360.2, 78.65)]; - [bezier4Path addLineToPoint: CGPointMake(359.73, 81.62)]; - [bezier4Path addCurveToPoint: CGPointMake(361.56, 83.76) controlPoint1: CGPointMake(359.55, 82.74) controlPoint2: CGPointMake(360.42, 83.76)]; - [bezier4Path addLineToPoint: CGPointMake(371.15, 83.76)]; - [bezier4Path addCurveToPoint: CGPointMake(374.21, 81.15) controlPoint1: CGPointMake(372.67, 83.76) controlPoint2: CGPointMake(373.97, 82.66)]; - [bezier4Path addLineToPoint: CGPointMake(379.97, 44.68)]; - [bezier4Path addCurveToPoint: CGPointMake(378.13, 42.54) controlPoint1: CGPointMake(380.14, 43.55) controlPoint2: CGPointMake(379.27, 42.54)]; - [bezier4Path closePath]; - [bezier4Path moveToPoint: CGPointMake(363.28, 63.27)]; - [bezier4Path addCurveToPoint: CGPointMake(351.26, 73.45) controlPoint1: CGPointMake(362.25, 69.36) controlPoint2: CGPointMake(357.42, 73.45)]; - [bezier4Path addCurveToPoint: CGPointMake(344.1, 70.57) controlPoint1: CGPointMake(348.17, 73.45) controlPoint2: CGPointMake(345.69, 72.45)]; - [bezier4Path addCurveToPoint: CGPointMake(342.44, 63.09) controlPoint1: CGPointMake(342.53, 68.71) controlPoint2: CGPointMake(341.94, 66.05)]; - [bezier4Path addCurveToPoint: CGPointMake(354.37, 52.84) controlPoint1: CGPointMake(343.4, 57.06) controlPoint2: CGPointMake(348.3, 52.84)]; - [bezier4Path addCurveToPoint: CGPointMake(361.48, 55.74) controlPoint1: CGPointMake(357.4, 52.84) controlPoint2: CGPointMake(359.86, 53.84)]; - [bezier4Path addCurveToPoint: CGPointMake(363.28, 63.27) controlPoint1: CGPointMake(363.11, 57.65) controlPoint2: CGPointMake(363.75, 60.33)]; - [bezier4Path closePath]; - bezier4Path.miterLimit = 4; - - [color0 setFill]; - [bezier4Path fill]; - - - //// Bezier 5 Drawing - UIBezierPath* bezier5Path = [UIBezierPath bezierPath]; - [bezier5Path moveToPoint: CGPointMake(276.18, 42.54)]; - [bezier5Path addLineToPoint: CGPointMake(265.47, 42.54)]; - [bezier5Path addCurveToPoint: CGPointMake(262.92, 43.89) controlPoint1: CGPointMake(264.45, 42.54) controlPoint2: CGPointMake(263.49, 43.05)]; - [bezier5Path addLineToPoint: CGPointMake(248.14, 65.65)]; - [bezier5Path addLineToPoint: CGPointMake(241.88, 44.74)]; - [bezier5Path addCurveToPoint: CGPointMake(238.92, 42.54) controlPoint1: CGPointMake(241.49, 43.43) controlPoint2: CGPointMake(240.29, 42.54)]; - [bezier5Path addLineToPoint: CGPointMake(228.39, 42.54)]; - [bezier5Path addCurveToPoint: CGPointMake(226.64, 44.99) controlPoint1: CGPointMake(227.12, 42.54) controlPoint2: CGPointMake(226.23, 43.79)]; - [bezier5Path addLineToPoint: CGPointMake(238.43, 79.6)]; - [bezier5Path addLineToPoint: CGPointMake(227.34, 95.25)]; - [bezier5Path addCurveToPoint: CGPointMake(228.85, 98.18) controlPoint1: CGPointMake(226.47, 96.48) controlPoint2: CGPointMake(227.35, 98.18)]; - [bezier5Path addLineToPoint: CGPointMake(239.55, 98.18)]; - [bezier5Path addCurveToPoint: CGPointMake(242.09, 96.85) controlPoint1: CGPointMake(240.57, 98.18) controlPoint2: CGPointMake(241.51, 97.68)]; - [bezier5Path addLineToPoint: CGPointMake(277.71, 45.45)]; - [bezier5Path addCurveToPoint: CGPointMake(276.18, 42.54) controlPoint1: CGPointMake(278.56, 44.22) controlPoint2: CGPointMake(277.68, 42.54)]; - [bezier5Path closePath]; - bezier5Path.miterLimit = 4; - - [color0 setFill]; - [bezier5Path fill]; - - - //// Bezier 6 Drawing - UIBezierPath* bezier6Path = [UIBezierPath bezierPath]; - [bezier6Path moveToPoint: CGPointMake(390.69, 23.52)]; - [bezier6Path addLineToPoint: CGPointMake(381.56, 81.62)]; - [bezier6Path addCurveToPoint: CGPointMake(383.39, 83.76) controlPoint1: CGPointMake(381.38, 82.74) controlPoint2: CGPointMake(382.25, 83.76)]; - [bezier6Path addLineToPoint: CGPointMake(392.57, 83.76)]; - [bezier6Path addCurveToPoint: CGPointMake(395.63, 81.15) controlPoint1: CGPointMake(394.1, 83.76) controlPoint2: CGPointMake(395.39, 82.66)]; - [bezier6Path addLineToPoint: CGPointMake(404.63, 24.1)]; - [bezier6Path addCurveToPoint: CGPointMake(402.8, 21.96) controlPoint1: CGPointMake(404.81, 22.97) controlPoint2: CGPointMake(403.94, 21.96)]; - [bezier6Path addLineToPoint: CGPointMake(392.52, 21.96)]; - [bezier6Path addCurveToPoint: CGPointMake(390.69, 23.52) controlPoint1: CGPointMake(391.61, 21.95) controlPoint2: CGPointMake(390.83, 22.62)]; - [bezier6Path closePath]; - bezier6Path.miterLimit = 4; - - [color0 setFill]; - [bezier6Path fill]; - } - } - } - - - //// Group 4 - { - //// Group 5 - { - //// Bezier 7 Drawing - UIBezierPath* bezier7Path = [UIBezierPath bezierPath]; - [bezier7Path moveToPoint: CGPointMake(39.01, 56.64)]; - [bezier7Path addCurveToPoint: CGPointMake(32.16, 56.64) controlPoint1: CGPointMake(34.76, 56.64) controlPoint2: CGPointMake(32.16, 56.64)]; - [bezier7Path addLineToPoint: CGPointMake(30.34, 56.64)]; - [bezier7Path addCurveToPoint: CGPointMake(28.12, 58.55) controlPoint1: CGPointMake(29.23, 56.64) controlPoint2: CGPointMake(28.3, 57.44)]; - [bezier7Path addCurveToPoint: CGPointMake(22.25, 95.65) controlPoint1: CGPointMake(28.12, 58.55) controlPoint2: CGPointMake(22.59, 93.36)]; - [bezier7Path addCurveToPoint: CGPointMake(24.52, 98.18) controlPoint1: CGPointMake(22.05, 97.04) controlPoint2: CGPointMake(23.25, 98.18)]; - [bezier7Path addLineToPoint: CGPointMake(38.3, 98.18)]; - [bezier7Path addCurveToPoint: CGPointMake(42.07, 94.95) controlPoint1: CGPointMake(40.18, 98.18) controlPoint2: CGPointMake(41.78, 96.81)]; - [bezier7Path addLineToPoint: CGPointMake(45.41, 74.13)]; - [bezier7Path addCurveToPoint: CGPointMake(49.18, 70.91) controlPoint1: CGPointMake(45.7, 72.28) controlPoint2: CGPointMake(47.3, 70.91)]; - [bezier7Path addLineToPoint: CGPointMake(51.56, 70.91)]; - [bezier7Path addCurveToPoint: CGPointMake(82.51, 46.58) controlPoint1: CGPointMake(66.94, 70.91) controlPoint2: CGPointMake(78.99, 64.66)]; - [bezier7Path addCurveToPoint: CGPointMake(76.86, 26.21) controlPoint1: CGPointMake(83.98, 39.03) controlPoint2: CGPointMake(83.51, 30.63)]; - [bezier7Path addCurveToPoint: CGPointMake(39.01, 56.64) controlPoint1: CGPointMake(74.71, 38.22) controlPoint2: CGPointMake(67.94, 56.64)]; - [bezier7Path closePath]; - bezier7Path.miterLimit = 4; - - [color0 setFill]; - [bezier7Path fill]; - } - - - //// Bezier 8 Drawing - UIBezierPath* bezier8Path = [UIBezierPath bezierPath]; - [bezier8Path moveToPoint: CGPointMake(30.34, 52.43)]; - [bezier8Path addCurveToPoint: CGPointMake(39.29, 52.43) controlPoint1: CGPointMake(35.71, 52.43) controlPoint2: CGPointMake(39.29, 52.43)]; - [bezier8Path addCurveToPoint: CGPointMake(52.03, 50.82) controlPoint1: CGPointMake(44.04, 52.43) controlPoint2: CGPointMake(48.28, 51.9)]; - [bezier8Path addCurveToPoint: CGPointMake(71.08, 32.13) controlPoint1: CGPointMake(61.51, 48.1) controlPoint2: CGPointMake(67.88, 41.93)]; - [bezier8Path addCurveToPoint: CGPointMake(68.74, 7.4) controlPoint1: CGPointMake(75.1, 19.78) controlPoint2: CGPointMake(73.32, 12.47)]; - [bezier8Path addCurveToPoint: CGPointMake(45.46, 0) controlPoint1: CGPointMake(64.12, 2.29) controlPoint2: CGPointMake(55.98, 0)]; - [bezier8Path addLineToPoint: CGPointMake(17.05, 0)]; - [bezier8Path addCurveToPoint: CGPointMake(12.74, 3.69) controlPoint1: CGPointMake(14.9, 0) controlPoint2: CGPointMake(13.07, 1.56)]; - [bezier8Path addLineToPoint: CGPointMake(0.03, 84.26)]; - [bezier8Path addCurveToPoint: CGPointMake(2.62, 87.28) controlPoint1: CGPointMake(-0.22, 85.85) controlPoint2: CGPointMake(1.01, 87.28)]; - [bezier8Path addLineToPoint: CGPointMake(19.36, 87.28)]; - [bezier8Path addCurveToPoint: CGPointMake(23.98, 58.19) controlPoint1: CGPointMake(19.36, 87.28) controlPoint2: CGPointMake(23.86, 59.01)]; - [bezier8Path addCurveToPoint: CGPointMake(30.34, 52.43) controlPoint1: CGPointMake(24.41, 55.44) controlPoint2: CGPointMake(26.15, 52.43)]; - [bezier8Path closePath]; - bezier8Path.miterLimit = 4; - - [color0 setFill]; - [bezier8Path fill]; - } - - -} - - -@end diff --git a/Pods/Braintree/Braintree/PayPal/mSDK/PayPalConfiguration.h b/Pods/Braintree/Braintree/PayPal/mSDK/PayPalConfiguration.h deleted file mode 100644 index 105b6c9..0000000 --- a/Pods/Braintree/Braintree/PayPal/mSDK/PayPalConfiguration.h +++ /dev/null @@ -1,133 +0,0 @@ -// -// PayPalConfiguration.h -// -// Version 2.14.1-bt1 -// -// Copyright (c) 2014-2016 PayPal, Inc. All rights reserved. -// All rights reserved. -// - -#import - -typedef NS_ENUM(NSInteger, PayPalShippingAddressOption) { - PayPalShippingAddressOptionNone = 0, - PayPalShippingAddressOptionProvided = 1, - PayPalShippingAddressOptionPayPal = 2, - PayPalShippingAddressOptionBoth = 3, -}; - -/// You use a PayPalConfiguration object to configure many aspects of how the SDK behaves. -@interface PayPalConfiguration : NSObject - -/// Optional default user email address to be shown on the PayPal login view. -/// Will be overridden by email used in most recent PayPal login. -/// @see forceDefaultsInSandbox -@property(nullable, nonatomic, copy, readwrite) NSString *defaultUserEmail; -/// Optional default user phone country code used in the PayPal login view. -/// The input to this method is expected to be a digit string. -/// For example: `@"1"` for North America, `@"44"` for UK -/// Will be overridden by phone country code used in most recent PayPal login. -/// @see forceDefaultsInSandbox -@property(nullable, nonatomic, copy, readwrite) NSString *defaultUserPhoneCountryCode; -/// Optional default user phone number to be shown in the PayPal login view. -/// Will be overridden by phone number used in most recent PayPal login. -/// @note If you set defaultUserPhoneNumber, be sure to also set defaultUserPhoneCountryCode. -/// @see forceDefaultsInSandbox -@property(nullable, nonatomic, copy, readwrite) NSString *defaultUserPhoneNumber; - -/// Your company name, as it should be displayed to the user -/// when requesting consent via a PayPalFuturePaymentViewController or a PayPalProfileSharingViewController. -@property(nullable, nonatomic, copy, readwrite) NSString *merchantName; -/// URL of your company's privacy policy, which will be offered to the user -/// when requesting consent via a PayPalFuturePaymentViewController or a PayPalProfileSharingViewController. -@property(nullable, nonatomic, copy, readwrite) NSURL *merchantPrivacyPolicyURL; -/// URL of your company's user agreement, which will be offered to the user -/// when requesting consent via a PayPalFuturePaymentViewController or a PayPalProfileSharingViewController. -@property(nullable, nonatomic, copy, readwrite) NSURL *merchantUserAgreementURL; - -/// If set to NO, the SDK will only support paying with PayPal, not with credit cards. -/// This applies only to single payments (via PayPalPaymentViewController). -/// Future payments (via PayPalFuturePaymentViewController) always use PayPal. -/// Defaults to YES. -@property(nonatomic, assign, readwrite) BOOL acceptCreditCards; - -/// Scheme defined in application's plist to perform app switch -@property(nullable, nonatomic, copy, readwrite) NSString *callbackURLScheme; - -/// For single payments, options for the shipping address. -/// - PayPalShippingAddressOptionNone: no shipping address applies. -/// - PayPalShippingAddressOptionProvided: shipping address will be provided by your app, -/// in the shippingAddress property of PayPalPayment. -/// - PayPalShippingAddressOptionPayPal: user will choose from shipping addresses on file -/// for their PayPal account. -/// - PayPalShippingAddressOptionBoth: user will choose from the shipping address provided by your app, -/// in the shippingAddress property of PayPalPayment, plus the shipping addresses on file for the user's PayPal account. -/// Defaults to PayPalShippingAddressOptionNone. -@property(nonatomic, assign, readwrite) PayPalShippingAddressOption payPalShippingAddressOption; - -/// If set to YES, then if the user pays via their PayPal account, -/// the SDK will remember the user's PayPal username or phone number; -/// if the user pays via their credit card, then the SDK will remember -/// the PayPal Vault token representing the user's credit card. -/// -/// If set to NO, then any previously-remembered username, phone number, or -/// credit card token will be erased, and subsequent payment information will -/// not be remembered. -/// -/// Defaults to YES. -/// -/// @see PayPalMobile +(void)clearAllUserData -@property(nonatomic, assign, readwrite) BOOL rememberUser; - -/// If not set, or if set to nil, defaults to the device's current language setting. -/// -/// Can be specified as a language code ("en", "fr", "zh-Hans", etc.) or as a locale ("en_AU", "fr_FR", "zh-Hant_HK", etc.). -/// If the library does not contain localized strings for a specified locale, then will fall back to the language. E.g., "es_CO" -> "es". -/// If the library does not contain localized strings for a specified language, then will fall back to American English. -/// -/// If you specify only a language code, and that code matches the device's currently preferred language, -/// then the library will attempt to use the device's current region as well. -/// E.g., specifying "en" on a device set to "English" and "United Kingdom" will result in "en_GB". -/// -/// These localizations are currently included: -/// ar,da,de,en,en_AU,en_GB,es,es_MX,fr,he,it,ja,ko,ms,nb,nl,pl,pt,pt_BR,ru,sv,th,tr,zh-Hans,zh-Hant,zh-Hant_TW. -@property(nullable, nonatomic, copy, readwrite) NSString *languageOrLocale; - -/// If set to YES, then all displayed payment amounts will include a currency code (e.g., "USD") -/// in addition to the standard currency symbol (e.g., "$"). -/// -/// Even if set to NO, currency codes will still be displayed in the case where a user's PayPal account -/// includes any funding source whose currency differs from that of the current payment. -/// For example, if the current payment is in US Dollars but the user's PayPal account includes a -/// credit card in Canadian Dollars, then all displayed amounts will be labeled as either USD or CAD. -/// -/// Defaults to NO. -@property(nonatomic, assign, readwrite) BOOL alwaysDisplayCurrencyCodes; - -/// Normally, the SDK blurs the screen when the app is backgrounded, -/// to obscure credit card or PayPal account details in the iOS-saved screenshot. -/// If your app already does its own blurring upon backgrounding, you might choose to disable this. -/// Defaults to NO. -@property(nonatomic, assign, readwrite) BOOL disableBlurWhenBackgrounding; - -/// If you will present the SDK's view controller within a popover, then set this property to YES. -/// Defaults to NO. -@property(nonatomic, assign, readwrite) BOOL presentingInPopover; - -/// Sandbox credentials can be difficult to type on a mobile device. Setting this flag to YES will -/// cause the sandboxUserPassword and sandboxUserPin to always be pre-populated into login fields. -/// -/// Defaults to NO. -/// -/// This setting will have no effect if the environment is PayPalEnvironmentProduction. -/// -/// @note: Use defaultUserEmail, defaultUserPhoneCountryCode, and defaultUserPhoneNumber to -/// pre-populate the email and phone fields as well. -@property (nonatomic, assign, readwrite) BOOL forceDefaultsInSandbox; - -/// Password to use for sandbox if 'forceDefaultsInSandbox' is set. -@property (nullable, nonatomic, copy, readwrite) NSString* sandboxUserPassword; -/// PIN to use for sandbox if 'forceDefaultsInSandbox' is set. -@property (nullable, nonatomic, copy, readwrite) NSString* sandboxUserPin; - -@end diff --git a/Pods/Braintree/Braintree/PayPal/mSDK/PayPalFuturePaymentViewController.h b/Pods/Braintree/Braintree/PayPal/mSDK/PayPalFuturePaymentViewController.h deleted file mode 100644 index aaa8edb..0000000 --- a/Pods/Braintree/Braintree/PayPal/mSDK/PayPalFuturePaymentViewController.h +++ /dev/null @@ -1,67 +0,0 @@ -// -// PayPalFuturePaymentViewController.h -// -// Version 2.14.1-bt1 -// -// Copyright (c) 2014-2016 PayPal, Inc. All rights reserved. -// All rights reserved. -// - -#import -#import "PayPalConfiguration.h" - -@class PayPalFuturePaymentViewController; -typedef void (^PayPalFuturePaymentDelegateCompletionBlock)(void); - -#pragma mark - PayPalFuturePaymentDelegate - -/// Exactly one of these two required delegate methods will get called when the UI completes. -/// You MUST dismiss the modal view controller from these required delegate methods. -@protocol PayPalFuturePaymentDelegate -@required - -/// User canceled the future payment process. -/// Your code MUST dismiss the PayPalFuturePaymentViewController. -/// @param futurePaymentViewController The PayPalFuturePaymentViewController that the user canceled without agreement. -- (void)payPalFuturePaymentDidCancel:(nonnull PayPalFuturePaymentViewController *)futurePaymentViewController; - -/// User successfully completed the future payment authorization. -/// The PayPalFuturePaymentViewController's activity indicator has been dismissed. -/// Your code MAY deal with the futurePaymentAuthorization, if it did not already do so within your optional -/// payPalFuturePaymentViewController:willAuthorizeFuturePayment:completionBlock: method. -/// Your code MUST dismiss the PayPalFuturePaymentViewController. -/// @param futurePaymentViewController The PayPalFuturePaymentViewController where the user successfullly authorized. -/// @param futurePaymentAuthorization A dictionary containing information that your server will need to process the payment. -- (void)payPalFuturePaymentViewController:(nonnull PayPalFuturePaymentViewController *)futurePaymentViewController - didAuthorizeFuturePayment:(nonnull NSDictionary *)futurePaymentAuthorization; - -@optional -/// User successfully completed the future payment authorization. -/// The PayPalFuturePaymentViewController's activity indicator is still visible. -/// Your code MAY deal with the futurePaymentAuthorization; e.g., send it to your server and await confirmation. -/// Your code MUST finish by calling the completionBlock. -/// Your code must NOT dismiss the PayPalFuturePaymentViewController. -/// @param futurePaymentViewController The PayPalFuturePaymentViewController where the user successfullly authorized. -/// @param futurePaymentAuthorization A dictionary containing information that your server will need to process the payment. -/// @param completionBlock Block to execute when your processing is done. -- (void)payPalFuturePaymentViewController:(nonnull PayPalFuturePaymentViewController *)futurePaymentViewController - willAuthorizeFuturePayment:(nonnull NSDictionary *)futurePaymentAuthorization - completionBlock:(nonnull PayPalFuturePaymentDelegateCompletionBlock)completionBlock; -@end - - -#pragma mark - PayPalFuturePaymentViewController - -@interface PayPalFuturePaymentViewController : UINavigationController - -/// The designated initalizer. A new view controller MUST be initialized for each use. -/// @param configuration The configuration to be used for the lifetime of the controller. -/// The configuration properties merchantName, merchantPrivacyPolicyURL, and merchantUserAgreementURL must be provided. -/// @param delegate The delegate you want to receive updates about the future payment authorization. -- (nullable instancetype)initWithConfiguration:(nonnull PayPalConfiguration *)configuration - delegate:(nullable id)delegate; - -/// Delegate access -@property (nonatomic, weak, readonly, nullable) id futurePaymentDelegate; - -@end diff --git a/Pods/Braintree/Braintree/PayPal/mSDK/PayPalMobile.h b/Pods/Braintree/Braintree/PayPal/mSDK/PayPalMobile.h deleted file mode 100644 index 931e49c..0000000 --- a/Pods/Braintree/Braintree/PayPal/mSDK/PayPalMobile.h +++ /dev/null @@ -1,96 +0,0 @@ -// -// PayPalMobile.h -// -// Version 2.14.1-bt1 -// -// Copyright (c) 2014-2016 PayPal, Inc. All rights reserved. -// All rights reserved. -// - -// All-in-one import for the PayPal Mobile SDK - -#import "PayPalConfiguration.h" -#import "PayPalFuturePaymentViewController.h" -#import "PayPalOAuthScopes.h" -#import "PayPalPayment.h" -#import "PayPalPaymentViewController.h" -#import "PayPalProfileSharingViewController.h" -#import "PayPalTouch.h" - -/// Production (default): Normal, live environment. Real money gets moved. -/// This environment MUST be used for App Store submissions. -extern NSString * _Nonnull const PayPalEnvironmentProduction; -/// Sandbox: Uses the PayPal sandbox for transactions. Useful for development. -extern NSString * _Nonnull const PayPalEnvironmentSandbox; -/// NoNetwork: Mock mode. Does not submit transactions to PayPal. Fakes successful responses. Useful for unit tests. -extern NSString * _Nonnull const PayPalEnvironmentNoNetwork; - -@interface PayPalMobile : NSObject - -/// You MUST call this method to initialize the PayPal Mobile SDK. -/// -/// The PayPal Mobile SDK can operate in different environments to facilitate development and testing. -/// See PayPalEnvironmentProduction, PayPalEnvironmentSandbox, PayPalEnvironmentNoNetwork for more details. -/// @param clientIdsForEnvironments Your client id for each relevant environment, as obtained from developer.paypal.com. -/// You do not need to provide a client id for PayPalEnvironmentNoNetwork. -/// For example, -/// @{PayPalEnvironmentProduction : @"my-client-id-for-Production", -/// PayPalEnvironmentSandbox : @"my-client-id-for-Sandbox"} -+ (void)initializeWithClientIdsForEnvironments:(nonnull NSDictionary *)clientIdsForEnvironments; - -/// You MUST preconnect to PayPal to prepare the device for processing payments. -/// This improves the user experience because it allows the PayPal Mobile SDK to make its -/// setup request early and in the background. -/// -/// The preconnect is valid for a limited time, so the recommended time to preconnect -/// is when you present the UI in which users *might* choose to initiate payment. -/// -/// Calling this method a second time, with a different value, will change the environment used -/// by subsequently allocated PayPal Mobile SDK viewcontrollers. Existing viewcontrollers -/// will be unaffected. -/// -/// @param environment -/// The PayPal Mobile SDK can operate in different environments to facilitate development and testing. -/// See PayPalEnvironmentProduction, PayPalEnvironmentSandbox, PayPalEnvironmentNoNetwork for more details. -+ (void)preconnectWithEnvironment:(nonnull NSString *)environment; - -/// Once a user has consented to future payments, when the user subsequently initiates a PayPal payment -/// from their device to be completed by your server, PayPal uses a Client Metadata ID to verify that the -/// payment is originating from a valid, user-consented device+application. -/// This helps reduce fraud and decrease declines. -/// This method MUST be called prior to initiating a pre-consented payment (a "future payment") from a mobile device. -/// Pass the result to your server, to include in the payment request sent to PayPal. -/// Do not otherwise cache or store this value. -/// @return clientMetadataID Your server will send this to PayPal in a 'PayPal-Client-Metadata-Id' header. -+ (nonnull NSString *)clientMetadataID; - -/// Method deprecated. Use clientMetadataID instead -+ (nonnull NSString *)applicationCorrelationIDForEnvironment:(nonnull NSString *)environment __attribute__((deprecated("Use clientMetadataID instead."))); - -/// Delete all previously remembered user data (credit card, email, phone, PayPal account), -/// for all environments. (See PayPalEnvironmentProduction, PayPalEnvironmentSandbox, PayPalEnvironmentNoNetwork.) -/// -/// You might choose to call this method, for example, when a user logs out of your app. -/// -/// @note Do NOT call this method while any PayPal Mobile SDK viewcontroller is active. -/// @see PayPalConfiguration rememberUser. -+ (void)clearAllUserData; - -/// @return The version of the PayPal Mobile SDK in use. Version numbering follows http://semver.org/. -/// @note Please be sure to include this library version in tech support requests. -+ (nonnull NSString *)libraryVersion; - -#pragma mark - Internal environment setup - -/// Add a custom-defined environment to the list of available environments. -/// @param environments Custom environments to add. -+ (void)addEnvironments:(nonnull NSDictionary *)environments; - -/// @return a dictionary of currently available environments (each of which -/// is a dictionary). You may pass any key from this dictionary to setEnvironment. -+ (nonnull NSDictionary *)availableEnvironments; - -// @note For changing the clientId at runtime; currently used only by the Demo app. -+ (void)setClientId:(nonnull NSString *)clientId forEnvironment:(nonnull NSString *)environment; - -@end diff --git a/Pods/Braintree/Braintree/PayPal/mSDK/PayPalOAuthScopes.h b/Pods/Braintree/Braintree/PayPal/mSDK/PayPalOAuthScopes.h deleted file mode 100644 index 5ee7bcc..0000000 --- a/Pods/Braintree/Braintree/PayPal/mSDK/PayPalOAuthScopes.h +++ /dev/null @@ -1,27 +0,0 @@ -// -// PayPalOAuthScopes.h -// -// Version 2.14.1-bt1 -// -// Copyright (c) 2014-2016 PayPal, Inc. All rights reserved. -// All rights reserved. -// - -// Currently available scope-values to which the user can be asked to consent. -// @see https://developer.paypal.com/docs/integration/direct/identity/attributes/ for more details - -/// Authorize charges for future purchases paid for with PayPal. -extern NSString * _Nonnull const kPayPalOAuth2ScopeFuturePayments; -/// Share basic account information. -extern NSString * _Nonnull const kPayPalOAuth2ScopeProfile; -/// Basic Authentication. -extern NSString * _Nonnull const kPayPalOAuth2ScopeOpenId; -/// Share your personal and account information. -extern NSString * _Nonnull const kPayPalOAuth2ScopePayPalAttributes; -/// Share your email address. -extern NSString * _Nonnull const kPayPalOAuth2ScopeEmail; -/// Share your account address. -extern NSString * _Nonnull const kPayPalOAuth2ScopeAddress; -/// Share your phone number. -extern NSString * _Nonnull const kPayPalOAuth2ScopePhone; - diff --git a/Pods/Braintree/Braintree/PayPal/mSDK/PayPalPayment.h b/Pods/Braintree/Braintree/PayPal/mSDK/PayPalPayment.h deleted file mode 100644 index d978a22..0000000 --- a/Pods/Braintree/Braintree/PayPal/mSDK/PayPalPayment.h +++ /dev/null @@ -1,240 +0,0 @@ -// -// PayPalPayment.h -// -// Version 2.14.1-bt1 -// -// Copyright (c) 2014-2016 PayPal, Inc. All rights reserved. -// All rights reserved. -// - -#import - -#pragma mark - PayPalPaymentIntent - -typedef NS_ENUM(NSInteger, PayPalPaymentIntent) { - PayPalPaymentIntentSale = 0, - PayPalPaymentIntentAuthorize = 1, - PayPalPaymentIntentOrder = 2, - }; - - -#pragma mark - PayPalPaymentDetails - -/// The PayPalPaymentDetails class defines optional amount details. -/// @see https://developer.paypal.com/webapps/developer/docs/api/#details-object for more details. -@interface PayPalPaymentDetails : NSObject - -/// Convenience constructor. -/// See the documentation of the individual properties for more detail. -/// @param subtotal Sum of amounts for all items in this transaction. -/// @param shipping Shipping and handling amount for the overall transaction. -/// @param tax Tax amount for the overall transaction. -+ (nonnull PayPalPaymentDetails *)paymentDetailsWithSubtotal:(nullable NSDecimalNumber *)subtotal - withShipping:(nullable NSDecimalNumber *)shipping - withTax:(nullable NSDecimalNumber *)tax; - -/// Sub-total (amount) of items being paid for. 10 characters max with support for 2 decimal places. -@property(nullable, nonatomic, copy, readwrite) NSDecimalNumber *subtotal; - -/// Amount charged for shipping. 10 characters max with support for 2 decimal places. -@property(nullable, nonatomic, copy, readwrite) NSDecimalNumber *shipping; - -/// Amount charged for tax. 10 characters max with support for 2 decimal places. -@property(nullable, nonatomic, copy, readwrite) NSDecimalNumber *tax; - -@end - - -#pragma mark - PayPalItem - -/// The PayPalItem class defines an optional itemization for a payment. -/// @see https://developer.paypal.com/docs/api/#item-object for more details. -@interface PayPalItem : NSObject - -/// Convenience constructor. -/// See the documentation of the individual properties for more detail. -/// @param name Name of the item. -/// @param quantity Number of units. -/// @param price Unit price for this item. -/// @param currency ISO standard currency code. -/// @param sku The stock keeping unit for this item. -+ (nonnull PayPalItem *)itemWithName:(nonnull NSString *)name - withQuantity:(NSUInteger)quantity - withPrice:(nonnull NSDecimalNumber *)price - withCurrency:(nonnull NSString *)currency - withSku:(nullable NSString *)sku; - -/// Convenience utility. -/// Returns the total of (quantity * price) for all of the items. -/// @param items Array of PayPalItem objects. -+ (nonnull NSDecimalNumber *)totalPriceForItems:(nonnull NSArray *)items; - -/// Item name. 127 characters max. Required. -@property(nonnull, nonatomic, copy, readwrite) NSString *name; - -/// Number of a particular item. 10 characters max. Required. -@property(nonatomic, assign, readwrite) NSUInteger quantity; - -/// Item cost. 10 characters max. May be negative for "coupon" etc. Required. -@property(nonnull, nonatomic, copy, readwrite) NSDecimalNumber *price; - -/// ISO standard currency code (http://en.wikipedia.org/wiki/ISO_4217). Required. -@property(nonnull, nonatomic, copy, readwrite) NSString *currency; - -/// Stock keeping unit corresponding (SKU) to item. 50 characters max. -@property(nullable, nonatomic, copy, readwrite) NSString *sku; - -@end - - -#pragma mark - PayPalShippingAddress - -/// The PayPalShippingAddress class defines an optional customer shipping address. -/// @see https://developer.paypal.com/webapps/developer/docs/api/#shippingaddress-object for more details -@interface PayPalShippingAddress : NSObject - -/// Convenience constructor. -/// See the documentation of the individual properties for more detail. -/// @param recipientName Name of recipient. -/// @param line1 First line of address. -/// @param line2 Second line of address, if any. -/// @param city City. -/// @param state State, county, etc., as appropriate. -/// @param postalCode Appropriate ZIP or postal code. -/// @param countryCode 2-letter country code. -+ (nonnull PayPalShippingAddress *)shippingAddressWithRecipientName:(nonnull NSString *)recipientName - withLine1:(nonnull NSString *)line1 - withLine2:(nullable NSString *)line2 - withCity:(nonnull NSString *)city - withState:(nullable NSString *)state - withPostalCode:(nullable NSString *)postalCode - withCountryCode:(nonnull NSString *)countryCode; - -/// Name of the recipient at this address. 50 characters max. Required. -@property(nonnull, nonatomic, copy, readwrite) NSString *recipientName; - -/// Line 1 of the address (e.g., Number, street, etc). 100 characters max. Required. -@property(nonnull, nonatomic, copy, readwrite) NSString *line1; - -/// Line 2 of the address (e.g., Suite, apt #, etc). 100 characters max. -@property(nullable, nonatomic, copy, readwrite) NSString *line2; - -/// City name. 50 characters max. Required. -@property(nonnull, nonatomic, copy, readwrite) NSString *city; - -/// 2-letter code for US states, and the equivalent for other countries. 100 characters max. Required in certain countries. -@property(nullable, nonatomic, copy, readwrite) NSString *state; - -/// ZIP code or equivalent is usually required for countries that have them. 20 characters max. Required in certain countries. -@property(nullable, nonatomic, copy, readwrite) NSString *postalCode; - -/// 2-letter country code. 2 characters max. Required. -@property(nonnull, nonatomic, copy, readwrite) NSString *countryCode; - -@end - - -#pragma mark - PayPalPayment - -@interface PayPalPayment : NSObject - -/// Convenience constructor. -/// See the documentation of the individual properties for more detail. -/// @param amount The amount of the payment. -/// @param currencyCode The ISO 4217 currency for the payment. -/// @param shortDescription A short descripton of the payment. -/// @param intent PayPalPaymentIntentSale for an immediate payment; -/// PayPalPaymentIntentAuthorize for payment authorization only, to be captured separately at a later time; -/// PayPalPaymentIntentOrder for taking an order, with authorization and capture to be done separately at a later time. -+ (nonnull PayPalPayment *)paymentWithAmount:(nonnull NSDecimalNumber *)amount - currencyCode:(nonnull NSString *)currencyCode - shortDescription:(nonnull NSString *)shortDescription - intent:(PayPalPaymentIntent)intent; - - -#pragma mark Required properties - -/// ISO standard currency code (http://en.wikipedia.org/wiki/ISO_4217). -@property(nonnull, nonatomic, copy, readwrite) NSString *currencyCode; - -/// Amount in the given currency to process. Must be positive. -@property(nonnull, nonatomic, copy, readwrite) NSDecimalNumber *amount; - -/// A short description of the transaction, for display to the user. -/// The description will be truncated for display, if necessary; -/// limiting it to about 20 characters should prevent truncation in most cases. -@property(nonnull, nonatomic, copy, readwrite) NSString *shortDescription; - -/// The intent of this payment: -/// -/// - PayPalPaymentIntentSale for an immediate payment -/// -/// - PayPalPaymentIntentAuthorize for payment authorization only, -/// to be captured separately at a later time. -/// -/// - PayPalPaymentIntentOrder for taking an order, with authorization -/// and capture to be done separately at a later time. -/// -/// (PayPalPaymentIntentOrder is valid only for PayPal payments, -/// not credit card payments.) -/// -/// Defaults to PayPalPaymentIntentSale. -@property(nonatomic, assign, readwrite) PayPalPaymentIntent intent; - - -#pragma mark Optional properties - -/// Optional payment details @see PayPalPaymentDetails properties. -/// @note If you provide payment details, be sure that `subtotal`, `shipping`, and `tax` -/// sum exactly to the payment `amount`. -@property (nullable, nonatomic, copy, readwrite) PayPalPaymentDetails *paymentDetails; - -/// Optional array of PayPalItem objects. @see PayPalItem -/// @note If you provide one or more items, be sure that the various prices correctly -/// sum to the payment `amount` or to `paymentDetails.subtotal`. -@property (nullable, nonatomic, copy, readwrite) NSArray *items; - -/// Optional customer shipping address, if your app wishes to provide this to the SDK. -@property (nullable, nonatomic, copy, readwrite) PayPalShippingAddress *shippingAddress; - -/// Optional invoice number, for your tracking purposes. (up to 256 characters) -@property (nullable, nonatomic, copy, readwrite) NSString *invoiceNumber; - -/// Optional text, for your tracking purposes. (up to 256 characters) -@property (nullable, nonatomic, copy, readwrite) NSString *custom; - -/// Optional text which will appear on the customer's credit card statement. (up to 22 characters) -@property (nullable, nonatomic, copy, readwrite) NSString *softDescriptor; - -/// Optional Build Notation code ("BN code"), obtained from partnerprogram@paypal.com, -/// for your tracking purposes. -@property(nullable, nonatomic, copy, readwrite) NSString *bnCode; - - -#pragma mark Convenience getters - -/// Can this payment be processed? -/// A payment might not be processable if, for example: -/// - the amount is non-positive, -/// - the currency is invalid, -/// - the amount includes more decimal fraction digits than the currency allows, -/// - there's no description, or -/// - the payment has already been processed. -@property(nonatomic, assign, readonly) BOOL processable; - -/// The payment amount rendered with the appropriate currency symbol. -@property(nonnull, nonatomic, copy, readonly) NSString *localizedAmountForDisplay; - - -#pragma mark Properties available on completed purchases - -/// Full payment confirmation, with lots of details including the proof -/// of payment token. You should send the entire confirmation -/// dictionary to your servers and process it there, for maximum flexibility. -/// See https://developer.paypal.com/webapps/developer/docs/integration/mobile/verify-mobile-payment/ -/// and https://developer.paypal.com/webapps/developer/docs/integration/direct/capture-payment/ -/// for more details. -@property(nonnull, nonatomic, readonly, copy) NSDictionary *confirmation; - - -@end diff --git a/Pods/Braintree/Braintree/PayPal/mSDK/PayPalPaymentViewController.h b/Pods/Braintree/Braintree/PayPal/mSDK/PayPalPaymentViewController.h deleted file mode 100644 index 6a36bd0..0000000 --- a/Pods/Braintree/Braintree/PayPal/mSDK/PayPalPaymentViewController.h +++ /dev/null @@ -1,109 +0,0 @@ -// -// PayPalPaymentViewController.h -// -// Version 2.14.1-bt1 -// -// Copyright (c) 2014-2016 PayPal, Inc. All rights reserved. -// All rights reserved. -// - -#import -#import "PayPalConfiguration.h" -#import "PayPalPayment.h" - -// Important note: -// -// This is a proof of payment system. You MUST verify all transactions -// via a call from your servers (not your app) to PayPal's servers, to -// ensure that the transaction was genuine and successful. -// See https://developer.paypal.com/webapps/developer/docs/integration/mobile/verify-mobile-payment/ -// for details. - -#pragma mark - Delegates and notifications - -@class PayPalPaymentViewController; -typedef void (^PayPalPaymentDelegateCompletionBlock)(void); - -/// Exactly one of these two required delegate methods will get called when the UI completes. -/// You MUST dismiss the modal view controller from these required delegate methods. -@protocol PayPalPaymentDelegate -@required - -/// User canceled the payment process. -/// Your code MUST dismiss the PayPalPaymentViewController. -/// @param paymentViewController The PayPalPaymentViewController that the user canceled without making a payment. -- (void)payPalPaymentDidCancel:(nonnull PayPalPaymentViewController *)paymentViewController; - -/// User successfully completed the payment. -/// The PayPalPaymentViewController's activity indicator has been dismissed. -/// Your code MAY deal with the completedPayment, if it did not already do so within your optional -/// payPalPaymentViewController:willCompletePayment:completionBlock: method. -/// Your code MUST dismiss the PayPalPaymentViewController. -/// See https://developer.paypal.com/webapps/developer/docs/integration/mobile/verify-mobile-payment/ for -/// information about payment verification. -/// @param paymentViewController The PayPalPaymentViewController where the user successfullly made a payment. -/// @param completedPayment completedPayment.confirmation contains information your server will need to verify the payment. -- (void)payPalPaymentViewController:(nonnull PayPalPaymentViewController *)paymentViewController - didCompletePayment:(nonnull PayPalPayment *)completedPayment; - -@optional -/// User successfully completed the payment. -/// The PayPalPaymentViewController's activity indicator is still visible. -/// Your code MAY deal with the completedPayment; e.g., send it to your server and await confirmation. -/// Your code MUST finish by calling the completionBlock. -/// Your code must NOT dismiss the PayPalPaymentViewController. -/// See https://developer.paypal.com/webapps/developer/docs/integration/mobile/verify-mobile-payment/ for -/// information about payment verification. -/// @param paymentViewController The PayPalPaymentViewController where the user successfullly made a payment. -/// @param completedPayment completedPayment.confirmation contains information your server will need to verify the payment. -/// @param completionBlock Block to execute when your processing is done. -- (void)payPalPaymentViewController:(nonnull PayPalPaymentViewController *)paymentViewController - willCompletePayment:(nonnull PayPalPayment *)completedPayment - completionBlock:(nonnull PayPalPaymentDelegateCompletionBlock)completionBlock; - -@end - - -#pragma mark - PayPalPaymentViewController - -@interface PayPalPaymentViewController : UINavigationController - -/// The designated initalizer. A new view controller MUST be initialized for each use. -/// @param payment The payment to be processed. -/// @param configuration The configuration to be used for the lifetime of the controller -/// (e.g., default email address or hideCreditCard); can be nil. -/// @param delegate The delegate you want to receive updates about the payment. -- (nullable instancetype)initWithPayment:(nonnull PayPalPayment *)payment - configuration:(nullable PayPalConfiguration *)configuration - delegate:(nonnull id)delegate; - -/// Delegate access -@property(nonatomic, weak, readonly, nullable) id paymentDelegate; - -/// PayPalPaymentViewControllerState See the state property for context. -typedef NS_ENUM(NSInteger, PayPalPaymentViewControllerState) { - /// The payment has not been sent. You MAY safely dismiss the PayPalPaymentViewController. - PayPalPaymentViewControllerStateUnsent = 0, - /// The payment is in progress. You MUST NOT dismiss the PayPalPaymentViewController. - PayPalPaymentViewControllerStateInProgress = 1, -}; - -/// Although irrelevant to most apps, if your app needs to know where the user is within -/// the payment flow, you can check this property. -/// (You can use key-value observing to watch for changes.) -/// -/// For example, perhaps your app would like to dismiss the PayPalPaymentViewController -/// if the user is taking so long to complete the payment flow that the item they -/// ordered has gone out of stock. -/// -/// - The state is initially set to PayPalPaymentViewControllerStateUnsent. -/// - When the user taps the final payment confirmation button, the state changes to -/// PayPalPaymentViewControllerStateInProgress. -/// - If the payment goes through successfully, the state remains at -/// PayPalPaymentViewControllerStateInProgress, and your app's -/// payPalPaymentViewController:didCompletePayment: method is called. -/// - If the payment fails, the state changes back to PayPalPaymentViewControllerStateUnsent. -/// (Also, an appropriate error message is displayed to the user). -@property(nonatomic, assign, readonly) PayPalPaymentViewControllerState state; - -@end diff --git a/Pods/Braintree/Braintree/PayPal/mSDK/PayPalProfileSharingViewController.h b/Pods/Braintree/Braintree/PayPal/mSDK/PayPalProfileSharingViewController.h deleted file mode 100644 index 238c2fb..0000000 --- a/Pods/Braintree/Braintree/PayPal/mSDK/PayPalProfileSharingViewController.h +++ /dev/null @@ -1,70 +0,0 @@ -// -// PayPalProfileSharingViewController.h -// -// Version 2.14.1-bt1 -// -// Copyright (c) 2014-2016 PayPal, Inc. All rights reserved. -// All rights reserved. -// - -#import -#import "PayPalConfiguration.h" -#import "PayPalOAuthScopes.h" - -@class PayPalProfileSharingViewController; -typedef void (^PayPalProfileSharingDelegateCompletionBlock)(void); - -#pragma mark - PayPalProfileSharingDelegate - -/// Exactly one of these two required delegate methods will get called when the UI completes. -/// You MUST dismiss the modal view controller from these required delegate methods. -@protocol PayPalProfileSharingDelegate -@required - -/// User canceled without consenting. -/// Your code MUST dismiss the PayPalProfileSharingViewController. -/// @param profileSharingViewController The PayPalProfileSharingViewController that the user canceled without consenting. -- (void)userDidCancelPayPalProfileSharingViewController:(nonnull PayPalProfileSharingViewController *)profileSharingViewController; - -/// User successfully logged in and consented. -/// The PayPalProfileSharingViewController's activity indicator has been dismissed. -/// Your code MAY deal with the profileSharingAuthorization, if it did not already do so within your optional -/// PayPalProfileSharingViewController:userWillLogInWithAuthorization:completionBlock: method. -/// Your code MUST dismiss the PayPalProfileSharingViewController. -/// @param profileSharingViewController The PayPalProfileSharingViewController where the user successfully consented. -/// @param profileSharingAuthorization The authorization response, which you will return to your server. -- (void)payPalProfileSharingViewController:(nonnull PayPalProfileSharingViewController *)profileSharingViewController - userDidLogInWithAuthorization:(nonnull NSDictionary *)profileSharingAuthorization; - -@optional -/// User successfully logged in and consented. -/// The PayPalProfileSharingViewController's activity indicator is still visible. -/// Your code MAY deal with the profileSharingAuthorization; e.g., send it to your server and await confirmation. -/// Your code MUST finish by calling the completionBlock. -/// Your code must NOT dismiss the PayPalProfileSharingViewController. -/// @param profileSharingViewController The PayPalProfileSharingViewController where the user successfully consented. -/// @param profileSharingAuthorization The authorization response, which you will return to your server. -/// @param completionBlock Block to execute when your processing is done. -- (void)payPalProfileSharingViewController:(nonnull PayPalProfileSharingViewController *)profileSharingViewController - userWillLogInWithAuthorization:(nonnull NSDictionary *)profileSharingAuthorization - completionBlock:(nonnull PayPalProfileSharingDelegateCompletionBlock)completionBlock; -@end - - -#pragma mark - PayPalProfileSharingViewController - -@interface PayPalProfileSharingViewController : UINavigationController - -/// The designated initalizer. A new view controller MUST be initialized for each use. -/// @param scopeValues Set of requested scope-values. Each scope-value is defined in PayPalOAuthScopes.h. -/// @param configuration The configuration to be used for the lifetime of the controller -/// The configuration properties merchantName, merchantPrivacyPolicyURL, and merchantUserAgreementURL must be provided. -/// @param delegate The delegate you want to receive updates about the profile-sharing authorization. -- (nullable instancetype)initWithScopeValues:(nonnull NSSet *)scopeValues - configuration:(nonnull PayPalConfiguration *)configuration - delegate:(nullable id)delegate; - -/// Delegate access -@property (nonatomic, weak, readonly, nullable) id profileSharingDelegate; - -@end diff --git a/Pods/Braintree/Braintree/PayPal/mSDK/PayPalTouch.h b/Pods/Braintree/Braintree/PayPal/mSDK/PayPalTouch.h deleted file mode 100644 index 3ed5c6b..0000000 --- a/Pods/Braintree/Braintree/PayPal/mSDK/PayPalTouch.h +++ /dev/null @@ -1,92 +0,0 @@ -// -// PayPalTouch.h -// -// Version 2.14.1-bt1 -// -// Copyright (c) 2014-2016 PayPal, Inc. All rights reserved. -// All rights reserved. -// - -#import -#import "PayPalConfiguration.h" - -typedef NS_ENUM(NSUInteger, PayPalTouchResultType) { - PayPalTouchResultTypeError, - PayPalTouchResultTypeCancel, - PayPalTouchResultTypeSuccess, -}; - -/// This class represents the result of the App Switch. -@interface PayPalTouchResult : NSObject -/// resultType can be success, cancel or some sort of an error -@property (nonatomic, readonly, assign) PayPalTouchResultType resultType; -/// When App Switch is successful the authorization dictionary -/// containing information that your server will need to process the payment. -@property (nullable, nonatomic, readonly, copy) NSDictionary *authorization; -/// This dictionary is always present when resultType is PayPalTouchResultTypeError. -/// This dictionary is sometimes present when resultType is PayPalTouchResultTypeCancel. -/// The "message" and "debug_id" are for developer integaration to help analyze a problem, -/// and never for user display. -@property (nullable, nonatomic, readonly, copy) NSDictionary *error; - -@end - -@class PayPalTouch; - -/// This class checks availability of auth via app switch, handles the app switch -/// and provides methods for use to handle results of auth via app switch. -/// -/// This class is offered for integrations that initiate app switch without -/// the PayPal UI, and thus must obtain and handle results directly. -/// For more typical drop-in handling -@interface PayPalTouch : NSObject - -#pragma mark - Direct PayPal Touch Auth - -/// Whether the authorizer is available on the device -/// and the current app is set up to receive the callback. -/// -/// @return YES if the authorization method is available -+ (BOOL)canAppSwitchForUrlScheme:(nonnull NSString*) scheme; - -/// Obtain future payments authorization via app switch. -/// -/// Available for backward compatibility. -/// Same functionality can be achieved using `authorizeScopeValues:configuration:` using required scopes. -/// -/// @param configuration The configuration to be used for the app switch -/// @return YES if app switch was successful -+ (BOOL)authorizeFuturePayments:(nonnull PayPalConfiguration *)configuration __attribute__((deprecated("Please use authorizeScopeValues:configuration: instead"))); - -/// @param scopeValues Set of requested scope-values. Each scope-value is defined in PayPalOAuthScopes.h. -/// @param configuration The configuration to be used for the app switch -/// @return YES if app switch was successful -/// @note Given limitations in the Wallet app, the only scopes allowed are: https://uri.../futurepayments, email, address, phone, openid -+ (BOOL)authorizeScopeValues:(nonnull NSSet *)scopeValues configuration:(nonnull PayPalConfiguration *)configuration; - -/// Process a URL request. -/// -/// This method is exposed for integrations that initiate app switch without -/// the PayPal UI, and thus must obtain and handle results directly. -/// -/// @param url The url to handle -/// @return PayPalTouchResult containing result of the App Switch. -/// -+ (nonnull PayPalTouchResult *)parseAppSwitchURL:(nonnull NSURL *)url; - -#pragma mark - Custom URL handling - -/// Whether the URL and source application are recognized and valid -/// for PayPal Touch. -/// -/// This method is exposed for integrations that initiate app switch without -/// the PayPal UI, and thus must obtain and handle results directly. -/// For more typical drop-in handling -/// -/// @param url The URL of the app switch request -/// @param sourceApplication The bundle ID of the source application -/// -/// @return Whether the application that made the request is valid. -+ (BOOL)canHandleURL:(nonnull NSURL *)url sourceApplication:(nonnull NSString *)sourceApplication; - -@end diff --git a/Pods/Braintree/Braintree/PayPal/mSDK/libPayPalMobile-BT.a b/Pods/Braintree/Braintree/PayPal/mSDK/libPayPalMobile-BT.a deleted file mode 100644 index dd7e2b4..0000000 Binary files a/Pods/Braintree/Braintree/PayPal/mSDK/libPayPalMobile-BT.a and /dev/null differ diff --git a/Pods/Braintree/Braintree/Payments/@Public/BTPaymentMethodCreationDelegate.h b/Pods/Braintree/Braintree/Payments/@Public/BTPaymentMethodCreationDelegate.h deleted file mode 100644 index 73f9c68..0000000 --- a/Pods/Braintree/Braintree/Payments/@Public/BTPaymentMethodCreationDelegate.h +++ /dev/null @@ -1,77 +0,0 @@ -#import -#import - -#import "BTPaymentMethod.h" - -/// Protocol for receiving payment method creation lifecycle messages from -/// an object creating a payment method, such as BTPaymentButton, BTPaymentProvider and BTThreeDSecure. -@protocol BTPaymentMethodCreationDelegate - -/// The payment method creator requires presentation of a view controller in order to -/// proceed. -/// -/// Your implementation should present the viewController modally, e.g. via -/// `presentViewController:animated:completion:` -/// -/// @param sender The payment method creator -/// @param viewController The view controller to be presented -- (void)paymentMethodCreator:(id)sender requestsPresentationOfViewController:(UIViewController *)viewController; - -/// The payment method creator requires dismissal of a view controller. -/// -/// Your implementation should dismiss the viewController, e.g. via -/// `dismissViewControllerAnimated:completion:` -/// -/// @param sender The payment method creator -/// @param viewController The view controller to be dismissed -- (void)paymentMethodCreator:(id)sender requestsDismissalOfViewController:(UIViewController *)viewController; - -/// The payment method creator will perform an app switch in order to obtain user -/// payment authorization. -/// -/// Your implementation of this method should set your app to the state -/// it should be in if the user manually app-switches back to your app. -/// For example, re-enable any controls that are disabled. -/// -/// @param sender The payment method creator -- (void)paymentMethodCreatorWillPerformAppSwitch:(id)sender; - -/// The payment method creator, having obtained user payment details and/or user -/// authorization, will now process the results. -/// -/// This typically indicates asynchronous network activity. -/// When you receive this message, your UI should indicate activity. -/// -/// In the case of an app switch, this message indicates that the user has returned to this app. -/// -/// @param sender The payment method creator -- (void)paymentMethodCreatorWillProcess:(id)sender; - -/// The payment method creator has cancelled. -/// -/// @param sender The payment method creator -- (void)paymentMethodCreatorDidCancel:(id)sender; - -/// Payment method creation is complete with success. -/// -/// Typically, an implementation will convey this paymentMethod to your own server -/// for further use or to the user for final confirmation. -/// -/// @param sender The payment method creator -/// @param paymentMethod The resulting payment method -- (void)paymentMethodCreator:(id)sender didCreatePaymentMethod:(BTPaymentMethod *)paymentMethod; - -/// The payment method creator failed to create a payment method. -/// -/// A failure may occur at any point during payment method creation, such as: -/// - Payment authorization is initiated with an incompatible configuration (e.g. no authorization -/// mechanism possible for specified provider) -/// - An authorization provider (e.g. Venmo or PayPal) encounters an error -/// - A network or gateway error occurs -/// - The user-provided credentials led to a non-transactable payment method. -/// -/// @param sender The payment method creator -/// @param error An error that characterizes the failure -- (void)paymentMethodCreator:(id)sender didFailWithError:(NSError *)error; - -@end diff --git a/Pods/Braintree/Braintree/Payments/@Public/BTPaymentProvider.h b/Pods/Braintree/Braintree/Payments/@Public/BTPaymentProvider.h deleted file mode 100644 index 1cca7ee..0000000 --- a/Pods/Braintree/Braintree/Payments/@Public/BTPaymentProvider.h +++ /dev/null @@ -1,192 +0,0 @@ -#import -#import - -#import "BTPaymentProviderErrors.h" -#import "BTClient.h" -#import "BTPaymentMethod.h" -#import "BTPaymentMethodCreationDelegate.h" - -/// Type of payment method creation -typedef NS_ENUM(NSInteger, BTPaymentProviderType) { - /// Authorize via PayPal - /// - /// Supports BTPaymentAuthorizationOptionMechanismAppSwitch and BTPaymentAuthorizationOptionMechanismViewController. - BTPaymentProviderTypePayPal = 0, - - /// Authorize via Venmo - /// - /// Supports BTPaymentAuthorizationOptionMechanismAppSwitch only. - BTPaymentProviderTypeVenmo, - - /// Authorize via Apple Pay - /// - /// Supports BTPaymentAuthorizationOptionMechanismViewController only. - BTPaymentProviderTypeApplePay, - - /// Authorize via Coinbase (beta) - /// - /// Supports BTPaymentAuthorizationOptionMechanismBrowserSwitch and BTPaymentAuthorizationOptionMechanismViewController. - BTPaymentProviderTypeCoinbase, -}; - - -/// Options for payment method creation -/// -/// These options designate how to authorize the user for the given payment option (BTPaymentProviderType). Each payment option supports a subset of these, as specified above. -typedef NS_OPTIONS(NSInteger, BTPaymentMethodCreationOptions) { - - /// Authorize via an app-switch to the provider's app if the app is already installed. - /// - /// If the target app is not installed, this mechanism will fail. - BTPaymentAuthorizationOptionMechanismAppSwitch = 1 << 0, - - /// Authorize via in-app view controller presentation. - BTPaymentAuthorizationOptionMechanismViewController = 1 << 1, - - /// Authorize via the best possible mechanism. - BTPaymentAuthorizationOptionMechanismAny = BTPaymentAuthorizationOptionMechanismAppSwitch | BTPaymentAuthorizationOptionMechanismViewController -}; - -/// Status of the last (or ongoing) payment method creation -typedef NS_ENUM(NSInteger, BTPaymentProviderStatus) { - /// The payment method was not created yet (default status) - BTPaymentProviderStatusUninitialized = 0, - - /// Payment method created (either PayPal, Venmo or ApplePay) - BTPaymentProviderStatusInitialized, - - /// The payment method creator, having obtained user payment details and/or user - /// authorization, is now processing the results - BTPaymentProviderStatusProcessing, - - /// Payment method failed with error - BTPaymentProviderStatusError, - - /// Payment method creation is complete with success - BTPaymentProviderStatusSuccess, - - /// The payment method creator has canceled - BTPaymentProviderStatusCanceled -}; - -/// The BTPaymentProvider enables you to collect payment information from the user. -/// -/// This class abstracts the various payment payment providers and authorization -/// techniques. After initialization, you must set a client and delegate before -/// calling `createPaymentMethod:`. The authorization may request (via the delegate) -/// that you present a view controller, e.g., a PayPal login screen. createPaymentMethod: may also -/// initiate an app switch if One Touch is available. (See also +[Braintree setReturnURLScheme:] and -/// +[Braintree handleOpenURL:sourceApplication:]) -/// -@interface BTPaymentProvider : NSObject - -/// Initializes a payment provider -/// -/// @param client The BTClient that is used for communicating with Braintree during payment method creation -/// -/// @return An initialized payment provider -- (instancetype)initWithClient:(BTClient *)client; - -- (id)init __attribute__((unavailable("Please use initWithClient:"))); - -/// BTClient to use during authorization -@property (nonatomic, strong) BTClient *client; - -/// Delegate to receive messages during payment authorization process -@property (nonatomic, weak) id delegate; - -/// Asynchronously create a payment method for the given payment type. -/// -/// Shorthand for `[authorize:type options:BTPaymentAuthorizationOptionMechanismAny]` -/// -/// When you invoke this method, a payment authorization flow will be initiated in order to -/// create a Venmo or PayPal payment methods. It may use One Touch (app switch) or accept identity -/// credentials in a view controller. -/// -/// In the happy path, the delegate will receive lifecycle notifications, culminating with -/// paymentMethodCreator:didCreatePaymentMethod:. The payment method will include a payment method -/// nonce and any available metadata for your checkout confirmation UI. -/// -/// The delegate's paymentAuthorizer:didFailWithError: will be invoked if -/// authorization cannot be initiated. -/// -/// @see createPaymentMethod:options: -/// -/// @param type The type of authorization to perform -- (void)createPaymentMethod:(BTPaymentProviderType)type; - -/// Asynchronously create a payment method for the given payment type and options. -/// -/// Use this method to alter the mechanisms used to create a payment method. -/// -/// @see createPaymentMethod: -/// -/// @param type The type of authorization to perform -/// @param options Authorization options -- (void)createPaymentMethod:(BTPaymentProviderType)type options:(BTPaymentMethodCreationOptions)options; - -/// Query whether it will be possible to create a payment method of the specified type. -/// -/// @return YES if this payment provider could create a payment method of the specified type -- (BOOL)canCreatePaymentMethodWithProviderType:(BTPaymentProviderType)type; - -/// Status of the last (or ongoing) payment method creation -@property (nonatomic, assign) BTPaymentProviderStatus status; - -#if BT_ENABLE_APPLE_PAY - -#pragma mark Payment Request Details - -/// An array of PKPaymentSummaryItems -/// -/// Currently only affects Apple Pay payments. -@property (nonatomic, strong) NSArray *paymentSummaryItems; - -/// The set of required billing address fields (defaults to none) -/// -/// Currently only affects Apple Pay payments. -@property (nonatomic, assign) PKAddressField requiredBillingAddressFields; - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - -/// The customer's billing address for pre-populating the checkout form -/// -/// Currently only affects Apple Pay payments. -@property (nonatomic, assign) ABRecordRef billingAddress; - -/// The customer's billing address for pre-populating the checkout form -/// -/// Currently only affects Apple Pay payments. -@property (nonatomic, assign) ABRecordRef shippingAddress; - -#pragma clang diagnostic pop - -/// The billing contact for pre-populating the checkout form -/// -/// Currently only affects Apple Pay payments. -@property (nonatomic, strong) PKContact *billingContact; - -/// The shipping contact for pre-populating the checkout form -/// -/// Currently only affects Apple Pay payments. -@property (nonatomic, strong) PKContact *shippingContact; - -/// The set of required billing address fields (defaults to none) -/// -/// Currently only affects Apple Pay payments. -@property (nonatomic, assign) PKAddressField requiredShippingAddressFields; - -/// Available shipping methods -/// -/// Currently only affects Apple Pay payments. -@property (nonatomic, copy) NSArray *shippingMethods; - -/// Supported payment networks -/// -/// Currently only affects Apple Pay payments. -@property (nonatomic, copy) NSArray *supportedNetworks; - -#endif - -@end diff --git a/Pods/Braintree/Braintree/Payments/@Public/BTPaymentProviderErrors.h b/Pods/Braintree/Braintree/Payments/@Public/BTPaymentProviderErrors.h deleted file mode 100644 index cc9173a..0000000 --- a/Pods/Braintree/Braintree/Payments/@Public/BTPaymentProviderErrors.h +++ /dev/null @@ -1,21 +0,0 @@ -#import - -#pragma mark Braintree-Payments Errors - -/// BTPaymentAuthorization NSError Domain -extern NSString *const BTPaymentProviderErrorDomain; - -/// BTPaymentAuthorization NSError Codes -typedef NS_ENUM(NSInteger, BTPaymentProviderErrorCode) { - /// An unknown error related to creatingi a Braintree Payment Method - BTPaymentProviderErrorUnknown = 0, - - /// An incompatible payment type and option was specified (e.g. Venmo via View Controller) - BTPaymentProviderErrorOptionNotSupported, - - /// An error occured starting the user-facing payment method creation flow (e.g. App switch failed) - BTPaymentProviderErrorInitialization, - - /// An error occured creating a Braintree Payment Method from the Apple Pay token - BTPaymentProviderErrorPaymentMethodCreation, -}; diff --git a/Pods/Braintree/Braintree/Payments/@Public/Braintree-Payments.h b/Pods/Braintree/Braintree/Payments/@Public/Braintree-Payments.h deleted file mode 100644 index c43c472..0000000 --- a/Pods/Braintree/Braintree/Payments/@Public/Braintree-Payments.h +++ /dev/null @@ -1,3 +0,0 @@ -/// All-in-one import for the Braintree iOS SDK - -#import "BTPaymentProvider.h" diff --git a/Pods/Braintree/Braintree/Payments/BTPaymentApplePayProvider.h b/Pods/Braintree/Braintree/Payments/BTPaymentApplePayProvider.h deleted file mode 100644 index 72b47be..0000000 --- a/Pods/Braintree/Braintree/Payments/BTPaymentApplePayProvider.h +++ /dev/null @@ -1,60 +0,0 @@ -#import - -@class BTClient; -#import "BTPaymentMethodCreationDelegate.h" - -/// A service class that provides a v.zero-specific wrapper around Apple Pay -/// -/// Like BTPaymentProvider, this class facilities payment via -/// the BTPaymentMethodCreationDelegate protocol. Rather than requesting or creating a -/// view controller, you should call `authorizeApplePay`. When requested to do so, you -/// should present a view controller. -/// -/// The view controller you receive may be a real PKPaymentAuthorizationViewController or -/// a mock view controller for sandbox testing. -@interface BTPaymentApplePayProvider : NSObject - -/// Initializes an Apple Pay Provider -/// -/// @param client a BTClient that is used to upload the encrypted payment data to Braintree -/// -/// @return An initialized Apple Pay provider -- (instancetype)initWithClient:(BTClient *)client NS_DESIGNATED_INITIALIZER; - -/// A required delegate that should receive notifications about the payment method -/// creation lifecycle. -/// -/// @note You must set this delegate before calling `authorizeApplePay`. -@property (nonatomic, weak) id delegate; - -#if BT_ENABLE_APPLE_PAY -@property (nonatomic, strong) NSArray *paymentSummaryItems; -@property (nonatomic, assign) PKAddressField requiredBillingAddressFields; -@property (nonatomic, assign) PKAddressField requiredShippingAddressFields; -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" -@property (nonatomic, assign) ABRecordRef billingAddress; -@property (nonatomic, assign) ABRecordRef shippingAddress; -#pragma clang diagnostic pop -@property (nonatomic, strong) PKContact *billingContact; -@property (nonatomic, strong) PKContact *shippingContact; - -@property (nonatomic, strong) NSArray *shippingMethods; -@property (nonatomic, strong) NSArray *supportedNetworks; -#endif - -/// Checks whether Apple Pay is possible, considering the current environment, simulator status, -/// device, OS, etc. -/// -/// This method is useful for determining whether to present UI related to Apple Pay to your user. -/// You should avoid displaying Apple Pay as a payment option when it is unavailable. -/// -/// @return `NO` if `authorizeApplePay` will definitely result in an error, `YES` otherwise -- (BOOL)canAuthorizeApplePayPayment; - -/// Initialize Apple Pay. -/// -/// @note You must set a delegate before calling this method. -- (void)authorizeApplePay; - -@end diff --git a/Pods/Braintree/Braintree/Payments/BTPaymentApplePayProvider.m b/Pods/Braintree/Braintree/Payments/BTPaymentApplePayProvider.m deleted file mode 100644 index 05f03c9..0000000 --- a/Pods/Braintree/Braintree/Payments/BTPaymentApplePayProvider.m +++ /dev/null @@ -1,381 +0,0 @@ -@import PassKit; - -#import "BTPaymentApplePayProvider_Internal.h" -#import "BTClient_Internal.h" -#import "BTMockApplePayPaymentAuthorizationViewController.h" -#import "BTPaymentMethodCreationDelegate.h" -#import "BTPaymentProviderErrors.h" -#import "BTLogger_Internal.h" -#import "BTAPIResponseParser.h" -#import "BTClientTokenApplePayStatusValueTransformer.h" - -#if BT_ENABLE_APPLE_PAY -@interface BTPaymentApplePayProvider () -#else -@interface BTPaymentApplePayProvider () -#endif - -@property (nonatomic, strong) BTClient *client; -@property (nonatomic, strong) NSError *applePayError; -@property (nonatomic, strong) BTPaymentMethod *applePayPaymentMethod; - -- (instancetype)init NS_DESIGNATED_INITIALIZER DEPRECATED_ATTRIBUTE; - -@end - -@implementation BTPaymentApplePayProvider - -- (instancetype)init { - return [super init]; -} - -- (instancetype)initWithClient:(BTClient *)client { - self = [super init]; - if (self) { - self.client = client; - } - return self; -} - -- (BOOL)canAuthorizeApplePayPayment { - static NSString *const failureEvent = @"ios.apple-pay-provider.check.fail"; - static NSString *const successEvent = @"ios.apple-pay-provider.check.succeed"; - - BOOL result = [self canAuthorizeApplePayPaymentWithoutAnalytics]; - [self.client postAnalyticsEvent:result ? successEvent : failureEvent]; - return result; -} - -- (BOOL)canAuthorizeApplePayPaymentWithoutAnalytics { -#if BT_ENABLE_APPLE_PAY - if (![PKPayment class]) { - return NO; - } - - if (self.client.configuration.applePayStatus == BTClientApplePayStatusOff) { - return NO; - } - - if (![self paymentAuthorizationViewControllerCanMakePayments]) { - return NO; - } - - return YES; -#else - return NO; -#endif -} - -- (void)authorizeApplePay { -#if BT_ENABLE_APPLE_PAY - if (![PKPayment class]) { - NSError *error = [NSError errorWithDomain:BTPaymentProviderErrorDomain - code:BTPaymentProviderErrorOptionNotSupported - userInfo:@{ NSLocalizedDescriptionKey: @"Apple Pay is not supported in this version of the iOS SDK" }]; - [self informDelegateDidFailWithError:error]; - return; - } - - if (!self.delegate) { - NSError *error = [NSError errorWithDomain:BTPaymentProviderErrorDomain - code:BTPaymentProviderErrorInitialization - userInfo:@{ NSLocalizedDescriptionKey: @"Delegate must not be nil to start Apple Pay authorization" }]; - [self informDelegateDidFailWithError:error]; - return; - } - - if (self.client.configuration.applePayStatus == BTClientApplePayStatusOff) { - NSError *error = [NSError errorWithDomain:BTPaymentProviderErrorDomain - code:BTPaymentProviderErrorOptionNotSupported - userInfo:@{ NSLocalizedDescriptionKey: @"Apple Pay is not enabled for this merchant account" }]; - [self informDelegateDidFailWithError:error]; - return; - } - - if (![self canAuthorizeApplePayPaymentWithoutAnalytics]) { - NSError *error = [NSError errorWithDomain:BTPaymentProviderErrorDomain - code:BTPaymentProviderErrorInitialization - userInfo:@{ NSLocalizedDescriptionKey: @"Failed to initialize a Apple Pay authorization view controller. Check device, OS version, cards in Passbook and configuration." }]; - [self informDelegateDidFailWithError:error]; - return; - } - - PKPaymentRequest *paymentRequest = self.paymentRequest; - - if (!paymentRequest) { - NSError *error = [NSError errorWithDomain:BTPaymentProviderErrorDomain - code:BTPaymentProviderErrorInitialization - userInfo:@{ NSLocalizedDescriptionKey: @"Failed to initialize an Apple Pay PKPaymentRequest based on the client token configuration." }]; - [self informDelegateDidFailWithError:error]; - return; - } - - if (![paymentRequest.paymentSummaryItems count]) { - NSError *error = [NSError errorWithDomain:BTPaymentProviderErrorDomain - code:BTPaymentProviderErrorInitialization - userInfo:@{ NSLocalizedDescriptionKey: @"Apple Pay cannot be initialized because paymentSummaryItems are not set. Please set them via the BTPaymentProvider paymentSummaryItems" }]; - [self informDelegateDidFailWithError:error]; - return; - } - - - UIViewController *paymentAuthorizationViewController = [self paymentAuthorizationViewControllerWithPaymentRequest:paymentRequest]; - if (paymentAuthorizationViewController == nil) { - NSError *error = [NSError errorWithDomain:BTPaymentProviderErrorDomain - code:BTPaymentProviderErrorInitialization - userInfo:@{ NSLocalizedDescriptionKey: @"Failed to initialize a Apple Pay authorization view controller. Check device, OS version, cards in Passbook and configuration." }]; - [self informDelegateDidFailWithError:error]; - return; - } - - [self informDelegateRequestsPresentationOfViewController:paymentAuthorizationViewController]; -#else - NSError *error = [NSError errorWithDomain:BTPaymentProviderErrorDomain - code:BTPaymentProviderErrorInitialization - userInfo:@{ NSLocalizedDescriptionKey: @"Apple Pay is not enabled in this build. Please use the Braintree/Apple-Pay CocoaPod subspec and ensure you have a BT_ENABLE_APPLE_PAY=1 preprocessor macro in your build settings." }]; - [self informDelegateDidFailWithError:error]; -#if DEBUG - @throw [NSException exceptionWithName:@"Apple Pay not enabled" reason:error.localizedDescription userInfo:nil]; -#else - [[BTLogger sharedLogger] error:error.localizedDescription]; -#endif -#endif -} - -#if BT_ENABLE_APPLE_PAY - -- (UIViewController *)paymentAuthorizationViewControllerWithPaymentRequest:(PKPaymentRequest *)paymentRequest { - UIViewController *paymentAuthorizationViewController; - - if ([[self class] isSimulator]) { - paymentAuthorizationViewController = ({ - BTMockApplePayPaymentAuthorizationViewController *mockVC = [[BTMockApplePayPaymentAuthorizationViewController alloc] initWithPaymentRequest:paymentRequest]; - mockVC.delegate = self; - mockVC; - }); - } else { - paymentAuthorizationViewController = ({ - PKPaymentAuthorizationViewController *realVC = [[PKPaymentAuthorizationViewController alloc] initWithPaymentRequest:paymentRequest]; - realVC.delegate = self; - realVC; - }); - } - return paymentAuthorizationViewController; -} - -- (PKPaymentRequest *)paymentRequest { - if (![PKPaymentRequest class]) { - return nil; - } - - PKPaymentRequest *paymentRequest = [[PKPaymentRequest alloc] init]; - paymentRequest.merchantCapabilities = PKMerchantCapability3DS; - paymentRequest.currencyCode = self.client.configuration.applePayCurrencyCode; - paymentRequest.countryCode = self.client.configuration.applePayCountryCode; - paymentRequest.merchantIdentifier = self.client.configuration.applePayMerchantIdentifier; - paymentRequest.supportedNetworks = self.client.configuration.applePaySupportedNetworks; - - if (self.paymentSummaryItems) { - paymentRequest.paymentSummaryItems = self.paymentSummaryItems; - } - - if (self.requiredBillingAddressFields) { - paymentRequest.requiredBillingAddressFields = self.requiredBillingAddressFields; - } - - if (self.requiredShippingAddressFields) { - paymentRequest.requiredShippingAddressFields = self.requiredShippingAddressFields; - } - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - if (self.shippingAddress) { - paymentRequest.shippingAddress = self.shippingAddress; - } - - if (self.billingAddress) { - paymentRequest.billingAddress = self.billingAddress; - } -#pragma clang diagnostic pop - - if (self.shippingContact) { - paymentRequest.shippingContact = self.shippingContact; - } - - if (self.billingContact) { - paymentRequest.billingContact = self.billingContact; - } - - if (self.shippingMethods) { - paymentRequest.shippingMethods = self.shippingMethods; - } - - if (self.supportedNetworks) { - paymentRequest.supportedNetworks = self.supportedNetworks; - } - - return paymentRequest; -} - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - -- (void)setBillingAddress:(ABRecordRef)billingAddress { - _billingAddress = CFRetain(billingAddress); -} - -- (void)setShippingAddress:(ABRecordRef)shippingAddress { - _shippingAddress = CFRetain(shippingAddress); -} - -#pragma clang diagnostic pop - -- (void)dealloc { - if (_billingAddress) { - CFRelease(_billingAddress); - } - - if (_shippingAddress) { - CFRelease(_shippingAddress); - } -} -#endif - -#pragma mark Internal Helpers - Exposed for Testing - -+ (BOOL)isSimulator { -#if TARGET_IPHONE_SIMULATOR - return YES; -#else - return NO; -#endif -} - -- (BOOL)paymentAuthorizationViewControllerCanMakePayments { -#if BT_ENABLE_APPLE_PAY - if (![PKPaymentAuthorizationViewController class]) { - return NO; - } - if ([[self class] isSimulator]) { - return [BTMockApplePayPaymentAuthorizationViewController canMakePayments]; - } else { - return [PKPaymentAuthorizationViewController canMakePaymentsUsingNetworks:self.paymentRequest.supportedNetworks]; - } -#else - return NO; -#endif -} - -#pragma mark PKPaymentAuthorizationViewController Delegate - -#if BT_ENABLE_APPLE_PAY -- (void)paymentAuthorizationViewController:(__unused PKPaymentAuthorizationViewController *)controller - didAuthorizePayment:(PKPayment *)payment - completion:(void (^)(PKPaymentAuthorizationStatus))completion { - [self applePayPaymentAuthorizationViewControllerDidAuthorizePayment:payment - completion:completion]; -} - -- (void)paymentAuthorizationViewControllerDidFinish:(PKPaymentAuthorizationViewController *)controller { - [self applePayPaymentAuthorizationViewControllerDidFinish:controller]; -} -#endif - -#pragma mark MockApplePayPaymentAuthorizationViewController Delegate - -#if BT_ENABLE_APPLE_PAY -- (void)mockApplePayPaymentAuthorizationViewController:(__unused BTMockApplePayPaymentAuthorizationViewController *)viewController - didAuthorizePayment:(PKPayment *)payment - completion:(void (^)(PKPaymentAuthorizationStatus))completion { - [self applePayPaymentAuthorizationViewControllerDidAuthorizePayment:payment - completion:completion]; -} - -- (void)mockApplePayPaymentAuthorizationViewControllerDidFinish:(BTMockApplePayPaymentAuthorizationViewController *)viewController { - [self applePayPaymentAuthorizationViewControllerDidFinish:viewController]; -} -#endif - -#pragma mark Payment Authorization - -#if BT_ENABLE_APPLE_PAY -- (void)applePayPaymentAuthorizationViewControllerDidAuthorizePayment:(PKPayment *)payment completion:(void (^)(PKPaymentAuthorizationStatus))completion { - [self.client saveApplePayPayment:payment - success:^(BTApplePayPaymentMethod *applePayPaymentMethod) { - self.applePayPaymentMethod = applePayPaymentMethod; - completion(PKPaymentAuthorizationStatusSuccess); - } failure:^(NSError *error) { - self.applePayError = [NSError errorWithDomain:BTPaymentProviderErrorDomain - code:BTPaymentProviderErrorPaymentMethodCreation - userInfo:@{NSLocalizedDescriptionKey: @"Error processing Apple Payment with Braintree", - NSUnderlyingErrorKey: error}]; - completion(PKPaymentAuthorizationStatusFailure); - }]; -} -#endif - -- (void)applePayPaymentAuthorizationViewControllerDidFinish:(UIViewController *)viewController { - if (self.applePayError) { - [self informDelegateDidFailWithError:self.applePayError]; - } else if (self.applePayPaymentMethod) { - [self informDelegateDidCreatePaymentMethod:self.applePayPaymentMethod]; - } else { - [self informDelegateDidCancel]; - } - - self.applePayError = nil; - self.applePayPaymentMethod = nil; - - [self informDelegateRequestsDismissalOfAuthorizationViewController:viewController]; -} - -#pragma mark Delegate Informers - -- (void)informDelegateWillPerformAppSwitch { - if ([self.delegate respondsToSelector:@selector(paymentMethodCreatorWillPerformAppSwitch:)]) { - [self.delegate paymentMethodCreatorWillPerformAppSwitch:self]; - } -} - -- (void)informDelegateWillProcess { - [self.client postAnalyticsEvent:@"ios.apple-pay-provider.will-process"]; - if ([self.delegate respondsToSelector:@selector(paymentMethodCreatorWillProcess:)]) { - [self.delegate paymentMethodCreatorWillProcess:self]; - } -} - -- (void)informDelegateRequestsPresentationOfViewController:(UIViewController *)viewController { - [self.client postAnalyticsEvent:@"ios.apple-pay-provider.start"]; - if ([self.delegate respondsToSelector:@selector(paymentMethodCreator:requestsPresentationOfViewController:)]) { - [self.delegate paymentMethodCreator:self requestsPresentationOfViewController:viewController]; - } -} - -- (void)informDelegateRequestsDismissalOfAuthorizationViewController:(UIViewController *)viewController { - if ([self.delegate respondsToSelector:@selector(paymentMethodCreator:requestsDismissalOfViewController:)]) { - [self.delegate paymentMethodCreator:self requestsDismissalOfViewController:viewController]; - } -} - -- (void)informDelegateDidCreatePaymentMethod:(BTPaymentMethod *)paymentMethod { - [self.client postAnalyticsEvent:@"ios.apple-pay-provider.completion.succeed"]; - if ([self.delegate respondsToSelector:@selector(paymentMethodCreator:didCreatePaymentMethod:)]) { - [self.delegate paymentMethodCreator:self didCreatePaymentMethod:paymentMethod]; - } -} - -- (void)informDelegateDidFailWithError:(NSError *)error { - [self.client postAnalyticsEvent:@"ios.apple-pay-provider.completion.fail"]; - if ([self.delegate respondsToSelector:@selector(paymentMethodCreator:didFailWithError:)]) { - [self.delegate paymentMethodCreator:self didFailWithError:error]; - } -} - -- (void)informDelegateDidCancel { - [self.client postAnalyticsEvent:@"ios.apple-pay-provider.completion.cancel"]; - if ([self.delegate respondsToSelector:@selector(paymentMethodCreatorDidCancel:)]) { - [self.delegate paymentMethodCreatorDidCancel:self]; - } -} - -@end diff --git a/Pods/Braintree/Braintree/Payments/BTPaymentApplePayProvider_Internal.h b/Pods/Braintree/Braintree/Payments/BTPaymentApplePayProvider_Internal.h deleted file mode 100644 index 369976b..0000000 --- a/Pods/Braintree/Braintree/Payments/BTPaymentApplePayProvider_Internal.h +++ /dev/null @@ -1,12 +0,0 @@ -#import "BTPaymentApplePayProvider.h" - -@interface BTPaymentApplePayProvider () - -+ (BOOL)isSimulator; -- (BOOL)paymentAuthorizationViewControllerCanMakePayments; - -#if BT_ENABLE_APPLE_PAY -- (UIViewController *)paymentAuthorizationViewControllerWithPaymentRequest:(PKPaymentRequest *)paymentRequest; -#endif - -@end diff --git a/Pods/Braintree/Braintree/Payments/BTPaymentProvider.m b/Pods/Braintree/Braintree/Payments/BTPaymentProvider.m deleted file mode 100644 index 24ecb62..0000000 --- a/Pods/Braintree/Braintree/Payments/BTPaymentProvider.m +++ /dev/null @@ -1,403 +0,0 @@ -@import PassKit; - -#import "BTPaymentProvider.h" -#import "BTClient_Internal.h" -#import "BTAppSwitch.h" -#import "BTAppSwitching.h" - -#import "BTPayPalViewController.h" -#import "BTClient+BTPayPal.h" -#import "BTPaymentApplePayProvider.h" -#import "BTLogger_Internal.h" - - -@interface BTPaymentProvider () -@property (nonatomic, strong) BTPaymentApplePayProvider *applePayPaymentProvider; -@end - -@implementation BTPaymentProvider - -- (instancetype)initWithClient:(BTClient *)client { - self = [super init]; - if (self) { - self.client = client; - } - return self; -} - -- (BTPaymentApplePayProvider *)applePayPaymentProvider { - if (!_applePayPaymentProvider) { - _applePayPaymentProvider = [[BTPaymentApplePayProvider alloc] initWithClient:self.client]; - _applePayPaymentProvider.delegate = self; - } - return _applePayPaymentProvider; -} - -- (void)createPaymentMethod:(BTPaymentProviderType)type { - [self createPaymentMethod:type options:BTPaymentAuthorizationOptionMechanismAny]; -} - -- (void)createPaymentMethod:(BTPaymentProviderType)type options:(BTPaymentMethodCreationOptions)options { - [self setStatus:BTPaymentProviderStatusInitialized]; - - switch (type) { - case BTPaymentProviderTypePayPal: - [self authorizePayPal:options]; - break; - case BTPaymentProviderTypeVenmo: - [self authorizeVenmo:options]; - break; - case BTPaymentProviderTypeApplePay: - [self authorizeApplePay:options]; - break; - case BTPaymentProviderTypeCoinbase: - [self authorizeCoinbase]; - break; - default: - break; - } -} - -- (void)setClient:(BTClient *)client { - _client = client; - - // If PayPal is a possibility with this client, prepare. - if ([self.client btPayPal_isPayPalEnabled]) { - NSError *error; - [self.client btPayPal_preparePayPalMobileWithError:&error]; - if (error) { - [self.client postAnalyticsEvent:@"ios.authorizer.init.paypal-error"]; - [[BTLogger sharedLogger] error:@"PayPal is unavailable: %@", [error localizedDescription]]; - } - } -} - -- (BOOL)canCreatePaymentMethodWithProviderType:(BTPaymentProviderType)type { - switch (type) { - case BTPaymentProviderTypeApplePay: - return [self.applePayPaymentProvider canAuthorizeApplePayPayment]; - case BTPaymentProviderTypePayPal: - return [self.client btPayPal_isPayPalEnabled]; - case BTPaymentProviderTypeVenmo: { - id appSwitching = [[BTAppSwitch sharedInstance] appSwitchingForApp:BTAppTypeVenmo]; - return [appSwitching appSwitchAvailableForClient:self.client]; - } - case BTPaymentProviderTypeCoinbase: { - id appSwitching = [[BTAppSwitch sharedInstance] appSwitchingForApp:BTAppTypeCoinbase]; - return [appSwitching appSwitchAvailableForClient:self.client]; - } - default: return NO; - } -} - - -#pragma mark Apple Pay - -- (void)authorizeApplePay:(BTPaymentMethodCreationOptions)options { - if ((options & BTPaymentAuthorizationOptionMechanismViewController) == 0) { - NSError *error = [NSError errorWithDomain:BTPaymentProviderErrorDomain - code:BTPaymentProviderErrorOptionNotSupported - userInfo:@{NSLocalizedDescriptionKey: @"Apple Pay requires option BTPaymentAuthorizationOptionMechanismViewController"}]; - [self informDelegateDidFailWithError:error andPostAnalyticsEvent:NO]; - return; - } - - [self.applePayPaymentProvider authorizeApplePay]; -} - -#pragma mark Venmo - -- (void)authorizeVenmo:(BTPaymentMethodCreationOptions)options { - - if ((options & BTPaymentAuthorizationOptionMechanismAppSwitch) == 0) { - NSError *error = [NSError errorWithDomain:BTPaymentProviderErrorDomain code:BTPaymentProviderErrorOptionNotSupported userInfo:nil]; - [self informDelegateDidFailWithError:error andPostAnalyticsEvent:NO]; - return; - } - - NSError *error; - BOOL appSwitchSuccess = [[[BTAppSwitch sharedInstance] appSwitchingForApp:BTAppTypeVenmo] initiateAppSwitchWithClient:self.client delegate:self error:&error]; - if (appSwitchSuccess) { - [self informDelegateWillPerformAppSwitch]; - } else { - if (!error) { - error = [NSError errorWithDomain:BTPaymentProviderErrorDomain code:BTPaymentProviderErrorUnknown userInfo:@{NSLocalizedDescriptionKey: @"App Switch did not initiate, but did not return an error"}]; - } - [self informDelegateDidFailWithError:error andPostAnalyticsEvent:YES]; - } -} - -#pragma mark PayPal - -- (void)authorizePayPal:(BTPaymentMethodCreationOptions)options { - - BOOL appSwitchOptionEnabled = (options & BTPaymentAuthorizationOptionMechanismAppSwitch) == BTPaymentAuthorizationOptionMechanismAppSwitch; - BOOL viewControllerOptionEnabled = (options & BTPaymentAuthorizationOptionMechanismViewController) == BTPaymentAuthorizationOptionMechanismViewController; - - if (!appSwitchOptionEnabled && !viewControllerOptionEnabled) { - NSError *error = [NSError errorWithDomain:BTPaymentProviderErrorDomain code:BTPaymentProviderErrorOptionNotSupported userInfo:@{ NSLocalizedDescriptionKey: @"At least one of BTPaymentAuthorizationOptionMechanismAppSwitch or BTPaymentAuthorizationOptionMechanismViewController must be enabled in options" }]; - [self informDelegateDidFailWithError:error andPostAnalyticsEvent:NO]; - return; - } - - NSError *error; - BOOL initiated = NO; - if (appSwitchOptionEnabled) { - - BOOL appSwitchSuccess = [[[BTAppSwitch sharedInstance] appSwitchingForApp:BTAppTypePayPal] initiateAppSwitchWithClient:self.client delegate:self error:&error]; - if (appSwitchSuccess) { - initiated = YES; - [self informDelegateWillPerformAppSwitch]; - } else { - NSMutableString *message = [@"PayPal Touch is not available." mutableCopy]; - if (error.userInfo[NSLocalizedDescriptionKey]) { - [message appendFormat:@" Reason: \"%@\"", error.userInfo[NSLocalizedDescriptionKey]]; - } - [[BTLogger sharedLogger] log:message]; - } - } - - if(!initiated && viewControllerOptionEnabled) { - - BTPayPalViewController *braintreePayPalViewController = [[BTPayPalViewController alloc] initWithClient:self.client]; - if (braintreePayPalViewController) { - braintreePayPalViewController.delegate = self; - [self informDelegateRequestsPresentationOfViewController:braintreePayPalViewController]; - initiated = YES; - } else { - NSError *error = [NSError errorWithDomain:BTPaymentProviderErrorDomain - code:BTPaymentProviderErrorInitialization - userInfo:@{ NSLocalizedDescriptionKey: @"Failed to initialize BTPayPalViewController" }]; - [self informDelegateDidFailWithError:error andPostAnalyticsEvent:YES]; - } - } - - if (!initiated) { - NSMutableDictionary *userInfo = [@{ NSLocalizedDescriptionKey: @"PayPal authorization failed" } mutableCopy]; - if (error != nil) { - userInfo[NSUnderlyingErrorKey] = error; - } - [NSError errorWithDomain:BTPaymentProviderErrorDomain code:BTPaymentProviderErrorUnknown userInfo:userInfo]; - [self informDelegateDidFailWithError:error andPostAnalyticsEvent:YES]; - } -} - - -#pragma mark Coinbase - -- (void)authorizeCoinbase { - NSError *error; - BOOL appSwitchSuccess = [[[BTAppSwitch sharedInstance] appSwitchingForApp:BTAppTypeCoinbase] initiateAppSwitchWithClient:self.client delegate:self error:&error]; - if (appSwitchSuccess) { - [self informDelegateWillPerformAppSwitch]; - } else { - [self informDelegateDidFailWithError:error andPostAnalyticsEvent:YES]; - } -} - - -#pragma mark Inform Delegate - -- (void)informDelegateWillPerformAppSwitch { - [self.client postAnalyticsEvent:@"ios.authorizer.will-app-switch"]; - if ([self.delegate respondsToSelector:@selector(paymentMethodCreatorWillPerformAppSwitch:)]) { - [self.delegate paymentMethodCreatorWillPerformAppSwitch:self]; - } -} - -- (void)informDelegateWillProcess { - [self setStatus:BTPaymentProviderStatusProcessing]; - - [self.client postAnalyticsEvent:@"ios.authorizer.will-process-authorization-response"]; - if ([self.delegate respondsToSelector:@selector(paymentMethodCreatorWillProcess:)]) { - [self.delegate paymentMethodCreatorWillProcess:self]; - } -} - -- (void)informDelegateRequestsPresentationOfViewController:(UIViewController *)viewController { - [self.client postAnalyticsEvent:@"ios.authorizer.requests-authorization-with-view-controller"]; - if ([self.delegate respondsToSelector:@selector(paymentMethodCreator:requestsPresentationOfViewController:)]) { - [self.delegate paymentMethodCreator:self requestsPresentationOfViewController:viewController]; - } -} - -- (void)informDelegateRequestsDismissalOfAuthorizationViewController:(UIViewController *)viewController { - [self.client postAnalyticsEvent:@"ios.authorizer.requests-dismissal-of-authorization-view-controller"]; - if ([self.delegate respondsToSelector:@selector(paymentMethodCreator:requestsDismissalOfViewController:)]) { - [self.delegate paymentMethodCreator:self requestsDismissalOfViewController:viewController]; - } -} - -- (void)informDelegateDidCreatePaymentMethod:(BTPaymentMethod *)paymentMethod { - [self setStatus:BTPaymentProviderStatusSuccess]; - - [self.client postAnalyticsEvent:@"ios.authorizer.did-create-payment-method"]; - if ([self.delegate respondsToSelector:@selector(paymentMethodCreator:didCreatePaymentMethod:)]) { - [self.delegate paymentMethodCreator:self didCreatePaymentMethod:paymentMethod]; - } -} - -- (void)informDelegateDidFailWithError:(NSError *)error andPostAnalyticsEvent:(BOOL)postAnalyticsEvent { - [self setStatus:BTPaymentProviderStatusError]; - - if (postAnalyticsEvent) { - [self.client postAnalyticsEvent:@"ios.authorizer.did-fail-with-error"]; - } - - if ([self.delegate respondsToSelector:@selector(paymentMethodCreator:didFailWithError:)]) { - [self.delegate paymentMethodCreator:self didFailWithError:error]; - } -} - -- (void)informDelegateDidCancel { - [self setStatus:BTPaymentProviderStatusCanceled]; - - [self.client postAnalyticsEvent:@"ios.authorizer.did-cancel"]; - if ([self.delegate respondsToSelector:@selector(paymentMethodCreatorDidCancel:)]) { - [self.delegate paymentMethodCreatorDidCancel:self]; - } -} - -#pragma mark BTPayPalViewControllerDelegate - -- (void)payPalViewControllerWillCreatePayPalPaymentMethod:(__unused BTPayPalViewController *)viewController { - [self informDelegateWillProcess]; -} - -- (void)payPalViewController:(BTPayPalViewController *)viewController didCreatePayPalPaymentMethod:(BTPayPalPaymentMethod *)payPalPaymentMethod { - [self setStatus:BTPaymentProviderStatusSuccess]; - - [self informDelegateRequestsDismissalOfAuthorizationViewController:viewController]; - [self informDelegateDidCreatePaymentMethod:payPalPaymentMethod]; -} - -- (void)payPalViewController:(__unused BTPayPalViewController *)viewController didFailWithError:(NSError *)error { - [self setStatus:BTPaymentProviderStatusError]; - - [self informDelegateRequestsDismissalOfAuthorizationViewController:viewController]; - [self informDelegateDidFailWithError:error andPostAnalyticsEvent:YES]; -} - -- (void)payPalViewControllerDidCancel:(BTPayPalViewController *)viewController { - [self setStatus:BTPaymentProviderStatusCanceled]; - - [self informDelegateRequestsDismissalOfAuthorizationViewController:viewController]; - [self informDelegateDidCancel]; -} - -#pragma mark BTAppSwitchingDelegate - -- (void)appSwitcherWillCreatePaymentMethod:(__unused id)switcher { - [self informDelegateWillProcess]; -} - -- (void)appSwitcher:(__unused id)switcher didCreatePaymentMethod:(BTPaymentMethod *)paymentMethod { - [self informDelegateDidCreatePaymentMethod:paymentMethod]; -} - -- (void)appSwitcher:(__unused id)switcher didFailWithError:(NSError *)error { - [self informDelegateDidFailWithError:error andPostAnalyticsEvent:YES]; -} - -- (void)appSwitcherDidCancel:(__unused id)switcher { - [self informDelegateDidCancel]; -} - -#pragma mark BTPaymentMethodCreationDelegate - -- (void)paymentMethodCreator:(__unused id)sender requestsPresentationOfViewController:(UIViewController *)viewController { - [self informDelegateRequestsPresentationOfViewController:viewController]; -} - -- (void)paymentMethodCreator:(__unused id)sender requestsDismissalOfViewController:(UIViewController *)viewController { - [self informDelegateRequestsDismissalOfAuthorizationViewController:viewController]; -} - -- (void)paymentMethodCreatorWillPerformAppSwitch:(__unused id)sender { - [self informDelegateWillPerformAppSwitch]; -} - -- (void)paymentMethodCreatorWillProcess:(__unused id)sender { - [self informDelegateWillProcess]; -} - -- (void)paymentMethodCreatorDidCancel:(__unused id)sender { - [self informDelegateDidCancel]; -} - -- (void)paymentMethodCreator:(__unused id)sender didCreatePaymentMethod:(BTPaymentMethod *)paymentMethod { - [self informDelegateDidCreatePaymentMethod:paymentMethod]; -} - -- (void)paymentMethodCreator:(__unused id)sender didFailWithError:(NSError *)error { - [self informDelegateDidFailWithError:error andPostAnalyticsEvent:YES]; -} - -#if BT_ENABLE_APPLE_PAY - -#pragma mark Payment Request Details - -- (void)setPaymentSummaryItems:(NSArray *)paymentSummaryItems { - _paymentSummaryItems = paymentSummaryItems; - self.applePayPaymentProvider.paymentSummaryItems = paymentSummaryItems; -} - -- (void)setRequiredBillingAddressFields:(PKAddressField)requiredBillingAddressFields { - _requiredBillingAddressFields = requiredBillingAddressFields; - self.applePayPaymentProvider.requiredBillingAddressFields = requiredBillingAddressFields; -} - -- (void)setRequiredShippingAddressFields:(PKAddressField)requiredShippingAddressFields { - _requiredShippingAddressFields = requiredShippingAddressFields; - self.applePayPaymentProvider.requiredShippingAddressFields = requiredShippingAddressFields; - ; -} - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - -- (void)setBillingAddress:(ABRecordRef)billingAddress { - _billingAddress = CFRetain(billingAddress); - self.applePayPaymentProvider.billingAddress = billingAddress; -} - -- (void)setShippingAddress:(ABRecordRef)shippingAddress { - _shippingAddress = CFRetain(shippingAddress); - self.applePayPaymentProvider.shippingAddress = shippingAddress; -} - -#pragma clang diagnostic pop - -- (void)setBillingContact:(PKContact *)billingContact { - _billingContact = billingContact; - self.applePayPaymentProvider.billingContact = billingContact; -} - -- (void)setShippingContact:(PKContact *)shippingContact { - _shippingContact = shippingContact; - self.applePayPaymentProvider.shippingContact = shippingContact; -} - -- (void)setShippingMethods:(NSArray *)shippingMethods { - _shippingMethods = shippingMethods; - self.applePayPaymentProvider.shippingMethods = shippingMethods; -} - -- (void)setSupportedNetworks:(NSArray *)supportedNetworks { - _supportedNetworks = supportedNetworks; - self.applePayPaymentProvider.supportedNetworks = supportedNetworks; -} - -- (void)dealloc { - if (_shippingAddress) { - CFRelease(_shippingAddress); - } - - if (_billingAddress) { - CFRelease(_billingAddress); - } -} - -#endif - -@end diff --git a/Pods/Braintree/Braintree/Payments/BTPaymentProviderErrors.m b/Pods/Braintree/Braintree/Payments/BTPaymentProviderErrors.m deleted file mode 100644 index 28985d6..0000000 --- a/Pods/Braintree/Braintree/Payments/BTPaymentProviderErrors.m +++ /dev/null @@ -1,3 +0,0 @@ -#import "BTPaymentProviderErrors.h" - -NSString *const BTPaymentProviderErrorDomain = @"BTPaymentProviderErrorDomain"; diff --git a/Pods/Braintree/Braintree/UI/BTUIPaymentMethodType.h b/Pods/Braintree/Braintree/UI/BTUIPaymentMethodType.h deleted file mode 100644 index 4289a68..0000000 --- a/Pods/Braintree/Braintree/UI/BTUIPaymentMethodType.h +++ /dev/null @@ -1,18 +0,0 @@ -/// Credit card types -typedef NS_ENUM(NSInteger, BTUIPaymentMethodType) { - BTUIPaymentMethodTypeUnknown = 0, - BTUIPaymentMethodTypeAMEX, - BTUIPaymentMethodTypeDinersClub, - BTUIPaymentMethodTypeDiscover, - BTUIPaymentMethodTypeMasterCard, - BTUIPaymentMethodTypeVisa, - BTUIPaymentMethodTypeJCB, - BTUIPaymentMethodTypeLaser, - BTUIPaymentMethodTypeMaestro, - BTUIPaymentMethodTypeUnionPay, - BTUIPaymentMethodTypeSolo, - BTUIPaymentMethodTypeSwitch, - BTUIPaymentMethodTypeUKMaestro, - BTUIPaymentMethodTypePayPal, - BTUIPaymentMethodTypeCoinbase, -}; diff --git a/Pods/Braintree/Braintree/UI/Braintree-Payments-UI.h b/Pods/Braintree/Braintree/UI/Braintree-Payments-UI.h deleted file mode 100644 index 3c58261..0000000 --- a/Pods/Braintree/Braintree/UI/Braintree-Payments-UI.h +++ /dev/null @@ -1,9 +0,0 @@ -/// All-in-one import for Braintree Payments UI Components - -#import -#import -#import -#import -#import -#import -#import diff --git a/Pods/Braintree/Braintree/UI/Localization/BTUILocalizedString.h b/Pods/Braintree/Braintree/UI/Localization/BTUILocalizedString.h deleted file mode 100644 index 9239989..0000000 --- a/Pods/Braintree/Braintree/UI/Localization/BTUILocalizedString.h +++ /dev/null @@ -1,32 +0,0 @@ -#import - -#define BTUILocalizedString(KEY) [BTUILocalizedString KEY] - -@interface BTUILocalizedString : NSObject - -+ (NSString *)CARD_NUMBER_PLACEHOLDER; -+ (NSString *)CVV_FIELD_PLACEHOLDER; -+ (NSString *)EXPIRY_PLACEHOLDER_FOUR_DIGIT_YEAR; -+ (NSString *)EXPIRY_PLACEHOLDER_TWO_DIGIT_YEAR; -+ (NSString *)PAYPAL_CARD_BRAND; -+ (NSString *)POSTAL_CODE_PLACEHOLDER; -+ (NSString *)TOP_LEVEL_ERROR_ALERT_VIEW_OK_BUTTON_TEXT; - - -#pragma mark Card Brands - -+ (NSString *)CARD_TYPE_AMERICAN_EXPRESS; -+ (NSString *)CARD_TYPE_DISCOVER; -+ (NSString *)CARD_TYPE_DINERS_CLUB; -+ (NSString *)CARD_TYPE_MASTER_CARD; -+ (NSString *)CARD_TYPE_VISA; -+ (NSString *)CARD_TYPE_JCB; -+ (NSString *)CARD_TYPE_MAESTRO; -+ (NSString *)CARD_TYPE_UNION_PAY; -+ (NSString *)CARD_TYPE_SWITCH; -+ (NSString *)CARD_TYPE_SOLO; -+ (NSString *)CARD_TYPE_LASER; -+ (NSString *)PAYMENT_METHOD_TYPE_PAYPAL; -+ (NSString *)PAYMENT_METHOD_TYPE_COINBASE; - -@end diff --git a/Pods/Braintree/Braintree/UI/Localization/BTUILocalizedString.m b/Pods/Braintree/Braintree/UI/Localization/BTUILocalizedString.m deleted file mode 100644 index 4a26d7d..0000000 --- a/Pods/Braintree/Braintree/UI/Localization/BTUILocalizedString.m +++ /dev/null @@ -1,100 +0,0 @@ -#import "BTUILocalizedString.h" - -@implementation BTUILocalizedString - -+ (NSBundle *)localizationBundle { - - static NSString * bundleName = @"Braintree-UI-Localization"; - NSString *localizationBundlePath = [[NSBundle mainBundle] pathForResource:bundleName ofType:@"bundle"]; - if (!localizationBundlePath) { - localizationBundlePath = [[NSBundle bundleForClass:[self class]] pathForResource:bundleName ofType:@"bundle"]; - } - - return localizationBundlePath ? [NSBundle bundleWithPath:localizationBundlePath] : [NSBundle mainBundle]; -} - -+ (NSString *)localizationTable { - return @"UI"; -} - -+ (NSString *)CVV_FIELD_PLACEHOLDER { - return NSLocalizedStringWithDefaultValue(@"CVV_FIELD_PLACEHOLDER", [self localizationTable], [self localizationBundle], @"CVV", @"CVV (credit card security code) field placeholder"); -} - -+ (NSString *)CARD_NUMBER_PLACEHOLDER { - return NSLocalizedStringWithDefaultValue(@"CARD_NUMBER_PLACEHOLDER", [self localizationTable], [self localizationBundle], @"Card Number", @"Credit card number field placeholder"); -} - -+ (NSString *)EXPIRY_PLACEHOLDER_FOUR_DIGIT_YEAR { - return NSLocalizedStringWithDefaultValue(@"EXPIRY_PLACEHOLDER_FOUR_DIGIT_YEAR", [self localizationTable], [self localizationBundle], @"MM/YYYY", @"Credit card expiration date field placeholder (MM/YYYY format)"); -} - -+ (NSString *)EXPIRY_PLACEHOLDER_TWO_DIGIT_YEAR { - return NSLocalizedStringWithDefaultValue(@"EXPIRY_PLACEHOLDER_TWO_DIGIT_YEAR", [self localizationTable], [self localizationBundle], @"MM/YY", @"Credit card expiration date field placeholder (MM/YY format)"); -} - -+ (NSString *)PAYPAL_CARD_BRAND { - return NSLocalizedStringWithDefaultValue(@"PAYPAL_CARD_BRAND", [self localizationTable], [self localizationBundle], @"PayPal", @"PayPal payment method name"); -} - -+ (NSString *)POSTAL_CODE_PLACEHOLDER { - return NSLocalizedStringWithDefaultValue(@"POSTAL_CODE_PLACEHOLDER", [self localizationTable], [self localizationBundle], @"Postal Code", @"Credit card billing postal code field placeholder"); -} - -+ (NSString *)TOP_LEVEL_ERROR_ALERT_VIEW_OK_BUTTON_TEXT { - return NSLocalizedStringWithDefaultValue(@"TOP_LEVEL_ERROR_ALERT_VIEW_OK_BUTTON_TEXT", [self localizationTable], [self localizationBundle], @"OK", @"OK Button on card form alert view for top level errors"); -} - -+ (NSString *)CARD_TYPE_AMERICAN_EXPRESS { - return NSLocalizedStringWithDefaultValue(@"CARD_TYPE_AMERICAN_EXPRESS", [self localizationTable], [self localizationBundle], @"American Express", @"American Express card brand"); -} - -+ (NSString *)CARD_TYPE_DINERS_CLUB { - return NSLocalizedStringWithDefaultValue(@"CARD_TYPE_DINERS_CLUB", [self localizationTable], [self localizationBundle], @"Diners Club", @"Diners Club card brand"); -} - -+ (NSString *)CARD_TYPE_DISCOVER { - return NSLocalizedStringWithDefaultValue(@"CARD_TYPE_DISCOVER", [self localizationTable], [self localizationBundle], @"Discover", @"Discover card brand"); -} - -+ (NSString *)CARD_TYPE_MASTER_CARD { - return NSLocalizedStringWithDefaultValue(@"CARD_TYPE_MASTER_CARD", [self localizationTable], [self localizationBundle], @"MasterCard", @"MasterCard card brand"); -} - -+ (NSString *)CARD_TYPE_VISA { - return NSLocalizedStringWithDefaultValue(@"CARD_TYPE_VISA", [self localizationTable], [self localizationBundle], @"Visa", @"Visa card brand"); -} - -+ (NSString *)CARD_TYPE_JCB { - return NSLocalizedStringWithDefaultValue(@"CARD_TYPE_JCB", [self localizationTable], [self localizationBundle], @"JCB", @"JCB card brand"); -} - -+ (NSString *)CARD_TYPE_MAESTRO { - return NSLocalizedStringWithDefaultValue(@"CARD_TYPE_MAESTRO", [self localizationTable], [self localizationBundle], @"Maestro", @"Maestro card brand"); -} - -+ (NSString *)CARD_TYPE_UNION_PAY { - return NSLocalizedStringWithDefaultValue(@"CARD_TYPE_UNION_PAY", [self localizationTable], [self localizationBundle], @"UnionPay", @"UnionPay card brand"); -} - -+ (NSString *)CARD_TYPE_LASER { - return NSLocalizedStringWithDefaultValue(@"CARD_TYPE_LASER", [self localizationTable], [self localizationBundle], @"Laser", @"Laser card brand"); -} - -+ (NSString *)CARD_TYPE_SOLO { - return NSLocalizedStringWithDefaultValue(@"CARD_TYPE_SOLO", [self localizationTable], [self localizationBundle], @"Solo", @"Solo card brand"); -} - -+ (NSString *)CARD_TYPE_SWITCH { - return NSLocalizedStringWithDefaultValue(@"CARD_TYPE_SWITCH", [self localizationTable], [self localizationBundle], @"Switch", @"Switch card brand"); -} - -+ (NSString *)PAYMENT_METHOD_TYPE_PAYPAL { - return NSLocalizedStringWithDefaultValue(@"PAYPAL", [self localizationTable], [self localizationBundle], @"PayPal", @"PayPal (as a standalone term, referring to the payment method type, analogous to Visa or Discover)"); -} - -+ (NSString *)PAYMENT_METHOD_TYPE_COINBASE { - return NSLocalizedStringWithDefaultValue(@"COINBASE", [self localizationTable], [self localizationBundle], @"Coinbase", @"Coinbase (as a standalone term, referring to the bitcoin wallet company)"); -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Localization/da.lproj/UI.strings b/Pods/Braintree/Braintree/UI/Localization/da.lproj/UI.strings deleted file mode 100644 index 18bb418..0000000 Binary files a/Pods/Braintree/Braintree/UI/Localization/da.lproj/UI.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/UI/Localization/de.lproj/UI.strings b/Pods/Braintree/Braintree/UI/Localization/de.lproj/UI.strings deleted file mode 100644 index d0b59e0..0000000 Binary files a/Pods/Braintree/Braintree/UI/Localization/de.lproj/UI.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/UI/Localization/en.lproj/UI.strings b/Pods/Braintree/Braintree/UI/Localization/en.lproj/UI.strings deleted file mode 100644 index ef2558a..0000000 Binary files a/Pods/Braintree/Braintree/UI/Localization/en.lproj/UI.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/UI/Localization/en_AU.lproj/UI.strings b/Pods/Braintree/Braintree/UI/Localization/en_AU.lproj/UI.strings deleted file mode 100644 index 889ba70..0000000 Binary files a/Pods/Braintree/Braintree/UI/Localization/en_AU.lproj/UI.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/UI/Localization/en_CA.lproj/UI.strings b/Pods/Braintree/Braintree/UI/Localization/en_CA.lproj/UI.strings deleted file mode 100644 index ef2558a..0000000 Binary files a/Pods/Braintree/Braintree/UI/Localization/en_CA.lproj/UI.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/UI/Localization/en_GB.lproj/UI.strings b/Pods/Braintree/Braintree/UI/Localization/en_GB.lproj/UI.strings deleted file mode 100644 index e70ece8..0000000 Binary files a/Pods/Braintree/Braintree/UI/Localization/en_GB.lproj/UI.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/UI/Localization/es.lproj/UI.strings b/Pods/Braintree/Braintree/UI/Localization/es.lproj/UI.strings deleted file mode 100644 index 270e1a7..0000000 Binary files a/Pods/Braintree/Braintree/UI/Localization/es.lproj/UI.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/UI/Localization/es_ES.lproj/UI.strings b/Pods/Braintree/Braintree/UI/Localization/es_ES.lproj/UI.strings deleted file mode 100644 index 338fcf7..0000000 Binary files a/Pods/Braintree/Braintree/UI/Localization/es_ES.lproj/UI.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/UI/Localization/fr.lproj/UI.strings b/Pods/Braintree/Braintree/UI/Localization/fr.lproj/UI.strings deleted file mode 100644 index c45a8a0..0000000 Binary files a/Pods/Braintree/Braintree/UI/Localization/fr.lproj/UI.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/UI/Localization/fr_CA.lproj/UI.strings b/Pods/Braintree/Braintree/UI/Localization/fr_CA.lproj/UI.strings deleted file mode 100644 index 7927651..0000000 Binary files a/Pods/Braintree/Braintree/UI/Localization/fr_CA.lproj/UI.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/UI/Localization/fr_FR.lproj/UI.strings b/Pods/Braintree/Braintree/UI/Localization/fr_FR.lproj/UI.strings deleted file mode 100644 index df933d9..0000000 Binary files a/Pods/Braintree/Braintree/UI/Localization/fr_FR.lproj/UI.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/UI/Localization/he.lproj/UI.strings b/Pods/Braintree/Braintree/UI/Localization/he.lproj/UI.strings deleted file mode 100644 index dad0e4f..0000000 Binary files a/Pods/Braintree/Braintree/UI/Localization/he.lproj/UI.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/UI/Localization/it.lproj/UI.strings b/Pods/Braintree/Braintree/UI/Localization/it.lproj/UI.strings deleted file mode 100644 index 9ee4a22..0000000 Binary files a/Pods/Braintree/Braintree/UI/Localization/it.lproj/UI.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/UI/Localization/nb.lproj/UI.strings b/Pods/Braintree/Braintree/UI/Localization/nb.lproj/UI.strings deleted file mode 100644 index 449ddb5..0000000 Binary files a/Pods/Braintree/Braintree/UI/Localization/nb.lproj/UI.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/UI/Localization/nl.lproj/UI.strings b/Pods/Braintree/Braintree/UI/Localization/nl.lproj/UI.strings deleted file mode 100644 index 12ff373..0000000 Binary files a/Pods/Braintree/Braintree/UI/Localization/nl.lproj/UI.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/UI/Localization/pl.lproj/UI.strings b/Pods/Braintree/Braintree/UI/Localization/pl.lproj/UI.strings deleted file mode 100644 index 36683db..0000000 Binary files a/Pods/Braintree/Braintree/UI/Localization/pl.lproj/UI.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/UI/Localization/pt.lproj/UI.strings b/Pods/Braintree/Braintree/UI/Localization/pt.lproj/UI.strings deleted file mode 100644 index 2baa2a5..0000000 Binary files a/Pods/Braintree/Braintree/UI/Localization/pt.lproj/UI.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/UI/Localization/ru.lproj/UI.strings b/Pods/Braintree/Braintree/UI/Localization/ru.lproj/UI.strings deleted file mode 100644 index f90bf3f..0000000 Binary files a/Pods/Braintree/Braintree/UI/Localization/ru.lproj/UI.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/UI/Localization/sv.lproj/UI.strings b/Pods/Braintree/Braintree/UI/Localization/sv.lproj/UI.strings deleted file mode 100644 index 449ddb5..0000000 Binary files a/Pods/Braintree/Braintree/UI/Localization/sv.lproj/UI.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/UI/Localization/tr.lproj/UI.strings b/Pods/Braintree/Braintree/UI/Localization/tr.lproj/UI.strings deleted file mode 100644 index bf4f400..0000000 Binary files a/Pods/Braintree/Braintree/UI/Localization/tr.lproj/UI.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/UI/Localization/zh-Hans.lproj/UI.strings b/Pods/Braintree/Braintree/UI/Localization/zh-Hans.lproj/UI.strings deleted file mode 100644 index 6de374b..0000000 Binary files a/Pods/Braintree/Braintree/UI/Localization/zh-Hans.lproj/UI.strings and /dev/null differ diff --git a/Pods/Braintree/Braintree/UI/Models/BTUICardExpirationValidator.h b/Pods/Braintree/Braintree/UI/Models/BTUICardExpirationValidator.h deleted file mode 100644 index 9268fd3..0000000 --- a/Pods/Braintree/Braintree/UI/Models/BTUICardExpirationValidator.h +++ /dev/null @@ -1,9 +0,0 @@ -#import - -#define kBTUICardExpirationValidatorFarFutureYears 20 - -@interface BTUICardExpirationValidator : NSObject - -+ (BOOL)month:(NSUInteger)month year:(NSUInteger)year validForDate:(NSDate *)date; - -@end diff --git a/Pods/Braintree/Braintree/UI/Models/BTUICardExpirationValidator.m b/Pods/Braintree/Braintree/UI/Models/BTUICardExpirationValidator.m deleted file mode 100644 index dbad65a..0000000 --- a/Pods/Braintree/Braintree/UI/Models/BTUICardExpirationValidator.m +++ /dev/null @@ -1,38 +0,0 @@ -#import "BTUICardExpirationValidator.h" - -#ifdef __IPHONE_8_0 -#define kBTNSGregorianCalendarIdentifier NSCalendarIdentifierGregorian -#else -#define kBTNSGregorianCalendarIdentifier NSGregorianCalendar -#endif - -@implementation BTUICardExpirationValidator - -+ (BOOL)month:(NSUInteger)month year:(NSUInteger)year validForDate:(NSDate *)date { - - NSDateComponents *dateComponents = [[NSDateComponents alloc] init]; - dateComponents.calendar = [[NSCalendar alloc] initWithCalendarIdentifier:kBTNSGregorianCalendarIdentifier]; - dateComponents.year = ((year % 2000) + 2000) ; - dateComponents.month = month; - NSInteger newMonth = (dateComponents.month + 1); - if (newMonth > 12) { - dateComponents.month = newMonth % 12; - dateComponents.year += 1; - } else { - dateComponents.month = newMonth; - } - BOOL expired = [date compare:dateComponents.date] != NSOrderedAscending; - if (expired) { - return NO; - } - - NSDate *farFuture = [date dateByAddingTimeInterval:3600 * 24 * 365.25 * kBTUICardExpirationValidatorFarFutureYears]; // roughly years in the future - BOOL tooFarInTheFuture = [farFuture compare:dateComponents.date] != NSOrderedDescending; - - return !tooFarInTheFuture; -} - - - - -@end diff --git a/Pods/Braintree/Braintree/UI/Models/BTUICardExpiryFormat.h b/Pods/Braintree/Braintree/UI/Models/BTUICardExpiryFormat.h deleted file mode 100644 index 7d8c646..0000000 --- a/Pods/Braintree/Braintree/UI/Models/BTUICardExpiryFormat.h +++ /dev/null @@ -1,10 +0,0 @@ -#import - -@interface BTUICardExpiryFormat : NSObject -@property (nonatomic, copy) NSString *value; -@property (nonatomic, assign) NSUInteger cursorLocation; -@property (nonatomic, assign) BOOL backspace; - -- (void)formattedValue:(NSString * __autoreleasing *)value cursorLocation:(NSUInteger *)cursorLocation; - -@end diff --git a/Pods/Braintree/Braintree/UI/Models/BTUICardExpiryFormat.m b/Pods/Braintree/Braintree/UI/Models/BTUICardExpiryFormat.m deleted file mode 100644 index 36efc56..0000000 --- a/Pods/Braintree/Braintree/UI/Models/BTUICardExpiryFormat.m +++ /dev/null @@ -1,51 +0,0 @@ -#import "BTUICardExpiryFormat.h" -#import "BTUIUtil.h" - -@implementation BTUICardExpiryFormat - -- (void)formattedValue:(NSString *__autoreleasing *)value cursorLocation:(NSUInteger *)cursorLocation { - if (value == NULL || cursorLocation == NULL) { - return; - } - - NSMutableString *s = [NSMutableString stringWithString:self.value]; - *cursorLocation = self.cursorLocation; - - if (s.length == 0) { - *value = s; - return; - } - - if (*cursorLocation == 1 && s.length == 1 && [s characterAtIndex:0] > '1' && [s characterAtIndex:0] <= '9') { - [s insertString:@"0" atIndex:0]; - *cursorLocation += 1; - } - - if (self.backspace) { - if (*cursorLocation == 2 && s.length == 2) { - [s deleteCharactersInRange:NSMakeRange(1, 1)]; - *cursorLocation -= 1; - } - } else { - - NSUInteger slashLocation = [s rangeOfString:@"/"].location; - if (slashLocation != NSNotFound) { - if (slashLocation > 2) { - s = [NSMutableString stringWithString:[BTUIUtil stripNonDigits:s]]; - [s insertString:@"/" atIndex:2]; - *cursorLocation += 1; - } - } else { - if (s.length >= 2) { - [s insertString:@"/" atIndex:2]; - if (*cursorLocation >= 2) { - *cursorLocation += 1; - } - } - } - } - - *value = s; -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Models/BTUICardType.h b/Pods/Braintree/Braintree/UI/Models/BTUICardType.h deleted file mode 100644 index ef73546..0000000 --- a/Pods/Braintree/Braintree/UI/Models/BTUICardType.h +++ /dev/null @@ -1,45 +0,0 @@ -#import - -#import "BTUILocalizedString.h" - -/// Immutable card type -@interface BTUICardType : NSObject - -/// Obtain the `BTCardType` for the given brand, or nil if none is found -+ (instancetype)cardTypeForBrand:(NSString *)brand; - -/// Obtain the `BTCardType` for the given number, or nil if none is found -+ (instancetype)cardTypeForNumber:(NSString *)number; - -/// Return all possible card types for a number -+ (NSArray *)possibleCardTypesForNumber:(NSString *)number; - -/// Check if a number is valid -- (BOOL)validNumber:(NSString *)number; - -/// Check if a number is complete -- (BOOL)completeNumber:(NSString *)number; - -/// Check is a number is valid and necessarily complete -/// (i.e. it can't get any longer) -- (BOOL)validAndNecessarilyCompleteNumber:(NSString *)number; - -/// Check if the CVV is valid for a `BTCardType` -- (BOOL)validCvv:(NSString *)cvv; - -/// Format a number based on type -/// Does NOT validate -- (NSAttributedString *)formatNumber:(NSString *)input; -- (NSAttributedString *)formatNumber:(NSString *)input kerning:(CGFloat)kerning; - -+ (NSUInteger)maxNumberLength; - -@property (nonatomic, copy, readonly) NSString *brand; -@property (nonatomic, strong, readonly) NSArray *validNumberPrefixes; -@property (nonatomic, strong, readonly) NSIndexSet *validNumberLengths; -@property (nonatomic, assign, readonly) NSUInteger validCvvLength; - -@property (nonatomic, strong, readonly) NSArray *formatSpaces; -@property (nonatomic, assign, readonly) NSUInteger maxNumberLength; - -@end diff --git a/Pods/Braintree/Braintree/UI/Models/BTUICardType.m b/Pods/Braintree/Braintree/UI/Models/BTUICardType.m deleted file mode 100644 index bde8d50..0000000 --- a/Pods/Braintree/Braintree/UI/Models/BTUICardType.m +++ /dev/null @@ -1,225 +0,0 @@ -#import - -#import "BTUICardType.h" -#import "BTUIUtil.h" - -#define kDefaultFormatSpaceIndices @[@4, @8, @12, @16] -#define kDefaultCvvLength 3 -#define kDefaultValidNumberLengths [NSIndexSet indexSetWithIndex:16] -#define kInvalidCvvCharacterSet [[NSCharacterSet characterSetWithCharactersInString:@"0123456789"] invertedSet] - - -@implementation BTUICardType - -#pragma mark - Private initializers - -- (instancetype)initWithBrand:(NSString *)brand - prefixes:(NSArray *)prefixes -{ - return [self initWithBrand:brand - prefixes:prefixes - validNumberLengths:kDefaultValidNumberLengths - validCvvLength:kDefaultCvvLength - formatSpaces:kDefaultFormatSpaceIndices]; -} - -- (instancetype)initWithBrand:(NSString *)brand - prefixes:(NSArray *)prefixes - validNumberLengths:(NSIndexSet *)validLengths - validCvvLength:(NSUInteger)cvvLength - formatSpaces:(NSArray *)formatSpaces -{ - self = [super init]; - if (self != nil) { - _brand = brand; - NSError *error; - - _validNumberPrefixes = prefixes; - if (error != nil) { - NSLog(@"Braintree-Payments-UI: %@", error); - } - _validNumberLengths = validLengths; - _validCvvLength = cvvLength; - - NSArray *sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"self" ascending:YES]]; - _formatSpaces = [formatSpaces sortedArrayUsingDescriptors:sortDescriptors] ?: kDefaultFormatSpaceIndices; - _maxNumberLength = [validLengths lastIndex]; - } - return self; -} - -#pragma mark - Finders - -+ (instancetype)cardTypeForBrand:(NSString *)rename { - return [[self class] cardsByBrand][rename]; -} - -+ (instancetype)cardTypeForNumber:(NSString *)number { - if (number.length == 0) { - return nil; - } - for (BTUICardType *cardType in [[self class] allCards]) { - for (NSString *prefix in cardType.validNumberPrefixes) { - if (number.length >= prefix.length) { - NSUInteger compareLength = MIN(prefix.length, number.length); - NSString *sizedNumber = [number substringToIndex:compareLength]; - if ([sizedNumber isEqualToString:prefix]) { - return cardType; - } - } - } - } - return nil; -} - -// Since each card type has a list of acceptable card prefixes, we -// can determine which card types may match a given number -+ (NSArray *)possibleCardTypesForNumber:(NSString *)number { - number = [BTUIUtil stripNonDigits:number]; - if (number.length == 0) { - return [[self class] allCards]; - } - NSMutableSet *possibleCardTypes = [NSMutableSet set]; - for (BTUICardType *cardType in [[self class] allCards]) { - for (NSString *prefix in cardType.validNumberPrefixes) { - NSUInteger compareLength = MIN(prefix.length, number.length); - - NSString *sizedPrefix = [prefix substringToIndex:compareLength]; - NSString *sizedNumber = [number substringToIndex:compareLength]; - if ([sizedNumber isEqualToString:sizedPrefix]) { - [possibleCardTypes addObject:cardType]; - break; - } - } - } - return [possibleCardTypes allObjects]; -} - -#pragma mark - Instance methods - -- (BOOL)validCvv:(NSString *)cvv { - if (cvv.length != self.validCvvLength) { - return NO; - } - return ([cvv rangeOfCharacterFromSet:kInvalidCvvCharacterSet].location == NSNotFound); -} - -- (NSString *)description { - return [NSString stringWithFormat:@"BTUICardType %@", self.brand]; -} - -#pragma mark - Immutable singletons - -+ (NSUInteger)maxNumberLength { - static dispatch_once_t p = 0; - static NSUInteger _maxNumberLength = 0; - dispatch_once(&p, ^{ - for (BTUICardType *t in [self allCards]) { - _maxNumberLength = MAX(_maxNumberLength, t.maxNumberLength); - } - }); - return _maxNumberLength; -} - -+ (NSArray *)allCards -{ - static dispatch_once_t p = 0; - static NSArray *_allCards = nil; - - dispatch_once(&p, ^{ - - BTUICardType *visa = [[BTUICardType alloc] initWithBrand:BTUILocalizedString(CARD_TYPE_VISA) prefixes:@[@"4"]]; - BTUICardType *mastercard = [[BTUICardType alloc] initWithBrand:BTUILocalizedString(CARD_TYPE_MASTER_CARD) - prefixes:@[@"51", @"52", @"53", @"54", @"55"]]; - BTUICardType *discover = [[BTUICardType alloc] initWithBrand:BTUILocalizedString(CARD_TYPE_DISCOVER) prefixes:@[@"6011", @"65", @"644", @"645", @"646", @"647", @"648", @"649", @"622"]]; - BTUICardType *jcb = [[BTUICardType alloc] initWithBrand:BTUILocalizedString(CARD_TYPE_JCB) prefixes:@[@"35"]]; - - BTUICardType *amex = [[BTUICardType alloc] initWithBrand:BTUILocalizedString(CARD_TYPE_AMERICAN_EXPRESS) - prefixes:@[@"34", @"37"] - validNumberLengths:[NSIndexSet indexSetWithIndex:15] - validCvvLength:4 - formatSpaces:@[@4, @10]]; - - BTUICardType *dinersClub = [[BTUICardType alloc] initWithBrand:BTUILocalizedString(CARD_TYPE_DINERS_CLUB) - prefixes:@[@"36", @"38", @"300", @"301", @"302", @"303", @"304", @"305"] - validNumberLengths:[NSIndexSet indexSetWithIndex:14] - validCvvLength:3 - formatSpaces:nil]; - - BTUICardType *maestro = [[BTUICardType alloc] initWithBrand:BTUILocalizedString(CARD_TYPE_MAESTRO) - prefixes:@[@"5018", @"5020", @"5038", @"6304", @"6759", @"6761", @"6762", @"6763"] - validNumberLengths:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(12, 8)] - validCvvLength:3 - formatSpaces:nil]; - - BTUICardType *unionPay = [[BTUICardType alloc] initWithBrand:BTUILocalizedString(CARD_TYPE_UNION_PAY) - prefixes:@[@"62"] - validNumberLengths:[NSIndexSet indexSetWithIndexesInRange:NSMakeRange(16, 4)] - validCvvLength:3 - formatSpaces:nil]; - - _allCards = @[visa, mastercard, discover, amex, dinersClub, jcb, mastercard, maestro, unionPay]; - }); - - // returns the same object each time - return _allCards; -} - -+ (NSDictionary *)cardsByBrand { - - static dispatch_once_t p = 0; - static NSDictionary *_cardsByBrand = nil; - - dispatch_once(&p, ^{ - NSMutableDictionary *d = [NSMutableDictionary dictionary]; - for (BTUICardType *cardType in [self allCards]) { - d[cardType.brand] = cardType; - } - _cardsByBrand = d; - }); - return _cardsByBrand; -} - -#pragma mark - Formatting - -- (NSAttributedString *)formatNumber:(NSString *)input kerning:(CGFloat)kerning{ - - input = [BTUIUtil stripNonDigits:input]; - - NSMutableAttributedString *result = [[NSMutableAttributedString alloc] initWithString:input]; - - if (input.length > self.maxNumberLength) { - return result; - } - - for (NSNumber *indexNumber in self.formatSpaces) { - NSUInteger index = [indexNumber unsignedIntegerValue]; - if (index >= result.length) { - break; - } - [result setAttributes:@{NSKernAttributeName: @(kerning)} range:NSMakeRange(index-1, 1)]; - } - return result; -} - -- (NSAttributedString *)formatNumber:(NSString *)input { - return [self formatNumber:input kerning:8.0f]; -} - -#pragma mark - Validation - -- (BOOL)validAndNecessarilyCompleteNumber:(NSString *)number { - return (number.length == self.validNumberLengths.lastIndex && [BTUIUtil luhnValid:number]); -} - -- (BOOL)validNumber:(NSString *)number { - return ([self completeNumber:number] && [BTUIUtil luhnValid:number]); -} - -- (BOOL)completeNumber:(NSString *)number { - return [self.validNumberLengths containsIndex:number.length]; -} - - - -@end diff --git a/Pods/Braintree/Braintree/UI/Models/BTUIUtil.h b/Pods/Braintree/Braintree/UI/Models/BTUIUtil.h deleted file mode 100644 index e644f96..0000000 --- a/Pods/Braintree/Braintree/UI/Models/BTUIUtil.h +++ /dev/null @@ -1,21 +0,0 @@ -#import - -@interface BTUIUtil : NSObject - -+ (BOOL)luhnValid:(NSString *)cardNumber; - -/// Strips non-digit characters from a string. -/// -/// @param input The string to strip. -/// -/// @return The string stripped of non-digit characters, or `nil` if `input` is -/// `nil` -+ (NSString *)stripNonDigits:(NSString *)input; - -+ (NSString *)stripNonExpiry:(NSString *)input; - -@end - -@interface UIViewController (BTUI_visibleViewController) -- (UIViewController *)BTUI_visibleViewController; -@end diff --git a/Pods/Braintree/Braintree/UI/Models/BTUIUtil.m b/Pods/Braintree/Braintree/UI/Models/BTUIUtil.m deleted file mode 100644 index c367849..0000000 --- a/Pods/Braintree/Braintree/UI/Models/BTUIUtil.m +++ /dev/null @@ -1,66 +0,0 @@ -#import "BTUIUtil.h" - -@implementation BTUIUtil - -#pragma mark - Class Method Utils - -+ (BOOL)luhnValid:(NSString *)cardNumber { - // http://rosettacode.org/wiki/Luhn_test_of_credit_card_numbers#Objective-C - const char *digitChars = [cardNumber UTF8String]; - BOOL isOdd = YES; - NSInteger oddSum = 0; - NSInteger evenSum = 0; - for (NSInteger i = [cardNumber length] - 1; i >= 0; i--) { - NSInteger digit = digitChars[i] - '0'; - if (isOdd) { - oddSum += digit; - } else { - evenSum += digit/5 + (2*digit) % 10; - } - isOdd = !isOdd; - } - - return ((oddSum + evenSum) % 10 == 0); -} - -+ (NSString *)stripNonDigits:(NSString *)input { - return [self stripPattern:@"[^0-9]" input:input]; -} - -+ (NSString *)stripNonExpiry:(NSString *)input { - return [self stripPattern:@"[^0-9/]" input:input]; -} - -+ (NSString *)stripPattern:(NSString *)pattern input:(NSString *)input { - if (!input) return nil; - - NSError *error; - NSRegularExpression *re = [NSRegularExpression regularExpressionWithPattern:pattern - options:0 - error:&error]; - - return [re stringByReplacingMatchesInString:input - options:0 - range:NSMakeRange(0, input.length) - withTemplate:@""]; -} - -@end - -@implementation UIViewController (BTUI_visibleViewController) - -- (UIViewController *)BTUI_visibleViewController { - if ([self isKindOfClass:[UINavigationController class]]) { - // Do not use [UINavigationController visibleViewController] because it could be BeingDismissed - return [[(UINavigationController *)self topViewController] BTUI_visibleViewController]; - } - if ([self isKindOfClass:[UITabBarController class]]) { - return [[(UITabBarController *)self selectedViewController] BTUI_visibleViewController]; - } - if (self.presentedViewController == nil || self.presentedViewController.isBeingDismissed) { - return self; - } - return [self.presentedViewController BTUI_visibleViewController]; -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Theme/BTUI.h b/Pods/Braintree/Braintree/UI/Theme/BTUI.h deleted file mode 100644 index 8aeb2fb..0000000 --- a/Pods/Braintree/Braintree/UI/Theme/BTUI.h +++ /dev/null @@ -1,102 +0,0 @@ -#import - -#import "BTUIPaymentMethodType.h" -#import "BTUIVectorArtView.h" - -/// BTUI represents a visual theme and can be applied to any `BTUIThemedView`. -@interface BTUI : NSObject - -/// Returns a default Braintree theme. -/// -/// @return the default Braintree theme. -+ (BTUI *)braintreeTheme; - -#pragma mark - Palette - -- (UIColor *)idealGray; - -#pragma mark - Colors - -// Tint color if none is set. Defaults to nil. -- (UIColor *)defaultTintColor; - -- (UIColor *)viewBackgroundColor; -- (UIColor *)callToActionColor; -- (UIColor *)callToActionColorHighlighted; -- (UIColor *)disabledButtonColor; - -- (UIColor *)titleColor; -- (UIColor *)detailColor; -- (UIColor *)borderColor; - -- (UIColor *)textFieldTextColor; -- (UIColor *)textFieldPlaceholderColor; - -- (UIColor *)sectionHeaderTextColor; -- (UIColor *)textFieldFloatLabelTextColor; - -- (UIColor *)cardHintBorderColor; - -- (UIColor *)errorBackgroundColor; -- (UIColor *)errorForegroundColor; - -#pragma mark Adjustments - -- (CGFloat) highlightedBrightnessAdjustment; - -#pragma mark PayPal Colors - -- (UIColor *)payBlue; -- (UIColor *)palBlue; -- (UIColor *)payPalButtonBlue; -- (UIColor *)payPalButtonActiveBlue; - -#pragma mark Venmo Color - -- (UIColor *)venmoPrimaryBlue; - -#pragma mark Coinbase Color - -- (UIColor *)coinbasePrimaryBlue; - -#pragma mark Typography - -- (UIFont *)controlFont; -- (UIFont *)controlTitleFont; -- (UIFont *)controlDetailFont; -- (UIFont *)textFieldFont; -- (UIFont *)textFieldFloatLabelFont; -- (UIFont *)sectionHeaderFont; - -#pragma mark Attributes - -- (NSDictionary *)textFieldTextAttributes; -- (NSDictionary *)textFieldPlaceholderAttributes; - -#pragma mark Visuals - -- (CGFloat)borderWidth; -- (CGFloat)cornerRadius; -- (CGFloat)formattedEntryKerning; -- (CGFloat)horizontalMargin; -- (CGFloat)paymentButtonMinHeight; -- (CGFloat)paymentButtonMaxHeight; -- (CGFloat)paymentButtonWordMarkHeight DEPRECATED_ATTRIBUTE; - -#pragma mark Transitions - -- (CGFloat)quickTransitionDuration; -- (CGFloat)transitionDuration; -- (CGFloat)minimumVisibilityTime; - - - -#pragma mark Icons - -- (BTUIVectorArtView *)vectorArtViewForPaymentMethodType:(BTUIPaymentMethodType)type; - -#pragma mark Utilities - -+ (UIActivityIndicatorViewStyle)activityIndicatorViewStyleForBarTintColor:(UIColor *)color; - -@end diff --git a/Pods/Braintree/Braintree/UI/Theme/BTUI.m b/Pods/Braintree/Braintree/UI/Theme/BTUI.m deleted file mode 100644 index 0fb5e1e..0000000 --- a/Pods/Braintree/Braintree/UI/Theme/BTUI.m +++ /dev/null @@ -1,254 +0,0 @@ -#import "BTUI.h" -#import "BTUIUtil.h" -#import "UIColor+BTUI.h" - -#import "BTUIMasterCardVectorArtView.h" -#import "BTUIJCBVectorArtView.h" -#import "BTUIMaestroVectorArtView.h" -#import "BTUIVisaVectorArtView.h" -#import "BTUIDiscoverVectorArtView.h" -#import "BTUIUnknownCardVectorArtView.h" -#import "BTUIDinersClubVectorArtView.h" -#import "BTUIAmExVectorArtView.h" -#import "BTUIPayPalMonogramCardView.h" -#import "BTUICoinbaseMonogramCardView.h" - -@implementation BTUI - -+ (BTUI *)braintreeTheme { - static BTUI *_sharedBraintreeTheme; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - _sharedBraintreeTheme = [[BTUI alloc] init]; - }); - return _sharedBraintreeTheme; -} - -- (UIColor *)idealGray { - return [UIColor bt_colorWithBytesR:128 G:128 B:128]; -} - -- (UIColor *)viewBackgroundColor { - return [UIColor bt_colorFromHex:@"f3f4f6" alpha:1.0f]; -} - -- (UIColor *)callToActionColor { - return [UIColor bt_colorWithBytesR:7 G:158 B:222]; -} - -- (UIColor *)callToActionColorHighlighted { - return [UIColor colorWithRed:0.375 green:0.635 blue:0.984 alpha:1.000]; -} - -- (UIColor *)disabledButtonColor { - return [UIColor bt_colorFromHex:@"#BCBFC4" alpha:1.0f]; -} - -- (UIColor *)titleColor { - return [UIColor bt_colorWithBytesR:46 G:51 B:58]; -} - -- (UIColor *)detailColor { - return [UIColor bt_colorWithBytesR:98 G:102 B:105]; -} - -- (UIColor *)borderColor { - return [UIColor bt_colorWithBytesR:216 G:216 B:216]; -} - -- (UIColor *)textFieldTextColor { - return [UIColor bt_colorWithBytesR:26 G:26 B:26]; -} - -- (UIColor *)textFieldPlaceholderColor { - return [self idealGray]; -} - -- (UIColor *)sectionHeaderTextColor { - return [self idealGray]; -} - -- (UIColor *)textFieldFloatLabelTextColor { - return [self sectionHeaderTextColor]; -} - -- (UIColor *)defaultTintColor { - return [self palBlue]; -} - -- (UIColor *)cardHintBorderColor { - return [UIColor bt_colorWithBytesR:0 G:0 B:0 A:20]; -} - -- (UIColor *)errorBackgroundColor { - return [UIColor bt_colorWithBytesR:250 G:229 B:232]; -} - -- (UIColor *)errorForegroundColor { - return [UIColor bt_colorWithBytesR:208 G:2 B:27]; -} - -#pragma mark PayPal Colors - -- (UIColor *)payBlue { - return [UIColor bt_colorFromHex:@"003087" alpha:1.0f]; -} - -- (UIColor *)palBlue { - return [UIColor bt_colorFromHex:@"009CDE" alpha:1.0f]; -} - -- (UIColor *)payPalButtonBlue { - return [UIColor bt_colorWithBytesR:12 G:141 B:196]; -} - -- (UIColor *)payPalButtonActiveBlue { - return [UIColor bt_colorWithBytesR:1 G:156 B:222]; -} - -#pragma mark Venmo Color - -- (UIColor *)venmoPrimaryBlue { - return [UIColor bt_colorFromHex:@"3D95CE" alpha:1.0f]; -} - -#pragma mark Coinbase Color - -- (UIColor *)coinbasePrimaryBlue { - return [UIColor colorWithRed: 0.053 green: 0.433 blue: 0.7 alpha: 1]; -} - -#pragma mark Adjustments - -- (CGFloat)highlightedBrightnessAdjustment { - return 0.6; -} - -#pragma mark - Appearance - -- (CGFloat)cornerRadius { - return 4.0f; -} - -- (CGFloat)borderWidth { - return 0.5f; -} - -- (CGFloat)formattedEntryKerning { - return 8.0f; -} - -- (CGFloat)horizontalMargin { - return 17.0f; -} - -- (CGFloat)paymentButtonMinHeight { - return 44.0f; -} - -- (CGFloat)paymentButtonMaxHeight { - return 60.0f; -} - -- (CGFloat)paymentButtonWordMarkHeight { - return 18.0f; -} - - -#pragma mark - Type - -- (UIFont *)controlFont { - return [UIFont fontWithName:@"HelveticaNeue-Light" size:14.0f]; -} - -- (UIFont *)controlTitleFont { - return [UIFont fontWithName:@"HelveticaNeue-Bold" size:17.0f]; -} - -- (UIFont *)controlDetailFont { - return [UIFont fontWithName:@"HelveticaNeue" size:17.0f]; -} - -- (UIFont *)textFieldFont { - return [UIFont fontWithName:@"HelveticaNeue" size:17.0f]; -} - -- (UIFont *)textFieldFloatLabelFont { - return [UIFont fontWithName:@"HelveticaNeue" size:12.0f]; -} - -- (UIFont *)sectionHeaderFont { - return [UIFont fontWithName:@"HelveticaNeue" size:14.0f]; -} - -#pragma mark - String Attributes - -- (NSDictionary *)textFieldTextAttributes { - return @{NSFontAttributeName: self.textFieldFont, - NSForegroundColorAttributeName: self.textFieldTextColor}; -} - -- (NSDictionary *)textFieldPlaceholderAttributes { - return @{NSFontAttributeName: self.textFieldFont, - NSForegroundColorAttributeName: self.textFieldPlaceholderColor}; -} - -#pragma mark Transitions - -- (CGFloat)quickTransitionDuration { - return 0.1f; -} - -- (CGFloat)transitionDuration { - return 0.2f; -} - -- (CGFloat)minimumVisibilityTime { - return 0.5f; -} - -#pragma mark Icons - -- (BTUIVectorArtView *)vectorArtViewForPaymentMethodType:(BTUIPaymentMethodType)type { - switch (type) { - case BTUIPaymentMethodTypeVisa: - return [BTUIVisaVectorArtView new]; - case BTUIPaymentMethodTypeMasterCard: - return [BTUIMasterCardVectorArtView new]; - case BTUIPaymentMethodTypeCoinbase: - return [BTUICoinbaseMonogramCardView new]; - case BTUIPaymentMethodTypePayPal: - return [BTUIPayPalMonogramCardView new]; - case BTUIPaymentMethodTypeDinersClub: - return [BTUIDinersClubVectorArtView new]; - case BTUIPaymentMethodTypeJCB: - return [BTUIJCBVectorArtView new]; - case BTUIPaymentMethodTypeMaestro: - return [BTUIMaestroVectorArtView new]; - case BTUIPaymentMethodTypeDiscover: - return [BTUIDiscoverVectorArtView new]; - case BTUIPaymentMethodTypeUKMaestro: - return [BTUIMaestroVectorArtView new]; - case BTUIPaymentMethodTypeAMEX: - return [BTUIAmExVectorArtView new]; - case BTUIPaymentMethodTypeSolo: - case BTUIPaymentMethodTypeLaser: - case BTUIPaymentMethodTypeSwitch: - case BTUIPaymentMethodTypeUnionPay: - case BTUIPaymentMethodTypeUnknown: - return [BTUIUnknownCardVectorArtView new]; - } -} - -#pragma mark Utilties - -+ (UIActivityIndicatorViewStyle)activityIndicatorViewStyleForBarTintColor:(UIColor *)color { - CGFloat r, g, b; - [color getRed:&r green:&g blue:&b alpha:NULL]; - CGFloat perceivedBrightnessBasedOnWeightedDistanceIn3DRGBSpace = sqrtf(r * r * .241 + g * g * .691 + b * b * .068); - - return perceivedBrightnessBasedOnWeightedDistanceIn3DRGBSpace > 0.5 ? UIActivityIndicatorViewStyleGray : UIActivityIndicatorViewStyleWhite; -} - -@end - diff --git a/Pods/Braintree/Braintree/UI/Theme/UIColor+BTUI.h b/Pods/Braintree/Braintree/UI/Theme/UIColor+BTUI.h deleted file mode 100644 index 427fb6e..0000000 --- a/Pods/Braintree/Braintree/UI/Theme/UIColor+BTUI.h +++ /dev/null @@ -1,11 +0,0 @@ -#import - -@interface UIColor (BTUI) - -+ (instancetype)bt_colorWithBytesR:(NSInteger)r G:(NSInteger)g B:(NSInteger)b A:(NSInteger)a; -+ (instancetype)bt_colorWithBytesR:(NSInteger)r G:(NSInteger)g B:(NSInteger)b; -+ (instancetype)bt_colorFromHex:(NSString *)hex alpha:(CGFloat)alpha; - -- (instancetype)bt_adjustedBrightness:(CGFloat)adjustment; - -@end diff --git a/Pods/Braintree/Braintree/UI/Theme/UIColor+BTUI.m b/Pods/Braintree/Braintree/UI/Theme/UIColor+BTUI.m deleted file mode 100644 index df64f4f..0000000 --- a/Pods/Braintree/Braintree/UI/Theme/UIColor+BTUI.m +++ /dev/null @@ -1,34 +0,0 @@ -#import "UIColor+BTUI.h" - -@implementation UIColor (BTUI) - -+ (instancetype)bt_colorWithBytesR:(NSInteger)r G:(NSInteger)g B:(NSInteger)b A:(NSInteger)a { - return [[self class] colorWithRed:r/255.0f green:g/255.0f blue:b/255.0f alpha:a/255.0f]; -} - -+ (instancetype)bt_colorWithBytesR:(NSInteger)r G:(NSInteger)g B:(NSInteger)b { - return [[self class] bt_colorWithBytesR:r G:g B:b A:255.0f]; -} - -- (instancetype)bt_adjustedBrightness:(CGFloat)adjustment { - CGFloat h, s, b, a; - if ([self getHue:&h saturation:&s brightness:&b alpha:&a]) { - CGFloat newB = MAX(0.0f, MIN(1.0f, adjustment * b)); - return [[self class] colorWithHue:h saturation:s brightness:newB alpha:a]; - } else { - return nil; - } -} - -+ (instancetype)bt_colorFromHex:(NSString *)hex alpha:(CGFloat)alpha { - uint value = 0; - NSScanner *scanner = [NSScanner scannerWithString:hex]; - [scanner setCharactersToBeSkipped:[NSCharacterSet characterSetWithCharactersInString:@"#"]]; - [scanner scanHexInt:&value]; - return [UIColor colorWithRed:((value >> 16) & 255) / 255.0f - green:((value >> 8) & 255) / 255.0f - blue:(value & 255) / 255.0f - alpha:alpha]; -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Apple Pay/BTMockApplePayPaymentAuthorizationView.h b/Pods/Braintree/Braintree/UI/Views/Apple Pay/BTMockApplePayPaymentAuthorizationView.h deleted file mode 100644 index 750a593..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Apple Pay/BTMockApplePayPaymentAuthorizationView.h +++ /dev/null @@ -1,18 +0,0 @@ -#if BT_ENABLE_APPLE_PAY -#import - -@protocol BTMockApplePayPaymentAuthorizationViewDelegate; - -@interface BTMockApplePayPaymentAuthorizationView : UIView - -- (instancetype)initWithDelegate:(id)delegate NS_DESIGNATED_INITIALIZER; - -@end - -@protocol BTMockApplePayPaymentAuthorizationViewDelegate - -- (void)mockApplePayPaymentAuthorizationViewDidSucceed:(BTMockApplePayPaymentAuthorizationView *)view; -- (void)mockApplePayPaymentAuthorizationViewDidCancel:(BTMockApplePayPaymentAuthorizationView *)view; - -@end -#endif diff --git a/Pods/Braintree/Braintree/UI/Views/Apple Pay/BTMockApplePayPaymentAuthorizationView.m b/Pods/Braintree/Braintree/UI/Views/Apple Pay/BTMockApplePayPaymentAuthorizationView.m deleted file mode 100644 index 6705f51..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Apple Pay/BTMockApplePayPaymentAuthorizationView.m +++ /dev/null @@ -1,109 +0,0 @@ -#if BT_ENABLE_APPLE_PAY -#import "BTMockApplePayPaymentAuthorizationView.h" - -@interface BTMockApplePayPaymentAuthorizationView () -@property (nonatomic, weak) id delegate; -@property (nonatomic, strong) UITableView *tableView; - -@end - -NSString *const BTMockApplePayPaymentAuthorizationControlCell = @"BTMockApplePayPaymentAuthorizationControlCell"; - -@implementation BTMockApplePayPaymentAuthorizationView - -- (instancetype)initWithCoder:(nonnull __unused NSCoder *)aDecoder { - return [self initWithDelegate:nil]; -} - -- (nonnull instancetype)initWithFrame:(__unused CGRect)frame { - return [self initWithDelegate:nil]; -} - -- (instancetype)initWithDelegate:(id)delegate { - self = [super initWithFrame:CGRectNull]; - if (self) { - self.delegate = delegate; - - self.tableView = [[UITableView alloc] initWithFrame:self.frame - style:UITableViewStyleGrouped]; - self.tableView.translatesAutoresizingMaskIntoConstraints = NO; - [self.tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:BTMockApplePayPaymentAuthorizationControlCell]; - self.tableView.dataSource = self; - self.tableView.delegate = self; - - [self addSubview:self.tableView]; - - NSDictionary *views = @{ @"tableView": self.tableView }; - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[tableView]|" - options:0 - metrics:nil - views:views]]; - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[tableView]|" - options:0 - metrics:nil - views:views]]; - } - return self; -} - -#pragma mark Table View Data Source - -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { - NSParameterAssert(indexPath.section == 0); - NSParameterAssert(indexPath.row < 2); - - UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:BTMockApplePayPaymentAuthorizationControlCell forIndexPath:indexPath]; - - if (!cell) { - cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:BTMockApplePayPaymentAuthorizationControlCell]; - } - - cell.selectionStyle = UITableViewCellSelectionStyleBlue; - - switch (indexPath.row) { - case 0: - cell.textLabel.text = @"💳 Succeed (4111111111111111)"; - break; - case 1: - cell.textLabel.text = @"⛔️ Cancel"; - break; - - default: - break; - } - - return cell; -} - -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { - NSParameterAssert(indexPath.section == 0); - [tableView deselectRowAtIndexPath:indexPath animated:YES]; - - switch (indexPath.row) { - case 0: - [self.delegate mockApplePayPaymentAuthorizationViewDidSucceed:self]; - break; - case 1: - [self.delegate mockApplePayPaymentAuthorizationViewDidCancel:self]; - default: - break; - } -} - -- (NSString *)tableView:(__unused UITableView *)tableView titleForHeaderInSection:(__unused NSInteger)section { - NSParameterAssert(section == 0); - - return @"Apple Pay - Mock Mode"; -} - -- (NSInteger)tableView:(__unused UITableView *)tableView numberOfRowsInSection:(__unused NSInteger)section { - NSParameterAssert(section == 0); - return 2; -} - -- (NSInteger)numberOfSectionsInTableView:(__unused UITableView *)tableView { - return 1; -} - -@end -#endif diff --git a/Pods/Braintree/Braintree/UI/Views/Apple Pay/BTMockApplePayPaymentAuthorizationViewController.h b/Pods/Braintree/Braintree/UI/Views/Apple Pay/BTMockApplePayPaymentAuthorizationViewController.h deleted file mode 100644 index 4fc4ccf..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Apple Pay/BTMockApplePayPaymentAuthorizationViewController.h +++ /dev/null @@ -1,26 +0,0 @@ -#if BT_ENABLE_APPLE_PAY -#import -@import PassKit; - -@protocol BTMockApplePayPaymentAuthorizationViewControllerDelegate; - -@interface BTMockApplePayPaymentAuthorizationViewController : UIViewController - -@property (nonatomic, weak) id delegate; - -- (instancetype)initWithPaymentRequest:(PKPaymentRequest *)request NS_DESIGNATED_INITIALIZER; - -+ (BOOL)canMakePayments; - -@end - -@protocol BTMockApplePayPaymentAuthorizationViewControllerDelegate - -- (void)mockApplePayPaymentAuthorizationViewController:(BTMockApplePayPaymentAuthorizationViewController *)viewController - didAuthorizePayment:(PKPayment *)payment - completion:(void (^)(PKPaymentAuthorizationStatus status))completion; - -- (void)mockApplePayPaymentAuthorizationViewControllerDidFinish:(BTMockApplePayPaymentAuthorizationViewController *)viewController; - -@end -#endif diff --git a/Pods/Braintree/Braintree/UI/Views/Apple Pay/BTMockApplePayPaymentAuthorizationViewController.m b/Pods/Braintree/Braintree/UI/Views/Apple Pay/BTMockApplePayPaymentAuthorizationViewController.m deleted file mode 100644 index 7090680..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Apple Pay/BTMockApplePayPaymentAuthorizationViewController.m +++ /dev/null @@ -1,79 +0,0 @@ -#if BT_ENABLE_APPLE_PAY -#import "BTMockApplePayPaymentAuthorizationViewController.h" - -#import "BTMockApplePayPaymentAuthorizationView.h" -#import "BTLogger_Internal.h" - -@interface BTMockApplePayPaymentAuthorizationViewController () - -- (instancetype)initWithNibName:(nullable NSString *)nibNameOrNil bundle:(nullable NSBundle *)nibBundleOrNil NS_DESIGNATED_INITIALIZER; -- (instancetype)initWithCoder:(NSCoder *)aDecoder NS_DESIGNATED_INITIALIZER; - -@end - -@implementation BTMockApplePayPaymentAuthorizationViewController - -- (instancetype)initWithPaymentRequest:(PKPaymentRequest *)request { - self = [super initWithNibName:nil bundle:nil]; - if (self) { - [[BTLogger sharedLogger] debug:@"Initializing BTMockApplePayPaymentAuthorizationViewController with PKRequest merchantIdentifier: %@; items: %@", request.merchantIdentifier, request.paymentSummaryItems ]; - } - return self; -} - -- (instancetype)initWithCoder:(__unused NSCoder *)aDecoder { - return [super initWithCoder:aDecoder]; -} - -- (instancetype)initWithNibName:(nullable NSString *)nibNameOrNil bundle:(nullable NSBundle *)nibBundleOrNil { - return [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; -} - -- (void)viewDidLoad -{ - [super viewDidLoad]; - - BTMockApplePayPaymentAuthorizationView *authorizationView = [[BTMockApplePayPaymentAuthorizationView alloc] initWithDelegate:self]; - authorizationView.translatesAutoresizingMaskIntoConstraints = NO; - - [self.view addSubview:authorizationView]; - - NSDictionary *views = @{ @"authorizationView": authorizationView }; - [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[authorizationView]|" - options:0 - metrics:nil - views:views]]; - [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[authorizationView]|" - options:0 - metrics:nil - views:views]]; -} - -+ (BOOL)canMakePayments { - NSOperatingSystemVersion v; - v.majorVersion = 8; - v.minorVersion = 1; - v.patchVersion = 0; - return [[NSProcessInfo processInfo] respondsToSelector:@selector(operatingSystemVersion)] && [[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:v]; -} - -- (void)cancel:(__unused id)sender { - [self.delegate mockApplePayPaymentAuthorizationViewControllerDidFinish:self]; -} - -#pragma mark Mock Payment Authorization View Delegate - -- (void)mockApplePayPaymentAuthorizationViewDidCancel:(__unused BTMockApplePayPaymentAuthorizationView *)view { - [self.delegate mockApplePayPaymentAuthorizationViewControllerDidFinish:self]; -} - -- (void)mockApplePayPaymentAuthorizationViewDidSucceed:(__unused BTMockApplePayPaymentAuthorizationView *)view { - [self.delegate mockApplePayPaymentAuthorizationViewController:self - didAuthorizePayment:nil - completion:^(__unused PKPaymentAuthorizationStatus status) { - [self.delegate mockApplePayPaymentAuthorizationViewControllerDidFinish:self]; - }]; -} - -@end -#endif diff --git a/Pods/Braintree/Braintree/UI/Views/BTUIViewUtil.h b/Pods/Braintree/Braintree/UI/Views/BTUIViewUtil.h deleted file mode 100644 index 79e20d0..0000000 --- a/Pods/Braintree/Braintree/UI/Views/BTUIViewUtil.h +++ /dev/null @@ -1,14 +0,0 @@ -#import - -#import "BTUICardType.h" -#import "BTUIPaymentMethodType.h" - -/// Utilities used by other views -@interface BTUIViewUtil : NSObject - -+ (BTUIPaymentMethodType)paymentMethodTypeForCardType:(BTUICardType *)cardType; -+ (NSString *)nameForPaymentMethodType:(BTUIPaymentMethodType)paymentMethodType; - -+ (void)vibrate; - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/BTUIViewUtil.m b/Pods/Braintree/Braintree/UI/Views/BTUIViewUtil.m deleted file mode 100644 index d98f757..0000000 --- a/Pods/Braintree/Braintree/UI/Views/BTUIViewUtil.m +++ /dev/null @@ -1,72 +0,0 @@ -#import "BTUIViewUtil.h" -@import AudioToolbox; - -@implementation BTUIViewUtil - -+ (BTUIPaymentMethodType)paymentMethodTypeForCardType:(BTUICardType *)cardType { - - if (cardType == nil) { - return BTUIPaymentMethodTypeUnknown; - } - - if ([cardType.brand isEqualToString:BTUILocalizedString(CARD_TYPE_AMERICAN_EXPRESS)]) { - return BTUIPaymentMethodTypeAMEX; - } else if ([cardType.brand isEqualToString:BTUILocalizedString(CARD_TYPE_VISA)]) { - return BTUIPaymentMethodTypeVisa; - } else if ([cardType.brand isEqualToString:BTUILocalizedString(CARD_TYPE_MASTER_CARD)]) { - return BTUIPaymentMethodTypeMasterCard; - } else if ([cardType.brand isEqualToString:BTUILocalizedString(CARD_TYPE_DISCOVER)]) { - return BTUIPaymentMethodTypeDiscover; - } else if ([cardType.brand isEqualToString:BTUILocalizedString(CARD_TYPE_JCB)]) { - return BTUIPaymentMethodTypeJCB; - } else if ([cardType.brand isEqualToString:BTUILocalizedString(CARD_TYPE_MAESTRO)]) { - return BTUIPaymentMethodTypeMaestro; - } else if ([cardType.brand isEqualToString:BTUILocalizedString(CARD_TYPE_DINERS_CLUB)]) { - return BTUIPaymentMethodTypeDinersClub; - } else { - return BTUIPaymentMethodTypeUnknown; - } -} - - -+ (NSString *)nameForPaymentMethodType:(BTUIPaymentMethodType)paymentMethodType { - switch (paymentMethodType) { - case BTUIPaymentMethodTypeUnknown: - return @"Card"; - case BTUIPaymentMethodTypeAMEX: - return BTUILocalizedString(CARD_TYPE_AMERICAN_EXPRESS); - case BTUIPaymentMethodTypeDinersClub: - return BTUILocalizedString(CARD_TYPE_DINERS_CLUB); - case BTUIPaymentMethodTypeDiscover: - return BTUILocalizedString(CARD_TYPE_DISCOVER); - case BTUIPaymentMethodTypeMasterCard: - return BTUILocalizedString(CARD_TYPE_MASTER_CARD); - case BTUIPaymentMethodTypeVisa: - return BTUILocalizedString(CARD_TYPE_VISA); - case BTUIPaymentMethodTypeJCB: - return BTUILocalizedString(CARD_TYPE_JCB); - case BTUIPaymentMethodTypeLaser: - return BTUILocalizedString(CARD_TYPE_LASER); - case BTUIPaymentMethodTypeMaestro: - return BTUILocalizedString(CARD_TYPE_MAESTRO); - case BTUIPaymentMethodTypeUnionPay: - return BTUILocalizedString(CARD_TYPE_UNION_PAY); - case BTUIPaymentMethodTypeSolo: - return BTUILocalizedString(CARD_TYPE_SOLO); - case BTUIPaymentMethodTypeSwitch: - return BTUILocalizedString(CARD_TYPE_SWITCH); - case BTUIPaymentMethodTypeUKMaestro: - return BTUILocalizedString(CARD_TYPE_MAESTRO); - case BTUIPaymentMethodTypePayPal: - return BTUILocalizedString(PAYPAL_CARD_BRAND); - case BTUIPaymentMethodTypeCoinbase: - return BTUILocalizedString(PAYMENT_METHOD_TYPE_COINBASE); - } - -} - -+ (void)vibrate { - AudioServicesPlayAlertSound(kSystemSoundID_Vibrate); -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Collection Views/BTUIHorizontalButtonStackCollectionViewFlowLayout.h b/Pods/Braintree/Braintree/UI/Views/Collection Views/BTUIHorizontalButtonStackCollectionViewFlowLayout.h deleted file mode 100644 index 509f3be..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Collection Views/BTUIHorizontalButtonStackCollectionViewFlowLayout.h +++ /dev/null @@ -1,5 +0,0 @@ -#import - -@interface BTUIHorizontalButtonStackCollectionViewFlowLayout : UICollectionViewFlowLayout - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Collection Views/BTUIHorizontalButtonStackCollectionViewFlowLayout.m b/Pods/Braintree/Braintree/UI/Views/Collection Views/BTUIHorizontalButtonStackCollectionViewFlowLayout.m deleted file mode 100644 index c55b250..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Collection Views/BTUIHorizontalButtonStackCollectionViewFlowLayout.m +++ /dev/null @@ -1,52 +0,0 @@ -#import "BTUIHorizontalButtonStackCollectionViewFlowLayout.h" -#import "BTUIHorizontalButtonStackSeparatorLineView.h" - - -NSString *BTHorizontalButtonStackCollectionViewFlowLayoutLineSeparatorDecoratorViewKind = @"BTHorizontalButtonStackCollectionViewFlowLayoutLineSeparatorDecoratorViewKind"; - -@interface BTUIHorizontalButtonStackCollectionViewFlowLayout () -@end - -@implementation BTUIHorizontalButtonStackCollectionViewFlowLayout - -- (id)init { - self = [super init]; - if (self) { - [self registerClass:[BTUIHorizontalButtonStackSeparatorLineView class] forDecorationViewOfKind:BTHorizontalButtonStackCollectionViewFlowLayoutLineSeparatorDecoratorViewKind]; - } - return self; -} - -- (void)prepareLayout { - [super prepareLayout]; - - NSParameterAssert(self.collectionView.numberOfSections == 1); - NSInteger numberOfItems = [self.collectionView numberOfItemsInSection:0]; - CGFloat totalWidth = self.collectionView.frame.size.width; - - if (numberOfItems == 0) { - return; - } - - self.itemSize = CGSizeMake(totalWidth/numberOfItems, self.collectionView.frame.size.height); -} - -- (NSArray *)layoutAttributesForElementsInRect:(CGRect)rect { - NSMutableArray *layoutAttributes = [[super layoutAttributesForElementsInRect:rect] mutableCopy]; - - NSInteger numberOfItems = [self.collectionView numberOfItemsInSection:0]; - if (numberOfItems == 0) { - return layoutAttributes; - } - - for (UICollectionViewLayoutAttributes *attributes in [layoutAttributes subarrayWithRange:NSMakeRange(0, [layoutAttributes count] - 1)]) { - UICollectionViewLayoutAttributes *separatorAttributes = [UICollectionViewLayoutAttributes layoutAttributesForDecorationViewOfKind:BTHorizontalButtonStackCollectionViewFlowLayoutLineSeparatorDecoratorViewKind - withIndexPath:attributes.indexPath]; - separatorAttributes.frame = CGRectMake(attributes.frame.origin.x + attributes.frame.size.width, attributes.frame.origin.y, 1/2.0f, attributes.frame.size.height); - [layoutAttributes addObject:separatorAttributes]; - } - - return layoutAttributes; -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Collection Views/BTUIHorizontalButtonStackSeparatorLineView.h b/Pods/Braintree/Braintree/UI/Views/Collection Views/BTUIHorizontalButtonStackSeparatorLineView.h deleted file mode 100644 index 3e2c93a..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Collection Views/BTUIHorizontalButtonStackSeparatorLineView.h +++ /dev/null @@ -1,7 +0,0 @@ -#import - -#import "BTUI.h" - -@interface BTUIHorizontalButtonStackSeparatorLineView : UICollectionReusableView -@property (nonatomic, strong) BTUI *theme; -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Collection Views/BTUIHorizontalButtonStackSeparatorLineView.m b/Pods/Braintree/Braintree/UI/Views/Collection Views/BTUIHorizontalButtonStackSeparatorLineView.m deleted file mode 100644 index ae5c83a..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Collection Views/BTUIHorizontalButtonStackSeparatorLineView.m +++ /dev/null @@ -1,59 +0,0 @@ -#import "BTUIHorizontalButtonStackSeparatorLineView.h" - -@interface BTUIHorizontalButtonStackSeparatorLineView () -@property (nonatomic, strong) UIView *line; -@end - -@implementation BTUIHorizontalButtonStackSeparatorLineView - -- (id)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - self.theme = [BTUI braintreeTheme]; - self.opaque = NO; - self.backgroundColor = [UIColor clearColor]; - - self.line = [[UIView alloc] initWithFrame:CGRectZero]; - self.line.translatesAutoresizingMaskIntoConstraints = NO; - [self updateThemeAttributes]; - [self addSubview:self.line]; - } - return self; -} - -- (void)updateThemeAttributes { - self.line.backgroundColor = self.theme.borderColor; -} - -- (void)setTheme:(BTUI *)theme { - _theme = theme; - [self updateThemeAttributes]; -} - -- (void)updateConstraints { - NSDictionary *views = @{ @"line": self.line }; - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[line]|" - options:0 - metrics:nil - views:views]]; - - [self addConstraint:[NSLayoutConstraint constraintWithItem:self - attribute:NSLayoutAttributeHeight - relatedBy:NSLayoutRelationEqual - toItem:self.line - attribute:NSLayoutAttributeHeight - multiplier:2.0f - constant:0.0f]]; - - [self addConstraint:[NSLayoutConstraint constraintWithItem:self - attribute:NSLayoutAttributeCenterY - relatedBy:NSLayoutRelationEqual - toItem:self.line - attribute:NSLayoutAttributeCenterY - multiplier:1.0f - constant:0.0f]]; - - [super updateConstraints]; -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Collection Views/BTUIPaymentButtonCollectionViewCell.h b/Pods/Braintree/Braintree/UI/Views/Collection Views/BTUIPaymentButtonCollectionViewCell.h deleted file mode 100644 index d59de8d..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Collection Views/BTUIPaymentButtonCollectionViewCell.h +++ /dev/null @@ -1,5 +0,0 @@ -#import - -@interface BTUIPaymentButtonCollectionViewCell : UICollectionViewCell -@property (nonatomic, strong) UIControl *paymentButton; -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Collection Views/BTUIPaymentButtonCollectionViewCell.m b/Pods/Braintree/Braintree/UI/Views/Collection Views/BTUIPaymentButtonCollectionViewCell.m deleted file mode 100644 index 7c831db..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Collection Views/BTUIPaymentButtonCollectionViewCell.m +++ /dev/null @@ -1,62 +0,0 @@ -#import "BTUIPaymentButtonCollectionViewCell.h" - -@interface BTUIPaymentButtonCollectionViewCell () -@property (nonatomic, strong) NSMutableArray *paymentButtonConstraints; -@end - -@implementation BTUIPaymentButtonCollectionViewCell - -- (id)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - self.contentView.userInteractionEnabled = NO; - self.paymentButtonConstraints = [NSMutableArray array]; - } - return self; -} - -- (void)setPaymentButton:(UIControl *)paymentButton { - if (self.paymentButtonConstraints) { - [self removeConstraints:self.paymentButtonConstraints]; - [self.paymentButtonConstraints removeAllObjects]; - } - [self.paymentButton removeFromSuperview]; - - _paymentButton = paymentButton; - [self.contentView addSubview:paymentButton]; - - paymentButton.userInteractionEnabled = NO; - - [self setNeedsUpdateConstraints]; -} - -- (void)updateConstraints { - if (self.paymentButton) { - NSDictionary *views = @{ @"paymentButton": self.paymentButton }; - [self.paymentButtonConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[paymentButton]|" - options:0 - metrics:nil - views:views]]; - [self.paymentButtonConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[paymentButton]|" - options:0 - metrics:nil - views:views]]; - [self addConstraints:self.paymentButtonConstraints]; - } - [super updateConstraints]; -} - -- (void)setHighlighted:(BOOL)highlighted { - [super setHighlighted:highlighted]; - - [self.paymentButton setHighlighted:highlighted]; -} - -- (void)setSelected:(BOOL)selected { - [super setSelected:selected]; - - [self.paymentButton setSelected:selected]; -} - -@end - diff --git a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIFloatLabel.h b/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIFloatLabel.h deleted file mode 100644 index aa515d0..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIFloatLabel.h +++ /dev/null @@ -1,10 +0,0 @@ -#import "BTUIThemedView.h" - -@interface BTUIFloatLabel : BTUIThemedView - -@property (nonatomic, readonly, strong) UILabel *label; - -- (void)showWithAnimation:(BOOL)shouldAnimate; -- (void)hideWithAnimation:(BOOL)shouldAnimate; - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIFloatLabel.m b/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIFloatLabel.m deleted file mode 100644 index 31a9b8d..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIFloatLabel.m +++ /dev/null @@ -1,116 +0,0 @@ -#import "BTUIFloatLabel.h" - -@interface BTUIFloatLabel () -@property (nonatomic, readwrite, strong) UILabel *label; -@property (nonatomic, strong) NSArray *verticalConstraints; -@end - -@implementation BTUIFloatLabel - -- (id)init { - self = [super init]; - if (self) { - [self setupSubviews]; - } - return self; -} - -- (id)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - [self setupSubviews]; - } - return self; -} - -- (id)initWithCoder:(NSCoder *)aDecoder { - self = [super initWithCoder:aDecoder]; - if (self) { - [self setupSubviews]; - } - return self; -} - -- (void)setupSubviews { - self.label = [[UILabel alloc] init]; - self.label.translatesAutoresizingMaskIntoConstraints = NO; - self.label.font = self.theme.textFieldFloatLabelFont; - self.label.textColor = self.theme.textFieldFloatLabelTextColor; - self.label.backgroundColor = [UIColor clearColor]; - self.label.opaque = NO; - self.label.numberOfLines = 1; - self.label.adjustsFontSizeToFitWidth = YES; - [self addSubview:self.label]; - - self.verticalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[label]|" - options:0 - metrics:nil - views:[self viewBindings]]; -} - -- (void)updateConstraints { - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[label]|" - options:0 - metrics:nil - views:[self viewBindings]]]; - [self addConstraints:self.verticalConstraints]; - - [super updateConstraints]; -} - -- (void)showWithAnimation:(BOOL)shouldAnimate { - void (^animations)(void) = ^{ - self.label.alpha = 1.0f; - [self layoutIfNeeded]; - }; - - [self removeConstraints:self.verticalConstraints]; - self.verticalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[label]|" - options:0 - metrics:nil - views:[self viewBindings]]; - [self setNeedsUpdateConstraints]; - - if (shouldAnimate) { - [UIView animateWithDuration:self.theme.quickTransitionDuration - delay:0.0f - options:UIViewAnimationOptionCurveEaseOut - animations:animations - completion:nil]; - } else { - animations(); - } -} - -- (void)hideWithAnimation:(BOOL)shouldAnimate { - void (^animations)(void) = ^{ - self.label.alpha = 0.0f; - [self setNeedsUpdateConstraints]; - [self layoutIfNeeded]; - }; - - [self removeConstraints:self.verticalConstraints]; - self.verticalConstraints = @[ [NSLayoutConstraint constraintWithItem:self.label - attribute:NSLayoutAttributeTop - relatedBy:NSLayoutRelationEqual - toItem:self - attribute:NSLayoutAttributeCenterY - multiplier:1.0f - constant:0.0f] ]; - [self setNeedsUpdateConstraints]; - if (shouldAnimate) { - [UIView animateWithDuration:self.theme.quickTransitionDuration - delay:0.0f - options:UIViewAnimationOptionCurveEaseOut - animations:animations - completion:nil]; - } else { - animations(); - } -} - -- (NSDictionary *)viewBindings { - return @{ @"label": self.label }; -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIFormField.h b/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIFormField.h deleted file mode 100644 index 4ad33c9..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIFormField.h +++ /dev/null @@ -1,39 +0,0 @@ -#import -#import "BTUIThemedView.h" - -@protocol BTUIFormFieldDelegate; - -/// A form field is a UI component for entering a text value -/// -/// This is the parent class of all card form fields, -/// and handles display but not formatting, validation, or -/// relaying of events -/// -/// @see BTUIFormField() -@interface BTUIFormField : BTUIThemedView - -- (void)updateAppearance; - -@property (nonatomic, weak) id delegate; -@property (nonatomic, assign) BOOL vibrateOnInvalidInput; -@property (nonatomic, assign, readonly) BOOL valid; -@property (nonatomic, assign, readonly) BOOL entryComplete; -@property (nonatomic, assign) BOOL displayAsValid; -@property (nonatomic, assign) BOOL bottomBorder; -@property (nonatomic, assign, readwrite) BOOL backspace; - -/// The text displayed by the field -@property (nonatomic, copy) NSString *text; - -@end - - -@protocol BTUIFormFieldDelegate - -- (void)formFieldDidChange:(BTUIFormField *)formField; -- (void)formFieldDidDeleteWhileEmpty:(BTUIFormField *)formField; - -@optional -- (BOOL)formFieldShouldReturn:(BTUIFormField *)formField; - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIFormField.m b/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIFormField.m deleted file mode 100644 index 92106f9..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIFormField.m +++ /dev/null @@ -1,395 +0,0 @@ -#import "BTUIFormField_Protected.h" -#import "BTUIViewUtil.h" -#import "BTUITextField.h" -#import "BTUIFloatLabel.h" - -@import QuartzCore; - -const CGFloat formFieldTopMargin = 7; -const CGFloat formFieldLabelHeight = 15; -const CGFloat formFieldVerticalSpace = 1; -const CGFloat formFieldTextFieldHeight = 20; -const CGFloat formFieldBottomMargin = 11; - -@interface BTUIFormField () - -@property (nonatomic, strong) BTUIFloatLabel *floatLabel; -@property (nonatomic, copy) NSString *previousTextFieldText; -@property (nonatomic, strong) NSMutableArray *layoutConstraints; - -@end - -@implementation BTUIFormField - -- (instancetype)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - self.displayAsValid = YES; - BTUITextField *textField = [BTUITextField new]; - textField.editDelegate = self; - _textField = textField; - self.textField.translatesAutoresizingMaskIntoConstraints = NO; - self.textField.borderStyle = UITextBorderStyleNone; - self.textField.backgroundColor = [UIColor clearColor]; - self.textField.opaque = NO; - self.textField.adjustsFontSizeToFitWidth = YES; - self.textField.returnKeyType = UIReturnKeyNext; - - self.floatLabel = [[BTUIFloatLabel alloc] init]; - self.floatLabel.translatesAutoresizingMaskIntoConstraints = NO; - [self.floatLabel hideWithAnimation:NO]; - - self.accessoryView = [[UIView alloc] init]; - self.accessoryView.backgroundColor = [UIColor clearColor]; - self.accessoryView.hidden = YES; - - [self.textField addTarget:self action:@selector(fieldContentDidChange) forControlEvents:UIControlEventEditingChanged]; - [self.textField addTarget:self action:@selector(editingDidBegin) forControlEvents:UIControlEventEditingDidBegin]; - [self.textField addTarget:self action:@selector(editingDidEnd) forControlEvents:UIControlEventEditingDidEnd]; - - self.textField.delegate = self; - - [self addSubview:self.textField]; - [self addSubview:self.floatLabel]; - [self addSubview:self.accessoryView]; - - [self addGestureRecognizer:[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tappedField)]]; - - [self setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisVertical]; - self.opaque = NO; - - [[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]; - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(orientationChange) - name:UIDeviceOrientationDidChangeNotification - object:nil]; - } - return self; -} - -- (CGSize)intrinsicContentSize { - CGFloat height = formFieldTopMargin + formFieldLabelHeight + formFieldVerticalSpace + formFieldTextFieldHeight + formFieldBottomMargin; - return CGSizeMake(UIViewNoIntrinsicMetric, height); -} - -- (void)setAccessoryView:(UIView *)accessoryView { - _accessoryView = accessoryView; - self.accessoryView.userInteractionEnabled = NO; - self.accessoryView.translatesAutoresizingMaskIntoConstraints = NO; -} - -- (void)setDisplayAsValid:(BOOL)displayAsValid { - if (self.vibrateOnInvalidInput && self.textField.isFirstResponder && _displayAsValid && !displayAsValid) { - [BTUIViewUtil vibrate]; - } - - _displayAsValid = displayAsValid; - [self updateAppearance]; - [self setNeedsDisplay]; -} - -- (void)orientationChange { - [self setNeedsDisplay]; -} - -- (void)dealloc { - [[NSNotificationCenter defaultCenter] removeObserver:self]; -} - -#pragma mark - Validity "abstract" methods - -- (BOOL)valid { - return YES; -} - -- (BOOL)entryComplete { - NSUInteger index = [self.textField offsetFromPosition:self.textField.beginningOfDocument toPosition:self.textField.selectedTextRange.start]; - return index == self.textField.text.length && self.valid; -} - -- (BOOL)becomeFirstResponder { - return [self.textField becomeFirstResponder]; -} - -- (BOOL)resignFirstResponder { - return [super resignFirstResponder] || [self.textField resignFirstResponder]; -} - -#pragma mark - Theme - -- (void)setTheme:(BTUI *)theme { - [super setTheme:theme]; - NSMutableDictionary *d = [NSMutableDictionary dictionaryWithDictionary:self.theme.textFieldTextAttributes]; - d[NSKernAttributeName] = @0; - self.textField.defaultTextAttributes = self.theme.textFieldTextAttributes; - self.floatLabel.theme = theme; -} - -- (void)setThemedPlaceholder:(NSString *)placeholder { - self.floatLabel.label.text = placeholder; - self.textField.attributedPlaceholder = [[NSAttributedString alloc] initWithString:placeholder ?: @"" - attributes:self.theme.textFieldPlaceholderAttributes]; -} - -- (void)setThemedAttributedPlaceholder:(NSAttributedString *)placeholder { - NSMutableAttributedString *mutableFloatLabel = [[NSMutableAttributedString alloc] initWithAttributedString:placeholder]; - [mutableFloatLabel beginEditing]; - [mutableFloatLabel removeAttribute:NSForegroundColorAttributeName range:NSMakeRange(0, [mutableFloatLabel length])]; - [mutableFloatLabel removeAttribute:NSBackgroundColorAttributeName range:NSMakeRange(0, [mutableFloatLabel length])]; - [mutableFloatLabel removeAttribute:NSFontAttributeName range:NSMakeRange(0, [mutableFloatLabel length])]; - [mutableFloatLabel endEditing]; - self.floatLabel.label.attributedText = mutableFloatLabel; - - NSMutableAttributedString *mutablePlaceholder = [[NSMutableAttributedString alloc] initWithAttributedString:placeholder]; - [mutablePlaceholder beginEditing]; - [mutablePlaceholder addAttributes:self.theme.textFieldPlaceholderAttributes range:NSMakeRange(0, [mutablePlaceholder length])]; - [mutablePlaceholder endEditing]; - - self.textField.attributedPlaceholder = mutablePlaceholder; -} - -#pragma mark - Drawing - -- (void)updateAppearance { - UIColor *textColor; - if (!self.displayAsValid){ - textColor = self.theme.errorForegroundColor; - self.backgroundColor = self.theme.errorBackgroundColor; - } else { - textColor = self.theme.textFieldTextColor; - self.backgroundColor = [UIColor clearColor]; - } - - NSMutableAttributedString *mutableText = [[NSMutableAttributedString alloc] initWithAttributedString:self.textField.attributedText]; - [mutableText addAttributes:@{NSForegroundColorAttributeName: textColor} range:NSMakeRange(0, mutableText.length)]; - - UITextRange *currentRange = self.textField.selectedTextRange; - - self.textField.attributedText = mutableText; - - // Reassign current selection range, since it gets cleared after attributedText assignment - self.textField.selectedTextRange = currentRange; -} - -- (void)drawRect:(CGRect)rect { - - // Draw borders - - CGContextRef context = UIGraphicsGetCurrentContext(); - if (!self.displayAsValid) { - [self.theme.errorForegroundColor setFill]; - - CGPathRef path = CGPathCreateWithRect(CGRectMake(rect.origin.x, CGRectGetMaxY(rect) - 0.5f, rect.size.width, 0.5f), NULL); - CGContextAddPath(context, path); - CGPathRelease(path); - - path = CGPathCreateWithRect(CGRectMake(rect.origin.x, 0, rect.size.width, 0.5f), NULL); - CGContextAddPath(context, path); - - CGContextDrawPath(context, kCGPathFill); - CGPathRelease(path); - } else if (self.bottomBorder) { - CGFloat horizontalMargin = [self.theme horizontalMargin]; - CGPathRef path = CGPathCreateWithRect(CGRectMake(rect.origin.x + horizontalMargin, CGRectGetMaxY(rect) - 0.5f, rect.size.width - horizontalMargin, 0.5f), NULL); - CGContextAddPath(context, path); - [self.theme.borderColor setFill]; - CGContextDrawPath(context, kCGPathFill); - CGPathRelease(path); - } -} - -- (void)setBottomBorder:(BOOL)bottomBorder { - _bottomBorder = bottomBorder; - [self setNeedsDisplay]; -} - -- (void)updateConstraints { - - NSDictionary *metrics = @{@"horizontalMargin": @([self.theme horizontalMargin]), - @"accessoryViewWidth": @44, - @"formFieldTopMargin": @(formFieldTopMargin), - @"formFieldLabelHeight": @(formFieldLabelHeight), - @"formFieldVerticalSpace": @(formFieldVerticalSpace), - @"formFieldTextFieldHeight": @(formFieldTextFieldHeight), - @"formFieldBottomMargin": @(formFieldBottomMargin) - }; - NSDictionary *views = @{ @"textField": self.textField, - @"floatLabel": self.floatLabel, - @"accessoryView": self.accessoryView }; - - if (self.layoutConstraints != nil) { - [self removeConstraints:self.layoutConstraints]; - } - self.layoutConstraints = [NSMutableArray array]; - - // Pin accessory view to right with constant width - - [self.layoutConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[accessoryView]-(horizontalMargin)-|" - options:NSLayoutFormatAlignAllCenterY - metrics:metrics - views:views]]; - - - // Horizontally Pin Float Label and accessory view - [self.layoutConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(horizontalMargin)-[floatLabel]-(horizontalMargin)-[accessoryView]-(horizontalMargin)-|" options:0 metrics:metrics views:views]]; - - // Horizontally Pin text field and accessory view - [self.layoutConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(horizontalMargin)-[textField]-(horizontalMargin)-[accessoryView]-(horizontalMargin)-|" options:0 metrics:metrics views:views]]; - - [self.layoutConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[accessoryView(==accessoryViewWidth)]" options:0 metrics:metrics views:views]]; - - [self.layoutConstraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(formFieldTopMargin)-[floatLabel(==formFieldLabelHeight)]-(formFieldVerticalSpace)-[textField(==formFieldTextFieldHeight)]-(formFieldBottomMargin)-|" options:0 metrics:metrics views:views]]; - [self.layoutConstraints addObject:[NSLayoutConstraint constraintWithItem:self.accessoryView - attribute:NSLayoutAttributeCenterY - relatedBy:NSLayoutRelationEqual - toItem:self - attribute:NSLayoutAttributeCenterY - multiplier:1.0f - constant:0]]; - NSArray *contraintsToAdd = [self.layoutConstraints copy]; - [self addConstraints:contraintsToAdd]; - [super updateConstraints]; - -} - -- (void)didDeleteBackward { - if (self.previousTextFieldText.length == 0 && self.textField.text.length == 0) { - [self.delegate formFieldDidDeleteWhileEmpty:self]; - } -} - - -- (void)updateFloatLabelTextColor { - if ([self.textField isFirstResponder]) { - self.floatLabel.label.textColor = self.tintColor; - } else { - self.floatLabel.label.textColor = self.theme.textFieldFloatLabelTextColor; - } -} - -- (void)tintColorDidChange { - [self updateFloatLabelTextColor]; -} - -#pragma mark - UITextFieldDelegate methods - -- (void)textFieldDidBeginEditing:(__unused UITextField *)textField { - [self updateFloatLabelTextColor]; -} - -- (void)textFieldDidEndEditing:(__unused UITextField *)textField { - [self updateFloatLabelTextColor]; -} - -#pragma mark - BTUITextFieldEditDelegate methods - -- (void)textFieldWillDeleteBackward:(__unused BTUITextField *)textField { - // _backspace indicates that the backspace key was typed. - _backspace = YES; - -} - -- (void)textFieldDidDeleteBackward:(BTUITextField *)textField originalText:(__unused NSString *)originalText { - if (originalText.length == 0) { - [self.delegate formFieldDidDeleteWhileEmpty:self]; - } - - if (textField.text.length == 0) { - [self.floatLabel hideWithAnimation:YES]; - } -} - -- (void)textField:(__unused BTUITextField *)textField willInsertText:(__unused NSString *)text { - _backspace = NO; -} - -- (void)textField:(BTUITextField *)textField didInsertText:(__unused NSString *)text { - if (textField.text.length > 0) { - [self.floatLabel showWithAnimation:YES]; - } -} - -- (void)setAccessoryHighlighted:(BOOL)highlight { - if (self.accessoryView) { - if ([self.accessoryView respondsToSelector:@selector(setHighlighted:animated:)]) { - SEL selector = @selector(setHighlighted:animated:); - BOOL animated = YES; - NSInvocation *invocation = [NSInvocation invocationWithMethodSignature:[self.accessoryView methodSignatureForSelector:selector]]; - [invocation setSelector:selector]; - [invocation setTarget:self.accessoryView]; - [invocation setArgument:&highlight atIndex:2]; - [invocation setArgument:&animated atIndex:3]; - [invocation invoke]; - } - } -} - -#pragma mark - Custom accessors - -- (void)setText:(NSString *)text { - BOOL shouldChange = [self.textField.delegate textField:self.textField - shouldChangeCharactersInRange:NSMakeRange(0, self.textField.text.length) - replacementString:text]; - if (shouldChange) { - [self.textField.delegate textFieldDidBeginEditing:self.textField]; - [self.textField.editDelegate textField:self.textField willInsertText:text]; - self.textField.text = text; - [self fieldContentDidChange]; - [self.textField.editDelegate textField:self.textField didInsertText:text]; - [self.textField.delegate textFieldDidEndEditing:self.textField]; - - } -} - -- (NSString *)text { - return self.textField.text; -} - -#pragma mark - Delegate methods and handlers - -- (void)fieldContentDidChange { - // To be implemented by subclass -} - -- (void)editingDidBegin { - [self setAccessoryHighlighted:YES]; -} - -- (void)editingDidEnd { - [self setAccessoryHighlighted:NO]; -} - - -- (BOOL)textField:(__unused UITextField *)textField shouldChangeCharactersInRange:(__unused NSRange)range replacementString:(__unused NSString *)newText { - // To be implemented by subclass - return YES; -} - -- (BOOL)textFieldShouldReturn:(__unused UITextField *)textField { - if ([self.delegate respondsToSelector:@selector(formFieldShouldReturn:)]) { - return [self.delegate formFieldShouldReturn:self]; - } else { - return YES; - } -} - -- (void)tappedField { - [self.textField becomeFirstResponder]; -} - -#pragma mark UIKeyInput - -- (void)insertText:(NSString *)text { - [self.textField insertText:text]; -} - -- (void)deleteBackward { - [self.textField deleteBackward]; -} - -- (BOOL)hasText { - return [self.textField hasText]; -} - -@end - diff --git a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIFormField_Protected.h b/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIFormField_Protected.h deleted file mode 100644 index 746c474..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIFormField_Protected.h +++ /dev/null @@ -1,21 +0,0 @@ -#import -#import "BTUIFormField.h" -#import "BTUITextField.h" - -/// Private class extension for implementors of BTUIFormField subclasses. -@interface BTUIFormField () - -@property (nonatomic, strong, readonly) BTUITextField *textField; - -@property (nonatomic, strong) UIView *accessoryView; - -/// Override in your subclass to implement behavior -/// on content change -- (void)fieldContentDidChange; - -/// Sets placeholder text with the appropriate theme style -- (void)setThemedPlaceholder:(NSString *)placeholder; -- (void)setThemedAttributedPlaceholder:(NSAttributedString *)placeholder; - -@end - diff --git a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIScrollView.h b/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIScrollView.h deleted file mode 100644 index 506126f..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIScrollView.h +++ /dev/null @@ -1,23 +0,0 @@ -#import - -@protocol BTUIScrollViewScrollRectToVisibleDelegate; - -/// Subclass of UIScrollView that disables default iOS "autoscrolling" to text fields -/// by overriding the scrollRectToVisible method with a call to a delegate. -@interface BTUIScrollView : UIScrollView - -/// Delegate that, if set, receives messages when scrollRectToVisible is called -/// If nil, scrollRectToVisible is simply a no-op. -@property (nonatomic, weak) id scrollRectToVisibleDelegate; - -/// The "default" scrollRectToVisible implementation -- (void)defaultScrollRectToVisible:(CGRect)rect animated:(BOOL)animated; - -@end - - -@protocol BTUIScrollViewScrollRectToVisibleDelegate - -- (void)scrollView:(BTUIScrollView *)scrollView requestsScrollRectToVisible:(__unused CGRect)rect animated:(__unused BOOL)animated; - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIScrollView.m b/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIScrollView.m deleted file mode 100644 index 8a508de..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIScrollView.m +++ /dev/null @@ -1,21 +0,0 @@ -#import "BTUIScrollView.h" - -@implementation BTUIScrollView - -- (void)defaultScrollRectToVisible:(CGRect)rect animated:(BOOL)animated -{ - [super scrollRectToVisible:rect animated:animated]; -} - -- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated -{ - if (self.scrollRectToVisibleDelegate != nil) { - [self.scrollRectToVisibleDelegate scrollView:self requestsScrollRectToVisible:rect animated:animated]; - } -} - -- (BOOL)touchesShouldCancelInContentView:(__unused UIView *)view { - return YES; -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUITextField.h b/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUITextField.h deleted file mode 100644 index 725d740..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUITextField.h +++ /dev/null @@ -1,45 +0,0 @@ -#import - -@protocol BTUITextFieldEditDelegate; - -/// @class A specialized text field that provides more granular callbacks than a standard -/// UITextField as the user edits text -@interface BTUITextField : UITextField - -/// The specialized delegate for receiving callbacks about editing -@property (nonatomic, weak) id editDelegate; - -@end - -/// A protocol for receiving callbacks when a user edits text in a `BTUITextField` -@protocol BTUITextFieldEditDelegate - -@optional - -/// The editDelegate receives this message when the user deletes a character, but before the deletion -/// is applied to the `text` -/// -/// @param textField The text field -- (void)textFieldWillDeleteBackward:(BTUITextField *)textField; - -/// The editDelegate receives this message after the user deletes a character -/// -/// @param textField The text field -/// @param originalText The `text` of the text field before applying the deletion -- (void)textFieldDidDeleteBackward:(BTUITextField *)textField - originalText:(NSString *)originalText; - -/// The editDelegate receives this message when the user enters text, but -/// before the text is inserted -/// -/// @param textField The text field -/// @param text The text that will be inserted -- (void)textField:(BTUITextField *)textField willInsertText:(NSString *)text; - -/// The editDelegate receives this message after the user enters text -/// -/// @param textField The text field -/// @param text The text that was inserted -- (void)textField:(BTUITextField *)textField didInsertText:(NSString *)text; - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUITextField.m b/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUITextField.m deleted file mode 100644 index 0bf8aa6..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUITextField.m +++ /dev/null @@ -1,100 +0,0 @@ -#import "BTUITextField.h" - -@interface BTUITextField () -@property (nonatomic, copy) NSString *previousText; -@end - -@implementation BTUITextField - -- (instancetype)init { - if (self = [super init]) { - if ([UIDevice currentDevice].systemVersion.intValue >= 9) { - [self addTarget:self action:@selector(iOS9AndAbove_changed) forControlEvents:UIControlEventEditingChanged]; - self.delegate = self; - } - } - return self; -} - -- (void)iOS9AndAbove_changed { - // We only want to notify when this text field's text length has increased - if (self.previousText.length >= self.text.length) { - self.previousText = self.text; - return; - } - self.previousText = self.text; - - NSString *insertedText = [self.text substringWithRange:NSMakeRange(self.previousText.length, self.text.length - self.previousText.length)]; - - if ([self.editDelegate respondsToSelector:@selector(textField:willInsertText:)]) { - // Sets _backspace = NO; in the BTUIFormField or BTUIFormField subclass - [self.editDelegate textField:self willInsertText:insertedText]; - } - - self.previousText = self.text; - - if ([self.editDelegate respondsToSelector:@selector(textField:didInsertText:)]) { - [self.editDelegate textField:self didInsertText:insertedText]; - } -} - -- (BOOL)keyboardInputShouldDelete:(__unused UITextField *)textField { - if ([self.editDelegate respondsToSelector:@selector(textFieldWillDeleteBackward:)]) { - [self.editDelegate textFieldWillDeleteBackward:self]; - } - - BOOL shouldDelete = YES; - - if ([UITextField instancesRespondToSelector:_cmd]) { - BOOL (*keyboardInputShouldDelete)(id, SEL, UITextField *) = (BOOL (*)(id, SEL, UITextField *))[UITextField instanceMethodForSelector:_cmd]; - - if (keyboardInputShouldDelete) { - shouldDelete = keyboardInputShouldDelete(self, _cmd, textField); - } - } - - BOOL isIos8 = ([[[UIDevice currentDevice] systemVersion] intValue] == 8); - BOOL isLessThanIos8_3 = ([[[UIDevice currentDevice] systemVersion] floatValue] < 8.3f); - - // iOS 8.0-8.2 has a bug where deleteBackward is not called even when this method returns YES and the character is deleted - // As a result, we do so manually but return NO in order to prevent UITextField from double-calling the delegate method - // (textFieldDidDeleteBackwards:originalText:) - if (isIos8 && isLessThanIos8_3) { - [self deleteBackward]; - shouldDelete = NO; - } - - return shouldDelete; -} - -- (void)deleteBackward -{ - BOOL shouldDismiss = [self.text length] == 0; - NSString *originalText = self.text; - - [super deleteBackward]; - - if (shouldDismiss) { - if ([self.delegate respondsToSelector:@selector(textField:shouldChangeCharactersInRange:replacementString:)]) { - [self.delegate textField:self shouldChangeCharactersInRange:NSMakeRange(0, 0) replacementString:@""]; - } - } - - if ([self.editDelegate respondsToSelector:@selector(textFieldDidDeleteBackward:originalText:)]) { - [self.editDelegate textFieldDidDeleteBackward:self originalText:originalText]; - } -} - -- (void)insertText:(NSString *)text { - if ([self.editDelegate respondsToSelector:@selector(textField:willInsertText:)]) { - [self.editDelegate textField:self willInsertText:text]; - } - - [super insertText:text]; - - if ([self.editDelegate respondsToSelector:@selector(textField:didInsertText:)]) { - [self.editDelegate textField:self didInsertText:text]; - } -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIThemedView.h b/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIThemedView.h deleted file mode 100644 index 9498186..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIThemedView.h +++ /dev/null @@ -1,6 +0,0 @@ -#import -#import "BTUI.h" - -@interface BTUIThemedView : UIView -@property (nonatomic, strong) BTUI *theme; -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIThemedView.m b/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIThemedView.m deleted file mode 100644 index dd9a343..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIThemedView.m +++ /dev/null @@ -1,30 +0,0 @@ -#import "BTUIThemedView.h" - -@implementation BTUIThemedView - -- (id)init { - self = [super init]; - if (self) { - _theme = [BTUI braintreeTheme]; - } - return self; -} - -- (id)initWithFrame:(CGRect)frame -{ - self = [super initWithFrame:frame]; - if (self) { - _theme = [BTUI braintreeTheme]; - } - return self; -} - -- (instancetype)initWithCoder:(NSCoder *)aDecoder { - self = [super initWithCoder:aDecoder]; - if (self) { - _theme = [BTUI braintreeTheme]; - } - return self; -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIVectorArtView.h b/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIVectorArtView.h deleted file mode 100644 index 41eda48..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIVectorArtView.h +++ /dev/null @@ -1,18 +0,0 @@ -#import - -/// Subclassed to easily draw vector art into a scaled UIView. -/// Useful for using generated UIBezierPath code from -/// [PaintCode](http://www.paintcodeapp.com/) verbatim. -@interface BTUIVectorArtView : UIView - -/// Subclass and implement this method to draw within a context pre-scaled to the -/// view's size. -- (void)drawArt; - -/// This property informs the BTVectorArtView drawRect method of the dimensions -/// of the artwork. -@property (nonatomic, assign) CGSize artDimensions; - -- (UIImage *)imageOfSize:(CGSize)size; - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIVectorArtView.m b/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIVectorArtView.m deleted file mode 100644 index 01d0949..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Custom Views/BTUIVectorArtView.m +++ /dev/null @@ -1,32 +0,0 @@ -#import "BTUIVectorArtView.h" -@import QuartzCore; - -@implementation BTUIVectorArtView - -- (void)drawRect:(CGRect)rect -{ - CGContextRef ctx = UIGraphicsGetCurrentContext(); - CGContextSaveGState(ctx); - CGFloat scaleFactor = MIN(rect.size.width/self.artDimensions.width, rect.size.height/self.artDimensions.height); - CGContextScaleCTM(ctx, scaleFactor, scaleFactor); - CGContextTranslateCTM(ctx, rect.origin.x, rect.origin.y); - - [self drawArt]; - - CGContextRestoreGState(ctx); -} - -- (void)drawArt { - // Subclass overrides this -} - - -- (UIImage *)imageOfSize:(CGSize)size { - UIGraphicsBeginImageContextWithOptions(size, NO, 0); - [self drawRect:CGRectMake(0, 0, size.width, size.height)]; - UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); - UIGraphicsEndImageContext(); - return img; -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardCvvField.h b/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardCvvField.h deleted file mode 100644 index f840642..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardCvvField.h +++ /dev/null @@ -1,10 +0,0 @@ -#import "BTUIFormField.h" -#import "BTUICardType.h" - -@interface BTUICardCvvField : BTUIFormField - -@property (nonatomic, strong) BTUICardType *cardType; - -@property (nonatomic, copy) NSString *cvv; - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardCvvField.m b/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardCvvField.m deleted file mode 100644 index 75ab63e..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardCvvField.m +++ /dev/null @@ -1,94 +0,0 @@ -#import "BTUICardCvvField.h" -#import "BTUIFormField_Protected.h" -#import "BTUICardHint.h" -#import "BTUIUtil.h" -#import "BTUIViewUtil.h" -#import "BTUILocalizedString.h" - -#define kMinimumCvvLength 3 -#define kMaximumCvvLength 4 - -@interface BTUICardCvvField () -@property (nonatomic, readonly) NSUInteger validLength; -@property (nonatomic, strong) BTUICardHint *hint; -@end - -@implementation BTUICardCvvField - -- (instancetype)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - [self setThemedPlaceholder:BTUILocalizedString(CVV_FIELD_PLACEHOLDER)]; - self.textField.accessibilityLabel = BTUILocalizedString(CVV_FIELD_PLACEHOLDER); - self.textField.keyboardType = UIKeyboardTypeNumberPad; - self.textField.delegate = self; - - self.hint = [BTUICardHint new]; - self.hint.displayMode = BTCardHintDisplayModeCVVHint; - self.accessoryView = self.hint; - self.accessoryView.translatesAutoresizingMaskIntoConstraints = NO; - [self addSubview:self.accessoryView]; - } - return self; -} - -- (void)setCardType:(BTUICardType *)cardType { - _cardType = cardType; - self.displayAsValid = [self.textField isFirstResponder] || self.textField.text.length == 0 || self.valid; - [self.hint setCardType:[BTUIViewUtil paymentMethodTypeForCardType:cardType] animated:YES]; - [self updateAppearance]; -} - -- (BOOL)valid { - BOOL noCardTypeOKLength = (self.cardType == nil && self.cvv.length <= kMaximumCvvLength && self.cvv.length >= kMinimumCvvLength); - BOOL validLengthForCardType = (self.cardType != nil && self.cvv.length == self.cardType.validCvvLength); - return noCardTypeOKLength || validLengthForCardType; -} - - -- (BOOL)entryComplete { - NSUInteger index = [self.textField offsetFromPosition:self.textField.beginningOfDocument toPosition:self.textField.selectedTextRange.start]; - BOOL cursorAtEnd = (index == self.textField.text.length); - - if (self.cardType == nil) { - return cursorAtEnd && self.cvv.length == kMaximumCvvLength; - } else { - return self.valid; - } -} - -- (BOOL)textField:(__unused UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { - return string.length + range.location <= self.validLength; -} - -- (NSUInteger)validLength { - return self.cardType == nil ? kMaximumCvvLength : self.cardType.validCvvLength; -} - -- (void)setCvv:(NSString *)cvv { - _cvv = cvv; - self.text = cvv; -} - -#pragma mark - Handlers - -- (void)fieldContentDidChange { - self.displayAsValid = YES; - _cvv = [BTUIUtil stripNonDigits:self.textField.text]; - [self.delegate formFieldDidChange:self]; -} - -- (void)textFieldDidBeginEditing:(UITextField *)textField { - [super textFieldDidBeginEditing:textField]; - self.displayAsValid = YES; - [self.hint setHighlighted:YES animated:YES]; -} - -- (void)textFieldDidEndEditing:(UITextField *)textField { - [super textFieldDidEndEditing:textField]; - self.displayAsValid = self.textField.text.length == 0 || self.valid; - [self.hint setHighlighted:NO animated:YES]; -} - - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardExpiryField.h b/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardExpiryField.h deleted file mode 100644 index 8239139..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardExpiryField.h +++ /dev/null @@ -1,12 +0,0 @@ -#import "BTUIFormField.h" - -@interface BTUICardExpiryField : BTUIFormField - -@property (nonatomic, strong, readonly) NSString *expirationMonth; -@property (nonatomic, strong, readonly) NSString *expirationYear; - -/// The expiration date in MMYYYY format. -@property (nonatomic, copy) NSString *expirationDate; - -@end - diff --git a/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardExpiryField.m b/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardExpiryField.m deleted file mode 100644 index 74831cb..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardExpiryField.m +++ /dev/null @@ -1,188 +0,0 @@ -#import "BTUICardExpiryField.h" -#import "BTUIFormField_Protected.h" -#import "BTUIUtil.h" -#import "BTUICardExpirationValidator.h" -#import "BTUICardExpiryFormat.h" -#import "BTUILocalizedString.h" - -#define BTUICardExpiryFieldYYYYPrefix @"20" -#define BTUICardExpiryFieldComponentSeparator @"/" - -#define BTUICardExpiryPlaceholderFourDigitYear BTUILocalizedString(EXPIRY_PLACEHOLDER_FOUR_DIGIT_YEAR) -#define BTUICardExpiryPlaceholderTwoDigitYear BTUILocalizedString(EXPIRY_PLACEHOLDER_TWO_DIGIT_YEAR) - -@interface BTUICardExpiryField () -@end - -@implementation BTUICardExpiryField - -- (instancetype)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - [self updatePlaceholder]; - self.textField.keyboardType = UIKeyboardTypeNumberPad; - self.textField.delegate = self; - } - return self; -} - -- (BOOL)valid { - if (!self.expirationYear || !self.expirationMonth) { - return NO; - } - return [BTUICardExpirationValidator month:self.expirationMonth.intValue year:self.expirationYear.intValue validForDate:[NSDate date]]; -} - -- (void)setExpirationDate:(NSString *)expirationDate { - [self setText:expirationDate]; - } - -- (NSString *)expirationDate { - if (!self.expirationMonth || !self.expirationYear) return nil; - - return [NSString stringWithFormat:@"%@%@", self.expirationMonth, self.expirationYear]; -} - -#pragma mark - Handlers - -- (void)fieldContentDidChange { - _expirationMonth = nil; - _expirationYear = nil; - - NSString *formattedValue; - NSUInteger formattedCursorLocation; - - BTUICardExpiryFormat *format = [[BTUICardExpiryFormat alloc] init]; - format.value = self.textField.text; - format.cursorLocation = [self.textField offsetFromPosition:self.textField.beginningOfDocument toPosition:self.textField.selectedTextRange.start]; - format.backspace = self.backspace; - [format formattedValue:&formattedValue cursorLocation:&formattedCursorLocation]; - - // Important: Reset the state of self.backspace. - // Otherwise, the user won't be able to do the following: - // Enter "11/16", then backspace to - // "1", and then type e.g. "2". Instead of showing: - // "12/" (as it should), the form would instead remain stuck at - // "1". - self.backspace = NO; - // This is because UIControlEventEditingChanged is *not* sent after the "/" is removed. - // We can't trigger UIControlEventEditingChanged here (after removing a "/") because that would cause an infinite loop. - - NSMutableAttributedString *result = [[NSMutableAttributedString alloc] initWithString:formattedValue attributes:self.theme.textFieldTextAttributes]; - [self kernExpiration:result]; - self.textField.attributedText = result; - - UITextPosition *newPosition = [self.textField positionFromPosition:self.textField.beginningOfDocument offset:formattedCursorLocation]; - UITextRange *newRange = [self.textField textRangeFromPosition:newPosition toPosition:newPosition]; - self.textField.selectedTextRange = newRange; - - NSArray *expirationComponents = [self expirationComponents:self.textField.text]; - if(expirationComponents.count == 2 && (self.textField.text.length == 5 || self.textField.text.length == 7)) { - _expirationMonth = expirationComponents[0]; - _expirationYear = expirationComponents[1]; - } - - [self updatePlaceholder]; - - self.displayAsValid = ((self.textField.text.length != 5 && self.textField.text.length != 7) || self.valid); - - [self.delegate formFieldDidChange:self]; -} - -- (void)textFieldDidBeginEditing:(UITextField *)textField { - [super textFieldDidBeginEditing:textField]; - self.displayAsValid = YES; -} - -- (void)textFieldDidEndEditing:(UITextField *)textField { - [super textFieldDidEndEditing:textField]; - self.displayAsValid = self.textField.text.length == 0 || self.valid; -} - -- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)newText { - NSString *numericNewText = [BTUIUtil stripNonDigits:newText]; - if (![numericNewText isEqualToString:newText]) { - return NO; - } - NSString *updatedText = [textField.text stringByReplacingCharactersInRange:range withString:numericNewText]; - - return [self dateIsValid:updatedText]; -} - -- (BOOL)entryComplete { - return [super entryComplete] && ![self.expirationYear isEqualToString:BTUICardExpiryFieldYYYYPrefix]; -} - -#pragma mark Helper - -- (void)updatePlaceholder { - NSString *placeholder = [self dateCouldEndWithFourDigitYear:self.textField.text] ? BTUILocalizedString(EXPIRY_PLACEHOLDER_FOUR_DIGIT_YEAR) : BTUILocalizedString(EXPIRY_PLACEHOLDER_TWO_DIGIT_YEAR); - [self setThemedPlaceholder:placeholder]; - self.textField.accessibilityLabel = placeholder; -} - -- (void)setThemedPlaceholder:(NSString *)placeholder { - NSMutableAttributedString *attributedPlaceholder = [[NSMutableAttributedString alloc] initWithString:placeholder ?: @"" - attributes:self.theme.textFieldPlaceholderAttributes]; - [self kernExpiration:attributedPlaceholder]; - [self setThemedAttributedPlaceholder:attributedPlaceholder]; -} - -- (BOOL)dateCouldEndWithFourDigitYear:(NSString *)expirationDate { - NSArray *expirationComponents = [self expirationComponents:expirationDate]; - NSString *yearComponent = [expirationComponents count] >= 2 ? expirationComponents[1] : nil; - return (yearComponent && yearComponent.length >= 2 && [[yearComponent substringToIndex:2] isEqualToString:BTUICardExpiryFieldYYYYPrefix]); -} - -- (NSArray *)expirationComponents:(NSString *)expirationDate { - return [expirationDate componentsSeparatedByString:BTUICardExpiryFieldComponentSeparator]; -} - -- (void)kernExpiration:(NSMutableAttributedString *)input { - [input removeAttribute:NSKernAttributeName range:NSMakeRange(0, input.length)]; - - [input beginEditing]; - if (input.length > 2) { - [input addAttribute:NSKernAttributeName value:@(self.theme.formattedEntryKerning/2) range:NSMakeRange(1, 1)]; - if (input.length > 3) { - [input addAttribute:NSKernAttributeName value:@(self.theme.formattedEntryKerning/2) range:NSMakeRange(2, 1)]; - } - } - [input endEditing]; -} - -// Returns YES if date is either a valid date or can have digits appended to make one. It does not contain any expiration -// date validation. -- (BOOL)dateIsValid:(NSString *)date { - NSArray *dateComponents = [date componentsSeparatedByString:BTUICardExpiryFieldComponentSeparator]; - - NSString *yearComponent; - if (dateComponents.count >= 2) { - yearComponent = dateComponents[1]; - } else { - yearComponent = date.length >= 4 ? [date substringWithRange:NSMakeRange(2, date.length - 2)] : nil; - } - - BOOL couldEndWithFourDigitYear = yearComponent && yearComponent.length >= 2 && [[yearComponent substringToIndex:2] isEqualToString:BTUICardExpiryFieldYYYYPrefix]; - if (couldEndWithFourDigitYear ? date.length > 7 : date.length > 5) { - return NO; - } - - NSString *updatedNumberText = [BTUIUtil stripNonDigits:date]; - - NSString *monthStr = [updatedNumberText substringToIndex:MIN((NSUInteger)2, updatedNumberText.length)]; - if (monthStr.length > 0) { - NSInteger month = [monthStr integerValue]; - if(month < 0 || 12 < month) { - return NO; - } - if(monthStr.length >= 2 && month == 0) { - return NO; - } - } - - return YES; -} - - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardNumberField.h b/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardNumberField.h deleted file mode 100644 index 1c156bd..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardNumberField.h +++ /dev/null @@ -1,9 +0,0 @@ -#import "BTUIFormField.h" -#import "BTUICardType.h" - -@interface BTUICardNumberField : BTUIFormField - -@property (nonatomic, strong, readonly) BTUICardType *cardType; -@property (nonatomic, strong) NSString *number; - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardNumberField.m b/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardNumberField.m deleted file mode 100644 index b4c2e85..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardNumberField.m +++ /dev/null @@ -1,105 +0,0 @@ -#import "BTUICardNumberField.h" -#import "BTUIFormField_Protected.h" -#import "BTUIUtil.h" -#import "BTUICardHint.h" -#import "BTUIViewUtil.h" -#import "BTUILocalizedString.h" - -@implementation BTUICardNumberField - -@synthesize number = _number; - -- (instancetype)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - [self setThemedPlaceholder:BTUILocalizedString(CARD_NUMBER_PLACEHOLDER)]; - self.textField.accessibilityLabel = BTUILocalizedString(CARD_NUMBER_PLACEHOLDER); - self.textField.keyboardType = UIKeyboardTypeNumberPad; - _number = @""; - - BTUICardHint *hint = [BTUICardHint new]; - [hint setCardType:BTUIPaymentMethodTypeUnknown]; - self.accessoryView = hint; - self.accessoryView.translatesAutoresizingMaskIntoConstraints = NO; - [self addSubview:self.accessoryView]; - } - return self; -} - -- (BOOL)valid { - return [self.cardType validNumber:self.number]; -} - -- (BOOL)entryComplete { - return [super entryComplete] && [self.cardType validAndNecessarilyCompleteNumber:self.number]; -} - -- (void)setNumber:(NSString *)number { - self.text = number; - _number = self.textField.text; -} - -- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { - NSUInteger newLength = textField.text.length - range.length + string.length; - NSUInteger maxLength = self.cardType == nil ? [BTUICardType maxNumberLength] : self.cardType.maxNumberLength; - return newLength <= maxLength; -} - -- (void)fieldContentDidChange { - _number = [BTUIUtil stripNonDigits:self.textField.text]; - BTUICardType *oldCardType = _cardType; - _cardType = [BTUICardType cardTypeForNumber:_number]; - if (self.cardType != nil) { - UITextRange *r = self.textField.selectedTextRange; - NSMutableAttributedString *text = [[NSMutableAttributedString alloc] initWithAttributedString:[self.cardType formatNumber:_number kerning:self.theme.formattedEntryKerning]]; - [text addAttributes:self.theme.textFieldTextAttributes range:NSMakeRange(0, text.length)]; - self.textField.attributedText = text; - self.textField.selectedTextRange = r; - } - if (self.cardType != oldCardType) { - [self updateCardHint]; - } - - self.displayAsValid = self.valid || (!self.isValidLength && self.isPotentiallyValid); - - [self updateAppearance]; - [self setNeedsDisplay]; - - [self.delegate formFieldDidChange:self]; -} - -- (void)textFieldDidBeginEditing:(UITextField *)textField { - [super textFieldDidBeginEditing:textField]; - self.displayAsValid = self.valid || (!self.isValidLength && self.isPotentiallyValid); - [self updateAppearance]; -} - -- (void)textFieldDidEndEditing:(UITextField *)textField { - [super textFieldDidEndEditing:textField]; - self.displayAsValid = _number.length == 0 || (_cardType != nil && [_cardType validNumber:_number]); - [self updateAppearance]; -} - -#pragma mark - Private Helpers - -- (BOOL)isValidCardType { - return self.cardType != nil || _number.length == 0; -} - -- (BOOL)isPotentiallyValid { - return [BTUICardType possibleCardTypesForNumber:self.number].count > 0; -} - -- (BOOL)isValidLength { - return self.cardType != nil && [self.cardType completeNumber:_number]; -} - -- (void)updateCardHint { - BTUIPaymentMethodType paymentMethodType = [BTUIViewUtil paymentMethodTypeForCardType:self.cardType]; - BTUICardHint *hint =(BTUICardHint *)self.accessoryView; - [hint setCardType:paymentMethodType animated:YES]; -} - - - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardPostalCodeField.h b/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardPostalCodeField.h deleted file mode 100644 index 6f02d9c..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardPostalCodeField.h +++ /dev/null @@ -1,8 +0,0 @@ -#import "BTUIFormField.h" - -@interface BTUICardPostalCodeField : BTUIFormField - -@property (nonatomic, strong) NSString *postalCode; -@property (nonatomic, assign) BOOL nonDigitsSupported; - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardPostalCodeField.m b/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardPostalCodeField.m deleted file mode 100644 index e8104e9..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Form Fields/BTUICardPostalCodeField.m +++ /dev/null @@ -1,64 +0,0 @@ -#import "BTUICardPostalCodeField.h" -#import "BTUIFormField_Protected.h" -#import "BTUILocalizedString.h" -#import "BTUIUtil.h" - -@implementation BTUICardPostalCodeField - -- (instancetype)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - [self setThemedPlaceholder:BTUILocalizedString(POSTAL_CODE_PLACEHOLDER)]; - self.textField.accessibilityLabel = BTUILocalizedString(POSTAL_CODE_PLACEHOLDER); - self.nonDigitsSupported = NO; - self.textField.autocorrectionType = UITextAutocorrectionTypeNo; - self.textField.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters; - self.textField.returnKeyType = UIReturnKeyDone; - } - return self; -} - -- (void)setPostalCode:(NSString *)postalCode { - if (!self.nonDigitsSupported) { - NSString *numericPostalCode = [BTUIUtil stripNonDigits:postalCode]; - if (![numericPostalCode isEqualToString:postalCode]) return; - } - _postalCode = postalCode; - self.text = postalCode; -} - -- (void)setNonDigitsSupported:(BOOL)nonDigitsSupported { - _nonDigitsSupported = nonDigitsSupported; - self.textField.autocorrectionType = UITextAutocorrectionTypeNo; - self.textField.autocapitalizationType = UITextAutocapitalizationTypeAllCharacters; - self.textField.keyboardType = _nonDigitsSupported ? UIKeyboardTypeNumbersAndPunctuation : UIKeyboardTypeNumberPad; -} - -- (BOOL)entryComplete { - // Never allow auto-advancing out of postal code field since there is no way to know that the - // input value constitutes a complete postal code. - return NO; -} - -- (BOOL)valid { - return self.postalCode.length > 0; -} - -- (void)fieldContentDidChange { - _postalCode = [self.textField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; - self.displayAsValid = YES; - [super fieldContentDidChange]; - [self.delegate formFieldDidChange:self]; -} - -- (void)textFieldDidBeginEditing:(UITextField *)textField { - self.displayAsValid = YES; - [super textFieldDidBeginEditing:textField]; -} - -- (void)textFieldDidEndEditing:(UITextField *)textField { - self.displayAsValid = YES; - [super textFieldDidEndEditing:textField]; -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Forms/BTUICardFormView.h b/Pods/Braintree/Braintree/UI/Views/Forms/BTUICardFormView.h deleted file mode 100644 index f9adc40..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Forms/BTUICardFormView.h +++ /dev/null @@ -1,87 +0,0 @@ -#import "BTUIThemedView.h" - -typedef NS_OPTIONS(NSUInteger, BTUICardFormOptionalFields) { - BTUICardFormOptionalFieldsNone = 0, - BTUICardFormOptionalFieldsCvv = 1 << 0, - BTUICardFormOptionalFieldsPostalCode = 1 << 1, - BTUICardFormOptionalFieldsAll = BTUICardFormOptionalFieldsCvv | BTUICardFormOptionalFieldsPostalCode -}; - -typedef NS_ENUM(NSUInteger, BTUICardFormField) { - BTUICardFormFieldNumber = 0, - BTUICardFormFieldExpiration, - BTUICardFormFieldCvv, - BTUICardFormFieldPostalCode -}; - -@protocol BTUICardFormViewDelegate; - -@interface BTUICardFormView : BTUIThemedView - -@property (nonatomic, weak) IBOutlet id delegate; - -@property (nonatomic, assign, readonly) BOOL valid; - -/// The card number. -/// -/// If you set a card number longer than is allowed by the card type, -/// it will not be set. -@property (nonatomic, copy) NSString *number; - -/// The card CVV -/// -/// @note this field is only visible when specified in `optionalFields` -@property (nonatomic, copy) NSString *cvv; - -/// The card billing address postal code for AVS verifications -/// -/// @note this field is only visible when specified in `optionalFields` -@property (nonatomic, copy) NSString *postalCode; - -@property (nonatomic, copy, readonly) NSString *expirationMonth; -@property (nonatomic, copy, readonly) NSString *expirationYear; - -/// Sets the card form view's expiration date -/// -/// @param expirationDate The expiration date. Passing in `nil` will clear the -/// card form's expiry field. -- (void)setExpirationDate:(NSDate *)expirationDate; - -/// Immediately present a top level error message to the user. -/// -/// @param message An error message. -- (void)showTopLevelError:(NSString *)message; - -/// Immediately present a field-level error to the user. -/// -/// @note We do not support field-level error descriptions. This method highlights the field to indicate invalidity. -/// @param field The invalid field -- (void)showErrorForField:(BTUICardFormField)field; - -/// Configure whether to support complete alphanumeric postal codes. -/// -/// If NO, allows only digit entry. -/// -/// Defaults to YES -@property (nonatomic, assign) BOOL alphaNumericPostalCode; - -/// Which fields should be included. -/// -/// Defaults to BTUICardFormOptionalFieldsAll -@property (nonatomic, assign) BTUICardFormOptionalFields optionalFields; - -/// Whether to provide feedback to the user via vibration -/// -/// Defaults to YES -@property (nonatomic, assign) BOOL vibrate; - - -@end - -/// Delegate protocol for receiving updates about the card form -@protocol BTUICardFormViewDelegate - -/// The card form data has updated. -- (void)cardFormViewDidChange:(BTUICardFormView *)cardFormView; - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Forms/BTUICardFormView.m b/Pods/Braintree/Braintree/UI/Views/Forms/BTUICardFormView.m deleted file mode 100644 index b42ccd7..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Forms/BTUICardFormView.m +++ /dev/null @@ -1,317 +0,0 @@ -#import "BTUICardFormView.h" -#import "BTUICardNumberField.h" -#import "BTUICardExpiryField.h" -#import "BTUICardCvvField.h" -#import "BTUICardPostalCodeField.h" -#import "BTUI.h" -#import "BTUILocalizedString.h" -#import "BTUIUtil.h" - -@interface BTUICardFormView () - -@property (nonatomic, strong) BTUICardNumberField *numberField; -@property (nonatomic, strong) BTUICardExpiryField *expiryField; -@property (nonatomic, strong) BTUICardCvvField *cvvField; -@property (nonatomic, strong) BTUICardPostalCodeField *postalCodeField; - -@property (nonatomic, strong) NSArray *fields; -@property (nonatomic, strong) NSArray *dynamicConstraints; - -@end - -@implementation BTUICardFormView - -- (instancetype)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - [self setup]; - } - return self; -} - -- (instancetype)initWithCoder:(NSCoder *)aDecoder { - self = [super initWithCoder:aDecoder]; - if (self) { - [self setup]; - } - return self; -} - -- (CGSize)intrinsicContentSize { - CGFloat height = 0; - for (BTUIFormField *field in self.fields) { - height += field.intrinsicContentSize.height; - } - // subtract (number of field adjacencies) * (number of pixels overlap per adjacency) - height -= (self.fields.count - 1) * 1; - - return CGSizeMake(UIViewNoIntrinsicMetric, height); -} - -#pragma mark - Getters/setters - -- (void)showErrorForField:(__unused BTUICardFormField)field { - switch (field) { - case BTUICardFormFieldNumber: - self.numberField.displayAsValid = NO; - break; - case BTUICardFormFieldExpiration: - self.expiryField.displayAsValid = NO; - break; - case BTUICardFormFieldCvv: - self.cvvField.displayAsValid = NO; - break; - case BTUICardFormFieldPostalCode: - self.postalCodeField.displayAsValid = NO; - break; - } -} - -- (void)showTopLevelError:(NSString *)message { - NSString *localizedOK = BTUILocalizedString(TOP_LEVEL_ERROR_ALERT_VIEW_OK_BUTTON_TEXT); - if ([UIAlertController class]) { - UIAlertController *alert = [UIAlertController alertControllerWithTitle:message message:nil preferredStyle:UIAlertControllerStyleAlert]; - [alert addAction:[UIAlertAction actionWithTitle:localizedOK style:UIAlertActionStyleCancel handler:nil]]; - UIViewController *visibleViewController = [[UIApplication sharedApplication].delegate.window.rootViewController BTUI_visibleViewController]; - [visibleViewController presentViewController:alert animated:YES completion:nil]; - } else { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - [[[UIAlertView alloc] initWithTitle:message - message:nil - delegate:nil - cancelButtonTitle:localizedOK - otherButtonTitles:nil] show]; -#pragma clang diagnostic pop - } -} - -- (void)setAlphaNumericPostalCode:(BOOL)alphaNumericPostalCode { - _alphaNumericPostalCode = alphaNumericPostalCode; - self.postalCodeField.nonDigitsSupported = alphaNumericPostalCode; -} - -- (void)setOptionalFields:(BTUICardFormOptionalFields)optionalFields { - _optionalFields = optionalFields; - NSMutableArray *fields = [NSMutableArray arrayWithObjects:self.numberField, self.expiryField, nil]; - - self.cvvField.hidden = self.postalCodeField.hidden = YES; - if (optionalFields & BTUICardFormOptionalFieldsCvv) { - [fields addObject:self.cvvField]; - self.cvvField.hidden = NO; - } - if (optionalFields & BTUICardFormOptionalFieldsPostalCode) { - [fields addObject:self.postalCodeField]; - self.postalCodeField.hidden = NO; - } - - // Set bottom border for fields - for (NSUInteger i = 0; i < fields.count - 1; i++) { - [fields[i] setBottomBorder:YES]; - } - [[fields lastObject] setBottomBorder:NO]; - - self.fields = fields; - - [self invalidateIntrinsicContentSize]; -} - -- (void)setExpirationDate:(NSDate *)expirationDate { - static NSDateFormatter *dateFormatter; - if (!dateFormatter) { - dateFormatter = [[NSDateFormatter alloc] init]; - // The expiry field only allows digit chars to be entered - dateFormatter.dateFormat = @"MMyyyy"; - } - - NSString *expirationDateString = [dateFormatter stringFromDate:expirationDate]; - [self.expiryField setText:expirationDateString]; -} - -- (void)setup { - self.opaque = NO; - self.backgroundColor = [UIColor whiteColor]; - - self.dynamicConstraints = @[]; - - _numberField = [[BTUICardNumberField alloc] init]; - self.numberField.translatesAutoresizingMaskIntoConstraints = NO; - self.numberField.delegate = self; - [self addSubview:self.numberField]; - - _expiryField = [[BTUICardExpiryField alloc] init]; - self.expiryField.translatesAutoresizingMaskIntoConstraints = NO; - self.expiryField.delegate = self; - [self addSubview:self.expiryField]; - - _cvvField = [[BTUICardCvvField alloc] init]; - self.cvvField.translatesAutoresizingMaskIntoConstraints = NO; - self.cvvField.delegate = self; - [self addSubview:self.cvvField]; - - _postalCodeField = [[BTUICardPostalCodeField alloc] init]; - self.postalCodeField.translatesAutoresizingMaskIntoConstraints = NO; - self.postalCodeField.delegate = self; - [self addSubview:self.postalCodeField]; - [self setAlphaNumericPostalCode:YES]; - - self.vibrate = YES; - self.optionalFields = BTUICardFormOptionalFieldsAll; - - for (UIView *v in self.fields) { - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[v]|" options:0 metrics:@{} views:@{@"v": v}]]; - } - - - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[v]" - options:0 - metrics:0 - views:@{@"v": self.numberField}]]; - -} - -- (void)updateConstraints { - [self removeConstraints:self.dynamicConstraints]; - - NSMutableArray *newContraints = [NSMutableArray array]; - for (NSUInteger i = 0; i < self.fields.count - 1; i++) { - BTUIFormField *fieldAbove = self.fields[i]; - BTUIFormField *fieldBelow = self.fields[i+1]; - [newContraints addObjectsFromArray:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[v]-(-1)-[v2]" - options:0 - metrics:0 - views:@{@"v": fieldAbove, @"v2": fieldBelow }]]; - } - - self.dynamicConstraints = newContraints; - [self addConstraints:self.dynamicConstraints]; - - [super updateConstraints]; - -} - -#pragma mark - Drawing - -- (void)drawRect:(CGRect)rect { - CGContextRef context = UIGraphicsGetCurrentContext(); - [self.theme.borderColor setFill]; - - // Top - CGPathRef path = CGPathCreateWithRect(CGRectMake(rect.origin.x, 0, rect.size.width, 0.5f), NULL); - CGContextAddPath(context, path); - CGPathRelease(path); - - // Bottom - path = CGPathCreateWithRect(CGRectMake(rect.origin.x, CGRectGetMaxY(rect) - 0.5f, rect.size.width, 0.5f), NULL); - CGContextAddPath(context, path); - - CGContextDrawPath(context, kCGPathFill); - CGPathRelease(path); -} - -#pragma mark - Validity - -- (BOOL)valid { - for (BTUIFormField *f in self.fields) { - if (!f.valid) { - return NO; - } - } - return YES; -} - -- (void)setVibrate:(BOOL)vibrate { - _vibrate = vibrate; - for (BTUIFormField *f in self.fields) { - f.vibrateOnInvalidInput = vibrate; - } -} - -#pragma mark - Value getters - -- (NSString *)number { - return self.numberField.number; -} - -- (void)setNumber:(NSString *)number { - self.numberField.number = number; -} - -- (NSString *)expirationMonth { - return self.expiryField.expirationMonth; -} - -- (NSString *)expirationYear { - return self.expiryField.expirationYear; -} - -- (NSString *)cvv { - return self.optionalFields & BTUICardFormOptionalFieldsCvv ? self.cvvField.cvv : nil; -} - -- (void)setCvv:(NSString *)cvv { - self.cvvField.cvv = cvv; -} - -- (NSString *)postalCode { - return self.optionalFields & BTUICardFormOptionalFieldsPostalCode ? self.postalCodeField.postalCode : nil; -} - -- (void)setPostalCode:(NSString *)postalCode { - self.postalCodeField.postalCode = postalCode; -} - -#pragma mark - Field delegate implementations - -- (void)formFieldDidChange:(BTUIFormField *)field { - if (field == self.numberField) { - self.cvvField.cardType = self.numberField.cardType; - } - [self advanceToNextInvalidFieldFrom:field]; - [self.delegate cardFormViewDidChange:self]; -} - -- (void)formFieldDidDeleteWhileEmpty:(BTUIFormField *)formField { - [self switchToPreviousField:formField]; -} - -- (BOOL)formFieldShouldReturn:(BTUIFormField *)formField { - [formField resignFirstResponder]; - return NO; -} - -#pragma mark - Auto-advancing - -- (void)advanceToNextInvalidFieldFrom:(BTUIFormField *)field { - if (field.entryComplete) { - NSUInteger fieldIndex = [self.fields indexOfObject:field]; - NSUInteger startIndex = (fieldIndex + 1) % self.fields.count; - - for (NSUInteger i = startIndex ; i != fieldIndex; i = (i + 1) % self.fields.count) { - BTUIFormField *ithField = self.fields[i]; - if (!ithField.valid) { - [ithField becomeFirstResponder]; - break; - } - } - } -} - -- (void)switchToPreviousField:(BTUIFormField *)field { - NSUInteger fieldIndex = [self.fields indexOfObject:field]; - if (fieldIndex == 0) { - return; - } - NSInteger previousIndex = (fieldIndex - 1); - if (previousIndex < 0) { - return; - } - BTUIFormField *previousField = self.fields[previousIndex]; - [previousField becomeFirstResponder]; - if (previousField.text.length > 0) { - [previousField deleteBackward]; - } -} - - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUICTAControl.h b/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUICTAControl.h deleted file mode 100644 index f613d49..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUICTAControl.h +++ /dev/null @@ -1,19 +0,0 @@ -#import -#import "BTUI.h" - -/// The Call To Action control is A button that is intended to be used as the submit button -/// on the bottom of a payment form. As a UIControl subclass, typical target-action event -/// listeners are available. -@interface BTUICTAControl : UIControl - -/// The amount, including a currency symbol, to be displayed. May be nil. -@property (nonatomic, copy) NSString *amount; - -/// The call to action verb, such as "Subscribe" or "Buy". Must be non-nil. -@property (nonatomic, copy) NSString *callToAction; - -- (void)showLoadingState:(BOOL)loadingState; - -@property (nonatomic, strong) BTUI *theme; - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUICTAControl.m b/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUICTAControl.m deleted file mode 100644 index c87437b..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUICTAControl.m +++ /dev/null @@ -1,151 +0,0 @@ -#import "BTUICTAControl.h" -#import "BTUI.h" -#import "UIColor+BTUI.h" - -@interface BTUICTAControl() -@property (nonatomic, strong) UILabel *label; -@property (nonatomic, strong) UIActivityIndicatorView *activityIndicator; -@end - -@implementation BTUICTAControl - -- (id)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - [self setupView]; - } - return self; -} - -- (id)initWithCoder:(NSCoder *)aDecoder { - self = [super initWithCoder:aDecoder]; - if (self) { - [self setupView]; - } - return self; -} - -#pragma mark View Lifecycle - -- (void)setupView { - self.theme = [BTUI braintreeTheme]; - self.backgroundColor = self.tintColor; - - self.label = [[UILabel alloc] init]; - [self.label setTranslatesAutoresizingMaskIntoConstraints:NO]; - - self.label.textColor = [UIColor whiteColor]; - self.label.font = [UIFont systemFontOfSize:17.0f]; - self.label.textAlignment = NSTextAlignmentCenter; - - [self addSubview:self.label]; - - self.activityIndicator = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite]; - self.activityIndicator.translatesAutoresizingMaskIntoConstraints = NO; - [self addSubview:self.activityIndicator]; - - [self addConstraint:[NSLayoutConstraint constraintWithItem:self.activityIndicator attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeCenterX multiplier:1.0f constant:0.0f]]; - [self addConstraint:[NSLayoutConstraint constraintWithItem:self.activityIndicator attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeCenterY multiplier:1.0f constant:0.0f]]; - - self.isAccessibilityElement = YES; - self.accessibilityTraits = UIAccessibilityTraitButton; - - [self updateText]; -} - -- (void)showLoadingState: (__unused BOOL)loadingState{ - if (loadingState) { - self.label.hidden = YES; - [self.activityIndicator startAnimating]; - } else { - self.label.hidden = NO; - [self.activityIndicator stopAnimating]; - } -} - -- (void)updateConstraints { - [self addConstraints:@[[NSLayoutConstraint constraintWithItem:self - attribute:NSLayoutAttributeCenterX - relatedBy:NSLayoutRelationEqual - toItem:self.label - attribute:NSLayoutAttributeCenterX - multiplier:1.0f - constant:0.0f], - - [NSLayoutConstraint constraintWithItem:self - attribute:NSLayoutAttributeCenterY - relatedBy:NSLayoutRelationEqual - toItem:self.label - attribute:NSLayoutAttributeCenterY - multiplier:1.0f - constant:0.0f], - - [NSLayoutConstraint constraintWithItem:self - attribute:NSLayoutAttributeWidth - relatedBy:NSLayoutRelationEqual - toItem:self.label - attribute:NSLayoutAttributeWidth - multiplier:1.0f - constant:0.0f], - - [NSLayoutConstraint constraintWithItem:self - attribute:NSLayoutAttributeHeight - relatedBy:NSLayoutRelationEqual - toItem:self.label - attribute:NSLayoutAttributeHeight - multiplier:1.0f - constant:0.0f], - ]]; - [super updateConstraints]; -} - -#pragma mark Highlight Presentation - -- (void)setHighlighted:(BOOL)highlighted { - [super setHighlighted:highlighted]; - UIColor *newColor = highlighted ? [self.tintColor bt_adjustedBrightness:self.theme.highlightedBrightnessAdjustment] : self.tintColor; - [UIView animateWithDuration:self.theme.quickTransitionDuration animations:^{ - [self setBackgroundColor:newColor]; - }]; -} - -- (void)setEnabled:(BOOL)enabled { - [super setEnabled:enabled]; - UIColor *newColor = enabled ? self.tintColor : self.theme.disabledButtonColor; - [UIView animateWithDuration:self.theme.quickTransitionDuration animations:^{ - [self setBackgroundColor:newColor]; - }]; -} - - -#pragma mark Public Parameters - -- (void)setAmount:(NSString *)amount { - _amount = amount; - [self updateText]; -} - -- (void)setCallToAction:(NSString *)callToAction { - _callToAction = callToAction; - [self updateText]; -} - -#pragma mark State Management - -- (void)updateText { - if (self.amount) { - self.label.text = [NSString stringWithFormat:@"%@ - %@", self.amount, self.callToAction]; - } else { - self.label.text = [NSString stringWithFormat:@"%@", self.callToAction]; - } - self.accessibilityLabel = self.label.text; -} - -#pragma mark - Theme - -- (void)tintColorDidChange { - self.highlighted = self.highlighted; - self.enabled = self.enabled; -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUICardHint.h b/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUICardHint.h deleted file mode 100644 index 2ec7271..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUICardHint.h +++ /dev/null @@ -1,37 +0,0 @@ -#import -#import "BTUIPaymentMethodType.h" -#import "BTUIThemedView.h" - -/// `BTCardHint` has two display modes: one emphasizes the card type, and the second emphasizes the CVV location. -typedef NS_ENUM(NSInteger, BTCardHintDisplayMode) { - /// Emphasize the card's type. - BTCardHintDisplayModeCardType, - /// Emphasize the CVV's location. - BTCardHintDisplayModeCVVHint, -}; - -/// A View that displays a card icon in order to provide users with a hint as to what card type -/// has been detected or where the CVV can be found on that card. -@interface BTUICardHint : BTUIThemedView - -/// The card type to display. -@property (nonatomic, assign) BTUIPaymentMethodType cardType; - -/// Whether to emphasize the card type or the CVV. -@property (nonatomic, assign) BTCardHintDisplayMode displayMode; - -/// Whether it is highlighted with the tint color -@property (nonatomic, assign) BOOL highlighted; - -/// Set highlight with animation -- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated; - -/// Update the current cardType with an optional visual animation -/// @see cardType -- (void)setCardType:(BTUIPaymentMethodType)cardType animated:(BOOL)animated; - -/// Update the current displayMode with an optional visual animation -/// @see displayMode -- (void)setDisplayMode:(BTCardHintDisplayMode)displayMode animated:(BOOL)animated; - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUICardHint.m b/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUICardHint.m deleted file mode 100644 index 6b706ac..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUICardHint.m +++ /dev/null @@ -1,185 +0,0 @@ -#import "BTUICardHint.h" - -#import "BTUI.h" - -#import "BTUICVVFrontVectorArtView.h" -#import "BTUICVVBackVectorArtView.h" - -@interface BTUICardHint () -@property (nonatomic, strong) UIView *hintVectorArtView; -@property (nonatomic, strong) NSArray *hintVectorArtViewConstraints; -@end - -@implementation BTUICardHint - -- (id)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - [self setupView]; - } - return self; -} - -- (id)initWithCoder:(NSCoder *)aDecoder { - self = [super initWithCoder:aDecoder]; - if (self) { - [self setupView]; - } - return self; -} - -- (void)setupView { - self.layer.borderColor = self.theme.cardHintBorderColor.CGColor; - self.layer.borderWidth = 1.0f; - self.layer.cornerRadius = 2.0f; - - self.hintVectorArtView = [[BTUI braintreeTheme] vectorArtViewForPaymentMethodType:BTUIPaymentMethodTypeUnknown]; - [self.hintVectorArtView setTranslatesAutoresizingMaskIntoConstraints:NO]; - [self addSubview:self.hintVectorArtView]; - - [self addConstraint:[NSLayoutConstraint constraintWithItem:self - attribute:NSLayoutAttributeWidth - relatedBy:NSLayoutRelationEqual - toItem:self - attribute:NSLayoutAttributeHeight - multiplier:87.0f/55.0f - constant:0.0f]]; - - [self setNeedsLayout]; -} - -- (void)updateConstraints { - if (self.hintVectorArtViewConstraints) { - [self removeConstraints:self.hintVectorArtViewConstraints]; - } - - self.hintVectorArtViewConstraints = @[[NSLayoutConstraint constraintWithItem:self - attribute:NSLayoutAttributeWidth - relatedBy:NSLayoutRelationEqual - toItem:self.hintVectorArtView - attribute:NSLayoutAttributeWidth - multiplier:1.0f - constant:1.0f], - - [NSLayoutConstraint constraintWithItem:self - attribute:NSLayoutAttributeCenterX - relatedBy:NSLayoutRelationEqual - toItem:self.hintVectorArtView - attribute:NSLayoutAttributeCenterX - multiplier:1.0f - constant:0.0f], - - [NSLayoutConstraint constraintWithItem:self - attribute:NSLayoutAttributeCenterY - relatedBy:NSLayoutRelationEqual - toItem:self.hintVectorArtView - attribute:NSLayoutAttributeCenterY - multiplier:1.0f - constant:0.0f] ]; - - [self addConstraints:self.hintVectorArtViewConstraints]; - - [super updateConstraints]; -} - -- (void)updateViews { - UIView *cardVectorArtView; - switch (self.displayMode) { - case BTCardHintDisplayModeCardType: - cardVectorArtView = [[BTUI braintreeTheme] vectorArtViewForPaymentMethodType:self.cardType]; - break; - case BTCardHintDisplayModeCVVHint: - if (self.cardType == BTUIPaymentMethodTypeAMEX) { - cardVectorArtView = [BTUICVVFrontVectorArtView new]; - } else { - cardVectorArtView = [BTUICVVBackVectorArtView new]; - } - break; - } - - [self.hintVectorArtView removeFromSuperview]; - self.hintVectorArtView = cardVectorArtView; - [self.hintVectorArtView setTranslatesAutoresizingMaskIntoConstraints:NO]; - [self addSubview:self.hintVectorArtView]; - [self setHighlighted:self.highlighted]; - - [self setNeedsUpdateConstraints]; - [self setNeedsLayout]; -} - -- (void)setCardType:(BTUIPaymentMethodType)cardType { - _cardType = cardType; - [self updateViews]; -} - -- (void)setCardType:(BTUIPaymentMethodType)cardType animated:(BOOL)animated { - if (cardType == self.cardType) { - return; - } - if (animated) { - [UIView transitionWithView:self - duration:0.2f - options:UIViewAnimationOptionTransitionCrossDissolve - animations:^{ - [self setCardType:cardType]; - } completion:nil]; - } else { - [self setCardType:cardType]; - } -} - -- (void)setDisplayMode:(BTCardHintDisplayMode)displayMode { - _displayMode = displayMode; - [self updateViews]; -} - -- (void)setDisplayMode:(BTCardHintDisplayMode)displayMode animated:(BOOL)animated { - if (animated) { - [UIView transitionWithView:self - duration:0.2f - options:UIViewAnimationOptionTransitionFlipFromLeft - animations:^{ - [self setDisplayMode:displayMode]; - } completion:nil]; - } else { - [self updateViews]; - } -} - -#pragma mark - Highlighting - -- (void)setHighlighted:(BOOL)highlighted { - [self setHighlighted:highlighted animated:NO]; -} - -- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated { - _highlighted = highlighted; - UIColor *c = highlighted ? self.tintColor : nil; - [self setHighlightColor:c animated:animated]; -} - -- (void)setHighlightColor:(UIColor *)color animated:(BOOL)animated { - if (![self.hintVectorArtView respondsToSelector:@selector(setHighlightColor:)]) { - return; - } - if (animated) { - [UIView transitionWithView:self.hintVectorArtView - duration:self.theme.quickTransitionDuration - options:UIViewAnimationOptionTransitionCrossDissolve - animations:^{ - [self.hintVectorArtView performSelector:@selector(setHighlightColor:) withObject:color]; - [self.hintVectorArtView setNeedsDisplay]; - } - completion:nil - ]; - } else { - [self.hintVectorArtView performSelector:@selector(setHighlightColor:) withObject:color]; - [self.hintVectorArtView setNeedsDisplay]; - } -} - -- (void)tintColorDidChange { - [self setHighlighted:self.highlighted animated:YES]; -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUICoinbaseButton.h b/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUICoinbaseButton.h deleted file mode 100644 index a933787..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUICoinbaseButton.h +++ /dev/null @@ -1,9 +0,0 @@ -#import - -@class BTUI; - -@interface BTUICoinbaseButton : UIControl - -@property (nonatomic, strong) BTUI *theme; - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUICoinbaseButton.m b/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUICoinbaseButton.m deleted file mode 100644 index d27a938..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUICoinbaseButton.m +++ /dev/null @@ -1,87 +0,0 @@ -#import "BTUICoinbaseButton.h" - -#import "BTUI.h" -#import "UIColor+BTUI.h" - -#import "BTUICoinbaseWordmarkVectorArtView.h" -#import "BTUILocalizedString.h" - -@interface BTUICoinbaseButton () -@property (nonatomic, strong) BTUICoinbaseWordmarkVectorArtView *coinbaseWordmark; -@end - -@implementation BTUICoinbaseButton - -- (id)initWithFrame:(CGRect)frame -{ - self = [super initWithFrame:frame]; - if (self) { - [self setupView]; - } - return self; -} - -- (id)initWithCoder:(NSCoder *)aDecoder { - self = [super initWithCoder:aDecoder]; - if (self) { - [self setupView]; - } - return self; -} - -- (void)setupView { - self.theme = [BTUI braintreeTheme]; - self.userInteractionEnabled = YES; - self.clipsToBounds = YES; - self.opaque = NO; - self.backgroundColor = [UIColor whiteColor]; - self.accessibilityLabel = [BTUILocalizedString PAYMENT_METHOD_TYPE_COINBASE]; - - self.coinbaseWordmark = [[BTUICoinbaseWordmarkVectorArtView alloc] init]; - self.coinbaseWordmark.userInteractionEnabled = NO; - self.coinbaseWordmark.translatesAutoresizingMaskIntoConstraints = NO; - self.coinbaseWordmark.color = [self.theme coinbasePrimaryBlue]; - - [self addSubview:self.coinbaseWordmark]; -} - -- (void)updateConstraints { - NSDictionary *metrics = @{ @"minHeight": @([self.theme paymentButtonMinHeight]), - @"maxHeight": @([self.theme paymentButtonMaxHeight]), - @"minWidth": @(200), - @"required": @(UILayoutPriorityRequired), - @"high": @(UILayoutPriorityDefaultHigh), - @"breathingRoom": @(10) }; - NSDictionary *views = @{ @"self": self , - @"coinbaseWordmark": self.coinbaseWordmark }; - - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[coinbaseWordmark]|" - options:0 - metrics:metrics - views:views]]; - - [self addConstraint:[NSLayoutConstraint constraintWithItem:self - attribute:NSLayoutAttributeCenterX - relatedBy:NSLayoutRelationEqual - toItem:self.coinbaseWordmark - attribute:NSLayoutAttributeCenterX - multiplier:1.0f - constant:0.0f]]; - - [super updateConstraints]; -} - -- (void)setHighlighted:(BOOL)highlighted { - [UIView animateWithDuration:0.08f - delay:0.0f - options:UIViewAnimationOptionBeginFromCurrentState animations:^{ - if (highlighted) { - self.backgroundColor = [UIColor colorWithWhite:0.92f alpha:1.0f]; - } else { - self.backgroundColor = [UIColor whiteColor]; - } - } - completion:nil]; -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUIPayPalButton.h b/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUIPayPalButton.h deleted file mode 100644 index 566f0a0..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUIPayPalButton.h +++ /dev/null @@ -1,9 +0,0 @@ -#import - -@class BTUI; - -@interface BTUIPayPalButton : UIControl - -@property (nonatomic, strong) BTUI *theme; - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUIPayPalButton.m b/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUIPayPalButton.m deleted file mode 100644 index ec0eb76..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUIPayPalButton.m +++ /dev/null @@ -1,87 +0,0 @@ -#import "BTUIPayPalButton.h" - -#import "BTUIPayPalWordmarkVectorArtView.h" - -#import "BTUI.h" - -@interface BTUIPayPalButton () -@property (nonatomic, strong) BTUIPayPalWordmarkVectorArtView *payPalWordmark; -@end - -@implementation BTUIPayPalButton - -- (id)initWithFrame:(CGRect)frame -{ - self = [super initWithFrame:frame]; - if (self) { - [self setupView]; - } - return self; -} - -- (id)initWithCoder:(NSCoder *)aDecoder { - self = [super initWithCoder:aDecoder]; - if (self) { - [self setupView]; - } - return self; -} - -- (void)setupView { - self.theme = [BTUI braintreeTheme]; - self.userInteractionEnabled = YES; - self.clipsToBounds = YES; - self.opaque = NO; - self.backgroundColor = [UIColor whiteColor]; - - self.payPalWordmark = [[BTUIPayPalWordmarkVectorArtView alloc] initWithPadding]; - self.payPalWordmark.userInteractionEnabled = NO; - self.payPalWordmark.translatesAutoresizingMaskIntoConstraints = NO; - - [self addSubview:self.payPalWordmark]; -} - -- (void)updateConstraints { - NSDictionary *metrics = @{ @"minHeight": @([self.theme paymentButtonMinHeight]), - @"maxHeight": @([self.theme paymentButtonMaxHeight]), - @"minWidth": @(200), - @"required": @(UILayoutPriorityRequired), - @"high": @(UILayoutPriorityDefaultHigh), - @"breathingRoom": @(10) }; - NSDictionary *views = @{ @"self": self , - @"payPalWordmark": self.payPalWordmark }; - - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[payPalWordmark]|" - options:0 - metrics:metrics - views:views]]; - - [self addConstraint:[NSLayoutConstraint constraintWithItem:self - attribute:NSLayoutAttributeCenterX - relatedBy:NSLayoutRelationEqual - toItem:self.payPalWordmark - attribute:NSLayoutAttributeCenterX - multiplier:1.0f - constant:0.0f]]; - - [super updateConstraints]; -} - -- (CGSize)intrinsicContentSize { - return CGSizeMake(UIViewNoIntrinsicMetric, 44); -} - -- (void)setHighlighted:(BOOL)highlighted { - [UIView animateWithDuration:0.08f - delay:0.0f - options:UIViewAnimationOptionBeginFromCurrentState animations:^{ - if (highlighted) { - self.backgroundColor = [UIColor colorWithWhite:0.92f alpha:1.0f]; - } else { - self.backgroundColor = [UIColor whiteColor]; - } - } - completion:nil]; -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUIPaymentMethodView.h b/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUIPaymentMethodView.h deleted file mode 100644 index 5601e82..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUIPaymentMethodView.h +++ /dev/null @@ -1,19 +0,0 @@ -#import -#import "BTUIPaymentMethodType.h" -#import "BTUIThemedView.h" - -/// A view that indicates the currently selected payment method, be it a credit card or a PayPal account. -@interface BTUIPaymentMethodView : BTUIThemedView - -/// The type of payment method to display. -@property (nonatomic, assign) BTUIPaymentMethodType type; - -/// An optional string description of the payment method. -/// -/// For example, you could say "ending in 02" for a credit card. -@property (nonatomic, copy) NSString *detailDescription; - -/// When true, all content is hidden and a loading spinner is displayed. -@property (nonatomic, assign, getter = isProcessing) BOOL processing; - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUIPaymentMethodView.m b/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUIPaymentMethodView.m deleted file mode 100644 index 62cee7e..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUIPaymentMethodView.m +++ /dev/null @@ -1,232 +0,0 @@ -#import "BTUIPaymentMethodView.h" -#import "BTUI.h" -#import "BTUICardType.h" -#import "BTUIViewUtil.h" - -#import "BTUIUnknownCardVectorArtView.h" - -typedef NS_ENUM(NSInteger, BTPaymentMethodViewState) { - BTPaymentMethodViewStateNormal, - BTPaymentMethodViewStateProcessing, -}; - -@interface BTUIPaymentMethodView () - -@property (nonatomic, assign) BTPaymentMethodViewState contentState; - -@property (nonatomic, strong) UIView *iconView; -@property (nonatomic, strong) UILabel *typeLabel; -@property (nonatomic, strong) UILabel *detailDescriptionLabel; -@property (nonatomic, strong) UIActivityIndicatorView *activityIndicatorView; - -@property (nonatomic, strong) UIView *topBorder; -@property (nonatomic, strong) UIView *bottomBorder; - -@property (nonatomic, strong) NSArray *centeredLogoConstraints; -@property (nonatomic, strong) NSArray *logoEmailConstraints; - -@end - -@implementation BTUIPaymentMethodView - -- (instancetype)init { - self = [self initWithFrame:CGRectZero]; - return self; -} - -- (instancetype)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - [self setupViews]; - } - return self; -} - -- (instancetype)initWithCoder:(NSCoder *)aDecoder { - self = [super initWithCoder:aDecoder]; - if (self) { - [self setupViews]; - } - return self; -} - -+ (BOOL)requiresConstraintBasedLayout { - return YES; -} - -- (void)setupViews { - - self.clipsToBounds = YES; - - self.iconView = [BTUIUnknownCardVectorArtView new]; - [self.iconView setTranslatesAutoresizingMaskIntoConstraints:NO]; - - self.typeLabel = [[UILabel alloc] init]; - [self.typeLabel setTranslatesAutoresizingMaskIntoConstraints:NO]; - self.typeLabel.font = [self.theme controlTitleFont]; - [self.typeLabel setTextColor:[self.theme titleColor]]; - [self.typeLabel setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; - [self.typeLabel setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal]; - - self.detailDescriptionLabel = [[UILabel alloc] init]; - [self.detailDescriptionLabel setTranslatesAutoresizingMaskIntoConstraints:NO]; - self.detailDescriptionLabel.lineBreakMode = NSLineBreakByTruncatingMiddle; // TODO - use attributed string for line break - self.detailDescriptionLabel.font = [self.theme controlDetailFont]; - [self.detailDescriptionLabel setTextColor:[self.theme detailColor]]; - - // Activity Indicators - self.activityIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray]; - self.activityIndicatorView.hidden = YES; - [self.activityIndicatorView setTranslatesAutoresizingMaskIntoConstraints:NO]; - - self.topBorder = [[UIView alloc] init]; - self.topBorder.backgroundColor = [self.theme borderColor]; - self.topBorder.translatesAutoresizingMaskIntoConstraints = NO; - - self.bottomBorder = [[UIView alloc] init]; - self.bottomBorder.backgroundColor = [self.theme borderColor]; - self.bottomBorder.translatesAutoresizingMaskIntoConstraints = NO; - - [self addSubview:self.iconView]; - [self addSubview:self.typeLabel]; - [self addSubview:self.detailDescriptionLabel]; - [self addSubview:self.activityIndicatorView]; - [self addSubview:self.topBorder]; - [self addSubview:self.bottomBorder]; - - // Setup initial state - self.contentState = BTPaymentMethodViewStateNormal; - - // Setup views based on initial state - [self updateSubviews]; -} - -- (void)updateConstraints { - [self removeConstraints:self.constraints]; - - NSDictionary *views = @{ @"topBorder": self.topBorder, - @"bottomBorder": self.bottomBorder, - @"methodTypeView": self.typeLabel, - @"emailView": self.detailDescriptionLabel, - @"activityIndicatorView": self.activityIndicatorView, - @"iconView": self.iconView }; - NSDictionary *metrics = @{ @"logoWidth": @30, - @"pad": @12, - @"sp": @5, - @"activityIndicatorViewSize": @60, - @"iconViewHeight": @21, - @"borderWidth": @(self.theme.borderWidth * 1) }; - - NSLayoutConstraint *constraint; - - // Minimum height - constraint = [NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationGreaterThanOrEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0f constant:40.0f]; - constraint.priority = UILayoutPriorityRequired; - [self addConstraint:constraint]; - - // Maximum height - constraint = [NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationLessThanOrEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0f constant:60.0f]; - constraint.priority = UILayoutPriorityRequired; - [self addConstraint:constraint]; - - // Minimum width - constraint = [NSLayoutConstraint constraintWithItem:self attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationGreaterThanOrEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0f constant:260.0f]; - constraint.priority = UILayoutPriorityRequired; - [self addConstraint:constraint]; - - // Centered activity indicator - [self addConstraint:[NSLayoutConstraint constraintWithItem:self.activityIndicatorView attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeCenterY multiplier:1.0f constant:0.0f]]; - [self addConstraint:[NSLayoutConstraint constraintWithItem:self.activityIndicatorView attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeCenterX multiplier:1.0f constant:0.0f]]; - - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[activityIndicatorView(==activityIndicatorViewSize)]" options:0 metrics:metrics views:views]]; - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[activityIndicatorView(==activityIndicatorViewSize)]" options:0 metrics:metrics views:views]]; - - // Full Width Borders - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[topBorder]|" options:0 metrics:metrics views:views]]; - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[topBorder(==borderWidth)]" options:0 metrics:metrics views:views]]; - - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[bottomBorder]|" options:0 metrics:metrics views:views]]; - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[bottomBorder(==borderWidth)]|" options:0 metrics:metrics views:views]]; - - // Icon & type - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[iconView(==iconViewHeight)]" - options:0 - metrics:metrics - views:views]]; - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(pad)-[iconView]-sp-[methodTypeView]" - options:NSLayoutFormatAlignAllCenterY - metrics:metrics - views:views]]; - - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[methodTypeView]-sp-[emailView]" - options:NSLayoutFormatAlignAllBaseline - metrics:metrics - views:views]]; - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[emailView]-(pad)-|" - options:NSLayoutFormatAlignAllBaseline - metrics:metrics - views:views]]; - [self addConstraint:[NSLayoutConstraint constraintWithItem:self.iconView attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeCenterY multiplier:1 constant:0.0f]]; - - [super updateConstraints]; -} - -- (void)updateSubviews { - switch (self.contentState) { - case BTPaymentMethodViewStateNormal: - self.typeLabel.text = [BTUIViewUtil nameForPaymentMethodType:self.type]; - - self.detailDescriptionLabel.text = self.detailDescription; - - [self.iconView removeFromSuperview]; - self.iconView = [self.theme vectorArtViewForPaymentMethodType:self.type]; - [self.iconView setTranslatesAutoresizingMaskIntoConstraints:NO]; - [self addSubview:self.iconView]; - - self.backgroundColor = [UIColor whiteColor]; - self.layer.borderColor = [self.theme borderColor].CGColor; - self.iconView.alpha = 1.0f; - self.typeLabel.alpha = 1.0f; - self.detailDescriptionLabel.alpha = 1.0f; - self.activityIndicatorView.alpha = 0.0f; - [self.activityIndicatorView stopAnimating]; - break; - case BTPaymentMethodViewStateProcessing: - self.backgroundColor = [UIColor whiteColor]; - self.layer.borderColor = [self.theme borderColor].CGColor; - self.iconView.alpha = 0.0f; - self.typeLabel.alpha = 0.0f; - self.detailDescriptionLabel.alpha = 0.0f; - self.activityIndicatorView.alpha = 1.0f; - [self.activityIndicatorView startAnimating]; - break; - default: - break; - } - - [self setNeedsUpdateConstraints]; - [self setNeedsLayout]; -} - -#pragma mark - - -- (void)setDetailDescription:(NSString *)paymentMethodDescription { - _detailDescription = paymentMethodDescription; - [self updateSubviews]; -} - -- (void)setType:(BTUIPaymentMethodType)type { - _type = type; - [self updateSubviews]; -} - -- (void)setProcessing:(BOOL)processing { - _processing = processing; - - self.contentState = processing ? BTPaymentMethodViewStateProcessing : BTPaymentMethodViewStateNormal; - [UIView animateWithDuration:0.3f animations:^{ - [self updateSubviews]; - }]; -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUISummaryView.h b/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUISummaryView.h deleted file mode 100644 index 08ce0e2..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUISummaryView.h +++ /dev/null @@ -1,17 +0,0 @@ -#import -#import "BTUIThemedView.h" - -/// Informational view that displays a summary of the shopping cart or other relevant data for -/// checkout experience that user is agreing too. -@interface BTUISummaryView : BTUIThemedView - -/// The text to display as the primary description of the purchase. -@property (nonatomic, copy) NSString *slug; - -/// The text to display as the secondary summary of the purchase. -@property (nonatomic, copy) NSString *summary; - -/// The textual representation of the dollar amount for the purchase including the currency symbol -@property (nonatomic, copy) NSString *amount; - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUISummaryView.m b/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUISummaryView.m deleted file mode 100644 index f6a42cb..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUISummaryView.m +++ /dev/null @@ -1,130 +0,0 @@ -#import "BTUISummaryView.h" -#import "BTUI.h" - -@interface BTUISummaryView () -@property (nonatomic, strong) UILabel *slugLabel; -@property (nonatomic, strong) UILabel *summaryLabel; -@property (nonatomic, strong) UILabel *amountLabel; -@end - -@implementation BTUISummaryView - -- (id)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - [self setupView]; - } - return self; -} - -- (id)initWithCoder:(NSCoder *)aDecoder { - self = [super initWithCoder:aDecoder]; - if (self) { - [self setupView]; - } - return self; -} - -- (void)setupView { - self.backgroundColor = [UIColor whiteColor]; - - // Create subviews - self.slugLabel = [[UILabel alloc] init]; - self.slugLabel.lineBreakMode = NSLineBreakByWordWrapping; - self.slugLabel.numberOfLines = 0; - - self.summaryLabel = [[UILabel alloc] init]; - self.summaryLabel.lineBreakMode = NSLineBreakByWordWrapping; - self.summaryLabel.numberOfLines = 0; - - self.amountLabel = [[UILabel alloc] init]; - [self.amountLabel setContentCompressionResistancePriority:1000 forAxis:UILayoutConstraintAxisHorizontal]; - [self.amountLabel setContentHuggingPriority:1000 forAxis:UILayoutConstraintAxisHorizontal]; - - [self setTheme:self.theme]; - - // Configure subviews - [self.slugLabel setTranslatesAutoresizingMaskIntoConstraints:NO]; - [self.summaryLabel setTranslatesAutoresizingMaskIntoConstraints:NO]; - [self.amountLabel setTranslatesAutoresizingMaskIntoConstraints:NO]; - - // Add subviews - [self addSubview:self.slugLabel]; - [self addSubview:self.summaryLabel]; - [self addSubview:self.amountLabel]; - - // Set content - [self updateText]; -} - -- (void)setTheme:(BTUI *)theme { - [super setTheme:theme]; - self.slugLabel.font = self.theme.controlTitleFont; - self.summaryLabel.font = self.theme.controlFont; - self.amountLabel.font = self.theme.controlTitleFont; -} - -- (void)updateConstraints { - NSDictionary *views = @{@"view": self, - @"slugLabel": self.slugLabel, - @"summaryLabel": self.summaryLabel, - @"amountLabel": self.amountLabel }; - NSDictionary *metrics = @{@"height": @65.0f, - @"topPadding": @10.0f, - @"middlePadding": @2, - @"horizontalMargin": @(self.theme.horizontalMargin)}; - - // View Constraints - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[view(>=height)]" - options:0 - metrics:metrics - views:views]]; - - // Slug and Amount Label Constraints - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(horizontalMargin)-[slugLabel]-[amountLabel]-(horizontalMargin)-|" - options:0 - metrics:metrics - views:views]]; - - // Summary Label Constraints - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-(horizontalMargin)-[summaryLabel]-(horizontalMargin)-|" - options:0 - metrics:metrics - views:views]]; - - // Vertical Constraints - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(topPadding)-[slugLabel]-(middlePadding)-[summaryLabel]-(topPadding)-|" - options:0 - metrics:metrics - views:views]]; - - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(topPadding)-[amountLabel]" - options:0 - metrics:metrics - views:views]]; - - [super updateConstraints]; -} - -- (void)setSlug:(NSString *)slug { - _slug = slug; - [self updateText]; -} - -- (void)setSummary:(NSString *)summary { - _summary = summary; - [self updateText]; -} - -- (void)setAmount:(NSString *)amount { - _amount = amount; - [self updateText]; -} - -- (void)updateText { - self.slugLabel.text = self.slug; - self.summaryLabel.text = self.summary; - self.amountLabel.text = self.amount; -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUIVenmoButton.h b/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUIVenmoButton.h deleted file mode 100644 index 515bd4b..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUIVenmoButton.h +++ /dev/null @@ -1,9 +0,0 @@ -#import - -@class BTUI; - -@interface BTUIVenmoButton : UIControl - -@property (nonatomic, strong) BTUI *theme; - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUIVenmoButton.m b/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUIVenmoButton.m deleted file mode 100644 index 5286710..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Payments Components/BTUIVenmoButton.m +++ /dev/null @@ -1,85 +0,0 @@ -#import "BTUIVenmoButton.h" - -#import "BTUI.h" -#import "UIColor+BTUI.h" - -#import "BTUIVenmoWordmarkVectorArtView.h" - -@interface BTUIVenmoButton () -@property (nonatomic, strong) BTUIVenmoWordmarkVectorArtView *venmoWordmark; -@end - -@implementation BTUIVenmoButton - -- (id)initWithFrame:(CGRect)frame -{ - self = [super initWithFrame:frame]; - if (self) { - [self setupView]; - } - return self; -} - -- (id)initWithCoder:(NSCoder *)aDecoder { - self = [super initWithCoder:aDecoder]; - if (self) { - [self setupView]; - } - return self; -} - -- (void)setupView { - self.theme = [BTUI braintreeTheme]; - self.userInteractionEnabled = YES; - self.clipsToBounds = YES; - self.opaque = NO; - self.backgroundColor = [UIColor whiteColor]; - - self.venmoWordmark = [[BTUIVenmoWordmarkVectorArtView alloc] init]; - self.venmoWordmark.userInteractionEnabled = NO; - self.venmoWordmark.translatesAutoresizingMaskIntoConstraints = NO; - self.venmoWordmark.color = [self.theme venmoPrimaryBlue]; - - [self addSubview:self.venmoWordmark]; -} - -- (void)updateConstraints { - NSDictionary *metrics = @{ @"minHeight": @([self.theme paymentButtonMinHeight]), - @"maxHeight": @([self.theme paymentButtonMaxHeight]), - @"minWidth": @(200), - @"required": @(UILayoutPriorityRequired), - @"high": @(UILayoutPriorityDefaultHigh), - @"breathingRoom": @(10) }; - NSDictionary *views = @{ @"self": self , - @"venmoWordmark": self.venmoWordmark }; - - [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[venmoWordmark]|" - options:0 - metrics:metrics - views:views]]; - - [self addConstraint:[NSLayoutConstraint constraintWithItem:self - attribute:NSLayoutAttributeCenterX - relatedBy:NSLayoutRelationEqual - toItem:self.venmoWordmark - attribute:NSLayoutAttributeCenterX - multiplier:1.0f - constant:0.0f]]; - - [super updateConstraints]; -} - -- (void)setHighlighted:(BOOL)highlighted { - [UIView animateWithDuration:0.08f - delay:0.0f - options:UIViewAnimationOptionBeginFromCurrentState animations:^{ - if (highlighted) { - self.backgroundColor = [UIColor colorWithWhite:0.92f alpha:1.0f]; - } else { - self.backgroundColor = [UIColor whiteColor]; - } - } - completion:nil]; -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIAmExVectorArtView.h b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIAmExVectorArtView.h deleted file mode 100644 index 14cc7c4..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIAmExVectorArtView.h +++ /dev/null @@ -1,5 +0,0 @@ -#import "BTUICardVectorArtView.h" - -@interface BTUIAmExVectorArtView : BTUICardVectorArtView - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIAmExVectorArtView.m b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIAmExVectorArtView.m deleted file mode 100644 index 1e8976d..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIAmExVectorArtView.m +++ /dev/null @@ -1,343 +0,0 @@ -#import "BTUIAmExVectorArtView.h" - -@implementation BTUIAmExVectorArtView - -- (void)drawArt { - //// Color Declarations - UIColor* color1 = [UIColor colorWithRed: 0.059 green: 0.469 blue: 0.655 alpha: 1]; - - //// Page-1 - { - //// AmEx - { - //// amex - { - //// _x34__x5F_COL_x5F_SQ - { - //// Express - { - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint: CGPointMake(54.98, 38.33)]; - [bezierPath addLineToPoint: CGPointMake(54.98, 36.35)]; - [bezierPath addCurveToPoint: CGPointMake(53.19, 34.8) controlPoint1: CGPointMake(54.98, 36.35) controlPoint2: CGPointMake(54.87, 34.8)]; - [bezierPath addLineToPoint: CGPointMake(50.58, 34.8)]; - [bezierPath addLineToPoint: CGPointMake(50.58, 38.33)]; - [bezierPath addLineToPoint: CGPointMake(47.9, 38.33)]; - [bezierPath addLineToPoint: CGPointMake(47.9, 28.14)]; - [bezierPath addLineToPoint: CGPointMake(54.4, 28.14)]; - [bezierPath addCurveToPoint: CGPointMake(57.8, 31.12) controlPoint1: CGPointMake(54.4, 28.14) controlPoint2: CGPointMake(57.8, 27.74)]; - [bezierPath addCurveToPoint: CGPointMake(56.3, 33.5) controlPoint1: CGPointMake(57.8, 32.88) controlPoint2: CGPointMake(56.3, 33.5)]; - [bezierPath addCurveToPoint: CGPointMake(57.58, 35.81) controlPoint1: CGPointMake(56.3, 33.5) controlPoint2: CGPointMake(57.58, 34.09)]; - [bezierPath addLineToPoint: CGPointMake(57.58, 38.33)]; - [bezierPath addLineToPoint: CGPointMake(54.98, 38.33)]; - [bezierPath moveToPoint: CGPointMake(50.58, 32.4)]; - [bezierPath addLineToPoint: CGPointMake(53.35, 32.4)]; - [bezierPath addCurveToPoint: CGPointMake(54.82, 31.43) controlPoint1: CGPointMake(54.15, 32.4) controlPoint2: CGPointMake(54.82, 31.97)]; - [bezierPath addCurveToPoint: CGPointMake(53.35, 30.47) controlPoint1: CGPointMake(54.82, 30.9) controlPoint2: CGPointMake(54.15, 30.47)]; - [bezierPath addLineToPoint: CGPointMake(50.58, 30.47)]; - [bezierPath addLineToPoint: CGPointMake(50.58, 32.4)]; - [bezierPath closePath]; - bezierPath.miterLimit = 4; - - bezierPath.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezierPath fill]; - - - //// Bezier 2 Drawing - UIBezierPath* bezier2Path = [UIBezierPath bezierPath]; - [bezier2Path moveToPoint: CGPointMake(37.11, 38.35)]; - [bezier2Path addLineToPoint: CGPointMake(34.77, 38.35)]; - [bezier2Path addLineToPoint: CGPointMake(31.93, 35.33)]; - [bezier2Path addLineToPoint: CGPointMake(29.08, 38.35)]; - [bezier2Path addLineToPoint: CGPointMake(27.45, 38.35)]; - [bezier2Path addLineToPoint: CGPointMake(19.11, 38.35)]; - [bezier2Path addLineToPoint: CGPointMake(19.11, 28.13)]; - [bezier2Path addLineToPoint: CGPointMake(27.45, 28.13)]; - [bezier2Path addLineToPoint: CGPointMake(28.86, 28.13)]; - [bezier2Path addLineToPoint: CGPointMake(31.93, 31.38)]; - [bezier2Path addLineToPoint: CGPointMake(35.02, 28.15)]; - [bezier2Path addLineToPoint: CGPointMake(37.08, 28.15)]; - [bezier2Path addLineToPoint: CGPointMake(37.08, 28.13)]; - [bezier2Path addLineToPoint: CGPointMake(43.58, 28.13)]; - [bezier2Path addCurveToPoint: CGPointMake(46.97, 31.13) controlPoint1: CGPointMake(43.58, 28.13) controlPoint2: CGPointMake(46.97, 27.77)]; - [bezier2Path addCurveToPoint: CGPointMake(42.38, 35.07) controlPoint1: CGPointMake(46.97, 34.14) controlPoint2: CGPointMake(45.85, 35.07)]; - [bezier2Path addLineToPoint: CGPointMake(39.76, 35.07)]; - [bezier2Path addLineToPoint: CGPointMake(39.76, 38.35)]; - [bezier2Path addLineToPoint: CGPointMake(37.11, 38.35)]; - [bezier2Path closePath]; - [bezier2Path moveToPoint: CGPointMake(33.76, 33.33)]; - [bezier2Path addLineToPoint: CGPointMake(37.08, 36.88)]; - [bezier2Path addLineToPoint: CGPointMake(37.08, 29.79)]; - [bezier2Path addLineToPoint: CGPointMake(33.76, 33.33)]; - [bezier2Path closePath]; - [bezier2Path moveToPoint: CGPointMake(21.81, 36.14)]; - [bezier2Path addLineToPoint: CGPointMake(27.45, 36.14)]; - [bezier2Path addLineToPoint: CGPointMake(30.1, 33.33)]; - [bezier2Path addLineToPoint: CGPointMake(27.45, 30.53)]; - [bezier2Path addLineToPoint: CGPointMake(21.81, 30.53)]; - [bezier2Path addLineToPoint: CGPointMake(21.81, 32.1)]; - [bezier2Path addLineToPoint: CGPointMake(27.31, 32.1)]; - [bezier2Path addLineToPoint: CGPointMake(27.31, 34.41)]; - [bezier2Path addLineToPoint: CGPointMake(21.81, 34.41)]; - [bezier2Path addLineToPoint: CGPointMake(21.81, 36.14)]; - [bezier2Path closePath]; - [bezier2Path moveToPoint: CGPointMake(39.76, 32.41)]; - [bezier2Path addLineToPoint: CGPointMake(42.53, 32.41)]; - [bezier2Path addCurveToPoint: CGPointMake(43.99, 31.45) controlPoint1: CGPointMake(43.33, 32.41) controlPoint2: CGPointMake(43.99, 31.98)]; - [bezier2Path addCurveToPoint: CGPointMake(42.53, 30.48) controlPoint1: CGPointMake(43.99, 30.91) controlPoint2: CGPointMake(43.33, 30.48)]; - [bezier2Path addLineToPoint: CGPointMake(39.76, 30.48)]; - [bezier2Path addLineToPoint: CGPointMake(39.76, 32.41)]; - [bezier2Path closePath]; - bezier2Path.miterLimit = 4; - - bezier2Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier2Path fill]; - - - //// Bezier 3 Drawing - UIBezierPath* bezier3Path = [UIBezierPath bezierPath]; - [bezier3Path moveToPoint: CGPointMake(73.25, 38.3)]; - [bezier3Path addLineToPoint: CGPointMake(68.48, 38.3)]; - [bezier3Path addLineToPoint: CGPointMake(68.48, 35.96)]; - [bezier3Path addLineToPoint: CGPointMake(72.66, 35.96)]; - [bezier3Path addCurveToPoint: CGPointMake(74.16, 35.15) controlPoint1: CGPointMake(72.66, 35.96) controlPoint2: CGPointMake(74.16, 36.13)]; - [bezier3Path addCurveToPoint: CGPointMake(71.89, 34.3) controlPoint1: CGPointMake(74.16, 34.23) controlPoint2: CGPointMake(71.89, 34.3)]; - [bezier3Path addCurveToPoint: CGPointMake(68.19, 31.26) controlPoint1: CGPointMake(71.89, 34.3) controlPoint2: CGPointMake(68.19, 34.61)]; - [bezier3Path addCurveToPoint: CGPointMake(71.53, 28.12) controlPoint1: CGPointMake(68.19, 27.93) controlPoint2: CGPointMake(71.53, 28.12)]; - [bezier3Path addLineToPoint: CGPointMake(76.68, 28.12)]; - [bezier3Path addLineToPoint: CGPointMake(76.68, 30.5)]; - [bezier3Path addLineToPoint: CGPointMake(72.54, 30.5)]; - [bezier3Path addCurveToPoint: CGPointMake(71.11, 31.23) controlPoint1: CGPointMake(72.54, 30.5) controlPoint2: CGPointMake(71.11, 30.23)]; - [bezier3Path addCurveToPoint: CGPointMake(73.05, 31.95) controlPoint1: CGPointMake(71.11, 32.07) controlPoint2: CGPointMake(73.05, 31.95)]; - [bezier3Path addCurveToPoint: CGPointMake(77.14, 34.73) controlPoint1: CGPointMake(73.05, 31.95) controlPoint2: CGPointMake(77.14, 31.66)]; - [bezier3Path addCurveToPoint: CGPointMake(73.57, 38.32) controlPoint1: CGPointMake(77.14, 38.03) controlPoint2: CGPointMake(74.51, 38.32)]; - [bezier3Path addCurveToPoint: CGPointMake(73.25, 38.3) controlPoint1: CGPointMake(73.37, 38.32) controlPoint2: CGPointMake(73.25, 38.3)]; - [bezier3Path closePath]; - bezier3Path.miterLimit = 4; - - bezier3Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier3Path fill]; - - - //// Bezier 4 Drawing - UIBezierPath* bezier4Path = [UIBezierPath bezierPath]; - [bezier4Path moveToPoint: CGPointMake(58.91, 38.3)]; - [bezier4Path addLineToPoint: CGPointMake(58.91, 28.12)]; - [bezier4Path addLineToPoint: CGPointMake(67.26, 28.12)]; - [bezier4Path addLineToPoint: CGPointMake(67.26, 30.49)]; - [bezier4Path addLineToPoint: CGPointMake(61.6, 30.49)]; - [bezier4Path addLineToPoint: CGPointMake(61.6, 32.06)]; - [bezier4Path addLineToPoint: CGPointMake(67.12, 32.06)]; - [bezier4Path addLineToPoint: CGPointMake(67.12, 34.37)]; - [bezier4Path addLineToPoint: CGPointMake(61.6, 34.37)]; - [bezier4Path addLineToPoint: CGPointMake(61.6, 36.1)]; - [bezier4Path addLineToPoint: CGPointMake(67.26, 36.1)]; - [bezier4Path addLineToPoint: CGPointMake(67.26, 38.3)]; - [bezier4Path addLineToPoint: CGPointMake(58.91, 38.3)]; - [bezier4Path closePath]; - bezier4Path.miterLimit = 4; - - bezier4Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier4Path fill]; - - - //// Bezier 5 Drawing - UIBezierPath* bezier5Path = [UIBezierPath bezierPath]; - [bezier5Path moveToPoint: CGPointMake(82.7, 38.3)]; - [bezier5Path addLineToPoint: CGPointMake(77.93, 38.3)]; - [bezier5Path addLineToPoint: CGPointMake(77.93, 35.96)]; - [bezier5Path addLineToPoint: CGPointMake(82.09, 35.96)]; - [bezier5Path addCurveToPoint: CGPointMake(83.61, 35.15) controlPoint1: CGPointMake(82.09, 35.96) controlPoint2: CGPointMake(83.61, 36.13)]; - [bezier5Path addCurveToPoint: CGPointMake(81.34, 34.3) controlPoint1: CGPointMake(83.61, 34.23) controlPoint2: CGPointMake(81.34, 34.3)]; - [bezier5Path addCurveToPoint: CGPointMake(77.64, 31.26) controlPoint1: CGPointMake(81.34, 34.3) controlPoint2: CGPointMake(77.64, 34.61)]; - [bezier5Path addCurveToPoint: CGPointMake(80.98, 28.12) controlPoint1: CGPointMake(77.64, 27.93) controlPoint2: CGPointMake(80.98, 28.12)]; - [bezier5Path addLineToPoint: CGPointMake(86.11, 28.12)]; - [bezier5Path addLineToPoint: CGPointMake(86.11, 30.5)]; - [bezier5Path addLineToPoint: CGPointMake(81.98, 30.5)]; - [bezier5Path addCurveToPoint: CGPointMake(80.56, 31.23) controlPoint1: CGPointMake(81.98, 30.5) controlPoint2: CGPointMake(80.56, 30.23)]; - [bezier5Path addCurveToPoint: CGPointMake(82.5, 31.95) controlPoint1: CGPointMake(80.56, 32.07) controlPoint2: CGPointMake(82.5, 31.95)]; - [bezier5Path addCurveToPoint: CGPointMake(86.59, 34.73) controlPoint1: CGPointMake(82.5, 31.95) controlPoint2: CGPointMake(86.59, 31.66)]; - [bezier5Path addCurveToPoint: CGPointMake(83.02, 38.32) controlPoint1: CGPointMake(86.59, 38.03) controlPoint2: CGPointMake(83.96, 38.32)]; - [bezier5Path addCurveToPoint: CGPointMake(82.7, 38.3) controlPoint1: CGPointMake(82.82, 38.32) controlPoint2: CGPointMake(82.7, 38.3)]; - [bezier5Path closePath]; - bezier5Path.miterLimit = 4; - - bezier5Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier5Path fill]; - } - - - //// American - { - //// Bezier 6 Drawing - UIBezierPath* bezier6Path = [UIBezierPath bezierPath]; - [bezier6Path moveToPoint: CGPointMake(45.31, 27.39)]; - [bezier6Path addLineToPoint: CGPointMake(45.31, 25.41)]; - [bezier6Path addCurveToPoint: CGPointMake(43.53, 23.85) controlPoint1: CGPointMake(45.31, 25.41) controlPoint2: CGPointMake(45.2, 23.85)]; - [bezier6Path addLineToPoint: CGPointMake(40.92, 23.85)]; - [bezier6Path addLineToPoint: CGPointMake(40.92, 27.39)]; - [bezier6Path addLineToPoint: CGPointMake(38.24, 27.39)]; - [bezier6Path addLineToPoint: CGPointMake(38.24, 17.19)]; - [bezier6Path addLineToPoint: CGPointMake(44.74, 17.19)]; - [bezier6Path addCurveToPoint: CGPointMake(48.14, 20.18) controlPoint1: CGPointMake(44.74, 17.19) controlPoint2: CGPointMake(48.14, 16.8)]; - [bezier6Path addCurveToPoint: CGPointMake(46.63, 22.56) controlPoint1: CGPointMake(48.14, 21.94) controlPoint2: CGPointMake(46.63, 22.56)]; - [bezier6Path addCurveToPoint: CGPointMake(47.94, 24.87) controlPoint1: CGPointMake(46.63, 22.56) controlPoint2: CGPointMake(47.94, 23.15)]; - [bezier6Path addLineToPoint: CGPointMake(47.94, 27.39)]; - [bezier6Path addLineToPoint: CGPointMake(45.31, 27.39)]; - [bezier6Path moveToPoint: CGPointMake(40.92, 21.45)]; - [bezier6Path addLineToPoint: CGPointMake(43.69, 21.45)]; - [bezier6Path addCurveToPoint: CGPointMake(45.15, 20.49) controlPoint1: CGPointMake(44.49, 21.45) controlPoint2: CGPointMake(45.15, 21.02)]; - [bezier6Path addCurveToPoint: CGPointMake(43.69, 19.52) controlPoint1: CGPointMake(45.15, 19.95) controlPoint2: CGPointMake(44.49, 19.52)]; - [bezier6Path addLineToPoint: CGPointMake(40.92, 19.52)]; - [bezier6Path addLineToPoint: CGPointMake(40.92, 21.45)]; - [bezier6Path closePath]; - bezier6Path.miterLimit = 4; - - bezier6Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier6Path fill]; - - - //// Bezier 7 Drawing - UIBezierPath* bezier7Path = [UIBezierPath bezierPath]; - [bezier7Path moveToPoint: CGPointMake(76.93, 27.39)]; - [bezier7Path addLineToPoint: CGPointMake(72.68, 20.57)]; - [bezier7Path addLineToPoint: CGPointMake(72.68, 27.39)]; - [bezier7Path addLineToPoint: CGPointMake(70.37, 27.39)]; - [bezier7Path addLineToPoint: CGPointMake(69.94, 27.39)]; - [bezier7Path addLineToPoint: CGPointMake(67.43, 27.39)]; - [bezier7Path addLineToPoint: CGPointMake(66.48, 25.25)]; - [bezier7Path addLineToPoint: CGPointMake(61.58, 25.25)]; - [bezier7Path addLineToPoint: CGPointMake(60.65, 27.39)]; - [bezier7Path addLineToPoint: CGPointMake(58.19, 27.39)]; - [bezier7Path addLineToPoint: CGPointMake(57.74, 27.39)]; - [bezier7Path addLineToPoint: CGPointMake(56.45, 27.39)]; - [bezier7Path addCurveToPoint: CGPointMake(52.85, 22.58) controlPoint1: CGPointMake(56.45, 27.39) controlPoint2: CGPointMake(52.85, 26.89)]; - [bezier7Path addCurveToPoint: CGPointMake(57.08, 17.11) controlPoint1: CGPointMake(52.85, 16.92) controlPoint2: CGPointMake(56.94, 17.14)]; - [bezier7Path addLineToPoint: CGPointMake(60.39, 17.19)]; - [bezier7Path addLineToPoint: CGPointMake(60.39, 19.49)]; - [bezier7Path addLineToPoint: CGPointMake(57.67, 19.52)]; - [bezier7Path addCurveToPoint: CGPointMake(55.69, 21.75) controlPoint1: CGPointMake(57.67, 19.52) controlPoint2: CGPointMake(55.9, 19.52)]; - [bezier7Path addCurveToPoint: CGPointMake(55.65, 22.46) controlPoint1: CGPointMake(55.66, 22) controlPoint2: CGPointMake(55.65, 22.24)]; - [bezier7Path addCurveToPoint: CGPointMake(58.85, 24.8) controlPoint1: CGPointMake(55.66, 25.91) controlPoint2: CGPointMake(58.75, 24.84)]; - [bezier7Path addLineToPoint: CGPointMake(62.17, 17.19)]; - [bezier7Path addLineToPoint: CGPointMake(65.92, 17.19)]; - [bezier7Path addLineToPoint: CGPointMake(69.94, 26.44)]; - [bezier7Path addLineToPoint: CGPointMake(69.94, 17.19)]; - [bezier7Path addLineToPoint: CGPointMake(73.73, 17.19)]; - [bezier7Path addLineToPoint: CGPointMake(77.92, 23.91)]; - [bezier7Path addLineToPoint: CGPointMake(77.92, 17.19)]; - [bezier7Path addLineToPoint: CGPointMake(80.62, 17.19)]; - [bezier7Path addLineToPoint: CGPointMake(80.62, 27.39)]; - [bezier7Path addLineToPoint: CGPointMake(76.93, 27.39)]; - [bezier7Path closePath]; - [bezier7Path moveToPoint: CGPointMake(62.73, 22.65)]; - [bezier7Path addLineToPoint: CGPointMake(65.33, 22.65)]; - [bezier7Path addLineToPoint: CGPointMake(64.05, 19.61)]; - [bezier7Path addLineToPoint: CGPointMake(62.73, 22.65)]; - [bezier7Path closePath]; - bezier7Path.miterLimit = 4; - - bezier7Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier7Path fill]; - - - //// Bezier 8 Drawing - UIBezierPath* bezier8Path = [UIBezierPath bezierPath]; - [bezier8Path moveToPoint: CGPointMake(23.92, 27.44)]; - [bezier8Path addLineToPoint: CGPointMake(23.92, 20.4)]; - [bezier8Path addLineToPoint: CGPointMake(20.56, 27.44)]; - [bezier8Path addLineToPoint: CGPointMake(18.36, 27.44)]; - [bezier8Path addLineToPoint: CGPointMake(14.99, 20.43)]; - [bezier8Path addLineToPoint: CGPointMake(14.99, 27.44)]; - [bezier8Path addLineToPoint: CGPointMake(12.65, 27.44)]; - [bezier8Path addLineToPoint: CGPointMake(12.29, 27.44)]; - [bezier8Path addLineToPoint: CGPointMake(9.7, 27.44)]; - [bezier8Path addLineToPoint: CGPointMake(8.77, 25.3)]; - [bezier8Path addLineToPoint: CGPointMake(3.88, 25.3)]; - [bezier8Path addLineToPoint: CGPointMake(2.93, 27.44)]; - [bezier8Path addLineToPoint: CGPointMake(0, 27.44)]; - [bezier8Path addLineToPoint: CGPointMake(4.45, 17.24)]; - [bezier8Path addLineToPoint: CGPointMake(8.22, 17.24)]; - [bezier8Path addLineToPoint: CGPointMake(12.29, 26.61)]; - [bezier8Path addLineToPoint: CGPointMake(12.29, 17.24)]; - [bezier8Path addLineToPoint: CGPointMake(16.52, 17.24)]; - [bezier8Path addLineToPoint: CGPointMake(19.47, 23.58)]; - [bezier8Path addLineToPoint: CGPointMake(22.4, 17.24)]; - [bezier8Path addLineToPoint: CGPointMake(26.63, 17.24)]; - [bezier8Path addLineToPoint: CGPointMake(26.63, 27.44)]; - [bezier8Path addLineToPoint: CGPointMake(23.92, 27.44)]; - [bezier8Path closePath]; - [bezier8Path moveToPoint: CGPointMake(5.02, 22.69)]; - [bezier8Path addLineToPoint: CGPointMake(7.63, 22.69)]; - [bezier8Path addLineToPoint: CGPointMake(6.32, 19.66)]; - [bezier8Path addLineToPoint: CGPointMake(5.02, 22.69)]; - [bezier8Path closePath]; - bezier8Path.miterLimit = 4; - - bezier8Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier8Path fill]; - - - //// Bezier 9 Drawing - UIBezierPath* bezier9Path = [UIBezierPath bezierPath]; - [bezier9Path moveToPoint: CGPointMake(28.49, 27.39)]; - [bezier9Path addLineToPoint: CGPointMake(28.49, 17.19)]; - [bezier9Path addLineToPoint: CGPointMake(36.85, 17.19)]; - [bezier9Path addLineToPoint: CGPointMake(36.85, 19.57)]; - [bezier9Path addLineToPoint: CGPointMake(31.18, 19.57)]; - [bezier9Path addLineToPoint: CGPointMake(31.18, 21.14)]; - [bezier9Path addLineToPoint: CGPointMake(36.7, 21.14)]; - [bezier9Path addLineToPoint: CGPointMake(36.7, 23.46)]; - [bezier9Path addLineToPoint: CGPointMake(31.18, 23.46)]; - [bezier9Path addLineToPoint: CGPointMake(31.18, 25.18)]; - [bezier9Path addLineToPoint: CGPointMake(36.85, 25.18)]; - [bezier9Path addLineToPoint: CGPointMake(36.85, 27.39)]; - [bezier9Path addLineToPoint: CGPointMake(28.49, 27.39)]; - [bezier9Path closePath]; - bezier9Path.miterLimit = 4; - - bezier9Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier9Path fill]; - - - //// Bezier 10 Drawing - UIBezierPath* bezier10Path = [UIBezierPath bezierPath]; - [bezier10Path moveToPoint: CGPointMake(49.24, 27.42)]; - [bezier10Path addLineToPoint: CGPointMake(49.24, 17.19)]; - [bezier10Path addLineToPoint: CGPointMake(51.94, 17.19)]; - [bezier10Path addLineToPoint: CGPointMake(51.94, 27.42)]; - [bezier10Path addLineToPoint: CGPointMake(49.24, 27.42)]; - [bezier10Path closePath]; - bezier10Path.miterLimit = 4; - - bezier10Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier10Path fill]; - } - } - } - } - } -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICVVBackVectorArtView.h b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICVVBackVectorArtView.h deleted file mode 100644 index 7ae91bd..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICVVBackVectorArtView.h +++ /dev/null @@ -1,5 +0,0 @@ -#import "BTUICardVectorArtView.h" - -@interface BTUICVVBackVectorArtView : BTUICardVectorArtView - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICVVBackVectorArtView.m b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICVVBackVectorArtView.m deleted file mode 100644 index a54b825..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICVVBackVectorArtView.m +++ /dev/null @@ -1,48 +0,0 @@ -#import "BTUICVVBackVectorArtView.h" - -@implementation BTUICVVBackVectorArtView - -- (void)drawArt { - - //// Color Declarations - UIColor* color1 = [UIColor colorWithRed: 0.124 green: 0.132 blue: 0.138 alpha: 0.1]; - UIColor* color2 = self.highlightColor ?: color1; - UIColor* color3 = [UIColor colorWithRed: 1 green: 1 blue: 1 alpha: 1]; - - //// Page-1 - { - //// CVV-Back - { - //// Rectangle Drawing - UIBezierPath* rectanglePath = [UIBezierPath bezierPathWithRect: CGRectMake(0, 8, 87, 12)]; - [color1 setFill]; - [rectanglePath fill]; - - - //// Rounded Rectangle Drawing - UIBezierPath* roundedRectanglePath = [UIBezierPath bezierPathWithRoundedRect: CGRectMake(53, 30, 26, 18) cornerRadius: 9]; - [color2 setFill]; - [roundedRectanglePath fill]; - - - //// Rectangle 2 Drawing - UIBezierPath* rectangle2Path = [UIBezierPath bezierPathWithRect: CGRectMake(61, 36, 2, 6)]; - [color3 setFill]; - [rectangle2Path fill]; - - - //// Rectangle 3 Drawing - UIBezierPath* rectangle3Path = [UIBezierPath bezierPathWithRect: CGRectMake(65, 36, 2, 6)]; - [color3 setFill]; - [rectangle3Path fill]; - - - //// Rectangle 4 Drawing - UIBezierPath* rectangle4Path = [UIBezierPath bezierPathWithRect: CGRectMake(69, 36, 2, 6)]; - [color3 setFill]; - [rectangle4Path fill]; - } - } -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICVVFrontVectorArtView.h b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICVVFrontVectorArtView.h deleted file mode 100644 index 79f85f8..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICVVFrontVectorArtView.h +++ /dev/null @@ -1,5 +0,0 @@ -#import "BTUICardVectorArtView.h" - -@interface BTUICVVFrontVectorArtView : BTUICardVectorArtView - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICVVFrontVectorArtView.m b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICVVFrontVectorArtView.m deleted file mode 100644 index 4e1f435..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICVVFrontVectorArtView.m +++ /dev/null @@ -1,341 +0,0 @@ -#import "BTUICVVFrontVectorArtView.h" - -@implementation BTUICVVFrontVectorArtView - -- (void)drawArt { - - - //// Color Declarations - UIColor* color1 = [UIColor colorWithRed: 0.765 green: 0.77 blue: 0.756 alpha: 1]; - UIColor* color3 = self.highlightColor ?: color1; - UIColor* color2 = [UIColor colorWithRed: 0 green: 0 blue: 0 alpha: 0.105]; - UIColor* color4 = [UIColor colorWithRed: 1 green: 1 blue: 1 alpha: 1]; - - //// Page-1 - { - //// CVV-Front - { - //// Card-#-2 - { - //// CC-numbers - { - //// CC-number - { - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint: CGPointMake(6, 31)]; - [bezierPath addLineToPoint: CGPointMake(8, 31)]; - [bezierPath addLineToPoint: CGPointMake(8, 37)]; - [bezierPath addLineToPoint: CGPointMake(6, 37)]; - [bezierPath addLineToPoint: CGPointMake(6, 31)]; - [bezierPath closePath]; - bezierPath.miterLimit = 4; - - bezierPath.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezierPath fill]; - - - //// Bezier 2 Drawing - UIBezierPath* bezier2Path = [UIBezierPath bezierPath]; - [bezier2Path moveToPoint: CGPointMake(10, 31)]; - [bezier2Path addLineToPoint: CGPointMake(12, 31)]; - [bezier2Path addLineToPoint: CGPointMake(12, 37)]; - [bezier2Path addLineToPoint: CGPointMake(10, 37)]; - [bezier2Path addLineToPoint: CGPointMake(10, 31)]; - [bezier2Path closePath]; - bezier2Path.miterLimit = 4; - - bezier2Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier2Path fill]; - - - //// Bezier 3 Drawing - UIBezierPath* bezier3Path = [UIBezierPath bezierPath]; - [bezier3Path moveToPoint: CGPointMake(14, 31)]; - [bezier3Path addLineToPoint: CGPointMake(16, 31)]; - [bezier3Path addLineToPoint: CGPointMake(16, 37)]; - [bezier3Path addLineToPoint: CGPointMake(14, 37)]; - [bezier3Path addLineToPoint: CGPointMake(14, 31)]; - [bezier3Path closePath]; - bezier3Path.miterLimit = 4; - - bezier3Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier3Path fill]; - - - //// Bezier 4 Drawing - UIBezierPath* bezier4Path = [UIBezierPath bezierPath]; - [bezier4Path moveToPoint: CGPointMake(18, 31)]; - [bezier4Path addLineToPoint: CGPointMake(20, 31)]; - [bezier4Path addLineToPoint: CGPointMake(20, 37)]; - [bezier4Path addLineToPoint: CGPointMake(18, 37)]; - [bezier4Path addLineToPoint: CGPointMake(18, 31)]; - [bezier4Path closePath]; - bezier4Path.miterLimit = 4; - - bezier4Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier4Path fill]; - - - //// Bezier 5 Drawing - UIBezierPath* bezier5Path = [UIBezierPath bezierPath]; - [bezier5Path moveToPoint: CGPointMake(26, 31)]; - [bezier5Path addLineToPoint: CGPointMake(28, 31)]; - [bezier5Path addLineToPoint: CGPointMake(28, 37)]; - [bezier5Path addLineToPoint: CGPointMake(26, 37)]; - [bezier5Path addLineToPoint: CGPointMake(26, 31)]; - [bezier5Path closePath]; - bezier5Path.miterLimit = 4; - - bezier5Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier5Path fill]; - - - //// Bezier 6 Drawing - UIBezierPath* bezier6Path = [UIBezierPath bezierPath]; - [bezier6Path moveToPoint: CGPointMake(30, 31)]; - [bezier6Path addLineToPoint: CGPointMake(32, 31)]; - [bezier6Path addLineToPoint: CGPointMake(32, 37)]; - [bezier6Path addLineToPoint: CGPointMake(30, 37)]; - [bezier6Path addLineToPoint: CGPointMake(30, 31)]; - [bezier6Path closePath]; - bezier6Path.miterLimit = 4; - - bezier6Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier6Path fill]; - - - //// Bezier 7 Drawing - UIBezierPath* bezier7Path = [UIBezierPath bezierPath]; - [bezier7Path moveToPoint: CGPointMake(34, 31)]; - [bezier7Path addLineToPoint: CGPointMake(36, 31)]; - [bezier7Path addLineToPoint: CGPointMake(36, 37)]; - [bezier7Path addLineToPoint: CGPointMake(34, 37)]; - [bezier7Path addLineToPoint: CGPointMake(34, 31)]; - [bezier7Path closePath]; - bezier7Path.miterLimit = 4; - - bezier7Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier7Path fill]; - - - //// Bezier 8 Drawing - UIBezierPath* bezier8Path = [UIBezierPath bezierPath]; - [bezier8Path moveToPoint: CGPointMake(38, 31)]; - [bezier8Path addLineToPoint: CGPointMake(40, 31)]; - [bezier8Path addLineToPoint: CGPointMake(40, 37)]; - [bezier8Path addLineToPoint: CGPointMake(38, 37)]; - [bezier8Path addLineToPoint: CGPointMake(38, 31)]; - [bezier8Path closePath]; - bezier8Path.miterLimit = 4; - - bezier8Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier8Path fill]; - - - //// Bezier 9 Drawing - UIBezierPath* bezier9Path = [UIBezierPath bezierPath]; - [bezier9Path moveToPoint: CGPointMake(46, 31)]; - [bezier9Path addLineToPoint: CGPointMake(48, 31)]; - [bezier9Path addLineToPoint: CGPointMake(48, 37)]; - [bezier9Path addLineToPoint: CGPointMake(46, 37)]; - [bezier9Path addLineToPoint: CGPointMake(46, 31)]; - [bezier9Path closePath]; - bezier9Path.miterLimit = 4; - - bezier9Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier9Path fill]; - - - //// Bezier 10 Drawing - UIBezierPath* bezier10Path = [UIBezierPath bezierPath]; - [bezier10Path moveToPoint: CGPointMake(50, 31)]; - [bezier10Path addLineToPoint: CGPointMake(52, 31)]; - [bezier10Path addLineToPoint: CGPointMake(52, 37)]; - [bezier10Path addLineToPoint: CGPointMake(50, 37)]; - [bezier10Path addLineToPoint: CGPointMake(50, 31)]; - [bezier10Path closePath]; - bezier10Path.miterLimit = 4; - - bezier10Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier10Path fill]; - - - //// Bezier 11 Drawing - UIBezierPath* bezier11Path = [UIBezierPath bezierPath]; - [bezier11Path moveToPoint: CGPointMake(54, 31)]; - [bezier11Path addLineToPoint: CGPointMake(56, 31)]; - [bezier11Path addLineToPoint: CGPointMake(56, 37)]; - [bezier11Path addLineToPoint: CGPointMake(54, 37)]; - [bezier11Path addLineToPoint: CGPointMake(54, 31)]; - [bezier11Path closePath]; - bezier11Path.miterLimit = 4; - - bezier11Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier11Path fill]; - - - //// Bezier 12 Drawing - UIBezierPath* bezier12Path = [UIBezierPath bezierPath]; - [bezier12Path moveToPoint: CGPointMake(58, 31)]; - [bezier12Path addLineToPoint: CGPointMake(60, 31)]; - [bezier12Path addLineToPoint: CGPointMake(60, 37)]; - [bezier12Path addLineToPoint: CGPointMake(58, 37)]; - [bezier12Path addLineToPoint: CGPointMake(58, 31)]; - [bezier12Path closePath]; - bezier12Path.miterLimit = 4; - - bezier12Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier12Path fill]; - - - //// Bezier 13 Drawing - UIBezierPath* bezier13Path = [UIBezierPath bezierPath]; - [bezier13Path moveToPoint: CGPointMake(66, 31)]; - [bezier13Path addLineToPoint: CGPointMake(68, 31)]; - [bezier13Path addLineToPoint: CGPointMake(68, 37)]; - [bezier13Path addLineToPoint: CGPointMake(66, 37)]; - [bezier13Path addLineToPoint: CGPointMake(66, 31)]; - [bezier13Path closePath]; - bezier13Path.miterLimit = 4; - - bezier13Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier13Path fill]; - - - //// Bezier 14 Drawing - UIBezierPath* bezier14Path = [UIBezierPath bezierPath]; - [bezier14Path moveToPoint: CGPointMake(70, 31)]; - [bezier14Path addLineToPoint: CGPointMake(72, 31)]; - [bezier14Path addLineToPoint: CGPointMake(72, 37)]; - [bezier14Path addLineToPoint: CGPointMake(70, 37)]; - [bezier14Path addLineToPoint: CGPointMake(70, 31)]; - [bezier14Path closePath]; - bezier14Path.miterLimit = 4; - - bezier14Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier14Path fill]; - - - //// Bezier 15 Drawing - UIBezierPath* bezier15Path = [UIBezierPath bezierPath]; - [bezier15Path moveToPoint: CGPointMake(74, 31)]; - [bezier15Path addLineToPoint: CGPointMake(76, 31)]; - [bezier15Path addLineToPoint: CGPointMake(76, 37)]; - [bezier15Path addLineToPoint: CGPointMake(74, 37)]; - [bezier15Path addLineToPoint: CGPointMake(74, 31)]; - [bezier15Path closePath]; - bezier15Path.miterLimit = 4; - - bezier15Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier15Path fill]; - - - //// Bezier 16 Drawing - UIBezierPath* bezier16Path = [UIBezierPath bezierPath]; - [bezier16Path moveToPoint: CGPointMake(78, 31)]; - [bezier16Path addLineToPoint: CGPointMake(80, 31)]; - [bezier16Path addLineToPoint: CGPointMake(80, 37)]; - [bezier16Path addLineToPoint: CGPointMake(78, 37)]; - [bezier16Path addLineToPoint: CGPointMake(78, 31)]; - [bezier16Path closePath]; - bezier16Path.miterLimit = 4; - - bezier16Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier16Path fill]; - } - - - //// Rectangle Drawing - UIBezierPath* rectanglePath = [UIBezierPath bezierPathWithRect: CGRectMake(26, 43, 14, 2)]; - [color2 setFill]; - [rectanglePath fill]; - - - //// Rectangle 2 Drawing - UIBezierPath* rectangle2Path = [UIBezierPath bezierPathWithRect: CGRectMake(6, 47, 34, 2)]; - [color2 setFill]; - [rectangle2Path fill]; - - - //// Rounded Rectangle Drawing - UIBezierPath* roundedRectanglePath = [UIBezierPath bezierPathWithRoundedRect: CGRectMake(56, 5, 26, 18) cornerRadius: 9]; - [color3 setFill]; - [roundedRectanglePath fill]; - - - //// Rectangle 3 Drawing - UIBezierPath* rectangle3Path = [UIBezierPath bezierPathWithRect: CGRectMake(62, 11, 2, 6)]; - [color4 setFill]; - [rectangle3Path fill]; - - - //// Rectangle 4 Drawing - UIBezierPath* rectangle4Path = [UIBezierPath bezierPathWithRect: CGRectMake(66, 11, 2, 6)]; - [color4 setFill]; - [rectangle4Path fill]; - - - //// Rectangle 5 Drawing - UIBezierPath* rectangle5Path = [UIBezierPath bezierPathWithRect: CGRectMake(70, 11, 2, 6)]; - [color4 setFill]; - [rectangle5Path fill]; - - - //// Rectangle 6 Drawing - UIBezierPath* rectangle6Path = [UIBezierPath bezierPathWithRect: CGRectMake(74, 11, 2, 6)]; - [color4 setFill]; - [rectangle6Path fill]; - } - - - //// Rounded Rectangle 2 Drawing - UIBezierPath* roundedRectangle2Path = [UIBezierPath bezierPathWithRoundedRect: CGRectMake(6, 7, 14, 14) cornerRadius: 0.75]; - [color2 setFill]; - [roundedRectangle2Path fill]; - - - //// Rounded Rectangle 3 Drawing - UIBezierPath* roundedRectangle3Path = [UIBezierPath bezierPathWithRoundedRect: CGRectMake(72, 41, 8, 8) cornerRadius: 0.75]; - [color2 setFill]; - [roundedRectangle3Path fill]; - } - } - } - - -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICardVectorArtView.h b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICardVectorArtView.h deleted file mode 100644 index 5bb8874..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICardVectorArtView.h +++ /dev/null @@ -1,7 +0,0 @@ -#import "BTUIVectorArtView.h" - -@interface BTUICardVectorArtView : BTUIVectorArtView - -@property (nonatomic, strong) UIColor *highlightColor; - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICardVectorArtView.m b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICardVectorArtView.m deleted file mode 100644 index 204eb0f..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICardVectorArtView.m +++ /dev/null @@ -1,25 +0,0 @@ -#import "BTUICardVectorArtView.h" - -@implementation BTUICardVectorArtView - -- (id)init { - self = [super init]; - if (self) { - self.artDimensions = CGSizeMake(87.0f, 55.0f); - self.opaque = NO; - } - return self; -} - -- (void)updateConstraints { - [self addConstraint:[NSLayoutConstraint constraintWithItem:self - attribute:NSLayoutAttributeWidth - relatedBy:NSLayoutRelationEqual - toItem:self - attribute:NSLayoutAttributeHeight - multiplier:87.0f/55.0f - constant:0]]; - [super updateConstraints]; -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICoinbaseMonogramCardView.h b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICoinbaseMonogramCardView.h deleted file mode 100644 index b300082..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICoinbaseMonogramCardView.h +++ /dev/null @@ -1,5 +0,0 @@ -#import "BTUICardVectorArtView.h" - -@interface BTUICoinbaseMonogramCardView : BTUICardVectorArtView - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICoinbaseMonogramCardView.m b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICoinbaseMonogramCardView.m deleted file mode 100644 index eb52ffd..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICoinbaseMonogramCardView.m +++ /dev/null @@ -1,43 +0,0 @@ -#import "BTUICoinbaseMonogramCardView.h" - -@implementation BTUICoinbaseMonogramCardView - -- (void)drawArt { - //// Color Declarations - UIColor* color1 = [UIColor colorWithRed: 0.053 green: 0.433 blue: 0.7 alpha: 1]; - - //// Assets - { - //// icon-coinbase - { - //// Rectangle Drawing - - - //// logo/coinbase-2 - { - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint: CGPointMake(24, 27.45)]; - [bezierPath addCurveToPoint: CGPointMake(47.38, 0) controlPoint1: CGPointMake(24, 8.33) controlPoint2: CGPointMake(35.54, 0)]; - [bezierPath addCurveToPoint: CGPointMake(61, 3.63) controlPoint1: CGPointMake(53.21, 0) controlPoint2: CGPointMake(57.74, 1.47)]; - [bezierPath addLineToPoint: CGPointMake(57.45, 11.37)]; - [bezierPath addCurveToPoint: CGPointMake(48.77, 8.82) controlPoint1: CGPointMake(55.28, 9.8) controlPoint2: CGPointMake(52.02, 8.82)]; - [bezierPath addCurveToPoint: CGPointMake(34.57, 27.45) controlPoint1: CGPointMake(41.66, 8.82) controlPoint2: CGPointMake(34.57, 14.51)]; - [bezierPath addCurveToPoint: CGPointMake(48.77, 45.98) controlPoint1: CGPointMake(34.57, 40.39) controlPoint2: CGPointMake(41.86, 45.98)]; - [bezierPath addCurveToPoint: CGPointMake(57.45, 43.43) controlPoint1: CGPointMake(52.02, 45.98) controlPoint2: CGPointMake(55.28, 45)]; - [bezierPath addLineToPoint: CGPointMake(61, 51.37)]; - [bezierPath addCurveToPoint: CGPointMake(47.38, 55) controlPoint1: CGPointMake(57.65, 53.63) controlPoint2: CGPointMake(53.21, 55)]; - [bezierPath addCurveToPoint: CGPointMake(24, 27.45) controlPoint1: CGPointMake(35.54, 55) controlPoint2: CGPointMake(24, 46.57)]; - [bezierPath closePath]; - bezierPath.miterLimit = 4; - - bezierPath.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezierPath fill]; - } - } - } -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICoinbaseWordmarkVectorArtView.h b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICoinbaseWordmarkVectorArtView.h deleted file mode 100644 index 84da317..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICoinbaseWordmarkVectorArtView.h +++ /dev/null @@ -1,7 +0,0 @@ -#import "BTUIVectorArtView.h" - -@interface BTUICoinbaseWordmarkVectorArtView : BTUIVectorArtView - -@property (nonatomic, strong) UIColor *color; - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICoinbaseWordmarkVectorArtView.m b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICoinbaseWordmarkVectorArtView.m deleted file mode 100644 index d9f828c..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUICoinbaseWordmarkVectorArtView.m +++ /dev/null @@ -1,191 +0,0 @@ -#import "BTUICoinbaseWordmarkVectorArtView.h" - -@implementation BTUICoinbaseWordmarkVectorArtView - -- (instancetype)initWithCoder:(NSCoder *)coder -{ - self = [super initWithCoder:coder]; - if (self) { - [self doSetup]; - } - return self; -} - -- (id)init { - self = [super init]; - if (self) { - [self doSetup]; - } - return self; -} - -- (void)doSetup { - self.artDimensions = CGSizeMake(162, 88); - self.opaque = NO; - self.color = [UIColor colorWithRed: 0.053 green: 0.433 blue: 0.7 alpha: 1]; // Default color -} - -- (void)setColor:(UIColor *)color { - _color = color; - [self setNeedsDisplay]; -} - -- (void)drawArt { - //// Assets - { - //// button-coinbase - { - //// Rectangle Drawing - - - //// logo/coinbase-2 - { - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint: CGPointMake(20.22, 54)]; - [bezierPath addCurveToPoint: CGPointMake(12, 43.98) controlPoint1: CGPointMake(16.06, 54) controlPoint2: CGPointMake(12, 50.93)]; - [bezierPath addCurveToPoint: CGPointMake(20.22, 34) controlPoint1: CGPointMake(12, 37.03) controlPoint2: CGPointMake(16.06, 34)]; - [bezierPath addCurveToPoint: CGPointMake(25, 35.32) controlPoint1: CGPointMake(22.26, 34) controlPoint2: CGPointMake(23.86, 34.53)]; - [bezierPath addLineToPoint: CGPointMake(23.75, 38.14)]; - [bezierPath addCurveToPoint: CGPointMake(20.7, 37.21) controlPoint1: CGPointMake(22.99, 37.56) controlPoint2: CGPointMake(21.85, 37.21)]; - [bezierPath addCurveToPoint: CGPointMake(15.92, 43.95) controlPoint1: CGPointMake(18.21, 37.21) controlPoint2: CGPointMake(15.92, 39.24)]; - [bezierPath addCurveToPoint: CGPointMake(20.7, 50.72) controlPoint1: CGPointMake(15.92, 48.65) controlPoint2: CGPointMake(18.27, 50.72)]; - [bezierPath addCurveToPoint: CGPointMake(23.75, 49.79) controlPoint1: CGPointMake(21.85, 50.72) controlPoint2: CGPointMake(22.99, 50.36)]; - [bezierPath addLineToPoint: CGPointMake(25, 52.68)]; - [bezierPath addCurveToPoint: CGPointMake(20.22, 54) controlPoint1: CGPointMake(23.82, 53.5) controlPoint2: CGPointMake(22.26, 54)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(36.07, 54)]; - [bezierPath addCurveToPoint: CGPointMake(27.62, 44.12) controlPoint1: CGPointMake(30.61, 54) controlPoint2: CGPointMake(27.62, 49.74)]; - [bezierPath addCurveToPoint: CGPointMake(36.07, 34.27) controlPoint1: CGPointMake(27.62, 38.49) controlPoint2: CGPointMake(30.61, 34.27)]; - [bezierPath addCurveToPoint: CGPointMake(44.52, 44.12) controlPoint1: CGPointMake(41.53, 34.27) controlPoint2: CGPointMake(44.52, 38.49)]; - [bezierPath addCurveToPoint: CGPointMake(36.07, 54) controlPoint1: CGPointMake(44.52, 49.74) controlPoint2: CGPointMake(41.53, 54)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(31, 44)]; - [bezierPath addCurveToPoint: CGPointMake(36, 51) controlPoint1: CGPointMake(31, 48.08) controlPoint2: CGPointMake(32.97, 51)]; - [bezierPath addCurveToPoint: CGPointMake(41, 44) controlPoint1: CGPointMake(39.03, 51) controlPoint2: CGPointMake(41, 48.08)]; - [bezierPath addCurveToPoint: CGPointMake(36, 37) controlPoint1: CGPointMake(41, 39.92) controlPoint2: CGPointMake(39.03, 37)]; - [bezierPath addCurveToPoint: CGPointMake(31, 44) controlPoint1: CGPointMake(32.97, 37) controlPoint2: CGPointMake(31, 39.92)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(51, 32)]; - [bezierPath addCurveToPoint: CGPointMake(49, 30) controlPoint1: CGPointMake(49.89, 32) controlPoint2: CGPointMake(49, 31.1)]; - [bezierPath addCurveToPoint: CGPointMake(51, 28) controlPoint1: CGPointMake(49, 28.9) controlPoint2: CGPointMake(49.89, 28)]; - [bezierPath addCurveToPoint: CGPointMake(53, 30) controlPoint1: CGPointMake(52.11, 28) controlPoint2: CGPointMake(53, 28.9)]; - [bezierPath addCurveToPoint: CGPointMake(51, 32) controlPoint1: CGPointMake(53, 31.1) controlPoint2: CGPointMake(52.11, 32)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(49, 54)]; - [bezierPath addLineToPoint: CGPointMake(49, 35)]; - [bezierPath addLineToPoint: CGPointMake(53, 35)]; - [bezierPath addLineToPoint: CGPointMake(53, 54)]; - [bezierPath addLineToPoint: CGPointMake(49, 54)]; - [bezierPath addLineToPoint: CGPointMake(49, 54)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(70, 41)]; - [bezierPath addCurveToPoint: CGPointMake(65.5, 37) controlPoint1: CGPointMake(70, 38.71) controlPoint2: CGPointMake(68.28, 37)]; - [bezierPath addCurveToPoint: CGPointMake(62, 38) controlPoint1: CGPointMake(64.01, 37) controlPoint2: CGPointMake(62.82, 37.67)]; - [bezierPath addLineToPoint: CGPointMake(62, 54)]; - [bezierPath addLineToPoint: CGPointMake(58, 54)]; - [bezierPath addLineToPoint: CGPointMake(58, 35.38)]; - [bezierPath addCurveToPoint: CGPointMake(65.5, 34) controlPoint1: CGPointMake(60, 34.58) controlPoint2: CGPointMake(62.38, 34)]; - [bezierPath addCurveToPoint: CGPointMake(74, 40.55) controlPoint1: CGPointMake(71.11, 34) controlPoint2: CGPointMake(74, 36.4)]; - [bezierPath addLineToPoint: CGPointMake(74, 54)]; - [bezierPath addLineToPoint: CGPointMake(70, 54)]; - [bezierPath addLineToPoint: CGPointMake(70, 41)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(78, 52.66)]; - [bezierPath addLineToPoint: CGPointMake(78, 26)]; - [bezierPath addLineToPoint: CGPointMake(81.9, 26)]; - [bezierPath addLineToPoint: CGPointMake(81.9, 35.15)]; - [bezierPath addCurveToPoint: CGPointMake(85.5, 34) controlPoint1: CGPointMake(82.83, 34.72) controlPoint2: CGPointMake(84.18, 34)]; - [bezierPath addCurveToPoint: CGPointMake(94, 43.69) controlPoint1: CGPointMake(90.48, 34) controlPoint2: CGPointMake(94, 37.89)]; - [bezierPath addCurveToPoint: CGPointMake(84.48, 54) controlPoint1: CGPointMake(94, 50.83) controlPoint2: CGPointMake(90.24, 54)]; - [bezierPath addCurveToPoint: CGPointMake(78, 52.66) controlPoint1: CGPointMake(81.97, 54) controlPoint2: CGPointMake(79.5, 53.4)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(85, 37)]; - [bezierPath addCurveToPoint: CGPointMake(82, 37.65) controlPoint1: CGPointMake(83.96, 37) controlPoint2: CGPointMake(82.73, 37.25)]; - [bezierPath addLineToPoint: CGPointMake(82, 50.49)]; - [bezierPath addCurveToPoint: CGPointMake(84.72, 51) controlPoint1: CGPointMake(82.56, 50.75) controlPoint2: CGPointMake(83.64, 51)]; - [bezierPath addCurveToPoint: CGPointMake(90, 43.82) controlPoint1: CGPointMake(87.76, 51) controlPoint2: CGPointMake(90, 48.82)]; - [bezierPath addCurveToPoint: CGPointMake(85, 37) controlPoint1: CGPointMake(90, 39.54) controlPoint2: CGPointMake(88.04, 37)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(97, 48)]; - [bezierPath addCurveToPoint: CGPointMake(108, 41.5) controlPoint1: CGPointMake(97, 42.72) controlPoint2: CGPointMake(102.19, 41.82)]; - [bezierPath addLineToPoint: CGPointMake(108, 40)]; - [bezierPath addCurveToPoint: CGPointMake(104.5, 37) controlPoint1: CGPointMake(108, 37.61) controlPoint2: CGPointMake(106.96, 37)]; - [bezierPath addCurveToPoint: CGPointMake(98.9, 38.24) controlPoint1: CGPointMake(102.68, 37) controlPoint2: CGPointMake(100.18, 37.64)]; - [bezierPath addLineToPoint: CGPointMake(97.9, 35.6)]; - [bezierPath addCurveToPoint: CGPointMake(104.5, 34) controlPoint1: CGPointMake(99.43, 34.93) controlPoint2: CGPointMake(101.93, 34)]; - [bezierPath addCurveToPoint: CGPointMake(111.99, 40.7) controlPoint1: CGPointMake(109.1, 34) controlPoint2: CGPointMake(111.99, 36.03)]; - [bezierPath addLineToPoint: CGPointMake(111.99, 52.66)]; - [bezierPath addCurveToPoint: CGPointMake(105.07, 54) controlPoint1: CGPointMake(110.6, 53.4) controlPoint2: CGPointMake(107.78, 54)]; - [bezierPath addCurveToPoint: CGPointMake(97, 48) controlPoint1: CGPointMake(99.54, 54) controlPoint2: CGPointMake(97, 51.73)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(100.5, 48)]; - [bezierPath addCurveToPoint: CGPointMake(105, 51) controlPoint1: CGPointMake(100.5, 50.01) controlPoint2: CGPointMake(102.04, 51)]; - [bezierPath addLineToPoint: CGPointMake(108, 51)]; - [bezierPath addLineToPoint: CGPointMake(108, 44)]; - [bezierPath addCurveToPoint: CGPointMake(100.5, 48) controlPoint1: CGPointMake(104.08, 44.21) controlPoint2: CGPointMake(100.5, 44.62)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(121.79, 54)]; - [bezierPath addCurveToPoint: CGPointMake(116, 52.65) controlPoint1: CGPointMake(119.62, 54) controlPoint2: CGPointMake(117.35, 53.39)]; - [bezierPath addLineToPoint: CGPointMake(117.28, 49.65)]; - [bezierPath addCurveToPoint: CGPointMake(121.69, 50.9) controlPoint1: CGPointMake(118.24, 50.26) controlPoint2: CGPointMake(120.28, 50.9)]; - [bezierPath addCurveToPoint: CGPointMake(125.07, 48.26) controlPoint1: CGPointMake(123.72, 50.9) controlPoint2: CGPointMake(125.07, 49.86)]; - [bezierPath addCurveToPoint: CGPointMake(121.76, 45.12) controlPoint1: CGPointMake(125.07, 46.51) controlPoint2: CGPointMake(123.66, 45.84)]; - [bezierPath addCurveToPoint: CGPointMake(116.48, 39.38) controlPoint1: CGPointMake(119.28, 44.16) controlPoint2: CGPointMake(116.48, 42.98)]; - [bezierPath addCurveToPoint: CGPointMake(123, 34) controlPoint1: CGPointMake(116.48, 36.21) controlPoint2: CGPointMake(118.86, 34)]; - [bezierPath addCurveToPoint: CGPointMake(128.41, 35.35) controlPoint1: CGPointMake(125.24, 34) controlPoint2: CGPointMake(127.1, 34.57)]; - [bezierPath addLineToPoint: CGPointMake(127.24, 38.06)]; - [bezierPath addCurveToPoint: CGPointMake(123.41, 36.92) controlPoint1: CGPointMake(126.41, 37.53) controlPoint2: CGPointMake(124.76, 36.92)]; - [bezierPath addCurveToPoint: CGPointMake(120.34, 39.38) controlPoint1: CGPointMake(121.45, 36.92) controlPoint2: CGPointMake(120.34, 37.99)]; - [bezierPath addCurveToPoint: CGPointMake(123.55, 42.45) controlPoint1: CGPointMake(120.34, 41.13) controlPoint2: CGPointMake(121.72, 41.74)]; - [bezierPath addCurveToPoint: CGPointMake(129, 48.3) controlPoint1: CGPointMake(126.14, 43.45) controlPoint2: CGPointMake(129, 44.55)]; - [bezierPath addCurveToPoint: CGPointMake(121.79, 54) controlPoint1: CGPointMake(129, 51.75) controlPoint2: CGPointMake(126.45, 54)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(136, 46)]; - [bezierPath addCurveToPoint: CGPointMake(142.08, 50.94) controlPoint1: CGPointMake(136.39, 49.41) controlPoint2: CGPointMake(138.84, 50.94)]; - [bezierPath addCurveToPoint: CGPointMake(147.39, 49.78) controlPoint1: CGPointMake(144.01, 50.94) controlPoint2: CGPointMake(146.08, 50.48)]; - [bezierPath addLineToPoint: CGPointMake(148.54, 52.66)]; - [bezierPath addCurveToPoint: CGPointMake(141.83, 54) controlPoint1: CGPointMake(147.04, 53.44) controlPoint2: CGPointMake(144.47, 54)]; - [bezierPath addCurveToPoint: CGPointMake(132, 44.04) controlPoint1: CGPointMake(135.77, 54) controlPoint2: CGPointMake(132, 50.1)]; - [bezierPath addCurveToPoint: CGPointMake(141, 34) controlPoint1: CGPointMake(132, 38.24) controlPoint2: CGPointMake(135.62, 34)]; - [bezierPath addCurveToPoint: CGPointMake(149, 42.6) controlPoint1: CGPointMake(145.99, 34) controlPoint2: CGPointMake(149, 37.5)]; - [bezierPath addCurveToPoint: CGPointMake(148.96, 44.04) controlPoint1: CGPointMake(149, 43.06) controlPoint2: CGPointMake(149, 43.55)]; - [bezierPath addLineToPoint: CGPointMake(136, 46)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(140.98, 37.08)]; - [bezierPath addCurveToPoint: CGPointMake(135.95, 43.27) controlPoint1: CGPointMake(137.98, 37.08) controlPoint2: CGPointMake(136.02, 39.33)]; - [bezierPath addLineToPoint: CGPointMake(145.26, 42)]; - [bezierPath addCurveToPoint: CGPointMake(140.98, 37.08) controlPoint1: CGPointMake(145.22, 38.7) controlPoint2: CGPointMake(143.54, 37.08)]; - [bezierPath addLineToPoint: CGPointMake(140.98, 37.08)]; - [bezierPath closePath]; - bezierPath.miterLimit = 4; - - bezierPath.usesEvenOddFillRule = YES; - - [self.color setFill]; - [bezierPath fill]; - } - } - } -} - -- (void)updateConstraints { - NSLayoutConstraint *aspectRatioConstraint = [NSLayoutConstraint constraintWithItem:self - attribute:NSLayoutAttributeWidth - relatedBy:NSLayoutRelationEqual - toItem:self - attribute:NSLayoutAttributeHeight - multiplier:(self.artDimensions.width / self.artDimensions.height) - constant:0.0f]; - aspectRatioConstraint.priority = UILayoutPriorityRequired; - - [self addConstraints:@[aspectRatioConstraint]]; - - [super updateConstraints]; -} - -- (UILayoutPriority)contentCompressionResistancePriorityForAxis:(__unused UILayoutConstraintAxis)axis { - return UILayoutPriorityRequired; -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIDinersClubVectorArtView.h b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIDinersClubVectorArtView.h deleted file mode 100644 index aa2251d..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIDinersClubVectorArtView.h +++ /dev/null @@ -1,5 +0,0 @@ -#import "BTUICardVectorArtView.h" - -@interface BTUIDinersClubVectorArtView : BTUICardVectorArtView - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIDinersClubVectorArtView.m b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIDinersClubVectorArtView.m deleted file mode 100644 index 8dbc16d..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIDinersClubVectorArtView.m +++ /dev/null @@ -1,66 +0,0 @@ -#import "BTUIDinersClubVectorArtView.h" - -@implementation BTUIDinersClubVectorArtView - -- (void)drawArt { - //// Color Declarations - UIColor* color1 = [UIColor colorWithRed: 0.019 green: 0.213 blue: 0.52 alpha: 1]; - UIColor* color2 = [UIColor colorWithRed: 1 green: 1 blue: 1 alpha: 1]; - - //// Page-1 - { - //// Diners-Club - { - //// Shape - { - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint: CGPointMake(46, 44)]; - [bezierPath addCurveToPoint: CGPointMake(64, 28) controlPoint1: CGPointMake(55.5, 44.04) controlPoint2: CGPointMake(64, 36.64)]; - [bezierPath addCurveToPoint: CGPointMake(46, 11) controlPoint1: CGPointMake(64, 17.8) controlPoint2: CGPointMake(55.5, 11)]; - [bezierPath addLineToPoint: CGPointMake(38, 11)]; - [bezierPath addCurveToPoint: CGPointMake(21, 28) controlPoint1: CGPointMake(28.76, 11) controlPoint2: CGPointMake(21, 17.8)]; - [bezierPath addCurveToPoint: CGPointMake(38, 44) controlPoint1: CGPointMake(21, 36.65) controlPoint2: CGPointMake(28.76, 44.04)]; - [bezierPath addLineToPoint: CGPointMake(46, 44)]; - [bezierPath addLineToPoint: CGPointMake(46, 44)]; - [bezierPath addLineToPoint: CGPointMake(46, 44)]; - [bezierPath addLineToPoint: CGPointMake(46, 44)]; - [bezierPath closePath]; - bezierPath.miterLimit = 4; - - bezierPath.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezierPath fill]; - - - //// Bezier 2 Drawing - UIBezierPath* bezier2Path = [UIBezierPath bezierPath]; - [bezier2Path moveToPoint: CGPointMake(40.6, 36.8)]; - [bezier2Path addLineToPoint: CGPointMake(40.6, 18.2)]; - [bezier2Path addCurveToPoint: CGPointMake(46.8, 27.5) controlPoint1: CGPointMake(44.22, 19.63) controlPoint2: CGPointMake(46.79, 23.25)]; - [bezier2Path addCurveToPoint: CGPointMake(40.6, 36.8) controlPoint1: CGPointMake(46.79, 31.75) controlPoint2: CGPointMake(44.22, 35.36)]; - [bezier2Path closePath]; - [bezier2Path moveToPoint: CGPointMake(27.17, 27.5)]; - [bezier2Path addCurveToPoint: CGPointMake(33.37, 18.2) controlPoint1: CGPointMake(27.18, 23.26) controlPoint2: CGPointMake(29.74, 19.64)]; - [bezier2Path addLineToPoint: CGPointMake(33.37, 36.8)]; - [bezier2Path addCurveToPoint: CGPointMake(27.17, 27.5) controlPoint1: CGPointMake(29.74, 35.36) controlPoint2: CGPointMake(27.18, 31.75)]; - [bezier2Path closePath]; - [bezier2Path moveToPoint: CGPointMake(37.5, 12)]; - [bezier2Path addCurveToPoint: CGPointMake(22, 27.5) controlPoint1: CGPointMake(28.94, 12) controlPoint2: CGPointMake(22, 18.94)]; - [bezier2Path addCurveToPoint: CGPointMake(37.5, 43) controlPoint1: CGPointMake(22, 36.06) controlPoint2: CGPointMake(28.94, 43)]; - [bezier2Path addCurveToPoint: CGPointMake(53, 27.5) controlPoint1: CGPointMake(46.06, 43) controlPoint2: CGPointMake(53, 36.06)]; - [bezier2Path addCurveToPoint: CGPointMake(37.5, 12) controlPoint1: CGPointMake(53, 18.94) controlPoint2: CGPointMake(46.06, 12)]; - [bezier2Path closePath]; - bezier2Path.miterLimit = 4; - - bezier2Path.usesEvenOddFillRule = YES; - - [color2 setFill]; - [bezier2Path fill]; - } - } - } -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIDiscoverVectorArtView.h b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIDiscoverVectorArtView.h deleted file mode 100644 index ba9aa79..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIDiscoverVectorArtView.h +++ /dev/null @@ -1,5 +0,0 @@ -#import "BTUICardVectorArtView.h" - -@interface BTUIDiscoverVectorArtView : BTUICardVectorArtView - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIDiscoverVectorArtView.m b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIDiscoverVectorArtView.m deleted file mode 100644 index c4d3f3d..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIDiscoverVectorArtView.m +++ /dev/null @@ -1,213 +0,0 @@ -#import "BTUIDiscoverVectorArtView.h" - -@implementation BTUIDiscoverVectorArtView - -- (void)drawArt { - //// Color Declarations - UIColor* color2 = [UIColor colorWithRed: 0.879 green: 0.425 blue: 0.167 alpha: 1]; - UIColor* color1 = [UIColor colorWithRed: 0.042 green: 0.053 blue: 0.066 alpha: 1]; - - //// Page-1 - { - //// Discover - { - //// Group 4 - { - //// Group 5 - { - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint: CGPointMake(13.13, 22)]; - [bezierPath addLineToPoint: CGPointMake(10, 22)]; - [bezierPath addLineToPoint: CGPointMake(10, 33)]; - [bezierPath addLineToPoint: CGPointMake(13.12, 33)]; - [bezierPath addCurveToPoint: CGPointMake(17.02, 31.73) controlPoint1: CGPointMake(14.77, 33) controlPoint2: CGPointMake(15.97, 32.61)]; - [bezierPath addCurveToPoint: CGPointMake(19, 27.51) controlPoint1: CGPointMake(18.26, 30.69) controlPoint2: CGPointMake(19, 29.12)]; - [bezierPath addCurveToPoint: CGPointMake(13.13, 22) controlPoint1: CGPointMake(19, 24.26) controlPoint2: CGPointMake(16.59, 22)]; - [bezierPath addLineToPoint: CGPointMake(13.13, 22)]; - [bezierPath addLineToPoint: CGPointMake(13.13, 22)]; - [bezierPath addLineToPoint: CGPointMake(13.13, 22)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(15.74, 30.16)]; - [bezierPath addCurveToPoint: CGPointMake(12.61, 31) controlPoint1: CGPointMake(15.02, 30.75) controlPoint2: CGPointMake(14.09, 31)]; - [bezierPath addLineToPoint: CGPointMake(12, 31)]; - [bezierPath addLineToPoint: CGPointMake(12, 24)]; - [bezierPath addLineToPoint: CGPointMake(12.61, 24)]; - [bezierPath addCurveToPoint: CGPointMake(15.74, 24.86) controlPoint1: CGPointMake(14.09, 24) controlPoint2: CGPointMake(14.98, 24.24)]; - [bezierPath addCurveToPoint: CGPointMake(17, 27.49) controlPoint1: CGPointMake(16.53, 25.49) controlPoint2: CGPointMake(17, 26.47)]; - [bezierPath addCurveToPoint: CGPointMake(15.74, 30.16) controlPoint1: CGPointMake(17, 28.51) controlPoint2: CGPointMake(16.53, 29.52)]; - [bezierPath addLineToPoint: CGPointMake(15.74, 30.16)]; - [bezierPath closePath]; - bezierPath.miterLimit = 4; - - bezierPath.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezierPath fill]; - - - //// Bezier 2 Drawing - UIBezierPath* bezier2Path = [UIBezierPath bezierPath]; - [bezier2Path moveToPoint: CGPointMake(20, 22)]; - [bezier2Path addLineToPoint: CGPointMake(22, 22)]; - [bezier2Path addLineToPoint: CGPointMake(22, 33)]; - [bezier2Path addLineToPoint: CGPointMake(20, 33)]; - [bezier2Path addLineToPoint: CGPointMake(20, 33)]; - [bezier2Path addLineToPoint: CGPointMake(20, 22)]; - [bezier2Path addLineToPoint: CGPointMake(20, 22)]; - [bezier2Path closePath]; - bezier2Path.miterLimit = 4; - - bezier2Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier2Path fill]; - - - //// Bezier 3 Drawing - UIBezierPath* bezier3Path = [UIBezierPath bezierPath]; - [bezier3Path moveToPoint: CGPointMake(27.09, 26.23)]; - [bezier3Path addCurveToPoint: CGPointMake(25.55, 24.9) controlPoint1: CGPointMake(25.9, 25.77) controlPoint2: CGPointMake(25.55, 25.47)]; - [bezier3Path addCurveToPoint: CGPointMake(27.02, 23.73) controlPoint1: CGPointMake(25.55, 24.23) controlPoint2: CGPointMake(26.17, 23.73)]; - [bezier3Path addCurveToPoint: CGPointMake(28.62, 24.58) controlPoint1: CGPointMake(27.62, 23.73) controlPoint2: CGPointMake(28.1, 23.98)]; - [bezier3Path addLineToPoint: CGPointMake(29.65, 23.17)]; - [bezier3Path addCurveToPoint: CGPointMake(26.67, 22) controlPoint1: CGPointMake(28.8, 22.4) controlPoint2: CGPointMake(27.78, 22)]; - [bezier3Path addCurveToPoint: CGPointMake(23.52, 25.03) controlPoint1: CGPointMake(24.88, 22) controlPoint2: CGPointMake(23.52, 23.3)]; - [bezier3Path addCurveToPoint: CGPointMake(26.01, 27.93) controlPoint1: CGPointMake(23.52, 26.48) controlPoint2: CGPointMake(24.15, 27.23)]; - [bezier3Path addCurveToPoint: CGPointMake(27.37, 28.53) controlPoint1: CGPointMake(26.78, 28.21) controlPoint2: CGPointMake(27.17, 28.4)]; - [bezier3Path addCurveToPoint: CGPointMake(27.97, 29.62) controlPoint1: CGPointMake(27.77, 28.8) controlPoint2: CGPointMake(27.97, 29.18)]; - [bezier3Path addCurveToPoint: CGPointMake(26.43, 31.11) controlPoint1: CGPointMake(27.97, 30.48) controlPoint2: CGPointMake(27.31, 31.11)]; - [bezier3Path addCurveToPoint: CGPointMake(24.27, 29.7) controlPoint1: CGPointMake(25.49, 31.11) controlPoint2: CGPointMake(24.73, 30.62)]; - [bezier3Path addLineToPoint: CGPointMake(23, 30.99)]; - [bezier3Path addCurveToPoint: CGPointMake(26.51, 33) controlPoint1: CGPointMake(23.91, 32.38) controlPoint2: CGPointMake(25, 33)]; - [bezier3Path addCurveToPoint: CGPointMake(30, 29.53) controlPoint1: CGPointMake(28.56, 33) controlPoint2: CGPointMake(30, 31.57)]; - [bezier3Path addCurveToPoint: CGPointMake(27.09, 26.23) controlPoint1: CGPointMake(30, 27.85) controlPoint2: CGPointMake(29.33, 27.09)]; - [bezier3Path closePath]; - bezier3Path.miterLimit = 4; - - bezier3Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier3Path fill]; - - - //// Bezier 4 Drawing - UIBezierPath* bezier4Path = [UIBezierPath bezierPath]; - [bezier4Path moveToPoint: CGPointMake(31, 27.51)]; - [bezier4Path addCurveToPoint: CGPointMake(36.47, 33) controlPoint1: CGPointMake(31, 30.6) controlPoint2: CGPointMake(33.39, 33)]; - [bezier4Path addCurveToPoint: CGPointMake(39, 32.39) controlPoint1: CGPointMake(37.34, 33) controlPoint2: CGPointMake(38.08, 32.83)]; - [bezier4Path addLineToPoint: CGPointMake(39, 29.97)]; - [bezier4Path addCurveToPoint: CGPointMake(36.56, 31.12) controlPoint1: CGPointMake(38.19, 30.79) controlPoint2: CGPointMake(37.48, 31.12)]; - [bezier4Path addCurveToPoint: CGPointMake(33.08, 27.49) controlPoint1: CGPointMake(34.53, 31.12) controlPoint2: CGPointMake(33.08, 29.62)]; - [bezier4Path addCurveToPoint: CGPointMake(36.47, 23.88) controlPoint1: CGPointMake(33.08, 25.47) controlPoint2: CGPointMake(34.57, 23.88)]; - [bezier4Path addCurveToPoint: CGPointMake(39, 25.06) controlPoint1: CGPointMake(37.43, 23.88) controlPoint2: CGPointMake(38.16, 24.22)]; - [bezier4Path addLineToPoint: CGPointMake(39, 22.64)]; - [bezier4Path addCurveToPoint: CGPointMake(36.51, 22) controlPoint1: CGPointMake(38.11, 22.19) controlPoint2: CGPointMake(37.38, 22)]; - [bezier4Path addCurveToPoint: CGPointMake(31, 27.51) controlPoint1: CGPointMake(33.45, 22) controlPoint2: CGPointMake(31, 24.45)]; - [bezier4Path closePath]; - bezier4Path.miterLimit = 4; - - bezier4Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier4Path fill]; - - - //// Bezier 5 Drawing - UIBezierPath* bezier5Path = [UIBezierPath bezierPath]; - [bezier5Path moveToPoint: CGPointMake(55.99, 29.2)]; - [bezier5Path addLineToPoint: CGPointMake(53.22, 22)]; - [bezier5Path addLineToPoint: CGPointMake(51, 22)]; - [bezier5Path addLineToPoint: CGPointMake(55.42, 33)]; - [bezier5Path addLineToPoint: CGPointMake(56.51, 33)]; - [bezier5Path addLineToPoint: CGPointMake(61, 22)]; - [bezier5Path addLineToPoint: CGPointMake(58.8, 22)]; - [bezier5Path addLineToPoint: CGPointMake(55.99, 29.2)]; - [bezier5Path closePath]; - bezier5Path.miterLimit = 4; - - bezier5Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier5Path fill]; - - - //// Bezier 6 Drawing - UIBezierPath* bezier6Path = [UIBezierPath bezierPath]; - [bezier6Path moveToPoint: CGPointMake(62, 33)]; - [bezier6Path addLineToPoint: CGPointMake(68, 33)]; - [bezier6Path addLineToPoint: CGPointMake(68, 31.14)]; - [bezier6Path addLineToPoint: CGPointMake(64.11, 31.14)]; - [bezier6Path addLineToPoint: CGPointMake(64.11, 28.17)]; - [bezier6Path addLineToPoint: CGPointMake(67.85, 28.17)]; - [bezier6Path addLineToPoint: CGPointMake(67.85, 26.3)]; - [bezier6Path addLineToPoint: CGPointMake(64.11, 26.3)]; - [bezier6Path addLineToPoint: CGPointMake(64.11, 23.86)]; - [bezier6Path addLineToPoint: CGPointMake(68, 23.86)]; - [bezier6Path addLineToPoint: CGPointMake(68, 22)]; - [bezier6Path addLineToPoint: CGPointMake(62, 22)]; - [bezier6Path addLineToPoint: CGPointMake(62, 33)]; - [bezier6Path closePath]; - bezier6Path.miterLimit = 4; - - bezier6Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier6Path fill]; - - - //// Bezier 7 Drawing - UIBezierPath* bezier7Path = [UIBezierPath bezierPath]; - [bezier7Path moveToPoint: CGPointMake(77.05, 25.25)]; - [bezier7Path addCurveToPoint: CGPointMake(73.17, 22) controlPoint1: CGPointMake(77.05, 23.19) controlPoint2: CGPointMake(75.64, 22)]; - [bezier7Path addLineToPoint: CGPointMake(70, 22)]; - [bezier7Path addLineToPoint: CGPointMake(70, 33)]; - [bezier7Path addLineToPoint: CGPointMake(72.14, 33)]; - [bezier7Path addLineToPoint: CGPointMake(72.14, 28.58)]; - [bezier7Path addLineToPoint: CGPointMake(72.42, 28.58)]; - [bezier7Path addLineToPoint: CGPointMake(75.37, 33)]; - [bezier7Path addLineToPoint: CGPointMake(78, 33)]; - [bezier7Path addLineToPoint: CGPointMake(74.55, 28.37)]; - [bezier7Path addCurveToPoint: CGPointMake(77.05, 25.25) controlPoint1: CGPointMake(76.16, 28.04) controlPoint2: CGPointMake(77.05, 26.93)]; - [bezier7Path addCurveToPoint: CGPointMake(77.05, 25.25) controlPoint1: CGPointMake(77.05, 25.25) controlPoint2: CGPointMake(77.05, 26.93)]; - [bezier7Path addLineToPoint: CGPointMake(77.05, 25.25)]; - [bezier7Path addLineToPoint: CGPointMake(77.05, 25.25)]; - [bezier7Path closePath]; - [bezier7Path moveToPoint: CGPointMake(72.69, 27)]; - [bezier7Path addLineToPoint: CGPointMake(72, 27)]; - [bezier7Path addLineToPoint: CGPointMake(72, 24)]; - [bezier7Path addLineToPoint: CGPointMake(72.73, 24)]; - [bezier7Path addCurveToPoint: CGPointMake(75, 25.47) controlPoint1: CGPointMake(74.2, 24) controlPoint2: CGPointMake(75, 24.51)]; - [bezier7Path addCurveToPoint: CGPointMake(72.69, 27) controlPoint1: CGPointMake(75, 26.46) controlPoint2: CGPointMake(74.2, 27)]; - [bezier7Path addLineToPoint: CGPointMake(72.69, 27)]; - [bezier7Path closePath]; - bezier7Path.miterLimit = 4; - - bezier7Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier7Path fill]; - - - //// Bezier 8 Drawing - UIBezierPath* bezier8Path = [UIBezierPath bezierPath]; - [bezier8Path moveToPoint: CGPointMake(45.5, 33)]; - [bezier8Path addCurveToPoint: CGPointMake(51, 27.5) controlPoint1: CGPointMake(48.54, 33) controlPoint2: CGPointMake(51, 30.54)]; - [bezier8Path addCurveToPoint: CGPointMake(45.5, 22) controlPoint1: CGPointMake(51, 24.46) controlPoint2: CGPointMake(48.54, 22)]; - [bezier8Path addCurveToPoint: CGPointMake(40, 27.5) controlPoint1: CGPointMake(42.46, 22) controlPoint2: CGPointMake(40, 24.46)]; - [bezier8Path addCurveToPoint: CGPointMake(45.5, 33) controlPoint1: CGPointMake(40, 30.54) controlPoint2: CGPointMake(42.46, 33)]; - [bezier8Path closePath]; - bezier8Path.miterLimit = 4; - - bezier8Path.usesEvenOddFillRule = YES; - - [color2 setFill]; - [bezier8Path fill]; - } - } - } - } - - -} -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIJCBVectorArtView.h b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIJCBVectorArtView.h deleted file mode 100644 index bcfb5b3..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIJCBVectorArtView.h +++ /dev/null @@ -1,5 +0,0 @@ -#import "BTUICardVectorArtView.h" - -@interface BTUIJCBVectorArtView : BTUICardVectorArtView - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIJCBVectorArtView.m b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIJCBVectorArtView.m deleted file mode 100644 index 6e3f01b..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIJCBVectorArtView.m +++ /dev/null @@ -1,3831 +0,0 @@ -#import "BTUIJCBVectorArtView.h" - -@implementation BTUIJCBVectorArtView - -- (void)drawArt { - //// General Declarations - CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB(); - CGContextRef context = UIGraphicsGetCurrentContext(); - - //// Color Declarations - UIColor* color1 = [UIColor colorWithRed: 0.262 green: 0.646 blue: 0.146 alpha: 1]; - UIColor* color2 = [UIColor colorWithRed: 0.279 green: 0.659 blue: 0.143 alpha: 1]; - UIColor* color3 = [UIColor colorWithRed: 0.041 green: 0.33 blue: 0.659 alpha: 1]; - UIColor* color4 = [UIColor colorWithRed: 0.041 green: 0.341 blue: 0.673 alpha: 1]; - UIColor* color5 = [UIColor colorWithRed: 0.833 green: 0 blue: 0.166 alpha: 1]; - UIColor* color6 = [UIColor colorWithRed: 0.852 green: 0 blue: 0.169 alpha: 1]; - - //// Gradient Declarations - NSArray* linearGradient3Colors = [NSArray arrayWithObjects: - (id)color5.CGColor, - (id)color6.CGColor, nil]; - CGFloat linearGradient3Locations[] = {0, 1}; - CGGradientRef linearGradient3 = CGGradientCreateWithColors(colorSpace, (CFArrayRef)linearGradient3Colors, linearGradient3Locations); - NSArray* linearGradient1Colors = [NSArray arrayWithObjects: - (id)color1.CGColor, - (id)color2.CGColor, nil]; - CGFloat linearGradient1Locations[] = {0, 1}; - CGGradientRef linearGradient1 = CGGradientCreateWithColors(colorSpace, (CFArrayRef)linearGradient1Colors, linearGradient1Locations); - NSArray* linearGradient2Colors = [NSArray arrayWithObjects: - (id)color3.CGColor, - (id)color4.CGColor, nil]; - CGFloat linearGradient2Locations[] = {0, 1}; - CGGradientRef linearGradient2 = CGGradientCreateWithColors(colorSpace, (CFArrayRef)linearGradient2Colors, linearGradient2Locations); - - //// Page-1 - { - //// JCB - { - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint: CGPointMake(55.28, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(55.31, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(55.37, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(55.42, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(55.48, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(55.53, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(55.59, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(55.64, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(55.7, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(55.75, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(55.81, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(55.86, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(55.92, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(55.97, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(56.03, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(56.08, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(56.14, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(56.19, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(56.25, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(56.3, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(56.36, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(56.41, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(56.47, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(56.52, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(56.58, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(56.63, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(56.69, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(56.74, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(56.8, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(56.85, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(56.91, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(56.96, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(57.02, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(57.07, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(57.13, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(57.18, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(57.24, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(57.29, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(57.34, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(57.4, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(57.45, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(57.51, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(57.56, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(57.62, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(57.67, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(57.73, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(57.78, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(57.84, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(57.89, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(57.95, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(58, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(58.06, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(58.11, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(58.17, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(58.22, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(58.28, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(58.33, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(58.39, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(58.44, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(58.5, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(58.55, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(58.6, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(58.61, 27.96)]; - [bezierPath addCurveToPoint: CGPointMake(58.66, 27.96) controlPoint1: CGPointMake(58.63, 27.96) controlPoint2: CGPointMake(58.64, 27.96)]; - [bezierPath addCurveToPoint: CGPointMake(58.72, 27.96) controlPoint1: CGPointMake(58.68, 27.96) controlPoint2: CGPointMake(58.7, 27.96)]; - [bezierPath addCurveToPoint: CGPointMake(58.77, 27.97) controlPoint1: CGPointMake(58.74, 27.96) controlPoint2: CGPointMake(58.75, 27.97)]; - [bezierPath addCurveToPoint: CGPointMake(58.83, 27.97) controlPoint1: CGPointMake(58.79, 27.97) controlPoint2: CGPointMake(58.81, 27.97)]; - [bezierPath addCurveToPoint: CGPointMake(58.88, 27.98) controlPoint1: CGPointMake(58.85, 27.97) controlPoint2: CGPointMake(58.87, 27.98)]; - [bezierPath addCurveToPoint: CGPointMake(58.94, 27.99) controlPoint1: CGPointMake(58.9, 27.98) controlPoint2: CGPointMake(58.92, 27.98)]; - [bezierPath addCurveToPoint: CGPointMake(58.97, 27.99) controlPoint1: CGPointMake(58.95, 27.99) controlPoint2: CGPointMake(58.96, 27.99)]; - [bezierPath addLineToPoint: CGPointMake(58.99, 28)]; - [bezierPath addCurveToPoint: CGPointMake(59.05, 28.01) controlPoint1: CGPointMake(59.01, 28) controlPoint2: CGPointMake(59.03, 28.01)]; - [bezierPath addCurveToPoint: CGPointMake(59.1, 28.03) controlPoint1: CGPointMake(59.07, 28.02) controlPoint2: CGPointMake(59.08, 28.02)]; - [bezierPath addCurveToPoint: CGPointMake(59.16, 28.05) controlPoint1: CGPointMake(59.12, 28.03) controlPoint2: CGPointMake(59.14, 28.04)]; - [bezierPath addCurveToPoint: CGPointMake(59.21, 28.07) controlPoint1: CGPointMake(59.18, 28.05) controlPoint2: CGPointMake(59.19, 28.06)]; - [bezierPath addCurveToPoint: CGPointMake(59.27, 28.09) controlPoint1: CGPointMake(59.23, 28.07) controlPoint2: CGPointMake(59.25, 28.08)]; - [bezierPath addCurveToPoint: CGPointMake(59.32, 28.12) controlPoint1: CGPointMake(59.29, 28.1) controlPoint2: CGPointMake(59.3, 28.11)]; - [bezierPath addCurveToPoint: CGPointMake(59.38, 28.15) controlPoint1: CGPointMake(59.34, 28.13) controlPoint2: CGPointMake(59.36, 28.14)]; - [bezierPath addCurveToPoint: CGPointMake(59.43, 28.18) controlPoint1: CGPointMake(59.4, 28.16) controlPoint2: CGPointMake(59.41, 28.17)]; - [bezierPath addCurveToPoint: CGPointMake(59.49, 28.21) controlPoint1: CGPointMake(59.45, 28.19) controlPoint2: CGPointMake(59.47, 28.2)]; - [bezierPath addCurveToPoint: CGPointMake(59.54, 28.25) controlPoint1: CGPointMake(59.51, 28.23) controlPoint2: CGPointMake(59.52, 28.24)]; - [bezierPath addCurveToPoint: CGPointMake(59.6, 28.29) controlPoint1: CGPointMake(59.56, 28.27) controlPoint2: CGPointMake(59.58, 28.28)]; - [bezierPath addCurveToPoint: CGPointMake(59.65, 28.34) controlPoint1: CGPointMake(59.62, 28.31) controlPoint2: CGPointMake(59.63, 28.33)]; - [bezierPath addCurveToPoint: CGPointMake(59.71, 28.39) controlPoint1: CGPointMake(59.67, 28.36) controlPoint2: CGPointMake(59.69, 28.38)]; - [bezierPath addCurveToPoint: CGPointMake(59.76, 28.45) controlPoint1: CGPointMake(59.73, 28.41) controlPoint2: CGPointMake(59.74, 28.43)]; - [bezierPath addCurveToPoint: CGPointMake(59.82, 28.52) controlPoint1: CGPointMake(59.78, 28.47) controlPoint2: CGPointMake(59.8, 28.49)]; - [bezierPath addCurveToPoint: CGPointMake(59.87, 28.59) controlPoint1: CGPointMake(59.84, 28.54) controlPoint2: CGPointMake(59.85, 28.57)]; - [bezierPath addCurveToPoint: CGPointMake(59.93, 28.68) controlPoint1: CGPointMake(59.89, 28.62) controlPoint2: CGPointMake(59.91, 28.65)]; - [bezierPath addCurveToPoint: CGPointMake(59.98, 28.78) controlPoint1: CGPointMake(59.95, 28.71) controlPoint2: CGPointMake(59.97, 28.74)]; - [bezierPath addCurveToPoint: CGPointMake(60.04, 28.91) controlPoint1: CGPointMake(60, 28.82) controlPoint2: CGPointMake(60.02, 28.86)]; - [bezierPath addCurveToPoint: CGPointMake(60.09, 29.09) controlPoint1: CGPointMake(60.06, 28.96) controlPoint2: CGPointMake(60.08, 29.03)]; - [bezierPath addCurveToPoint: CGPointMake(60.13, 29.43) controlPoint1: CGPointMake(60.12, 29.2) controlPoint2: CGPointMake(60.13, 29.31)]; - [bezierPath addCurveToPoint: CGPointMake(60.09, 29.78) controlPoint1: CGPointMake(60.13, 29.55) controlPoint2: CGPointMake(60.12, 29.67)]; - [bezierPath addCurveToPoint: CGPointMake(60.04, 29.96) controlPoint1: CGPointMake(60.08, 29.84) controlPoint2: CGPointMake(60.06, 29.9)]; - [bezierPath addCurveToPoint: CGPointMake(59.98, 30.09) controlPoint1: CGPointMake(60.02, 30) controlPoint2: CGPointMake(60, 30.05)]; - [bezierPath addCurveToPoint: CGPointMake(59.93, 30.19) controlPoint1: CGPointMake(59.97, 30.12) controlPoint2: CGPointMake(59.95, 30.16)]; - [bezierPath addCurveToPoint: CGPointMake(59.87, 30.27) controlPoint1: CGPointMake(59.91, 30.22) controlPoint2: CGPointMake(59.89, 30.25)]; - [bezierPath addCurveToPoint: CGPointMake(59.82, 30.35) controlPoint1: CGPointMake(59.85, 30.3) controlPoint2: CGPointMake(59.84, 30.32)]; - [bezierPath addCurveToPoint: CGPointMake(59.76, 30.41) controlPoint1: CGPointMake(59.8, 30.37) controlPoint2: CGPointMake(59.78, 30.39)]; - [bezierPath addCurveToPoint: CGPointMake(59.71, 30.47) controlPoint1: CGPointMake(59.74, 30.43) controlPoint2: CGPointMake(59.73, 30.45)]; - [bezierPath addCurveToPoint: CGPointMake(59.65, 30.52) controlPoint1: CGPointMake(59.69, 30.49) controlPoint2: CGPointMake(59.67, 30.51)]; - [bezierPath addCurveToPoint: CGPointMake(59.6, 30.57) controlPoint1: CGPointMake(59.63, 30.54) controlPoint2: CGPointMake(59.62, 30.56)]; - [bezierPath addCurveToPoint: CGPointMake(59.54, 30.61) controlPoint1: CGPointMake(59.58, 30.59) controlPoint2: CGPointMake(59.56, 30.6)]; - [bezierPath addCurveToPoint: CGPointMake(59.49, 30.65) controlPoint1: CGPointMake(59.52, 30.63) controlPoint2: CGPointMake(59.51, 30.64)]; - [bezierPath addCurveToPoint: CGPointMake(59.43, 30.69) controlPoint1: CGPointMake(59.47, 30.66) controlPoint2: CGPointMake(59.45, 30.68)]; - [bezierPath addCurveToPoint: CGPointMake(59.38, 30.72) controlPoint1: CGPointMake(59.41, 30.7) controlPoint2: CGPointMake(59.4, 30.71)]; - [bezierPath addCurveToPoint: CGPointMake(59.32, 30.75) controlPoint1: CGPointMake(59.36, 30.73) controlPoint2: CGPointMake(59.34, 30.74)]; - [bezierPath addCurveToPoint: CGPointMake(59.27, 30.77) controlPoint1: CGPointMake(59.3, 30.76) controlPoint2: CGPointMake(59.29, 30.77)]; - [bezierPath addCurveToPoint: CGPointMake(59.21, 30.8) controlPoint1: CGPointMake(59.25, 30.78) controlPoint2: CGPointMake(59.23, 30.79)]; - [bezierPath addCurveToPoint: CGPointMake(59.16, 30.82) controlPoint1: CGPointMake(59.19, 30.8) controlPoint2: CGPointMake(59.18, 30.81)]; - [bezierPath addCurveToPoint: CGPointMake(59.1, 30.84) controlPoint1: CGPointMake(59.14, 30.82) controlPoint2: CGPointMake(59.12, 30.83)]; - [bezierPath addCurveToPoint: CGPointMake(59.05, 30.85) controlPoint1: CGPointMake(59.08, 30.84) controlPoint2: CGPointMake(59.07, 30.85)]; - [bezierPath addCurveToPoint: CGPointMake(58.99, 30.87) controlPoint1: CGPointMake(59.03, 30.86) controlPoint2: CGPointMake(59.01, 30.86)]; - [bezierPath addLineToPoint: CGPointMake(58.97, 30.87)]; - [bezierPath addCurveToPoint: CGPointMake(58.94, 30.88) controlPoint1: CGPointMake(58.96, 30.87) controlPoint2: CGPointMake(58.95, 30.87)]; - [bezierPath addCurveToPoint: CGPointMake(58.88, 30.88) controlPoint1: CGPointMake(58.92, 30.88) controlPoint2: CGPointMake(58.9, 30.88)]; - [bezierPath addCurveToPoint: CGPointMake(58.83, 30.89) controlPoint1: CGPointMake(58.87, 30.89) controlPoint2: CGPointMake(58.85, 30.89)]; - [bezierPath addCurveToPoint: CGPointMake(58.77, 30.9) controlPoint1: CGPointMake(58.81, 30.89) controlPoint2: CGPointMake(58.79, 30.9)]; - [bezierPath addCurveToPoint: CGPointMake(58.72, 30.9) controlPoint1: CGPointMake(58.75, 30.9) controlPoint2: CGPointMake(58.74, 30.9)]; - [bezierPath addCurveToPoint: CGPointMake(58.66, 30.9) controlPoint1: CGPointMake(58.7, 30.9) controlPoint2: CGPointMake(58.68, 30.9)]; - [bezierPath addCurveToPoint: CGPointMake(58.61, 30.91) controlPoint1: CGPointMake(58.64, 30.91) controlPoint2: CGPointMake(58.63, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(58.58, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(58.55, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(58.5, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(58.44, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(58.39, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(58.33, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(58.28, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(58.22, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(58.17, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(58.11, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(58.06, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(58, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(57.95, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(57.89, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(57.84, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(57.78, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(57.73, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(57.67, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(57.62, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(57.56, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(57.51, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(57.45, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(57.4, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(57.34, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(57.29, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(57.24, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(57.18, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(57.13, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(57.07, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(57.02, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(56.96, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(56.91, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(56.85, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(56.8, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(56.74, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(56.69, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(56.63, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(56.58, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(56.52, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(56.47, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(56.41, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(56.36, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(56.3, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(56.25, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(56.19, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(56.14, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(56.08, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(56.03, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(55.97, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(55.92, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(55.86, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(55.81, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(55.75, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(55.7, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(55.64, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(55.59, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(55.53, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(55.48, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(55.42, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(55.37, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(55.31, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(55.28, 30.91)]; - [bezierPath addLineToPoint: CGPointMake(55.28, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(55.28, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(55.28, 27.96)]; - [bezierPath addLineToPoint: CGPointMake(55.28, 27.96)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(59.71, 24.62)]; - [bezierPath addCurveToPoint: CGPointMake(59.74, 24.93) controlPoint1: CGPointMake(59.73, 24.72) controlPoint2: CGPointMake(59.74, 24.82)]; - [bezierPath addCurveToPoint: CGPointMake(59.71, 25.25) controlPoint1: CGPointMake(59.74, 25.04) controlPoint2: CGPointMake(59.73, 25.15)]; - [bezierPath addCurveToPoint: CGPointMake(59.65, 25.43) controlPoint1: CGPointMake(59.69, 25.31) controlPoint2: CGPointMake(59.67, 25.37)]; - [bezierPath addCurveToPoint: CGPointMake(59.6, 25.55) controlPoint1: CGPointMake(59.64, 25.47) controlPoint2: CGPointMake(59.62, 25.51)]; - [bezierPath addCurveToPoint: CGPointMake(59.54, 25.65) controlPoint1: CGPointMake(59.58, 25.59) controlPoint2: CGPointMake(59.56, 25.62)]; - [bezierPath addCurveToPoint: CGPointMake(59.49, 25.73) controlPoint1: CGPointMake(59.53, 25.68) controlPoint2: CGPointMake(59.51, 25.71)]; - [bezierPath addCurveToPoint: CGPointMake(59.43, 25.8) controlPoint1: CGPointMake(59.47, 25.76) controlPoint2: CGPointMake(59.45, 25.78)]; - [bezierPath addCurveToPoint: CGPointMake(59.38, 25.86) controlPoint1: CGPointMake(59.42, 25.82) controlPoint2: CGPointMake(59.4, 25.84)]; - [bezierPath addCurveToPoint: CGPointMake(59.32, 25.92) controlPoint1: CGPointMake(59.36, 25.88) controlPoint2: CGPointMake(59.34, 25.9)]; - [bezierPath addCurveToPoint: CGPointMake(59.27, 25.96) controlPoint1: CGPointMake(59.31, 25.93) controlPoint2: CGPointMake(59.29, 25.95)]; - [bezierPath addCurveToPoint: CGPointMake(59.21, 26.01) controlPoint1: CGPointMake(59.25, 25.98) controlPoint2: CGPointMake(59.23, 25.99)]; - [bezierPath addCurveToPoint: CGPointMake(59.16, 26.05) controlPoint1: CGPointMake(59.2, 26.02) controlPoint2: CGPointMake(59.18, 26.03)]; - [bezierPath addCurveToPoint: CGPointMake(59.1, 26.08) controlPoint1: CGPointMake(59.14, 26.06) controlPoint2: CGPointMake(59.12, 26.07)]; - [bezierPath addCurveToPoint: CGPointMake(59.05, 26.11) controlPoint1: CGPointMake(59.09, 26.09) controlPoint2: CGPointMake(59.07, 26.1)]; - [bezierPath addCurveToPoint: CGPointMake(58.99, 26.14) controlPoint1: CGPointMake(59.03, 26.12) controlPoint2: CGPointMake(59.01, 26.13)]; - [bezierPath addCurveToPoint: CGPointMake(58.94, 26.17) controlPoint1: CGPointMake(58.98, 26.15) controlPoint2: CGPointMake(58.96, 26.16)]; - [bezierPath addCurveToPoint: CGPointMake(58.88, 26.19) controlPoint1: CGPointMake(58.92, 26.17) controlPoint2: CGPointMake(58.9, 26.18)]; - [bezierPath addCurveToPoint: CGPointMake(58.83, 26.21) controlPoint1: CGPointMake(58.87, 26.2) controlPoint2: CGPointMake(58.85, 26.2)]; - [bezierPath addCurveToPoint: CGPointMake(58.77, 26.23) controlPoint1: CGPointMake(58.81, 26.22) controlPoint2: CGPointMake(58.79, 26.22)]; - [bezierPath addCurveToPoint: CGPointMake(58.72, 26.24) controlPoint1: CGPointMake(58.76, 26.23) controlPoint2: CGPointMake(58.74, 26.24)]; - [bezierPath addCurveToPoint: CGPointMake(58.66, 26.25) controlPoint1: CGPointMake(58.7, 26.25) controlPoint2: CGPointMake(58.68, 26.25)]; - [bezierPath addCurveToPoint: CGPointMake(58.61, 26.27) controlPoint1: CGPointMake(58.65, 26.26) controlPoint2: CGPointMake(58.63, 26.26)]; - [bezierPath addLineToPoint: CGPointMake(58.6, 26.27)]; - [bezierPath addCurveToPoint: CGPointMake(58.55, 26.27) controlPoint1: CGPointMake(58.58, 26.27) controlPoint2: CGPointMake(58.57, 26.27)]; - [bezierPath addCurveToPoint: CGPointMake(58.5, 26.28) controlPoint1: CGPointMake(58.54, 26.28) controlPoint2: CGPointMake(58.52, 26.28)]; - [bezierPath addCurveToPoint: CGPointMake(58.44, 26.28) controlPoint1: CGPointMake(58.48, 26.28) controlPoint2: CGPointMake(58.46, 26.28)]; - [bezierPath addCurveToPoint: CGPointMake(58.39, 26.29) controlPoint1: CGPointMake(58.43, 26.29) controlPoint2: CGPointMake(58.41, 26.29)]; - [bezierPath addCurveToPoint: CGPointMake(58.33, 26.29) controlPoint1: CGPointMake(58.37, 26.29) controlPoint2: CGPointMake(58.35, 26.29)]; - [bezierPath addCurveToPoint: CGPointMake(58.28, 26.29) controlPoint1: CGPointMake(58.32, 26.29) controlPoint2: CGPointMake(58.3, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(58.27, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(58.22, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(58.17, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(58.11, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(58.06, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(58, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(57.95, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(57.89, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(57.84, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(57.78, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(57.73, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(57.67, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(57.62, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(57.56, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(57.51, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(57.46, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(57.4, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(57.35, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(57.29, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(57.24, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(57.18, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(57.13, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(57.07, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(57.02, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(56.96, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(56.91, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(56.85, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(56.8, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(56.74, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(56.69, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(56.63, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(56.58, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(56.52, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(56.47, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(56.41, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(56.36, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(56.3, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(56.25, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(56.19, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(56.14, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(56.08, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(56.03, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(55.97, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(55.92, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(55.86, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(55.81, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(55.75, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(55.7, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(55.64, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(55.59, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(55.53, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(55.48, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(55.42, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(55.37, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(55.31, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(55.28, 26.29)]; - [bezierPath addLineToPoint: CGPointMake(55.28, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(55.31, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(55.37, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(55.42, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(55.48, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(55.53, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(55.59, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(55.64, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(55.7, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(55.75, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(55.81, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(55.86, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(55.92, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(55.97, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(56.03, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(56.08, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(56.14, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(56.19, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(56.25, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(56.3, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(56.36, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(56.41, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(56.47, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(56.52, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(56.58, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(56.63, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(56.69, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(56.74, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(56.8, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(56.85, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(56.91, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(56.96, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(57.02, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(57.07, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(57.13, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(57.18, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(57.24, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(57.29, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(57.35, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(57.4, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(57.46, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(57.51, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(57.56, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(57.62, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(57.67, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(57.73, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(57.78, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(57.84, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(57.89, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(57.95, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(58, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(58.06, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(58.11, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(58.17, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(58.22, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(58.28, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(58.3, 23.57)]; - [bezierPath addLineToPoint: CGPointMake(58.33, 23.57)]; - [bezierPath addCurveToPoint: CGPointMake(58.39, 23.57) controlPoint1: CGPointMake(58.35, 23.57) controlPoint2: CGPointMake(58.37, 23.57)]; - [bezierPath addCurveToPoint: CGPointMake(58.44, 23.58) controlPoint1: CGPointMake(58.41, 23.58) controlPoint2: CGPointMake(58.43, 23.58)]; - [bezierPath addCurveToPoint: CGPointMake(58.5, 23.58) controlPoint1: CGPointMake(58.46, 23.58) controlPoint2: CGPointMake(58.48, 23.58)]; - [bezierPath addCurveToPoint: CGPointMake(58.55, 23.59) controlPoint1: CGPointMake(58.52, 23.59) controlPoint2: CGPointMake(58.54, 23.59)]; - [bezierPath addCurveToPoint: CGPointMake(58.6, 23.59) controlPoint1: CGPointMake(58.57, 23.59) controlPoint2: CGPointMake(58.58, 23.59)]; - [bezierPath addLineToPoint: CGPointMake(58.61, 23.6)]; - [bezierPath addCurveToPoint: CGPointMake(58.66, 23.61) controlPoint1: CGPointMake(58.63, 23.6) controlPoint2: CGPointMake(58.65, 23.6)]; - [bezierPath addCurveToPoint: CGPointMake(58.72, 23.62) controlPoint1: CGPointMake(58.68, 23.61) controlPoint2: CGPointMake(58.7, 23.62)]; - [bezierPath addCurveToPoint: CGPointMake(58.77, 23.64) controlPoint1: CGPointMake(58.74, 23.63) controlPoint2: CGPointMake(58.76, 23.63)]; - [bezierPath addCurveToPoint: CGPointMake(58.83, 23.65) controlPoint1: CGPointMake(58.79, 23.64) controlPoint2: CGPointMake(58.81, 23.65)]; - [bezierPath addCurveToPoint: CGPointMake(58.88, 23.67) controlPoint1: CGPointMake(58.85, 23.66) controlPoint2: CGPointMake(58.87, 23.67)]; - [bezierPath addCurveToPoint: CGPointMake(58.94, 23.7) controlPoint1: CGPointMake(58.9, 23.68) controlPoint2: CGPointMake(58.92, 23.69)]; - [bezierPath addCurveToPoint: CGPointMake(58.99, 23.72) controlPoint1: CGPointMake(58.96, 23.7) controlPoint2: CGPointMake(58.98, 23.71)]; - [bezierPath addCurveToPoint: CGPointMake(59.05, 23.75) controlPoint1: CGPointMake(59.01, 23.73) controlPoint2: CGPointMake(59.03, 23.74)]; - [bezierPath addCurveToPoint: CGPointMake(59.1, 23.78) controlPoint1: CGPointMake(59.07, 23.76) controlPoint2: CGPointMake(59.09, 23.77)]; - [bezierPath addCurveToPoint: CGPointMake(59.16, 23.82) controlPoint1: CGPointMake(59.12, 23.79) controlPoint2: CGPointMake(59.14, 23.8)]; - [bezierPath addCurveToPoint: CGPointMake(59.21, 23.86) controlPoint1: CGPointMake(59.18, 23.83) controlPoint2: CGPointMake(59.2, 23.84)]; - [bezierPath addCurveToPoint: CGPointMake(59.27, 23.9) controlPoint1: CGPointMake(59.23, 23.87) controlPoint2: CGPointMake(59.25, 23.88)]; - [bezierPath addCurveToPoint: CGPointMake(59.32, 23.95) controlPoint1: CGPointMake(59.29, 23.91) controlPoint2: CGPointMake(59.31, 23.93)]; - [bezierPath addCurveToPoint: CGPointMake(59.38, 24) controlPoint1: CGPointMake(59.34, 23.96) controlPoint2: CGPointMake(59.36, 23.98)]; - [bezierPath addCurveToPoint: CGPointMake(59.43, 24.06) controlPoint1: CGPointMake(59.4, 24.02) controlPoint2: CGPointMake(59.42, 24.04)]; - [bezierPath addCurveToPoint: CGPointMake(59.49, 24.13) controlPoint1: CGPointMake(59.45, 24.08) controlPoint2: CGPointMake(59.47, 24.11)]; - [bezierPath addCurveToPoint: CGPointMake(59.54, 24.21) controlPoint1: CGPointMake(59.51, 24.16) controlPoint2: CGPointMake(59.53, 24.18)]; - [bezierPath addCurveToPoint: CGPointMake(59.6, 24.31) controlPoint1: CGPointMake(59.56, 24.24) controlPoint2: CGPointMake(59.58, 24.28)]; - [bezierPath addCurveToPoint: CGPointMake(59.65, 24.43) controlPoint1: CGPointMake(59.62, 24.35) controlPoint2: CGPointMake(59.64, 24.39)]; - [bezierPath addCurveToPoint: CGPointMake(59.71, 24.62) controlPoint1: CGPointMake(59.67, 24.49) controlPoint2: CGPointMake(59.69, 24.55)]; - [bezierPath addCurveToPoint: CGPointMake(59.71, 24.62) controlPoint1: CGPointMake(59.71, 24.62) controlPoint2: CGPointMake(59.69, 24.55)]; - [bezierPath addLineToPoint: CGPointMake(59.71, 24.62)]; - [bezierPath addLineToPoint: CGPointMake(59.71, 24.62)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(66.52, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(66.54, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(66.54, 38.46)]; - [bezierPath addCurveToPoint: CGPointMake(66.52, 38.96) controlPoint1: CGPointMake(66.54, 38.63) controlPoint2: CGPointMake(66.54, 38.79)]; - [bezierPath addCurveToPoint: CGPointMake(66.47, 39.38) controlPoint1: CGPointMake(66.51, 39.1) controlPoint2: CGPointMake(66.49, 39.24)]; - [bezierPath addCurveToPoint: CGPointMake(66.41, 39.66) controlPoint1: CGPointMake(66.45, 39.48) controlPoint2: CGPointMake(66.43, 39.57)]; - [bezierPath addCurveToPoint: CGPointMake(66.36, 39.89) controlPoint1: CGPointMake(66.39, 39.74) controlPoint2: CGPointMake(66.38, 39.81)]; - [bezierPath addCurveToPoint: CGPointMake(66.3, 40.08) controlPoint1: CGPointMake(66.34, 39.95) controlPoint2: CGPointMake(66.32, 40.02)]; - [bezierPath addCurveToPoint: CGPointMake(66.25, 40.25) controlPoint1: CGPointMake(66.28, 40.14) controlPoint2: CGPointMake(66.27, 40.19)]; - [bezierPath addCurveToPoint: CGPointMake(66.19, 40.4) controlPoint1: CGPointMake(66.23, 40.3) controlPoint2: CGPointMake(66.21, 40.35)]; - [bezierPath addCurveToPoint: CGPointMake(66.14, 40.54) controlPoint1: CGPointMake(66.17, 40.45) controlPoint2: CGPointMake(66.16, 40.5)]; - [bezierPath addCurveToPoint: CGPointMake(66.08, 40.67) controlPoint1: CGPointMake(66.12, 40.58) controlPoint2: CGPointMake(66.1, 40.63)]; - [bezierPath addCurveToPoint: CGPointMake(66.03, 40.79) controlPoint1: CGPointMake(66.06, 40.71) controlPoint2: CGPointMake(66.05, 40.75)]; - [bezierPath addCurveToPoint: CGPointMake(65.97, 40.91) controlPoint1: CGPointMake(66.01, 40.83) controlPoint2: CGPointMake(65.99, 40.87)]; - [bezierPath addCurveToPoint: CGPointMake(65.92, 41.01) controlPoint1: CGPointMake(65.95, 40.94) controlPoint2: CGPointMake(65.94, 40.98)]; - [bezierPath addCurveToPoint: CGPointMake(65.86, 41.12) controlPoint1: CGPointMake(65.9, 41.05) controlPoint2: CGPointMake(65.88, 41.08)]; - [bezierPath addCurveToPoint: CGPointMake(65.81, 41.21) controlPoint1: CGPointMake(65.84, 41.15) controlPoint2: CGPointMake(65.83, 41.18)]; - [bezierPath addCurveToPoint: CGPointMake(65.75, 41.31) controlPoint1: CGPointMake(65.79, 41.25) controlPoint2: CGPointMake(65.77, 41.28)]; - [bezierPath addCurveToPoint: CGPointMake(65.7, 41.4) controlPoint1: CGPointMake(65.73, 41.34) controlPoint2: CGPointMake(65.72, 41.37)]; - [bezierPath addCurveToPoint: CGPointMake(65.64, 41.48) controlPoint1: CGPointMake(65.68, 41.43) controlPoint2: CGPointMake(65.66, 41.45)]; - [bezierPath addCurveToPoint: CGPointMake(65.59, 41.56) controlPoint1: CGPointMake(65.62, 41.51) controlPoint2: CGPointMake(65.61, 41.54)]; - [bezierPath addCurveToPoint: CGPointMake(65.53, 41.64) controlPoint1: CGPointMake(65.57, 41.59) controlPoint2: CGPointMake(65.55, 41.62)]; - [bezierPath addCurveToPoint: CGPointMake(65.48, 41.72) controlPoint1: CGPointMake(65.51, 41.67) controlPoint2: CGPointMake(65.5, 41.7)]; - [bezierPath addCurveToPoint: CGPointMake(65.42, 41.79) controlPoint1: CGPointMake(65.46, 41.75) controlPoint2: CGPointMake(65.44, 41.77)]; - [bezierPath addCurveToPoint: CGPointMake(65.37, 41.87) controlPoint1: CGPointMake(65.4, 41.82) controlPoint2: CGPointMake(65.39, 41.84)]; - [bezierPath addCurveToPoint: CGPointMake(65.31, 41.93) controlPoint1: CGPointMake(65.35, 41.89) controlPoint2: CGPointMake(65.33, 41.91)]; - [bezierPath addCurveToPoint: CGPointMake(65.26, 42) controlPoint1: CGPointMake(65.29, 41.96) controlPoint2: CGPointMake(65.28, 41.98)]; - [bezierPath addCurveToPoint: CGPointMake(65.2, 42.07) controlPoint1: CGPointMake(65.24, 42.02) controlPoint2: CGPointMake(65.22, 42.05)]; - [bezierPath addCurveToPoint: CGPointMake(65.15, 42.13) controlPoint1: CGPointMake(65.18, 42.09) controlPoint2: CGPointMake(65.17, 42.11)]; - [bezierPath addCurveToPoint: CGPointMake(65.09, 42.19) controlPoint1: CGPointMake(65.13, 42.15) controlPoint2: CGPointMake(65.11, 42.17)]; - [bezierPath addCurveToPoint: CGPointMake(65.04, 42.25) controlPoint1: CGPointMake(65.07, 42.21) controlPoint2: CGPointMake(65.06, 42.23)]; - [bezierPath addCurveToPoint: CGPointMake(64.98, 42.31) controlPoint1: CGPointMake(65.02, 42.27) controlPoint2: CGPointMake(65, 42.29)]; - [bezierPath addCurveToPoint: CGPointMake(64.93, 42.36) controlPoint1: CGPointMake(64.96, 42.33) controlPoint2: CGPointMake(64.95, 42.35)]; - [bezierPath addCurveToPoint: CGPointMake(64.87, 42.42) controlPoint1: CGPointMake(64.91, 42.38) controlPoint2: CGPointMake(64.89, 42.4)]; - [bezierPath addCurveToPoint: CGPointMake(64.82, 42.47) controlPoint1: CGPointMake(64.85, 42.44) controlPoint2: CGPointMake(64.84, 42.45)]; - [bezierPath addCurveToPoint: CGPointMake(64.76, 42.52) controlPoint1: CGPointMake(64.8, 42.49) controlPoint2: CGPointMake(64.78, 42.51)]; - [bezierPath addCurveToPoint: CGPointMake(64.71, 42.57) controlPoint1: CGPointMake(64.74, 42.54) controlPoint2: CGPointMake(64.73, 42.56)]; - [bezierPath addCurveToPoint: CGPointMake(64.65, 42.62) controlPoint1: CGPointMake(64.69, 42.59) controlPoint2: CGPointMake(64.67, 42.61)]; - [bezierPath addCurveToPoint: CGPointMake(64.6, 42.67) controlPoint1: CGPointMake(64.63, 42.64) controlPoint2: CGPointMake(64.62, 42.66)]; - [bezierPath addCurveToPoint: CGPointMake(64.54, 42.72) controlPoint1: CGPointMake(64.58, 42.69) controlPoint2: CGPointMake(64.56, 42.7)]; - [bezierPath addCurveToPoint: CGPointMake(64.49, 42.76) controlPoint1: CGPointMake(64.52, 42.73) controlPoint2: CGPointMake(64.51, 42.75)]; - [bezierPath addCurveToPoint: CGPointMake(64.43, 42.81) controlPoint1: CGPointMake(64.47, 42.78) controlPoint2: CGPointMake(64.45, 42.79)]; - [bezierPath addCurveToPoint: CGPointMake(64.38, 42.85) controlPoint1: CGPointMake(64.41, 42.82) controlPoint2: CGPointMake(64.4, 42.84)]; - [bezierPath addCurveToPoint: CGPointMake(64.32, 42.89) controlPoint1: CGPointMake(64.36, 42.86) controlPoint2: CGPointMake(64.34, 42.88)]; - [bezierPath addCurveToPoint: CGPointMake(64.27, 42.93) controlPoint1: CGPointMake(64.3, 42.91) controlPoint2: CGPointMake(64.29, 42.92)]; - [bezierPath addCurveToPoint: CGPointMake(64.21, 42.97) controlPoint1: CGPointMake(64.25, 42.95) controlPoint2: CGPointMake(64.23, 42.96)]; - [bezierPath addCurveToPoint: CGPointMake(64.16, 43.01) controlPoint1: CGPointMake(64.19, 42.99) controlPoint2: CGPointMake(64.18, 43)]; - [bezierPath addCurveToPoint: CGPointMake(64.1, 43.05) controlPoint1: CGPointMake(64.14, 43.03) controlPoint2: CGPointMake(64.12, 43.04)]; - [bezierPath addCurveToPoint: CGPointMake(64.05, 43.09) controlPoint1: CGPointMake(64.09, 43.06) controlPoint2: CGPointMake(64.07, 43.08)]; - [bezierPath addCurveToPoint: CGPointMake(63.99, 43.12) controlPoint1: CGPointMake(64.03, 43.1) controlPoint2: CGPointMake(64.01, 43.11)]; - [bezierPath addCurveToPoint: CGPointMake(63.94, 43.16) controlPoint1: CGPointMake(63.98, 43.14) controlPoint2: CGPointMake(63.96, 43.15)]; - [bezierPath addCurveToPoint: CGPointMake(63.88, 43.19) controlPoint1: CGPointMake(63.92, 43.17) controlPoint2: CGPointMake(63.9, 43.18)]; - [bezierPath addCurveToPoint: CGPointMake(63.83, 43.23) controlPoint1: CGPointMake(63.87, 43.21) controlPoint2: CGPointMake(63.85, 43.22)]; - [bezierPath addCurveToPoint: CGPointMake(63.77, 43.26) controlPoint1: CGPointMake(63.81, 43.24) controlPoint2: CGPointMake(63.79, 43.25)]; - [bezierPath addLineToPoint: CGPointMake(63.72, 43.29)]; - [bezierPath addCurveToPoint: CGPointMake(63.66, 43.32) controlPoint1: CGPointMake(63.7, 43.3) controlPoint2: CGPointMake(63.68, 43.31)]; - [bezierPath addCurveToPoint: CGPointMake(63.61, 43.35) controlPoint1: CGPointMake(63.65, 43.33) controlPoint2: CGPointMake(63.63, 43.34)]; - [bezierPath addCurveToPoint: CGPointMake(63.55, 43.38) controlPoint1: CGPointMake(63.59, 43.36) controlPoint2: CGPointMake(63.57, 43.37)]; - [bezierPath addCurveToPoint: CGPointMake(63.5, 43.41) controlPoint1: CGPointMake(63.54, 43.39) controlPoint2: CGPointMake(63.52, 43.4)]; - [bezierPath addCurveToPoint: CGPointMake(63.44, 43.44) controlPoint1: CGPointMake(63.48, 43.42) controlPoint2: CGPointMake(63.46, 43.43)]; - [bezierPath addCurveToPoint: CGPointMake(63.39, 43.47) controlPoint1: CGPointMake(63.43, 43.45) controlPoint2: CGPointMake(63.41, 43.46)]; - [bezierPath addCurveToPoint: CGPointMake(63.33, 43.49) controlPoint1: CGPointMake(63.37, 43.48) controlPoint2: CGPointMake(63.35, 43.49)]; - [bezierPath addCurveToPoint: CGPointMake(63.28, 43.52) controlPoint1: CGPointMake(63.32, 43.5) controlPoint2: CGPointMake(63.3, 43.51)]; - [bezierPath addLineToPoint: CGPointMake(63.22, 43.55)]; - [bezierPath addLineToPoint: CGPointMake(63.17, 43.57)]; - [bezierPath addCurveToPoint: CGPointMake(63.11, 43.59) controlPoint1: CGPointMake(63.15, 43.58) controlPoint2: CGPointMake(63.13, 43.59)]; - [bezierPath addCurveToPoint: CGPointMake(63.06, 43.62) controlPoint1: CGPointMake(63.1, 43.6) controlPoint2: CGPointMake(63.08, 43.61)]; - [bezierPath addCurveToPoint: CGPointMake(63, 43.64) controlPoint1: CGPointMake(63.04, 43.62) controlPoint2: CGPointMake(63.02, 43.63)]; - [bezierPath addCurveToPoint: CGPointMake(62.95, 43.66) controlPoint1: CGPointMake(62.99, 43.65) controlPoint2: CGPointMake(62.97, 43.65)]; - [bezierPath addCurveToPoint: CGPointMake(62.89, 43.68) controlPoint1: CGPointMake(62.93, 43.67) controlPoint2: CGPointMake(62.91, 43.68)]; - [bezierPath addCurveToPoint: CGPointMake(62.84, 43.7) controlPoint1: CGPointMake(62.88, 43.69) controlPoint2: CGPointMake(62.86, 43.7)]; - [bezierPath addLineToPoint: CGPointMake(62.78, 43.72)]; - [bezierPath addCurveToPoint: CGPointMake(62.73, 43.74) controlPoint1: CGPointMake(62.77, 43.73) controlPoint2: CGPointMake(62.75, 43.74)]; - [bezierPath addCurveToPoint: CGPointMake(62.67, 43.76) controlPoint1: CGPointMake(62.71, 43.75) controlPoint2: CGPointMake(62.69, 43.75)]; - [bezierPath addCurveToPoint: CGPointMake(62.62, 43.78) controlPoint1: CGPointMake(62.66, 43.77) controlPoint2: CGPointMake(62.64, 43.77)]; - [bezierPath addLineToPoint: CGPointMake(62.56, 43.8)]; - [bezierPath addCurveToPoint: CGPointMake(62.51, 43.81) controlPoint1: CGPointMake(62.55, 43.8) controlPoint2: CGPointMake(62.53, 43.81)]; - [bezierPath addLineToPoint: CGPointMake(62.45, 43.83)]; - [bezierPath addCurveToPoint: CGPointMake(62.4, 43.84) controlPoint1: CGPointMake(62.44, 43.83) controlPoint2: CGPointMake(62.42, 43.84)]; - [bezierPath addCurveToPoint: CGPointMake(62.34, 43.86) controlPoint1: CGPointMake(62.38, 43.85) controlPoint2: CGPointMake(62.36, 43.85)]; - [bezierPath addCurveToPoint: CGPointMake(62.29, 43.87) controlPoint1: CGPointMake(62.33, 43.86) controlPoint2: CGPointMake(62.31, 43.87)]; - [bezierPath addLineToPoint: CGPointMake(62.24, 43.89)]; - [bezierPath addLineToPoint: CGPointMake(62.18, 43.9)]; - [bezierPath addLineToPoint: CGPointMake(62.13, 43.91)]; - [bezierPath addCurveToPoint: CGPointMake(62.07, 43.92) controlPoint1: CGPointMake(62.11, 43.92) controlPoint2: CGPointMake(62.09, 43.92)]; - [bezierPath addCurveToPoint: CGPointMake(62.02, 43.94) controlPoint1: CGPointMake(62.05, 43.93) controlPoint2: CGPointMake(62.03, 43.93)]; - [bezierPath addLineToPoint: CGPointMake(61.96, 43.95)]; - [bezierPath addLineToPoint: CGPointMake(61.91, 43.96)]; - [bezierPath addCurveToPoint: CGPointMake(61.85, 43.97) controlPoint1: CGPointMake(61.89, 43.96) controlPoint2: CGPointMake(61.87, 43.96)]; - [bezierPath addCurveToPoint: CGPointMake(61.8, 43.98) controlPoint1: CGPointMake(61.83, 43.97) controlPoint2: CGPointMake(61.81, 43.97)]; - [bezierPath addLineToPoint: CGPointMake(61.74, 43.99)]; - [bezierPath addLineToPoint: CGPointMake(61.69, 43.99)]; - [bezierPath addLineToPoint: CGPointMake(61.63, 44)]; - [bezierPath addCurveToPoint: CGPointMake(61.58, 44.01) controlPoint1: CGPointMake(61.61, 44) controlPoint2: CGPointMake(61.59, 44.01)]; - [bezierPath addCurveToPoint: CGPointMake(61.52, 44.01) controlPoint1: CGPointMake(61.56, 44.01) controlPoint2: CGPointMake(61.54, 44.01)]; - [bezierPath addCurveToPoint: CGPointMake(61.47, 44.02) controlPoint1: CGPointMake(61.5, 44.02) controlPoint2: CGPointMake(61.48, 44.02)]; - [bezierPath addCurveToPoint: CGPointMake(61.41, 44.03) controlPoint1: CGPointMake(61.45, 44.02) controlPoint2: CGPointMake(61.43, 44.02)]; - [bezierPath addCurveToPoint: CGPointMake(61.36, 44.03) controlPoint1: CGPointMake(61.39, 44.03) controlPoint2: CGPointMake(61.37, 44.03)]; - [bezierPath addCurveToPoint: CGPointMake(61.3, 44.04) controlPoint1: CGPointMake(61.34, 44.03) controlPoint2: CGPointMake(61.32, 44.03)]; - [bezierPath addCurveToPoint: CGPointMake(61.25, 44.04) controlPoint1: CGPointMake(61.28, 44.04) controlPoint2: CGPointMake(61.26, 44.04)]; - [bezierPath addLineToPoint: CGPointMake(61.19, 44.04)]; - [bezierPath addCurveToPoint: CGPointMake(61.14, 44.05) controlPoint1: CGPointMake(61.17, 44.04) controlPoint2: CGPointMake(61.15, 44.05)]; - [bezierPath addCurveToPoint: CGPointMake(61.08, 44.05) controlPoint1: CGPointMake(61.12, 44.05) controlPoint2: CGPointMake(61.1, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(61.03, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(60.97, 44.05)]; - [bezierPath addCurveToPoint: CGPointMake(60.92, 44.05) controlPoint1: CGPointMake(60.95, 44.05) controlPoint2: CGPointMake(60.93, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(60.86, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(60.85, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(60.81, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(60.75, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(60.7, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(60.64, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(60.59, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(60.53, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(60.48, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(60.42, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(60.37, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(60.31, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(60.26, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(60.2, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(60.15, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(60.09, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(60.04, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(59.98, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(59.93, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(59.87, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(59.82, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(59.76, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(59.71, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(59.65, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(59.6, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(59.54, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(59.49, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(59.43, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(59.38, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(59.32, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(59.27, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(59.21, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(59.16, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(59.1, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(59.05, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(58.99, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(58.94, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(58.88, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(58.83, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(58.77, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(58.72, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(58.66, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(58.61, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(58.55, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(58.5, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(58.44, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(58.39, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(58.33, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(58.28, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(58.22, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(58.17, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(58.11, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(58.06, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(58, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(57.95, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(57.89, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(57.84, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(57.78, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(57.73, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(57.67, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(57.62, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(57.56, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(57.51, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(57.45, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(57.4, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(57.34, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(57.29, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(57.23, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(57.18, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(57.12, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(57.07, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(57.01, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(56.96, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(56.9, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(56.85, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(56.79, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(56.74, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(56.68, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(56.63, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(56.58, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(56.52, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(56.47, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(56.41, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(56.36, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(56.3, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(56.25, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(56.19, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(56.14, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(56.08, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(56.03, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(55.97, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(55.92, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(55.86, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(55.81, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(55.75, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(55.7, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(55.64, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(55.59, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(55.53, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(55.48, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(55.42, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(55.37, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(55.31, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(55.26, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(55.2, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(55.15, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(55.09, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(55.04, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(54.98, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(54.93, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(54.87, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(54.82, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(54.76, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(54.71, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(54.65, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(54.6, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(54.54, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(54.49, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(54.43, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(54.38, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(54.32, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(54.27, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(54.21, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(54.16, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(54.1, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(54.05, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(53.99, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(53.94, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(53.88, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(53.83, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(53.77, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(53.72, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(53.66, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(53.61, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(53.55, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(53.5, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(53.44, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(53.39, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(53.33, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(53.28, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(53.22, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(53.17, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(53.11, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(53.06, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(53, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(52.95, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(52.89, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(52.84, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(52.78, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(52.73, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(52.67, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(52.62, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(52.5, 44.05)]; - [bezierPath addLineToPoint: CGPointMake(52.5, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(52.62, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(52.67, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(52.73, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(52.78, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(52.84, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(52.89, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(52.95, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(53, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(53.06, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(53.11, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(53.17, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(53.22, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(53.28, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(53.33, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(53.39, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(53.44, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(53.5, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(53.55, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(53.61, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(53.66, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(53.72, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(53.77, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(53.83, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(53.88, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(53.94, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(53.99, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(54.05, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(54.1, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(54.16, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(54.21, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(54.27, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(54.32, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(54.38, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(54.43, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(54.49, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(54.54, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(54.6, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(54.65, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(54.71, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(54.76, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(54.82, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(54.87, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(54.93, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(54.98, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(55.04, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(55.09, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(55.15, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(55.2, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(55.26, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(55.31, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(55.37, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(55.42, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(55.48, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(55.53, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(55.59, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(55.64, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(55.7, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(55.75, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(55.81, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(55.86, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(55.92, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(55.97, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(56.03, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(56.08, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(56.14, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(56.19, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(56.25, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(56.3, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(56.36, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(56.41, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(56.47, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(56.52, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(56.58, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(56.63, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(56.68, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(56.74, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(56.79, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(56.85, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(56.9, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(56.96, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(57.01, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(57.07, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(57.12, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(57.18, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(57.23, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(57.29, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(57.34, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(57.4, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(57.45, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(57.51, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(57.56, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(57.62, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(57.67, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(57.73, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(57.78, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(57.84, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(57.89, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(57.95, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(58, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(58.06, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(58.11, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(58.17, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(58.22, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(58.28, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(58.33, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(58.39, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(58.44, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(58.5, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(58.55, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(58.61, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(58.66, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(58.72, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(58.77, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(58.83, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(58.88, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(58.94, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(58.99, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(59.05, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(59.1, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(59.16, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(59.21, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(59.27, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(59.32, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(59.38, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(59.43, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(59.49, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(59.54, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(59.6, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(59.65, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(59.71, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(59.76, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(59.82, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(59.87, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(59.93, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(59.98, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(60.04, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(60.09, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(60.15, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(60.2, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(60.26, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(60.31, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(60.37, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(60.42, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(60.48, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(60.53, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(60.59, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(60.64, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(60.7, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(60.75, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(60.81, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(60.86, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(60.92, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(60.97, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(61.03, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(61.08, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(61.14, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(61.19, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(61.25, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(61.3, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(61.33, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(61.36, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(61.41, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(61.47, 32.65)]; - [bezierPath addCurveToPoint: CGPointMake(61.52, 32.65) controlPoint1: CGPointMake(61.48, 32.65) controlPoint2: CGPointMake(61.5, 32.65)]; - [bezierPath addCurveToPoint: CGPointMake(61.58, 32.65) controlPoint1: CGPointMake(61.54, 32.65) controlPoint2: CGPointMake(61.56, 32.65)]; - [bezierPath addLineToPoint: CGPointMake(61.63, 32.64)]; - [bezierPath addLineToPoint: CGPointMake(61.69, 32.64)]; - [bezierPath addLineToPoint: CGPointMake(61.74, 32.64)]; - [bezierPath addLineToPoint: CGPointMake(61.8, 32.63)]; - [bezierPath addLineToPoint: CGPointMake(61.85, 32.63)]; - [bezierPath addCurveToPoint: CGPointMake(61.91, 32.62) controlPoint1: CGPointMake(61.87, 32.63) controlPoint2: CGPointMake(61.89, 32.63)]; - [bezierPath addCurveToPoint: CGPointMake(61.96, 32.62) controlPoint1: CGPointMake(61.92, 32.62) controlPoint2: CGPointMake(61.94, 32.62)]; - [bezierPath addLineToPoint: CGPointMake(62.02, 32.61)]; - [bezierPath addCurveToPoint: CGPointMake(62.07, 32.6) controlPoint1: CGPointMake(62.03, 32.61) controlPoint2: CGPointMake(62.05, 32.61)]; - [bezierPath addCurveToPoint: CGPointMake(62.13, 32.6) controlPoint1: CGPointMake(62.09, 32.6) controlPoint2: CGPointMake(62.11, 32.6)]; - [bezierPath addCurveToPoint: CGPointMake(62.18, 32.59) controlPoint1: CGPointMake(62.14, 32.59) controlPoint2: CGPointMake(62.16, 32.59)]; - [bezierPath addLineToPoint: CGPointMake(62.24, 32.58)]; - [bezierPath addLineToPoint: CGPointMake(62.29, 32.57)]; - [bezierPath addCurveToPoint: CGPointMake(62.34, 32.56) controlPoint1: CGPointMake(62.31, 32.57) controlPoint2: CGPointMake(62.33, 32.56)]; - [bezierPath addCurveToPoint: CGPointMake(62.4, 32.55) controlPoint1: CGPointMake(62.36, 32.55) controlPoint2: CGPointMake(62.38, 32.55)]; - [bezierPath addLineToPoint: CGPointMake(62.45, 32.54)]; - [bezierPath addCurveToPoint: CGPointMake(62.51, 32.52) controlPoint1: CGPointMake(62.47, 32.53) controlPoint2: CGPointMake(62.49, 32.53)]; - [bezierPath addCurveToPoint: CGPointMake(62.56, 32.51) controlPoint1: CGPointMake(62.53, 32.52) controlPoint2: CGPointMake(62.55, 32.51)]; - [bezierPath addCurveToPoint: CGPointMake(62.62, 32.5) controlPoint1: CGPointMake(62.58, 32.51) controlPoint2: CGPointMake(62.6, 32.5)]; - [bezierPath addCurveToPoint: CGPointMake(62.67, 32.48) controlPoint1: CGPointMake(62.64, 32.49) controlPoint2: CGPointMake(62.66, 32.49)]; - [bezierPath addCurveToPoint: CGPointMake(62.73, 32.47) controlPoint1: CGPointMake(62.69, 32.48) controlPoint2: CGPointMake(62.71, 32.47)]; - [bezierPath addCurveToPoint: CGPointMake(62.78, 32.45) controlPoint1: CGPointMake(62.75, 32.46) controlPoint2: CGPointMake(62.77, 32.46)]; - [bezierPath addLineToPoint: CGPointMake(62.84, 32.43)]; - [bezierPath addCurveToPoint: CGPointMake(62.89, 32.42) controlPoint1: CGPointMake(62.86, 32.43) controlPoint2: CGPointMake(62.88, 32.42)]; - [bezierPath addCurveToPoint: CGPointMake(62.95, 32.4) controlPoint1: CGPointMake(62.91, 32.41) controlPoint2: CGPointMake(62.93, 32.4)]; - [bezierPath addCurveToPoint: CGPointMake(63, 32.38) controlPoint1: CGPointMake(62.97, 32.39) controlPoint2: CGPointMake(62.99, 32.38)]; - [bezierPath addCurveToPoint: CGPointMake(63.06, 32.36) controlPoint1: CGPointMake(63.02, 32.37) controlPoint2: CGPointMake(63.04, 32.36)]; - [bezierPath addCurveToPoint: CGPointMake(63.11, 32.34) controlPoint1: CGPointMake(63.08, 32.35) controlPoint2: CGPointMake(63.1, 32.34)]; - [bezierPath addCurveToPoint: CGPointMake(63.17, 32.31) controlPoint1: CGPointMake(63.13, 32.33) controlPoint2: CGPointMake(63.15, 32.32)]; - [bezierPath addCurveToPoint: CGPointMake(63.22, 32.29) controlPoint1: CGPointMake(63.19, 32.31) controlPoint2: CGPointMake(63.21, 32.3)]; - [bezierPath addCurveToPoint: CGPointMake(63.28, 32.27) controlPoint1: CGPointMake(63.24, 32.28) controlPoint2: CGPointMake(63.26, 32.27)]; - [bezierPath addCurveToPoint: CGPointMake(63.33, 32.24) controlPoint1: CGPointMake(63.3, 32.26) controlPoint2: CGPointMake(63.32, 32.25)]; - [bezierPath addCurveToPoint: CGPointMake(63.39, 32.22) controlPoint1: CGPointMake(63.35, 32.23) controlPoint2: CGPointMake(63.37, 32.22)]; - [bezierPath addCurveToPoint: CGPointMake(63.44, 32.19) controlPoint1: CGPointMake(63.41, 32.21) controlPoint2: CGPointMake(63.43, 32.2)]; - [bezierPath addCurveToPoint: CGPointMake(63.5, 32.16) controlPoint1: CGPointMake(63.46, 32.18) controlPoint2: CGPointMake(63.48, 32.17)]; - [bezierPath addCurveToPoint: CGPointMake(63.55, 32.13) controlPoint1: CGPointMake(63.52, 32.15) controlPoint2: CGPointMake(63.54, 32.14)]; - [bezierPath addCurveToPoint: CGPointMake(63.61, 32.1) controlPoint1: CGPointMake(63.57, 32.12) controlPoint2: CGPointMake(63.59, 32.11)]; - [bezierPath addCurveToPoint: CGPointMake(63.66, 32.06) controlPoint1: CGPointMake(63.63, 32.09) controlPoint2: CGPointMake(63.65, 32.08)]; - [bezierPath addCurveToPoint: CGPointMake(63.72, 32.03) controlPoint1: CGPointMake(63.68, 32.05) controlPoint2: CGPointMake(63.7, 32.04)]; - [bezierPath addCurveToPoint: CGPointMake(63.77, 31.99) controlPoint1: CGPointMake(63.74, 32.02) controlPoint2: CGPointMake(63.76, 32.01)]; - [bezierPath addCurveToPoint: CGPointMake(63.83, 31.96) controlPoint1: CGPointMake(63.79, 31.98) controlPoint2: CGPointMake(63.81, 31.97)]; - [bezierPath addCurveToPoint: CGPointMake(63.88, 31.92) controlPoint1: CGPointMake(63.85, 31.94) controlPoint2: CGPointMake(63.87, 31.93)]; - [bezierPath addCurveToPoint: CGPointMake(63.94, 31.88) controlPoint1: CGPointMake(63.9, 31.9) controlPoint2: CGPointMake(63.92, 31.89)]; - [bezierPath addCurveToPoint: CGPointMake(63.99, 31.83) controlPoint1: CGPointMake(63.96, 31.86) controlPoint2: CGPointMake(63.98, 31.85)]; - [bezierPath addCurveToPoint: CGPointMake(64.05, 31.79) controlPoint1: CGPointMake(64.01, 31.82) controlPoint2: CGPointMake(64.03, 31.8)]; - [bezierPath addCurveToPoint: CGPointMake(64.1, 31.74) controlPoint1: CGPointMake(64.07, 31.77) controlPoint2: CGPointMake(64.09, 31.76)]; - [bezierPath addCurveToPoint: CGPointMake(64.16, 31.69) controlPoint1: CGPointMake(64.12, 31.72) controlPoint2: CGPointMake(64.14, 31.71)]; - [bezierPath addCurveToPoint: CGPointMake(64.21, 31.64) controlPoint1: CGPointMake(64.18, 31.67) controlPoint2: CGPointMake(64.2, 31.66)]; - [bezierPath addCurveToPoint: CGPointMake(64.27, 31.58) controlPoint1: CGPointMake(64.23, 31.62) controlPoint2: CGPointMake(64.25, 31.6)]; - [bezierPath addCurveToPoint: CGPointMake(64.32, 31.52) controlPoint1: CGPointMake(64.29, 31.56) controlPoint2: CGPointMake(64.31, 31.54)]; - [bezierPath addCurveToPoint: CGPointMake(64.38, 31.46) controlPoint1: CGPointMake(64.34, 31.5) controlPoint2: CGPointMake(64.36, 31.48)]; - [bezierPath addCurveToPoint: CGPointMake(64.43, 31.39) controlPoint1: CGPointMake(64.4, 31.44) controlPoint2: CGPointMake(64.42, 31.41)]; - [bezierPath addCurveToPoint: CGPointMake(64.49, 31.32) controlPoint1: CGPointMake(64.45, 31.37) controlPoint2: CGPointMake(64.47, 31.34)]; - [bezierPath addCurveToPoint: CGPointMake(64.54, 31.24) controlPoint1: CGPointMake(64.51, 31.29) controlPoint2: CGPointMake(64.53, 31.27)]; - [bezierPath addCurveToPoint: CGPointMake(64.6, 31.15) controlPoint1: CGPointMake(64.56, 31.21) controlPoint2: CGPointMake(64.58, 31.18)]; - [bezierPath addCurveToPoint: CGPointMake(64.65, 31.06) controlPoint1: CGPointMake(64.62, 31.12) controlPoint2: CGPointMake(64.64, 31.09)]; - [bezierPath addCurveToPoint: CGPointMake(64.71, 30.95) controlPoint1: CGPointMake(64.67, 31.02) controlPoint2: CGPointMake(64.69, 30.99)]; - [bezierPath addCurveToPoint: CGPointMake(64.76, 30.83) controlPoint1: CGPointMake(64.73, 30.91) controlPoint2: CGPointMake(64.75, 30.87)]; - [bezierPath addCurveToPoint: CGPointMake(64.82, 30.68) controlPoint1: CGPointMake(64.78, 30.78) controlPoint2: CGPointMake(64.8, 30.73)]; - [bezierPath addCurveToPoint: CGPointMake(64.87, 30.5) controlPoint1: CGPointMake(64.84, 30.62) controlPoint2: CGPointMake(64.86, 30.56)]; - [bezierPath addCurveToPoint: CGPointMake(64.93, 30.22) controlPoint1: CGPointMake(64.9, 30.41) controlPoint2: CGPointMake(64.91, 30.31)]; - [bezierPath addCurveToPoint: CGPointMake(64.95, 29.86) controlPoint1: CGPointMake(64.94, 30.1) controlPoint2: CGPointMake(64.95, 29.98)]; - [bezierPath addCurveToPoint: CGPointMake(64.93, 29.51) controlPoint1: CGPointMake(64.95, 29.74) controlPoint2: CGPointMake(64.94, 29.62)]; - [bezierPath addCurveToPoint: CGPointMake(64.87, 29.24) controlPoint1: CGPointMake(64.91, 29.42) controlPoint2: CGPointMake(64.9, 29.32)]; - [bezierPath addCurveToPoint: CGPointMake(64.82, 29.06) controlPoint1: CGPointMake(64.86, 29.18) controlPoint2: CGPointMake(64.84, 29.12)]; - [bezierPath addCurveToPoint: CGPointMake(64.76, 28.92) controlPoint1: CGPointMake(64.8, 29.01) controlPoint2: CGPointMake(64.78, 28.97)]; - [bezierPath addCurveToPoint: CGPointMake(64.71, 28.8) controlPoint1: CGPointMake(64.75, 28.88) controlPoint2: CGPointMake(64.73, 28.84)]; - [bezierPath addCurveToPoint: CGPointMake(64.65, 28.7) controlPoint1: CGPointMake(64.69, 28.77) controlPoint2: CGPointMake(64.67, 28.73)]; - [bezierPath addCurveToPoint: CGPointMake(64.6, 28.61) controlPoint1: CGPointMake(64.64, 28.67) controlPoint2: CGPointMake(64.62, 28.64)]; - [bezierPath addCurveToPoint: CGPointMake(64.54, 28.52) controlPoint1: CGPointMake(64.58, 28.58) controlPoint2: CGPointMake(64.56, 28.55)]; - [bezierPath addCurveToPoint: CGPointMake(64.49, 28.45) controlPoint1: CGPointMake(64.53, 28.5) controlPoint2: CGPointMake(64.51, 28.47)]; - [bezierPath addCurveToPoint: CGPointMake(64.43, 28.38) controlPoint1: CGPointMake(64.47, 28.42) controlPoint2: CGPointMake(64.45, 28.4)]; - [bezierPath addCurveToPoint: CGPointMake(64.38, 28.31) controlPoint1: CGPointMake(64.42, 28.36) controlPoint2: CGPointMake(64.4, 28.33)]; - [bezierPath addCurveToPoint: CGPointMake(64.32, 28.25) controlPoint1: CGPointMake(64.36, 28.29) controlPoint2: CGPointMake(64.34, 28.27)]; - [bezierPath addCurveToPoint: CGPointMake(64.27, 28.19) controlPoint1: CGPointMake(64.31, 28.23) controlPoint2: CGPointMake(64.29, 28.21)]; - [bezierPath addCurveToPoint: CGPointMake(64.21, 28.14) controlPoint1: CGPointMake(64.25, 28.17) controlPoint2: CGPointMake(64.23, 28.16)]; - [bezierPath addCurveToPoint: CGPointMake(64.16, 28.09) controlPoint1: CGPointMake(64.2, 28.12) controlPoint2: CGPointMake(64.18, 28.1)]; - [bezierPath addCurveToPoint: CGPointMake(64.1, 28.04) controlPoint1: CGPointMake(64.14, 28.07) controlPoint2: CGPointMake(64.12, 28.06)]; - [bezierPath addCurveToPoint: CGPointMake(64.05, 27.99) controlPoint1: CGPointMake(64.09, 28.02) controlPoint2: CGPointMake(64.07, 28.01)]; - [bezierPath addCurveToPoint: CGPointMake(63.99, 27.95) controlPoint1: CGPointMake(64.03, 27.98) controlPoint2: CGPointMake(64.01, 27.96)]; - [bezierPath addCurveToPoint: CGPointMake(63.94, 27.91) controlPoint1: CGPointMake(63.98, 27.94) controlPoint2: CGPointMake(63.96, 27.92)]; - [bezierPath addCurveToPoint: CGPointMake(63.88, 27.87) controlPoint1: CGPointMake(63.92, 27.89) controlPoint2: CGPointMake(63.9, 27.88)]; - [bezierPath addCurveToPoint: CGPointMake(63.83, 27.83) controlPoint1: CGPointMake(63.87, 27.86) controlPoint2: CGPointMake(63.85, 27.84)]; - [bezierPath addCurveToPoint: CGPointMake(63.77, 27.79) controlPoint1: CGPointMake(63.81, 27.82) controlPoint2: CGPointMake(63.79, 27.81)]; - [bezierPath addCurveToPoint: CGPointMake(63.72, 27.76) controlPoint1: CGPointMake(63.76, 27.78) controlPoint2: CGPointMake(63.74, 27.77)]; - [bezierPath addCurveToPoint: CGPointMake(63.66, 27.73) controlPoint1: CGPointMake(63.7, 27.75) controlPoint2: CGPointMake(63.68, 27.74)]; - [bezierPath addCurveToPoint: CGPointMake(63.61, 27.69) controlPoint1: CGPointMake(63.65, 27.72) controlPoint2: CGPointMake(63.63, 27.71)]; - [bezierPath addCurveToPoint: CGPointMake(63.55, 27.66) controlPoint1: CGPointMake(63.59, 27.68) controlPoint2: CGPointMake(63.57, 27.67)]; - [bezierPath addCurveToPoint: CGPointMake(63.5, 27.64) controlPoint1: CGPointMake(63.54, 27.65) controlPoint2: CGPointMake(63.52, 27.64)]; - [bezierPath addCurveToPoint: CGPointMake(63.44, 27.61) controlPoint1: CGPointMake(63.48, 27.63) controlPoint2: CGPointMake(63.46, 27.62)]; - [bezierPath addCurveToPoint: CGPointMake(63.39, 27.58) controlPoint1: CGPointMake(63.43, 27.6) controlPoint2: CGPointMake(63.41, 27.59)]; - [bezierPath addCurveToPoint: CGPointMake(63.33, 27.55) controlPoint1: CGPointMake(63.37, 27.57) controlPoint2: CGPointMake(63.35, 27.56)]; - [bezierPath addCurveToPoint: CGPointMake(63.28, 27.53) controlPoint1: CGPointMake(63.32, 27.55) controlPoint2: CGPointMake(63.3, 27.54)]; - [bezierPath addCurveToPoint: CGPointMake(63.22, 27.51) controlPoint1: CGPointMake(63.26, 27.52) controlPoint2: CGPointMake(63.24, 27.51)]; - [bezierPath addCurveToPoint: CGPointMake(63.17, 27.48) controlPoint1: CGPointMake(63.21, 27.5) controlPoint2: CGPointMake(63.19, 27.49)]; - [bezierPath addCurveToPoint: CGPointMake(63.11, 27.46) controlPoint1: CGPointMake(63.15, 27.48) controlPoint2: CGPointMake(63.13, 27.47)]; - [bezierPath addCurveToPoint: CGPointMake(63.06, 27.44) controlPoint1: CGPointMake(63.1, 27.46) controlPoint2: CGPointMake(63.08, 27.45)]; - [bezierPath addCurveToPoint: CGPointMake(63, 27.42) controlPoint1: CGPointMake(63.04, 27.43) controlPoint2: CGPointMake(63.02, 27.43)]; - [bezierPath addCurveToPoint: CGPointMake(62.95, 27.4) controlPoint1: CGPointMake(62.99, 27.42) controlPoint2: CGPointMake(62.97, 27.41)]; - [bezierPath addCurveToPoint: CGPointMake(62.89, 27.38) controlPoint1: CGPointMake(62.93, 27.4) controlPoint2: CGPointMake(62.91, 27.39)]; - [bezierPath addCurveToPoint: CGPointMake(62.84, 27.37) controlPoint1: CGPointMake(62.88, 27.38) controlPoint2: CGPointMake(62.86, 27.37)]; - [bezierPath addCurveToPoint: CGPointMake(62.78, 27.35) controlPoint1: CGPointMake(62.82, 27.36) controlPoint2: CGPointMake(62.8, 27.36)]; - [bezierPath addLineToPoint: CGPointMake(62.73, 27.34)]; - [bezierPath addCurveToPoint: CGPointMake(62.67, 27.32) controlPoint1: CGPointMake(62.71, 27.33) controlPoint2: CGPointMake(62.69, 27.32)]; - [bezierPath addCurveToPoint: CGPointMake(62.62, 27.31) controlPoint1: CGPointMake(62.66, 27.31) controlPoint2: CGPointMake(62.64, 27.31)]; - [bezierPath addCurveToPoint: CGPointMake(62.56, 27.29) controlPoint1: CGPointMake(62.6, 27.3) controlPoint2: CGPointMake(62.58, 27.3)]; - [bezierPath addCurveToPoint: CGPointMake(62.51, 27.28) controlPoint1: CGPointMake(62.55, 27.29) controlPoint2: CGPointMake(62.53, 27.28)]; - [bezierPath addCurveToPoint: CGPointMake(62.45, 27.27) controlPoint1: CGPointMake(62.49, 27.27) controlPoint2: CGPointMake(62.47, 27.27)]; - [bezierPath addCurveToPoint: CGPointMake(62.4, 27.26) controlPoint1: CGPointMake(62.44, 27.26) controlPoint2: CGPointMake(62.42, 27.26)]; - [bezierPath addCurveToPoint: CGPointMake(62.34, 27.24) controlPoint1: CGPointMake(62.38, 27.25) controlPoint2: CGPointMake(62.36, 27.25)]; - [bezierPath addLineToPoint: CGPointMake(62.29, 27.23)]; - [bezierPath addLineToPoint: CGPointMake(62.24, 27.22)]; - [bezierPath addCurveToPoint: CGPointMake(62.18, 27.21) controlPoint1: CGPointMake(62.22, 27.22) controlPoint2: CGPointMake(62.2, 27.22)]; - [bezierPath addLineToPoint: CGPointMake(62.13, 27.21)]; - [bezierPath addCurveToPoint: CGPointMake(62.07, 27.2) controlPoint1: CGPointMake(62.11, 27.2) controlPoint2: CGPointMake(62.09, 27.2)]; - [bezierPath addLineToPoint: CGPointMake(62.02, 27.19)]; - [bezierPath addLineToPoint: CGPointMake(61.96, 27.18)]; - [bezierPath addLineToPoint: CGPointMake(61.91, 27.18)]; - [bezierPath addLineToPoint: CGPointMake(61.85, 27.17)]; - [bezierPath addLineToPoint: CGPointMake(61.8, 27.17)]; - [bezierPath addLineToPoint: CGPointMake(61.74, 27.16)]; - [bezierPath addLineToPoint: CGPointMake(61.69, 27.16)]; - [bezierPath addLineToPoint: CGPointMake(61.69, 27.09)]; - [bezierPath addLineToPoint: CGPointMake(61.74, 27.09)]; - [bezierPath addLineToPoint: CGPointMake(61.8, 27.08)]; - [bezierPath addCurveToPoint: CGPointMake(61.85, 27.07) controlPoint1: CGPointMake(61.81, 27.07) controlPoint2: CGPointMake(61.83, 27.07)]; - [bezierPath addLineToPoint: CGPointMake(61.91, 27.06)]; - [bezierPath addCurveToPoint: CGPointMake(61.96, 27.05) controlPoint1: CGPointMake(61.92, 27.05) controlPoint2: CGPointMake(61.94, 27.05)]; - [bezierPath addLineToPoint: CGPointMake(62.02, 27.04)]; - [bezierPath addCurveToPoint: CGPointMake(62.07, 27.02) controlPoint1: CGPointMake(62.03, 27.03) controlPoint2: CGPointMake(62.05, 27.03)]; - [bezierPath addCurveToPoint: CGPointMake(62.13, 27.01) controlPoint1: CGPointMake(62.09, 27.02) controlPoint2: CGPointMake(62.11, 27.01)]; - [bezierPath addCurveToPoint: CGPointMake(62.18, 27) controlPoint1: CGPointMake(62.14, 27) controlPoint2: CGPointMake(62.16, 27)]; - [bezierPath addCurveToPoint: CGPointMake(62.24, 26.98) controlPoint1: CGPointMake(62.2, 26.99) controlPoint2: CGPointMake(62.22, 26.99)]; - [bezierPath addCurveToPoint: CGPointMake(62.29, 26.96) controlPoint1: CGPointMake(62.25, 26.97) controlPoint2: CGPointMake(62.27, 26.97)]; - [bezierPath addCurveToPoint: CGPointMake(62.34, 26.95) controlPoint1: CGPointMake(62.31, 26.96) controlPoint2: CGPointMake(62.33, 26.95)]; - [bezierPath addCurveToPoint: CGPointMake(62.4, 26.93) controlPoint1: CGPointMake(62.36, 26.94) controlPoint2: CGPointMake(62.38, 26.94)]; - [bezierPath addCurveToPoint: CGPointMake(62.45, 26.91) controlPoint1: CGPointMake(62.42, 26.92) controlPoint2: CGPointMake(62.44, 26.92)]; - [bezierPath addCurveToPoint: CGPointMake(62.51, 26.89) controlPoint1: CGPointMake(62.47, 26.9) controlPoint2: CGPointMake(62.49, 26.9)]; - [bezierPath addCurveToPoint: CGPointMake(62.56, 26.87) controlPoint1: CGPointMake(62.53, 26.88) controlPoint2: CGPointMake(62.55, 26.88)]; - [bezierPath addCurveToPoint: CGPointMake(62.62, 26.85) controlPoint1: CGPointMake(62.58, 26.86) controlPoint2: CGPointMake(62.6, 26.86)]; - [bezierPath addCurveToPoint: CGPointMake(62.67, 26.83) controlPoint1: CGPointMake(62.64, 26.84) controlPoint2: CGPointMake(62.66, 26.83)]; - [bezierPath addCurveToPoint: CGPointMake(62.73, 26.8) controlPoint1: CGPointMake(62.69, 26.82) controlPoint2: CGPointMake(62.71, 26.81)]; - [bezierPath addCurveToPoint: CGPointMake(62.78, 26.78) controlPoint1: CGPointMake(62.75, 26.79) controlPoint2: CGPointMake(62.77, 26.78)]; - [bezierPath addCurveToPoint: CGPointMake(62.84, 26.75) controlPoint1: CGPointMake(62.8, 26.77) controlPoint2: CGPointMake(62.82, 26.76)]; - [bezierPath addCurveToPoint: CGPointMake(62.89, 26.72) controlPoint1: CGPointMake(62.86, 26.74) controlPoint2: CGPointMake(62.88, 26.73)]; - [bezierPath addCurveToPoint: CGPointMake(62.95, 26.69) controlPoint1: CGPointMake(62.91, 26.71) controlPoint2: CGPointMake(62.93, 26.7)]; - [bezierPath addCurveToPoint: CGPointMake(63, 26.66) controlPoint1: CGPointMake(62.97, 26.68) controlPoint2: CGPointMake(62.99, 26.67)]; - [bezierPath addCurveToPoint: CGPointMake(63.06, 26.63) controlPoint1: CGPointMake(63.02, 26.65) controlPoint2: CGPointMake(63.04, 26.64)]; - [bezierPath addCurveToPoint: CGPointMake(63.11, 26.6) controlPoint1: CGPointMake(63.08, 26.62) controlPoint2: CGPointMake(63.1, 26.61)]; - [bezierPath addCurveToPoint: CGPointMake(63.17, 26.56) controlPoint1: CGPointMake(63.13, 26.58) controlPoint2: CGPointMake(63.15, 26.57)]; - [bezierPath addCurveToPoint: CGPointMake(63.22, 26.52) controlPoint1: CGPointMake(63.19, 26.55) controlPoint2: CGPointMake(63.21, 26.53)]; - [bezierPath addCurveToPoint: CGPointMake(63.28, 26.48) controlPoint1: CGPointMake(63.24, 26.51) controlPoint2: CGPointMake(63.26, 26.5)]; - [bezierPath addCurveToPoint: CGPointMake(63.33, 26.44) controlPoint1: CGPointMake(63.3, 26.47) controlPoint2: CGPointMake(63.32, 26.46)]; - [bezierPath addCurveToPoint: CGPointMake(63.39, 26.4) controlPoint1: CGPointMake(63.35, 26.43) controlPoint2: CGPointMake(63.37, 26.41)]; - [bezierPath addCurveToPoint: CGPointMake(63.44, 26.35) controlPoint1: CGPointMake(63.41, 26.38) controlPoint2: CGPointMake(63.43, 26.37)]; - [bezierPath addCurveToPoint: CGPointMake(63.5, 26.3) controlPoint1: CGPointMake(63.46, 26.34) controlPoint2: CGPointMake(63.48, 26.32)]; - [bezierPath addCurveToPoint: CGPointMake(63.55, 26.25) controlPoint1: CGPointMake(63.52, 26.29) controlPoint2: CGPointMake(63.54, 26.27)]; - [bezierPath addCurveToPoint: CGPointMake(63.61, 26.2) controlPoint1: CGPointMake(63.57, 26.23) controlPoint2: CGPointMake(63.59, 26.21)]; - [bezierPath addCurveToPoint: CGPointMake(63.66, 26.14) controlPoint1: CGPointMake(63.63, 26.18) controlPoint2: CGPointMake(63.65, 26.16)]; - [bezierPath addCurveToPoint: CGPointMake(63.72, 26.07) controlPoint1: CGPointMake(63.68, 26.12) controlPoint2: CGPointMake(63.7, 26.1)]; - [bezierPath addCurveToPoint: CGPointMake(63.77, 26.01) controlPoint1: CGPointMake(63.74, 26.05) controlPoint2: CGPointMake(63.76, 26.03)]; - [bezierPath addCurveToPoint: CGPointMake(63.83, 25.94) controlPoint1: CGPointMake(63.79, 25.98) controlPoint2: CGPointMake(63.81, 25.96)]; - [bezierPath addCurveToPoint: CGPointMake(63.88, 25.86) controlPoint1: CGPointMake(63.85, 25.91) controlPoint2: CGPointMake(63.87, 25.88)]; - [bezierPath addCurveToPoint: CGPointMake(63.94, 25.77) controlPoint1: CGPointMake(63.9, 25.83) controlPoint2: CGPointMake(63.92, 25.8)]; - [bezierPath addCurveToPoint: CGPointMake(63.99, 25.68) controlPoint1: CGPointMake(63.96, 25.74) controlPoint2: CGPointMake(63.98, 25.71)]; - [bezierPath addCurveToPoint: CGPointMake(64.05, 25.57) controlPoint1: CGPointMake(64.01, 25.64) controlPoint2: CGPointMake(64.03, 25.6)]; - [bezierPath addCurveToPoint: CGPointMake(64.1, 25.45) controlPoint1: CGPointMake(64.07, 25.53) controlPoint2: CGPointMake(64.09, 25.49)]; - [bezierPath addCurveToPoint: CGPointMake(64.16, 25.3) controlPoint1: CGPointMake(64.12, 25.4) controlPoint2: CGPointMake(64.14, 25.35)]; - [bezierPath addCurveToPoint: CGPointMake(64.21, 25.11) controlPoint1: CGPointMake(64.18, 25.24) controlPoint2: CGPointMake(64.2, 25.17)]; - [bezierPath addCurveToPoint: CGPointMake(64.27, 24.79) controlPoint1: CGPointMake(64.24, 25) controlPoint2: CGPointMake(64.26, 24.9)]; - [bezierPath addCurveToPoint: CGPointMake(64.28, 24.53) controlPoint1: CGPointMake(64.28, 24.7) controlPoint2: CGPointMake(64.28, 24.62)]; - [bezierPath addCurveToPoint: CGPointMake(64.27, 24.26) controlPoint1: CGPointMake(64.28, 24.43) controlPoint2: CGPointMake(64.28, 24.34)]; - [bezierPath addCurveToPoint: CGPointMake(64.21, 23.93) controlPoint1: CGPointMake(64.26, 24.14) controlPoint2: CGPointMake(64.24, 24.04)]; - [bezierPath addCurveToPoint: CGPointMake(64.16, 23.74) controlPoint1: CGPointMake(64.2, 23.87) controlPoint2: CGPointMake(64.18, 23.8)]; - [bezierPath addCurveToPoint: CGPointMake(64.1, 23.59) controlPoint1: CGPointMake(64.14, 23.69) controlPoint2: CGPointMake(64.12, 23.64)]; - [bezierPath addCurveToPoint: CGPointMake(64.05, 23.47) controlPoint1: CGPointMake(64.09, 23.55) controlPoint2: CGPointMake(64.07, 23.51)]; - [bezierPath addCurveToPoint: CGPointMake(63.99, 23.36) controlPoint1: CGPointMake(64.03, 23.43) controlPoint2: CGPointMake(64.01, 23.4)]; - [bezierPath addCurveToPoint: CGPointMake(63.94, 23.27) controlPoint1: CGPointMake(63.98, 23.33) controlPoint2: CGPointMake(63.96, 23.3)]; - [bezierPath addCurveToPoint: CGPointMake(63.88, 23.19) controlPoint1: CGPointMake(63.92, 23.24) controlPoint2: CGPointMake(63.9, 23.22)]; - [bezierPath addCurveToPoint: CGPointMake(63.83, 23.11) controlPoint1: CGPointMake(63.87, 23.16) controlPoint2: CGPointMake(63.85, 23.14)]; - [bezierPath addCurveToPoint: CGPointMake(63.77, 23.04) controlPoint1: CGPointMake(63.81, 23.09) controlPoint2: CGPointMake(63.79, 23.06)]; - [bezierPath addCurveToPoint: CGPointMake(63.72, 22.98) controlPoint1: CGPointMake(63.76, 23.02) controlPoint2: CGPointMake(63.74, 23)]; - [bezierPath addCurveToPoint: CGPointMake(63.66, 22.92) controlPoint1: CGPointMake(63.7, 22.96) controlPoint2: CGPointMake(63.68, 22.94)]; - [bezierPath addCurveToPoint: CGPointMake(63.61, 22.86) controlPoint1: CGPointMake(63.65, 22.9) controlPoint2: CGPointMake(63.63, 22.88)]; - [bezierPath addCurveToPoint: CGPointMake(63.55, 22.81) controlPoint1: CGPointMake(63.59, 22.84) controlPoint2: CGPointMake(63.57, 22.82)]; - [bezierPath addCurveToPoint: CGPointMake(63.5, 22.76) controlPoint1: CGPointMake(63.54, 22.79) controlPoint2: CGPointMake(63.52, 22.77)]; - [bezierPath addCurveToPoint: CGPointMake(63.44, 22.71) controlPoint1: CGPointMake(63.48, 22.74) controlPoint2: CGPointMake(63.46, 22.72)]; - [bezierPath addCurveToPoint: CGPointMake(63.39, 22.66) controlPoint1: CGPointMake(63.43, 22.69) controlPoint2: CGPointMake(63.41, 22.68)]; - [bezierPath addCurveToPoint: CGPointMake(63.33, 22.62) controlPoint1: CGPointMake(63.37, 22.65) controlPoint2: CGPointMake(63.35, 22.64)]; - [bezierPath addCurveToPoint: CGPointMake(63.28, 22.58) controlPoint1: CGPointMake(63.32, 22.61) controlPoint2: CGPointMake(63.3, 22.6)]; - [bezierPath addCurveToPoint: CGPointMake(63.22, 22.54) controlPoint1: CGPointMake(63.26, 22.57) controlPoint2: CGPointMake(63.24, 22.56)]; - [bezierPath addCurveToPoint: CGPointMake(63.17, 22.51) controlPoint1: CGPointMake(63.21, 22.53) controlPoint2: CGPointMake(63.19, 22.52)]; - [bezierPath addCurveToPoint: CGPointMake(63.11, 22.47) controlPoint1: CGPointMake(63.15, 22.5) controlPoint2: CGPointMake(63.13, 22.49)]; - [bezierPath addCurveToPoint: CGPointMake(63.06, 22.44) controlPoint1: CGPointMake(63.1, 22.46) controlPoint2: CGPointMake(63.08, 22.45)]; - [bezierPath addCurveToPoint: CGPointMake(63, 22.41) controlPoint1: CGPointMake(63.04, 22.43) controlPoint2: CGPointMake(63.02, 22.42)]; - [bezierPath addCurveToPoint: CGPointMake(62.95, 22.38) controlPoint1: CGPointMake(62.99, 22.4) controlPoint2: CGPointMake(62.97, 22.39)]; - [bezierPath addCurveToPoint: CGPointMake(62.89, 22.35) controlPoint1: CGPointMake(62.93, 22.37) controlPoint2: CGPointMake(62.91, 22.36)]; - [bezierPath addCurveToPoint: CGPointMake(62.84, 22.33) controlPoint1: CGPointMake(62.88, 22.34) controlPoint2: CGPointMake(62.86, 22.33)]; - [bezierPath addCurveToPoint: CGPointMake(62.78, 22.3) controlPoint1: CGPointMake(62.82, 22.32) controlPoint2: CGPointMake(62.8, 22.31)]; - [bezierPath addCurveToPoint: CGPointMake(62.73, 22.27) controlPoint1: CGPointMake(62.77, 22.29) controlPoint2: CGPointMake(62.75, 22.28)]; - [bezierPath addCurveToPoint: CGPointMake(62.67, 22.25) controlPoint1: CGPointMake(62.71, 22.27) controlPoint2: CGPointMake(62.69, 22.26)]; - [bezierPath addCurveToPoint: CGPointMake(62.62, 22.23) controlPoint1: CGPointMake(62.66, 22.24) controlPoint2: CGPointMake(62.64, 22.24)]; - [bezierPath addCurveToPoint: CGPointMake(62.56, 22.21) controlPoint1: CGPointMake(62.6, 22.22) controlPoint2: CGPointMake(62.58, 22.21)]; - [bezierPath addCurveToPoint: CGPointMake(62.51, 22.19) controlPoint1: CGPointMake(62.55, 22.2) controlPoint2: CGPointMake(62.53, 22.19)]; - [bezierPath addCurveToPoint: CGPointMake(62.45, 22.17) controlPoint1: CGPointMake(62.49, 22.18) controlPoint2: CGPointMake(62.47, 22.17)]; - [bezierPath addCurveToPoint: CGPointMake(62.4, 22.15) controlPoint1: CGPointMake(62.44, 22.16) controlPoint2: CGPointMake(62.42, 22.16)]; - [bezierPath addCurveToPoint: CGPointMake(62.34, 22.13) controlPoint1: CGPointMake(62.38, 22.14) controlPoint2: CGPointMake(62.36, 22.14)]; - [bezierPath addCurveToPoint: CGPointMake(62.29, 22.11) controlPoint1: CGPointMake(62.33, 22.13) controlPoint2: CGPointMake(62.31, 22.12)]; - [bezierPath addCurveToPoint: CGPointMake(62.24, 22.1) controlPoint1: CGPointMake(62.27, 22.11) controlPoint2: CGPointMake(62.25, 22.1)]; - [bezierPath addCurveToPoint: CGPointMake(62.18, 22.08) controlPoint1: CGPointMake(62.22, 22.09) controlPoint2: CGPointMake(62.2, 22.09)]; - [bezierPath addCurveToPoint: CGPointMake(62.13, 22.07) controlPoint1: CGPointMake(62.16, 22.08) controlPoint2: CGPointMake(62.14, 22.07)]; - [bezierPath addLineToPoint: CGPointMake(62.07, 22.06)]; - [bezierPath addCurveToPoint: CGPointMake(62.02, 22.04) controlPoint1: CGPointMake(62.05, 22.05) controlPoint2: CGPointMake(62.03, 22.05)]; - [bezierPath addCurveToPoint: CGPointMake(61.96, 22.03) controlPoint1: CGPointMake(62, 22.04) controlPoint2: CGPointMake(61.98, 22.03)]; - [bezierPath addLineToPoint: CGPointMake(61.91, 22.02)]; - [bezierPath addCurveToPoint: CGPointMake(61.85, 22.01) controlPoint1: CGPointMake(61.89, 22.01) controlPoint2: CGPointMake(61.87, 22.01)]; - [bezierPath addCurveToPoint: CGPointMake(61.8, 22) controlPoint1: CGPointMake(61.83, 22) controlPoint2: CGPointMake(61.81, 22)]; - [bezierPath addLineToPoint: CGPointMake(61.74, 21.99)]; - [bezierPath addCurveToPoint: CGPointMake(61.69, 21.98) controlPoint1: CGPointMake(61.72, 21.99) controlPoint2: CGPointMake(61.7, 21.98)]; - [bezierPath addLineToPoint: CGPointMake(61.63, 21.97)]; - [bezierPath addLineToPoint: CGPointMake(61.58, 21.96)]; - [bezierPath addLineToPoint: CGPointMake(61.52, 21.96)]; - [bezierPath addLineToPoint: CGPointMake(61.47, 21.95)]; - [bezierPath addLineToPoint: CGPointMake(61.41, 21.94)]; - [bezierPath addLineToPoint: CGPointMake(61.36, 21.94)]; - [bezierPath addLineToPoint: CGPointMake(61.3, 21.93)]; - [bezierPath addLineToPoint: CGPointMake(61.25, 21.93)]; - [bezierPath addLineToPoint: CGPointMake(61.19, 21.93)]; - [bezierPath addLineToPoint: CGPointMake(61.14, 21.92)]; - [bezierPath addLineToPoint: CGPointMake(61.11, 21.92)]; - [bezierPath addLineToPoint: CGPointMake(61.08, 21.92)]; - [bezierPath addLineToPoint: CGPointMake(61.03, 21.92)]; - [bezierPath addLineToPoint: CGPointMake(60.97, 21.91)]; - [bezierPath addLineToPoint: CGPointMake(60.92, 21.91)]; - [bezierPath addLineToPoint: CGPointMake(60.86, 21.91)]; - [bezierPath addLineToPoint: CGPointMake(60.81, 21.91)]; - [bezierPath addLineToPoint: CGPointMake(60.75, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(60.7, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(60.64, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(60.59, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(60.56, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(60.53, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(60.48, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(60.42, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(60.37, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(60.31, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(60.26, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(60.2, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(60.15, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(60.09, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(60.04, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(59.98, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(59.93, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(59.87, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(59.82, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(59.76, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(59.71, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(59.65, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(59.6, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(59.54, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(59.49, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(59.43, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(59.38, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(59.32, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(59.27, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(59.21, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(59.16, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(59.1, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(59.05, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(58.99, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(58.94, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(58.88, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(58.83, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(58.77, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(58.72, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(58.66, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(58.61, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(58.55, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(58.5, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(58.44, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(58.39, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(58.33, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(58.28, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(58.22, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(58.17, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(58.11, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(58.06, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(58, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(57.95, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(57.89, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(57.84, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(57.78, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(57.73, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(57.67, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(57.62, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(57.56, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(57.51, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(57.45, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(57.4, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(57.34, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(57.29, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(57.23, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(57.18, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(57.12, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(57.07, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(57.01, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(56.96, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(56.9, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(56.85, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(56.79, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(56.74, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(56.68, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(56.63, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(56.58, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(56.52, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(56.47, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(56.41, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(56.36, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(56.3, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(56.25, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(56.19, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(56.14, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(56.08, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(56.03, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(55.97, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(55.92, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(55.86, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(55.81, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(55.75, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(55.7, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(55.64, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(55.59, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(55.53, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(55.48, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(55.42, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(55.37, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(55.31, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(55.26, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(55.2, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(55.15, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(55.09, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(55.04, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(54.98, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(54.93, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(54.87, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(54.82, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(54.76, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(54.71, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(54.65, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(54.6, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(54.54, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(54.49, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(54.43, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(54.38, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(54.32, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(54.27, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(54.21, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(54.16, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(54.1, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(54.05, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(53.99, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(53.94, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(53.88, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(53.83, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(53.77, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(53.72, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(53.66, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(53.61, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(53.55, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(53.5, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(53.44, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(53.39, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(53.33, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(53.28, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(53.22, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(53.17, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(53.11, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(53.06, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(53, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(52.95, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(52.89, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(52.84, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(52.78, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(52.73, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(52.67, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(52.62, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(52.5, 21.9)]; - [bezierPath addLineToPoint: CGPointMake(52.5, 16.09)]; - [bezierPath addCurveToPoint: CGPointMake(52.62, 14.95) controlPoint1: CGPointMake(52.5, 15.7) controlPoint2: CGPointMake(52.54, 15.32)]; - [bezierPath addCurveToPoint: CGPointMake(52.67, 14.72) controlPoint1: CGPointMake(52.64, 14.87) controlPoint2: CGPointMake(52.65, 14.8)]; - [bezierPath addCurveToPoint: CGPointMake(52.73, 14.52) controlPoint1: CGPointMake(52.69, 14.65) controlPoint2: CGPointMake(52.71, 14.59)]; - [bezierPath addCurveToPoint: CGPointMake(52.78, 14.35) controlPoint1: CGPointMake(52.75, 14.46) controlPoint2: CGPointMake(52.76, 14.4)]; - [bezierPath addCurveToPoint: CGPointMake(52.84, 14.19) controlPoint1: CGPointMake(52.8, 14.29) controlPoint2: CGPointMake(52.82, 14.24)]; - [bezierPath addCurveToPoint: CGPointMake(52.89, 14.05) controlPoint1: CGPointMake(52.86, 14.14) controlPoint2: CGPointMake(52.87, 14.09)]; - [bezierPath addCurveToPoint: CGPointMake(52.95, 13.91) controlPoint1: CGPointMake(52.91, 14) controlPoint2: CGPointMake(52.93, 13.96)]; - [bezierPath addCurveToPoint: CGPointMake(53, 13.79) controlPoint1: CGPointMake(52.97, 13.87) controlPoint2: CGPointMake(52.98, 13.83)]; - [bezierPath addCurveToPoint: CGPointMake(53.06, 13.68) controlPoint1: CGPointMake(53.02, 13.75) controlPoint2: CGPointMake(53.04, 13.71)]; - [bezierPath addCurveToPoint: CGPointMake(53.11, 13.57) controlPoint1: CGPointMake(53.08, 13.64) controlPoint2: CGPointMake(53.09, 13.6)]; - [bezierPath addCurveToPoint: CGPointMake(53.17, 13.46) controlPoint1: CGPointMake(53.13, 13.53) controlPoint2: CGPointMake(53.15, 13.5)]; - [bezierPath addCurveToPoint: CGPointMake(53.22, 13.36) controlPoint1: CGPointMake(53.19, 13.43) controlPoint2: CGPointMake(53.2, 13.4)]; - [bezierPath addCurveToPoint: CGPointMake(53.28, 13.27) controlPoint1: CGPointMake(53.24, 13.33) controlPoint2: CGPointMake(53.26, 13.3)]; - [bezierPath addCurveToPoint: CGPointMake(53.33, 13.18) controlPoint1: CGPointMake(53.3, 13.24) controlPoint2: CGPointMake(53.31, 13.21)]; - [bezierPath addCurveToPoint: CGPointMake(53.39, 13.09) controlPoint1: CGPointMake(53.35, 13.15) controlPoint2: CGPointMake(53.37, 13.12)]; - [bezierPath addCurveToPoint: CGPointMake(53.44, 13.01) controlPoint1: CGPointMake(53.41, 13.06) controlPoint2: CGPointMake(53.42, 13.04)]; - [bezierPath addCurveToPoint: CGPointMake(53.5, 12.93) controlPoint1: CGPointMake(53.46, 12.98) controlPoint2: CGPointMake(53.48, 12.96)]; - [bezierPath addCurveToPoint: CGPointMake(53.55, 12.85) controlPoint1: CGPointMake(53.52, 12.9) controlPoint2: CGPointMake(53.53, 12.88)]; - [bezierPath addCurveToPoint: CGPointMake(53.61, 12.78) controlPoint1: CGPointMake(53.57, 12.83) controlPoint2: CGPointMake(53.59, 12.8)]; - [bezierPath addCurveToPoint: CGPointMake(53.66, 12.71) controlPoint1: CGPointMake(53.63, 12.75) controlPoint2: CGPointMake(53.64, 12.73)]; - [bezierPath addCurveToPoint: CGPointMake(53.72, 12.64) controlPoint1: CGPointMake(53.68, 12.68) controlPoint2: CGPointMake(53.7, 12.66)]; - [bezierPath addCurveToPoint: CGPointMake(53.77, 12.57) controlPoint1: CGPointMake(53.74, 12.61) controlPoint2: CGPointMake(53.75, 12.59)]; - [bezierPath addCurveToPoint: CGPointMake(53.83, 12.5) controlPoint1: CGPointMake(53.79, 12.55) controlPoint2: CGPointMake(53.81, 12.53)]; - [bezierPath addCurveToPoint: CGPointMake(53.88, 12.44) controlPoint1: CGPointMake(53.85, 12.48) controlPoint2: CGPointMake(53.86, 12.46)]; - [bezierPath addCurveToPoint: CGPointMake(53.94, 12.38) controlPoint1: CGPointMake(53.9, 12.42) controlPoint2: CGPointMake(53.92, 12.4)]; - [bezierPath addCurveToPoint: CGPointMake(53.99, 12.32) controlPoint1: CGPointMake(53.96, 12.36) controlPoint2: CGPointMake(53.97, 12.34)]; - [bezierPath addCurveToPoint: CGPointMake(54.05, 12.26) controlPoint1: CGPointMake(54.01, 12.3) controlPoint2: CGPointMake(54.03, 12.28)]; - [bezierPath addCurveToPoint: CGPointMake(54.1, 12.2) controlPoint1: CGPointMake(54.07, 12.24) controlPoint2: CGPointMake(54.08, 12.22)]; - [bezierPath addCurveToPoint: CGPointMake(54.16, 12.15) controlPoint1: CGPointMake(54.12, 12.19) controlPoint2: CGPointMake(54.14, 12.17)]; - [bezierPath addCurveToPoint: CGPointMake(54.21, 12.1) controlPoint1: CGPointMake(54.18, 12.13) controlPoint2: CGPointMake(54.19, 12.11)]; - [bezierPath addCurveToPoint: CGPointMake(54.27, 12.04) controlPoint1: CGPointMake(54.23, 12.08) controlPoint2: CGPointMake(54.25, 12.06)]; - [bezierPath addCurveToPoint: CGPointMake(54.32, 11.99) controlPoint1: CGPointMake(54.29, 12.03) controlPoint2: CGPointMake(54.3, 12.01)]; - [bezierPath addCurveToPoint: CGPointMake(54.38, 11.94) controlPoint1: CGPointMake(54.34, 11.98) controlPoint2: CGPointMake(54.36, 11.96)]; - [bezierPath addCurveToPoint: CGPointMake(54.43, 11.89) controlPoint1: CGPointMake(54.4, 11.93) controlPoint2: CGPointMake(54.41, 11.91)]; - [bezierPath addCurveToPoint: CGPointMake(54.49, 11.85) controlPoint1: CGPointMake(54.45, 11.88) controlPoint2: CGPointMake(54.47, 11.86)]; - [bezierPath addCurveToPoint: CGPointMake(54.54, 11.8) controlPoint1: CGPointMake(54.51, 11.83) controlPoint2: CGPointMake(54.52, 11.82)]; - [bezierPath addCurveToPoint: CGPointMake(54.6, 11.76) controlPoint1: CGPointMake(54.56, 11.79) controlPoint2: CGPointMake(54.58, 11.77)]; - [bezierPath addCurveToPoint: CGPointMake(54.65, 11.71) controlPoint1: CGPointMake(54.62, 11.74) controlPoint2: CGPointMake(54.63, 11.73)]; - [bezierPath addLineToPoint: CGPointMake(54.71, 11.67)]; - [bezierPath addLineToPoint: CGPointMake(54.76, 11.63)]; - [bezierPath addCurveToPoint: CGPointMake(54.82, 11.59) controlPoint1: CGPointMake(54.78, 11.62) controlPoint2: CGPointMake(54.8, 11.6)]; - [bezierPath addCurveToPoint: CGPointMake(54.87, 11.55) controlPoint1: CGPointMake(54.83, 11.58) controlPoint2: CGPointMake(54.85, 11.56)]; - [bezierPath addLineToPoint: CGPointMake(54.93, 11.51)]; - [bezierPath addCurveToPoint: CGPointMake(54.98, 11.47) controlPoint1: CGPointMake(54.94, 11.5) controlPoint2: CGPointMake(54.96, 11.49)]; - [bezierPath addLineToPoint: CGPointMake(55.04, 11.44)]; - [bezierPath addLineToPoint: CGPointMake(55.09, 11.4)]; - [bezierPath addCurveToPoint: CGPointMake(55.15, 11.37) controlPoint1: CGPointMake(55.11, 11.39) controlPoint2: CGPointMake(55.13, 11.38)]; - [bezierPath addLineToPoint: CGPointMake(55.2, 11.33)]; - [bezierPath addCurveToPoint: CGPointMake(55.26, 11.3) controlPoint1: CGPointMake(55.22, 11.32) controlPoint2: CGPointMake(55.24, 11.31)]; - [bezierPath addCurveToPoint: CGPointMake(55.31, 11.27) controlPoint1: CGPointMake(55.27, 11.29) controlPoint2: CGPointMake(55.29, 11.28)]; - [bezierPath addCurveToPoint: CGPointMake(55.37, 11.24) controlPoint1: CGPointMake(55.33, 11.26) controlPoint2: CGPointMake(55.35, 11.25)]; - [bezierPath addCurveToPoint: CGPointMake(55.42, 11.21) controlPoint1: CGPointMake(55.38, 11.23) controlPoint2: CGPointMake(55.4, 11.22)]; - [bezierPath addCurveToPoint: CGPointMake(55.48, 11.18) controlPoint1: CGPointMake(55.44, 11.2) controlPoint2: CGPointMake(55.46, 11.19)]; - [bezierPath addCurveToPoint: CGPointMake(55.53, 11.15) controlPoint1: CGPointMake(55.49, 11.17) controlPoint2: CGPointMake(55.51, 11.16)]; - [bezierPath addCurveToPoint: CGPointMake(55.59, 11.12) controlPoint1: CGPointMake(55.55, 11.14) controlPoint2: CGPointMake(55.57, 11.13)]; - [bezierPath addCurveToPoint: CGPointMake(55.64, 11.09) controlPoint1: CGPointMake(55.6, 11.11) controlPoint2: CGPointMake(55.62, 11.1)]; - [bezierPath addCurveToPoint: CGPointMake(55.7, 11.07) controlPoint1: CGPointMake(55.66, 11.08) controlPoint2: CGPointMake(55.68, 11.07)]; - [bezierPath addLineToPoint: CGPointMake(55.75, 11.04)]; - [bezierPath addCurveToPoint: CGPointMake(55.81, 11.01) controlPoint1: CGPointMake(55.77, 11.03) controlPoint2: CGPointMake(55.79, 11.02)]; - [bezierPath addCurveToPoint: CGPointMake(55.86, 10.99) controlPoint1: CGPointMake(55.82, 11.01) controlPoint2: CGPointMake(55.84, 11)]; - [bezierPath addCurveToPoint: CGPointMake(55.92, 10.97) controlPoint1: CGPointMake(55.88, 10.98) controlPoint2: CGPointMake(55.9, 10.97)]; - [bezierPath addCurveToPoint: CGPointMake(55.97, 10.94) controlPoint1: CGPointMake(55.93, 10.96) controlPoint2: CGPointMake(55.95, 10.95)]; - [bezierPath addCurveToPoint: CGPointMake(56.03, 10.92) controlPoint1: CGPointMake(55.99, 10.93) controlPoint2: CGPointMake(56.01, 10.93)]; - [bezierPath addCurveToPoint: CGPointMake(56.08, 10.9) controlPoint1: CGPointMake(56.04, 10.91) controlPoint2: CGPointMake(56.06, 10.91)]; - [bezierPath addLineToPoint: CGPointMake(56.14, 10.88)]; - [bezierPath addLineToPoint: CGPointMake(56.19, 10.86)]; - [bezierPath addCurveToPoint: CGPointMake(56.25, 10.84) controlPoint1: CGPointMake(56.21, 10.85) controlPoint2: CGPointMake(56.23, 10.84)]; - [bezierPath addCurveToPoint: CGPointMake(56.3, 10.82) controlPoint1: CGPointMake(56.26, 10.83) controlPoint2: CGPointMake(56.28, 10.82)]; - [bezierPath addCurveToPoint: CGPointMake(56.36, 10.8) controlPoint1: CGPointMake(56.32, 10.81) controlPoint2: CGPointMake(56.34, 10.8)]; - [bezierPath addCurveToPoint: CGPointMake(56.41, 10.78) controlPoint1: CGPointMake(56.37, 10.79) controlPoint2: CGPointMake(56.39, 10.79)]; - [bezierPath addLineToPoint: CGPointMake(56.47, 10.76)]; - [bezierPath addCurveToPoint: CGPointMake(56.52, 10.75) controlPoint1: CGPointMake(56.48, 10.76) controlPoint2: CGPointMake(56.5, 10.75)]; - [bezierPath addCurveToPoint: CGPointMake(56.58, 10.73) controlPoint1: CGPointMake(56.54, 10.74) controlPoint2: CGPointMake(56.56, 10.73)]; - [bezierPath addCurveToPoint: CGPointMake(56.63, 10.71) controlPoint1: CGPointMake(56.59, 10.72) controlPoint2: CGPointMake(56.61, 10.72)]; - [bezierPath addCurveToPoint: CGPointMake(56.68, 10.7) controlPoint1: CGPointMake(56.65, 10.71) controlPoint2: CGPointMake(56.67, 10.7)]; - [bezierPath addCurveToPoint: CGPointMake(56.74, 10.68) controlPoint1: CGPointMake(56.7, 10.69) controlPoint2: CGPointMake(56.72, 10.69)]; - [bezierPath addLineToPoint: CGPointMake(56.79, 10.67)]; - [bezierPath addCurveToPoint: CGPointMake(56.85, 10.66) controlPoint1: CGPointMake(56.81, 10.67) controlPoint2: CGPointMake(56.83, 10.66)]; - [bezierPath addCurveToPoint: CGPointMake(56.9, 10.64) controlPoint1: CGPointMake(56.87, 10.65) controlPoint2: CGPointMake(56.89, 10.65)]; - [bezierPath addCurveToPoint: CGPointMake(56.96, 10.63) controlPoint1: CGPointMake(56.92, 10.64) controlPoint2: CGPointMake(56.94, 10.64)]; - [bezierPath addLineToPoint: CGPointMake(57.01, 10.62)]; - [bezierPath addLineToPoint: CGPointMake(57.07, 10.61)]; - [bezierPath addCurveToPoint: CGPointMake(57.12, 10.6) controlPoint1: CGPointMake(57.09, 10.61) controlPoint2: CGPointMake(57.11, 10.6)]; - [bezierPath addCurveToPoint: CGPointMake(57.18, 10.59) controlPoint1: CGPointMake(57.14, 10.6) controlPoint2: CGPointMake(57.16, 10.59)]; - [bezierPath addCurveToPoint: CGPointMake(57.23, 10.58) controlPoint1: CGPointMake(57.2, 10.59) controlPoint2: CGPointMake(57.22, 10.58)]; - [bezierPath addLineToPoint: CGPointMake(57.29, 10.57)]; - [bezierPath addCurveToPoint: CGPointMake(57.34, 10.56) controlPoint1: CGPointMake(57.31, 10.57) controlPoint2: CGPointMake(57.33, 10.56)]; - [bezierPath addCurveToPoint: CGPointMake(57.4, 10.55) controlPoint1: CGPointMake(57.36, 10.56) controlPoint2: CGPointMake(57.38, 10.56)]; - [bezierPath addCurveToPoint: CGPointMake(57.45, 10.55) controlPoint1: CGPointMake(57.42, 10.55) controlPoint2: CGPointMake(57.44, 10.55)]; - [bezierPath addCurveToPoint: CGPointMake(57.51, 10.54) controlPoint1: CGPointMake(57.47, 10.54) controlPoint2: CGPointMake(57.49, 10.54)]; - [bezierPath addLineToPoint: CGPointMake(57.56, 10.53)]; - [bezierPath addCurveToPoint: CGPointMake(57.62, 10.53) controlPoint1: CGPointMake(57.58, 10.53) controlPoint2: CGPointMake(57.6, 10.53)]; - [bezierPath addCurveToPoint: CGPointMake(57.67, 10.52) controlPoint1: CGPointMake(57.64, 10.53) controlPoint2: CGPointMake(57.66, 10.52)]; - [bezierPath addLineToPoint: CGPointMake(57.73, 10.52)]; - [bezierPath addLineToPoint: CGPointMake(57.78, 10.51)]; - [bezierPath addCurveToPoint: CGPointMake(57.84, 10.51) controlPoint1: CGPointMake(57.8, 10.51) controlPoint2: CGPointMake(57.82, 10.51)]; - [bezierPath addCurveToPoint: CGPointMake(57.89, 10.51) controlPoint1: CGPointMake(57.86, 10.51) controlPoint2: CGPointMake(57.88, 10.51)]; - [bezierPath addCurveToPoint: CGPointMake(57.95, 10.51) controlPoint1: CGPointMake(57.91, 10.51) controlPoint2: CGPointMake(57.93, 10.51)]; - [bezierPath addLineToPoint: CGPointMake(58, 10.5)]; - [bezierPath addCurveToPoint: CGPointMake(58.06, 10.5) controlPoint1: CGPointMake(58.02, 10.5) controlPoint2: CGPointMake(58.04, 10.5)]; - [bezierPath addCurveToPoint: CGPointMake(58.11, 10.5) controlPoint1: CGPointMake(58.08, 10.5) controlPoint2: CGPointMake(58.1, 10.5)]; - [bezierPath addCurveToPoint: CGPointMake(58.17, 10.5) controlPoint1: CGPointMake(58.13, 10.5) controlPoint2: CGPointMake(58.15, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(58.18, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(58.22, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(58.28, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(58.33, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(58.39, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(58.44, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(58.5, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(58.55, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(58.61, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(58.66, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(58.72, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(58.77, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(58.83, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(58.88, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(58.94, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(58.99, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(59.05, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(59.1, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(59.16, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(59.21, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(59.27, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(59.32, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(59.38, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(59.43, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(59.49, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(59.54, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(59.6, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(59.65, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(59.71, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(59.76, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(59.82, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(59.87, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(59.93, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(59.98, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(60.04, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(60.09, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(60.15, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(60.2, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(60.26, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(60.31, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(60.37, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(60.42, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(60.48, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(60.53, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(60.59, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(60.64, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(60.7, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(60.75, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(60.81, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(60.86, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(60.92, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(60.97, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(61.03, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(61.08, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(61.14, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(61.19, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(61.25, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(61.3, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(61.36, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(61.41, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(61.47, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(61.52, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(61.58, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(61.63, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(61.69, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(61.74, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(61.8, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(61.85, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(61.91, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(61.96, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(62.02, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(62.07, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(62.13, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(62.18, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(62.24, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(62.29, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(62.34, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(62.4, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(62.45, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(62.51, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(62.56, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(62.62, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(62.67, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(62.73, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(62.78, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(62.84, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(62.89, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(62.95, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(63, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(63.06, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(63.11, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(63.17, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(63.22, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(63.28, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(63.33, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(63.39, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(63.44, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(63.5, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(63.55, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(63.61, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(63.66, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(63.72, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(63.77, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(63.83, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(63.88, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(63.94, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(63.99, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(64.05, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(64.1, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(64.16, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(64.21, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(64.27, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(64.32, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(64.38, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(64.43, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(64.49, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(64.54, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(64.6, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(64.65, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(64.71, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(64.76, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(64.82, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(64.87, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(64.93, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(64.98, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(65.04, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(65.09, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(65.15, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(65.2, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(65.26, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(65.31, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(65.37, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(65.42, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(65.48, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(65.53, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(65.59, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(65.64, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(65.7, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(65.75, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(65.81, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(65.86, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(65.92, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(65.97, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(66.03, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(66.08, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(66.14, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(66.19, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(66.25, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(66.3, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(66.36, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(66.41, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(66.47, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(66.52, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(66.52, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(66.52, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(66.52, 10.5)]; - [bezierPath addLineToPoint: CGPointMake(66.52, 10.5)]; - [bezierPath closePath]; - bezierPath.miterLimit = 4; - - bezierPath.usesEvenOddFillRule = YES; - - CGContextSaveGState(context); - [bezierPath addClip]; - CGContextDrawLinearGradient(context, linearGradient1, - CGPointMake(52.5, 27.28), - CGPointMake(66.54, 27.28), - kCGGradientDrawsBeforeStartLocation | kCGGradientDrawsAfterEndLocation); - CGContextRestoreGState(context); - - - //// Bezier 2 Drawing - UIBezierPath* bezier2Path = [UIBezierPath bezierPath]; - [bezier2Path moveToPoint: CGPointMake(20.62, 29.96)]; - [bezier2Path addCurveToPoint: CGPointMake(20.5, 29.9) controlPoint1: CGPointMake(20.58, 29.94) controlPoint2: CGPointMake(20.54, 29.92)]; - [bezier2Path addLineToPoint: CGPointMake(20.5, 16.09)]; - [bezier2Path addCurveToPoint: CGPointMake(20.62, 14.96) controlPoint1: CGPointMake(20.5, 15.7) controlPoint2: CGPointMake(20.54, 15.32)]; - [bezier2Path addCurveToPoint: CGPointMake(20.67, 14.72) controlPoint1: CGPointMake(20.63, 14.88) controlPoint2: CGPointMake(20.65, 14.8)]; - [bezier2Path addCurveToPoint: CGPointMake(20.73, 14.52) controlPoint1: CGPointMake(20.69, 14.65) controlPoint2: CGPointMake(20.71, 14.59)]; - [bezier2Path addCurveToPoint: CGPointMake(20.78, 14.35) controlPoint1: CGPointMake(20.74, 14.47) controlPoint2: CGPointMake(20.76, 14.41)]; - [bezier2Path addCurveToPoint: CGPointMake(20.84, 14.19) controlPoint1: CGPointMake(20.8, 14.3) controlPoint2: CGPointMake(20.82, 14.24)]; - [bezier2Path addCurveToPoint: CGPointMake(20.89, 14.05) controlPoint1: CGPointMake(20.85, 14.14) controlPoint2: CGPointMake(20.87, 14.1)]; - [bezier2Path addCurveToPoint: CGPointMake(20.95, 13.92) controlPoint1: CGPointMake(20.91, 14) controlPoint2: CGPointMake(20.93, 13.96)]; - [bezier2Path addCurveToPoint: CGPointMake(21, 13.79) controlPoint1: CGPointMake(20.96, 13.88) controlPoint2: CGPointMake(20.98, 13.83)]; - [bezier2Path addCurveToPoint: CGPointMake(21.06, 13.68) controlPoint1: CGPointMake(21.02, 13.75) controlPoint2: CGPointMake(21.04, 13.72)]; - [bezier2Path addCurveToPoint: CGPointMake(21.11, 13.57) controlPoint1: CGPointMake(21.07, 13.64) controlPoint2: CGPointMake(21.09, 13.61)]; - [bezier2Path addCurveToPoint: CGPointMake(21.17, 13.47) controlPoint1: CGPointMake(21.13, 13.53) controlPoint2: CGPointMake(21.15, 13.5)]; - [bezier2Path addCurveToPoint: CGPointMake(21.22, 13.37) controlPoint1: CGPointMake(21.18, 13.43) controlPoint2: CGPointMake(21.2, 13.4)]; - [bezier2Path addCurveToPoint: CGPointMake(21.28, 13.27) controlPoint1: CGPointMake(21.24, 13.34) controlPoint2: CGPointMake(21.26, 13.3)]; - [bezier2Path addCurveToPoint: CGPointMake(21.33, 13.18) controlPoint1: CGPointMake(21.29, 13.24) controlPoint2: CGPointMake(21.31, 13.21)]; - [bezier2Path addCurveToPoint: CGPointMake(21.39, 13.1) controlPoint1: CGPointMake(21.35, 13.15) controlPoint2: CGPointMake(21.37, 13.12)]; - [bezier2Path addCurveToPoint: CGPointMake(21.44, 13.01) controlPoint1: CGPointMake(21.4, 13.07) controlPoint2: CGPointMake(21.42, 13.04)]; - [bezier2Path addCurveToPoint: CGPointMake(21.5, 12.93) controlPoint1: CGPointMake(21.46, 12.99) controlPoint2: CGPointMake(21.48, 12.96)]; - [bezier2Path addCurveToPoint: CGPointMake(21.55, 12.86) controlPoint1: CGPointMake(21.51, 12.91) controlPoint2: CGPointMake(21.53, 12.88)]; - [bezier2Path addCurveToPoint: CGPointMake(21.61, 12.78) controlPoint1: CGPointMake(21.57, 12.83) controlPoint2: CGPointMake(21.59, 12.81)]; - [bezier2Path addCurveToPoint: CGPointMake(21.66, 12.71) controlPoint1: CGPointMake(21.62, 12.76) controlPoint2: CGPointMake(21.64, 12.73)]; - [bezier2Path addCurveToPoint: CGPointMake(21.71, 12.64) controlPoint1: CGPointMake(21.68, 12.69) controlPoint2: CGPointMake(21.7, 12.66)]; - [bezier2Path addCurveToPoint: CGPointMake(21.77, 12.57) controlPoint1: CGPointMake(21.73, 12.62) controlPoint2: CGPointMake(21.75, 12.59)]; - [bezier2Path addCurveToPoint: CGPointMake(21.82, 12.51) controlPoint1: CGPointMake(21.79, 12.55) controlPoint2: CGPointMake(21.81, 12.53)]; - [bezier2Path addCurveToPoint: CGPointMake(21.88, 12.44) controlPoint1: CGPointMake(21.84, 12.49) controlPoint2: CGPointMake(21.86, 12.46)]; - [bezier2Path addCurveToPoint: CGPointMake(21.93, 12.38) controlPoint1: CGPointMake(21.9, 12.42) controlPoint2: CGPointMake(21.92, 12.4)]; - [bezier2Path addCurveToPoint: CGPointMake(21.99, 12.32) controlPoint1: CGPointMake(21.95, 12.36) controlPoint2: CGPointMake(21.97, 12.34)]; - [bezier2Path addCurveToPoint: CGPointMake(22.04, 12.26) controlPoint1: CGPointMake(22.01, 12.3) controlPoint2: CGPointMake(22.03, 12.28)]; - [bezier2Path addCurveToPoint: CGPointMake(22.1, 12.21) controlPoint1: CGPointMake(22.06, 12.24) controlPoint2: CGPointMake(22.08, 12.23)]; - [bezier2Path addCurveToPoint: CGPointMake(22.15, 12.15) controlPoint1: CGPointMake(22.12, 12.19) controlPoint2: CGPointMake(22.14, 12.17)]; - [bezier2Path addCurveToPoint: CGPointMake(22.21, 12.1) controlPoint1: CGPointMake(22.17, 12.13) controlPoint2: CGPointMake(22.19, 12.12)]; - [bezier2Path addCurveToPoint: CGPointMake(22.26, 12.05) controlPoint1: CGPointMake(22.23, 12.08) controlPoint2: CGPointMake(22.24, 12.06)]; - [bezier2Path addCurveToPoint: CGPointMake(22.32, 12) controlPoint1: CGPointMake(22.28, 12.03) controlPoint2: CGPointMake(22.3, 12.01)]; - [bezier2Path addCurveToPoint: CGPointMake(22.37, 11.95) controlPoint1: CGPointMake(22.34, 11.98) controlPoint2: CGPointMake(22.35, 11.96)]; - [bezier2Path addCurveToPoint: CGPointMake(22.43, 11.9) controlPoint1: CGPointMake(22.39, 11.93) controlPoint2: CGPointMake(22.41, 11.91)]; - [bezier2Path addCurveToPoint: CGPointMake(22.48, 11.85) controlPoint1: CGPointMake(22.45, 11.88) controlPoint2: CGPointMake(22.46, 11.87)]; - [bezier2Path addCurveToPoint: CGPointMake(22.54, 11.81) controlPoint1: CGPointMake(22.5, 11.84) controlPoint2: CGPointMake(22.52, 11.82)]; - [bezier2Path addCurveToPoint: CGPointMake(22.59, 11.76) controlPoint1: CGPointMake(22.56, 11.79) controlPoint2: CGPointMake(22.57, 11.78)]; - [bezier2Path addCurveToPoint: CGPointMake(22.65, 11.72) controlPoint1: CGPointMake(22.61, 11.75) controlPoint2: CGPointMake(22.63, 11.73)]; - [bezier2Path addCurveToPoint: CGPointMake(22.7, 11.67) controlPoint1: CGPointMake(22.67, 11.7) controlPoint2: CGPointMake(22.68, 11.69)]; - [bezier2Path addCurveToPoint: CGPointMake(22.76, 11.63) controlPoint1: CGPointMake(22.72, 11.66) controlPoint2: CGPointMake(22.74, 11.65)]; - [bezier2Path addCurveToPoint: CGPointMake(22.81, 11.59) controlPoint1: CGPointMake(22.78, 11.62) controlPoint2: CGPointMake(22.79, 11.61)]; - [bezier2Path addLineToPoint: CGPointMake(22.87, 11.55)]; - [bezier2Path addCurveToPoint: CGPointMake(22.92, 11.52) controlPoint1: CGPointMake(22.89, 11.54) controlPoint2: CGPointMake(22.9, 11.53)]; - [bezier2Path addCurveToPoint: CGPointMake(22.98, 11.48) controlPoint1: CGPointMake(22.94, 11.5) controlPoint2: CGPointMake(22.96, 11.49)]; - [bezier2Path addCurveToPoint: CGPointMake(23.03, 11.44) controlPoint1: CGPointMake(22.99, 11.47) controlPoint2: CGPointMake(23.01, 11.45)]; - [bezier2Path addCurveToPoint: CGPointMake(23.09, 11.41) controlPoint1: CGPointMake(23.05, 11.43) controlPoint2: CGPointMake(23.07, 11.42)]; - [bezier2Path addCurveToPoint: CGPointMake(23.14, 11.37) controlPoint1: CGPointMake(23.1, 11.39) controlPoint2: CGPointMake(23.12, 11.38)]; - [bezier2Path addCurveToPoint: CGPointMake(23.2, 11.34) controlPoint1: CGPointMake(23.16, 11.36) controlPoint2: CGPointMake(23.18, 11.35)]; - [bezier2Path addCurveToPoint: CGPointMake(23.25, 11.3) controlPoint1: CGPointMake(23.21, 11.33) controlPoint2: CGPointMake(23.23, 11.31)]; - [bezier2Path addCurveToPoint: CGPointMake(23.31, 11.27) controlPoint1: CGPointMake(23.27, 11.29) controlPoint2: CGPointMake(23.29, 11.28)]; - [bezier2Path addCurveToPoint: CGPointMake(23.36, 11.24) controlPoint1: CGPointMake(23.32, 11.26) controlPoint2: CGPointMake(23.34, 11.25)]; - [bezier2Path addCurveToPoint: CGPointMake(23.42, 11.21) controlPoint1: CGPointMake(23.38, 11.23) controlPoint2: CGPointMake(23.4, 11.22)]; - [bezier2Path addCurveToPoint: CGPointMake(23.47, 11.18) controlPoint1: CGPointMake(23.43, 11.2) controlPoint2: CGPointMake(23.45, 11.19)]; - [bezier2Path addCurveToPoint: CGPointMake(23.53, 11.15) controlPoint1: CGPointMake(23.49, 11.17) controlPoint2: CGPointMake(23.51, 11.16)]; - [bezier2Path addCurveToPoint: CGPointMake(23.58, 11.12) controlPoint1: CGPointMake(23.54, 11.14) controlPoint2: CGPointMake(23.56, 11.13)]; - [bezier2Path addCurveToPoint: CGPointMake(23.63, 11.1) controlPoint1: CGPointMake(23.6, 11.11) controlPoint2: CGPointMake(23.62, 11.1)]; - [bezier2Path addLineToPoint: CGPointMake(23.69, 11.07)]; - [bezier2Path addCurveToPoint: CGPointMake(23.74, 11.04) controlPoint1: CGPointMake(23.71, 11.06) controlPoint2: CGPointMake(23.73, 11.05)]; - [bezier2Path addCurveToPoint: CGPointMake(23.8, 11.02) controlPoint1: CGPointMake(23.76, 11.03) controlPoint2: CGPointMake(23.78, 11.03)]; - [bezier2Path addCurveToPoint: CGPointMake(23.85, 10.99) controlPoint1: CGPointMake(23.82, 11.01) controlPoint2: CGPointMake(23.84, 11)]; - [bezier2Path addCurveToPoint: CGPointMake(23.91, 10.97) controlPoint1: CGPointMake(23.87, 10.98) controlPoint2: CGPointMake(23.89, 10.98)]; - [bezier2Path addCurveToPoint: CGPointMake(23.96, 10.95) controlPoint1: CGPointMake(23.93, 10.96) controlPoint2: CGPointMake(23.95, 10.95)]; - [bezier2Path addCurveToPoint: CGPointMake(24.02, 10.92) controlPoint1: CGPointMake(23.98, 10.94) controlPoint2: CGPointMake(24, 10.93)]; - [bezier2Path addLineToPoint: CGPointMake(24.07, 10.9)]; - [bezier2Path addLineToPoint: CGPointMake(24.13, 10.88)]; - [bezier2Path addLineToPoint: CGPointMake(24.18, 10.86)]; - [bezier2Path addCurveToPoint: CGPointMake(24.24, 10.84) controlPoint1: CGPointMake(24.2, 10.85) controlPoint2: CGPointMake(24.22, 10.84)]; - [bezier2Path addCurveToPoint: CGPointMake(24.29, 10.82) controlPoint1: CGPointMake(24.26, 10.83) controlPoint2: CGPointMake(24.27, 10.83)]; - [bezier2Path addCurveToPoint: CGPointMake(24.35, 10.8) controlPoint1: CGPointMake(24.31, 10.81) controlPoint2: CGPointMake(24.33, 10.81)]; - [bezier2Path addLineToPoint: CGPointMake(24.4, 10.78)]; - [bezier2Path addLineToPoint: CGPointMake(24.46, 10.76)]; - [bezier2Path addCurveToPoint: CGPointMake(24.51, 10.75) controlPoint1: CGPointMake(24.48, 10.76) controlPoint2: CGPointMake(24.49, 10.75)]; - [bezier2Path addCurveToPoint: CGPointMake(24.57, 10.73) controlPoint1: CGPointMake(24.53, 10.74) controlPoint2: CGPointMake(24.55, 10.74)]; - [bezier2Path addCurveToPoint: CGPointMake(24.62, 10.72) controlPoint1: CGPointMake(24.59, 10.73) controlPoint2: CGPointMake(24.6, 10.72)]; - [bezier2Path addCurveToPoint: CGPointMake(24.68, 10.7) controlPoint1: CGPointMake(24.64, 10.71) controlPoint2: CGPointMake(24.66, 10.71)]; - [bezier2Path addLineToPoint: CGPointMake(24.73, 10.69)]; - [bezier2Path addCurveToPoint: CGPointMake(24.79, 10.67) controlPoint1: CGPointMake(24.75, 10.68) controlPoint2: CGPointMake(24.77, 10.68)]; - [bezier2Path addCurveToPoint: CGPointMake(24.84, 10.66) controlPoint1: CGPointMake(24.8, 10.67) controlPoint2: CGPointMake(24.82, 10.66)]; - [bezier2Path addCurveToPoint: CGPointMake(24.9, 10.65) controlPoint1: CGPointMake(24.86, 10.65) controlPoint2: CGPointMake(24.88, 10.65)]; - [bezier2Path addCurveToPoint: CGPointMake(24.95, 10.63) controlPoint1: CGPointMake(24.91, 10.64) controlPoint2: CGPointMake(24.93, 10.64)]; - [bezier2Path addLineToPoint: CGPointMake(25.01, 10.62)]; - [bezier2Path addCurveToPoint: CGPointMake(25.06, 10.61) controlPoint1: CGPointMake(25.02, 10.62) controlPoint2: CGPointMake(25.04, 10.61)]; - [bezier2Path addCurveToPoint: CGPointMake(25.12, 10.6) controlPoint1: CGPointMake(25.08, 10.61) controlPoint2: CGPointMake(25.1, 10.6)]; - [bezier2Path addCurveToPoint: CGPointMake(25.17, 10.59) controlPoint1: CGPointMake(25.13, 10.6) controlPoint2: CGPointMake(25.15, 10.59)]; - [bezier2Path addCurveToPoint: CGPointMake(25.23, 10.58) controlPoint1: CGPointMake(25.19, 10.59) controlPoint2: CGPointMake(25.21, 10.58)]; - [bezier2Path addLineToPoint: CGPointMake(25.28, 10.57)]; - [bezier2Path addCurveToPoint: CGPointMake(25.34, 10.56) controlPoint1: CGPointMake(25.3, 10.57) controlPoint2: CGPointMake(25.32, 10.57)]; - [bezier2Path addCurveToPoint: CGPointMake(25.39, 10.56) controlPoint1: CGPointMake(25.35, 10.56) controlPoint2: CGPointMake(25.37, 10.56)]; - [bezier2Path addCurveToPoint: CGPointMake(25.44, 10.55) controlPoint1: CGPointMake(25.41, 10.55) controlPoint2: CGPointMake(25.43, 10.55)]; - [bezier2Path addLineToPoint: CGPointMake(25.5, 10.54)]; - [bezier2Path addLineToPoint: CGPointMake(25.55, 10.54)]; - [bezier2Path addCurveToPoint: CGPointMake(25.61, 10.53) controlPoint1: CGPointMake(25.57, 10.53) controlPoint2: CGPointMake(25.59, 10.53)]; - [bezier2Path addCurveToPoint: CGPointMake(25.66, 10.52) controlPoint1: CGPointMake(25.63, 10.53) controlPoint2: CGPointMake(25.65, 10.53)]; - [bezier2Path addLineToPoint: CGPointMake(25.72, 10.52)]; - [bezier2Path addCurveToPoint: CGPointMake(25.77, 10.52) controlPoint1: CGPointMake(25.74, 10.52) controlPoint2: CGPointMake(25.76, 10.52)]; - [bezier2Path addCurveToPoint: CGPointMake(25.83, 10.51) controlPoint1: CGPointMake(25.79, 10.51) controlPoint2: CGPointMake(25.81, 10.51)]; - [bezier2Path addCurveToPoint: CGPointMake(25.88, 10.51) controlPoint1: CGPointMake(25.85, 10.51) controlPoint2: CGPointMake(25.87, 10.51)]; - [bezier2Path addCurveToPoint: CGPointMake(25.94, 10.51) controlPoint1: CGPointMake(25.9, 10.51) controlPoint2: CGPointMake(25.92, 10.51)]; - [bezier2Path addLineToPoint: CGPointMake(25.99, 10.5)]; - [bezier2Path addCurveToPoint: CGPointMake(26.05, 10.5) controlPoint1: CGPointMake(26.01, 10.5) controlPoint2: CGPointMake(26.03, 10.5)]; - [bezier2Path addCurveToPoint: CGPointMake(26.1, 10.5) controlPoint1: CGPointMake(26.07, 10.5) controlPoint2: CGPointMake(26.08, 10.5)]; - [bezier2Path addCurveToPoint: CGPointMake(26.16, 10.5) controlPoint1: CGPointMake(26.12, 10.5) controlPoint2: CGPointMake(26.14, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(26.18, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(26.21, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(26.27, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(26.32, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(26.38, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(26.43, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(26.49, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(26.54, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(26.6, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(26.65, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(26.71, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(26.76, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(26.82, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(26.87, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(26.93, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(26.98, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(27.04, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(27.09, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(27.15, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(27.2, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(27.26, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(27.31, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(27.36, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(27.42, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(27.47, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(27.53, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(27.58, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(27.64, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(27.69, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(27.75, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(27.8, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(27.86, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(27.91, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(27.97, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(28.02, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(28.08, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(28.13, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(28.19, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(28.24, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(28.3, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(28.35, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(28.41, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(28.46, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(28.52, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(28.57, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(28.63, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(28.68, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(28.74, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(28.79, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(28.85, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(28.9, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(28.96, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(29.01, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(29.07, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(29.12, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(29.18, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(29.23, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(29.28, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(29.34, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(29.39, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(29.45, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(29.5, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(29.56, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(29.61, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(29.67, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(29.72, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(29.78, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(29.83, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(29.89, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(29.94, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(30, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(30.05, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(30.11, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(30.16, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(30.22, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(30.27, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(30.33, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(30.38, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(30.44, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(30.49, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(30.55, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(30.6, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(30.66, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(30.71, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(30.77, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(30.82, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(30.88, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(30.93, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(30.99, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(31.04, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(31.09, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(31.15, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(31.2, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(31.26, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(31.31, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(31.37, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(31.42, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(31.48, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(31.53, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(31.59, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(31.64, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(31.7, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(31.75, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(31.81, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(31.86, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(31.92, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(31.97, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(32.03, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(32.08, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(32.14, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(32.19, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(32.25, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(32.3, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(32.36, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(32.41, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(32.47, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(32.52, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(32.58, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(32.63, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(32.69, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(32.74, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(32.8, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(32.85, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(32.91, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(32.96, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(33.01, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(33.07, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(33.12, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(33.18, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(33.23, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(33.29, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(33.34, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(33.4, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(33.45, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(33.51, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(33.56, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(33.62, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(33.67, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(33.73, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(33.78, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(33.84, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(33.89, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(33.95, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(34, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(34.06, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(34.11, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(34.17, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(34.22, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(34.28, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(34.33, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(34.39, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(34.44, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(34.5, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(34.54, 10.5)]; - [bezier2Path addLineToPoint: CGPointMake(34.54, 38.46)]; - [bezier2Path addCurveToPoint: CGPointMake(34.5, 39.18) controlPoint1: CGPointMake(34.54, 38.7) controlPoint2: CGPointMake(34.53, 38.94)]; - [bezier2Path addCurveToPoint: CGPointMake(34.44, 39.52) controlPoint1: CGPointMake(34.48, 39.29) controlPoint2: CGPointMake(34.46, 39.4)]; - [bezier2Path addCurveToPoint: CGPointMake(34.39, 39.77) controlPoint1: CGPointMake(34.42, 39.6) controlPoint2: CGPointMake(34.41, 39.68)]; - [bezier2Path addCurveToPoint: CGPointMake(34.33, 39.97) controlPoint1: CGPointMake(34.37, 39.84) controlPoint2: CGPointMake(34.35, 39.91)]; - [bezier2Path addCurveToPoint: CGPointMake(34.28, 40.15) controlPoint1: CGPointMake(34.31, 40.04) controlPoint2: CGPointMake(34.3, 40.1)]; - [bezier2Path addCurveToPoint: CGPointMake(34.22, 40.32) controlPoint1: CGPointMake(34.26, 40.21) controlPoint2: CGPointMake(34.24, 40.26)]; - [bezier2Path addCurveToPoint: CGPointMake(34.17, 40.46) controlPoint1: CGPointMake(34.2, 40.36) controlPoint2: CGPointMake(34.19, 40.41)]; - [bezier2Path addCurveToPoint: CGPointMake(34.11, 40.6) controlPoint1: CGPointMake(34.15, 40.51) controlPoint2: CGPointMake(34.13, 40.55)]; - [bezier2Path addCurveToPoint: CGPointMake(34.06, 40.72) controlPoint1: CGPointMake(34.09, 40.64) controlPoint2: CGPointMake(34.08, 40.68)]; - [bezier2Path addCurveToPoint: CGPointMake(34, 40.84) controlPoint1: CGPointMake(34.04, 40.76) controlPoint2: CGPointMake(34.02, 40.8)]; - [bezier2Path addCurveToPoint: CGPointMake(33.95, 40.95) controlPoint1: CGPointMake(33.98, 40.88) controlPoint2: CGPointMake(33.97, 40.92)]; - [bezier2Path addCurveToPoint: CGPointMake(33.89, 41.06) controlPoint1: CGPointMake(33.93, 40.99) controlPoint2: CGPointMake(33.91, 41.02)]; - [bezier2Path addCurveToPoint: CGPointMake(33.84, 41.16) controlPoint1: CGPointMake(33.87, 41.09) controlPoint2: CGPointMake(33.86, 41.12)]; - [bezier2Path addCurveToPoint: CGPointMake(33.78, 41.25) controlPoint1: CGPointMake(33.82, 41.19) controlPoint2: CGPointMake(33.8, 41.22)]; - [bezier2Path addCurveToPoint: CGPointMake(33.73, 41.35) controlPoint1: CGPointMake(33.76, 41.28) controlPoint2: CGPointMake(33.75, 41.31)]; - [bezier2Path addCurveToPoint: CGPointMake(33.67, 41.43) controlPoint1: CGPointMake(33.71, 41.37) controlPoint2: CGPointMake(33.69, 41.4)]; - [bezier2Path addCurveToPoint: CGPointMake(33.62, 41.52) controlPoint1: CGPointMake(33.65, 41.46) controlPoint2: CGPointMake(33.64, 41.49)]; - [bezier2Path addCurveToPoint: CGPointMake(33.56, 41.6) controlPoint1: CGPointMake(33.6, 41.54) controlPoint2: CGPointMake(33.58, 41.57)]; - [bezier2Path addCurveToPoint: CGPointMake(33.51, 41.68) controlPoint1: CGPointMake(33.55, 41.62) controlPoint2: CGPointMake(33.53, 41.65)]; - [bezier2Path addCurveToPoint: CGPointMake(33.45, 41.75) controlPoint1: CGPointMake(33.49, 41.7) controlPoint2: CGPointMake(33.47, 41.73)]; - [bezier2Path addCurveToPoint: CGPointMake(33.4, 41.82) controlPoint1: CGPointMake(33.44, 41.78) controlPoint2: CGPointMake(33.42, 41.8)]; - [bezier2Path addCurveToPoint: CGPointMake(33.34, 41.89) controlPoint1: CGPointMake(33.38, 41.85) controlPoint2: CGPointMake(33.36, 41.87)]; - [bezier2Path addCurveToPoint: CGPointMake(33.29, 41.96) controlPoint1: CGPointMake(33.33, 41.92) controlPoint2: CGPointMake(33.31, 41.94)]; - [bezier2Path addCurveToPoint: CGPointMake(33.23, 42.03) controlPoint1: CGPointMake(33.27, 41.98) controlPoint2: CGPointMake(33.25, 42.01)]; - [bezier2Path addCurveToPoint: CGPointMake(33.18, 42.09) controlPoint1: CGPointMake(33.22, 42.05) controlPoint2: CGPointMake(33.2, 42.07)]; - [bezier2Path addCurveToPoint: CGPointMake(33.12, 42.15) controlPoint1: CGPointMake(33.16, 42.11) controlPoint2: CGPointMake(33.14, 42.13)]; - [bezier2Path addCurveToPoint: CGPointMake(33.07, 42.21) controlPoint1: CGPointMake(33.11, 42.17) controlPoint2: CGPointMake(33.09, 42.19)]; - [bezier2Path addCurveToPoint: CGPointMake(33.01, 42.27) controlPoint1: CGPointMake(33.05, 42.23) controlPoint2: CGPointMake(33.03, 42.25)]; - [bezier2Path addCurveToPoint: CGPointMake(32.96, 42.33) controlPoint1: CGPointMake(33, 42.29) controlPoint2: CGPointMake(32.98, 42.31)]; - [bezier2Path addCurveToPoint: CGPointMake(32.91, 42.39) controlPoint1: CGPointMake(32.94, 42.35) controlPoint2: CGPointMake(32.92, 42.37)]; - [bezier2Path addCurveToPoint: CGPointMake(32.85, 42.44) controlPoint1: CGPointMake(32.89, 42.4) controlPoint2: CGPointMake(32.87, 42.42)]; - [bezier2Path addCurveToPoint: CGPointMake(32.8, 42.49) controlPoint1: CGPointMake(32.83, 42.46) controlPoint2: CGPointMake(32.81, 42.47)]; - [bezier2Path addCurveToPoint: CGPointMake(32.74, 42.54) controlPoint1: CGPointMake(32.78, 42.51) controlPoint2: CGPointMake(32.76, 42.53)]; - [bezier2Path addCurveToPoint: CGPointMake(32.69, 42.59) controlPoint1: CGPointMake(32.72, 42.56) controlPoint2: CGPointMake(32.7, 42.58)]; - [bezier2Path addCurveToPoint: CGPointMake(32.63, 42.64) controlPoint1: CGPointMake(32.67, 42.61) controlPoint2: CGPointMake(32.65, 42.63)]; - [bezier2Path addCurveToPoint: CGPointMake(32.58, 42.69) controlPoint1: CGPointMake(32.61, 42.66) controlPoint2: CGPointMake(32.59, 42.67)]; - [bezier2Path addCurveToPoint: CGPointMake(32.52, 42.73) controlPoint1: CGPointMake(32.56, 42.7) controlPoint2: CGPointMake(32.54, 42.72)]; - [bezier2Path addCurveToPoint: CGPointMake(32.47, 42.78) controlPoint1: CGPointMake(32.5, 42.75) controlPoint2: CGPointMake(32.48, 42.77)]; - [bezier2Path addCurveToPoint: CGPointMake(32.41, 42.82) controlPoint1: CGPointMake(32.45, 42.79) controlPoint2: CGPointMake(32.43, 42.81)]; - [bezier2Path addCurveToPoint: CGPointMake(32.36, 42.87) controlPoint1: CGPointMake(32.39, 42.84) controlPoint2: CGPointMake(32.37, 42.85)]; - [bezier2Path addCurveToPoint: CGPointMake(32.3, 42.91) controlPoint1: CGPointMake(32.34, 42.88) controlPoint2: CGPointMake(32.32, 42.89)]; - [bezier2Path addCurveToPoint: CGPointMake(32.25, 42.95) controlPoint1: CGPointMake(32.28, 42.92) controlPoint2: CGPointMake(32.27, 42.94)]; - [bezier2Path addCurveToPoint: CGPointMake(32.19, 42.99) controlPoint1: CGPointMake(32.23, 42.96) controlPoint2: CGPointMake(32.21, 42.98)]; - [bezier2Path addCurveToPoint: CGPointMake(32.14, 43.03) controlPoint1: CGPointMake(32.17, 43) controlPoint2: CGPointMake(32.16, 43.01)]; - [bezier2Path addCurveToPoint: CGPointMake(32.08, 43.06) controlPoint1: CGPointMake(32.12, 43.04) controlPoint2: CGPointMake(32.1, 43.05)]; - [bezier2Path addCurveToPoint: CGPointMake(32.03, 43.1) controlPoint1: CGPointMake(32.06, 43.08) controlPoint2: CGPointMake(32.05, 43.09)]; - [bezier2Path addCurveToPoint: CGPointMake(31.97, 43.14) controlPoint1: CGPointMake(32.01, 43.11) controlPoint2: CGPointMake(31.99, 43.13)]; - [bezier2Path addCurveToPoint: CGPointMake(31.92, 43.17) controlPoint1: CGPointMake(31.95, 43.15) controlPoint2: CGPointMake(31.94, 43.16)]; - [bezier2Path addCurveToPoint: CGPointMake(31.86, 43.21) controlPoint1: CGPointMake(31.9, 43.18) controlPoint2: CGPointMake(31.88, 43.2)]; - [bezier2Path addCurveToPoint: CGPointMake(31.81, 43.24) controlPoint1: CGPointMake(31.84, 43.22) controlPoint2: CGPointMake(31.83, 43.23)]; - [bezier2Path addCurveToPoint: CGPointMake(31.75, 43.27) controlPoint1: CGPointMake(31.79, 43.25) controlPoint2: CGPointMake(31.77, 43.26)]; - [bezier2Path addCurveToPoint: CGPointMake(31.7, 43.3) controlPoint1: CGPointMake(31.73, 43.28) controlPoint2: CGPointMake(31.72, 43.29)]; - [bezier2Path addCurveToPoint: CGPointMake(31.64, 43.33) controlPoint1: CGPointMake(31.68, 43.31) controlPoint2: CGPointMake(31.66, 43.32)]; - [bezier2Path addCurveToPoint: CGPointMake(31.59, 43.36) controlPoint1: CGPointMake(31.63, 43.34) controlPoint2: CGPointMake(31.61, 43.35)]; - [bezier2Path addCurveToPoint: CGPointMake(31.53, 43.39) controlPoint1: CGPointMake(31.57, 43.37) controlPoint2: CGPointMake(31.55, 43.38)]; - [bezier2Path addLineToPoint: CGPointMake(31.48, 43.42)]; - [bezier2Path addCurveToPoint: CGPointMake(31.42, 43.45) controlPoint1: CGPointMake(31.46, 43.43) controlPoint2: CGPointMake(31.44, 43.44)]; - [bezier2Path addCurveToPoint: CGPointMake(31.37, 43.48) controlPoint1: CGPointMake(31.41, 43.46) controlPoint2: CGPointMake(31.39, 43.47)]; - [bezier2Path addCurveToPoint: CGPointMake(31.31, 43.5) controlPoint1: CGPointMake(31.35, 43.49) controlPoint2: CGPointMake(31.33, 43.5)]; - [bezier2Path addCurveToPoint: CGPointMake(31.26, 43.53) controlPoint1: CGPointMake(31.3, 43.51) controlPoint2: CGPointMake(31.28, 43.52)]; - [bezier2Path addCurveToPoint: CGPointMake(31.2, 43.55) controlPoint1: CGPointMake(31.24, 43.54) controlPoint2: CGPointMake(31.22, 43.55)]; - [bezier2Path addCurveToPoint: CGPointMake(31.15, 43.58) controlPoint1: CGPointMake(31.19, 43.56) controlPoint2: CGPointMake(31.17, 43.57)]; - [bezier2Path addLineToPoint: CGPointMake(31.09, 43.6)]; - [bezier2Path addLineToPoint: CGPointMake(31.04, 43.62)]; - [bezier2Path addCurveToPoint: CGPointMake(30.99, 43.65) controlPoint1: CGPointMake(31.02, 43.63) controlPoint2: CGPointMake(31, 43.64)]; - [bezier2Path addCurveToPoint: CGPointMake(30.93, 43.67) controlPoint1: CGPointMake(30.97, 43.65) controlPoint2: CGPointMake(30.95, 43.66)]; - [bezier2Path addCurveToPoint: CGPointMake(30.88, 43.69) controlPoint1: CGPointMake(30.91, 43.68) controlPoint2: CGPointMake(30.89, 43.68)]; - [bezier2Path addCurveToPoint: CGPointMake(30.82, 43.71) controlPoint1: CGPointMake(30.86, 43.7) controlPoint2: CGPointMake(30.84, 43.7)]; - [bezier2Path addCurveToPoint: CGPointMake(30.77, 43.73) controlPoint1: CGPointMake(30.8, 43.72) controlPoint2: CGPointMake(30.78, 43.72)]; - [bezier2Path addLineToPoint: CGPointMake(30.71, 43.75)]; - [bezier2Path addLineToPoint: CGPointMake(30.66, 43.77)]; - [bezier2Path addCurveToPoint: CGPointMake(30.6, 43.78) controlPoint1: CGPointMake(30.64, 43.77) controlPoint2: CGPointMake(30.62, 43.78)]; - [bezier2Path addCurveToPoint: CGPointMake(30.55, 43.8) controlPoint1: CGPointMake(30.58, 43.79) controlPoint2: CGPointMake(30.56, 43.8)]; - [bezier2Path addCurveToPoint: CGPointMake(30.49, 43.82) controlPoint1: CGPointMake(30.53, 43.81) controlPoint2: CGPointMake(30.51, 43.81)]; - [bezier2Path addLineToPoint: CGPointMake(30.44, 43.83)]; - [bezier2Path addLineToPoint: CGPointMake(30.38, 43.85)]; - [bezier2Path addCurveToPoint: CGPointMake(30.33, 43.86) controlPoint1: CGPointMake(30.36, 43.85) controlPoint2: CGPointMake(30.35, 43.86)]; - [bezier2Path addCurveToPoint: CGPointMake(30.27, 43.88) controlPoint1: CGPointMake(30.31, 43.87) controlPoint2: CGPointMake(30.29, 43.87)]; - [bezier2Path addCurveToPoint: CGPointMake(30.22, 43.89) controlPoint1: CGPointMake(30.25, 43.88) controlPoint2: CGPointMake(30.24, 43.89)]; - [bezier2Path addCurveToPoint: CGPointMake(30.16, 43.9) controlPoint1: CGPointMake(30.2, 43.9) controlPoint2: CGPointMake(30.18, 43.9)]; - [bezier2Path addLineToPoint: CGPointMake(30.11, 43.92)]; - [bezier2Path addLineToPoint: CGPointMake(30.05, 43.93)]; - [bezier2Path addCurveToPoint: CGPointMake(30, 43.94) controlPoint1: CGPointMake(30.03, 43.93) controlPoint2: CGPointMake(30.02, 43.94)]; - [bezier2Path addCurveToPoint: CGPointMake(29.94, 43.95) controlPoint1: CGPointMake(29.98, 43.94) controlPoint2: CGPointMake(29.96, 43.95)]; - [bezier2Path addCurveToPoint: CGPointMake(29.89, 43.96) controlPoint1: CGPointMake(29.92, 43.95) controlPoint2: CGPointMake(29.91, 43.96)]; - [bezier2Path addLineToPoint: CGPointMake(29.83, 43.97)]; - [bezier2Path addCurveToPoint: CGPointMake(29.78, 43.98) controlPoint1: CGPointMake(29.82, 43.97) controlPoint2: CGPointMake(29.8, 43.98)]; - [bezier2Path addCurveToPoint: CGPointMake(29.72, 43.99) controlPoint1: CGPointMake(29.76, 43.98) controlPoint2: CGPointMake(29.74, 43.99)]; - [bezier2Path addCurveToPoint: CGPointMake(29.67, 44) controlPoint1: CGPointMake(29.71, 43.99) controlPoint2: CGPointMake(29.69, 43.99)]; - [bezier2Path addLineToPoint: CGPointMake(29.61, 44)]; - [bezier2Path addCurveToPoint: CGPointMake(29.56, 44.01) controlPoint1: CGPointMake(29.6, 44.01) controlPoint2: CGPointMake(29.58, 44.01)]; - [bezier2Path addCurveToPoint: CGPointMake(29.5, 44.02) controlPoint1: CGPointMake(29.54, 44.01) controlPoint2: CGPointMake(29.52, 44.01)]; - [bezier2Path addCurveToPoint: CGPointMake(29.45, 44.02) controlPoint1: CGPointMake(29.49, 44.02) controlPoint2: CGPointMake(29.47, 44.02)]; - [bezier2Path addCurveToPoint: CGPointMake(29.39, 44.03) controlPoint1: CGPointMake(29.43, 44.02) controlPoint2: CGPointMake(29.41, 44.03)]; - [bezier2Path addLineToPoint: CGPointMake(29.34, 44.03)]; - [bezier2Path addCurveToPoint: CGPointMake(29.28, 44.04) controlPoint1: CGPointMake(29.32, 44.03) controlPoint2: CGPointMake(29.3, 44.04)]; - [bezier2Path addCurveToPoint: CGPointMake(29.23, 44.04) controlPoint1: CGPointMake(29.27, 44.04) controlPoint2: CGPointMake(29.25, 44.04)]; - [bezier2Path addLineToPoint: CGPointMake(29.18, 44.04)]; - [bezier2Path addLineToPoint: CGPointMake(29.12, 44.05)]; - [bezier2Path addCurveToPoint: CGPointMake(29.07, 44.05) controlPoint1: CGPointMake(29.1, 44.05) controlPoint2: CGPointMake(29.08, 44.05)]; - [bezier2Path addCurveToPoint: CGPointMake(29.01, 44.05) controlPoint1: CGPointMake(29.05, 44.05) controlPoint2: CGPointMake(29.03, 44.05)]; - [bezier2Path addCurveToPoint: CGPointMake(28.96, 44.05) controlPoint1: CGPointMake(28.99, 44.05) controlPoint2: CGPointMake(28.97, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(28.9, 44.05)]; - [bezier2Path addCurveToPoint: CGPointMake(28.85, 44.05) controlPoint1: CGPointMake(28.88, 44.05) controlPoint2: CGPointMake(28.87, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(28.85, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(28.79, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(28.74, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(28.68, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(28.63, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(28.57, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(28.52, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(28.46, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(28.41, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(28.35, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(28.3, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(28.24, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(28.19, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(28.13, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(28.08, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(28.02, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(27.97, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(27.91, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(27.86, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(27.8, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(27.75, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(27.69, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(27.64, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(27.58, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(27.53, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(27.47, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(27.42, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(27.36, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(27.31, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(27.26, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(27.2, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(27.15, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(27.09, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(27.04, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(26.98, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(26.93, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(26.87, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(26.82, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(26.76, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(26.71, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(26.65, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(26.6, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(26.54, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(26.49, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(26.43, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(26.38, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(26.32, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(26.27, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(26.21, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(26.16, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(26.1, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(26.05, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(25.99, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(25.94, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(25.88, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(25.83, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(25.77, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(25.72, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(25.66, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(25.61, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(25.55, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(25.5, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(25.44, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(25.39, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(25.34, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(25.28, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(25.23, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(25.17, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(25.12, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(25.06, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(25.01, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(24.95, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(24.9, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(24.84, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(24.79, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(24.73, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(24.68, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(24.62, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(24.57, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(24.51, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(24.46, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(24.4, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(24.35, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(24.29, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(24.24, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(24.18, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(24.13, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(24.07, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(24.02, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(23.96, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(23.91, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(23.85, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(23.8, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(23.74, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(23.69, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(23.63, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(23.58, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(23.53, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(23.47, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(23.42, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(23.36, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(23.31, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(23.25, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(23.2, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(23.14, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(23.09, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(23.03, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(22.98, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(22.92, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(22.87, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(22.81, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(22.76, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(22.7, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(22.65, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(22.59, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(22.54, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(22.48, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(22.43, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(22.37, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(22.32, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(22.26, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(22.21, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(22.15, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(22.1, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(22.04, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(21.99, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(21.93, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(21.88, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(21.82, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(21.77, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(21.71, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(21.66, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(21.61, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(21.55, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(21.5, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(21.44, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(21.39, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(21.33, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(21.28, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(21.22, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(21.17, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(21.11, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(21.06, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(21, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(20.95, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(20.89, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(20.84, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(20.78, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(20.73, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(20.67, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(20.62, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(20.5, 44.05)]; - [bezier2Path addLineToPoint: CGPointMake(20.5, 32.27)]; - [bezier2Path addCurveToPoint: CGPointMake(20.62, 32.3) controlPoint1: CGPointMake(20.5, 32.27) controlPoint2: CGPointMake(20.54, 32.28)]; - [bezier2Path addLineToPoint: CGPointMake(20.67, 32.31)]; - [bezier2Path addLineToPoint: CGPointMake(20.73, 32.32)]; - [bezier2Path addLineToPoint: CGPointMake(20.78, 32.34)]; - [bezier2Path addLineToPoint: CGPointMake(20.84, 32.35)]; - [bezier2Path addLineToPoint: CGPointMake(20.89, 32.36)]; - [bezier2Path addLineToPoint: CGPointMake(20.95, 32.38)]; - [bezier2Path addLineToPoint: CGPointMake(21, 32.39)]; - [bezier2Path addLineToPoint: CGPointMake(21.06, 32.4)]; - [bezier2Path addLineToPoint: CGPointMake(21.11, 32.41)]; - [bezier2Path addLineToPoint: CGPointMake(21.17, 32.42)]; - [bezier2Path addLineToPoint: CGPointMake(21.22, 32.43)]; - [bezier2Path addLineToPoint: CGPointMake(21.28, 32.45)]; - [bezier2Path addLineToPoint: CGPointMake(21.33, 32.46)]; - [bezier2Path addLineToPoint: CGPointMake(21.39, 32.47)]; - [bezier2Path addLineToPoint: CGPointMake(21.44, 32.48)]; - [bezier2Path addLineToPoint: CGPointMake(21.5, 32.49)]; - [bezier2Path addLineToPoint: CGPointMake(21.55, 32.5)]; - [bezier2Path addLineToPoint: CGPointMake(21.61, 32.51)]; - [bezier2Path addLineToPoint: CGPointMake(21.66, 32.52)]; - [bezier2Path addLineToPoint: CGPointMake(21.71, 32.53)]; - [bezier2Path addLineToPoint: CGPointMake(21.77, 32.54)]; - [bezier2Path addLineToPoint: CGPointMake(21.82, 32.55)]; - [bezier2Path addLineToPoint: CGPointMake(21.88, 32.56)]; - [bezier2Path addLineToPoint: CGPointMake(21.93, 32.57)]; - [bezier2Path addLineToPoint: CGPointMake(21.99, 32.58)]; - [bezier2Path addLineToPoint: CGPointMake(22.04, 32.59)]; - [bezier2Path addLineToPoint: CGPointMake(22.1, 32.6)]; - [bezier2Path addLineToPoint: CGPointMake(22.15, 32.61)]; - [bezier2Path addLineToPoint: CGPointMake(22.21, 32.62)]; - [bezier2Path addLineToPoint: CGPointMake(22.26, 32.63)]; - [bezier2Path addLineToPoint: CGPointMake(22.32, 32.64)]; - [bezier2Path addLineToPoint: CGPointMake(22.37, 32.64)]; - [bezier2Path addLineToPoint: CGPointMake(22.43, 32.65)]; - [bezier2Path addLineToPoint: CGPointMake(22.48, 32.66)]; - [bezier2Path addLineToPoint: CGPointMake(22.54, 32.67)]; - [bezier2Path addLineToPoint: CGPointMake(22.59, 32.68)]; - [bezier2Path addLineToPoint: CGPointMake(22.65, 32.69)]; - [bezier2Path addLineToPoint: CGPointMake(22.7, 32.69)]; - [bezier2Path addLineToPoint: CGPointMake(22.76, 32.7)]; - [bezier2Path addLineToPoint: CGPointMake(22.81, 32.71)]; - [bezier2Path addLineToPoint: CGPointMake(22.87, 32.72)]; - [bezier2Path addLineToPoint: CGPointMake(22.92, 32.73)]; - [bezier2Path addLineToPoint: CGPointMake(22.98, 32.73)]; - [bezier2Path addLineToPoint: CGPointMake(23.03, 32.74)]; - [bezier2Path addLineToPoint: CGPointMake(23.09, 32.75)]; - [bezier2Path addLineToPoint: CGPointMake(23.14, 32.75)]; - [bezier2Path addLineToPoint: CGPointMake(23.2, 32.76)]; - [bezier2Path addLineToPoint: CGPointMake(23.25, 32.77)]; - [bezier2Path addLineToPoint: CGPointMake(23.31, 32.77)]; - [bezier2Path addLineToPoint: CGPointMake(23.36, 32.78)]; - [bezier2Path addLineToPoint: CGPointMake(23.42, 32.79)]; - [bezier2Path addLineToPoint: CGPointMake(23.47, 32.79)]; - [bezier2Path addLineToPoint: CGPointMake(23.53, 32.8)]; - [bezier2Path addLineToPoint: CGPointMake(23.58, 32.81)]; - [bezier2Path addLineToPoint: CGPointMake(23.63, 32.81)]; - [bezier2Path addLineToPoint: CGPointMake(23.69, 32.82)]; - [bezier2Path addLineToPoint: CGPointMake(23.74, 32.82)]; - [bezier2Path addLineToPoint: CGPointMake(23.8, 32.83)]; - [bezier2Path addLineToPoint: CGPointMake(23.85, 32.84)]; - [bezier2Path addLineToPoint: CGPointMake(23.91, 32.84)]; - [bezier2Path addLineToPoint: CGPointMake(23.96, 32.85)]; - [bezier2Path addLineToPoint: CGPointMake(24.02, 32.85)]; - [bezier2Path addLineToPoint: CGPointMake(24.07, 32.86)]; - [bezier2Path addLineToPoint: CGPointMake(24.13, 32.86)]; - [bezier2Path addLineToPoint: CGPointMake(24.18, 32.87)]; - [bezier2Path addLineToPoint: CGPointMake(24.24, 32.87)]; - [bezier2Path addLineToPoint: CGPointMake(24.29, 32.88)]; - [bezier2Path addLineToPoint: CGPointMake(24.35, 32.88)]; - [bezier2Path addLineToPoint: CGPointMake(24.4, 32.88)]; - [bezier2Path addLineToPoint: CGPointMake(24.46, 32.89)]; - [bezier2Path addLineToPoint: CGPointMake(24.51, 32.89)]; - [bezier2Path addLineToPoint: CGPointMake(24.57, 32.9)]; - [bezier2Path addLineToPoint: CGPointMake(24.62, 32.9)]; - [bezier2Path addLineToPoint: CGPointMake(24.68, 32.9)]; - [bezier2Path addLineToPoint: CGPointMake(24.73, 32.91)]; - [bezier2Path addLineToPoint: CGPointMake(24.79, 32.91)]; - [bezier2Path addLineToPoint: CGPointMake(24.84, 32.92)]; - [bezier2Path addLineToPoint: CGPointMake(24.9, 32.92)]; - [bezier2Path addLineToPoint: CGPointMake(24.95, 32.92)]; - [bezier2Path addLineToPoint: CGPointMake(25.01, 32.93)]; - [bezier2Path addLineToPoint: CGPointMake(25.06, 32.93)]; - [bezier2Path addLineToPoint: CGPointMake(25.12, 32.93)]; - [bezier2Path addLineToPoint: CGPointMake(25.17, 32.93)]; - [bezier2Path addLineToPoint: CGPointMake(25.23, 32.94)]; - [bezier2Path addLineToPoint: CGPointMake(25.28, 32.94)]; - [bezier2Path addLineToPoint: CGPointMake(25.34, 32.94)]; - [bezier2Path addLineToPoint: CGPointMake(25.39, 32.94)]; - [bezier2Path addLineToPoint: CGPointMake(25.44, 32.95)]; - [bezier2Path addLineToPoint: CGPointMake(25.5, 32.95)]; - [bezier2Path addLineToPoint: CGPointMake(25.55, 32.95)]; - [bezier2Path addLineToPoint: CGPointMake(25.61, 32.95)]; - [bezier2Path addLineToPoint: CGPointMake(25.66, 32.95)]; - [bezier2Path addLineToPoint: CGPointMake(25.72, 32.95)]; - [bezier2Path addLineToPoint: CGPointMake(25.77, 32.96)]; - [bezier2Path addLineToPoint: CGPointMake(25.83, 32.96)]; - [bezier2Path addLineToPoint: CGPointMake(25.88, 32.96)]; - [bezier2Path addLineToPoint: CGPointMake(25.94, 32.96)]; - [bezier2Path addLineToPoint: CGPointMake(25.99, 32.96)]; - [bezier2Path addLineToPoint: CGPointMake(26.05, 32.96)]; - [bezier2Path addLineToPoint: CGPointMake(26.1, 32.96)]; - [bezier2Path addLineToPoint: CGPointMake(26.16, 32.96)]; - [bezier2Path addLineToPoint: CGPointMake(26.21, 32.96)]; - [bezier2Path addLineToPoint: CGPointMake(26.27, 32.96)]; - [bezier2Path addLineToPoint: CGPointMake(26.32, 32.96)]; - [bezier2Path addLineToPoint: CGPointMake(26.34, 32.96)]; - [bezier2Path addLineToPoint: CGPointMake(26.38, 32.96)]; - [bezier2Path addLineToPoint: CGPointMake(26.43, 32.96)]; - [bezier2Path addLineToPoint: CGPointMake(26.49, 32.96)]; - [bezier2Path addLineToPoint: CGPointMake(26.54, 32.96)]; - [bezier2Path addLineToPoint: CGPointMake(26.6, 32.96)]; - [bezier2Path addLineToPoint: CGPointMake(26.65, 32.96)]; - [bezier2Path addLineToPoint: CGPointMake(26.71, 32.96)]; - [bezier2Path addLineToPoint: CGPointMake(26.76, 32.96)]; - [bezier2Path addLineToPoint: CGPointMake(26.82, 32.96)]; - [bezier2Path addLineToPoint: CGPointMake(26.87, 32.96)]; - [bezier2Path addLineToPoint: CGPointMake(26.93, 32.95)]; - [bezier2Path addLineToPoint: CGPointMake(26.98, 32.95)]; - [bezier2Path addLineToPoint: CGPointMake(27.04, 32.95)]; - [bezier2Path addLineToPoint: CGPointMake(27.09, 32.95)]; - [bezier2Path addLineToPoint: CGPointMake(27.15, 32.95)]; - [bezier2Path addLineToPoint: CGPointMake(27.2, 32.94)]; - [bezier2Path addLineToPoint: CGPointMake(27.26, 32.94)]; - [bezier2Path addLineToPoint: CGPointMake(27.31, 32.94)]; - [bezier2Path addLineToPoint: CGPointMake(27.36, 32.94)]; - [bezier2Path addLineToPoint: CGPointMake(27.42, 32.93)]; - [bezier2Path addLineToPoint: CGPointMake(27.47, 32.93)]; - [bezier2Path addLineToPoint: CGPointMake(27.53, 32.93)]; - [bezier2Path addLineToPoint: CGPointMake(27.58, 32.92)]; - [bezier2Path addLineToPoint: CGPointMake(27.64, 32.92)]; - [bezier2Path addLineToPoint: CGPointMake(27.69, 32.92)]; - [bezier2Path addLineToPoint: CGPointMake(27.75, 32.91)]; - [bezier2Path addLineToPoint: CGPointMake(27.8, 32.91)]; - [bezier2Path addLineToPoint: CGPointMake(27.86, 32.9)]; - [bezier2Path addLineToPoint: CGPointMake(27.91, 32.9)]; - [bezier2Path addLineToPoint: CGPointMake(27.97, 32.89)]; - [bezier2Path addLineToPoint: CGPointMake(28.02, 32.89)]; - [bezier2Path addLineToPoint: CGPointMake(28.08, 32.88)]; - [bezier2Path addLineToPoint: CGPointMake(28.13, 32.88)]; - [bezier2Path addLineToPoint: CGPointMake(28.19, 32.87)]; - [bezier2Path addLineToPoint: CGPointMake(28.24, 32.87)]; - [bezier2Path addLineToPoint: CGPointMake(28.3, 32.86)]; - [bezier2Path addLineToPoint: CGPointMake(28.35, 32.85)]; - [bezier2Path addLineToPoint: CGPointMake(28.41, 32.85)]; - [bezier2Path addLineToPoint: CGPointMake(28.46, 32.84)]; - [bezier2Path addLineToPoint: CGPointMake(28.52, 32.83)]; - [bezier2Path addLineToPoint: CGPointMake(28.57, 32.83)]; - [bezier2Path addLineToPoint: CGPointMake(28.63, 32.82)]; - [bezier2Path addCurveToPoint: CGPointMake(28.68, 32.81) controlPoint1: CGPointMake(28.64, 32.82) controlPoint2: CGPointMake(28.66, 32.81)]; - [bezier2Path addLineToPoint: CGPointMake(28.74, 32.8)]; - [bezier2Path addLineToPoint: CGPointMake(28.79, 32.79)]; - [bezier2Path addLineToPoint: CGPointMake(28.85, 32.79)]; - [bezier2Path addCurveToPoint: CGPointMake(28.9, 32.78) controlPoint1: CGPointMake(28.86, 32.78) controlPoint2: CGPointMake(28.88, 32.78)]; - [bezier2Path addLineToPoint: CGPointMake(28.96, 32.77)]; - [bezier2Path addCurveToPoint: CGPointMake(29.01, 32.76) controlPoint1: CGPointMake(28.97, 32.76) controlPoint2: CGPointMake(28.99, 32.76)]; - [bezier2Path addCurveToPoint: CGPointMake(29.07, 32.75) controlPoint1: CGPointMake(29.03, 32.76) controlPoint2: CGPointMake(29.05, 32.75)]; - [bezier2Path addLineToPoint: CGPointMake(29.12, 32.74)]; - [bezier2Path addLineToPoint: CGPointMake(29.18, 32.73)]; - [bezier2Path addLineToPoint: CGPointMake(29.23, 32.72)]; - [bezier2Path addCurveToPoint: CGPointMake(29.28, 32.71) controlPoint1: CGPointMake(29.25, 32.71) controlPoint2: CGPointMake(29.27, 32.71)]; - [bezier2Path addLineToPoint: CGPointMake(29.34, 32.7)]; - [bezier2Path addLineToPoint: CGPointMake(29.39, 32.68)]; - [bezier2Path addCurveToPoint: CGPointMake(29.45, 32.67) controlPoint1: CGPointMake(29.41, 32.68) controlPoint2: CGPointMake(29.43, 32.68)]; - [bezier2Path addLineToPoint: CGPointMake(29.5, 32.66)]; - [bezier2Path addCurveToPoint: CGPointMake(29.56, 32.65) controlPoint1: CGPointMake(29.52, 32.66) controlPoint2: CGPointMake(29.54, 32.65)]; - [bezier2Path addCurveToPoint: CGPointMake(29.61, 32.63) controlPoint1: CGPointMake(29.58, 32.64) controlPoint2: CGPointMake(29.6, 32.64)]; - [bezier2Path addLineToPoint: CGPointMake(29.67, 32.62)]; - [bezier2Path addCurveToPoint: CGPointMake(29.72, 32.61) controlPoint1: CGPointMake(29.69, 32.62) controlPoint2: CGPointMake(29.71, 32.61)]; - [bezier2Path addCurveToPoint: CGPointMake(29.78, 32.59) controlPoint1: CGPointMake(29.74, 32.6) controlPoint2: CGPointMake(29.76, 32.6)]; - [bezier2Path addLineToPoint: CGPointMake(29.83, 32.58)]; - [bezier2Path addCurveToPoint: CGPointMake(29.89, 32.57) controlPoint1: CGPointMake(29.85, 32.58) controlPoint2: CGPointMake(29.87, 32.57)]; - [bezier2Path addCurveToPoint: CGPointMake(29.94, 32.55) controlPoint1: CGPointMake(29.91, 32.56) controlPoint2: CGPointMake(29.92, 32.56)]; - [bezier2Path addLineToPoint: CGPointMake(30, 32.53)]; - [bezier2Path addCurveToPoint: CGPointMake(30.05, 32.52) controlPoint1: CGPointMake(30.02, 32.53) controlPoint2: CGPointMake(30.03, 32.52)]; - [bezier2Path addLineToPoint: CGPointMake(30.11, 32.5)]; - [bezier2Path addLineToPoint: CGPointMake(30.16, 32.49)]; - [bezier2Path addCurveToPoint: CGPointMake(30.22, 32.47) controlPoint1: CGPointMake(30.18, 32.48) controlPoint2: CGPointMake(30.2, 32.47)]; - [bezier2Path addLineToPoint: CGPointMake(30.27, 32.45)]; - [bezier2Path addLineToPoint: CGPointMake(30.33, 32.43)]; - [bezier2Path addCurveToPoint: CGPointMake(30.38, 32.41) controlPoint1: CGPointMake(30.35, 32.43) controlPoint2: CGPointMake(30.36, 32.42)]; - [bezier2Path addCurveToPoint: CGPointMake(30.44, 32.39) controlPoint1: CGPointMake(30.4, 32.41) controlPoint2: CGPointMake(30.42, 32.4)]; - [bezier2Path addLineToPoint: CGPointMake(30.49, 32.37)]; - [bezier2Path addCurveToPoint: CGPointMake(30.55, 32.35) controlPoint1: CGPointMake(30.51, 32.37) controlPoint2: CGPointMake(30.53, 32.36)]; - [bezier2Path addCurveToPoint: CGPointMake(30.6, 32.33) controlPoint1: CGPointMake(30.56, 32.35) controlPoint2: CGPointMake(30.58, 32.34)]; - [bezier2Path addCurveToPoint: CGPointMake(30.66, 32.31) controlPoint1: CGPointMake(30.62, 32.33) controlPoint2: CGPointMake(30.64, 32.32)]; - [bezier2Path addLineToPoint: CGPointMake(30.71, 32.29)]; - [bezier2Path addLineToPoint: CGPointMake(30.77, 32.27)]; - [bezier2Path addCurveToPoint: CGPointMake(30.82, 32.25) controlPoint1: CGPointMake(30.78, 32.26) controlPoint2: CGPointMake(30.8, 32.25)]; - [bezier2Path addCurveToPoint: CGPointMake(30.88, 32.22) controlPoint1: CGPointMake(30.84, 32.24) controlPoint2: CGPointMake(30.86, 32.23)]; - [bezier2Path addLineToPoint: CGPointMake(30.93, 32.2)]; - [bezier2Path addLineToPoint: CGPointMake(30.99, 32.17)]; - [bezier2Path addCurveToPoint: CGPointMake(31.04, 32.15) controlPoint1: CGPointMake(31, 32.16) controlPoint2: CGPointMake(31.02, 32.15)]; - [bezier2Path addCurveToPoint: CGPointMake(31.09, 32.12) controlPoint1: CGPointMake(31.06, 32.14) controlPoint2: CGPointMake(31.08, 32.13)]; - [bezier2Path addCurveToPoint: CGPointMake(31.15, 32.09) controlPoint1: CGPointMake(31.11, 32.11) controlPoint2: CGPointMake(31.13, 32.1)]; - [bezier2Path addCurveToPoint: CGPointMake(31.2, 32.06) controlPoint1: CGPointMake(31.17, 32.08) controlPoint2: CGPointMake(31.19, 32.07)]; - [bezier2Path addCurveToPoint: CGPointMake(31.26, 32.04) controlPoint1: CGPointMake(31.22, 32.06) controlPoint2: CGPointMake(31.24, 32.05)]; - [bezier2Path addCurveToPoint: CGPointMake(31.31, 32.01) controlPoint1: CGPointMake(31.28, 32.03) controlPoint2: CGPointMake(31.3, 32.02)]; - [bezier2Path addCurveToPoint: CGPointMake(31.37, 31.98) controlPoint1: CGPointMake(31.33, 32) controlPoint2: CGPointMake(31.35, 31.99)]; - [bezier2Path addCurveToPoint: CGPointMake(31.42, 31.94) controlPoint1: CGPointMake(31.39, 31.97) controlPoint2: CGPointMake(31.41, 31.95)]; - [bezier2Path addCurveToPoint: CGPointMake(31.48, 31.91) controlPoint1: CGPointMake(31.44, 31.93) controlPoint2: CGPointMake(31.46, 31.92)]; - [bezier2Path addCurveToPoint: CGPointMake(31.53, 31.88) controlPoint1: CGPointMake(31.5, 31.9) controlPoint2: CGPointMake(31.52, 31.89)]; - [bezier2Path addCurveToPoint: CGPointMake(31.59, 31.84) controlPoint1: CGPointMake(31.55, 31.87) controlPoint2: CGPointMake(31.57, 31.86)]; - [bezier2Path addCurveToPoint: CGPointMake(31.64, 31.81) controlPoint1: CGPointMake(31.61, 31.83) controlPoint2: CGPointMake(31.63, 31.82)]; - [bezier2Path addCurveToPoint: CGPointMake(31.7, 31.77) controlPoint1: CGPointMake(31.66, 31.8) controlPoint2: CGPointMake(31.68, 31.78)]; - [bezier2Path addCurveToPoint: CGPointMake(31.75, 31.73) controlPoint1: CGPointMake(31.72, 31.76) controlPoint2: CGPointMake(31.73, 31.75)]; - [bezier2Path addCurveToPoint: CGPointMake(31.81, 31.69) controlPoint1: CGPointMake(31.77, 31.72) controlPoint2: CGPointMake(31.79, 31.71)]; - [bezier2Path addCurveToPoint: CGPointMake(31.86, 31.65) controlPoint1: CGPointMake(31.83, 31.68) controlPoint2: CGPointMake(31.84, 31.67)]; - [bezier2Path addCurveToPoint: CGPointMake(31.92, 31.61) controlPoint1: CGPointMake(31.88, 31.64) controlPoint2: CGPointMake(31.9, 31.63)]; - [bezier2Path addCurveToPoint: CGPointMake(31.97, 31.57) controlPoint1: CGPointMake(31.94, 31.6) controlPoint2: CGPointMake(31.95, 31.58)]; - [bezier2Path addCurveToPoint: CGPointMake(32.03, 31.52) controlPoint1: CGPointMake(31.99, 31.55) controlPoint2: CGPointMake(32.01, 31.54)]; - [bezier2Path addCurveToPoint: CGPointMake(32.08, 31.48) controlPoint1: CGPointMake(32.05, 31.51) controlPoint2: CGPointMake(32.06, 31.49)]; - [bezier2Path addCurveToPoint: CGPointMake(32.14, 31.43) controlPoint1: CGPointMake(32.1, 31.46) controlPoint2: CGPointMake(32.12, 31.44)]; - [bezier2Path addCurveToPoint: CGPointMake(32.19, 31.38) controlPoint1: CGPointMake(32.16, 31.41) controlPoint2: CGPointMake(32.17, 31.4)]; - [bezier2Path addCurveToPoint: CGPointMake(32.25, 31.33) controlPoint1: CGPointMake(32.21, 31.36) controlPoint2: CGPointMake(32.23, 31.34)]; - [bezier2Path addCurveToPoint: CGPointMake(32.3, 31.27) controlPoint1: CGPointMake(32.27, 31.31) controlPoint2: CGPointMake(32.28, 31.29)]; - [bezier2Path addCurveToPoint: CGPointMake(32.36, 31.21) controlPoint1: CGPointMake(32.32, 31.25) controlPoint2: CGPointMake(32.34, 31.23)]; - [bezier2Path addCurveToPoint: CGPointMake(32.41, 31.15) controlPoint1: CGPointMake(32.38, 31.19) controlPoint2: CGPointMake(32.39, 31.17)]; - [bezier2Path addCurveToPoint: CGPointMake(32.47, 31.09) controlPoint1: CGPointMake(32.43, 31.13) controlPoint2: CGPointMake(32.45, 31.11)]; - [bezier2Path addCurveToPoint: CGPointMake(32.52, 31.03) controlPoint1: CGPointMake(32.48, 31.07) controlPoint2: CGPointMake(32.5, 31.05)]; - [bezier2Path addCurveToPoint: CGPointMake(32.58, 30.96) controlPoint1: CGPointMake(32.54, 31) controlPoint2: CGPointMake(32.56, 30.98)]; - [bezier2Path addCurveToPoint: CGPointMake(32.63, 30.89) controlPoint1: CGPointMake(32.59, 30.94) controlPoint2: CGPointMake(32.61, 30.91)]; - [bezier2Path addCurveToPoint: CGPointMake(32.69, 30.81) controlPoint1: CGPointMake(32.65, 30.86) controlPoint2: CGPointMake(32.67, 30.84)]; - [bezier2Path addCurveToPoint: CGPointMake(32.74, 30.73) controlPoint1: CGPointMake(32.7, 30.78) controlPoint2: CGPointMake(32.72, 30.76)]; - [bezier2Path addCurveToPoint: CGPointMake(32.8, 30.64) controlPoint1: CGPointMake(32.76, 30.7) controlPoint2: CGPointMake(32.78, 30.67)]; - [bezier2Path addCurveToPoint: CGPointMake(32.85, 30.55) controlPoint1: CGPointMake(32.81, 30.61) controlPoint2: CGPointMake(32.83, 30.58)]; - [bezier2Path addCurveToPoint: CGPointMake(32.91, 30.45) controlPoint1: CGPointMake(32.87, 30.52) controlPoint2: CGPointMake(32.89, 30.49)]; - [bezier2Path addCurveToPoint: CGPointMake(32.96, 30.34) controlPoint1: CGPointMake(32.92, 30.42) controlPoint2: CGPointMake(32.94, 30.38)]; - [bezier2Path addCurveToPoint: CGPointMake(33.01, 30.23) controlPoint1: CGPointMake(32.98, 30.31) controlPoint2: CGPointMake(33, 30.27)]; - [bezier2Path addCurveToPoint: CGPointMake(33.07, 30.1) controlPoint1: CGPointMake(33.03, 30.18) controlPoint2: CGPointMake(33.05, 30.14)]; - [bezier2Path addCurveToPoint: CGPointMake(33.12, 29.95) controlPoint1: CGPointMake(33.09, 30.05) controlPoint2: CGPointMake(33.11, 30)]; - [bezier2Path addCurveToPoint: CGPointMake(33.18, 29.78) controlPoint1: CGPointMake(33.14, 29.9) controlPoint2: CGPointMake(33.16, 29.84)]; - [bezier2Path addCurveToPoint: CGPointMake(33.23, 29.58) controlPoint1: CGPointMake(33.2, 29.72) controlPoint2: CGPointMake(33.22, 29.65)]; - [bezier2Path addCurveToPoint: CGPointMake(33.29, 29.33) controlPoint1: CGPointMake(33.25, 29.5) controlPoint2: CGPointMake(33.27, 29.42)]; - [bezier2Path addCurveToPoint: CGPointMake(33.34, 28.94) controlPoint1: CGPointMake(33.31, 29.2) controlPoint2: CGPointMake(33.33, 29.08)]; - [bezier2Path addCurveToPoint: CGPointMake(33.37, 28.39) controlPoint1: CGPointMake(33.36, 28.76) controlPoint2: CGPointMake(33.37, 28.58)]; - [bezier2Path addLineToPoint: CGPointMake(33.37, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(33.34, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(33.29, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(33.23, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(33.18, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(33.12, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(33.07, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(33.01, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(32.96, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(32.91, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(32.85, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(32.8, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(32.74, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(32.69, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(32.63, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(32.58, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(32.52, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(32.47, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(32.41, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(32.36, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(32.3, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(32.25, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(32.19, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(32.14, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(32.08, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(32.03, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(31.97, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(31.92, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(31.86, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(31.81, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(31.75, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(31.7, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(31.64, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(31.59, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(31.53, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(31.48, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(31.42, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(31.37, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(31.31, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(31.26, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(31.2, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(31.15, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(31.09, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(31.04, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(30.99, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(30.93, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(30.88, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(30.82, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(30.77, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(30.71, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(30.66, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(30.6, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(30.55, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(30.49, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(30.44, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(30.38, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(30.33, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(30.27, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(30.22, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(30.16, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(30.11, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(30.05, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(30, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(29.94, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(29.89, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(29.83, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(29.78, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(29.72, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(29.67, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(29.61, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(29.56, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(29.5, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(29.45, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(29.39, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(29.34, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(29.28, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(29.23, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(29.18, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(29.12, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(29.07, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(29.01, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(28.96, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(28.9, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(28.85, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(28.79, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(28.74, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(28.68, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(28.63, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(28.57, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(28.52, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(28.48, 21.9)]; - [bezier2Path addLineToPoint: CGPointMake(28.48, 28.39)]; - [bezier2Path addCurveToPoint: CGPointMake(28.46, 28.69) controlPoint1: CGPointMake(28.48, 28.49) controlPoint2: CGPointMake(28.47, 28.59)]; - [bezier2Path addCurveToPoint: CGPointMake(28.41, 29.05) controlPoint1: CGPointMake(28.45, 28.81) controlPoint2: CGPointMake(28.43, 28.93)]; - [bezier2Path addCurveToPoint: CGPointMake(28.35, 29.27) controlPoint1: CGPointMake(28.39, 29.13) controlPoint2: CGPointMake(28.37, 29.2)]; - [bezier2Path addCurveToPoint: CGPointMake(28.3, 29.43) controlPoint1: CGPointMake(28.34, 29.32) controlPoint2: CGPointMake(28.32, 29.38)]; - [bezier2Path addCurveToPoint: CGPointMake(28.24, 29.57) controlPoint1: CGPointMake(28.28, 29.48) controlPoint2: CGPointMake(28.26, 29.53)]; - [bezier2Path addCurveToPoint: CGPointMake(28.19, 29.69) controlPoint1: CGPointMake(28.23, 29.61) controlPoint2: CGPointMake(28.21, 29.65)]; - [bezier2Path addCurveToPoint: CGPointMake(28.13, 29.79) controlPoint1: CGPointMake(28.17, 29.72) controlPoint2: CGPointMake(28.15, 29.76)]; - [bezier2Path addCurveToPoint: CGPointMake(28.08, 29.89) controlPoint1: CGPointMake(28.12, 29.82) controlPoint2: CGPointMake(28.1, 29.86)]; - [bezier2Path addCurveToPoint: CGPointMake(28.02, 29.97) controlPoint1: CGPointMake(28.06, 29.92) controlPoint2: CGPointMake(28.04, 29.94)]; - [bezier2Path addCurveToPoint: CGPointMake(27.97, 30.05) controlPoint1: CGPointMake(28.01, 30) controlPoint2: CGPointMake(27.99, 30.02)]; - [bezier2Path addCurveToPoint: CGPointMake(27.91, 30.12) controlPoint1: CGPointMake(27.95, 30.07) controlPoint2: CGPointMake(27.93, 30.1)]; - [bezier2Path addCurveToPoint: CGPointMake(27.86, 30.19) controlPoint1: CGPointMake(27.9, 30.14) controlPoint2: CGPointMake(27.88, 30.17)]; - [bezier2Path addCurveToPoint: CGPointMake(27.8, 30.25) controlPoint1: CGPointMake(27.84, 30.21) controlPoint2: CGPointMake(27.82, 30.23)]; - [bezier2Path addCurveToPoint: CGPointMake(27.75, 30.31) controlPoint1: CGPointMake(27.79, 30.27) controlPoint2: CGPointMake(27.77, 30.29)]; - [bezier2Path addCurveToPoint: CGPointMake(27.69, 30.36) controlPoint1: CGPointMake(27.73, 30.33) controlPoint2: CGPointMake(27.71, 30.35)]; - [bezier2Path addCurveToPoint: CGPointMake(27.64, 30.41) controlPoint1: CGPointMake(27.68, 30.38) controlPoint2: CGPointMake(27.66, 30.4)]; - [bezier2Path addCurveToPoint: CGPointMake(27.58, 30.46) controlPoint1: CGPointMake(27.62, 30.43) controlPoint2: CGPointMake(27.6, 30.45)]; - [bezier2Path addCurveToPoint: CGPointMake(27.53, 30.51) controlPoint1: CGPointMake(27.57, 30.48) controlPoint2: CGPointMake(27.55, 30.49)]; - [bezier2Path addCurveToPoint: CGPointMake(27.47, 30.55) controlPoint1: CGPointMake(27.51, 30.52) controlPoint2: CGPointMake(27.49, 30.54)]; - [bezier2Path addCurveToPoint: CGPointMake(27.42, 30.59) controlPoint1: CGPointMake(27.46, 30.56) controlPoint2: CGPointMake(27.44, 30.58)]; - [bezier2Path addCurveToPoint: CGPointMake(27.36, 30.63) controlPoint1: CGPointMake(27.4, 30.6) controlPoint2: CGPointMake(27.38, 30.62)]; - [bezier2Path addCurveToPoint: CGPointMake(27.31, 30.67) controlPoint1: CGPointMake(27.35, 30.64) controlPoint2: CGPointMake(27.33, 30.65)]; - [bezier2Path addCurveToPoint: CGPointMake(27.26, 30.7) controlPoint1: CGPointMake(27.29, 30.68) controlPoint2: CGPointMake(27.27, 30.69)]; - [bezier2Path addCurveToPoint: CGPointMake(27.2, 30.73) controlPoint1: CGPointMake(27.24, 30.71) controlPoint2: CGPointMake(27.22, 30.72)]; - [bezier2Path addCurveToPoint: CGPointMake(27.15, 30.76) controlPoint1: CGPointMake(27.18, 30.74) controlPoint2: CGPointMake(27.16, 30.75)]; - [bezier2Path addCurveToPoint: CGPointMake(27.09, 30.79) controlPoint1: CGPointMake(27.13, 30.77) controlPoint2: CGPointMake(27.11, 30.78)]; - [bezier2Path addCurveToPoint: CGPointMake(27.04, 30.82) controlPoint1: CGPointMake(27.07, 30.8) controlPoint2: CGPointMake(27.05, 30.81)]; - [bezier2Path addCurveToPoint: CGPointMake(26.98, 30.85) controlPoint1: CGPointMake(27.02, 30.83) controlPoint2: CGPointMake(27, 30.84)]; - [bezier2Path addCurveToPoint: CGPointMake(26.93, 30.87) controlPoint1: CGPointMake(26.96, 30.86) controlPoint2: CGPointMake(26.94, 30.86)]; - [bezier2Path addCurveToPoint: CGPointMake(26.87, 30.9) controlPoint1: CGPointMake(26.91, 30.88) controlPoint2: CGPointMake(26.89, 30.89)]; - [bezier2Path addCurveToPoint: CGPointMake(26.82, 30.92) controlPoint1: CGPointMake(26.85, 30.9) controlPoint2: CGPointMake(26.83, 30.91)]; - [bezier2Path addCurveToPoint: CGPointMake(26.76, 30.94) controlPoint1: CGPointMake(26.8, 30.92) controlPoint2: CGPointMake(26.78, 30.93)]; - [bezier2Path addCurveToPoint: CGPointMake(26.71, 30.96) controlPoint1: CGPointMake(26.74, 30.94) controlPoint2: CGPointMake(26.73, 30.95)]; - [bezier2Path addCurveToPoint: CGPointMake(26.65, 30.98) controlPoint1: CGPointMake(26.69, 30.96) controlPoint2: CGPointMake(26.67, 30.97)]; - [bezier2Path addCurveToPoint: CGPointMake(26.6, 30.99) controlPoint1: CGPointMake(26.63, 30.98) controlPoint2: CGPointMake(26.62, 30.99)]; - [bezier2Path addCurveToPoint: CGPointMake(26.54, 31.01) controlPoint1: CGPointMake(26.58, 31) controlPoint2: CGPointMake(26.56, 31)]; - [bezier2Path addCurveToPoint: CGPointMake(26.49, 31.03) controlPoint1: CGPointMake(26.52, 31.02) controlPoint2: CGPointMake(26.51, 31.02)]; - [bezier2Path addCurveToPoint: CGPointMake(26.43, 31.04) controlPoint1: CGPointMake(26.47, 31.03) controlPoint2: CGPointMake(26.45, 31.04)]; - [bezier2Path addCurveToPoint: CGPointMake(26.38, 31.05) controlPoint1: CGPointMake(26.41, 31.04) controlPoint2: CGPointMake(26.4, 31.05)]; - [bezier2Path addCurveToPoint: CGPointMake(26.32, 31.07) controlPoint1: CGPointMake(26.36, 31.06) controlPoint2: CGPointMake(26.34, 31.06)]; - [bezier2Path addCurveToPoint: CGPointMake(26.27, 31.08) controlPoint1: CGPointMake(26.3, 31.07) controlPoint2: CGPointMake(26.29, 31.07)]; - [bezier2Path addCurveToPoint: CGPointMake(26.21, 31.09) controlPoint1: CGPointMake(26.25, 31.08) controlPoint2: CGPointMake(26.23, 31.08)]; - [bezier2Path addCurveToPoint: CGPointMake(26.16, 31.1) controlPoint1: CGPointMake(26.19, 31.09) controlPoint2: CGPointMake(26.18, 31.1)]; - [bezier2Path addCurveToPoint: CGPointMake(26.1, 31.11) controlPoint1: CGPointMake(26.14, 31.1) controlPoint2: CGPointMake(26.12, 31.1)]; - [bezier2Path addLineToPoint: CGPointMake(26.05, 31.12)]; - [bezier2Path addCurveToPoint: CGPointMake(25.99, 31.12) controlPoint1: CGPointMake(26.03, 31.12) controlPoint2: CGPointMake(26.01, 31.12)]; - [bezier2Path addCurveToPoint: CGPointMake(25.94, 31.13) controlPoint1: CGPointMake(25.98, 31.13) controlPoint2: CGPointMake(25.96, 31.13)]; - [bezier2Path addLineToPoint: CGPointMake(25.88, 31.14)]; - [bezier2Path addCurveToPoint: CGPointMake(25.83, 31.14) controlPoint1: CGPointMake(25.87, 31.14) controlPoint2: CGPointMake(25.85, 31.14)]; - [bezier2Path addCurveToPoint: CGPointMake(25.77, 31.15) controlPoint1: CGPointMake(25.81, 31.14) controlPoint2: CGPointMake(25.79, 31.14)]; - [bezier2Path addCurveToPoint: CGPointMake(25.72, 31.15) controlPoint1: CGPointMake(25.76, 31.15) controlPoint2: CGPointMake(25.74, 31.15)]; - [bezier2Path addCurveToPoint: CGPointMake(25.66, 31.15) controlPoint1: CGPointMake(25.7, 31.15) controlPoint2: CGPointMake(25.68, 31.15)]; - [bezier2Path addCurveToPoint: CGPointMake(25.61, 31.15) controlPoint1: CGPointMake(25.65, 31.15) controlPoint2: CGPointMake(25.63, 31.15)]; - [bezier2Path addCurveToPoint: CGPointMake(25.55, 31.16) controlPoint1: CGPointMake(25.59, 31.16) controlPoint2: CGPointMake(25.57, 31.16)]; - [bezier2Path addLineToPoint: CGPointMake(25.5, 31.16)]; - [bezier2Path addCurveToPoint: CGPointMake(25.44, 31.16) controlPoint1: CGPointMake(25.48, 31.16) controlPoint2: CGPointMake(25.46, 31.16)]; - [bezier2Path addLineToPoint: CGPointMake(25.42, 31.16)]; - [bezier2Path addLineToPoint: CGPointMake(25.39, 31.16)]; - [bezier2Path addLineToPoint: CGPointMake(25.34, 31.16)]; - [bezier2Path addLineToPoint: CGPointMake(25.28, 31.16)]; - [bezier2Path addLineToPoint: CGPointMake(25.23, 31.16)]; - [bezier2Path addLineToPoint: CGPointMake(25.17, 31.15)]; - [bezier2Path addLineToPoint: CGPointMake(25.12, 31.15)]; - [bezier2Path addLineToPoint: CGPointMake(25.06, 31.15)]; - [bezier2Path addLineToPoint: CGPointMake(25.01, 31.15)]; - [bezier2Path addLineToPoint: CGPointMake(24.95, 31.15)]; - [bezier2Path addLineToPoint: CGPointMake(24.9, 31.14)]; - [bezier2Path addLineToPoint: CGPointMake(24.84, 31.14)]; - [bezier2Path addLineToPoint: CGPointMake(24.79, 31.14)]; - [bezier2Path addLineToPoint: CGPointMake(24.73, 31.13)]; - [bezier2Path addLineToPoint: CGPointMake(24.68, 31.13)]; - [bezier2Path addLineToPoint: CGPointMake(24.62, 31.12)]; - [bezier2Path addLineToPoint: CGPointMake(24.57, 31.12)]; - [bezier2Path addLineToPoint: CGPointMake(24.51, 31.11)]; - [bezier2Path addLineToPoint: CGPointMake(24.46, 31.1)]; - [bezier2Path addLineToPoint: CGPointMake(24.4, 31.1)]; - [bezier2Path addLineToPoint: CGPointMake(24.35, 31.09)]; - [bezier2Path addLineToPoint: CGPointMake(24.29, 31.09)]; - [bezier2Path addLineToPoint: CGPointMake(24.24, 31.08)]; - [bezier2Path addLineToPoint: CGPointMake(24.18, 31.07)]; - [bezier2Path addLineToPoint: CGPointMake(24.13, 31.06)]; - [bezier2Path addLineToPoint: CGPointMake(24.07, 31.06)]; - [bezier2Path addLineToPoint: CGPointMake(24.02, 31.05)]; - [bezier2Path addLineToPoint: CGPointMake(23.96, 31.04)]; - [bezier2Path addLineToPoint: CGPointMake(23.91, 31.03)]; - [bezier2Path addLineToPoint: CGPointMake(23.85, 31.02)]; - [bezier2Path addLineToPoint: CGPointMake(23.8, 31.01)]; - [bezier2Path addLineToPoint: CGPointMake(23.74, 31)]; - [bezier2Path addLineToPoint: CGPointMake(23.69, 30.99)]; - [bezier2Path addLineToPoint: CGPointMake(23.63, 30.98)]; - [bezier2Path addLineToPoint: CGPointMake(23.58, 30.97)]; - [bezier2Path addLineToPoint: CGPointMake(23.53, 30.96)]; - [bezier2Path addLineToPoint: CGPointMake(23.47, 30.95)]; - [bezier2Path addLineToPoint: CGPointMake(23.42, 30.93)]; - [bezier2Path addLineToPoint: CGPointMake(23.36, 30.92)]; - [bezier2Path addLineToPoint: CGPointMake(23.31, 30.91)]; - [bezier2Path addLineToPoint: CGPointMake(23.25, 30.9)]; - [bezier2Path addLineToPoint: CGPointMake(23.2, 30.88)]; - [bezier2Path addLineToPoint: CGPointMake(23.14, 30.87)]; - [bezier2Path addLineToPoint: CGPointMake(23.09, 30.86)]; - [bezier2Path addLineToPoint: CGPointMake(23.03, 30.84)]; - [bezier2Path addLineToPoint: CGPointMake(22.98, 30.83)]; - [bezier2Path addLineToPoint: CGPointMake(22.92, 30.81)]; - [bezier2Path addLineToPoint: CGPointMake(22.87, 30.8)]; - [bezier2Path addLineToPoint: CGPointMake(22.81, 30.78)]; - [bezier2Path addLineToPoint: CGPointMake(22.76, 30.77)]; - [bezier2Path addLineToPoint: CGPointMake(22.7, 30.75)]; - [bezier2Path addLineToPoint: CGPointMake(22.65, 30.74)]; - [bezier2Path addLineToPoint: CGPointMake(22.59, 30.72)]; - [bezier2Path addLineToPoint: CGPointMake(22.54, 30.7)]; - [bezier2Path addLineToPoint: CGPointMake(22.48, 30.69)]; - [bezier2Path addLineToPoint: CGPointMake(22.43, 30.67)]; - [bezier2Path addLineToPoint: CGPointMake(22.37, 30.65)]; - [bezier2Path addLineToPoint: CGPointMake(22.32, 30.63)]; - [bezier2Path addLineToPoint: CGPointMake(22.26, 30.62)]; - [bezier2Path addLineToPoint: CGPointMake(22.21, 30.6)]; - [bezier2Path addLineToPoint: CGPointMake(22.15, 30.58)]; - [bezier2Path addLineToPoint: CGPointMake(22.1, 30.56)]; - [bezier2Path addLineToPoint: CGPointMake(22.04, 30.54)]; - [bezier2Path addLineToPoint: CGPointMake(21.99, 30.52)]; - [bezier2Path addLineToPoint: CGPointMake(21.93, 30.5)]; - [bezier2Path addLineToPoint: CGPointMake(21.88, 30.48)]; - [bezier2Path addLineToPoint: CGPointMake(21.82, 30.46)]; - [bezier2Path addLineToPoint: CGPointMake(21.77, 30.44)]; - [bezier2Path addLineToPoint: CGPointMake(21.71, 30.42)]; - [bezier2Path addLineToPoint: CGPointMake(21.66, 30.4)]; - [bezier2Path addLineToPoint: CGPointMake(21.61, 30.38)]; - [bezier2Path addLineToPoint: CGPointMake(21.55, 30.36)]; - [bezier2Path addLineToPoint: CGPointMake(21.5, 30.34)]; - [bezier2Path addLineToPoint: CGPointMake(21.44, 30.32)]; - [bezier2Path addLineToPoint: CGPointMake(21.39, 30.29)]; - [bezier2Path addLineToPoint: CGPointMake(21.33, 30.27)]; - [bezier2Path addLineToPoint: CGPointMake(21.28, 30.25)]; - [bezier2Path addLineToPoint: CGPointMake(21.22, 30.23)]; - [bezier2Path addLineToPoint: CGPointMake(21.17, 30.2)]; - [bezier2Path addLineToPoint: CGPointMake(21.11, 30.18)]; - [bezier2Path addLineToPoint: CGPointMake(21.06, 30.16)]; - [bezier2Path addLineToPoint: CGPointMake(21, 30.13)]; - [bezier2Path addLineToPoint: CGPointMake(20.95, 30.11)]; - [bezier2Path addLineToPoint: CGPointMake(20.89, 30.08)]; - [bezier2Path addLineToPoint: CGPointMake(20.84, 30.06)]; - [bezier2Path addLineToPoint: CGPointMake(20.78, 30.04)]; - [bezier2Path addLineToPoint: CGPointMake(20.73, 30.01)]; - [bezier2Path addLineToPoint: CGPointMake(20.67, 29.98)]; - [bezier2Path addLineToPoint: CGPointMake(20.62, 29.96)]; - [bezier2Path addLineToPoint: CGPointMake(20.62, 29.96)]; - [bezier2Path addLineToPoint: CGPointMake(20.62, 29.96)]; - [bezier2Path addLineToPoint: CGPointMake(20.62, 29.96)]; - [bezier2Path addLineToPoint: CGPointMake(20.62, 29.96)]; - [bezier2Path closePath]; - bezier2Path.miterLimit = 4; - - bezier2Path.usesEvenOddFillRule = YES; - - CGContextSaveGState(context); - [bezier2Path addClip]; - CGContextDrawLinearGradient(context, linearGradient2, - CGPointMake(20.5, 27.28), - CGPointMake(34.54, 27.28), - kCGGradientDrawsBeforeStartLocation | kCGGradientDrawsAfterEndLocation); - CGContextRestoreGState(context); - - - //// Bezier 3 Drawing - UIBezierPath* bezier3Path = [UIBezierPath bezierPath]; - [bezier3Path moveToPoint: CGPointMake(36.5, 23.41)]; - [bezier3Path addLineToPoint: CGPointMake(36.5, 16.09)]; - [bezier3Path addCurveToPoint: CGPointMake(36.62, 14.96) controlPoint1: CGPointMake(36.5, 15.7) controlPoint2: CGPointMake(36.54, 15.32)]; - [bezier3Path addCurveToPoint: CGPointMake(36.67, 14.72) controlPoint1: CGPointMake(36.63, 14.88) controlPoint2: CGPointMake(36.65, 14.8)]; - [bezier3Path addCurveToPoint: CGPointMake(36.73, 14.52) controlPoint1: CGPointMake(36.69, 14.66) controlPoint2: CGPointMake(36.71, 14.59)]; - [bezier3Path addCurveToPoint: CGPointMake(36.78, 14.35) controlPoint1: CGPointMake(36.74, 14.47) controlPoint2: CGPointMake(36.76, 14.41)]; - [bezier3Path addCurveToPoint: CGPointMake(36.84, 14.19) controlPoint1: CGPointMake(36.8, 14.3) controlPoint2: CGPointMake(36.82, 14.25)]; - [bezier3Path addCurveToPoint: CGPointMake(36.89, 14.05) controlPoint1: CGPointMake(36.85, 14.15) controlPoint2: CGPointMake(36.87, 14.1)]; - [bezier3Path addCurveToPoint: CGPointMake(36.95, 13.92) controlPoint1: CGPointMake(36.91, 14.01) controlPoint2: CGPointMake(36.93, 13.96)]; - [bezier3Path addCurveToPoint: CGPointMake(37, 13.79) controlPoint1: CGPointMake(36.96, 13.88) controlPoint2: CGPointMake(36.98, 13.83)]; - [bezier3Path addCurveToPoint: CGPointMake(37.06, 13.68) controlPoint1: CGPointMake(37.02, 13.76) controlPoint2: CGPointMake(37.04, 13.72)]; - [bezier3Path addCurveToPoint: CGPointMake(37.11, 13.57) controlPoint1: CGPointMake(37.07, 13.64) controlPoint2: CGPointMake(37.09, 13.61)]; - [bezier3Path addCurveToPoint: CGPointMake(37.17, 13.47) controlPoint1: CGPointMake(37.13, 13.53) controlPoint2: CGPointMake(37.15, 13.5)]; - [bezier3Path addCurveToPoint: CGPointMake(37.22, 13.37) controlPoint1: CGPointMake(37.18, 13.43) controlPoint2: CGPointMake(37.2, 13.4)]; - [bezier3Path addCurveToPoint: CGPointMake(37.28, 13.27) controlPoint1: CGPointMake(37.24, 13.34) controlPoint2: CGPointMake(37.26, 13.3)]; - [bezier3Path addCurveToPoint: CGPointMake(37.33, 13.18) controlPoint1: CGPointMake(37.29, 13.24) controlPoint2: CGPointMake(37.31, 13.21)]; - [bezier3Path addCurveToPoint: CGPointMake(37.39, 13.1) controlPoint1: CGPointMake(37.35, 13.15) controlPoint2: CGPointMake(37.37, 13.12)]; - [bezier3Path addCurveToPoint: CGPointMake(37.44, 13.01) controlPoint1: CGPointMake(37.4, 13.07) controlPoint2: CGPointMake(37.42, 13.04)]; - [bezier3Path addCurveToPoint: CGPointMake(37.5, 12.93) controlPoint1: CGPointMake(37.46, 12.99) controlPoint2: CGPointMake(37.48, 12.96)]; - [bezier3Path addCurveToPoint: CGPointMake(37.55, 12.86) controlPoint1: CGPointMake(37.51, 12.91) controlPoint2: CGPointMake(37.53, 12.88)]; - [bezier3Path addCurveToPoint: CGPointMake(37.61, 12.78) controlPoint1: CGPointMake(37.57, 12.83) controlPoint2: CGPointMake(37.59, 12.81)]; - [bezier3Path addCurveToPoint: CGPointMake(37.66, 12.71) controlPoint1: CGPointMake(37.62, 12.76) controlPoint2: CGPointMake(37.64, 12.73)]; - [bezier3Path addCurveToPoint: CGPointMake(37.71, 12.64) controlPoint1: CGPointMake(37.68, 12.69) controlPoint2: CGPointMake(37.7, 12.66)]; - [bezier3Path addCurveToPoint: CGPointMake(37.77, 12.57) controlPoint1: CGPointMake(37.73, 12.62) controlPoint2: CGPointMake(37.75, 12.59)]; - [bezier3Path addCurveToPoint: CGPointMake(37.82, 12.51) controlPoint1: CGPointMake(37.79, 12.55) controlPoint2: CGPointMake(37.81, 12.53)]; - [bezier3Path addCurveToPoint: CGPointMake(37.88, 12.44) controlPoint1: CGPointMake(37.84, 12.49) controlPoint2: CGPointMake(37.86, 12.46)]; - [bezier3Path addCurveToPoint: CGPointMake(37.93, 12.38) controlPoint1: CGPointMake(37.9, 12.42) controlPoint2: CGPointMake(37.92, 12.4)]; - [bezier3Path addCurveToPoint: CGPointMake(37.99, 12.32) controlPoint1: CGPointMake(37.95, 12.36) controlPoint2: CGPointMake(37.97, 12.34)]; - [bezier3Path addCurveToPoint: CGPointMake(38.04, 12.26) controlPoint1: CGPointMake(38.01, 12.3) controlPoint2: CGPointMake(38.03, 12.28)]; - [bezier3Path addCurveToPoint: CGPointMake(38.1, 12.21) controlPoint1: CGPointMake(38.06, 12.25) controlPoint2: CGPointMake(38.08, 12.23)]; - [bezier3Path addCurveToPoint: CGPointMake(38.15, 12.15) controlPoint1: CGPointMake(38.12, 12.19) controlPoint2: CGPointMake(38.14, 12.17)]; - [bezier3Path addCurveToPoint: CGPointMake(38.21, 12.1) controlPoint1: CGPointMake(38.17, 12.13) controlPoint2: CGPointMake(38.19, 12.12)]; - [bezier3Path addCurveToPoint: CGPointMake(38.26, 12.05) controlPoint1: CGPointMake(38.23, 12.08) controlPoint2: CGPointMake(38.24, 12.06)]; - [bezier3Path addCurveToPoint: CGPointMake(38.32, 12) controlPoint1: CGPointMake(38.28, 12.03) controlPoint2: CGPointMake(38.3, 12.01)]; - [bezier3Path addCurveToPoint: CGPointMake(38.37, 11.95) controlPoint1: CGPointMake(38.34, 11.98) controlPoint2: CGPointMake(38.35, 11.96)]; - [bezier3Path addCurveToPoint: CGPointMake(38.43, 11.9) controlPoint1: CGPointMake(38.39, 11.93) controlPoint2: CGPointMake(38.41, 11.91)]; - [bezier3Path addCurveToPoint: CGPointMake(38.48, 11.85) controlPoint1: CGPointMake(38.45, 11.88) controlPoint2: CGPointMake(38.46, 11.87)]; - [bezier3Path addCurveToPoint: CGPointMake(38.54, 11.81) controlPoint1: CGPointMake(38.5, 11.84) controlPoint2: CGPointMake(38.52, 11.82)]; - [bezier3Path addCurveToPoint: CGPointMake(38.59, 11.76) controlPoint1: CGPointMake(38.56, 11.79) controlPoint2: CGPointMake(38.57, 11.78)]; - [bezier3Path addCurveToPoint: CGPointMake(38.65, 11.72) controlPoint1: CGPointMake(38.61, 11.75) controlPoint2: CGPointMake(38.63, 11.73)]; - [bezier3Path addCurveToPoint: CGPointMake(38.7, 11.68) controlPoint1: CGPointMake(38.67, 11.7) controlPoint2: CGPointMake(38.68, 11.69)]; - [bezier3Path addCurveToPoint: CGPointMake(38.76, 11.63) controlPoint1: CGPointMake(38.72, 11.66) controlPoint2: CGPointMake(38.74, 11.65)]; - [bezier3Path addCurveToPoint: CGPointMake(38.81, 11.59) controlPoint1: CGPointMake(38.78, 11.62) controlPoint2: CGPointMake(38.79, 11.61)]; - [bezier3Path addCurveToPoint: CGPointMake(38.87, 11.55) controlPoint1: CGPointMake(38.83, 11.58) controlPoint2: CGPointMake(38.85, 11.57)]; - [bezier3Path addCurveToPoint: CGPointMake(38.92, 11.52) controlPoint1: CGPointMake(38.89, 11.54) controlPoint2: CGPointMake(38.9, 11.53)]; - [bezier3Path addCurveToPoint: CGPointMake(38.98, 11.48) controlPoint1: CGPointMake(38.94, 11.5) controlPoint2: CGPointMake(38.96, 11.49)]; - [bezier3Path addCurveToPoint: CGPointMake(39.03, 11.44) controlPoint1: CGPointMake(38.99, 11.47) controlPoint2: CGPointMake(39.01, 11.45)]; - [bezier3Path addCurveToPoint: CGPointMake(39.09, 11.41) controlPoint1: CGPointMake(39.05, 11.43) controlPoint2: CGPointMake(39.07, 11.42)]; - [bezier3Path addCurveToPoint: CGPointMake(39.14, 11.37) controlPoint1: CGPointMake(39.1, 11.39) controlPoint2: CGPointMake(39.12, 11.38)]; - [bezier3Path addCurveToPoint: CGPointMake(39.2, 11.34) controlPoint1: CGPointMake(39.16, 11.36) controlPoint2: CGPointMake(39.18, 11.35)]; - [bezier3Path addCurveToPoint: CGPointMake(39.25, 11.3) controlPoint1: CGPointMake(39.21, 11.33) controlPoint2: CGPointMake(39.23, 11.32)]; - [bezier3Path addCurveToPoint: CGPointMake(39.31, 11.27) controlPoint1: CGPointMake(39.27, 11.29) controlPoint2: CGPointMake(39.29, 11.28)]; - [bezier3Path addCurveToPoint: CGPointMake(39.36, 11.24) controlPoint1: CGPointMake(39.32, 11.26) controlPoint2: CGPointMake(39.34, 11.25)]; - [bezier3Path addCurveToPoint: CGPointMake(39.42, 11.21) controlPoint1: CGPointMake(39.38, 11.23) controlPoint2: CGPointMake(39.4, 11.22)]; - [bezier3Path addCurveToPoint: CGPointMake(39.47, 11.18) controlPoint1: CGPointMake(39.43, 11.2) controlPoint2: CGPointMake(39.45, 11.19)]; - [bezier3Path addCurveToPoint: CGPointMake(39.53, 11.15) controlPoint1: CGPointMake(39.49, 11.17) controlPoint2: CGPointMake(39.51, 11.16)]; - [bezier3Path addCurveToPoint: CGPointMake(39.58, 11.12) controlPoint1: CGPointMake(39.54, 11.14) controlPoint2: CGPointMake(39.56, 11.13)]; - [bezier3Path addLineToPoint: CGPointMake(39.63, 11.1)]; - [bezier3Path addLineToPoint: CGPointMake(39.69, 11.07)]; - [bezier3Path addCurveToPoint: CGPointMake(39.74, 11.04) controlPoint1: CGPointMake(39.71, 11.06) controlPoint2: CGPointMake(39.73, 11.05)]; - [bezier3Path addCurveToPoint: CGPointMake(39.8, 11.02) controlPoint1: CGPointMake(39.76, 11.03) controlPoint2: CGPointMake(39.78, 11.03)]; - [bezier3Path addCurveToPoint: CGPointMake(39.85, 10.99) controlPoint1: CGPointMake(39.82, 11.01) controlPoint2: CGPointMake(39.84, 11)]; - [bezier3Path addCurveToPoint: CGPointMake(39.91, 10.97) controlPoint1: CGPointMake(39.87, 10.98) controlPoint2: CGPointMake(39.89, 10.98)]; - [bezier3Path addCurveToPoint: CGPointMake(39.96, 10.95) controlPoint1: CGPointMake(39.93, 10.96) controlPoint2: CGPointMake(39.95, 10.95)]; - [bezier3Path addCurveToPoint: CGPointMake(40.02, 10.92) controlPoint1: CGPointMake(39.98, 10.94) controlPoint2: CGPointMake(40, 10.93)]; - [bezier3Path addLineToPoint: CGPointMake(40.07, 10.9)]; - [bezier3Path addCurveToPoint: CGPointMake(40.13, 10.88) controlPoint1: CGPointMake(40.09, 10.89) controlPoint2: CGPointMake(40.11, 10.89)]; - [bezier3Path addCurveToPoint: CGPointMake(40.18, 10.86) controlPoint1: CGPointMake(40.15, 10.87) controlPoint2: CGPointMake(40.17, 10.87)]; - [bezier3Path addCurveToPoint: CGPointMake(40.24, 10.84) controlPoint1: CGPointMake(40.2, 10.85) controlPoint2: CGPointMake(40.22, 10.85)]; - [bezier3Path addCurveToPoint: CGPointMake(40.29, 10.82) controlPoint1: CGPointMake(40.26, 10.83) controlPoint2: CGPointMake(40.27, 10.83)]; - [bezier3Path addCurveToPoint: CGPointMake(40.35, 10.8) controlPoint1: CGPointMake(40.31, 10.81) controlPoint2: CGPointMake(40.33, 10.81)]; - [bezier3Path addCurveToPoint: CGPointMake(40.4, 10.78) controlPoint1: CGPointMake(40.37, 10.79) controlPoint2: CGPointMake(40.38, 10.79)]; - [bezier3Path addLineToPoint: CGPointMake(40.46, 10.77)]; - [bezier3Path addCurveToPoint: CGPointMake(40.51, 10.75) controlPoint1: CGPointMake(40.48, 10.76) controlPoint2: CGPointMake(40.49, 10.75)]; - [bezier3Path addCurveToPoint: CGPointMake(40.57, 10.73) controlPoint1: CGPointMake(40.53, 10.74) controlPoint2: CGPointMake(40.55, 10.74)]; - [bezier3Path addCurveToPoint: CGPointMake(40.62, 10.72) controlPoint1: CGPointMake(40.59, 10.73) controlPoint2: CGPointMake(40.6, 10.72)]; - [bezier3Path addCurveToPoint: CGPointMake(40.68, 10.7) controlPoint1: CGPointMake(40.64, 10.71) controlPoint2: CGPointMake(40.66, 10.71)]; - [bezier3Path addLineToPoint: CGPointMake(40.73, 10.69)]; - [bezier3Path addCurveToPoint: CGPointMake(40.79, 10.67) controlPoint1: CGPointMake(40.75, 10.68) controlPoint2: CGPointMake(40.77, 10.68)]; - [bezier3Path addCurveToPoint: CGPointMake(40.84, 10.66) controlPoint1: CGPointMake(40.81, 10.67) controlPoint2: CGPointMake(40.82, 10.66)]; - [bezier3Path addCurveToPoint: CGPointMake(40.9, 10.65) controlPoint1: CGPointMake(40.86, 10.65) controlPoint2: CGPointMake(40.88, 10.65)]; - [bezier3Path addCurveToPoint: CGPointMake(40.95, 10.63) controlPoint1: CGPointMake(40.91, 10.64) controlPoint2: CGPointMake(40.93, 10.64)]; - [bezier3Path addLineToPoint: CGPointMake(41.01, 10.62)]; - [bezier3Path addCurveToPoint: CGPointMake(41.06, 10.61) controlPoint1: CGPointMake(41.02, 10.62) controlPoint2: CGPointMake(41.04, 10.61)]; - [bezier3Path addCurveToPoint: CGPointMake(41.12, 10.6) controlPoint1: CGPointMake(41.08, 10.61) controlPoint2: CGPointMake(41.1, 10.6)]; - [bezier3Path addCurveToPoint: CGPointMake(41.17, 10.59) controlPoint1: CGPointMake(41.13, 10.6) controlPoint2: CGPointMake(41.15, 10.59)]; - [bezier3Path addLineToPoint: CGPointMake(41.23, 10.58)]; - [bezier3Path addLineToPoint: CGPointMake(41.28, 10.57)]; - [bezier3Path addCurveToPoint: CGPointMake(41.34, 10.56) controlPoint1: CGPointMake(41.3, 10.57) controlPoint2: CGPointMake(41.32, 10.57)]; - [bezier3Path addCurveToPoint: CGPointMake(41.39, 10.56) controlPoint1: CGPointMake(41.35, 10.56) controlPoint2: CGPointMake(41.37, 10.56)]; - [bezier3Path addCurveToPoint: CGPointMake(41.45, 10.55) controlPoint1: CGPointMake(41.41, 10.55) controlPoint2: CGPointMake(41.43, 10.55)]; - [bezier3Path addLineToPoint: CGPointMake(41.5, 10.54)]; - [bezier3Path addLineToPoint: CGPointMake(41.55, 10.54)]; - [bezier3Path addCurveToPoint: CGPointMake(41.61, 10.53) controlPoint1: CGPointMake(41.57, 10.53) controlPoint2: CGPointMake(41.59, 10.53)]; - [bezier3Path addCurveToPoint: CGPointMake(41.66, 10.52) controlPoint1: CGPointMake(41.63, 10.53) controlPoint2: CGPointMake(41.65, 10.53)]; - [bezier3Path addLineToPoint: CGPointMake(41.72, 10.52)]; - [bezier3Path addCurveToPoint: CGPointMake(41.77, 10.52) controlPoint1: CGPointMake(41.74, 10.52) controlPoint2: CGPointMake(41.76, 10.52)]; - [bezier3Path addCurveToPoint: CGPointMake(41.83, 10.51) controlPoint1: CGPointMake(41.79, 10.51) controlPoint2: CGPointMake(41.81, 10.51)]; - [bezier3Path addCurveToPoint: CGPointMake(41.88, 10.51) controlPoint1: CGPointMake(41.85, 10.51) controlPoint2: CGPointMake(41.87, 10.51)]; - [bezier3Path addCurveToPoint: CGPointMake(41.94, 10.51) controlPoint1: CGPointMake(41.9, 10.51) controlPoint2: CGPointMake(41.92, 10.51)]; - [bezier3Path addLineToPoint: CGPointMake(41.99, 10.5)]; - [bezier3Path addCurveToPoint: CGPointMake(42.05, 10.5) controlPoint1: CGPointMake(42.01, 10.5) controlPoint2: CGPointMake(42.03, 10.5)]; - [bezier3Path addCurveToPoint: CGPointMake(42.1, 10.5) controlPoint1: CGPointMake(42.07, 10.5) controlPoint2: CGPointMake(42.09, 10.5)]; - [bezier3Path addCurveToPoint: CGPointMake(42.16, 10.5) controlPoint1: CGPointMake(42.12, 10.5) controlPoint2: CGPointMake(42.14, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(42.21, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(42.27, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(42.32, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(42.38, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(42.43, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(42.49, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(42.54, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(42.6, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(42.65, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(42.71, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(42.76, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(42.82, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(42.87, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(42.93, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(42.98, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(43.04, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(43.09, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(43.15, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(43.2, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(43.26, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(43.31, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(43.37, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(43.42, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(43.47, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(43.53, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(43.58, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(43.64, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(43.69, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(43.75, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(43.8, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(43.86, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(43.91, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(43.97, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(44.02, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(44.08, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(44.13, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(44.19, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(44.24, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(44.3, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(44.35, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(44.41, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(44.46, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(44.52, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(44.57, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(44.63, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(44.68, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(44.74, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(44.79, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(44.85, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(44.9, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(44.96, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(45.01, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(45.07, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(45.12, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(45.18, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(45.23, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(45.29, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(45.34, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(45.39, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(45.45, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(45.5, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(45.56, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(45.61, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(45.67, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(45.72, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(45.78, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(45.83, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(45.89, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(45.94, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(46, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(46.05, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(46.11, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(46.16, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(46.22, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(46.27, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(46.33, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(46.38, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(46.44, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(46.49, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(46.55, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(46.6, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(46.66, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(46.71, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(46.77, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(46.82, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(46.88, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(46.93, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(46.99, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(47.04, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(47.1, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(47.15, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(47.21, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(47.26, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(47.31, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(47.37, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(47.42, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(47.48, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(47.53, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(47.59, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(47.64, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(47.7, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(47.75, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(47.81, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(47.86, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(47.92, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(47.97, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(48.03, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(48.08, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(48.14, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(48.19, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(48.25, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(48.3, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(48.36, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(48.41, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(48.47, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(48.52, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(48.58, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(48.63, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(48.69, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(48.74, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(48.8, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(48.85, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(48.91, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(48.96, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(49.02, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(49.07, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(49.13, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(49.18, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(49.23, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(49.29, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(49.34, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(49.4, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(49.45, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(49.51, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(49.56, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(49.62, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(49.67, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(49.73, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(49.78, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(49.84, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(49.89, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(49.95, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(50, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(50.06, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(50.11, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(50.17, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(50.22, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(50.28, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(50.33, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(50.39, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(50.44, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(50.5, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(50.54, 10.5)]; - [bezier3Path addLineToPoint: CGPointMake(50.54, 38.46)]; - [bezier3Path addCurveToPoint: CGPointMake(50.5, 39.18) controlPoint1: CGPointMake(50.54, 38.7) controlPoint2: CGPointMake(50.53, 38.94)]; - [bezier3Path addCurveToPoint: CGPointMake(50.44, 39.51) controlPoint1: CGPointMake(50.48, 39.29) controlPoint2: CGPointMake(50.46, 39.4)]; - [bezier3Path addCurveToPoint: CGPointMake(50.39, 39.77) controlPoint1: CGPointMake(50.43, 39.6) controlPoint2: CGPointMake(50.41, 39.68)]; - [bezier3Path addCurveToPoint: CGPointMake(50.33, 39.97) controlPoint1: CGPointMake(50.37, 39.84) controlPoint2: CGPointMake(50.35, 39.91)]; - [bezier3Path addCurveToPoint: CGPointMake(50.28, 40.15) controlPoint1: CGPointMake(50.31, 40.03) controlPoint2: CGPointMake(50.3, 40.09)]; - [bezier3Path addCurveToPoint: CGPointMake(50.22, 40.32) controlPoint1: CGPointMake(50.26, 40.21) controlPoint2: CGPointMake(50.24, 40.26)]; - [bezier3Path addCurveToPoint: CGPointMake(50.17, 40.46) controlPoint1: CGPointMake(50.2, 40.36) controlPoint2: CGPointMake(50.19, 40.41)]; - [bezier3Path addCurveToPoint: CGPointMake(50.11, 40.6) controlPoint1: CGPointMake(50.15, 40.51) controlPoint2: CGPointMake(50.13, 40.55)]; - [bezier3Path addCurveToPoint: CGPointMake(50.06, 40.72) controlPoint1: CGPointMake(50.09, 40.64) controlPoint2: CGPointMake(50.08, 40.68)]; - [bezier3Path addCurveToPoint: CGPointMake(50, 40.84) controlPoint1: CGPointMake(50.04, 40.76) controlPoint2: CGPointMake(50.02, 40.8)]; - [bezier3Path addCurveToPoint: CGPointMake(49.95, 40.95) controlPoint1: CGPointMake(49.98, 40.88) controlPoint2: CGPointMake(49.97, 40.92)]; - [bezier3Path addCurveToPoint: CGPointMake(49.89, 41.06) controlPoint1: CGPointMake(49.93, 40.99) controlPoint2: CGPointMake(49.91, 41.02)]; - [bezier3Path addCurveToPoint: CGPointMake(49.84, 41.16) controlPoint1: CGPointMake(49.88, 41.09) controlPoint2: CGPointMake(49.86, 41.12)]; - [bezier3Path addCurveToPoint: CGPointMake(49.78, 41.25) controlPoint1: CGPointMake(49.82, 41.19) controlPoint2: CGPointMake(49.8, 41.22)]; - [bezier3Path addCurveToPoint: CGPointMake(49.73, 41.34) controlPoint1: CGPointMake(49.77, 41.28) controlPoint2: CGPointMake(49.75, 41.31)]; - [bezier3Path addCurveToPoint: CGPointMake(49.67, 41.43) controlPoint1: CGPointMake(49.71, 41.37) controlPoint2: CGPointMake(49.69, 41.4)]; - [bezier3Path addCurveToPoint: CGPointMake(49.62, 41.52) controlPoint1: CGPointMake(49.66, 41.46) controlPoint2: CGPointMake(49.64, 41.49)]; - [bezier3Path addCurveToPoint: CGPointMake(49.56, 41.6) controlPoint1: CGPointMake(49.6, 41.54) controlPoint2: CGPointMake(49.58, 41.57)]; - [bezier3Path addCurveToPoint: CGPointMake(49.51, 41.68) controlPoint1: CGPointMake(49.55, 41.62) controlPoint2: CGPointMake(49.53, 41.65)]; - [bezier3Path addCurveToPoint: CGPointMake(49.45, 41.75) controlPoint1: CGPointMake(49.49, 41.7) controlPoint2: CGPointMake(49.47, 41.73)]; - [bezier3Path addCurveToPoint: CGPointMake(49.4, 41.82) controlPoint1: CGPointMake(49.44, 41.77) controlPoint2: CGPointMake(49.42, 41.8)]; - [bezier3Path addCurveToPoint: CGPointMake(49.34, 41.89) controlPoint1: CGPointMake(49.38, 41.85) controlPoint2: CGPointMake(49.36, 41.87)]; - [bezier3Path addCurveToPoint: CGPointMake(49.29, 41.96) controlPoint1: CGPointMake(49.33, 41.92) controlPoint2: CGPointMake(49.31, 41.94)]; - [bezier3Path addCurveToPoint: CGPointMake(49.23, 42.03) controlPoint1: CGPointMake(49.27, 41.98) controlPoint2: CGPointMake(49.25, 42.01)]; - [bezier3Path addCurveToPoint: CGPointMake(49.18, 42.09) controlPoint1: CGPointMake(49.22, 42.05) controlPoint2: CGPointMake(49.2, 42.07)]; - [bezier3Path addCurveToPoint: CGPointMake(49.13, 42.15) controlPoint1: CGPointMake(49.16, 42.11) controlPoint2: CGPointMake(49.14, 42.13)]; - [bezier3Path addCurveToPoint: CGPointMake(49.07, 42.21) controlPoint1: CGPointMake(49.11, 42.17) controlPoint2: CGPointMake(49.09, 42.19)]; - [bezier3Path addCurveToPoint: CGPointMake(49.02, 42.27) controlPoint1: CGPointMake(49.05, 42.23) controlPoint2: CGPointMake(49.03, 42.25)]; - [bezier3Path addCurveToPoint: CGPointMake(48.96, 42.33) controlPoint1: CGPointMake(49, 42.29) controlPoint2: CGPointMake(48.98, 42.31)]; - [bezier3Path addCurveToPoint: CGPointMake(48.91, 42.39) controlPoint1: CGPointMake(48.94, 42.35) controlPoint2: CGPointMake(48.92, 42.37)]; - [bezier3Path addCurveToPoint: CGPointMake(48.85, 42.44) controlPoint1: CGPointMake(48.89, 42.4) controlPoint2: CGPointMake(48.87, 42.42)]; - [bezier3Path addCurveToPoint: CGPointMake(48.8, 42.49) controlPoint1: CGPointMake(48.83, 42.46) controlPoint2: CGPointMake(48.81, 42.47)]; - [bezier3Path addCurveToPoint: CGPointMake(48.74, 42.54) controlPoint1: CGPointMake(48.78, 42.51) controlPoint2: CGPointMake(48.76, 42.53)]; - [bezier3Path addCurveToPoint: CGPointMake(48.69, 42.59) controlPoint1: CGPointMake(48.72, 42.56) controlPoint2: CGPointMake(48.7, 42.58)]; - [bezier3Path addCurveToPoint: CGPointMake(48.63, 42.64) controlPoint1: CGPointMake(48.67, 42.61) controlPoint2: CGPointMake(48.65, 42.63)]; - [bezier3Path addCurveToPoint: CGPointMake(48.58, 42.69) controlPoint1: CGPointMake(48.61, 42.66) controlPoint2: CGPointMake(48.59, 42.67)]; - [bezier3Path addCurveToPoint: CGPointMake(48.52, 42.73) controlPoint1: CGPointMake(48.56, 42.7) controlPoint2: CGPointMake(48.54, 42.72)]; - [bezier3Path addCurveToPoint: CGPointMake(48.47, 42.78) controlPoint1: CGPointMake(48.5, 42.75) controlPoint2: CGPointMake(48.49, 42.77)]; - [bezier3Path addCurveToPoint: CGPointMake(48.41, 42.82) controlPoint1: CGPointMake(48.45, 42.79) controlPoint2: CGPointMake(48.43, 42.81)]; - [bezier3Path addCurveToPoint: CGPointMake(48.36, 42.87) controlPoint1: CGPointMake(48.39, 42.84) controlPoint2: CGPointMake(48.38, 42.85)]; - [bezier3Path addCurveToPoint: CGPointMake(48.3, 42.91) controlPoint1: CGPointMake(48.34, 42.88) controlPoint2: CGPointMake(48.32, 42.89)]; - [bezier3Path addCurveToPoint: CGPointMake(48.25, 42.95) controlPoint1: CGPointMake(48.28, 42.92) controlPoint2: CGPointMake(48.27, 42.94)]; - [bezier3Path addCurveToPoint: CGPointMake(48.19, 42.99) controlPoint1: CGPointMake(48.23, 42.96) controlPoint2: CGPointMake(48.21, 42.98)]; - [bezier3Path addCurveToPoint: CGPointMake(48.14, 43.03) controlPoint1: CGPointMake(48.17, 43) controlPoint2: CGPointMake(48.16, 43.01)]; - [bezier3Path addCurveToPoint: CGPointMake(48.08, 43.06) controlPoint1: CGPointMake(48.12, 43.04) controlPoint2: CGPointMake(48.1, 43.05)]; - [bezier3Path addCurveToPoint: CGPointMake(48.03, 43.1) controlPoint1: CGPointMake(48.06, 43.08) controlPoint2: CGPointMake(48.05, 43.09)]; - [bezier3Path addCurveToPoint: CGPointMake(47.97, 43.14) controlPoint1: CGPointMake(48.01, 43.11) controlPoint2: CGPointMake(47.99, 43.13)]; - [bezier3Path addCurveToPoint: CGPointMake(47.92, 43.17) controlPoint1: CGPointMake(47.95, 43.15) controlPoint2: CGPointMake(47.94, 43.16)]; - [bezier3Path addCurveToPoint: CGPointMake(47.86, 43.21) controlPoint1: CGPointMake(47.9, 43.18) controlPoint2: CGPointMake(47.88, 43.2)]; - [bezier3Path addCurveToPoint: CGPointMake(47.81, 43.24) controlPoint1: CGPointMake(47.85, 43.22) controlPoint2: CGPointMake(47.83, 43.23)]; - [bezier3Path addCurveToPoint: CGPointMake(47.75, 43.27) controlPoint1: CGPointMake(47.79, 43.25) controlPoint2: CGPointMake(47.77, 43.26)]; - [bezier3Path addCurveToPoint: CGPointMake(47.7, 43.3) controlPoint1: CGPointMake(47.74, 43.28) controlPoint2: CGPointMake(47.72, 43.29)]; - [bezier3Path addCurveToPoint: CGPointMake(47.64, 43.33) controlPoint1: CGPointMake(47.68, 43.31) controlPoint2: CGPointMake(47.66, 43.32)]; - [bezier3Path addLineToPoint: CGPointMake(47.59, 43.36)]; - [bezier3Path addLineToPoint: CGPointMake(47.53, 43.39)]; - [bezier3Path addLineToPoint: CGPointMake(47.48, 43.42)]; - [bezier3Path addCurveToPoint: CGPointMake(47.42, 43.45) controlPoint1: CGPointMake(47.46, 43.43) controlPoint2: CGPointMake(47.44, 43.44)]; - [bezier3Path addCurveToPoint: CGPointMake(47.37, 43.48) controlPoint1: CGPointMake(47.41, 43.46) controlPoint2: CGPointMake(47.39, 43.47)]; - [bezier3Path addCurveToPoint: CGPointMake(47.31, 43.5) controlPoint1: CGPointMake(47.35, 43.49) controlPoint2: CGPointMake(47.33, 43.49)]; - [bezier3Path addCurveToPoint: CGPointMake(47.26, 43.53) controlPoint1: CGPointMake(47.3, 43.51) controlPoint2: CGPointMake(47.28, 43.52)]; - [bezier3Path addCurveToPoint: CGPointMake(47.21, 43.55) controlPoint1: CGPointMake(47.24, 43.54) controlPoint2: CGPointMake(47.22, 43.55)]; - [bezier3Path addCurveToPoint: CGPointMake(47.15, 43.58) controlPoint1: CGPointMake(47.19, 43.56) controlPoint2: CGPointMake(47.17, 43.57)]; - [bezier3Path addLineToPoint: CGPointMake(47.1, 43.6)]; - [bezier3Path addLineToPoint: CGPointMake(47.04, 43.62)]; - [bezier3Path addLineToPoint: CGPointMake(46.99, 43.65)]; - [bezier3Path addCurveToPoint: CGPointMake(46.93, 43.67) controlPoint1: CGPointMake(46.97, 43.65) controlPoint2: CGPointMake(46.95, 43.66)]; - [bezier3Path addCurveToPoint: CGPointMake(46.88, 43.69) controlPoint1: CGPointMake(46.91, 43.68) controlPoint2: CGPointMake(46.89, 43.68)]; - [bezier3Path addCurveToPoint: CGPointMake(46.82, 43.71) controlPoint1: CGPointMake(46.86, 43.7) controlPoint2: CGPointMake(46.84, 43.7)]; - [bezier3Path addCurveToPoint: CGPointMake(46.77, 43.73) controlPoint1: CGPointMake(46.8, 43.72) controlPoint2: CGPointMake(46.78, 43.72)]; - [bezier3Path addLineToPoint: CGPointMake(46.71, 43.75)]; - [bezier3Path addLineToPoint: CGPointMake(46.66, 43.77)]; - [bezier3Path addCurveToPoint: CGPointMake(46.6, 43.78) controlPoint1: CGPointMake(46.64, 43.77) controlPoint2: CGPointMake(46.62, 43.78)]; - [bezier3Path addCurveToPoint: CGPointMake(46.55, 43.8) controlPoint1: CGPointMake(46.58, 43.79) controlPoint2: CGPointMake(46.57, 43.8)]; - [bezier3Path addCurveToPoint: CGPointMake(46.49, 43.82) controlPoint1: CGPointMake(46.53, 43.81) controlPoint2: CGPointMake(46.51, 43.81)]; - [bezier3Path addLineToPoint: CGPointMake(46.44, 43.83)]; - [bezier3Path addLineToPoint: CGPointMake(46.38, 43.85)]; - [bezier3Path addCurveToPoint: CGPointMake(46.33, 43.86) controlPoint1: CGPointMake(46.36, 43.85) controlPoint2: CGPointMake(46.35, 43.86)]; - [bezier3Path addCurveToPoint: CGPointMake(46.27, 43.88) controlPoint1: CGPointMake(46.31, 43.87) controlPoint2: CGPointMake(46.29, 43.87)]; - [bezier3Path addCurveToPoint: CGPointMake(46.22, 43.89) controlPoint1: CGPointMake(46.25, 43.88) controlPoint2: CGPointMake(46.24, 43.89)]; - [bezier3Path addCurveToPoint: CGPointMake(46.16, 43.9) controlPoint1: CGPointMake(46.2, 43.9) controlPoint2: CGPointMake(46.18, 43.9)]; - [bezier3Path addLineToPoint: CGPointMake(46.11, 43.92)]; - [bezier3Path addLineToPoint: CGPointMake(46.05, 43.93)]; - [bezier3Path addCurveToPoint: CGPointMake(46, 43.94) controlPoint1: CGPointMake(46.03, 43.93) controlPoint2: CGPointMake(46.02, 43.94)]; - [bezier3Path addCurveToPoint: CGPointMake(45.94, 43.95) controlPoint1: CGPointMake(45.98, 43.94) controlPoint2: CGPointMake(45.96, 43.95)]; - [bezier3Path addLineToPoint: CGPointMake(45.89, 43.96)]; - [bezier3Path addLineToPoint: CGPointMake(45.83, 43.97)]; - [bezier3Path addCurveToPoint: CGPointMake(45.78, 43.98) controlPoint1: CGPointMake(45.82, 43.97) controlPoint2: CGPointMake(45.8, 43.98)]; - [bezier3Path addCurveToPoint: CGPointMake(45.72, 43.99) controlPoint1: CGPointMake(45.76, 43.98) controlPoint2: CGPointMake(45.74, 43.99)]; - [bezier3Path addCurveToPoint: CGPointMake(45.67, 44) controlPoint1: CGPointMake(45.71, 43.99) controlPoint2: CGPointMake(45.69, 43.99)]; - [bezier3Path addLineToPoint: CGPointMake(45.61, 44)]; - [bezier3Path addCurveToPoint: CGPointMake(45.56, 44.01) controlPoint1: CGPointMake(45.6, 44.01) controlPoint2: CGPointMake(45.58, 44.01)]; - [bezier3Path addCurveToPoint: CGPointMake(45.5, 44.02) controlPoint1: CGPointMake(45.54, 44.01) controlPoint2: CGPointMake(45.52, 44.01)]; - [bezier3Path addCurveToPoint: CGPointMake(45.45, 44.02) controlPoint1: CGPointMake(45.49, 44.02) controlPoint2: CGPointMake(45.47, 44.02)]; - [bezier3Path addCurveToPoint: CGPointMake(45.39, 44.03) controlPoint1: CGPointMake(45.43, 44.02) controlPoint2: CGPointMake(45.41, 44.03)]; - [bezier3Path addLineToPoint: CGPointMake(45.34, 44.03)]; - [bezier3Path addCurveToPoint: CGPointMake(45.29, 44.04) controlPoint1: CGPointMake(45.32, 44.03) controlPoint2: CGPointMake(45.3, 44.04)]; - [bezier3Path addCurveToPoint: CGPointMake(45.23, 44.04) controlPoint1: CGPointMake(45.27, 44.04) controlPoint2: CGPointMake(45.25, 44.04)]; - [bezier3Path addLineToPoint: CGPointMake(45.18, 44.04)]; - [bezier3Path addLineToPoint: CGPointMake(45.12, 44.05)]; - [bezier3Path addCurveToPoint: CGPointMake(45.07, 44.05) controlPoint1: CGPointMake(45.1, 44.05) controlPoint2: CGPointMake(45.08, 44.05)]; - [bezier3Path addCurveToPoint: CGPointMake(45.01, 44.05) controlPoint1: CGPointMake(45.05, 44.05) controlPoint2: CGPointMake(45.03, 44.05)]; - [bezier3Path addCurveToPoint: CGPointMake(44.96, 44.05) controlPoint1: CGPointMake(44.99, 44.05) controlPoint2: CGPointMake(44.97, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(44.9, 44.05)]; - [bezier3Path addCurveToPoint: CGPointMake(44.85, 44.05) controlPoint1: CGPointMake(44.88, 44.05) controlPoint2: CGPointMake(44.87, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(44.79, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(44.74, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(44.68, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(44.63, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(44.57, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(44.52, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(44.46, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(44.41, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(44.35, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(44.3, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(44.24, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(44.19, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(44.13, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(44.08, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(44.02, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(43.97, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(43.91, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(43.86, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(43.8, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(43.75, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(43.69, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(43.64, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(43.58, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(43.53, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(43.47, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(43.42, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(43.37, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(43.31, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(43.26, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(43.2, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(43.15, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(43.09, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(43.04, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(42.98, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(42.93, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(42.87, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(42.82, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(42.76, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(42.71, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(42.65, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(42.6, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(42.54, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(42.49, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(42.43, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(42.38, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(42.32, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(42.27, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(42.21, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(42.16, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(42.1, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(42.05, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(41.99, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(41.94, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(41.88, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(41.83, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(41.77, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(41.72, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(41.66, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(41.61, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(41.55, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(41.5, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(41.45, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(41.39, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(41.34, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(41.28, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(41.23, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(41.17, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(41.12, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(41.06, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(41.01, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(40.95, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(40.9, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(40.84, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(40.79, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(40.73, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(40.68, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(40.62, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(40.57, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(40.51, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(40.46, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(40.4, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(40.35, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(40.29, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(40.24, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(40.18, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(40.13, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(40.07, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(40.02, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(39.96, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(39.91, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(39.85, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(39.8, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(39.74, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(39.69, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(39.63, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(39.58, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(39.53, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(39.47, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(39.42, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(39.36, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(39.31, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(39.25, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(39.2, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(39.14, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(39.09, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(39.03, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(38.98, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(38.92, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(38.87, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(38.81, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(38.76, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(38.7, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(38.65, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(38.59, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(38.54, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(38.48, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(38.43, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(38.37, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(38.32, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(38.26, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(38.21, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(38.15, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(38.1, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(38.04, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(37.99, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(37.93, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(37.88, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(37.82, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(37.77, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(37.71, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(37.66, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(37.61, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(37.55, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(37.5, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(37.44, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(37.39, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(37.33, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(37.28, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(37.22, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(37.17, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(37.11, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(37.06, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(37, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(36.95, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(36.89, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(36.84, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(36.78, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(36.73, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(36.67, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(36.62, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(36.5, 44.05)]; - [bezier3Path addLineToPoint: CGPointMake(36.5, 31.14)]; - [bezier3Path addCurveToPoint: CGPointMake(36.62, 31.24) controlPoint1: CGPointMake(36.54, 31.17) controlPoint2: CGPointMake(36.58, 31.21)]; - [bezier3Path addCurveToPoint: CGPointMake(36.67, 31.28) controlPoint1: CGPointMake(36.64, 31.25) controlPoint2: CGPointMake(36.65, 31.27)]; - [bezier3Path addCurveToPoint: CGPointMake(36.73, 31.32) controlPoint1: CGPointMake(36.69, 31.29) controlPoint2: CGPointMake(36.71, 31.31)]; - [bezier3Path addCurveToPoint: CGPointMake(36.78, 31.36) controlPoint1: CGPointMake(36.75, 31.34) controlPoint2: CGPointMake(36.76, 31.35)]; - [bezier3Path addCurveToPoint: CGPointMake(36.84, 31.4) controlPoint1: CGPointMake(36.8, 31.38) controlPoint2: CGPointMake(36.82, 31.39)]; - [bezier3Path addCurveToPoint: CGPointMake(36.89, 31.44) controlPoint1: CGPointMake(36.86, 31.42) controlPoint2: CGPointMake(36.87, 31.43)]; - [bezier3Path addCurveToPoint: CGPointMake(36.95, 31.48) controlPoint1: CGPointMake(36.91, 31.45) controlPoint2: CGPointMake(36.93, 31.47)]; - [bezier3Path addLineToPoint: CGPointMake(37, 31.52)]; - [bezier3Path addCurveToPoint: CGPointMake(37.06, 31.55) controlPoint1: CGPointMake(37.02, 31.53) controlPoint2: CGPointMake(37.04, 31.54)]; - [bezier3Path addLineToPoint: CGPointMake(37.11, 31.59)]; - [bezier3Path addCurveToPoint: CGPointMake(37.17, 31.62) controlPoint1: CGPointMake(37.13, 31.6) controlPoint2: CGPointMake(37.15, 31.61)]; - [bezier3Path addCurveToPoint: CGPointMake(37.22, 31.66) controlPoint1: CGPointMake(37.18, 31.63) controlPoint2: CGPointMake(37.2, 31.64)]; - [bezier3Path addLineToPoint: CGPointMake(37.28, 31.69)]; - [bezier3Path addCurveToPoint: CGPointMake(37.33, 31.72) controlPoint1: CGPointMake(37.29, 31.7) controlPoint2: CGPointMake(37.31, 31.71)]; - [bezier3Path addCurveToPoint: CGPointMake(37.39, 31.75) controlPoint1: CGPointMake(37.35, 31.73) controlPoint2: CGPointMake(37.37, 31.74)]; - [bezier3Path addLineToPoint: CGPointMake(37.44, 31.78)]; - [bezier3Path addLineToPoint: CGPointMake(37.5, 31.81)]; - [bezier3Path addLineToPoint: CGPointMake(37.55, 31.84)]; - [bezier3Path addCurveToPoint: CGPointMake(37.61, 31.87) controlPoint1: CGPointMake(37.57, 31.85) controlPoint2: CGPointMake(37.59, 31.86)]; - [bezier3Path addCurveToPoint: CGPointMake(37.66, 31.9) controlPoint1: CGPointMake(37.62, 31.88) controlPoint2: CGPointMake(37.64, 31.89)]; - [bezier3Path addLineToPoint: CGPointMake(37.71, 31.93)]; - [bezier3Path addLineToPoint: CGPointMake(37.77, 31.95)]; - [bezier3Path addLineToPoint: CGPointMake(37.82, 31.98)]; - [bezier3Path addCurveToPoint: CGPointMake(37.88, 32) controlPoint1: CGPointMake(37.84, 31.99) controlPoint2: CGPointMake(37.86, 32)]; - [bezier3Path addLineToPoint: CGPointMake(37.93, 32.03)]; - [bezier3Path addLineToPoint: CGPointMake(37.99, 32.05)]; - [bezier3Path addLineToPoint: CGPointMake(38.04, 32.08)]; - [bezier3Path addLineToPoint: CGPointMake(38.1, 32.1)]; - [bezier3Path addLineToPoint: CGPointMake(38.15, 32.12)]; - [bezier3Path addLineToPoint: CGPointMake(38.21, 32.15)]; - [bezier3Path addLineToPoint: CGPointMake(38.26, 32.17)]; - [bezier3Path addLineToPoint: CGPointMake(38.32, 32.19)]; - [bezier3Path addLineToPoint: CGPointMake(38.37, 32.21)]; - [bezier3Path addLineToPoint: CGPointMake(38.43, 32.23)]; - [bezier3Path addCurveToPoint: CGPointMake(38.48, 32.25) controlPoint1: CGPointMake(38.45, 32.24) controlPoint2: CGPointMake(38.46, 32.25)]; - [bezier3Path addLineToPoint: CGPointMake(38.54, 32.27)]; - [bezier3Path addCurveToPoint: CGPointMake(38.59, 32.29) controlPoint1: CGPointMake(38.56, 32.28) controlPoint2: CGPointMake(38.57, 32.28)]; - [bezier3Path addCurveToPoint: CGPointMake(38.65, 32.31) controlPoint1: CGPointMake(38.61, 32.3) controlPoint2: CGPointMake(38.63, 32.3)]; - [bezier3Path addLineToPoint: CGPointMake(38.7, 32.33)]; - [bezier3Path addLineToPoint: CGPointMake(38.76, 32.35)]; - [bezier3Path addCurveToPoint: CGPointMake(38.81, 32.36) controlPoint1: CGPointMake(38.78, 32.35) controlPoint2: CGPointMake(38.79, 32.36)]; - [bezier3Path addCurveToPoint: CGPointMake(38.87, 32.38) controlPoint1: CGPointMake(38.83, 32.37) controlPoint2: CGPointMake(38.85, 32.38)]; - [bezier3Path addLineToPoint: CGPointMake(38.92, 32.4)]; - [bezier3Path addLineToPoint: CGPointMake(38.98, 32.42)]; - [bezier3Path addLineToPoint: CGPointMake(39.03, 32.43)]; - [bezier3Path addLineToPoint: CGPointMake(39.09, 32.45)]; - [bezier3Path addLineToPoint: CGPointMake(39.14, 32.46)]; - [bezier3Path addLineToPoint: CGPointMake(39.2, 32.48)]; - [bezier3Path addLineToPoint: CGPointMake(39.25, 32.49)]; - [bezier3Path addLineToPoint: CGPointMake(39.31, 32.51)]; - [bezier3Path addLineToPoint: CGPointMake(39.36, 32.52)]; - [bezier3Path addLineToPoint: CGPointMake(39.42, 32.54)]; - [bezier3Path addLineToPoint: CGPointMake(39.47, 32.55)]; - [bezier3Path addLineToPoint: CGPointMake(39.53, 32.56)]; - [bezier3Path addLineToPoint: CGPointMake(39.58, 32.58)]; - [bezier3Path addLineToPoint: CGPointMake(39.63, 32.59)]; - [bezier3Path addLineToPoint: CGPointMake(39.69, 32.6)]; - [bezier3Path addLineToPoint: CGPointMake(39.74, 32.62)]; - [bezier3Path addLineToPoint: CGPointMake(39.8, 32.63)]; - [bezier3Path addLineToPoint: CGPointMake(39.85, 32.64)]; - [bezier3Path addLineToPoint: CGPointMake(39.91, 32.65)]; - [bezier3Path addLineToPoint: CGPointMake(39.96, 32.66)]; - [bezier3Path addLineToPoint: CGPointMake(40.02, 32.67)]; - [bezier3Path addLineToPoint: CGPointMake(40.07, 32.68)]; - [bezier3Path addLineToPoint: CGPointMake(40.13, 32.69)]; - [bezier3Path addLineToPoint: CGPointMake(40.18, 32.7)]; - [bezier3Path addLineToPoint: CGPointMake(40.24, 32.71)]; - [bezier3Path addLineToPoint: CGPointMake(40.29, 32.72)]; - [bezier3Path addLineToPoint: CGPointMake(40.35, 32.73)]; - [bezier3Path addLineToPoint: CGPointMake(40.4, 32.74)]; - [bezier3Path addLineToPoint: CGPointMake(40.46, 32.75)]; - [bezier3Path addLineToPoint: CGPointMake(40.51, 32.76)]; - [bezier3Path addLineToPoint: CGPointMake(40.57, 32.77)]; - [bezier3Path addLineToPoint: CGPointMake(40.62, 32.78)]; - [bezier3Path addLineToPoint: CGPointMake(40.68, 32.79)]; - [bezier3Path addLineToPoint: CGPointMake(40.73, 32.79)]; - [bezier3Path addLineToPoint: CGPointMake(40.79, 32.8)]; - [bezier3Path addLineToPoint: CGPointMake(40.84, 32.81)]; - [bezier3Path addLineToPoint: CGPointMake(40.9, 32.82)]; - [bezier3Path addLineToPoint: CGPointMake(40.95, 32.82)]; - [bezier3Path addLineToPoint: CGPointMake(41.01, 32.83)]; - [bezier3Path addLineToPoint: CGPointMake(41.06, 32.84)]; - [bezier3Path addLineToPoint: CGPointMake(41.12, 32.84)]; - [bezier3Path addLineToPoint: CGPointMake(41.17, 32.85)]; - [bezier3Path addLineToPoint: CGPointMake(41.23, 32.86)]; - [bezier3Path addLineToPoint: CGPointMake(41.28, 32.86)]; - [bezier3Path addLineToPoint: CGPointMake(41.34, 32.87)]; - [bezier3Path addLineToPoint: CGPointMake(41.39, 32.87)]; - [bezier3Path addLineToPoint: CGPointMake(41.45, 32.88)]; - [bezier3Path addLineToPoint: CGPointMake(41.5, 32.88)]; - [bezier3Path addLineToPoint: CGPointMake(41.55, 32.89)]; - [bezier3Path addLineToPoint: CGPointMake(41.61, 32.89)]; - [bezier3Path addLineToPoint: CGPointMake(41.66, 32.9)]; - [bezier3Path addLineToPoint: CGPointMake(41.72, 32.9)]; - [bezier3Path addLineToPoint: CGPointMake(41.77, 32.91)]; - [bezier3Path addLineToPoint: CGPointMake(41.83, 32.91)]; - [bezier3Path addLineToPoint: CGPointMake(41.88, 32.91)]; - [bezier3Path addLineToPoint: CGPointMake(41.94, 32.92)]; - [bezier3Path addLineToPoint: CGPointMake(41.99, 32.92)]; - [bezier3Path addLineToPoint: CGPointMake(42.05, 32.93)]; - [bezier3Path addLineToPoint: CGPointMake(42.1, 32.93)]; - [bezier3Path addLineToPoint: CGPointMake(42.16, 32.93)]; - [bezier3Path addLineToPoint: CGPointMake(42.21, 32.93)]; - [bezier3Path addLineToPoint: CGPointMake(42.27, 32.94)]; - [bezier3Path addLineToPoint: CGPointMake(42.32, 32.94)]; - [bezier3Path addLineToPoint: CGPointMake(42.38, 32.94)]; - [bezier3Path addLineToPoint: CGPointMake(42.43, 32.94)]; - [bezier3Path addLineToPoint: CGPointMake(42.49, 32.95)]; - [bezier3Path addLineToPoint: CGPointMake(42.54, 32.95)]; - [bezier3Path addLineToPoint: CGPointMake(42.6, 32.95)]; - [bezier3Path addLineToPoint: CGPointMake(42.65, 32.95)]; - [bezier3Path addLineToPoint: CGPointMake(42.71, 32.95)]; - [bezier3Path addLineToPoint: CGPointMake(42.76, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(42.82, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(42.87, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(42.93, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(42.98, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(43.04, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(43.09, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(43.15, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(43.2, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(43.26, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(43.31, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(43.37, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(43.42, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(43.47, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(43.53, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(43.58, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(43.64, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(43.69, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(43.75, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(43.8, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(43.86, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(43.91, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(43.97, 32.96)]; - [bezier3Path addLineToPoint: CGPointMake(44.02, 32.95)]; - [bezier3Path addLineToPoint: CGPointMake(44.08, 32.95)]; - [bezier3Path addLineToPoint: CGPointMake(44.13, 32.95)]; - [bezier3Path addLineToPoint: CGPointMake(44.19, 32.95)]; - [bezier3Path addLineToPoint: CGPointMake(44.24, 32.95)]; - [bezier3Path addLineToPoint: CGPointMake(44.3, 32.94)]; - [bezier3Path addLineToPoint: CGPointMake(44.35, 32.94)]; - [bezier3Path addLineToPoint: CGPointMake(44.41, 32.94)]; - [bezier3Path addLineToPoint: CGPointMake(44.46, 32.94)]; - [bezier3Path addLineToPoint: CGPointMake(44.52, 32.94)]; - [bezier3Path addLineToPoint: CGPointMake(44.57, 32.93)]; - [bezier3Path addLineToPoint: CGPointMake(44.63, 32.93)]; - [bezier3Path addLineToPoint: CGPointMake(44.68, 32.93)]; - [bezier3Path addLineToPoint: CGPointMake(44.74, 32.92)]; - [bezier3Path addLineToPoint: CGPointMake(44.79, 32.92)]; - [bezier3Path addLineToPoint: CGPointMake(44.85, 32.92)]; - [bezier3Path addLineToPoint: CGPointMake(44.9, 32.91)]; - [bezier3Path addLineToPoint: CGPointMake(44.96, 32.91)]; - [bezier3Path addLineToPoint: CGPointMake(45.01, 32.91)]; - [bezier3Path addLineToPoint: CGPointMake(45.07, 32.9)]; - [bezier3Path addLineToPoint: CGPointMake(45.12, 32.9)]; - [bezier3Path addLineToPoint: CGPointMake(45.18, 32.89)]; - [bezier3Path addLineToPoint: CGPointMake(45.23, 32.89)]; - [bezier3Path addLineToPoint: CGPointMake(45.29, 32.88)]; - [bezier3Path addLineToPoint: CGPointMake(45.34, 32.88)]; - [bezier3Path addLineToPoint: CGPointMake(45.39, 32.87)]; - [bezier3Path addLineToPoint: CGPointMake(45.45, 32.87)]; - [bezier3Path addLineToPoint: CGPointMake(45.5, 32.86)]; - [bezier3Path addLineToPoint: CGPointMake(45.56, 32.86)]; - [bezier3Path addLineToPoint: CGPointMake(45.61, 32.85)]; - [bezier3Path addLineToPoint: CGPointMake(45.67, 32.84)]; - [bezier3Path addLineToPoint: CGPointMake(45.72, 32.84)]; - [bezier3Path addLineToPoint: CGPointMake(45.78, 32.83)]; - [bezier3Path addLineToPoint: CGPointMake(45.83, 32.83)]; - [bezier3Path addLineToPoint: CGPointMake(45.89, 32.82)]; - [bezier3Path addLineToPoint: CGPointMake(45.94, 32.81)]; - [bezier3Path addLineToPoint: CGPointMake(46, 32.81)]; - [bezier3Path addLineToPoint: CGPointMake(46.05, 32.8)]; - [bezier3Path addLineToPoint: CGPointMake(46.11, 32.79)]; - [bezier3Path addLineToPoint: CGPointMake(46.16, 32.78)]; - [bezier3Path addLineToPoint: CGPointMake(46.22, 32.78)]; - [bezier3Path addLineToPoint: CGPointMake(46.27, 32.77)]; - [bezier3Path addLineToPoint: CGPointMake(46.33, 32.76)]; - [bezier3Path addLineToPoint: CGPointMake(46.38, 32.75)]; - [bezier3Path addLineToPoint: CGPointMake(46.44, 32.75)]; - [bezier3Path addLineToPoint: CGPointMake(46.49, 32.74)]; - [bezier3Path addLineToPoint: CGPointMake(46.55, 32.73)]; - [bezier3Path addLineToPoint: CGPointMake(46.6, 32.72)]; - [bezier3Path addLineToPoint: CGPointMake(46.66, 32.71)]; - [bezier3Path addLineToPoint: CGPointMake(46.71, 32.71)]; - [bezier3Path addLineToPoint: CGPointMake(46.77, 32.7)]; - [bezier3Path addLineToPoint: CGPointMake(46.82, 32.69)]; - [bezier3Path addLineToPoint: CGPointMake(46.88, 32.68)]; - [bezier3Path addLineToPoint: CGPointMake(46.93, 32.67)]; - [bezier3Path addLineToPoint: CGPointMake(46.99, 32.66)]; - [bezier3Path addLineToPoint: CGPointMake(47.04, 32.65)]; - [bezier3Path addLineToPoint: CGPointMake(47.1, 32.64)]; - [bezier3Path addLineToPoint: CGPointMake(47.15, 32.64)]; - [bezier3Path addLineToPoint: CGPointMake(47.21, 32.63)]; - [bezier3Path addLineToPoint: CGPointMake(47.26, 32.62)]; - [bezier3Path addLineToPoint: CGPointMake(47.31, 32.61)]; - [bezier3Path addLineToPoint: CGPointMake(47.37, 32.6)]; - [bezier3Path addLineToPoint: CGPointMake(47.42, 32.59)]; - [bezier3Path addLineToPoint: CGPointMake(47.48, 32.58)]; - [bezier3Path addLineToPoint: CGPointMake(47.53, 32.57)]; - [bezier3Path addLineToPoint: CGPointMake(47.59, 32.56)]; - [bezier3Path addLineToPoint: CGPointMake(47.64, 32.55)]; - [bezier3Path addLineToPoint: CGPointMake(47.7, 32.54)]; - [bezier3Path addLineToPoint: CGPointMake(47.75, 32.53)]; - [bezier3Path addLineToPoint: CGPointMake(47.81, 32.52)]; - [bezier3Path addLineToPoint: CGPointMake(47.86, 32.51)]; - [bezier3Path addLineToPoint: CGPointMake(47.92, 32.5)]; - [bezier3Path addLineToPoint: CGPointMake(47.97, 32.48)]; - [bezier3Path addLineToPoint: CGPointMake(48.03, 32.47)]; - [bezier3Path addLineToPoint: CGPointMake(48.08, 32.46)]; - [bezier3Path addLineToPoint: CGPointMake(48.14, 32.45)]; - [bezier3Path addLineToPoint: CGPointMake(48.19, 32.44)]; - [bezier3Path addLineToPoint: CGPointMake(48.25, 32.43)]; - [bezier3Path addLineToPoint: CGPointMake(48.3, 32.42)]; - [bezier3Path addLineToPoint: CGPointMake(48.36, 32.41)]; - [bezier3Path addLineToPoint: CGPointMake(48.41, 32.39)]; - [bezier3Path addLineToPoint: CGPointMake(48.47, 32.38)]; - [bezier3Path addLineToPoint: CGPointMake(48.52, 32.37)]; - [bezier3Path addLineToPoint: CGPointMake(48.58, 32.36)]; - [bezier3Path addLineToPoint: CGPointMake(48.63, 32.35)]; - [bezier3Path addLineToPoint: CGPointMake(48.69, 32.33)]; - [bezier3Path addLineToPoint: CGPointMake(48.74, 32.32)]; - [bezier3Path addLineToPoint: CGPointMake(48.8, 32.31)]; - [bezier3Path addLineToPoint: CGPointMake(48.85, 32.3)]; - [bezier3Path addLineToPoint: CGPointMake(48.91, 32.28)]; - [bezier3Path addLineToPoint: CGPointMake(48.96, 32.27)]; - [bezier3Path addLineToPoint: CGPointMake(48.96, 29.9)]; - [bezier3Path addLineToPoint: CGPointMake(48.91, 29.93)]; - [bezier3Path addLineToPoint: CGPointMake(48.85, 29.96)]; - [bezier3Path addLineToPoint: CGPointMake(48.8, 29.98)]; - [bezier3Path addLineToPoint: CGPointMake(48.74, 30.01)]; - [bezier3Path addLineToPoint: CGPointMake(48.69, 30.04)]; - [bezier3Path addLineToPoint: CGPointMake(48.63, 30.06)]; - [bezier3Path addLineToPoint: CGPointMake(48.58, 30.09)]; - [bezier3Path addLineToPoint: CGPointMake(48.52, 30.11)]; - [bezier3Path addLineToPoint: CGPointMake(48.47, 30.14)]; - [bezier3Path addLineToPoint: CGPointMake(48.41, 30.16)]; - [bezier3Path addLineToPoint: CGPointMake(48.36, 30.19)]; - [bezier3Path addLineToPoint: CGPointMake(48.3, 30.21)]; - [bezier3Path addLineToPoint: CGPointMake(48.25, 30.23)]; - [bezier3Path addLineToPoint: CGPointMake(48.19, 30.26)]; - [bezier3Path addLineToPoint: CGPointMake(48.14, 30.28)]; - [bezier3Path addLineToPoint: CGPointMake(48.08, 30.3)]; - [bezier3Path addLineToPoint: CGPointMake(48.03, 30.33)]; - [bezier3Path addLineToPoint: CGPointMake(47.97, 30.35)]; - [bezier3Path addLineToPoint: CGPointMake(47.92, 30.37)]; - [bezier3Path addLineToPoint: CGPointMake(47.86, 30.39)]; - [bezier3Path addLineToPoint: CGPointMake(47.81, 30.41)]; - [bezier3Path addLineToPoint: CGPointMake(47.75, 30.43)]; - [bezier3Path addLineToPoint: CGPointMake(47.7, 30.45)]; - [bezier3Path addLineToPoint: CGPointMake(47.64, 30.48)]; - [bezier3Path addLineToPoint: CGPointMake(47.59, 30.5)]; - [bezier3Path addLineToPoint: CGPointMake(47.53, 30.52)]; - [bezier3Path addLineToPoint: CGPointMake(47.48, 30.54)]; - [bezier3Path addLineToPoint: CGPointMake(47.42, 30.55)]; - [bezier3Path addLineToPoint: CGPointMake(47.37, 30.57)]; - [bezier3Path addLineToPoint: CGPointMake(47.31, 30.59)]; - [bezier3Path addLineToPoint: CGPointMake(47.26, 30.61)]; - [bezier3Path addLineToPoint: CGPointMake(47.21, 30.63)]; - [bezier3Path addLineToPoint: CGPointMake(47.15, 30.65)]; - [bezier3Path addLineToPoint: CGPointMake(47.1, 30.66)]; - [bezier3Path addLineToPoint: CGPointMake(47.04, 30.68)]; - [bezier3Path addLineToPoint: CGPointMake(46.99, 30.7)]; - [bezier3Path addLineToPoint: CGPointMake(46.93, 30.72)]; - [bezier3Path addLineToPoint: CGPointMake(46.88, 30.73)]; - [bezier3Path addLineToPoint: CGPointMake(46.82, 30.75)]; - [bezier3Path addLineToPoint: CGPointMake(46.77, 30.76)]; - [bezier3Path addLineToPoint: CGPointMake(46.71, 30.78)]; - [bezier3Path addLineToPoint: CGPointMake(46.66, 30.79)]; - [bezier3Path addLineToPoint: CGPointMake(46.6, 30.81)]; - [bezier3Path addLineToPoint: CGPointMake(46.55, 30.82)]; - [bezier3Path addLineToPoint: CGPointMake(46.49, 30.84)]; - [bezier3Path addLineToPoint: CGPointMake(46.44, 30.85)]; - [bezier3Path addLineToPoint: CGPointMake(46.38, 30.86)]; - [bezier3Path addLineToPoint: CGPointMake(46.33, 30.88)]; - [bezier3Path addLineToPoint: CGPointMake(46.27, 30.89)]; - [bezier3Path addLineToPoint: CGPointMake(46.22, 30.9)]; - [bezier3Path addLineToPoint: CGPointMake(46.16, 30.92)]; - [bezier3Path addLineToPoint: CGPointMake(46.11, 30.93)]; - [bezier3Path addLineToPoint: CGPointMake(46.05, 30.94)]; - [bezier3Path addLineToPoint: CGPointMake(46, 30.95)]; - [bezier3Path addLineToPoint: CGPointMake(45.94, 30.96)]; - [bezier3Path addLineToPoint: CGPointMake(45.89, 30.97)]; - [bezier3Path addLineToPoint: CGPointMake(45.83, 30.98)]; - [bezier3Path addLineToPoint: CGPointMake(45.78, 30.99)]; - [bezier3Path addLineToPoint: CGPointMake(45.72, 31)]; - [bezier3Path addLineToPoint: CGPointMake(45.67, 31.01)]; - [bezier3Path addLineToPoint: CGPointMake(45.61, 31.02)]; - [bezier3Path addLineToPoint: CGPointMake(45.56, 31.03)]; - [bezier3Path addLineToPoint: CGPointMake(45.5, 31.04)]; - [bezier3Path addLineToPoint: CGPointMake(45.45, 31.05)]; - [bezier3Path addLineToPoint: CGPointMake(45.39, 31.06)]; - [bezier3Path addLineToPoint: CGPointMake(45.34, 31.06)]; - [bezier3Path addLineToPoint: CGPointMake(45.29, 31.07)]; - [bezier3Path addLineToPoint: CGPointMake(45.23, 31.08)]; - [bezier3Path addLineToPoint: CGPointMake(45.18, 31.09)]; - [bezier3Path addLineToPoint: CGPointMake(45.12, 31.09)]; - [bezier3Path addLineToPoint: CGPointMake(45.07, 31.1)]; - [bezier3Path addLineToPoint: CGPointMake(45.01, 31.1)]; - [bezier3Path addLineToPoint: CGPointMake(44.96, 31.11)]; - [bezier3Path addLineToPoint: CGPointMake(44.9, 31.12)]; - [bezier3Path addLineToPoint: CGPointMake(44.85, 31.12)]; - [bezier3Path addLineToPoint: CGPointMake(44.79, 31.13)]; - [bezier3Path addLineToPoint: CGPointMake(44.74, 31.13)]; - [bezier3Path addLineToPoint: CGPointMake(44.68, 31.14)]; - [bezier3Path addLineToPoint: CGPointMake(44.63, 31.14)]; - [bezier3Path addLineToPoint: CGPointMake(44.57, 31.14)]; - [bezier3Path addLineToPoint: CGPointMake(44.52, 31.15)]; - [bezier3Path addLineToPoint: CGPointMake(44.46, 31.15)]; - [bezier3Path addLineToPoint: CGPointMake(44.41, 31.15)]; - [bezier3Path addLineToPoint: CGPointMake(44.35, 31.15)]; - [bezier3Path addLineToPoint: CGPointMake(44.3, 31.16)]; - [bezier3Path addLineToPoint: CGPointMake(44.24, 31.16)]; - [bezier3Path addLineToPoint: CGPointMake(44.19, 31.16)]; - [bezier3Path addLineToPoint: CGPointMake(44.13, 31.16)]; - [bezier3Path addLineToPoint: CGPointMake(44.08, 31.16)]; - [bezier3Path addCurveToPoint: CGPointMake(44.02, 31.16) controlPoint1: CGPointMake(44.06, 31.16) controlPoint2: CGPointMake(44.04, 31.16)]; - [bezier3Path addLineToPoint: CGPointMake(43.97, 31.16)]; - [bezier3Path addLineToPoint: CGPointMake(43.91, 31.16)]; - [bezier3Path addLineToPoint: CGPointMake(43.86, 31.16)]; - [bezier3Path addLineToPoint: CGPointMake(43.8, 31.16)]; - [bezier3Path addCurveToPoint: CGPointMake(43.75, 31.16) controlPoint1: CGPointMake(43.79, 31.16) controlPoint2: CGPointMake(43.77, 31.16)]; - [bezier3Path addCurveToPoint: CGPointMake(43.69, 31.15) controlPoint1: CGPointMake(43.73, 31.15) controlPoint2: CGPointMake(43.71, 31.15)]; - [bezier3Path addLineToPoint: CGPointMake(43.64, 31.15)]; - [bezier3Path addLineToPoint: CGPointMake(43.58, 31.15)]; - [bezier3Path addLineToPoint: CGPointMake(43.53, 31.14)]; - [bezier3Path addLineToPoint: CGPointMake(43.47, 31.14)]; - [bezier3Path addCurveToPoint: CGPointMake(43.42, 31.13) controlPoint1: CGPointMake(43.46, 31.14) controlPoint2: CGPointMake(43.44, 31.14)]; - [bezier3Path addCurveToPoint: CGPointMake(43.37, 31.13) controlPoint1: CGPointMake(43.4, 31.13) controlPoint2: CGPointMake(43.38, 31.13)]; - [bezier3Path addLineToPoint: CGPointMake(43.31, 31.12)]; - [bezier3Path addLineToPoint: CGPointMake(43.26, 31.12)]; - [bezier3Path addLineToPoint: CGPointMake(43.2, 31.11)]; - [bezier3Path addLineToPoint: CGPointMake(43.15, 31.1)]; - [bezier3Path addLineToPoint: CGPointMake(43.09, 31.1)]; - [bezier3Path addCurveToPoint: CGPointMake(43.04, 31.09) controlPoint1: CGPointMake(43.07, 31.09) controlPoint2: CGPointMake(43.05, 31.09)]; - [bezier3Path addCurveToPoint: CGPointMake(42.98, 31.08) controlPoint1: CGPointMake(43.02, 31.09) controlPoint2: CGPointMake(43, 31.08)]; - [bezier3Path addCurveToPoint: CGPointMake(42.93, 31.07) controlPoint1: CGPointMake(42.96, 31.08) controlPoint2: CGPointMake(42.94, 31.07)]; - [bezier3Path addCurveToPoint: CGPointMake(42.87, 31.06) controlPoint1: CGPointMake(42.91, 31.07) controlPoint2: CGPointMake(42.89, 31.06)]; - [bezier3Path addCurveToPoint: CGPointMake(42.82, 31.05) controlPoint1: CGPointMake(42.85, 31.06) controlPoint2: CGPointMake(42.83, 31.05)]; - [bezier3Path addCurveToPoint: CGPointMake(42.76, 31.04) controlPoint1: CGPointMake(42.8, 31.05) controlPoint2: CGPointMake(42.78, 31.04)]; - [bezier3Path addCurveToPoint: CGPointMake(42.71, 31.03) controlPoint1: CGPointMake(42.74, 31.03) controlPoint2: CGPointMake(42.72, 31.03)]; - [bezier3Path addCurveToPoint: CGPointMake(42.65, 31.01) controlPoint1: CGPointMake(42.69, 31.02) controlPoint2: CGPointMake(42.67, 31.02)]; - [bezier3Path addLineToPoint: CGPointMake(42.6, 31)]; - [bezier3Path addCurveToPoint: CGPointMake(42.54, 30.99) controlPoint1: CGPointMake(42.58, 31) controlPoint2: CGPointMake(42.56, 30.99)]; - [bezier3Path addCurveToPoint: CGPointMake(42.49, 30.97) controlPoint1: CGPointMake(42.52, 30.98) controlPoint2: CGPointMake(42.51, 30.98)]; - [bezier3Path addCurveToPoint: CGPointMake(42.43, 30.96) controlPoint1: CGPointMake(42.47, 30.97) controlPoint2: CGPointMake(42.45, 30.96)]; - [bezier3Path addCurveToPoint: CGPointMake(42.38, 30.94) controlPoint1: CGPointMake(42.41, 30.95) controlPoint2: CGPointMake(42.4, 30.95)]; - [bezier3Path addCurveToPoint: CGPointMake(42.32, 30.93) controlPoint1: CGPointMake(42.36, 30.94) controlPoint2: CGPointMake(42.34, 30.93)]; - [bezier3Path addCurveToPoint: CGPointMake(42.27, 30.91) controlPoint1: CGPointMake(42.3, 30.92) controlPoint2: CGPointMake(42.29, 30.92)]; - [bezier3Path addCurveToPoint: CGPointMake(42.21, 30.89) controlPoint1: CGPointMake(42.25, 30.91) controlPoint2: CGPointMake(42.23, 30.9)]; - [bezier3Path addCurveToPoint: CGPointMake(42.16, 30.88) controlPoint1: CGPointMake(42.19, 30.89) controlPoint2: CGPointMake(42.18, 30.88)]; - [bezier3Path addCurveToPoint: CGPointMake(42.1, 30.86) controlPoint1: CGPointMake(42.14, 30.87) controlPoint2: CGPointMake(42.12, 30.86)]; - [bezier3Path addCurveToPoint: CGPointMake(42.05, 30.84) controlPoint1: CGPointMake(42.09, 30.85) controlPoint2: CGPointMake(42.07, 30.84)]; - [bezier3Path addCurveToPoint: CGPointMake(41.99, 30.81) controlPoint1: CGPointMake(42.03, 30.83) controlPoint2: CGPointMake(42.01, 30.82)]; - [bezier3Path addCurveToPoint: CGPointMake(41.94, 30.79) controlPoint1: CGPointMake(41.98, 30.81) controlPoint2: CGPointMake(41.96, 30.8)]; - [bezier3Path addCurveToPoint: CGPointMake(41.88, 30.77) controlPoint1: CGPointMake(41.92, 30.79) controlPoint2: CGPointMake(41.9, 30.78)]; - [bezier3Path addCurveToPoint: CGPointMake(41.83, 30.75) controlPoint1: CGPointMake(41.87, 30.76) controlPoint2: CGPointMake(41.85, 30.75)]; - [bezier3Path addCurveToPoint: CGPointMake(41.77, 30.72) controlPoint1: CGPointMake(41.81, 30.74) controlPoint2: CGPointMake(41.79, 30.73)]; - [bezier3Path addCurveToPoint: CGPointMake(41.72, 30.7) controlPoint1: CGPointMake(41.76, 30.71) controlPoint2: CGPointMake(41.74, 30.71)]; - [bezier3Path addCurveToPoint: CGPointMake(41.66, 30.67) controlPoint1: CGPointMake(41.7, 30.69) controlPoint2: CGPointMake(41.68, 30.68)]; - [bezier3Path addCurveToPoint: CGPointMake(41.61, 30.64) controlPoint1: CGPointMake(41.65, 30.66) controlPoint2: CGPointMake(41.63, 30.65)]; - [bezier3Path addCurveToPoint: CGPointMake(41.55, 30.61) controlPoint1: CGPointMake(41.59, 30.63) controlPoint2: CGPointMake(41.57, 30.62)]; - [bezier3Path addCurveToPoint: CGPointMake(41.5, 30.58) controlPoint1: CGPointMake(41.54, 30.6) controlPoint2: CGPointMake(41.52, 30.59)]; - [bezier3Path addCurveToPoint: CGPointMake(41.45, 30.55) controlPoint1: CGPointMake(41.48, 30.57) controlPoint2: CGPointMake(41.46, 30.56)]; - [bezier3Path addCurveToPoint: CGPointMake(41.39, 30.52) controlPoint1: CGPointMake(41.43, 30.54) controlPoint2: CGPointMake(41.41, 30.53)]; - [bezier3Path addCurveToPoint: CGPointMake(41.34, 30.49) controlPoint1: CGPointMake(41.37, 30.51) controlPoint2: CGPointMake(41.35, 30.5)]; - [bezier3Path addCurveToPoint: CGPointMake(41.28, 30.45) controlPoint1: CGPointMake(41.32, 30.47) controlPoint2: CGPointMake(41.3, 30.46)]; - [bezier3Path addCurveToPoint: CGPointMake(41.23, 30.41) controlPoint1: CGPointMake(41.26, 30.44) controlPoint2: CGPointMake(41.24, 30.43)]; - [bezier3Path addCurveToPoint: CGPointMake(41.17, 30.38) controlPoint1: CGPointMake(41.21, 30.4) controlPoint2: CGPointMake(41.19, 30.39)]; - [bezier3Path addCurveToPoint: CGPointMake(41.12, 30.34) controlPoint1: CGPointMake(41.15, 30.36) controlPoint2: CGPointMake(41.13, 30.35)]; - [bezier3Path addCurveToPoint: CGPointMake(41.06, 30.3) controlPoint1: CGPointMake(41.1, 30.32) controlPoint2: CGPointMake(41.08, 30.31)]; - [bezier3Path addCurveToPoint: CGPointMake(41.01, 30.25) controlPoint1: CGPointMake(41.04, 30.28) controlPoint2: CGPointMake(41.02, 30.27)]; - [bezier3Path addCurveToPoint: CGPointMake(40.95, 30.21) controlPoint1: CGPointMake(40.99, 30.24) controlPoint2: CGPointMake(40.97, 30.22)]; - [bezier3Path addCurveToPoint: CGPointMake(40.9, 30.16) controlPoint1: CGPointMake(40.93, 30.19) controlPoint2: CGPointMake(40.91, 30.18)]; - [bezier3Path addCurveToPoint: CGPointMake(40.84, 30.11) controlPoint1: CGPointMake(40.88, 30.14) controlPoint2: CGPointMake(40.86, 30.13)]; - [bezier3Path addCurveToPoint: CGPointMake(40.79, 30.06) controlPoint1: CGPointMake(40.82, 30.09) controlPoint2: CGPointMake(40.8, 30.08)]; - [bezier3Path addCurveToPoint: CGPointMake(40.73, 30.01) controlPoint1: CGPointMake(40.77, 30.04) controlPoint2: CGPointMake(40.75, 30.02)]; - [bezier3Path addCurveToPoint: CGPointMake(40.68, 29.95) controlPoint1: CGPointMake(40.71, 29.99) controlPoint2: CGPointMake(40.7, 29.97)]; - [bezier3Path addCurveToPoint: CGPointMake(40.62, 29.89) controlPoint1: CGPointMake(40.66, 29.93) controlPoint2: CGPointMake(40.64, 29.91)]; - [bezier3Path addCurveToPoint: CGPointMake(40.57, 29.83) controlPoint1: CGPointMake(40.6, 29.87) controlPoint2: CGPointMake(40.59, 29.85)]; - [bezier3Path addCurveToPoint: CGPointMake(40.51, 29.76) controlPoint1: CGPointMake(40.55, 29.81) controlPoint2: CGPointMake(40.53, 29.78)]; - [bezier3Path addCurveToPoint: CGPointMake(40.46, 29.69) controlPoint1: CGPointMake(40.49, 29.74) controlPoint2: CGPointMake(40.48, 29.71)]; - [bezier3Path addCurveToPoint: CGPointMake(40.4, 29.62) controlPoint1: CGPointMake(40.44, 29.67) controlPoint2: CGPointMake(40.42, 29.64)]; - [bezier3Path addCurveToPoint: CGPointMake(40.35, 29.54) controlPoint1: CGPointMake(40.38, 29.59) controlPoint2: CGPointMake(40.37, 29.57)]; - [bezier3Path addCurveToPoint: CGPointMake(40.29, 29.45) controlPoint1: CGPointMake(40.33, 29.51) controlPoint2: CGPointMake(40.31, 29.48)]; - [bezier3Path addCurveToPoint: CGPointMake(40.24, 29.36) controlPoint1: CGPointMake(40.27, 29.42) controlPoint2: CGPointMake(40.26, 29.39)]; - [bezier3Path addCurveToPoint: CGPointMake(40.18, 29.27) controlPoint1: CGPointMake(40.22, 29.33) controlPoint2: CGPointMake(40.2, 29.3)]; - [bezier3Path addCurveToPoint: CGPointMake(40.13, 29.16) controlPoint1: CGPointMake(40.16, 29.23) controlPoint2: CGPointMake(40.15, 29.2)]; - [bezier3Path addCurveToPoint: CGPointMake(40.07, 29.05) controlPoint1: CGPointMake(40.11, 29.12) controlPoint2: CGPointMake(40.09, 29.09)]; - [bezier3Path addCurveToPoint: CGPointMake(40.02, 28.92) controlPoint1: CGPointMake(40.05, 29) controlPoint2: CGPointMake(40.04, 28.96)]; - [bezier3Path addCurveToPoint: CGPointMake(39.96, 28.77) controlPoint1: CGPointMake(40, 28.87) controlPoint2: CGPointMake(39.98, 28.82)]; - [bezier3Path addCurveToPoint: CGPointMake(39.91, 28.61) controlPoint1: CGPointMake(39.94, 28.72) controlPoint2: CGPointMake(39.93, 28.67)]; - [bezier3Path addCurveToPoint: CGPointMake(39.85, 28.41) controlPoint1: CGPointMake(39.89, 28.55) controlPoint2: CGPointMake(39.87, 28.48)]; - [bezier3Path addCurveToPoint: CGPointMake(39.8, 28.16) controlPoint1: CGPointMake(39.83, 28.33) controlPoint2: CGPointMake(39.82, 28.24)]; - [bezier3Path addCurveToPoint: CGPointMake(39.74, 27.76) controlPoint1: CGPointMake(39.78, 28.03) controlPoint2: CGPointMake(39.76, 27.9)]; - [bezier3Path addCurveToPoint: CGPointMake(39.72, 27.28) controlPoint1: CGPointMake(39.73, 27.6) controlPoint2: CGPointMake(39.72, 27.44)]; - [bezier3Path addCurveToPoint: CGPointMake(39.74, 26.79) controlPoint1: CGPointMake(39.72, 27.11) controlPoint2: CGPointMake(39.73, 26.95)]; - [bezier3Path addCurveToPoint: CGPointMake(39.8, 26.4) controlPoint1: CGPointMake(39.76, 26.66) controlPoint2: CGPointMake(39.78, 26.53)]; - [bezier3Path addCurveToPoint: CGPointMake(39.85, 26.14) controlPoint1: CGPointMake(39.82, 26.31) controlPoint2: CGPointMake(39.83, 26.23)]; - [bezier3Path addCurveToPoint: CGPointMake(39.91, 25.94) controlPoint1: CGPointMake(39.87, 26.08) controlPoint2: CGPointMake(39.89, 26.01)]; - [bezier3Path addCurveToPoint: CGPointMake(39.96, 25.78) controlPoint1: CGPointMake(39.93, 25.89) controlPoint2: CGPointMake(39.94, 25.83)]; - [bezier3Path addCurveToPoint: CGPointMake(40.02, 25.64) controlPoint1: CGPointMake(39.98, 25.73) controlPoint2: CGPointMake(40, 25.68)]; - [bezier3Path addCurveToPoint: CGPointMake(40.07, 25.51) controlPoint1: CGPointMake(40.04, 25.59) controlPoint2: CGPointMake(40.05, 25.55)]; - [bezier3Path addCurveToPoint: CGPointMake(40.13, 25.39) controlPoint1: CGPointMake(40.09, 25.47) controlPoint2: CGPointMake(40.11, 25.43)]; - [bezier3Path addCurveToPoint: CGPointMake(40.18, 25.29) controlPoint1: CGPointMake(40.15, 25.36) controlPoint2: CGPointMake(40.16, 25.32)]; - [bezier3Path addCurveToPoint: CGPointMake(40.24, 25.19) controlPoint1: CGPointMake(40.2, 25.25) controlPoint2: CGPointMake(40.22, 25.22)]; - [bezier3Path addCurveToPoint: CGPointMake(40.29, 25.1) controlPoint1: CGPointMake(40.26, 25.16) controlPoint2: CGPointMake(40.27, 25.13)]; - [bezier3Path addCurveToPoint: CGPointMake(40.35, 25.02) controlPoint1: CGPointMake(40.31, 25.07) controlPoint2: CGPointMake(40.33, 25.04)]; - [bezier3Path addCurveToPoint: CGPointMake(40.4, 24.94) controlPoint1: CGPointMake(40.37, 24.99) controlPoint2: CGPointMake(40.38, 24.96)]; - [bezier3Path addCurveToPoint: CGPointMake(40.46, 24.86) controlPoint1: CGPointMake(40.42, 24.91) controlPoint2: CGPointMake(40.44, 24.89)]; - [bezier3Path addCurveToPoint: CGPointMake(40.51, 24.79) controlPoint1: CGPointMake(40.48, 24.84) controlPoint2: CGPointMake(40.49, 24.82)]; - [bezier3Path addCurveToPoint: CGPointMake(40.57, 24.73) controlPoint1: CGPointMake(40.53, 24.77) controlPoint2: CGPointMake(40.55, 24.75)]; - [bezier3Path addCurveToPoint: CGPointMake(40.62, 24.66) controlPoint1: CGPointMake(40.59, 24.71) controlPoint2: CGPointMake(40.6, 24.69)]; - [bezier3Path addCurveToPoint: CGPointMake(40.68, 24.6) controlPoint1: CGPointMake(40.64, 24.64) controlPoint2: CGPointMake(40.66, 24.62)]; - [bezier3Path addCurveToPoint: CGPointMake(40.73, 24.55) controlPoint1: CGPointMake(40.7, 24.59) controlPoint2: CGPointMake(40.71, 24.57)]; - [bezier3Path addCurveToPoint: CGPointMake(40.79, 24.49) controlPoint1: CGPointMake(40.75, 24.53) controlPoint2: CGPointMake(40.77, 24.51)]; - [bezier3Path addCurveToPoint: CGPointMake(40.84, 24.44) controlPoint1: CGPointMake(40.8, 24.48) controlPoint2: CGPointMake(40.82, 24.46)]; - [bezier3Path addCurveToPoint: CGPointMake(40.9, 24.39) controlPoint1: CGPointMake(40.86, 24.43) controlPoint2: CGPointMake(40.88, 24.41)]; - [bezier3Path addCurveToPoint: CGPointMake(40.95, 24.35) controlPoint1: CGPointMake(40.91, 24.38) controlPoint2: CGPointMake(40.93, 24.36)]; - [bezier3Path addCurveToPoint: CGPointMake(41.01, 24.3) controlPoint1: CGPointMake(40.97, 24.33) controlPoint2: CGPointMake(40.99, 24.32)]; - [bezier3Path addCurveToPoint: CGPointMake(41.06, 24.26) controlPoint1: CGPointMake(41.02, 24.29) controlPoint2: CGPointMake(41.04, 24.27)]; - [bezier3Path addCurveToPoint: CGPointMake(41.12, 24.22) controlPoint1: CGPointMake(41.08, 24.24) controlPoint2: CGPointMake(41.1, 24.23)]; - [bezier3Path addCurveToPoint: CGPointMake(41.17, 24.18) controlPoint1: CGPointMake(41.13, 24.2) controlPoint2: CGPointMake(41.15, 24.19)]; - [bezier3Path addCurveToPoint: CGPointMake(41.23, 24.14) controlPoint1: CGPointMake(41.19, 24.16) controlPoint2: CGPointMake(41.21, 24.15)]; - [bezier3Path addCurveToPoint: CGPointMake(41.28, 24.1) controlPoint1: CGPointMake(41.24, 24.13) controlPoint2: CGPointMake(41.26, 24.11)]; - [bezier3Path addCurveToPoint: CGPointMake(41.34, 24.07) controlPoint1: CGPointMake(41.3, 24.09) controlPoint2: CGPointMake(41.32, 24.08)]; - [bezier3Path addCurveToPoint: CGPointMake(41.39, 24.03) controlPoint1: CGPointMake(41.35, 24.06) controlPoint2: CGPointMake(41.37, 24.04)]; - [bezier3Path addCurveToPoint: CGPointMake(41.45, 24) controlPoint1: CGPointMake(41.41, 24.02) controlPoint2: CGPointMake(41.43, 24.01)]; - [bezier3Path addCurveToPoint: CGPointMake(41.5, 23.97) controlPoint1: CGPointMake(41.46, 23.99) controlPoint2: CGPointMake(41.48, 23.98)]; - [bezier3Path addCurveToPoint: CGPointMake(41.55, 23.94) controlPoint1: CGPointMake(41.52, 23.96) controlPoint2: CGPointMake(41.54, 23.95)]; - [bezier3Path addCurveToPoint: CGPointMake(41.61, 23.91) controlPoint1: CGPointMake(41.57, 23.93) controlPoint2: CGPointMake(41.59, 23.92)]; - [bezier3Path addCurveToPoint: CGPointMake(41.66, 23.88) controlPoint1: CGPointMake(41.63, 23.9) controlPoint2: CGPointMake(41.65, 23.89)]; - [bezier3Path addCurveToPoint: CGPointMake(41.72, 23.86) controlPoint1: CGPointMake(41.68, 23.87) controlPoint2: CGPointMake(41.7, 23.87)]; - [bezier3Path addCurveToPoint: CGPointMake(41.77, 23.83) controlPoint1: CGPointMake(41.74, 23.85) controlPoint2: CGPointMake(41.76, 23.84)]; - [bezier3Path addCurveToPoint: CGPointMake(41.83, 23.81) controlPoint1: CGPointMake(41.79, 23.82) controlPoint2: CGPointMake(41.81, 23.81)]; - [bezier3Path addCurveToPoint: CGPointMake(41.88, 23.78) controlPoint1: CGPointMake(41.85, 23.8) controlPoint2: CGPointMake(41.87, 23.79)]; - [bezier3Path addCurveToPoint: CGPointMake(41.94, 23.76) controlPoint1: CGPointMake(41.9, 23.78) controlPoint2: CGPointMake(41.92, 23.77)]; - [bezier3Path addCurveToPoint: CGPointMake(41.99, 23.74) controlPoint1: CGPointMake(41.96, 23.75) controlPoint2: CGPointMake(41.98, 23.75)]; - [bezier3Path addCurveToPoint: CGPointMake(42.05, 23.72) controlPoint1: CGPointMake(42.01, 23.73) controlPoint2: CGPointMake(42.03, 23.72)]; - [bezier3Path addCurveToPoint: CGPointMake(42.1, 23.7) controlPoint1: CGPointMake(42.07, 23.71) controlPoint2: CGPointMake(42.09, 23.7)]; - [bezier3Path addCurveToPoint: CGPointMake(42.16, 23.68) controlPoint1: CGPointMake(42.12, 23.69) controlPoint2: CGPointMake(42.14, 23.68)]; - [bezier3Path addCurveToPoint: CGPointMake(42.21, 23.66) controlPoint1: CGPointMake(42.18, 23.67) controlPoint2: CGPointMake(42.19, 23.67)]; - [bezier3Path addCurveToPoint: CGPointMake(42.27, 23.64) controlPoint1: CGPointMake(42.23, 23.65) controlPoint2: CGPointMake(42.25, 23.65)]; - [bezier3Path addCurveToPoint: CGPointMake(42.32, 23.63) controlPoint1: CGPointMake(42.29, 23.64) controlPoint2: CGPointMake(42.3, 23.63)]; - [bezier3Path addCurveToPoint: CGPointMake(42.38, 23.61) controlPoint1: CGPointMake(42.34, 23.62) controlPoint2: CGPointMake(42.36, 23.61)]; - [bezier3Path addLineToPoint: CGPointMake(42.43, 23.59)]; - [bezier3Path addCurveToPoint: CGPointMake(42.49, 23.58) controlPoint1: CGPointMake(42.45, 23.59) controlPoint2: CGPointMake(42.47, 23.58)]; - [bezier3Path addCurveToPoint: CGPointMake(42.54, 23.56) controlPoint1: CGPointMake(42.51, 23.57) controlPoint2: CGPointMake(42.52, 23.57)]; - [bezier3Path addCurveToPoint: CGPointMake(42.6, 23.55) controlPoint1: CGPointMake(42.56, 23.56) controlPoint2: CGPointMake(42.58, 23.56)]; - [bezier3Path addLineToPoint: CGPointMake(42.65, 23.54)]; - [bezier3Path addCurveToPoint: CGPointMake(42.71, 23.53) controlPoint1: CGPointMake(42.67, 23.53) controlPoint2: CGPointMake(42.69, 23.53)]; - [bezier3Path addCurveToPoint: CGPointMake(42.76, 23.51) controlPoint1: CGPointMake(42.72, 23.52) controlPoint2: CGPointMake(42.74, 23.52)]; - [bezier3Path addCurveToPoint: CGPointMake(42.82, 23.5) controlPoint1: CGPointMake(42.78, 23.51) controlPoint2: CGPointMake(42.8, 23.51)]; - [bezier3Path addCurveToPoint: CGPointMake(42.87, 23.49) controlPoint1: CGPointMake(42.83, 23.5) controlPoint2: CGPointMake(42.85, 23.5)]; - [bezier3Path addCurveToPoint: CGPointMake(42.93, 23.48) controlPoint1: CGPointMake(42.89, 23.49) controlPoint2: CGPointMake(42.91, 23.49)]; - [bezier3Path addCurveToPoint: CGPointMake(42.98, 23.47) controlPoint1: CGPointMake(42.94, 23.48) controlPoint2: CGPointMake(42.96, 23.48)]; - [bezier3Path addCurveToPoint: CGPointMake(43.04, 23.47) controlPoint1: CGPointMake(43, 23.47) controlPoint2: CGPointMake(43.02, 23.47)]; - [bezier3Path addLineToPoint: CGPointMake(43.09, 23.46)]; - [bezier3Path addLineToPoint: CGPointMake(43.15, 23.45)]; - [bezier3Path addLineToPoint: CGPointMake(43.2, 23.44)]; - [bezier3Path addLineToPoint: CGPointMake(43.26, 23.44)]; - [bezier3Path addLineToPoint: CGPointMake(43.31, 23.43)]; - [bezier3Path addLineToPoint: CGPointMake(43.37, 23.42)]; - [bezier3Path addCurveToPoint: CGPointMake(43.42, 23.42) controlPoint1: CGPointMake(43.38, 23.42) controlPoint2: CGPointMake(43.4, 23.42)]; - [bezier3Path addCurveToPoint: CGPointMake(43.47, 23.41) controlPoint1: CGPointMake(43.44, 23.42) controlPoint2: CGPointMake(43.46, 23.42)]; - [bezier3Path addLineToPoint: CGPointMake(43.53, 23.41)]; - [bezier3Path addLineToPoint: CGPointMake(43.58, 23.41)]; - [bezier3Path addLineToPoint: CGPointMake(43.64, 23.4)]; - [bezier3Path addLineToPoint: CGPointMake(43.69, 23.4)]; - [bezier3Path addCurveToPoint: CGPointMake(43.75, 23.4) controlPoint1: CGPointMake(43.71, 23.4) controlPoint2: CGPointMake(43.73, 23.4)]; - [bezier3Path addCurveToPoint: CGPointMake(43.8, 23.4) controlPoint1: CGPointMake(43.77, 23.4) controlPoint2: CGPointMake(43.79, 23.4)]; - [bezier3Path addLineToPoint: CGPointMake(43.86, 23.39)]; - [bezier3Path addLineToPoint: CGPointMake(43.91, 23.39)]; - [bezier3Path addLineToPoint: CGPointMake(43.97, 23.39)]; - [bezier3Path addLineToPoint: CGPointMake(44.02, 23.39)]; - [bezier3Path addCurveToPoint: CGPointMake(44.08, 23.39) controlPoint1: CGPointMake(44.04, 23.39) controlPoint2: CGPointMake(44.06, 23.39)]; - [bezier3Path addLineToPoint: CGPointMake(44.13, 23.39)]; - [bezier3Path addLineToPoint: CGPointMake(44.19, 23.39)]; - [bezier3Path addLineToPoint: CGPointMake(44.24, 23.4)]; - [bezier3Path addLineToPoint: CGPointMake(44.3, 23.4)]; - [bezier3Path addLineToPoint: CGPointMake(44.35, 23.4)]; - [bezier3Path addLineToPoint: CGPointMake(44.41, 23.4)]; - [bezier3Path addLineToPoint: CGPointMake(44.46, 23.4)]; - [bezier3Path addLineToPoint: CGPointMake(44.52, 23.41)]; - [bezier3Path addLineToPoint: CGPointMake(44.57, 23.41)]; - [bezier3Path addLineToPoint: CGPointMake(44.63, 23.41)]; - [bezier3Path addLineToPoint: CGPointMake(44.68, 23.42)]; - [bezier3Path addLineToPoint: CGPointMake(44.74, 23.42)]; - [bezier3Path addLineToPoint: CGPointMake(44.79, 23.43)]; - [bezier3Path addLineToPoint: CGPointMake(44.85, 23.43)]; - [bezier3Path addLineToPoint: CGPointMake(44.9, 23.44)]; - [bezier3Path addLineToPoint: CGPointMake(44.96, 23.44)]; - [bezier3Path addLineToPoint: CGPointMake(45.01, 23.45)]; - [bezier3Path addLineToPoint: CGPointMake(45.07, 23.45)]; - [bezier3Path addLineToPoint: CGPointMake(45.12, 23.46)]; - [bezier3Path addLineToPoint: CGPointMake(45.18, 23.47)]; - [bezier3Path addLineToPoint: CGPointMake(45.23, 23.47)]; - [bezier3Path addLineToPoint: CGPointMake(45.29, 23.48)]; - [bezier3Path addLineToPoint: CGPointMake(45.34, 23.49)]; - [bezier3Path addLineToPoint: CGPointMake(45.39, 23.5)]; - [bezier3Path addLineToPoint: CGPointMake(45.45, 23.5)]; - [bezier3Path addLineToPoint: CGPointMake(45.5, 23.51)]; - [bezier3Path addLineToPoint: CGPointMake(45.56, 23.52)]; - [bezier3Path addLineToPoint: CGPointMake(45.61, 23.53)]; - [bezier3Path addLineToPoint: CGPointMake(45.67, 23.54)]; - [bezier3Path addLineToPoint: CGPointMake(45.72, 23.55)]; - [bezier3Path addLineToPoint: CGPointMake(45.78, 23.56)]; - [bezier3Path addLineToPoint: CGPointMake(45.83, 23.57)]; - [bezier3Path addLineToPoint: CGPointMake(45.89, 23.58)]; - [bezier3Path addLineToPoint: CGPointMake(45.94, 23.59)]; - [bezier3Path addLineToPoint: CGPointMake(46, 23.6)]; - [bezier3Path addLineToPoint: CGPointMake(46.05, 23.61)]; - [bezier3Path addLineToPoint: CGPointMake(46.11, 23.62)]; - [bezier3Path addLineToPoint: CGPointMake(46.16, 23.64)]; - [bezier3Path addLineToPoint: CGPointMake(46.22, 23.65)]; - [bezier3Path addLineToPoint: CGPointMake(46.27, 23.66)]; - [bezier3Path addLineToPoint: CGPointMake(46.33, 23.67)]; - [bezier3Path addLineToPoint: CGPointMake(46.38, 23.69)]; - [bezier3Path addLineToPoint: CGPointMake(46.44, 23.7)]; - [bezier3Path addLineToPoint: CGPointMake(46.49, 23.71)]; - [bezier3Path addLineToPoint: CGPointMake(46.55, 23.73)]; - [bezier3Path addLineToPoint: CGPointMake(46.6, 23.74)]; - [bezier3Path addLineToPoint: CGPointMake(46.66, 23.76)]; - [bezier3Path addLineToPoint: CGPointMake(46.71, 23.77)]; - [bezier3Path addLineToPoint: CGPointMake(46.77, 23.79)]; - [bezier3Path addLineToPoint: CGPointMake(46.82, 23.8)]; - [bezier3Path addLineToPoint: CGPointMake(46.88, 23.82)]; - [bezier3Path addLineToPoint: CGPointMake(46.93, 23.84)]; - [bezier3Path addLineToPoint: CGPointMake(46.99, 23.85)]; - [bezier3Path addLineToPoint: CGPointMake(47.04, 23.87)]; - [bezier3Path addLineToPoint: CGPointMake(47.1, 23.89)]; - [bezier3Path addLineToPoint: CGPointMake(47.15, 23.9)]; - [bezier3Path addLineToPoint: CGPointMake(47.21, 23.92)]; - [bezier3Path addLineToPoint: CGPointMake(47.26, 23.94)]; - [bezier3Path addLineToPoint: CGPointMake(47.31, 23.96)]; - [bezier3Path addLineToPoint: CGPointMake(47.37, 23.98)]; - [bezier3Path addLineToPoint: CGPointMake(47.42, 24)]; - [bezier3Path addLineToPoint: CGPointMake(47.48, 24.02)]; - [bezier3Path addLineToPoint: CGPointMake(47.53, 24.03)]; - [bezier3Path addLineToPoint: CGPointMake(47.59, 24.05)]; - [bezier3Path addLineToPoint: CGPointMake(47.64, 24.08)]; - [bezier3Path addLineToPoint: CGPointMake(47.7, 24.1)]; - [bezier3Path addLineToPoint: CGPointMake(47.75, 24.12)]; - [bezier3Path addLineToPoint: CGPointMake(47.81, 24.14)]; - [bezier3Path addLineToPoint: CGPointMake(47.86, 24.16)]; - [bezier3Path addLineToPoint: CGPointMake(47.92, 24.18)]; - [bezier3Path addLineToPoint: CGPointMake(47.97, 24.2)]; - [bezier3Path addLineToPoint: CGPointMake(48.03, 24.23)]; - [bezier3Path addLineToPoint: CGPointMake(48.08, 24.25)]; - [bezier3Path addLineToPoint: CGPointMake(48.14, 24.27)]; - [bezier3Path addLineToPoint: CGPointMake(48.19, 24.3)]; - [bezier3Path addLineToPoint: CGPointMake(48.25, 24.32)]; - [bezier3Path addLineToPoint: CGPointMake(48.3, 24.34)]; - [bezier3Path addLineToPoint: CGPointMake(48.36, 24.37)]; - [bezier3Path addLineToPoint: CGPointMake(48.41, 24.39)]; - [bezier3Path addLineToPoint: CGPointMake(48.47, 24.42)]; - [bezier3Path addLineToPoint: CGPointMake(48.52, 24.44)]; - [bezier3Path addLineToPoint: CGPointMake(48.58, 24.47)]; - [bezier3Path addLineToPoint: CGPointMake(48.63, 24.49)]; - [bezier3Path addLineToPoint: CGPointMake(48.69, 24.52)]; - [bezier3Path addLineToPoint: CGPointMake(48.74, 24.54)]; - [bezier3Path addLineToPoint: CGPointMake(48.8, 24.57)]; - [bezier3Path addLineToPoint: CGPointMake(48.85, 24.6)]; - [bezier3Path addLineToPoint: CGPointMake(48.91, 24.62)]; - [bezier3Path addLineToPoint: CGPointMake(48.96, 24.65)]; - [bezier3Path addLineToPoint: CGPointMake(48.96, 22.28)]; - [bezier3Path addLineToPoint: CGPointMake(48.91, 22.27)]; - [bezier3Path addLineToPoint: CGPointMake(48.85, 22.26)]; - [bezier3Path addLineToPoint: CGPointMake(48.8, 22.25)]; - [bezier3Path addLineToPoint: CGPointMake(48.74, 22.23)]; - [bezier3Path addLineToPoint: CGPointMake(48.69, 22.22)]; - [bezier3Path addLineToPoint: CGPointMake(48.63, 22.21)]; - [bezier3Path addLineToPoint: CGPointMake(48.58, 22.2)]; - [bezier3Path addLineToPoint: CGPointMake(48.52, 22.18)]; - [bezier3Path addLineToPoint: CGPointMake(48.47, 22.17)]; - [bezier3Path addLineToPoint: CGPointMake(48.41, 22.16)]; - [bezier3Path addLineToPoint: CGPointMake(48.36, 22.15)]; - [bezier3Path addLineToPoint: CGPointMake(48.3, 22.14)]; - [bezier3Path addLineToPoint: CGPointMake(48.25, 22.12)]; - [bezier3Path addLineToPoint: CGPointMake(48.19, 22.11)]; - [bezier3Path addLineToPoint: CGPointMake(48.14, 22.1)]; - [bezier3Path addLineToPoint: CGPointMake(48.08, 22.09)]; - [bezier3Path addLineToPoint: CGPointMake(48.03, 22.08)]; - [bezier3Path addLineToPoint: CGPointMake(47.97, 22.07)]; - [bezier3Path addLineToPoint: CGPointMake(47.92, 22.06)]; - [bezier3Path addLineToPoint: CGPointMake(47.86, 22.05)]; - [bezier3Path addLineToPoint: CGPointMake(47.81, 22.04)]; - [bezier3Path addLineToPoint: CGPointMake(47.75, 22.03)]; - [bezier3Path addLineToPoint: CGPointMake(47.7, 22.02)]; - [bezier3Path addLineToPoint: CGPointMake(47.64, 22.01)]; - [bezier3Path addLineToPoint: CGPointMake(47.59, 22)]; - [bezier3Path addLineToPoint: CGPointMake(47.53, 21.99)]; - [bezier3Path addLineToPoint: CGPointMake(47.48, 21.98)]; - [bezier3Path addLineToPoint: CGPointMake(47.42, 21.97)]; - [bezier3Path addLineToPoint: CGPointMake(47.37, 21.96)]; - [bezier3Path addLineToPoint: CGPointMake(47.31, 21.95)]; - [bezier3Path addLineToPoint: CGPointMake(47.26, 21.94)]; - [bezier3Path addLineToPoint: CGPointMake(47.21, 21.93)]; - [bezier3Path addLineToPoint: CGPointMake(47.15, 21.92)]; - [bezier3Path addLineToPoint: CGPointMake(47.1, 21.91)]; - [bezier3Path addLineToPoint: CGPointMake(47.04, 21.9)]; - [bezier3Path addLineToPoint: CGPointMake(46.99, 21.89)]; - [bezier3Path addLineToPoint: CGPointMake(46.93, 21.88)]; - [bezier3Path addLineToPoint: CGPointMake(46.88, 21.87)]; - [bezier3Path addLineToPoint: CGPointMake(46.82, 21.86)]; - [bezier3Path addLineToPoint: CGPointMake(46.77, 21.86)]; - [bezier3Path addLineToPoint: CGPointMake(46.71, 21.85)]; - [bezier3Path addLineToPoint: CGPointMake(46.66, 21.84)]; - [bezier3Path addLineToPoint: CGPointMake(46.6, 21.83)]; - [bezier3Path addLineToPoint: CGPointMake(46.55, 21.82)]; - [bezier3Path addLineToPoint: CGPointMake(46.49, 21.81)]; - [bezier3Path addLineToPoint: CGPointMake(46.44, 21.81)]; - [bezier3Path addLineToPoint: CGPointMake(46.38, 21.8)]; - [bezier3Path addLineToPoint: CGPointMake(46.33, 21.79)]; - [bezier3Path addLineToPoint: CGPointMake(46.27, 21.78)]; - [bezier3Path addLineToPoint: CGPointMake(46.22, 21.78)]; - [bezier3Path addLineToPoint: CGPointMake(46.16, 21.77)]; - [bezier3Path addLineToPoint: CGPointMake(46.11, 21.76)]; - [bezier3Path addLineToPoint: CGPointMake(46.05, 21.76)]; - [bezier3Path addLineToPoint: CGPointMake(46, 21.75)]; - [bezier3Path addLineToPoint: CGPointMake(45.94, 21.74)]; - [bezier3Path addLineToPoint: CGPointMake(45.89, 21.74)]; - [bezier3Path addLineToPoint: CGPointMake(45.83, 21.73)]; - [bezier3Path addLineToPoint: CGPointMake(45.78, 21.72)]; - [bezier3Path addLineToPoint: CGPointMake(45.72, 21.72)]; - [bezier3Path addLineToPoint: CGPointMake(45.67, 21.71)]; - [bezier3Path addLineToPoint: CGPointMake(45.61, 21.7)]; - [bezier3Path addLineToPoint: CGPointMake(45.56, 21.7)]; - [bezier3Path addLineToPoint: CGPointMake(45.5, 21.69)]; - [bezier3Path addLineToPoint: CGPointMake(45.45, 21.69)]; - [bezier3Path addLineToPoint: CGPointMake(45.39, 21.68)]; - [bezier3Path addLineToPoint: CGPointMake(45.34, 21.68)]; - [bezier3Path addLineToPoint: CGPointMake(45.29, 21.67)]; - [bezier3Path addLineToPoint: CGPointMake(45.23, 21.67)]; - [bezier3Path addLineToPoint: CGPointMake(45.18, 21.66)]; - [bezier3Path addLineToPoint: CGPointMake(45.12, 21.66)]; - [bezier3Path addLineToPoint: CGPointMake(45.07, 21.65)]; - [bezier3Path addLineToPoint: CGPointMake(45.01, 21.65)]; - [bezier3Path addLineToPoint: CGPointMake(44.96, 21.65)]; - [bezier3Path addLineToPoint: CGPointMake(44.9, 21.64)]; - [bezier3Path addLineToPoint: CGPointMake(44.85, 21.64)]; - [bezier3Path addLineToPoint: CGPointMake(44.79, 21.63)]; - [bezier3Path addLineToPoint: CGPointMake(44.74, 21.63)]; - [bezier3Path addLineToPoint: CGPointMake(44.68, 21.63)]; - [bezier3Path addLineToPoint: CGPointMake(44.63, 21.62)]; - [bezier3Path addLineToPoint: CGPointMake(44.57, 21.62)]; - [bezier3Path addLineToPoint: CGPointMake(44.52, 21.62)]; - [bezier3Path addLineToPoint: CGPointMake(44.46, 21.62)]; - [bezier3Path addLineToPoint: CGPointMake(44.41, 21.61)]; - [bezier3Path addLineToPoint: CGPointMake(44.35, 21.61)]; - [bezier3Path addLineToPoint: CGPointMake(44.3, 21.61)]; - [bezier3Path addLineToPoint: CGPointMake(44.24, 21.61)]; - [bezier3Path addLineToPoint: CGPointMake(44.19, 21.61)]; - [bezier3Path addLineToPoint: CGPointMake(44.13, 21.6)]; - [bezier3Path addLineToPoint: CGPointMake(44.08, 21.6)]; - [bezier3Path addLineToPoint: CGPointMake(44.02, 21.6)]; - [bezier3Path addLineToPoint: CGPointMake(43.97, 21.6)]; - [bezier3Path addLineToPoint: CGPointMake(43.91, 21.6)]; - [bezier3Path addLineToPoint: CGPointMake(43.86, 21.6)]; - [bezier3Path addLineToPoint: CGPointMake(43.8, 21.6)]; - [bezier3Path addLineToPoint: CGPointMake(43.75, 21.59)]; - [bezier3Path addLineToPoint: CGPointMake(43.69, 21.59)]; - [bezier3Path addLineToPoint: CGPointMake(43.64, 21.59)]; - [bezier3Path addLineToPoint: CGPointMake(43.58, 21.59)]; - [bezier3Path addLineToPoint: CGPointMake(43.53, 21.59)]; - [bezier3Path addLineToPoint: CGPointMake(43.47, 21.59)]; - [bezier3Path addLineToPoint: CGPointMake(43.42, 21.59)]; - [bezier3Path addLineToPoint: CGPointMake(43.37, 21.59)]; - [bezier3Path addLineToPoint: CGPointMake(43.31, 21.59)]; - [bezier3Path addLineToPoint: CGPointMake(43.26, 21.59)]; - [bezier3Path addLineToPoint: CGPointMake(43.2, 21.59)]; - [bezier3Path addLineToPoint: CGPointMake(43.15, 21.59)]; - [bezier3Path addLineToPoint: CGPointMake(43.09, 21.59)]; - [bezier3Path addLineToPoint: CGPointMake(43.04, 21.59)]; - [bezier3Path addLineToPoint: CGPointMake(42.98, 21.59)]; - [bezier3Path addLineToPoint: CGPointMake(42.93, 21.6)]; - [bezier3Path addLineToPoint: CGPointMake(42.87, 21.6)]; - [bezier3Path addLineToPoint: CGPointMake(42.82, 21.6)]; - [bezier3Path addLineToPoint: CGPointMake(42.76, 21.6)]; - [bezier3Path addLineToPoint: CGPointMake(42.71, 21.6)]; - [bezier3Path addLineToPoint: CGPointMake(42.65, 21.6)]; - [bezier3Path addLineToPoint: CGPointMake(42.6, 21.6)]; - [bezier3Path addLineToPoint: CGPointMake(42.54, 21.61)]; - [bezier3Path addLineToPoint: CGPointMake(42.49, 21.61)]; - [bezier3Path addLineToPoint: CGPointMake(42.43, 21.61)]; - [bezier3Path addLineToPoint: CGPointMake(42.38, 21.61)]; - [bezier3Path addLineToPoint: CGPointMake(42.32, 21.61)]; - [bezier3Path addLineToPoint: CGPointMake(42.27, 21.62)]; - [bezier3Path addLineToPoint: CGPointMake(42.21, 21.62)]; - [bezier3Path addLineToPoint: CGPointMake(42.16, 21.62)]; - [bezier3Path addLineToPoint: CGPointMake(42.1, 21.63)]; - [bezier3Path addLineToPoint: CGPointMake(42.05, 21.63)]; - [bezier3Path addLineToPoint: CGPointMake(41.99, 21.63)]; - [bezier3Path addLineToPoint: CGPointMake(41.94, 21.64)]; - [bezier3Path addLineToPoint: CGPointMake(41.88, 21.64)]; - [bezier3Path addLineToPoint: CGPointMake(41.83, 21.64)]; - [bezier3Path addLineToPoint: CGPointMake(41.77, 21.65)]; - [bezier3Path addLineToPoint: CGPointMake(41.72, 21.65)]; - [bezier3Path addLineToPoint: CGPointMake(41.66, 21.66)]; - [bezier3Path addLineToPoint: CGPointMake(41.61, 21.66)]; - [bezier3Path addLineToPoint: CGPointMake(41.55, 21.67)]; - [bezier3Path addLineToPoint: CGPointMake(41.5, 21.67)]; - [bezier3Path addLineToPoint: CGPointMake(41.45, 21.68)]; - [bezier3Path addLineToPoint: CGPointMake(41.39, 21.68)]; - [bezier3Path addLineToPoint: CGPointMake(41.34, 21.69)]; - [bezier3Path addLineToPoint: CGPointMake(41.28, 21.69)]; - [bezier3Path addLineToPoint: CGPointMake(41.23, 21.7)]; - [bezier3Path addLineToPoint: CGPointMake(41.17, 21.71)]; - [bezier3Path addLineToPoint: CGPointMake(41.12, 21.71)]; - [bezier3Path addLineToPoint: CGPointMake(41.06, 21.72)]; - [bezier3Path addLineToPoint: CGPointMake(41.01, 21.72)]; - [bezier3Path addLineToPoint: CGPointMake(40.95, 21.73)]; - [bezier3Path addLineToPoint: CGPointMake(40.9, 21.74)]; - [bezier3Path addLineToPoint: CGPointMake(40.84, 21.75)]; - [bezier3Path addLineToPoint: CGPointMake(40.79, 21.75)]; - [bezier3Path addLineToPoint: CGPointMake(40.73, 21.76)]; - [bezier3Path addLineToPoint: CGPointMake(40.68, 21.77)]; - [bezier3Path addLineToPoint: CGPointMake(40.62, 21.78)]; - [bezier3Path addLineToPoint: CGPointMake(40.57, 21.79)]; - [bezier3Path addLineToPoint: CGPointMake(40.51, 21.79)]; - [bezier3Path addLineToPoint: CGPointMake(40.46, 21.8)]; - [bezier3Path addLineToPoint: CGPointMake(40.4, 21.81)]; - [bezier3Path addLineToPoint: CGPointMake(40.35, 21.82)]; - [bezier3Path addLineToPoint: CGPointMake(40.29, 21.83)]; - [bezier3Path addLineToPoint: CGPointMake(40.24, 21.84)]; - [bezier3Path addLineToPoint: CGPointMake(40.18, 21.85)]; - [bezier3Path addLineToPoint: CGPointMake(40.13, 21.86)]; - [bezier3Path addLineToPoint: CGPointMake(40.07, 21.87)]; - [bezier3Path addLineToPoint: CGPointMake(40.02, 21.88)]; - [bezier3Path addLineToPoint: CGPointMake(39.96, 21.89)]; - [bezier3Path addLineToPoint: CGPointMake(39.91, 21.9)]; - [bezier3Path addLineToPoint: CGPointMake(39.85, 21.92)]; - [bezier3Path addLineToPoint: CGPointMake(39.8, 21.93)]; - [bezier3Path addLineToPoint: CGPointMake(39.74, 21.94)]; - [bezier3Path addLineToPoint: CGPointMake(39.69, 21.95)]; - [bezier3Path addLineToPoint: CGPointMake(39.63, 21.96)]; - [bezier3Path addLineToPoint: CGPointMake(39.58, 21.98)]; - [bezier3Path addLineToPoint: CGPointMake(39.53, 21.99)]; - [bezier3Path addLineToPoint: CGPointMake(39.47, 22)]; - [bezier3Path addLineToPoint: CGPointMake(39.42, 22.02)]; - [bezier3Path addLineToPoint: CGPointMake(39.36, 22.03)]; - [bezier3Path addLineToPoint: CGPointMake(39.31, 22.05)]; - [bezier3Path addLineToPoint: CGPointMake(39.25, 22.06)]; - [bezier3Path addLineToPoint: CGPointMake(39.2, 22.08)]; - [bezier3Path addLineToPoint: CGPointMake(39.14, 22.09)]; - [bezier3Path addLineToPoint: CGPointMake(39.09, 22.11)]; - [bezier3Path addLineToPoint: CGPointMake(39.03, 22.12)]; - [bezier3Path addLineToPoint: CGPointMake(38.98, 22.14)]; - [bezier3Path addLineToPoint: CGPointMake(38.92, 22.16)]; - [bezier3Path addLineToPoint: CGPointMake(38.87, 22.17)]; - [bezier3Path addCurveToPoint: CGPointMake(38.81, 22.19) controlPoint1: CGPointMake(38.85, 22.18) controlPoint2: CGPointMake(38.83, 22.18)]; - [bezier3Path addLineToPoint: CGPointMake(38.76, 22.21)]; - [bezier3Path addCurveToPoint: CGPointMake(38.7, 22.23) controlPoint1: CGPointMake(38.74, 22.21) controlPoint2: CGPointMake(38.72, 22.22)]; - [bezier3Path addLineToPoint: CGPointMake(38.65, 22.25)]; - [bezier3Path addLineToPoint: CGPointMake(38.59, 22.26)]; - [bezier3Path addCurveToPoint: CGPointMake(38.54, 22.28) controlPoint1: CGPointMake(38.57, 22.27) controlPoint2: CGPointMake(38.56, 22.28)]; - [bezier3Path addCurveToPoint: CGPointMake(38.48, 22.3) controlPoint1: CGPointMake(38.52, 22.29) controlPoint2: CGPointMake(38.5, 22.3)]; - [bezier3Path addLineToPoint: CGPointMake(38.43, 22.32)]; - [bezier3Path addCurveToPoint: CGPointMake(38.37, 22.34) controlPoint1: CGPointMake(38.41, 22.33) controlPoint2: CGPointMake(38.39, 22.34)]; - [bezier3Path addLineToPoint: CGPointMake(38.32, 22.37)]; - [bezier3Path addLineToPoint: CGPointMake(38.26, 22.39)]; - [bezier3Path addLineToPoint: CGPointMake(38.21, 22.41)]; - [bezier3Path addLineToPoint: CGPointMake(38.15, 22.43)]; - [bezier3Path addLineToPoint: CGPointMake(38.1, 22.45)]; - [bezier3Path addLineToPoint: CGPointMake(38.04, 22.48)]; - [bezier3Path addLineToPoint: CGPointMake(37.99, 22.5)]; - [bezier3Path addLineToPoint: CGPointMake(37.93, 22.53)]; - [bezier3Path addLineToPoint: CGPointMake(37.88, 22.55)]; - [bezier3Path addCurveToPoint: CGPointMake(37.82, 22.58) controlPoint1: CGPointMake(37.86, 22.56) controlPoint2: CGPointMake(37.84, 22.57)]; - [bezier3Path addLineToPoint: CGPointMake(37.77, 22.6)]; - [bezier3Path addLineToPoint: CGPointMake(37.71, 22.63)]; - [bezier3Path addLineToPoint: CGPointMake(37.66, 22.66)]; - [bezier3Path addCurveToPoint: CGPointMake(37.61, 22.69) controlPoint1: CGPointMake(37.64, 22.67) controlPoint2: CGPointMake(37.62, 22.68)]; - [bezier3Path addCurveToPoint: CGPointMake(37.55, 22.71) controlPoint1: CGPointMake(37.59, 22.69) controlPoint2: CGPointMake(37.57, 22.7)]; - [bezier3Path addLineToPoint: CGPointMake(37.5, 22.74)]; - [bezier3Path addLineToPoint: CGPointMake(37.44, 22.77)]; - [bezier3Path addCurveToPoint: CGPointMake(37.39, 22.8) controlPoint1: CGPointMake(37.42, 22.78) controlPoint2: CGPointMake(37.4, 22.79)]; - [bezier3Path addCurveToPoint: CGPointMake(37.33, 22.83) controlPoint1: CGPointMake(37.37, 22.81) controlPoint2: CGPointMake(37.35, 22.82)]; - [bezier3Path addCurveToPoint: CGPointMake(37.28, 22.87) controlPoint1: CGPointMake(37.31, 22.85) controlPoint2: CGPointMake(37.29, 22.86)]; - [bezier3Path addCurveToPoint: CGPointMake(37.22, 22.9) controlPoint1: CGPointMake(37.26, 22.88) controlPoint2: CGPointMake(37.24, 22.89)]; - [bezier3Path addCurveToPoint: CGPointMake(37.17, 22.93) controlPoint1: CGPointMake(37.2, 22.91) controlPoint2: CGPointMake(37.18, 22.92)]; - [bezier3Path addCurveToPoint: CGPointMake(37.11, 22.97) controlPoint1: CGPointMake(37.15, 22.94) controlPoint2: CGPointMake(37.13, 22.96)]; - [bezier3Path addLineToPoint: CGPointMake(37.06, 23)]; - [bezier3Path addCurveToPoint: CGPointMake(37, 23.04) controlPoint1: CGPointMake(37.04, 23.01) controlPoint2: CGPointMake(37.02, 23.03)]; - [bezier3Path addLineToPoint: CGPointMake(36.95, 23.08)]; - [bezier3Path addCurveToPoint: CGPointMake(36.89, 23.11) controlPoint1: CGPointMake(36.93, 23.09) controlPoint2: CGPointMake(36.91, 23.1)]; - [bezier3Path addCurveToPoint: CGPointMake(36.84, 23.15) controlPoint1: CGPointMake(36.87, 23.13) controlPoint2: CGPointMake(36.86, 23.14)]; - [bezier3Path addCurveToPoint: CGPointMake(36.78, 23.19) controlPoint1: CGPointMake(36.82, 23.17) controlPoint2: CGPointMake(36.8, 23.18)]; - [bezier3Path addCurveToPoint: CGPointMake(36.73, 23.23) controlPoint1: CGPointMake(36.76, 23.21) controlPoint2: CGPointMake(36.75, 23.22)]; - [bezier3Path addCurveToPoint: CGPointMake(36.67, 23.27) controlPoint1: CGPointMake(36.71, 23.25) controlPoint2: CGPointMake(36.69, 23.26)]; - [bezier3Path addCurveToPoint: CGPointMake(36.62, 23.32) controlPoint1: CGPointMake(36.65, 23.29) controlPoint2: CGPointMake(36.64, 23.3)]; - [bezier3Path addCurveToPoint: CGPointMake(36.5, 23.41) controlPoint1: CGPointMake(36.58, 23.35) controlPoint2: CGPointMake(36.54, 23.38)]; - [bezier3Path closePath]; - bezier3Path.miterLimit = 4; - - bezier3Path.usesEvenOddFillRule = YES; - - CGContextSaveGState(context); - [bezier3Path addClip]; - CGContextDrawLinearGradient(context, linearGradient3, - CGPointMake(36.5, 27.28), - CGPointMake(50.54, 27.28), - kCGGradientDrawsBeforeStartLocation | kCGGradientDrawsAfterEndLocation); - CGContextRestoreGState(context); - } - } - - - //// Cleanup - CGGradientRelease(linearGradient3); - CGGradientRelease(linearGradient1); - CGGradientRelease(linearGradient2); - CGColorSpaceRelease(colorSpace); - -} - - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIMaestroVectorArtView.h b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIMaestroVectorArtView.h deleted file mode 100644 index 7b63195..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIMaestroVectorArtView.h +++ /dev/null @@ -1,5 +0,0 @@ -#import "BTUICardVectorArtView.h" - -@interface BTUIMaestroVectorArtView : BTUICardVectorArtView - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIMaestroVectorArtView.m b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIMaestroVectorArtView.m deleted file mode 100644 index 81dd870..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIMaestroVectorArtView.m +++ /dev/null @@ -1,309 +0,0 @@ -#import "BTUIMaestroVectorArtView.h" - -@implementation BTUIMaestroVectorArtView - -- (void)drawArt { - //// Color Declarations - UIColor* color3 = [UIColor colorWithRed: 1 green: 1 blue: 1 alpha: 1]; - UIColor* color1 = [UIColor colorWithRed: 0.067 green: 0.541 blue: 0.834 alpha: 1]; - UIColor* color2 = [UIColor colorWithRed: 0.899 green: 0 blue: 0.139 alpha: 1]; - - //// Page-1 - { - //// Maestro - { - //// Shape - { - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint: CGPointMake(43.91, 40.1)]; - [bezierPath addCurveToPoint: CGPointMake(49.5, 27.5) controlPoint1: CGPointMake(47.34, 36.99) controlPoint2: CGPointMake(49.5, 32.5)]; - [bezierPath addCurveToPoint: CGPointMake(43.91, 14.9) controlPoint1: CGPointMake(49.5, 22.5) controlPoint2: CGPointMake(47.34, 18.01)]; - [bezierPath addCurveToPoint: CGPointMake(32.5, 10.5) controlPoint1: CGPointMake(40.89, 12.17) controlPoint2: CGPointMake(36.89, 10.5)]; - [bezierPath addCurveToPoint: CGPointMake(15.5, 27.5) controlPoint1: CGPointMake(23.11, 10.5) controlPoint2: CGPointMake(15.5, 18.11)]; - [bezierPath addCurveToPoint: CGPointMake(32.5, 44.5) controlPoint1: CGPointMake(15.5, 36.89) controlPoint2: CGPointMake(23.11, 44.5)]; - [bezierPath addCurveToPoint: CGPointMake(43.91, 40.1) controlPoint1: CGPointMake(36.89, 44.5) controlPoint2: CGPointMake(40.89, 42.83)]; - [bezierPath addLineToPoint: CGPointMake(43.91, 40.1)]; - [bezierPath addLineToPoint: CGPointMake(43.91, 40.1)]; - [bezierPath addLineToPoint: CGPointMake(43.91, 40.1)]; - [bezierPath addLineToPoint: CGPointMake(43.91, 40.1)]; - [bezierPath closePath]; - bezierPath.miterLimit = 4; - - bezierPath.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezierPath fill]; - - - //// Bezier 2 Drawing - UIBezierPath* bezier2Path = [UIBezierPath bezierPath]; - [bezier2Path moveToPoint: CGPointMake(54.81, 11)]; - [bezier2Path addCurveToPoint: CGPointMake(43.27, 15.4) controlPoint1: CGPointMake(50.36, 11) controlPoint2: CGPointMake(46.32, 12.67)]; - [bezier2Path addCurveToPoint: CGPointMake(41.53, 17.2) controlPoint1: CGPointMake(42.64, 15.96) controlPoint2: CGPointMake(42.06, 16.56)]; - [bezier2Path addLineToPoint: CGPointMake(45, 17.2)]; - [bezier2Path addCurveToPoint: CGPointMake(46.31, 19) controlPoint1: CGPointMake(45.48, 17.77) controlPoint2: CGPointMake(45.91, 18.37)]; - [bezier2Path addLineToPoint: CGPointMake(40.22, 19)]; - [bezier2Path addCurveToPoint: CGPointMake(39.23, 20.8) controlPoint1: CGPointMake(39.85, 19.58) controlPoint2: CGPointMake(39.52, 20.18)]; - [bezier2Path addLineToPoint: CGPointMake(47.3, 20.8)]; - [bezier2Path addCurveToPoint: CGPointMake(48.03, 22.6) controlPoint1: CGPointMake(47.58, 21.38) controlPoint2: CGPointMake(47.82, 21.98)]; - [bezier2Path addLineToPoint: CGPointMake(38.5, 22.6)]; - [bezier2Path addCurveToPoint: CGPointMake(38, 24.4) controlPoint1: CGPointMake(38.3, 23.19) controlPoint2: CGPointMake(38.13, 23.79)]; - [bezier2Path addLineToPoint: CGPointMake(48.53, 24.4)]; - [bezier2Path addCurveToPoint: CGPointMake(48.92, 28) controlPoint1: CGPointMake(48.78, 25.56) controlPoint2: CGPointMake(48.92, 26.76)]; - [bezier2Path addCurveToPoint: CGPointMake(48.03, 33.4) controlPoint1: CGPointMake(48.92, 29.89) controlPoint2: CGPointMake(48.61, 31.7)]; - [bezier2Path addLineToPoint: CGPointMake(38.5, 33.4)]; - [bezier2Path addCurveToPoint: CGPointMake(39.23, 35.2) controlPoint1: CGPointMake(38.71, 34.02) controlPoint2: CGPointMake(38.95, 34.62)]; - [bezier2Path addLineToPoint: CGPointMake(47.3, 35.2)]; - [bezier2Path addCurveToPoint: CGPointMake(46.31, 37) controlPoint1: CGPointMake(47.01, 35.82) controlPoint2: CGPointMake(46.68, 36.42)]; - [bezier2Path addLineToPoint: CGPointMake(40.22, 37)]; - [bezier2Path addCurveToPoint: CGPointMake(41.53, 38.8) controlPoint1: CGPointMake(40.62, 37.63) controlPoint2: CGPointMake(41.05, 38.23)]; - [bezier2Path addLineToPoint: CGPointMake(45, 38.8)]; - [bezier2Path addCurveToPoint: CGPointMake(43.27, 40.6) controlPoint1: CGPointMake(44.47, 39.44) controlPoint2: CGPointMake(43.89, 40.04)]; - [bezier2Path addCurveToPoint: CGPointMake(54.81, 45) controlPoint1: CGPointMake(46.32, 43.33) controlPoint2: CGPointMake(50.36, 45)]; - [bezier2Path addCurveToPoint: CGPointMake(72, 28) controlPoint1: CGPointMake(64.3, 45) controlPoint2: CGPointMake(72, 37.39)]; - [bezier2Path addCurveToPoint: CGPointMake(54.81, 11) controlPoint1: CGPointMake(72, 18.61) controlPoint2: CGPointMake(64.3, 11)]; - [bezier2Path addLineToPoint: CGPointMake(54.81, 11)]; - [bezier2Path addLineToPoint: CGPointMake(54.81, 11)]; - [bezier2Path addLineToPoint: CGPointMake(54.81, 11)]; - [bezier2Path addLineToPoint: CGPointMake(54.81, 11)]; - [bezier2Path closePath]; - bezier2Path.miterLimit = 4; - - bezier2Path.usesEvenOddFillRule = YES; - - [color2 setFill]; - [bezier2Path fill]; - - - //// Bezier 3 Drawing - UIBezierPath* bezier3Path = [UIBezierPath bezierPath]; - [bezier3Path moveToPoint: CGPointMake(30.6, 32.21)]; - [bezier3Path addLineToPoint: CGPointMake(28.45, 32.21)]; - [bezier3Path addLineToPoint: CGPointMake(29.73, 25.44)]; - [bezier3Path addLineToPoint: CGPointMake(26.79, 32.21)]; - [bezier3Path addLineToPoint: CGPointMake(24.83, 32.21)]; - [bezier3Path addLineToPoint: CGPointMake(24.47, 25.48)]; - [bezier3Path addLineToPoint: CGPointMake(23.19, 32.21)]; - [bezier3Path addLineToPoint: CGPointMake(21.24, 32.21)]; - [bezier3Path addLineToPoint: CGPointMake(22.91, 23.4)]; - [bezier3Path addLineToPoint: CGPointMake(26.26, 23.4)]; - [bezier3Path addLineToPoint: CGPointMake(26.44, 28.85)]; - [bezier3Path addLineToPoint: CGPointMake(28.8, 23.4)]; - [bezier3Path addLineToPoint: CGPointMake(32.29, 23.4)]; - [bezier3Path addLineToPoint: CGPointMake(30.6, 32.21)]; - [bezier3Path addLineToPoint: CGPointMake(30.6, 32.21)]; - [bezier3Path closePath]; - bezier3Path.miterLimit = 4; - - bezier3Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier3Path fill]; - - - //// Bezier 4 Drawing - UIBezierPath* bezier4Path = [UIBezierPath bezierPath]; - [bezier4Path moveToPoint: CGPointMake(54.6, 32.12)]; - [bezier4Path addCurveToPoint: CGPointMake(53.06, 32.36) controlPoint1: CGPointMake(54.01, 32.29) controlPoint2: CGPointMake(53.55, 32.36)]; - [bezier4Path addCurveToPoint: CGPointMake(51.36, 30.78) controlPoint1: CGPointMake(51.96, 32.36) controlPoint2: CGPointMake(51.36, 31.8)]; - [bezier4Path addCurveToPoint: CGPointMake(51.42, 30.14) controlPoint1: CGPointMake(51.36, 30.58) controlPoint2: CGPointMake(51.38, 30.37)]; - [bezier4Path addLineToPoint: CGPointMake(51.55, 29.44)]; - [bezier4Path addLineToPoint: CGPointMake(51.65, 28.87)]; - [bezier4Path addLineToPoint: CGPointMake(52.65, 23.4)]; - [bezier4Path addLineToPoint: CGPointMake(54.78, 23.4)]; - [bezier4Path addLineToPoint: CGPointMake(54.47, 25.04)]; - [bezier4Path addLineToPoint: CGPointMake(55.57, 25.04)]; - [bezier4Path addLineToPoint: CGPointMake(55.27, 26.79)]; - [bezier4Path addLineToPoint: CGPointMake(54.17, 26.79)]; - [bezier4Path addLineToPoint: CGPointMake(53.61, 29.78)]; - [bezier4Path addCurveToPoint: CGPointMake(53.57, 30.07) controlPoint1: CGPointMake(53.58, 29.91) controlPoint2: CGPointMake(53.57, 30.01)]; - [bezier4Path addCurveToPoint: CGPointMake(54.3, 30.61) controlPoint1: CGPointMake(53.57, 30.44) controlPoint2: CGPointMake(53.79, 30.61)]; - [bezier4Path addCurveToPoint: CGPointMake(54.88, 30.54) controlPoint1: CGPointMake(54.55, 30.61) controlPoint2: CGPointMake(54.74, 30.58)]; - [bezier4Path addLineToPoint: CGPointMake(54.6, 32.12)]; - [bezier4Path addLineToPoint: CGPointMake(54.6, 32.12)]; - [bezier4Path addLineToPoint: CGPointMake(54.6, 32.12)]; - [bezier4Path addLineToPoint: CGPointMake(54.6, 32.12)]; - [bezier4Path closePath]; - bezier4Path.miterLimit = 4; - - bezier4Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier4Path fill]; - - - //// Bezier 5 Drawing - UIBezierPath* bezier5Path = [UIBezierPath bezierPath]; - [bezier5Path moveToPoint: CGPointMake(60.87, 25.1)]; - [bezier5Path addCurveToPoint: CGPointMake(60.63, 25.03) controlPoint1: CGPointMake(60.69, 25.03) controlPoint2: CGPointMake(60.65, 25.03)]; - [bezier5Path addCurveToPoint: CGPointMake(60.44, 24.98) controlPoint1: CGPointMake(60.51, 25) controlPoint2: CGPointMake(60.45, 24.99)]; - [bezier5Path addCurveToPoint: CGPointMake(60.23, 24.97) controlPoint1: CGPointMake(60.38, 24.97) controlPoint2: CGPointMake(60.31, 24.97)]; - [bezier5Path addCurveToPoint: CGPointMake(58.36, 26.13) controlPoint1: CGPointMake(59.52, 24.97) controlPoint2: CGPointMake(59.01, 25.28)]; - [bezier5Path addLineToPoint: CGPointMake(58.55, 25.04)]; - [bezier5Path addLineToPoint: CGPointMake(56.6, 25.04)]; - [bezier5Path addLineToPoint: CGPointMake(55.29, 32.21)]; - [bezier5Path addLineToPoint: CGPointMake(57.44, 32.21)]; - [bezier5Path addCurveToPoint: CGPointMake(59.57, 27.06) controlPoint1: CGPointMake(58.21, 27.83) controlPoint2: CGPointMake(58.54, 27.06)]; - [bezier5Path addCurveToPoint: CGPointMake(59.84, 27.08) controlPoint1: CGPointMake(59.65, 27.06) controlPoint2: CGPointMake(59.74, 27.07)]; - [bezier5Path addLineToPoint: CGPointMake(60.09, 27.13)]; - [bezier5Path addLineToPoint: CGPointMake(60.87, 25.1)]; - [bezier5Path addLineToPoint: CGPointMake(60.87, 25.1)]; - [bezier5Path addLineToPoint: CGPointMake(60.87, 25.1)]; - [bezier5Path addLineToPoint: CGPointMake(60.87, 25.1)]; - [bezier5Path closePath]; - bezier5Path.miterLimit = 4; - - bezier5Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier5Path fill]; - - - //// Bezier 6 Drawing - UIBezierPath* bezier6Path = [UIBezierPath bezierPath]; - [bezier6Path moveToPoint: CGPointMake(46.09, 27.31)]; - [bezier6Path addCurveToPoint: CGPointMake(47.74, 29.31) controlPoint1: CGPointMake(46.09, 28.21) controlPoint2: CGPointMake(46.59, 28.84)]; - [bezier6Path addCurveToPoint: CGPointMake(48.76, 30.1) controlPoint1: CGPointMake(48.62, 29.67) controlPoint2: CGPointMake(48.76, 29.77)]; - [bezier6Path addCurveToPoint: CGPointMake(47.51, 30.75) controlPoint1: CGPointMake(48.76, 30.54) controlPoint2: CGPointMake(48.37, 30.75)]; - [bezier6Path addCurveToPoint: CGPointMake(45.56, 30.46) controlPoint1: CGPointMake(46.86, 30.75) controlPoint2: CGPointMake(46.26, 30.66)]; - [bezier6Path addLineToPoint: CGPointMake(45.26, 32.11)]; - [bezier6Path addLineToPoint: CGPointMake(45.36, 32.13)]; - [bezier6Path addLineToPoint: CGPointMake(45.76, 32.2)]; - [bezier6Path addCurveToPoint: CGPointMake(46.33, 32.27) controlPoint1: CGPointMake(45.89, 32.23) controlPoint2: CGPointMake(46.08, 32.25)]; - [bezier6Path addCurveToPoint: CGPointMake(47.52, 32.33) controlPoint1: CGPointMake(46.84, 32.31) controlPoint2: CGPointMake(47.24, 32.33)]; - [bezier6Path addCurveToPoint: CGPointMake(50.88, 29.93) controlPoint1: CGPointMake(49.82, 32.33) controlPoint2: CGPointMake(50.88, 31.57)]; - [bezier6Path addCurveToPoint: CGPointMake(49.34, 27.94) controlPoint1: CGPointMake(50.88, 28.95) controlPoint2: CGPointMake(50.43, 28.37)]; - [bezier6Path addCurveToPoint: CGPointMake(48.33, 27.16) controlPoint1: CGPointMake(48.43, 27.58) controlPoint2: CGPointMake(48.33, 27.5)]; - [bezier6Path addCurveToPoint: CGPointMake(49.39, 26.58) controlPoint1: CGPointMake(48.33, 26.78) controlPoint2: CGPointMake(48.69, 26.58)]; - [bezier6Path addCurveToPoint: CGPointMake(50.95, 26.68) controlPoint1: CGPointMake(49.82, 26.58) controlPoint2: CGPointMake(50.4, 26.62)]; - [bezier6Path addLineToPoint: CGPointMake(51.26, 25.03)]; - [bezier6Path addCurveToPoint: CGPointMake(49.35, 24.89) controlPoint1: CGPointMake(50.7, 24.95) controlPoint2: CGPointMake(49.85, 24.89)]; - [bezier6Path addCurveToPoint: CGPointMake(46.09, 27.31) controlPoint1: CGPointMake(46.92, 24.89) controlPoint2: CGPointMake(46.08, 25.99)]; - [bezier6Path addLineToPoint: CGPointMake(46.09, 27.31)]; - [bezier6Path addLineToPoint: CGPointMake(46.09, 27.31)]; - [bezier6Path addLineToPoint: CGPointMake(46.09, 27.31)]; - [bezier6Path addLineToPoint: CGPointMake(46.09, 27.31)]; - [bezier6Path closePath]; - bezier6Path.miterLimit = 4; - - bezier6Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier6Path fill]; - - - //// Bezier 7 Drawing - UIBezierPath* bezier7Path = [UIBezierPath bezierPath]; - [bezier7Path moveToPoint: CGPointMake(37.58, 32.21)]; - [bezier7Path addLineToPoint: CGPointMake(35.8, 32.21)]; - [bezier7Path addLineToPoint: CGPointMake(35.84, 31.47)]; - [bezier7Path addCurveToPoint: CGPointMake(33.58, 32.34) controlPoint1: CGPointMake(35.29, 32.06) controlPoint2: CGPointMake(34.57, 32.34)]; - [bezier7Path addCurveToPoint: CGPointMake(31.62, 30.38) controlPoint1: CGPointMake(32.42, 32.34) controlPoint2: CGPointMake(31.62, 31.54)]; - [bezier7Path addCurveToPoint: CGPointMake(35.39, 27.61) controlPoint1: CGPointMake(31.62, 28.63) controlPoint2: CGPointMake(33.01, 27.61)]; - [bezier7Path addCurveToPoint: CGPointMake(36.27, 27.67) controlPoint1: CGPointMake(35.64, 27.61) controlPoint2: CGPointMake(35.95, 27.63)]; - [bezier7Path addCurveToPoint: CGPointMake(36.35, 27.2) controlPoint1: CGPointMake(36.34, 27.43) controlPoint2: CGPointMake(36.35, 27.33)]; - [bezier7Path addCurveToPoint: CGPointMake(34.98, 26.55) controlPoint1: CGPointMake(36.35, 26.73) controlPoint2: CGPointMake(35.98, 26.55)]; - [bezier7Path addCurveToPoint: CGPointMake(33.19, 26.75) controlPoint1: CGPointMake(34.36, 26.55) controlPoint2: CGPointMake(33.67, 26.63)]; - [bezier7Path addLineToPoint: CGPointMake(32.89, 26.83)]; - [bezier7Path addLineToPoint: CGPointMake(32.7, 26.87)]; - [bezier7Path addLineToPoint: CGPointMake(33, 25.26)]; - [bezier7Path addCurveToPoint: CGPointMake(35.57, 24.88) controlPoint1: CGPointMake(34.07, 24.99) controlPoint2: CGPointMake(34.78, 24.88)]; - [bezier7Path addCurveToPoint: CGPointMake(38.39, 26.98) controlPoint1: CGPointMake(37.42, 24.88) controlPoint2: CGPointMake(38.39, 25.61)]; - [bezier7Path addCurveToPoint: CGPointMake(38.22, 28.4) controlPoint1: CGPointMake(38.39, 27.34) controlPoint2: CGPointMake(38.36, 27.61)]; - [bezier7Path addLineToPoint: CGPointMake(37.77, 30.95)]; - [bezier7Path addLineToPoint: CGPointMake(37.69, 31.4)]; - [bezier7Path addLineToPoint: CGPointMake(37.64, 31.77)]; - [bezier7Path addLineToPoint: CGPointMake(37.6, 32.02)]; - [bezier7Path addLineToPoint: CGPointMake(37.58, 32.21)]; - [bezier7Path addLineToPoint: CGPointMake(37.58, 32.21)]; - [bezier7Path addLineToPoint: CGPointMake(37.58, 32.21)]; - [bezier7Path addLineToPoint: CGPointMake(37.58, 32.21)]; - [bezier7Path closePath]; - [bezier7Path moveToPoint: CGPointMake(36.01, 29.02)]; - [bezier7Path addCurveToPoint: CGPointMake(35.53, 28.99) controlPoint1: CGPointMake(35.79, 28.99) controlPoint2: CGPointMake(35.69, 28.99)]; - [bezier7Path addCurveToPoint: CGPointMake(33.7, 30.08) controlPoint1: CGPointMake(34.32, 28.99) controlPoint2: CGPointMake(33.7, 29.36)]; - [bezier7Path addCurveToPoint: CGPointMake(34.47, 30.81) controlPoint1: CGPointMake(33.7, 30.53) controlPoint2: CGPointMake(34, 30.81)]; - [bezier7Path addCurveToPoint: CGPointMake(36.01, 29.02) controlPoint1: CGPointMake(35.35, 30.81) controlPoint2: CGPointMake(35.98, 30.08)]; - [bezier7Path addLineToPoint: CGPointMake(36.01, 29.02)]; - [bezier7Path addLineToPoint: CGPointMake(36.01, 29.02)]; - [bezier7Path addLineToPoint: CGPointMake(36.01, 29.02)]; - [bezier7Path addLineToPoint: CGPointMake(36.01, 29.02)]; - [bezier7Path closePath]; - bezier7Path.miterLimit = 4; - - bezier7Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier7Path fill]; - - - //// Bezier 8 Drawing - UIBezierPath* bezier8Path = [UIBezierPath bezierPath]; - [bezier8Path moveToPoint: CGPointMake(44.63, 32.06)]; - [bezier8Path addCurveToPoint: CGPointMake(42.43, 32.35) controlPoint1: CGPointMake(43.89, 32.25) controlPoint2: CGPointMake(43.18, 32.35)]; - [bezier8Path addCurveToPoint: CGPointMake(38.77, 29.14) controlPoint1: CGPointMake(40.02, 32.35) controlPoint2: CGPointMake(38.77, 31.24)]; - [bezier8Path addCurveToPoint: CGPointMake(42.53, 24.86) controlPoint1: CGPointMake(38.77, 26.68) controlPoint2: CGPointMake(40.36, 24.86)]; - [bezier8Path addCurveToPoint: CGPointMake(45.42, 27.47) controlPoint1: CGPointMake(44.29, 24.86) controlPoint2: CGPointMake(45.42, 25.88)]; - [bezier8Path addCurveToPoint: CGPointMake(45.16, 29.24) controlPoint1: CGPointMake(45.42, 28) controlPoint2: CGPointMake(45.35, 28.51)]; - [bezier8Path addLineToPoint: CGPointMake(40.89, 29.24)]; - [bezier8Path addCurveToPoint: CGPointMake(40.87, 29.47) controlPoint1: CGPointMake(40.87, 29.35) controlPoint2: CGPointMake(40.87, 29.4)]; - [bezier8Path addCurveToPoint: CGPointMake(42.75, 30.72) controlPoint1: CGPointMake(40.87, 30.3) controlPoint2: CGPointMake(41.5, 30.72)]; - [bezier8Path addCurveToPoint: CGPointMake(44.98, 30.27) controlPoint1: CGPointMake(43.52, 30.72) controlPoint2: CGPointMake(44.21, 30.58)]; - [bezier8Path addLineToPoint: CGPointMake(44.63, 32.06)]; - [bezier8Path addLineToPoint: CGPointMake(44.63, 32.06)]; - [bezier8Path addLineToPoint: CGPointMake(44.63, 32.06)]; - [bezier8Path addLineToPoint: CGPointMake(44.63, 32.06)]; - [bezier8Path closePath]; - [bezier8Path moveToPoint: CGPointMake(43.48, 27.79)]; - [bezier8Path addCurveToPoint: CGPointMake(43.5, 27.43) controlPoint1: CGPointMake(43.49, 27.64) controlPoint2: CGPointMake(43.5, 27.52)]; - [bezier8Path addCurveToPoint: CGPointMake(42.48, 26.5) controlPoint1: CGPointMake(43.5, 26.84) controlPoint2: CGPointMake(43.12, 26.5)]; - [bezier8Path addCurveToPoint: CGPointMake(41.11, 27.79) controlPoint1: CGPointMake(41.8, 26.5) controlPoint2: CGPointMake(41.31, 26.96)]; - [bezier8Path addLineToPoint: CGPointMake(43.48, 27.79)]; - [bezier8Path addLineToPoint: CGPointMake(43.48, 27.79)]; - [bezier8Path addLineToPoint: CGPointMake(43.48, 27.79)]; - [bezier8Path addLineToPoint: CGPointMake(43.48, 27.79)]; - [bezier8Path closePath]; - bezier8Path.miterLimit = 4; - - bezier8Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier8Path fill]; - - - //// Bezier 9 Drawing - UIBezierPath* bezier9Path = [UIBezierPath bezierPath]; - [bezier9Path moveToPoint: CGPointMake(67.55, 28.96)]; - [bezier9Path addCurveToPoint: CGPointMake(63.38, 32.4) controlPoint1: CGPointMake(67.23, 31.35) controlPoint2: CGPointMake(65.57, 32.4)]; - [bezier9Path addCurveToPoint: CGPointMake(59.96, 29.1) controlPoint1: CGPointMake(60.95, 32.4) controlPoint2: CGPointMake(59.96, 30.92)]; - [bezier9Path addCurveToPoint: CGPointMake(64.19, 24.84) controlPoint1: CGPointMake(59.96, 26.56) controlPoint2: CGPointMake(61.63, 24.84)]; - [bezier9Path addCurveToPoint: CGPointMake(67.6, 28.07) controlPoint1: CGPointMake(66.42, 24.84) controlPoint2: CGPointMake(67.6, 26.25)]; - [bezier9Path addCurveToPoint: CGPointMake(67.55, 28.96) controlPoint1: CGPointMake(67.6, 28.52) controlPoint2: CGPointMake(67.6, 28.55)]; - [bezier9Path addLineToPoint: CGPointMake(67.55, 28.96)]; - [bezier9Path addLineToPoint: CGPointMake(67.55, 28.96)]; - [bezier9Path addLineToPoint: CGPointMake(67.55, 28.96)]; - [bezier9Path addLineToPoint: CGPointMake(67.55, 28.96)]; - [bezier9Path closePath]; - [bezier9Path moveToPoint: CGPointMake(65.33, 28.05)]; - [bezier9Path addCurveToPoint: CGPointMake(64.15, 26.59) controlPoint1: CGPointMake(65.33, 27.3) controlPoint2: CGPointMake(65.03, 26.59)]; - [bezier9Path addCurveToPoint: CGPointMake(62.38, 29.04) controlPoint1: CGPointMake(63.06, 26.59) controlPoint2: CGPointMake(62.38, 27.89)]; - [bezier9Path addCurveToPoint: CGPointMake(63.61, 30.66) controlPoint1: CGPointMake(62.38, 30.02) controlPoint2: CGPointMake(62.84, 30.67)]; - [bezier9Path addCurveToPoint: CGPointMake(65.26, 28.9) controlPoint1: CGPointMake(64.08, 30.66) controlPoint2: CGPointMake(65.07, 30.02)]; - [bezier9Path addCurveToPoint: CGPointMake(65.33, 28.05) controlPoint1: CGPointMake(65.31, 28.64) controlPoint2: CGPointMake(65.33, 28.35)]; - [bezier9Path addLineToPoint: CGPointMake(65.33, 28.05)]; - [bezier9Path addLineToPoint: CGPointMake(65.33, 28.05)]; - [bezier9Path addLineToPoint: CGPointMake(65.33, 28.05)]; - [bezier9Path addLineToPoint: CGPointMake(65.33, 28.05)]; - [bezier9Path closePath]; - bezier9Path.miterLimit = 4; - - bezier9Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier9Path fill]; - } - } - } -} -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIMasterCardVectorArtView.h b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIMasterCardVectorArtView.h deleted file mode 100644 index 6ad97ef..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIMasterCardVectorArtView.h +++ /dev/null @@ -1,5 +0,0 @@ -#import "BTUICardVectorArtView.h" - -@interface BTUIMasterCardVectorArtView : BTUICardVectorArtView - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIMasterCardVectorArtView.m b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIMasterCardVectorArtView.m deleted file mode 100644 index 7a4a371..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIMasterCardVectorArtView.m +++ /dev/null @@ -1,3247 +0,0 @@ -#import "BTUIMasterCardVectorArtView.h" - -@implementation BTUIMasterCardVectorArtView - -- (void)drawArt { - //// Color Declarations - UIColor* color1 = [UIColor colorWithRed: 0.93 green: 0.619 blue: 0.186 alpha: 1]; - UIColor* color2 = [UIColor colorWithRed: 0.8 green: 0.039 blue: 0.147 alpha: 1]; - UIColor* color3 = [UIColor colorWithRed: 1 green: 1 blue: 1 alpha: 1]; - - //// Page-1 - { - //// MasterCard - { - //// Group 4 - { - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint: CGPointMake(54.97, 45)]; - [bezierPath addLineToPoint: CGPointMake(55.85, 44.98)]; - [bezierPath addLineToPoint: CGPointMake(56.71, 44.91)]; - [bezierPath addLineToPoint: CGPointMake(57.56, 44.81)]; - [bezierPath addLineToPoint: CGPointMake(58.4, 44.66)]; - [bezierPath addLineToPoint: CGPointMake(59.22, 44.47)]; - [bezierPath addLineToPoint: CGPointMake(60.03, 44.24)]; - [bezierPath addLineToPoint: CGPointMake(60.82, 43.97)]; - [bezierPath addLineToPoint: CGPointMake(61.6, 43.66)]; - [bezierPath addLineToPoint: CGPointMake(62.35, 43.32)]; - [bezierPath addLineToPoint: CGPointMake(63.09, 42.95)]; - [bezierPath addLineToPoint: CGPointMake(63.8, 42.53)]; - [bezierPath addLineToPoint: CGPointMake(64.49, 42.09)]; - [bezierPath addLineToPoint: CGPointMake(65.16, 41.62)]; - [bezierPath addLineToPoint: CGPointMake(65.8, 41.11)]; - [bezierPath addLineToPoint: CGPointMake(66.42, 40.58)]; - [bezierPath addLineToPoint: CGPointMake(67.01, 40.01)]; - [bezierPath addLineToPoint: CGPointMake(67.58, 39.42)]; - [bezierPath addLineToPoint: CGPointMake(68.11, 38.8)]; - [bezierPath addLineToPoint: CGPointMake(68.62, 38.16)]; - [bezierPath addLineToPoint: CGPointMake(69.09, 37.49)]; - [bezierPath addLineToPoint: CGPointMake(69.53, 36.8)]; - [bezierPath addLineToPoint: CGPointMake(69.95, 36.09)]; - [bezierPath addLineToPoint: CGPointMake(70.32, 35.35)]; - [bezierPath addLineToPoint: CGPointMake(70.66, 34.6)]; - [bezierPath addLineToPoint: CGPointMake(70.97, 33.82)]; - [bezierPath addLineToPoint: CGPointMake(71.24, 33.03)]; - [bezierPath addLineToPoint: CGPointMake(71.47, 32.22)]; - [bezierPath addLineToPoint: CGPointMake(71.66, 31.4)]; - [bezierPath addLineToPoint: CGPointMake(71.81, 30.56)]; - [bezierPath addLineToPoint: CGPointMake(71.91, 29.71)]; - [bezierPath addLineToPoint: CGPointMake(71.98, 28.85)]; - [bezierPath addLineToPoint: CGPointMake(72, 27.97)]; - [bezierPath addLineToPoint: CGPointMake(71.98, 27.1)]; - [bezierPath addLineToPoint: CGPointMake(71.91, 26.24)]; - [bezierPath addLineToPoint: CGPointMake(71.81, 25.39)]; - [bezierPath addLineToPoint: CGPointMake(71.66, 24.56)]; - [bezierPath addLineToPoint: CGPointMake(71.47, 23.74)]; - [bezierPath addLineToPoint: CGPointMake(71.24, 22.93)]; - [bezierPath addLineToPoint: CGPointMake(70.97, 22.14)]; - [bezierPath addLineToPoint: CGPointMake(70.66, 21.37)]; - [bezierPath addLineToPoint: CGPointMake(70.32, 20.62)]; - [bezierPath addLineToPoint: CGPointMake(69.95, 19.89)]; - [bezierPath addLineToPoint: CGPointMake(69.53, 19.18)]; - [bezierPath addLineToPoint: CGPointMake(69.09, 18.49)]; - [bezierPath addLineToPoint: CGPointMake(68.62, 17.82)]; - [bezierPath addLineToPoint: CGPointMake(68.11, 17.19)]; - [bezierPath addLineToPoint: CGPointMake(67.58, 16.57)]; - [bezierPath addLineToPoint: CGPointMake(67.01, 15.98)]; - [bezierPath addLineToPoint: CGPointMake(66.42, 15.42)]; - [bezierPath addLineToPoint: CGPointMake(65.8, 14.88)]; - [bezierPath addLineToPoint: CGPointMake(65.16, 14.38)]; - [bezierPath addLineToPoint: CGPointMake(64.49, 13.9)]; - [bezierPath addLineToPoint: CGPointMake(63.8, 13.46)]; - [bezierPath addLineToPoint: CGPointMake(63.09, 13.05)]; - [bezierPath addLineToPoint: CGPointMake(62.35, 12.68)]; - [bezierPath addLineToPoint: CGPointMake(61.6, 12.34)]; - [bezierPath addLineToPoint: CGPointMake(60.82, 12.03)]; - [bezierPath addLineToPoint: CGPointMake(60.03, 11.76)]; - [bezierPath addLineToPoint: CGPointMake(59.22, 11.53)]; - [bezierPath addLineToPoint: CGPointMake(58.4, 11.34)]; - [bezierPath addLineToPoint: CGPointMake(57.56, 11.19)]; - [bezierPath addLineToPoint: CGPointMake(56.71, 11.09)]; - [bezierPath addLineToPoint: CGPointMake(55.85, 11.02)]; - [bezierPath addLineToPoint: CGPointMake(54.97, 11)]; - [bezierPath addLineToPoint: CGPointMake(54.1, 11.02)]; - [bezierPath addLineToPoint: CGPointMake(53.23, 11.09)]; - [bezierPath addLineToPoint: CGPointMake(52.38, 11.19)]; - [bezierPath addLineToPoint: CGPointMake(51.54, 11.34)]; - [bezierPath addLineToPoint: CGPointMake(50.72, 11.53)]; - [bezierPath addLineToPoint: CGPointMake(49.92, 11.76)]; - [bezierPath addLineToPoint: CGPointMake(49.13, 12.03)]; - [bezierPath addLineToPoint: CGPointMake(48.36, 12.34)]; - [bezierPath addLineToPoint: CGPointMake(47.61, 12.68)]; - [bezierPath addLineToPoint: CGPointMake(46.88, 13.05)]; - [bezierPath addLineToPoint: CGPointMake(46.17, 13.46)]; - [bezierPath addLineToPoint: CGPointMake(45.48, 13.9)]; - [bezierPath addLineToPoint: CGPointMake(44.81, 14.38)]; - [bezierPath addLineToPoint: CGPointMake(44.17, 14.88)]; - [bezierPath addLineToPoint: CGPointMake(43.56, 15.42)]; - [bezierPath addLineToPoint: CGPointMake(42.97, 15.98)]; - [bezierPath addLineToPoint: CGPointMake(42.4, 16.57)]; - [bezierPath addLineToPoint: CGPointMake(41.87, 17.19)]; - [bezierPath addLineToPoint: CGPointMake(41.37, 17.82)]; - [bezierPath addLineToPoint: CGPointMake(40.9, 18.49)]; - [bezierPath addLineToPoint: CGPointMake(40.45, 19.18)]; - [bezierPath addLineToPoint: CGPointMake(40.05, 19.89)]; - [bezierPath addLineToPoint: CGPointMake(39.67, 20.62)]; - [bezierPath addLineToPoint: CGPointMake(39.33, 21.37)]; - [bezierPath addLineToPoint: CGPointMake(39.03, 22.14)]; - [bezierPath addLineToPoint: CGPointMake(38.76, 22.93)]; - [bezierPath addLineToPoint: CGPointMake(38.53, 23.74)]; - [bezierPath addLineToPoint: CGPointMake(38.34, 24.56)]; - [bezierPath addLineToPoint: CGPointMake(38.19, 25.39)]; - [bezierPath addLineToPoint: CGPointMake(38.09, 26.24)]; - [bezierPath addLineToPoint: CGPointMake(38.02, 27.1)]; - [bezierPath addLineToPoint: CGPointMake(38, 27.97)]; - [bezierPath addLineToPoint: CGPointMake(38.02, 28.85)]; - [bezierPath addLineToPoint: CGPointMake(38.09, 29.71)]; - [bezierPath addLineToPoint: CGPointMake(38.19, 30.56)]; - [bezierPath addLineToPoint: CGPointMake(38.34, 31.4)]; - [bezierPath addLineToPoint: CGPointMake(38.53, 32.22)]; - [bezierPath addLineToPoint: CGPointMake(38.76, 33.03)]; - [bezierPath addLineToPoint: CGPointMake(39.03, 33.82)]; - [bezierPath addLineToPoint: CGPointMake(39.33, 34.6)]; - [bezierPath addLineToPoint: CGPointMake(39.67, 35.35)]; - [bezierPath addLineToPoint: CGPointMake(40.05, 36.09)]; - [bezierPath addLineToPoint: CGPointMake(40.45, 36.8)]; - [bezierPath addLineToPoint: CGPointMake(40.9, 37.49)]; - [bezierPath addLineToPoint: CGPointMake(41.37, 38.16)]; - [bezierPath addLineToPoint: CGPointMake(41.87, 38.8)]; - [bezierPath addLineToPoint: CGPointMake(42.4, 39.42)]; - [bezierPath addLineToPoint: CGPointMake(42.97, 40.01)]; - [bezierPath addLineToPoint: CGPointMake(43.56, 40.58)]; - [bezierPath addLineToPoint: CGPointMake(44.17, 41.11)]; - [bezierPath addLineToPoint: CGPointMake(44.81, 41.62)]; - [bezierPath addLineToPoint: CGPointMake(45.48, 42.09)]; - [bezierPath addLineToPoint: CGPointMake(46.17, 42.53)]; - [bezierPath addLineToPoint: CGPointMake(46.88, 42.95)]; - [bezierPath addLineToPoint: CGPointMake(47.61, 43.32)]; - [bezierPath addLineToPoint: CGPointMake(48.36, 43.66)]; - [bezierPath addLineToPoint: CGPointMake(49.13, 43.97)]; - [bezierPath addLineToPoint: CGPointMake(49.92, 44.24)]; - [bezierPath addLineToPoint: CGPointMake(50.72, 44.47)]; - [bezierPath addLineToPoint: CGPointMake(51.54, 44.66)]; - [bezierPath addLineToPoint: CGPointMake(52.38, 44.81)]; - [bezierPath addLineToPoint: CGPointMake(53.23, 44.91)]; - [bezierPath addLineToPoint: CGPointMake(54.1, 44.98)]; - [bezierPath addLineToPoint: CGPointMake(54.97, 45)]; - [bezierPath closePath]; - bezierPath.miterLimit = 4; - - bezierPath.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezierPath fill]; - - - //// Bezier 2 Drawing - UIBezierPath* bezier2Path = [UIBezierPath bezierPath]; - [bezier2Path moveToPoint: CGPointMake(33.03, 45)]; - [bezier2Path addLineToPoint: CGPointMake(33.9, 44.98)]; - [bezier2Path addLineToPoint: CGPointMake(34.77, 44.91)]; - [bezier2Path addLineToPoint: CGPointMake(35.62, 44.81)]; - [bezier2Path addLineToPoint: CGPointMake(36.46, 44.66)]; - [bezier2Path addLineToPoint: CGPointMake(37.28, 44.47)]; - [bezier2Path addLineToPoint: CGPointMake(38.08, 44.24)]; - [bezier2Path addLineToPoint: CGPointMake(38.87, 43.97)]; - [bezier2Path addLineToPoint: CGPointMake(39.64, 43.66)]; - [bezier2Path addLineToPoint: CGPointMake(40.39, 43.32)]; - [bezier2Path addLineToPoint: CGPointMake(41.12, 42.95)]; - [bezier2Path addLineToPoint: CGPointMake(41.83, 42.53)]; - [bezier2Path addLineToPoint: CGPointMake(42.52, 42.09)]; - [bezier2Path addLineToPoint: CGPointMake(43.19, 41.62)]; - [bezier2Path addLineToPoint: CGPointMake(43.83, 41.11)]; - [bezier2Path addLineToPoint: CGPointMake(44.44, 40.58)]; - [bezier2Path addLineToPoint: CGPointMake(45.03, 40.01)]; - [bezier2Path addLineToPoint: CGPointMake(45.6, 39.42)]; - [bezier2Path addLineToPoint: CGPointMake(46.13, 38.8)]; - [bezier2Path addLineToPoint: CGPointMake(46.63, 38.16)]; - [bezier2Path addLineToPoint: CGPointMake(47.1, 37.49)]; - [bezier2Path addLineToPoint: CGPointMake(47.55, 36.8)]; - [bezier2Path addLineToPoint: CGPointMake(47.95, 36.09)]; - [bezier2Path addLineToPoint: CGPointMake(48.33, 35.35)]; - [bezier2Path addLineToPoint: CGPointMake(48.67, 34.6)]; - [bezier2Path addLineToPoint: CGPointMake(48.97, 33.82)]; - [bezier2Path addLineToPoint: CGPointMake(49.24, 33.03)]; - [bezier2Path addLineToPoint: CGPointMake(49.47, 32.22)]; - [bezier2Path addLineToPoint: CGPointMake(49.66, 31.4)]; - [bezier2Path addLineToPoint: CGPointMake(49.81, 30.56)]; - [bezier2Path addLineToPoint: CGPointMake(49.91, 29.71)]; - [bezier2Path addLineToPoint: CGPointMake(49.98, 28.85)]; - [bezier2Path addLineToPoint: CGPointMake(50, 27.97)]; - [bezier2Path addLineToPoint: CGPointMake(49.98, 27.1)]; - [bezier2Path addLineToPoint: CGPointMake(49.91, 26.24)]; - [bezier2Path addLineToPoint: CGPointMake(49.81, 25.39)]; - [bezier2Path addLineToPoint: CGPointMake(49.66, 24.56)]; - [bezier2Path addLineToPoint: CGPointMake(49.47, 23.74)]; - [bezier2Path addLineToPoint: CGPointMake(49.24, 22.93)]; - [bezier2Path addLineToPoint: CGPointMake(48.97, 22.14)]; - [bezier2Path addLineToPoint: CGPointMake(48.67, 21.37)]; - [bezier2Path addLineToPoint: CGPointMake(48.33, 20.62)]; - [bezier2Path addLineToPoint: CGPointMake(47.95, 19.89)]; - [bezier2Path addLineToPoint: CGPointMake(47.55, 19.18)]; - [bezier2Path addLineToPoint: CGPointMake(47.1, 18.49)]; - [bezier2Path addLineToPoint: CGPointMake(46.63, 17.82)]; - [bezier2Path addLineToPoint: CGPointMake(46.13, 17.19)]; - [bezier2Path addLineToPoint: CGPointMake(45.6, 16.57)]; - [bezier2Path addLineToPoint: CGPointMake(45.03, 15.98)]; - [bezier2Path addLineToPoint: CGPointMake(44.44, 15.42)]; - [bezier2Path addLineToPoint: CGPointMake(43.83, 14.88)]; - [bezier2Path addLineToPoint: CGPointMake(43.19, 14.38)]; - [bezier2Path addLineToPoint: CGPointMake(42.52, 13.9)]; - [bezier2Path addLineToPoint: CGPointMake(41.83, 13.46)]; - [bezier2Path addLineToPoint: CGPointMake(41.12, 13.05)]; - [bezier2Path addLineToPoint: CGPointMake(40.39, 12.68)]; - [bezier2Path addLineToPoint: CGPointMake(39.64, 12.34)]; - [bezier2Path addLineToPoint: CGPointMake(38.87, 12.03)]; - [bezier2Path addLineToPoint: CGPointMake(38.08, 11.76)]; - [bezier2Path addLineToPoint: CGPointMake(37.28, 11.53)]; - [bezier2Path addLineToPoint: CGPointMake(36.46, 11.34)]; - [bezier2Path addLineToPoint: CGPointMake(35.62, 11.19)]; - [bezier2Path addLineToPoint: CGPointMake(34.77, 11.09)]; - [bezier2Path addLineToPoint: CGPointMake(33.9, 11.02)]; - [bezier2Path addLineToPoint: CGPointMake(33.03, 11)]; - [bezier2Path addLineToPoint: CGPointMake(32.15, 11.02)]; - [bezier2Path addLineToPoint: CGPointMake(31.29, 11.09)]; - [bezier2Path addLineToPoint: CGPointMake(30.44, 11.19)]; - [bezier2Path addLineToPoint: CGPointMake(29.6, 11.34)]; - [bezier2Path addLineToPoint: CGPointMake(28.78, 11.53)]; - [bezier2Path addLineToPoint: CGPointMake(27.97, 11.76)]; - [bezier2Path addLineToPoint: CGPointMake(27.18, 12.03)]; - [bezier2Path addLineToPoint: CGPointMake(26.4, 12.34)]; - [bezier2Path addLineToPoint: CGPointMake(25.65, 12.68)]; - [bezier2Path addLineToPoint: CGPointMake(24.91, 13.05)]; - [bezier2Path addLineToPoint: CGPointMake(24.2, 13.46)]; - [bezier2Path addLineToPoint: CGPointMake(23.51, 13.9)]; - [bezier2Path addLineToPoint: CGPointMake(22.84, 14.38)]; - [bezier2Path addLineToPoint: CGPointMake(22.2, 14.88)]; - [bezier2Path addLineToPoint: CGPointMake(21.58, 15.42)]; - [bezier2Path addLineToPoint: CGPointMake(20.99, 15.98)]; - [bezier2Path addLineToPoint: CGPointMake(20.42, 16.57)]; - [bezier2Path addLineToPoint: CGPointMake(19.89, 17.19)]; - [bezier2Path addLineToPoint: CGPointMake(19.38, 17.82)]; - [bezier2Path addLineToPoint: CGPointMake(18.91, 18.49)]; - [bezier2Path addLineToPoint: CGPointMake(18.47, 19.18)]; - [bezier2Path addLineToPoint: CGPointMake(18.05, 19.89)]; - [bezier2Path addLineToPoint: CGPointMake(17.68, 20.62)]; - [bezier2Path addLineToPoint: CGPointMake(17.34, 21.37)]; - [bezier2Path addLineToPoint: CGPointMake(17.03, 22.14)]; - [bezier2Path addLineToPoint: CGPointMake(16.76, 22.93)]; - [bezier2Path addLineToPoint: CGPointMake(16.53, 23.74)]; - [bezier2Path addLineToPoint: CGPointMake(16.34, 24.56)]; - [bezier2Path addLineToPoint: CGPointMake(16.2, 25.39)]; - [bezier2Path addLineToPoint: CGPointMake(16.09, 26.24)]; - [bezier2Path addLineToPoint: CGPointMake(16.02, 27.1)]; - [bezier2Path addLineToPoint: CGPointMake(16, 27.97)]; - [bezier2Path addLineToPoint: CGPointMake(16.02, 28.85)]; - [bezier2Path addLineToPoint: CGPointMake(16.09, 29.71)]; - [bezier2Path addLineToPoint: CGPointMake(16.2, 30.56)]; - [bezier2Path addLineToPoint: CGPointMake(16.34, 31.4)]; - [bezier2Path addLineToPoint: CGPointMake(16.53, 32.22)]; - [bezier2Path addLineToPoint: CGPointMake(16.76, 33.03)]; - [bezier2Path addLineToPoint: CGPointMake(17.03, 33.82)]; - [bezier2Path addLineToPoint: CGPointMake(17.34, 34.6)]; - [bezier2Path addLineToPoint: CGPointMake(17.68, 35.35)]; - [bezier2Path addLineToPoint: CGPointMake(18.05, 36.09)]; - [bezier2Path addLineToPoint: CGPointMake(18.47, 36.8)]; - [bezier2Path addLineToPoint: CGPointMake(18.91, 37.49)]; - [bezier2Path addLineToPoint: CGPointMake(19.38, 38.16)]; - [bezier2Path addLineToPoint: CGPointMake(19.89, 38.8)]; - [bezier2Path addLineToPoint: CGPointMake(20.42, 39.42)]; - [bezier2Path addLineToPoint: CGPointMake(20.99, 40.01)]; - [bezier2Path addLineToPoint: CGPointMake(21.58, 40.58)]; - [bezier2Path addLineToPoint: CGPointMake(22.2, 41.11)]; - [bezier2Path addLineToPoint: CGPointMake(22.84, 41.62)]; - [bezier2Path addLineToPoint: CGPointMake(23.51, 42.09)]; - [bezier2Path addLineToPoint: CGPointMake(24.2, 42.53)]; - [bezier2Path addLineToPoint: CGPointMake(24.91, 42.95)]; - [bezier2Path addLineToPoint: CGPointMake(25.65, 43.32)]; - [bezier2Path addLineToPoint: CGPointMake(26.4, 43.66)]; - [bezier2Path addLineToPoint: CGPointMake(27.18, 43.97)]; - [bezier2Path addLineToPoint: CGPointMake(27.97, 44.24)]; - [bezier2Path addLineToPoint: CGPointMake(28.78, 44.47)]; - [bezier2Path addLineToPoint: CGPointMake(29.6, 44.66)]; - [bezier2Path addLineToPoint: CGPointMake(30.44, 44.81)]; - [bezier2Path addLineToPoint: CGPointMake(31.29, 44.91)]; - [bezier2Path addLineToPoint: CGPointMake(32.15, 44.98)]; - [bezier2Path addLineToPoint: CGPointMake(33.03, 45)]; - [bezier2Path closePath]; - bezier2Path.miterLimit = 4; - - bezier2Path.usesEvenOddFillRule = YES; - - [color2 setFill]; - [bezier2Path fill]; - - - //// Bezier 3 Drawing - UIBezierPath* bezier3Path = [UIBezierPath bezierPath]; - [bezier3Path moveToPoint: CGPointMake(41.68, 17.72)]; - [bezier3Path addLineToPoint: CGPointMake(50.65, 17.72)]; - [bezier3Path addLineToPoint: CGPointMake(50.65, 16.81)]; - [bezier3Path addLineToPoint: CGPointMake(42.46, 16.81)]; - [bezier3Path addLineToPoint: CGPointMake(41.68, 17.72)]; - [bezier3Path closePath]; - bezier3Path.miterLimit = 4; - - bezier3Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier3Path fill]; - - - //// Bezier 4 Drawing - UIBezierPath* bezier4Path = [UIBezierPath bezierPath]; - [bezier4Path moveToPoint: CGPointMake(40.34, 19.76)]; - [bezier4Path addLineToPoint: CGPointMake(50.65, 19.76)]; - [bezier4Path addLineToPoint: CGPointMake(50.65, 18.85)]; - [bezier4Path addLineToPoint: CGPointMake(40.88, 18.85)]; - [bezier4Path addLineToPoint: CGPointMake(40.34, 19.76)]; - [bezier4Path closePath]; - bezier4Path.miterLimit = 4; - - bezier4Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier4Path fill]; - - - //// Bezier 5 Drawing - UIBezierPath* bezier5Path = [UIBezierPath bezierPath]; - [bezier5Path moveToPoint: CGPointMake(39.34, 21.8)]; - [bezier5Path addLineToPoint: CGPointMake(50.65, 21.8)]; - [bezier5Path addLineToPoint: CGPointMake(50.65, 20.88)]; - [bezier5Path addLineToPoint: CGPointMake(39.73, 20.88)]; - [bezier5Path addLineToPoint: CGPointMake(39.34, 21.8)]; - [bezier5Path closePath]; - bezier5Path.miterLimit = 4; - - bezier5Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier5Path fill]; - - - //// Bezier 6 Drawing - UIBezierPath* bezier6Path = [UIBezierPath bezierPath]; - [bezier6Path moveToPoint: CGPointMake(38.65, 23.83)]; - [bezier6Path addLineToPoint: CGPointMake(50.65, 23.83)]; - [bezier6Path addLineToPoint: CGPointMake(50.65, 22.92)]; - [bezier6Path addLineToPoint: CGPointMake(38.93, 22.92)]; - [bezier6Path addLineToPoint: CGPointMake(38.65, 23.83)]; - [bezier6Path closePath]; - bezier6Path.miterLimit = 4; - - bezier6Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier6Path fill]; - - - //// Bezier 7 Drawing - UIBezierPath* bezier7Path = [UIBezierPath bezierPath]; - [bezier7Path moveToPoint: CGPointMake(39.05, 33.68)]; - [bezier7Path addLineToPoint: CGPointMake(50.68, 33.68)]; - [bezier7Path addLineToPoint: CGPointMake(50.68, 32.77)]; - [bezier7Path addLineToPoint: CGPointMake(38.76, 32.77)]; - [bezier7Path addLineToPoint: CGPointMake(39.05, 33.68)]; - [bezier7Path closePath]; - bezier7Path.miterLimit = 4; - - bezier7Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier7Path fill]; - - - //// Bezier 8 Drawing - UIBezierPath* bezier8Path = [UIBezierPath bezierPath]; - [bezier8Path moveToPoint: CGPointMake(39.9, 35.72)]; - [bezier8Path addLineToPoint: CGPointMake(50.68, 35.72)]; - [bezier8Path addLineToPoint: CGPointMake(50.68, 34.8)]; - [bezier8Path addLineToPoint: CGPointMake(39.48, 34.8)]; - [bezier8Path addLineToPoint: CGPointMake(39.9, 35.72)]; - [bezier8Path closePath]; - bezier8Path.miterLimit = 4; - - bezier8Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier8Path fill]; - - - //// Bezier 9 Drawing - UIBezierPath* bezier9Path = [UIBezierPath bezierPath]; - [bezier9Path moveToPoint: CGPointMake(41.11, 37.75)]; - [bezier9Path addLineToPoint: CGPointMake(50.68, 37.75)]; - [bezier9Path addLineToPoint: CGPointMake(50.68, 36.84)]; - [bezier9Path addLineToPoint: CGPointMake(40.54, 36.84)]; - [bezier9Path addLineToPoint: CGPointMake(41.11, 37.75)]; - [bezier9Path closePath]; - bezier9Path.miterLimit = 4; - - bezier9Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier9Path fill]; - - - //// Bezier 10 Drawing - UIBezierPath* bezier10Path = [UIBezierPath bezierPath]; - [bezier10Path moveToPoint: CGPointMake(42.77, 39.79)]; - [bezier10Path addLineToPoint: CGPointMake(50.68, 39.79)]; - [bezier10Path addLineToPoint: CGPointMake(50.68, 38.87)]; - [bezier10Path addLineToPoint: CGPointMake(41.97, 38.87)]; - [bezier10Path addLineToPoint: CGPointMake(42.77, 39.79)]; - [bezier10Path closePath]; - bezier10Path.miterLimit = 4; - - bezier10Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier10Path fill]; - - - //// Bezier 11 Drawing - UIBezierPath* bezier11Path = [UIBezierPath bezierPath]; - [bezier11Path moveToPoint: CGPointMake(38.24, 25.87)]; - [bezier11Path addLineToPoint: CGPointMake(50.65, 25.87)]; - [bezier11Path addLineToPoint: CGPointMake(50.65, 24.95)]; - [bezier11Path addLineToPoint: CGPointMake(38.42, 24.95)]; - [bezier11Path addLineToPoint: CGPointMake(38.24, 25.87)]; - [bezier11Path closePath]; - bezier11Path.miterLimit = 4; - - bezier11Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier11Path fill]; - - - //// Bezier 12 Drawing - UIBezierPath* bezier12Path = [UIBezierPath bezierPath]; - [bezier12Path moveToPoint: CGPointMake(45.8, 31.65)]; - [bezier12Path addLineToPoint: CGPointMake(50.53, 31.65)]; - [bezier12Path addLineToPoint: CGPointMake(50.53, 30.73)]; - [bezier12Path addLineToPoint: CGPointMake(45.97, 30.73)]; - [bezier12Path addLineToPoint: CGPointMake(45.8, 31.65)]; - [bezier12Path closePath]; - bezier12Path.miterLimit = 4; - - bezier12Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier12Path fill]; - - - //// Bezier 13 Drawing - UIBezierPath* bezier13Path = [UIBezierPath bezierPath]; - [bezier13Path moveToPoint: CGPointMake(46.18, 29.62)]; - [bezier13Path addLineToPoint: CGPointMake(50.53, 29.62)]; - [bezier13Path addLineToPoint: CGPointMake(50.53, 28.7)]; - [bezier13Path addLineToPoint: CGPointMake(46.35, 28.7)]; - [bezier13Path addLineToPoint: CGPointMake(46.18, 29.62)]; - [bezier13Path closePath]; - bezier13Path.miterLimit = 4; - - bezier13Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier13Path fill]; - - - //// Bezier 14 Drawing - UIBezierPath* bezier14Path = [UIBezierPath bezierPath]; - [bezier14Path moveToPoint: CGPointMake(37.93, 28.7)]; - [bezier14Path addLineToPoint: CGPointMake(39.16, 28.7)]; - [bezier14Path addLineToPoint: CGPointMake(39.16, 29.62)]; - [bezier14Path addLineToPoint: CGPointMake(37.99, 29.62)]; - [bezier14Path addLineToPoint: CGPointMake(37.93, 28.7)]; - [bezier14Path closePath]; - bezier14Path.miterLimit = 4; - - bezier14Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier14Path fill]; - - - //// Bezier 15 Drawing - UIBezierPath* bezier15Path = [UIBezierPath bezierPath]; - [bezier15Path moveToPoint: CGPointMake(35.63, 27.59)]; - [bezier15Path addLineToPoint: CGPointMake(35.55, 27.58)]; - [bezier15Path addLineToPoint: CGPointMake(35.48, 27.57)]; - [bezier15Path addLineToPoint: CGPointMake(35.4, 27.56)]; - [bezier15Path addLineToPoint: CGPointMake(35.33, 27.55)]; - [bezier15Path addLineToPoint: CGPointMake(35.26, 27.53)]; - [bezier15Path addLineToPoint: CGPointMake(35.18, 27.52)]; - [bezier15Path addLineToPoint: CGPointMake(35.11, 27.51)]; - [bezier15Path addLineToPoint: CGPointMake(35.03, 27.5)]; - [bezier15Path addLineToPoint: CGPointMake(34.95, 27.49)]; - [bezier15Path addLineToPoint: CGPointMake(34.86, 27.48)]; - [bezier15Path addLineToPoint: CGPointMake(34.76, 27.48)]; - [bezier15Path addLineToPoint: CGPointMake(34.65, 27.47)]; - [bezier15Path addLineToPoint: CGPointMake(34.53, 27.47)]; - [bezier15Path addLineToPoint: CGPointMake(34.4, 27.48)]; - [bezier15Path addLineToPoint: CGPointMake(34.25, 27.49)]; - [bezier15Path addLineToPoint: CGPointMake(34.09, 27.5)]; - [bezier15Path addLineToPoint: CGPointMake(33.97, 27.52)]; - [bezier15Path addLineToPoint: CGPointMake(33.86, 27.53)]; - [bezier15Path addLineToPoint: CGPointMake(33.77, 27.57)]; - [bezier15Path addLineToPoint: CGPointMake(33.68, 27.6)]; - [bezier15Path addLineToPoint: CGPointMake(33.6, 27.64)]; - [bezier15Path addLineToPoint: CGPointMake(33.53, 27.69)]; - [bezier15Path addLineToPoint: CGPointMake(33.47, 27.74)]; - [bezier15Path addLineToPoint: CGPointMake(33.42, 27.8)]; - [bezier15Path addLineToPoint: CGPointMake(33.39, 27.86)]; - [bezier15Path addLineToPoint: CGPointMake(33.36, 27.92)]; - [bezier15Path addLineToPoint: CGPointMake(33.35, 27.99)]; - [bezier15Path addLineToPoint: CGPointMake(33.35, 28.06)]; - [bezier15Path addLineToPoint: CGPointMake(33.36, 28.13)]; - [bezier15Path addLineToPoint: CGPointMake(33.39, 28.21)]; - [bezier15Path addLineToPoint: CGPointMake(33.43, 28.28)]; - [bezier15Path addLineToPoint: CGPointMake(33.49, 28.35)]; - [bezier15Path addLineToPoint: CGPointMake(33.6, 28.46)]; - [bezier15Path addLineToPoint: CGPointMake(33.74, 28.55)]; - [bezier15Path addLineToPoint: CGPointMake(33.9, 28.62)]; - [bezier15Path addLineToPoint: CGPointMake(34.07, 28.68)]; - [bezier15Path addLineToPoint: CGPointMake(34.25, 28.74)]; - [bezier15Path addLineToPoint: CGPointMake(34.44, 28.8)]; - [bezier15Path addLineToPoint: CGPointMake(34.63, 28.87)]; - [bezier15Path addLineToPoint: CGPointMake(34.81, 28.95)]; - [bezier15Path addLineToPoint: CGPointMake(34.98, 29.04)]; - [bezier15Path addLineToPoint: CGPointMake(35.14, 29.16)]; - [bezier15Path addLineToPoint: CGPointMake(35.28, 29.3)]; - [bezier15Path addLineToPoint: CGPointMake(35.4, 29.48)]; - [bezier15Path addLineToPoint: CGPointMake(35.49, 29.7)]; - [bezier15Path addLineToPoint: CGPointMake(35.55, 29.95)]; - [bezier15Path addLineToPoint: CGPointMake(35.57, 30.26)]; - [bezier15Path addLineToPoint: CGPointMake(35.55, 30.62)]; - [bezier15Path addLineToPoint: CGPointMake(35.51, 30.89)]; - [bezier15Path addLineToPoint: CGPointMake(35.44, 31.12)]; - [bezier15Path addLineToPoint: CGPointMake(35.35, 31.34)]; - [bezier15Path addLineToPoint: CGPointMake(35.24, 31.53)]; - [bezier15Path addLineToPoint: CGPointMake(35.11, 31.69)]; - [bezier15Path addLineToPoint: CGPointMake(34.96, 31.83)]; - [bezier15Path addLineToPoint: CGPointMake(34.8, 31.96)]; - [bezier15Path addLineToPoint: CGPointMake(34.62, 32.07)]; - [bezier15Path addLineToPoint: CGPointMake(34.44, 32.15)]; - [bezier15Path addLineToPoint: CGPointMake(34.25, 32.23)]; - [bezier15Path addLineToPoint: CGPointMake(34.06, 32.28)]; - [bezier15Path addLineToPoint: CGPointMake(33.86, 32.33)]; - [bezier15Path addLineToPoint: CGPointMake(33.66, 32.36)]; - [bezier15Path addLineToPoint: CGPointMake(33.48, 32.38)]; - [bezier15Path addLineToPoint: CGPointMake(33.29, 32.39)]; - [bezier15Path addLineToPoint: CGPointMake(33.11, 32.4)]; - [bezier15Path addLineToPoint: CGPointMake(32.87, 32.4)]; - [bezier15Path addLineToPoint: CGPointMake(32.64, 32.39)]; - [bezier15Path addLineToPoint: CGPointMake(32.44, 32.39)]; - [bezier15Path addLineToPoint: CGPointMake(32.25, 32.39)]; - [bezier15Path addLineToPoint: CGPointMake(32.08, 32.38)]; - [bezier15Path addLineToPoint: CGPointMake(31.93, 32.37)]; - [bezier15Path addLineToPoint: CGPointMake(31.79, 32.36)]; - [bezier15Path addLineToPoint: CGPointMake(31.66, 32.34)]; - [bezier15Path addLineToPoint: CGPointMake(31.54, 32.33)]; - [bezier15Path addLineToPoint: CGPointMake(31.43, 32.31)]; - [bezier15Path addLineToPoint: CGPointMake(31.32, 32.29)]; - [bezier15Path addLineToPoint: CGPointMake(31.23, 32.26)]; - [bezier15Path addLineToPoint: CGPointMake(31.13, 32.24)]; - [bezier15Path addLineToPoint: CGPointMake(30.95, 32.17)]; - [bezier15Path addLineToPoint: CGPointMake(30.85, 32.13)]; - [bezier15Path addLineToPoint: CGPointMake(31.11, 30.88)]; - [bezier15Path addLineToPoint: CGPointMake(31.16, 30.89)]; - [bezier15Path addLineToPoint: CGPointMake(31.22, 30.9)]; - [bezier15Path addLineToPoint: CGPointMake(31.3, 30.93)]; - [bezier15Path addLineToPoint: CGPointMake(31.4, 30.95)]; - [bezier15Path addLineToPoint: CGPointMake(31.5, 30.97)]; - [bezier15Path addLineToPoint: CGPointMake(31.62, 31)]; - [bezier15Path addLineToPoint: CGPointMake(31.74, 31.02)]; - [bezier15Path addLineToPoint: CGPointMake(31.88, 31.05)]; - [bezier15Path addLineToPoint: CGPointMake(32.02, 31.07)]; - [bezier15Path addLineToPoint: CGPointMake(32.17, 31.09)]; - [bezier15Path addLineToPoint: CGPointMake(32.32, 31.11)]; - [bezier15Path addLineToPoint: CGPointMake(32.48, 31.13)]; - [bezier15Path addLineToPoint: CGPointMake(32.65, 31.13)]; - [bezier15Path addLineToPoint: CGPointMake(32.81, 31.14)]; - [bezier15Path addLineToPoint: CGPointMake(32.98, 31.14)]; - [bezier15Path addLineToPoint: CGPointMake(33.14, 31.13)]; - [bezier15Path addLineToPoint: CGPointMake(33.31, 31.1)]; - [bezier15Path addLineToPoint: CGPointMake(33.44, 31.05)]; - [bezier15Path addLineToPoint: CGPointMake(33.54, 30.99)]; - [bezier15Path addLineToPoint: CGPointMake(33.62, 30.91)]; - [bezier15Path addLineToPoint: CGPointMake(33.68, 30.83)]; - [bezier15Path addLineToPoint: CGPointMake(33.72, 30.74)]; - [bezier15Path addLineToPoint: CGPointMake(33.75, 30.65)]; - [bezier15Path addLineToPoint: CGPointMake(33.77, 30.56)]; - [bezier15Path addLineToPoint: CGPointMake(33.78, 30.4)]; - [bezier15Path addLineToPoint: CGPointMake(33.73, 30.26)]; - [bezier15Path addLineToPoint: CGPointMake(33.64, 30.14)]; - [bezier15Path addLineToPoint: CGPointMake(33.49, 30.05)]; - [bezier15Path addLineToPoint: CGPointMake(33.32, 29.96)]; - [bezier15Path addLineToPoint: CGPointMake(33.12, 29.87)]; - [bezier15Path addLineToPoint: CGPointMake(32.9, 29.79)]; - [bezier15Path addLineToPoint: CGPointMake(32.68, 29.7)]; - [bezier15Path addLineToPoint: CGPointMake(32.45, 29.6)]; - [bezier15Path addLineToPoint: CGPointMake(32.24, 29.48)]; - [bezier15Path addLineToPoint: CGPointMake(32.04, 29.33)]; - [bezier15Path addLineToPoint: CGPointMake(31.85, 29.16)]; - [bezier15Path addLineToPoint: CGPointMake(31.71, 28.94)]; - [bezier15Path addLineToPoint: CGPointMake(31.61, 28.68)]; - [bezier15Path addLineToPoint: CGPointMake(31.56, 28.38)]; - [bezier15Path addLineToPoint: CGPointMake(31.56, 28.01)]; - [bezier15Path addLineToPoint: CGPointMake(31.59, 27.79)]; - [bezier15Path addLineToPoint: CGPointMake(31.63, 27.58)]; - [bezier15Path addLineToPoint: CGPointMake(31.69, 27.39)]; - [bezier15Path addLineToPoint: CGPointMake(31.76, 27.2)]; - [bezier15Path addLineToPoint: CGPointMake(31.85, 27.03)]; - [bezier15Path addLineToPoint: CGPointMake(31.95, 26.89)]; - [bezier15Path addLineToPoint: CGPointMake(32.07, 26.74)]; - [bezier15Path addLineToPoint: CGPointMake(32.21, 26.62)]; - [bezier15Path addLineToPoint: CGPointMake(32.38, 26.51)]; - [bezier15Path addLineToPoint: CGPointMake(32.56, 26.42)]; - [bezier15Path addLineToPoint: CGPointMake(32.76, 26.33)]; - [bezier15Path addLineToPoint: CGPointMake(32.99, 26.27)]; - [bezier15Path addLineToPoint: CGPointMake(33.25, 26.22)]; - [bezier15Path addLineToPoint: CGPointMake(33.53, 26.18)]; - [bezier15Path addLineToPoint: CGPointMake(33.84, 26.16)]; - [bezier15Path addLineToPoint: CGPointMake(34.17, 26.15)]; - [bezier15Path addLineToPoint: CGPointMake(34.38, 26.15)]; - [bezier15Path addLineToPoint: CGPointMake(34.58, 26.16)]; - [bezier15Path addLineToPoint: CGPointMake(34.75, 26.16)]; - [bezier15Path addLineToPoint: CGPointMake(34.91, 26.17)]; - [bezier15Path addLineToPoint: CGPointMake(35.05, 26.18)]; - [bezier15Path addLineToPoint: CGPointMake(35.18, 26.19)]; - [bezier15Path addLineToPoint: CGPointMake(35.3, 26.2)]; - [bezier15Path addLineToPoint: CGPointMake(35.4, 26.21)]; - [bezier15Path addLineToPoint: CGPointMake(35.5, 26.22)]; - [bezier15Path addLineToPoint: CGPointMake(35.58, 26.24)]; - [bezier15Path addLineToPoint: CGPointMake(35.65, 26.25)]; - [bezier15Path addLineToPoint: CGPointMake(35.72, 26.26)]; - [bezier15Path addLineToPoint: CGPointMake(35.78, 26.28)]; - [bezier15Path addLineToPoint: CGPointMake(35.83, 26.28)]; - [bezier15Path addLineToPoint: CGPointMake(35.88, 26.29)]; - [bezier15Path addLineToPoint: CGPointMake(35.92, 26.3)]; - [bezier15Path addLineToPoint: CGPointMake(35.63, 27.59)]; - [bezier15Path closePath]; - bezier15Path.miterLimit = 4; - - bezier15Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier15Path fill]; - - - //// Bezier 16 Drawing - UIBezierPath* bezier16Path = [UIBezierPath bezierPath]; - [bezier16Path moveToPoint: CGPointMake(35.63, 27.59)]; - [bezier16Path addLineToPoint: CGPointMake(35.63, 27.59)]; - [bezier16Path addLineToPoint: CGPointMake(35.55, 27.58)]; - [bezier16Path addLineToPoint: CGPointMake(35.48, 27.57)]; - [bezier16Path addLineToPoint: CGPointMake(35.4, 27.56)]; - [bezier16Path addLineToPoint: CGPointMake(35.33, 27.55)]; - [bezier16Path addLineToPoint: CGPointMake(35.26, 27.53)]; - [bezier16Path addLineToPoint: CGPointMake(35.18, 27.52)]; - [bezier16Path addLineToPoint: CGPointMake(35.11, 27.51)]; - [bezier16Path addLineToPoint: CGPointMake(35.03, 27.5)]; - [bezier16Path addLineToPoint: CGPointMake(34.95, 27.49)]; - [bezier16Path addLineToPoint: CGPointMake(34.86, 27.48)]; - [bezier16Path addLineToPoint: CGPointMake(34.76, 27.48)]; - [bezier16Path addLineToPoint: CGPointMake(34.65, 27.47)]; - [bezier16Path addLineToPoint: CGPointMake(34.53, 27.47)]; - [bezier16Path addLineToPoint: CGPointMake(34.4, 27.48)]; - [bezier16Path addLineToPoint: CGPointMake(34.25, 27.49)]; - [bezier16Path addLineToPoint: CGPointMake(34.09, 27.5)]; - [bezier16Path addLineToPoint: CGPointMake(33.97, 27.52)]; - [bezier16Path addLineToPoint: CGPointMake(33.86, 27.53)]; - [bezier16Path addLineToPoint: CGPointMake(33.77, 27.57)]; - [bezier16Path addLineToPoint: CGPointMake(33.68, 27.6)]; - [bezier16Path addLineToPoint: CGPointMake(33.6, 27.64)]; - [bezier16Path addLineToPoint: CGPointMake(33.53, 27.69)]; - [bezier16Path addLineToPoint: CGPointMake(33.47, 27.74)]; - [bezier16Path addLineToPoint: CGPointMake(33.42, 27.8)]; - [bezier16Path addLineToPoint: CGPointMake(33.39, 27.86)]; - [bezier16Path addLineToPoint: CGPointMake(33.36, 27.92)]; - [bezier16Path addLineToPoint: CGPointMake(33.35, 27.99)]; - [bezier16Path addLineToPoint: CGPointMake(33.35, 28.06)]; - [bezier16Path addLineToPoint: CGPointMake(33.36, 28.13)]; - [bezier16Path addLineToPoint: CGPointMake(33.39, 28.21)]; - [bezier16Path addLineToPoint: CGPointMake(33.43, 28.28)]; - [bezier16Path addLineToPoint: CGPointMake(33.49, 28.35)]; - [bezier16Path addLineToPoint: CGPointMake(33.6, 28.46)]; - [bezier16Path addLineToPoint: CGPointMake(33.74, 28.55)]; - [bezier16Path addLineToPoint: CGPointMake(33.9, 28.62)]; - [bezier16Path addLineToPoint: CGPointMake(34.07, 28.68)]; - [bezier16Path addLineToPoint: CGPointMake(34.25, 28.74)]; - [bezier16Path addLineToPoint: CGPointMake(34.44, 28.8)]; - [bezier16Path addLineToPoint: CGPointMake(34.63, 28.87)]; - [bezier16Path addLineToPoint: CGPointMake(34.81, 28.95)]; - [bezier16Path addLineToPoint: CGPointMake(34.98, 29.04)]; - [bezier16Path addLineToPoint: CGPointMake(35.14, 29.16)]; - [bezier16Path addLineToPoint: CGPointMake(35.28, 29.3)]; - [bezier16Path addLineToPoint: CGPointMake(35.4, 29.48)]; - [bezier16Path addLineToPoint: CGPointMake(35.49, 29.7)]; - [bezier16Path addLineToPoint: CGPointMake(35.55, 29.95)]; - [bezier16Path addLineToPoint: CGPointMake(35.57, 30.26)]; - [bezier16Path addLineToPoint: CGPointMake(35.55, 30.62)]; - [bezier16Path addLineToPoint: CGPointMake(35.51, 30.89)]; - [bezier16Path addLineToPoint: CGPointMake(35.44, 31.12)]; - [bezier16Path addLineToPoint: CGPointMake(35.35, 31.34)]; - [bezier16Path addLineToPoint: CGPointMake(35.24, 31.53)]; - [bezier16Path addLineToPoint: CGPointMake(35.11, 31.69)]; - [bezier16Path addLineToPoint: CGPointMake(34.96, 31.83)]; - [bezier16Path addLineToPoint: CGPointMake(34.8, 31.96)]; - [bezier16Path addLineToPoint: CGPointMake(34.62, 32.07)]; - [bezier16Path addLineToPoint: CGPointMake(34.44, 32.15)]; - [bezier16Path addLineToPoint: CGPointMake(34.25, 32.23)]; - [bezier16Path addLineToPoint: CGPointMake(34.06, 32.28)]; - [bezier16Path addLineToPoint: CGPointMake(33.86, 32.33)]; - [bezier16Path addLineToPoint: CGPointMake(33.66, 32.36)]; - [bezier16Path addLineToPoint: CGPointMake(33.48, 32.38)]; - [bezier16Path addLineToPoint: CGPointMake(33.29, 32.39)]; - [bezier16Path addLineToPoint: CGPointMake(33.11, 32.4)]; - [bezier16Path addLineToPoint: CGPointMake(32.87, 32.4)]; - [bezier16Path addLineToPoint: CGPointMake(32.64, 32.39)]; - [bezier16Path addLineToPoint: CGPointMake(32.44, 32.39)]; - [bezier16Path addLineToPoint: CGPointMake(32.25, 32.39)]; - [bezier16Path addLineToPoint: CGPointMake(32.08, 32.38)]; - [bezier16Path addLineToPoint: CGPointMake(31.93, 32.37)]; - [bezier16Path addLineToPoint: CGPointMake(31.79, 32.36)]; - [bezier16Path addLineToPoint: CGPointMake(31.66, 32.34)]; - [bezier16Path addLineToPoint: CGPointMake(31.54, 32.33)]; - [bezier16Path addLineToPoint: CGPointMake(31.43, 32.31)]; - [bezier16Path addLineToPoint: CGPointMake(31.32, 32.29)]; - [bezier16Path addLineToPoint: CGPointMake(31.23, 32.26)]; - [bezier16Path addLineToPoint: CGPointMake(31.13, 32.24)]; - [bezier16Path addLineToPoint: CGPointMake(30.95, 32.17)]; - [bezier16Path addLineToPoint: CGPointMake(30.85, 32.13)]; - [bezier16Path addLineToPoint: CGPointMake(31.11, 30.88)]; - [bezier16Path addLineToPoint: CGPointMake(31.16, 30.89)]; - [bezier16Path addLineToPoint: CGPointMake(31.22, 30.9)]; - [bezier16Path addLineToPoint: CGPointMake(31.3, 30.93)]; - [bezier16Path addLineToPoint: CGPointMake(31.4, 30.95)]; - [bezier16Path addLineToPoint: CGPointMake(31.5, 30.97)]; - [bezier16Path addLineToPoint: CGPointMake(31.62, 31)]; - [bezier16Path addLineToPoint: CGPointMake(31.74, 31.02)]; - [bezier16Path addLineToPoint: CGPointMake(31.88, 31.05)]; - [bezier16Path addLineToPoint: CGPointMake(32.02, 31.07)]; - [bezier16Path addLineToPoint: CGPointMake(32.17, 31.09)]; - [bezier16Path addLineToPoint: CGPointMake(32.32, 31.11)]; - [bezier16Path addLineToPoint: CGPointMake(32.48, 31.13)]; - [bezier16Path addLineToPoint: CGPointMake(32.65, 31.13)]; - [bezier16Path addLineToPoint: CGPointMake(32.81, 31.14)]; - [bezier16Path addLineToPoint: CGPointMake(32.98, 31.14)]; - [bezier16Path addLineToPoint: CGPointMake(33.14, 31.13)]; - [bezier16Path addLineToPoint: CGPointMake(33.31, 31.1)]; - [bezier16Path addLineToPoint: CGPointMake(33.44, 31.05)]; - [bezier16Path addLineToPoint: CGPointMake(33.54, 30.99)]; - [bezier16Path addLineToPoint: CGPointMake(33.62, 30.91)]; - [bezier16Path addLineToPoint: CGPointMake(33.68, 30.83)]; - [bezier16Path addLineToPoint: CGPointMake(33.72, 30.74)]; - [bezier16Path addLineToPoint: CGPointMake(33.75, 30.65)]; - [bezier16Path addLineToPoint: CGPointMake(33.77, 30.56)]; - [bezier16Path addLineToPoint: CGPointMake(33.78, 30.4)]; - [bezier16Path addLineToPoint: CGPointMake(33.73, 30.26)]; - [bezier16Path addLineToPoint: CGPointMake(33.64, 30.14)]; - [bezier16Path addLineToPoint: CGPointMake(33.49, 30.05)]; - [bezier16Path addLineToPoint: CGPointMake(33.32, 29.96)]; - [bezier16Path addLineToPoint: CGPointMake(33.12, 29.87)]; - [bezier16Path addLineToPoint: CGPointMake(32.9, 29.79)]; - [bezier16Path addLineToPoint: CGPointMake(32.68, 29.7)]; - [bezier16Path addLineToPoint: CGPointMake(32.45, 29.6)]; - [bezier16Path addLineToPoint: CGPointMake(32.24, 29.48)]; - [bezier16Path addLineToPoint: CGPointMake(32.04, 29.33)]; - [bezier16Path addLineToPoint: CGPointMake(31.85, 29.16)]; - [bezier16Path addLineToPoint: CGPointMake(31.71, 28.94)]; - [bezier16Path addLineToPoint: CGPointMake(31.61, 28.68)]; - [bezier16Path addLineToPoint: CGPointMake(31.56, 28.38)]; - [bezier16Path addLineToPoint: CGPointMake(31.56, 28.01)]; - [bezier16Path addLineToPoint: CGPointMake(31.59, 27.79)]; - [bezier16Path addLineToPoint: CGPointMake(31.63, 27.58)]; - [bezier16Path addLineToPoint: CGPointMake(31.69, 27.39)]; - [bezier16Path addLineToPoint: CGPointMake(31.76, 27.2)]; - [bezier16Path addLineToPoint: CGPointMake(31.85, 27.03)]; - [bezier16Path addLineToPoint: CGPointMake(31.95, 26.89)]; - [bezier16Path addLineToPoint: CGPointMake(32.07, 26.74)]; - [bezier16Path addLineToPoint: CGPointMake(32.21, 26.62)]; - [bezier16Path addLineToPoint: CGPointMake(32.38, 26.51)]; - [bezier16Path addLineToPoint: CGPointMake(32.56, 26.42)]; - [bezier16Path addLineToPoint: CGPointMake(32.76, 26.33)]; - [bezier16Path addLineToPoint: CGPointMake(32.99, 26.27)]; - [bezier16Path addLineToPoint: CGPointMake(33.25, 26.22)]; - [bezier16Path addLineToPoint: CGPointMake(33.53, 26.18)]; - [bezier16Path addLineToPoint: CGPointMake(33.84, 26.16)]; - [bezier16Path addLineToPoint: CGPointMake(34.17, 26.15)]; - [bezier16Path addLineToPoint: CGPointMake(34.38, 26.15)]; - [bezier16Path addLineToPoint: CGPointMake(34.58, 26.16)]; - [bezier16Path addLineToPoint: CGPointMake(34.75, 26.16)]; - [bezier16Path addLineToPoint: CGPointMake(34.91, 26.17)]; - [bezier16Path addLineToPoint: CGPointMake(35.05, 26.18)]; - [bezier16Path addLineToPoint: CGPointMake(35.18, 26.19)]; - [bezier16Path addLineToPoint: CGPointMake(35.3, 26.2)]; - [bezier16Path addLineToPoint: CGPointMake(35.4, 26.21)]; - [bezier16Path addLineToPoint: CGPointMake(35.5, 26.22)]; - [bezier16Path addLineToPoint: CGPointMake(35.58, 26.24)]; - [bezier16Path addLineToPoint: CGPointMake(35.65, 26.25)]; - [bezier16Path addLineToPoint: CGPointMake(35.72, 26.26)]; - [bezier16Path addLineToPoint: CGPointMake(35.78, 26.28)]; - [bezier16Path addLineToPoint: CGPointMake(35.83, 26.28)]; - [bezier16Path addLineToPoint: CGPointMake(35.88, 26.29)]; - [bezier16Path addLineToPoint: CGPointMake(35.92, 26.3)]; - [bezier16Path addLineToPoint: CGPointMake(35.63, 27.59)]; - [bezier16Path closePath]; - bezier16Path.miterLimit = 4; - - bezier16Path.usesEvenOddFillRule = YES; - - [color3 setStroke]; - bezier16Path.lineWidth = 0.5; - [bezier16Path stroke]; - - - //// Bezier 17 Drawing - UIBezierPath* bezier17Path = [UIBezierPath bezierPath]; - [bezier17Path moveToPoint: CGPointMake(36.98, 24.89)]; - [bezier17Path addLineToPoint: CGPointMake(38.56, 24.89)]; - [bezier17Path addLineToPoint: CGPointMake(38.33, 26.27)]; - [bezier17Path addLineToPoint: CGPointMake(39.28, 26.27)]; - [bezier17Path addLineToPoint: CGPointMake(39.07, 27.56)]; - [bezier17Path addLineToPoint: CGPointMake(38.07, 27.53)]; - [bezier17Path addLineToPoint: CGPointMake(37.53, 30.71)]; - [bezier17Path addLineToPoint: CGPointMake(37.52, 30.82)]; - [bezier17Path addLineToPoint: CGPointMake(37.55, 30.92)]; - [bezier17Path addLineToPoint: CGPointMake(37.6, 30.99)]; - [bezier17Path addLineToPoint: CGPointMake(37.68, 31.05)]; - [bezier17Path addLineToPoint: CGPointMake(37.78, 31.09)]; - [bezier17Path addLineToPoint: CGPointMake(37.89, 31.13)]; - [bezier17Path addLineToPoint: CGPointMake(38.02, 31.15)]; - [bezier17Path addLineToPoint: CGPointMake(38.16, 31.16)]; - [bezier17Path addLineToPoint: CGPointMake(38.28, 31.16)]; - [bezier17Path addLineToPoint: CGPointMake(38.4, 31.14)]; - [bezier17Path addLineToPoint: CGPointMake(38.5, 31.13)]; - [bezier17Path addLineToPoint: CGPointMake(38.59, 31.1)]; - [bezier17Path addLineToPoint: CGPointMake(38.66, 31.08)]; - [bezier17Path addLineToPoint: CGPointMake(38.71, 31.06)]; - [bezier17Path addLineToPoint: CGPointMake(38.75, 31.05)]; - [bezier17Path addLineToPoint: CGPointMake(38.76, 31.05)]; - [bezier17Path addLineToPoint: CGPointMake(38.56, 32.11)]; - [bezier17Path addLineToPoint: CGPointMake(38.52, 32.13)]; - [bezier17Path addLineToPoint: CGPointMake(38.48, 32.16)]; - [bezier17Path addLineToPoint: CGPointMake(38.44, 32.18)]; - [bezier17Path addLineToPoint: CGPointMake(38.4, 32.2)]; - [bezier17Path addLineToPoint: CGPointMake(38.36, 32.22)]; - [bezier17Path addLineToPoint: CGPointMake(38.32, 32.24)]; - [bezier17Path addLineToPoint: CGPointMake(38.27, 32.25)]; - [bezier17Path addLineToPoint: CGPointMake(38.21, 32.27)]; - [bezier17Path addLineToPoint: CGPointMake(38.16, 32.29)]; - [bezier17Path addLineToPoint: CGPointMake(38.1, 32.3)]; - [bezier17Path addLineToPoint: CGPointMake(38.03, 32.31)]; - [bezier17Path addLineToPoint: CGPointMake(37.96, 32.32)]; - [bezier17Path addLineToPoint: CGPointMake(37.89, 32.33)]; - [bezier17Path addLineToPoint: CGPointMake(37.8, 32.35)]; - [bezier17Path addLineToPoint: CGPointMake(37.71, 32.36)]; - [bezier17Path addLineToPoint: CGPointMake(37.62, 32.37)]; - [bezier17Path addLineToPoint: CGPointMake(37.18, 32.37)]; - [bezier17Path addLineToPoint: CGPointMake(36.96, 32.35)]; - [bezier17Path addLineToPoint: CGPointMake(36.76, 32.33)]; - [bezier17Path addLineToPoint: CGPointMake(36.57, 32.29)]; - [bezier17Path addLineToPoint: CGPointMake(36.42, 32.25)]; - [bezier17Path addLineToPoint: CGPointMake(36.29, 32.2)]; - [bezier17Path addLineToPoint: CGPointMake(36.18, 32.15)]; - [bezier17Path addLineToPoint: CGPointMake(36.08, 32.08)]; - [bezier17Path addLineToPoint: CGPointMake(36.01, 32)]; - [bezier17Path addLineToPoint: CGPointMake(35.95, 31.92)]; - [bezier17Path addLineToPoint: CGPointMake(35.91, 31.83)]; - [bezier17Path addLineToPoint: CGPointMake(35.89, 31.73)]; - [bezier17Path addLineToPoint: CGPointMake(35.87, 31.62)]; - [bezier17Path addLineToPoint: CGPointMake(35.86, 31.5)]; - [bezier17Path addLineToPoint: CGPointMake(35.86, 31.38)]; - [bezier17Path addLineToPoint: CGPointMake(35.88, 31.25)]; - [bezier17Path addLineToPoint: CGPointMake(35.9, 31.1)]; - [bezier17Path addLineToPoint: CGPointMake(36.98, 24.89)]; - [bezier17Path closePath]; - bezier17Path.miterLimit = 4; - - bezier17Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier17Path fill]; - - - //// Bezier 18 Drawing - UIBezierPath* bezier18Path = [UIBezierPath bezierPath]; - [bezier18Path moveToPoint: CGPointMake(36.98, 24.89)]; - [bezier18Path addLineToPoint: CGPointMake(38.56, 24.89)]; - [bezier18Path addLineToPoint: CGPointMake(38.33, 26.27)]; - [bezier18Path addLineToPoint: CGPointMake(39.28, 26.27)]; - [bezier18Path addLineToPoint: CGPointMake(39.07, 27.56)]; - [bezier18Path addLineToPoint: CGPointMake(38.07, 27.53)]; - [bezier18Path addLineToPoint: CGPointMake(37.53, 30.71)]; - [bezier18Path addLineToPoint: CGPointMake(37.52, 30.82)]; - [bezier18Path addLineToPoint: CGPointMake(37.55, 30.92)]; - [bezier18Path addLineToPoint: CGPointMake(37.6, 30.99)]; - [bezier18Path addLineToPoint: CGPointMake(37.68, 31.05)]; - [bezier18Path addLineToPoint: CGPointMake(37.78, 31.09)]; - [bezier18Path addLineToPoint: CGPointMake(37.89, 31.13)]; - [bezier18Path addLineToPoint: CGPointMake(38.02, 31.15)]; - [bezier18Path addLineToPoint: CGPointMake(38.16, 31.16)]; - [bezier18Path addLineToPoint: CGPointMake(38.28, 31.16)]; - [bezier18Path addLineToPoint: CGPointMake(38.4, 31.14)]; - [bezier18Path addLineToPoint: CGPointMake(38.5, 31.13)]; - [bezier18Path addLineToPoint: CGPointMake(38.59, 31.1)]; - [bezier18Path addLineToPoint: CGPointMake(38.66, 31.08)]; - [bezier18Path addLineToPoint: CGPointMake(38.71, 31.06)]; - [bezier18Path addLineToPoint: CGPointMake(38.75, 31.05)]; - [bezier18Path addLineToPoint: CGPointMake(38.76, 31.05)]; - [bezier18Path addLineToPoint: CGPointMake(38.56, 32.11)]; - [bezier18Path addLineToPoint: CGPointMake(38.52, 32.13)]; - [bezier18Path addLineToPoint: CGPointMake(38.48, 32.16)]; - [bezier18Path addLineToPoint: CGPointMake(38.44, 32.18)]; - [bezier18Path addLineToPoint: CGPointMake(38.4, 32.2)]; - [bezier18Path addLineToPoint: CGPointMake(38.36, 32.22)]; - [bezier18Path addLineToPoint: CGPointMake(38.32, 32.24)]; - [bezier18Path addLineToPoint: CGPointMake(38.27, 32.25)]; - [bezier18Path addLineToPoint: CGPointMake(38.21, 32.27)]; - [bezier18Path addLineToPoint: CGPointMake(38.16, 32.29)]; - [bezier18Path addLineToPoint: CGPointMake(38.1, 32.3)]; - [bezier18Path addLineToPoint: CGPointMake(38.03, 32.31)]; - [bezier18Path addLineToPoint: CGPointMake(37.96, 32.32)]; - [bezier18Path addLineToPoint: CGPointMake(37.89, 32.33)]; - [bezier18Path addLineToPoint: CGPointMake(37.8, 32.35)]; - [bezier18Path addLineToPoint: CGPointMake(37.71, 32.36)]; - [bezier18Path addLineToPoint: CGPointMake(37.62, 32.37)]; - [bezier18Path addLineToPoint: CGPointMake(37.18, 32.37)]; - [bezier18Path addLineToPoint: CGPointMake(36.96, 32.35)]; - [bezier18Path addLineToPoint: CGPointMake(36.76, 32.33)]; - [bezier18Path addLineToPoint: CGPointMake(36.57, 32.29)]; - [bezier18Path addLineToPoint: CGPointMake(36.42, 32.25)]; - [bezier18Path addLineToPoint: CGPointMake(36.29, 32.2)]; - [bezier18Path addLineToPoint: CGPointMake(36.18, 32.15)]; - [bezier18Path addLineToPoint: CGPointMake(36.08, 32.08)]; - [bezier18Path addLineToPoint: CGPointMake(36.01, 32)]; - [bezier18Path addLineToPoint: CGPointMake(35.95, 31.92)]; - [bezier18Path addLineToPoint: CGPointMake(35.91, 31.83)]; - [bezier18Path addLineToPoint: CGPointMake(35.89, 31.73)]; - [bezier18Path addLineToPoint: CGPointMake(35.87, 31.62)]; - [bezier18Path addLineToPoint: CGPointMake(35.86, 31.5)]; - [bezier18Path addLineToPoint: CGPointMake(35.86, 31.38)]; - [bezier18Path addLineToPoint: CGPointMake(35.88, 31.25)]; - [bezier18Path addLineToPoint: CGPointMake(35.9, 31.1)]; - [bezier18Path addLineToPoint: CGPointMake(36.98, 24.89)]; - [bezier18Path closePath]; - bezier18Path.miterLimit = 4; - - bezier18Path.usesEvenOddFillRule = YES; - - [color3 setStroke]; - bezier18Path.lineWidth = 0.5; - [bezier18Path stroke]; - - - //// Bezier 19 Drawing - UIBezierPath* bezier19Path = [UIBezierPath bezierPath]; - [bezier19Path moveToPoint: CGPointMake(40.52, 29.8)]; - [bezier19Path addLineToPoint: CGPointMake(40.51, 29.9)]; - [bezier19Path addLineToPoint: CGPointMake(40.53, 30.01)]; - [bezier19Path addLineToPoint: CGPointMake(40.55, 30.12)]; - [bezier19Path addLineToPoint: CGPointMake(40.59, 30.23)]; - [bezier19Path addLineToPoint: CGPointMake(40.63, 30.33)]; - [bezier19Path addLineToPoint: CGPointMake(40.7, 30.44)]; - [bezier19Path addLineToPoint: CGPointMake(40.76, 30.53)]; - [bezier19Path addLineToPoint: CGPointMake(40.84, 30.63)]; - [bezier19Path addLineToPoint: CGPointMake(40.93, 30.72)]; - [bezier19Path addLineToPoint: CGPointMake(41.02, 30.8)]; - [bezier19Path addLineToPoint: CGPointMake(41.12, 30.87)]; - [bezier19Path addLineToPoint: CGPointMake(41.23, 30.93)]; - [bezier19Path addLineToPoint: CGPointMake(41.34, 30.98)]; - [bezier19Path addLineToPoint: CGPointMake(41.45, 31.02)]; - [bezier19Path addLineToPoint: CGPointMake(41.57, 31.05)]; - [bezier19Path addLineToPoint: CGPointMake(41.72, 31.07)]; - [bezier19Path addLineToPoint: CGPointMake(41.86, 31.09)]; - [bezier19Path addLineToPoint: CGPointMake(42.01, 31.1)]; - [bezier19Path addLineToPoint: CGPointMake(42.15, 31.12)]; - [bezier19Path addLineToPoint: CGPointMake(42.3, 31.12)]; - [bezier19Path addLineToPoint: CGPointMake(42.46, 31.12)]; - [bezier19Path addLineToPoint: CGPointMake(42.6, 31.12)]; - [bezier19Path addLineToPoint: CGPointMake(42.76, 31.1)]; - [bezier19Path addLineToPoint: CGPointMake(42.91, 31.08)]; - [bezier19Path addLineToPoint: CGPointMake(43.06, 31.05)]; - [bezier19Path addLineToPoint: CGPointMake(43.22, 31.02)]; - [bezier19Path addLineToPoint: CGPointMake(43.38, 30.97)]; - [bezier19Path addLineToPoint: CGPointMake(43.54, 30.9)]; - [bezier19Path addLineToPoint: CGPointMake(43.7, 30.84)]; - [bezier19Path addLineToPoint: CGPointMake(43.86, 30.75)]; - [bezier19Path addLineToPoint: CGPointMake(44.03, 30.65)]; - [bezier19Path addLineToPoint: CGPointMake(43.8, 32.05)]; - [bezier19Path addLineToPoint: CGPointMake(43.71, 32.09)]; - [bezier19Path addLineToPoint: CGPointMake(43.62, 32.14)]; - [bezier19Path addLineToPoint: CGPointMake(43.53, 32.17)]; - [bezier19Path addLineToPoint: CGPointMake(43.44, 32.21)]; - [bezier19Path addLineToPoint: CGPointMake(43.36, 32.24)]; - [bezier19Path addLineToPoint: CGPointMake(43.26, 32.27)]; - [bezier19Path addLineToPoint: CGPointMake(43.17, 32.29)]; - [bezier19Path addLineToPoint: CGPointMake(43.08, 32.31)]; - [bezier19Path addLineToPoint: CGPointMake(42.97, 32.32)]; - [bezier19Path addLineToPoint: CGPointMake(42.86, 32.33)]; - [bezier19Path addLineToPoint: CGPointMake(42.74, 32.35)]; - [bezier19Path addLineToPoint: CGPointMake(42.61, 32.36)]; - [bezier19Path addLineToPoint: CGPointMake(42.46, 32.36)]; - [bezier19Path addLineToPoint: CGPointMake(42.31, 32.36)]; - [bezier19Path addLineToPoint: CGPointMake(42.13, 32.37)]; - [bezier19Path addLineToPoint: CGPointMake(41.94, 32.37)]; - [bezier19Path addLineToPoint: CGPointMake(41.66, 32.36)]; - [bezier19Path addLineToPoint: CGPointMake(41.38, 32.33)]; - [bezier19Path addLineToPoint: CGPointMake(41.09, 32.29)]; - [bezier19Path addLineToPoint: CGPointMake(40.81, 32.23)]; - [bezier19Path addLineToPoint: CGPointMake(40.53, 32.14)]; - [bezier19Path addLineToPoint: CGPointMake(40.26, 32.03)]; - [bezier19Path addLineToPoint: CGPointMake(40.01, 31.89)]; - [bezier19Path addLineToPoint: CGPointMake(39.77, 31.72)]; - [bezier19Path addLineToPoint: CGPointMake(39.55, 31.53)]; - [bezier19Path addLineToPoint: CGPointMake(39.35, 31.3)]; - [bezier19Path addLineToPoint: CGPointMake(39.19, 31.04)]; - [bezier19Path addLineToPoint: CGPointMake(39.05, 30.73)]; - [bezier19Path addLineToPoint: CGPointMake(38.95, 30.4)]; - [bezier19Path addLineToPoint: CGPointMake(38.89, 30.02)]; - [bezier19Path addLineToPoint: CGPointMake(38.87, 29.6)]; - [bezier19Path addLineToPoint: CGPointMake(38.9, 29.13)]; - [bezier19Path addLineToPoint: CGPointMake(38.93, 28.95)]; - [bezier19Path addLineToPoint: CGPointMake(38.96, 28.74)]; - [bezier19Path addLineToPoint: CGPointMake(39.01, 28.51)]; - [bezier19Path addLineToPoint: CGPointMake(39.07, 28.27)]; - [bezier19Path addLineToPoint: CGPointMake(39.15, 28.03)]; - [bezier19Path addLineToPoint: CGPointMake(39.26, 27.78)]; - [bezier19Path addLineToPoint: CGPointMake(39.39, 27.53)]; - [bezier19Path addLineToPoint: CGPointMake(39.55, 27.3)]; - [bezier19Path addLineToPoint: CGPointMake(39.73, 27.07)]; - [bezier19Path addLineToPoint: CGPointMake(39.95, 26.85)]; - [bezier19Path addLineToPoint: CGPointMake(40.2, 26.66)]; - [bezier19Path addLineToPoint: CGPointMake(40.49, 26.49)]; - [bezier19Path addLineToPoint: CGPointMake(40.82, 26.34)]; - [bezier19Path addLineToPoint: CGPointMake(41.19, 26.24)]; - [bezier19Path addLineToPoint: CGPointMake(41.6, 26.17)]; - [bezier19Path addLineToPoint: CGPointMake(42.06, 26.15)]; - [bezier19Path addLineToPoint: CGPointMake(42.28, 26.16)]; - [bezier19Path addLineToPoint: CGPointMake(42.51, 26.18)]; - [bezier19Path addLineToPoint: CGPointMake(42.75, 26.22)]; - [bezier19Path addLineToPoint: CGPointMake(42.98, 26.28)]; - [bezier19Path addLineToPoint: CGPointMake(43.21, 26.36)]; - [bezier19Path addLineToPoint: CGPointMake(43.43, 26.46)]; - [bezier19Path addLineToPoint: CGPointMake(43.63, 26.6)]; - [bezier19Path addLineToPoint: CGPointMake(43.82, 26.76)]; - [bezier19Path addLineToPoint: CGPointMake(43.99, 26.95)]; - [bezier19Path addLineToPoint: CGPointMake(44.13, 27.18)]; - [bezier19Path addLineToPoint: CGPointMake(44.25, 27.44)]; - [bezier19Path addLineToPoint: CGPointMake(44.33, 27.74)]; - [bezier19Path addLineToPoint: CGPointMake(44.37, 28.09)]; - [bezier19Path addLineToPoint: CGPointMake(44.38, 28.47)]; - [bezier19Path addLineToPoint: CGPointMake(44.34, 28.91)]; - [bezier19Path addLineToPoint: CGPointMake(44.25, 29.38)]; - [bezier19Path addLineToPoint: CGPointMake(44.23, 29.73)]; - [bezier19Path addLineToPoint: CGPointMake(40.08, 29.73)]; - [bezier19Path addLineToPoint: CGPointMake(40.34, 28.61)]; - [bezier19Path addLineToPoint: CGPointMake(42.83, 28.61)]; - [bezier19Path addLineToPoint: CGPointMake(42.84, 28.47)]; - [bezier19Path addLineToPoint: CGPointMake(42.84, 28.33)]; - [bezier19Path addLineToPoint: CGPointMake(42.83, 28.21)]; - [bezier19Path addLineToPoint: CGPointMake(42.8, 28.09)]; - [bezier19Path addLineToPoint: CGPointMake(42.76, 27.98)]; - [bezier19Path addLineToPoint: CGPointMake(42.72, 27.89)]; - [bezier19Path addLineToPoint: CGPointMake(42.67, 27.8)]; - [bezier19Path addLineToPoint: CGPointMake(42.61, 27.72)]; - [bezier19Path addLineToPoint: CGPointMake(42.54, 27.65)]; - [bezier19Path addLineToPoint: CGPointMake(42.47, 27.6)]; - [bezier19Path addLineToPoint: CGPointMake(42.38, 27.55)]; - [bezier19Path addLineToPoint: CGPointMake(42.3, 27.5)]; - [bezier19Path addLineToPoint: CGPointMake(42.2, 27.47)]; - [bezier19Path addLineToPoint: CGPointMake(42.11, 27.44)]; - [bezier19Path addLineToPoint: CGPointMake(42.02, 27.43)]; - [bezier19Path addLineToPoint: CGPointMake(41.91, 27.41)]; - [bezier19Path addLineToPoint: CGPointMake(41.81, 27.42)]; - [bezier19Path addLineToPoint: CGPointMake(41.7, 27.44)]; - [bezier19Path addLineToPoint: CGPointMake(41.61, 27.46)]; - [bezier19Path addLineToPoint: CGPointMake(41.51, 27.49)]; - [bezier19Path addLineToPoint: CGPointMake(41.41, 27.54)]; - [bezier19Path addLineToPoint: CGPointMake(41.33, 27.59)]; - [bezier19Path addLineToPoint: CGPointMake(41.24, 27.65)]; - [bezier19Path addLineToPoint: CGPointMake(41.17, 27.72)]; - [bezier19Path addLineToPoint: CGPointMake(41.09, 27.8)]; - [bezier19Path addLineToPoint: CGPointMake(41.03, 27.89)]; - [bezier19Path addLineToPoint: CGPointMake(40.96, 27.98)]; - [bezier19Path addLineToPoint: CGPointMake(40.91, 28.08)]; - [bezier19Path addLineToPoint: CGPointMake(40.86, 28.18)]; - [bezier19Path addLineToPoint: CGPointMake(40.82, 28.29)]; - [bezier19Path addLineToPoint: CGPointMake(40.79, 28.41)]; - [bezier19Path addLineToPoint: CGPointMake(40.76, 28.52)]; - [bezier19Path addLineToPoint: CGPointMake(40.54, 29.7)]; - [bezier19Path addLineToPoint: CGPointMake(40.52, 29.8)]; - [bezier19Path closePath]; - bezier19Path.miterLimit = 4; - - bezier19Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier19Path fill]; - - - //// Bezier 20 Drawing - UIBezierPath* bezier20Path = [UIBezierPath bezierPath]; - [bezier20Path moveToPoint: CGPointMake(40.63, 28.52)]; - [bezier20Path addLineToPoint: CGPointMake(40.54, 29.7)]; - [bezier20Path addLineToPoint: CGPointMake(40.52, 29.8)]; - [bezier20Path addLineToPoint: CGPointMake(40.51, 29.9)]; - [bezier20Path addLineToPoint: CGPointMake(40.53, 30.01)]; - [bezier20Path addLineToPoint: CGPointMake(40.55, 30.12)]; - [bezier20Path addLineToPoint: CGPointMake(40.59, 30.23)]; - [bezier20Path addLineToPoint: CGPointMake(40.63, 30.33)]; - [bezier20Path addLineToPoint: CGPointMake(40.7, 30.44)]; - [bezier20Path addLineToPoint: CGPointMake(40.76, 30.53)]; - [bezier20Path addLineToPoint: CGPointMake(40.84, 30.63)]; - [bezier20Path addLineToPoint: CGPointMake(40.93, 30.72)]; - [bezier20Path addLineToPoint: CGPointMake(41.02, 30.8)]; - [bezier20Path addLineToPoint: CGPointMake(41.12, 30.87)]; - [bezier20Path addLineToPoint: CGPointMake(41.23, 30.93)]; - [bezier20Path addLineToPoint: CGPointMake(41.34, 30.98)]; - [bezier20Path addLineToPoint: CGPointMake(41.45, 31.02)]; - [bezier20Path addLineToPoint: CGPointMake(41.57, 31.05)]; - [bezier20Path addLineToPoint: CGPointMake(41.72, 31.07)]; - [bezier20Path addLineToPoint: CGPointMake(41.86, 31.09)]; - [bezier20Path addLineToPoint: CGPointMake(42.01, 31.1)]; - [bezier20Path addLineToPoint: CGPointMake(42.15, 31.12)]; - [bezier20Path addLineToPoint: CGPointMake(42.3, 31.12)]; - [bezier20Path addLineToPoint: CGPointMake(42.46, 31.12)]; - [bezier20Path addLineToPoint: CGPointMake(42.6, 31.12)]; - [bezier20Path addLineToPoint: CGPointMake(42.76, 31.1)]; - [bezier20Path addLineToPoint: CGPointMake(42.91, 31.08)]; - [bezier20Path addLineToPoint: CGPointMake(43.06, 31.05)]; - [bezier20Path addLineToPoint: CGPointMake(43.22, 31.02)]; - [bezier20Path addLineToPoint: CGPointMake(43.38, 30.97)]; - [bezier20Path addLineToPoint: CGPointMake(43.54, 30.9)]; - [bezier20Path addLineToPoint: CGPointMake(43.7, 30.84)]; - [bezier20Path addLineToPoint: CGPointMake(43.86, 30.75)]; - [bezier20Path addLineToPoint: CGPointMake(44.03, 30.65)]; - [bezier20Path addLineToPoint: CGPointMake(43.8, 32.05)]; - [bezier20Path addLineToPoint: CGPointMake(43.71, 32.09)]; - [bezier20Path addLineToPoint: CGPointMake(43.62, 32.14)]; - [bezier20Path addLineToPoint: CGPointMake(43.53, 32.17)]; - [bezier20Path addLineToPoint: CGPointMake(43.44, 32.21)]; - [bezier20Path addLineToPoint: CGPointMake(43.36, 32.24)]; - [bezier20Path addLineToPoint: CGPointMake(43.26, 32.27)]; - [bezier20Path addLineToPoint: CGPointMake(43.17, 32.29)]; - [bezier20Path addLineToPoint: CGPointMake(43.08, 32.31)]; - [bezier20Path addLineToPoint: CGPointMake(42.97, 32.32)]; - [bezier20Path addLineToPoint: CGPointMake(42.86, 32.33)]; - [bezier20Path addLineToPoint: CGPointMake(42.74, 32.35)]; - [bezier20Path addLineToPoint: CGPointMake(42.61, 32.36)]; - [bezier20Path addLineToPoint: CGPointMake(42.46, 32.36)]; - [bezier20Path addLineToPoint: CGPointMake(42.31, 32.36)]; - [bezier20Path addLineToPoint: CGPointMake(42.13, 32.37)]; - [bezier20Path addLineToPoint: CGPointMake(41.94, 32.37)]; - [bezier20Path addLineToPoint: CGPointMake(41.66, 32.36)]; - [bezier20Path addLineToPoint: CGPointMake(41.38, 32.33)]; - [bezier20Path addLineToPoint: CGPointMake(41.09, 32.29)]; - [bezier20Path addLineToPoint: CGPointMake(40.81, 32.23)]; - [bezier20Path addLineToPoint: CGPointMake(40.53, 32.14)]; - [bezier20Path addLineToPoint: CGPointMake(40.26, 32.03)]; - [bezier20Path addLineToPoint: CGPointMake(40.01, 31.89)]; - [bezier20Path addLineToPoint: CGPointMake(39.77, 31.72)]; - [bezier20Path addLineToPoint: CGPointMake(39.55, 31.53)]; - [bezier20Path addLineToPoint: CGPointMake(39.35, 31.3)]; - [bezier20Path addLineToPoint: CGPointMake(39.19, 31.04)]; - [bezier20Path addLineToPoint: CGPointMake(39.05, 30.73)]; - [bezier20Path addLineToPoint: CGPointMake(38.95, 30.4)]; - [bezier20Path addLineToPoint: CGPointMake(38.89, 30.02)]; - [bezier20Path addLineToPoint: CGPointMake(38.87, 29.6)]; - [bezier20Path addLineToPoint: CGPointMake(38.9, 29.13)]; - [bezier20Path addLineToPoint: CGPointMake(38.93, 28.95)]; - [bezier20Path addLineToPoint: CGPointMake(38.96, 28.74)]; - [bezier20Path addLineToPoint: CGPointMake(39.01, 28.51)]; - [bezier20Path addLineToPoint: CGPointMake(39.07, 28.27)]; - [bezier20Path addLineToPoint: CGPointMake(39.15, 28.03)]; - [bezier20Path addLineToPoint: CGPointMake(39.26, 27.78)]; - [bezier20Path addLineToPoint: CGPointMake(39.39, 27.53)]; - [bezier20Path addLineToPoint: CGPointMake(39.55, 27.3)]; - [bezier20Path addLineToPoint: CGPointMake(39.73, 27.07)]; - [bezier20Path addLineToPoint: CGPointMake(39.95, 26.85)]; - [bezier20Path addLineToPoint: CGPointMake(40.2, 26.66)]; - [bezier20Path addLineToPoint: CGPointMake(40.49, 26.49)]; - [bezier20Path addLineToPoint: CGPointMake(40.82, 26.34)]; - [bezier20Path addLineToPoint: CGPointMake(41.19, 26.24)]; - [bezier20Path addLineToPoint: CGPointMake(41.6, 26.17)]; - [bezier20Path addLineToPoint: CGPointMake(42.06, 26.15)]; - [bezier20Path addLineToPoint: CGPointMake(42.28, 26.16)]; - [bezier20Path addLineToPoint: CGPointMake(42.51, 26.18)]; - [bezier20Path addLineToPoint: CGPointMake(42.75, 26.22)]; - [bezier20Path addLineToPoint: CGPointMake(42.98, 26.28)]; - [bezier20Path addLineToPoint: CGPointMake(43.21, 26.36)]; - [bezier20Path addLineToPoint: CGPointMake(43.43, 26.46)]; - [bezier20Path addLineToPoint: CGPointMake(43.63, 26.6)]; - [bezier20Path addLineToPoint: CGPointMake(43.82, 26.76)]; - [bezier20Path addLineToPoint: CGPointMake(43.99, 26.95)]; - [bezier20Path addLineToPoint: CGPointMake(44.13, 27.18)]; - [bezier20Path addLineToPoint: CGPointMake(44.25, 27.44)]; - [bezier20Path addLineToPoint: CGPointMake(44.33, 27.74)]; - [bezier20Path addLineToPoint: CGPointMake(44.37, 28.09)]; - [bezier20Path addLineToPoint: CGPointMake(44.38, 28.47)]; - [bezier20Path addLineToPoint: CGPointMake(44.34, 28.91)]; - [bezier20Path addLineToPoint: CGPointMake(44.25, 29.38)]; - [bezier20Path addLineToPoint: CGPointMake(44.23, 29.73)]; - [bezier20Path addLineToPoint: CGPointMake(40.14, 29.7)]; - [bezier20Path addLineToPoint: CGPointMake(40.34, 28.61)]; - [bezier20Path addLineToPoint: CGPointMake(42.83, 28.61)]; - [bezier20Path addLineToPoint: CGPointMake(42.84, 28.47)]; - [bezier20Path addLineToPoint: CGPointMake(42.84, 28.33)]; - [bezier20Path addLineToPoint: CGPointMake(42.83, 28.21)]; - [bezier20Path addLineToPoint: CGPointMake(42.8, 28.09)]; - [bezier20Path addLineToPoint: CGPointMake(42.76, 27.98)]; - [bezier20Path addLineToPoint: CGPointMake(42.72, 27.89)]; - [bezier20Path addLineToPoint: CGPointMake(42.67, 27.8)]; - [bezier20Path addLineToPoint: CGPointMake(42.61, 27.72)]; - [bezier20Path addLineToPoint: CGPointMake(42.54, 27.65)]; - [bezier20Path addLineToPoint: CGPointMake(42.47, 27.6)]; - [bezier20Path addLineToPoint: CGPointMake(42.38, 27.55)]; - [bezier20Path addLineToPoint: CGPointMake(42.3, 27.5)]; - [bezier20Path addLineToPoint: CGPointMake(42.2, 27.47)]; - [bezier20Path addLineToPoint: CGPointMake(42.11, 27.44)]; - [bezier20Path addLineToPoint: CGPointMake(42.02, 27.43)]; - [bezier20Path addLineToPoint: CGPointMake(41.91, 27.41)]; - [bezier20Path addLineToPoint: CGPointMake(41.81, 27.42)]; - [bezier20Path addLineToPoint: CGPointMake(41.7, 27.44)]; - [bezier20Path addLineToPoint: CGPointMake(41.61, 27.46)]; - [bezier20Path addLineToPoint: CGPointMake(41.51, 27.49)]; - [bezier20Path addLineToPoint: CGPointMake(41.41, 27.54)]; - [bezier20Path addLineToPoint: CGPointMake(41.33, 27.59)]; - [bezier20Path addLineToPoint: CGPointMake(41.24, 27.65)]; - [bezier20Path addLineToPoint: CGPointMake(41.17, 27.72)]; - [bezier20Path addLineToPoint: CGPointMake(41.09, 27.8)]; - [bezier20Path addLineToPoint: CGPointMake(41.03, 27.89)]; - [bezier20Path addLineToPoint: CGPointMake(40.96, 27.98)]; - [bezier20Path addLineToPoint: CGPointMake(40.91, 28.08)]; - [bezier20Path addLineToPoint: CGPointMake(40.86, 28.18)]; - [bezier20Path addLineToPoint: CGPointMake(40.82, 28.29)]; - [bezier20Path addLineToPoint: CGPointMake(40.79, 28.41)]; - [bezier20Path addLineToPoint: CGPointMake(40.76, 28.52)]; - [bezier20Path addLineToPoint: CGPointMake(40.54, 29.7)]; - bezier20Path.miterLimit = 4; - - bezier20Path.usesEvenOddFillRule = YES; - - [color3 setStroke]; - bezier20Path.lineWidth = 0.5; - [bezier20Path stroke]; - - - //// Bezier 21 Drawing - UIBezierPath* bezier21Path = [UIBezierPath bezierPath]; - [bezier21Path moveToPoint: CGPointMake(39.5, 28.5)]; - [bezier21Path addLineToPoint: CGPointMake(39.5, 30.5)]; - [bezier21Path addLineToPoint: CGPointMake(40.5, 30.5)]; - [bezier21Path addLineToPoint: CGPointMake(40.62, 28.5)]; - [bezier21Path addLineToPoint: CGPointMake(39.5, 28.5)]; - [bezier21Path closePath]; - bezier21Path.miterLimit = 4; - - bezier21Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier21Path fill]; - - - //// Bezier 22 Drawing - UIBezierPath* bezier22Path = [UIBezierPath bezierPath]; - [bezier22Path moveToPoint: CGPointMake(54.12, 26.61)]; - [bezier22Path addLineToPoint: CGPointMake(54.04, 26.57)]; - [bezier22Path addLineToPoint: CGPointMake(53.97, 26.54)]; - [bezier22Path addLineToPoint: CGPointMake(53.89, 26.5)]; - [bezier22Path addLineToPoint: CGPointMake(53.8, 26.46)]; - [bezier22Path addLineToPoint: CGPointMake(53.72, 26.42)]; - [bezier22Path addLineToPoint: CGPointMake(53.52, 26.36)]; - [bezier22Path addLineToPoint: CGPointMake(53.42, 26.32)]; - [bezier22Path addLineToPoint: CGPointMake(53.31, 26.29)]; - [bezier22Path addLineToPoint: CGPointMake(53.2, 26.27)]; - [bezier22Path addLineToPoint: CGPointMake(53.09, 26.25)]; - [bezier22Path addLineToPoint: CGPointMake(52.97, 26.23)]; - [bezier22Path addLineToPoint: CGPointMake(52.83, 26.22)]; - [bezier22Path addLineToPoint: CGPointMake(52.7, 26.21)]; - [bezier22Path addLineToPoint: CGPointMake(52.28, 26.21)]; - [bezier22Path addLineToPoint: CGPointMake(52.13, 26.22)]; - [bezier22Path addLineToPoint: CGPointMake(51.98, 26.24)]; - [bezier22Path addLineToPoint: CGPointMake(51.82, 26.26)]; - [bezier22Path addLineToPoint: CGPointMake(51.66, 26.31)]; - [bezier22Path addLineToPoint: CGPointMake(51.5, 26.37)]; - [bezier22Path addLineToPoint: CGPointMake(51.34, 26.45)]; - [bezier22Path addLineToPoint: CGPointMake(51.18, 26.55)]; - [bezier22Path addLineToPoint: CGPointMake(51.03, 26.68)]; - [bezier22Path addLineToPoint: CGPointMake(50.88, 26.83)]; - [bezier22Path addLineToPoint: CGPointMake(50.74, 27.01)]; - [bezier22Path addLineToPoint: CGPointMake(50.6, 27.22)]; - [bezier22Path addLineToPoint: CGPointMake(50.48, 27.47)]; - [bezier22Path addLineToPoint: CGPointMake(50.36, 27.76)]; - [bezier22Path addLineToPoint: CGPointMake(50.25, 28.08)]; - [bezier22Path addLineToPoint: CGPointMake(50.16, 28.44)]; - [bezier22Path addLineToPoint: CGPointMake(50.12, 28.64)]; - [bezier22Path addLineToPoint: CGPointMake(50.1, 28.84)]; - [bezier22Path addLineToPoint: CGPointMake(50.09, 29.04)]; - [bezier22Path addLineToPoint: CGPointMake(50.1, 29.24)]; - [bezier22Path addLineToPoint: CGPointMake(50.11, 29.43)]; - [bezier22Path addLineToPoint: CGPointMake(50.15, 29.61)]; - [bezier22Path addLineToPoint: CGPointMake(50.2, 29.78)]; - [bezier22Path addLineToPoint: CGPointMake(50.27, 29.95)]; - [bezier22Path addLineToPoint: CGPointMake(50.35, 30.11)]; - [bezier22Path addLineToPoint: CGPointMake(50.45, 30.26)]; - [bezier22Path addLineToPoint: CGPointMake(50.57, 30.39)]; - [bezier22Path addLineToPoint: CGPointMake(50.71, 30.51)]; - [bezier22Path addLineToPoint: CGPointMake(50.86, 30.61)]; - [bezier22Path addLineToPoint: CGPointMake(51.04, 30.69)]; - [bezier22Path addLineToPoint: CGPointMake(51.24, 30.77)]; - [bezier22Path addLineToPoint: CGPointMake(51.45, 30.82)]; - [bezier22Path addLineToPoint: CGPointMake(51.53, 30.84)]; - [bezier22Path addLineToPoint: CGPointMake(51.61, 30.85)]; - [bezier22Path addLineToPoint: CGPointMake(51.71, 30.87)]; - [bezier22Path addLineToPoint: CGPointMake(51.83, 30.88)]; - [bezier22Path addLineToPoint: CGPointMake(51.95, 30.89)]; - [bezier22Path addLineToPoint: CGPointMake(52.23, 30.89)]; - [bezier22Path addLineToPoint: CGPointMake(52.37, 30.88)]; - [bezier22Path addLineToPoint: CGPointMake(52.52, 30.86)]; - [bezier22Path addLineToPoint: CGPointMake(52.66, 30.83)]; - [bezier22Path addLineToPoint: CGPointMake(52.81, 30.79)]; - [bezier22Path addLineToPoint: CGPointMake(52.95, 30.75)]; - [bezier22Path addLineToPoint: CGPointMake(53.09, 30.68)]; - [bezier22Path addLineToPoint: CGPointMake(53.22, 30.61)]; - [bezier22Path addLineToPoint: CGPointMake(53.34, 30.52)]; - [bezier22Path addLineToPoint: CGPointMake(53.46, 30.42)]; - [bezier22Path addLineToPoint: CGPointMake(53.2, 31.94)]; - [bezier22Path addLineToPoint: CGPointMake(53.17, 31.96)]; - [bezier22Path addLineToPoint: CGPointMake(53.13, 32)]; - [bezier22Path addLineToPoint: CGPointMake(53.09, 32.04)]; - [bezier22Path addLineToPoint: CGPointMake(53.03, 32.07)]; - [bezier22Path addLineToPoint: CGPointMake(52.97, 32.12)]; - [bezier22Path addLineToPoint: CGPointMake(52.89, 32.16)]; - [bezier22Path addLineToPoint: CGPointMake(52.8, 32.2)]; - [bezier22Path addLineToPoint: CGPointMake(52.7, 32.23)]; - [bezier22Path addLineToPoint: CGPointMake(52.57, 32.27)]; - [bezier22Path addLineToPoint: CGPointMake(52.42, 32.3)]; - [bezier22Path addLineToPoint: CGPointMake(52.25, 32.32)]; - [bezier22Path addLineToPoint: CGPointMake(52.05, 32.35)]; - [bezier22Path addLineToPoint: CGPointMake(51.83, 32.36)]; - [bezier22Path addLineToPoint: CGPointMake(51.57, 32.36)]; - [bezier22Path addLineToPoint: CGPointMake(51.28, 32.36)]; - [bezier22Path addLineToPoint: CGPointMake(50.96, 32.34)]; - [bezier22Path addLineToPoint: CGPointMake(50.7, 32.31)]; - [bezier22Path addLineToPoint: CGPointMake(50.44, 32.25)]; - [bezier22Path addLineToPoint: CGPointMake(50.18, 32.17)]; - [bezier22Path addLineToPoint: CGPointMake(49.91, 32.05)]; - [bezier22Path addLineToPoint: CGPointMake(49.66, 31.92)]; - [bezier22Path addLineToPoint: CGPointMake(49.42, 31.75)]; - [bezier22Path addLineToPoint: CGPointMake(49.2, 31.55)]; - [bezier22Path addLineToPoint: CGPointMake(48.99, 31.32)]; - [bezier22Path addLineToPoint: CGPointMake(48.8, 31.06)]; - [bezier22Path addLineToPoint: CGPointMake(48.64, 30.78)]; - [bezier22Path addLineToPoint: CGPointMake(48.5, 30.46)]; - [bezier22Path addLineToPoint: CGPointMake(48.4, 30.11)]; - [bezier22Path addLineToPoint: CGPointMake(48.33, 29.73)]; - [bezier22Path addLineToPoint: CGPointMake(48.31, 29.33)]; - [bezier22Path addLineToPoint: CGPointMake(48.32, 28.88)]; - [bezier22Path addLineToPoint: CGPointMake(48.38, 28.41)]; - [bezier22Path addLineToPoint: CGPointMake(48.43, 28.18)]; - [bezier22Path addLineToPoint: CGPointMake(48.48, 27.95)]; - [bezier22Path addLineToPoint: CGPointMake(48.54, 27.73)]; - [bezier22Path addLineToPoint: CGPointMake(48.59, 27.52)]; - [bezier22Path addLineToPoint: CGPointMake(48.66, 27.32)]; - [bezier22Path addLineToPoint: CGPointMake(48.73, 27.12)]; - [bezier22Path addLineToPoint: CGPointMake(48.8, 26.93)]; - [bezier22Path addLineToPoint: CGPointMake(48.88, 26.75)]; - [bezier22Path addLineToPoint: CGPointMake(48.97, 26.58)]; - [bezier22Path addLineToPoint: CGPointMake(49.05, 26.41)]; - [bezier22Path addLineToPoint: CGPointMake(49.15, 26.25)]; - [bezier22Path addLineToPoint: CGPointMake(49.25, 26.11)]; - [bezier22Path addLineToPoint: CGPointMake(49.36, 25.96)]; - [bezier22Path addLineToPoint: CGPointMake(49.47, 25.83)]; - [bezier22Path addLineToPoint: CGPointMake(49.58, 25.7)]; - [bezier22Path addLineToPoint: CGPointMake(49.7, 25.58)]; - [bezier22Path addLineToPoint: CGPointMake(49.83, 25.47)]; - [bezier22Path addLineToPoint: CGPointMake(49.97, 25.36)]; - [bezier22Path addLineToPoint: CGPointMake(50.1, 25.26)]; - [bezier22Path addLineToPoint: CGPointMake(50.24, 25.17)]; - [bezier22Path addLineToPoint: CGPointMake(50.4, 25.09)]; - [bezier22Path addLineToPoint: CGPointMake(50.55, 25.01)]; - [bezier22Path addLineToPoint: CGPointMake(50.71, 24.94)]; - [bezier22Path addLineToPoint: CGPointMake(50.88, 24.88)]; - [bezier22Path addLineToPoint: CGPointMake(51.05, 24.82)]; - [bezier22Path addLineToPoint: CGPointMake(51.23, 24.78)]; - [bezier22Path addLineToPoint: CGPointMake(51.41, 24.74)]; - [bezier22Path addLineToPoint: CGPointMake(51.61, 24.7)]; - [bezier22Path addLineToPoint: CGPointMake(51.8, 24.68)]; - [bezier22Path addLineToPoint: CGPointMake(52, 24.65)]; - [bezier22Path addLineToPoint: CGPointMake(52.21, 24.64)]; - [bezier22Path addLineToPoint: CGPointMake(52.43, 24.64)]; - [bezier22Path addLineToPoint: CGPointMake(52.61, 24.64)]; - [bezier22Path addLineToPoint: CGPointMake(52.78, 24.65)]; - [bezier22Path addLineToPoint: CGPointMake(52.95, 24.67)]; - [bezier22Path addLineToPoint: CGPointMake(53.13, 24.69)]; - [bezier22Path addLineToPoint: CGPointMake(53.28, 24.72)]; - [bezier22Path addLineToPoint: CGPointMake(53.44, 24.75)]; - [bezier22Path addLineToPoint: CGPointMake(53.59, 24.78)]; - [bezier22Path addLineToPoint: CGPointMake(53.72, 24.81)]; - [bezier22Path addLineToPoint: CGPointMake(53.85, 24.85)]; - [bezier22Path addLineToPoint: CGPointMake(53.97, 24.88)]; - [bezier22Path addLineToPoint: CGPointMake(54.08, 24.92)]; - [bezier22Path addLineToPoint: CGPointMake(54.17, 24.95)]; - [bezier22Path addLineToPoint: CGPointMake(54.25, 24.98)]; - [bezier22Path addLineToPoint: CGPointMake(54.31, 25)]; - [bezier22Path addLineToPoint: CGPointMake(54.37, 25.02)]; - [bezier22Path addLineToPoint: CGPointMake(54.4, 25.03)]; - [bezier22Path addLineToPoint: CGPointMake(54.12, 26.61)]; - [bezier22Path closePath]; - bezier22Path.miterLimit = 4; - - bezier22Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier22Path fill]; - - - //// Bezier 23 Drawing - UIBezierPath* bezier23Path = [UIBezierPath bezierPath]; - [bezier23Path moveToPoint: CGPointMake(54.12, 26.61)]; - [bezier23Path addLineToPoint: CGPointMake(54.12, 26.61)]; - [bezier23Path addLineToPoint: CGPointMake(54.04, 26.57)]; - [bezier23Path addLineToPoint: CGPointMake(53.97, 26.54)]; - [bezier23Path addLineToPoint: CGPointMake(53.89, 26.5)]; - [bezier23Path addLineToPoint: CGPointMake(53.8, 26.46)]; - [bezier23Path addLineToPoint: CGPointMake(53.72, 26.42)]; - [bezier23Path addLineToPoint: CGPointMake(53.52, 26.36)]; - [bezier23Path addLineToPoint: CGPointMake(53.42, 26.32)]; - [bezier23Path addLineToPoint: CGPointMake(53.31, 26.29)]; - [bezier23Path addLineToPoint: CGPointMake(53.2, 26.27)]; - [bezier23Path addLineToPoint: CGPointMake(53.09, 26.25)]; - [bezier23Path addLineToPoint: CGPointMake(52.97, 26.23)]; - [bezier23Path addLineToPoint: CGPointMake(52.83, 26.22)]; - [bezier23Path addLineToPoint: CGPointMake(52.7, 26.21)]; - [bezier23Path addLineToPoint: CGPointMake(52.28, 26.21)]; - [bezier23Path addLineToPoint: CGPointMake(52.13, 26.22)]; - [bezier23Path addLineToPoint: CGPointMake(51.98, 26.24)]; - [bezier23Path addLineToPoint: CGPointMake(51.82, 26.26)]; - [bezier23Path addLineToPoint: CGPointMake(51.66, 26.31)]; - [bezier23Path addLineToPoint: CGPointMake(51.5, 26.37)]; - [bezier23Path addLineToPoint: CGPointMake(51.34, 26.45)]; - [bezier23Path addLineToPoint: CGPointMake(51.18, 26.55)]; - [bezier23Path addLineToPoint: CGPointMake(51.03, 26.68)]; - [bezier23Path addLineToPoint: CGPointMake(50.88, 26.83)]; - [bezier23Path addLineToPoint: CGPointMake(50.74, 27.01)]; - [bezier23Path addLineToPoint: CGPointMake(50.6, 27.22)]; - [bezier23Path addLineToPoint: CGPointMake(50.48, 27.47)]; - [bezier23Path addLineToPoint: CGPointMake(50.36, 27.76)]; - [bezier23Path addLineToPoint: CGPointMake(50.25, 28.08)]; - [bezier23Path addLineToPoint: CGPointMake(50.16, 28.44)]; - [bezier23Path addLineToPoint: CGPointMake(50.12, 28.64)]; - [bezier23Path addLineToPoint: CGPointMake(50.1, 28.84)]; - [bezier23Path addLineToPoint: CGPointMake(50.09, 29.04)]; - [bezier23Path addLineToPoint: CGPointMake(50.1, 29.24)]; - [bezier23Path addLineToPoint: CGPointMake(50.11, 29.43)]; - [bezier23Path addLineToPoint: CGPointMake(50.15, 29.61)]; - [bezier23Path addLineToPoint: CGPointMake(50.2, 29.78)]; - [bezier23Path addLineToPoint: CGPointMake(50.27, 29.95)]; - [bezier23Path addLineToPoint: CGPointMake(50.35, 30.11)]; - [bezier23Path addLineToPoint: CGPointMake(50.45, 30.26)]; - [bezier23Path addLineToPoint: CGPointMake(50.57, 30.39)]; - [bezier23Path addLineToPoint: CGPointMake(50.71, 30.51)]; - [bezier23Path addLineToPoint: CGPointMake(50.86, 30.61)]; - [bezier23Path addLineToPoint: CGPointMake(51.04, 30.69)]; - [bezier23Path addLineToPoint: CGPointMake(51.24, 30.77)]; - [bezier23Path addLineToPoint: CGPointMake(51.45, 30.82)]; - [bezier23Path addLineToPoint: CGPointMake(51.53, 30.84)]; - [bezier23Path addLineToPoint: CGPointMake(51.61, 30.85)]; - [bezier23Path addLineToPoint: CGPointMake(51.71, 30.87)]; - [bezier23Path addLineToPoint: CGPointMake(51.83, 30.88)]; - [bezier23Path addLineToPoint: CGPointMake(51.95, 30.89)]; - [bezier23Path addLineToPoint: CGPointMake(52.23, 30.89)]; - [bezier23Path addLineToPoint: CGPointMake(52.37, 30.88)]; - [bezier23Path addLineToPoint: CGPointMake(52.52, 30.86)]; - [bezier23Path addLineToPoint: CGPointMake(52.66, 30.83)]; - [bezier23Path addLineToPoint: CGPointMake(52.81, 30.79)]; - [bezier23Path addLineToPoint: CGPointMake(52.95, 30.75)]; - [bezier23Path addLineToPoint: CGPointMake(53.09, 30.68)]; - [bezier23Path addLineToPoint: CGPointMake(53.22, 30.61)]; - [bezier23Path addLineToPoint: CGPointMake(53.34, 30.52)]; - [bezier23Path addLineToPoint: CGPointMake(53.46, 30.42)]; - [bezier23Path addLineToPoint: CGPointMake(53.2, 31.94)]; - [bezier23Path addLineToPoint: CGPointMake(53.17, 31.96)]; - [bezier23Path addLineToPoint: CGPointMake(53.13, 32)]; - [bezier23Path addLineToPoint: CGPointMake(53.09, 32.04)]; - [bezier23Path addLineToPoint: CGPointMake(53.03, 32.07)]; - [bezier23Path addLineToPoint: CGPointMake(52.97, 32.12)]; - [bezier23Path addLineToPoint: CGPointMake(52.89, 32.16)]; - [bezier23Path addLineToPoint: CGPointMake(52.8, 32.2)]; - [bezier23Path addLineToPoint: CGPointMake(52.7, 32.23)]; - [bezier23Path addLineToPoint: CGPointMake(52.57, 32.27)]; - [bezier23Path addLineToPoint: CGPointMake(52.42, 32.3)]; - [bezier23Path addLineToPoint: CGPointMake(52.25, 32.32)]; - [bezier23Path addLineToPoint: CGPointMake(52.05, 32.35)]; - [bezier23Path addLineToPoint: CGPointMake(51.83, 32.36)]; - [bezier23Path addLineToPoint: CGPointMake(51.57, 32.36)]; - [bezier23Path addLineToPoint: CGPointMake(51.28, 32.36)]; - [bezier23Path addLineToPoint: CGPointMake(50.96, 32.34)]; - [bezier23Path addLineToPoint: CGPointMake(50.7, 32.31)]; - [bezier23Path addLineToPoint: CGPointMake(50.44, 32.25)]; - [bezier23Path addLineToPoint: CGPointMake(50.18, 32.17)]; - [bezier23Path addLineToPoint: CGPointMake(49.91, 32.05)]; - [bezier23Path addLineToPoint: CGPointMake(49.66, 31.92)]; - [bezier23Path addLineToPoint: CGPointMake(49.42, 31.75)]; - [bezier23Path addLineToPoint: CGPointMake(49.2, 31.55)]; - [bezier23Path addLineToPoint: CGPointMake(48.99, 31.32)]; - [bezier23Path addLineToPoint: CGPointMake(48.8, 31.06)]; - [bezier23Path addLineToPoint: CGPointMake(48.64, 30.78)]; - [bezier23Path addLineToPoint: CGPointMake(48.5, 30.46)]; - [bezier23Path addLineToPoint: CGPointMake(48.4, 30.11)]; - [bezier23Path addLineToPoint: CGPointMake(48.33, 29.73)]; - [bezier23Path addLineToPoint: CGPointMake(48.31, 29.33)]; - [bezier23Path addLineToPoint: CGPointMake(48.32, 28.88)]; - [bezier23Path addLineToPoint: CGPointMake(48.38, 28.41)]; - [bezier23Path addLineToPoint: CGPointMake(48.43, 28.18)]; - [bezier23Path addLineToPoint: CGPointMake(48.48, 27.95)]; - [bezier23Path addLineToPoint: CGPointMake(48.54, 27.73)]; - [bezier23Path addLineToPoint: CGPointMake(48.59, 27.52)]; - [bezier23Path addLineToPoint: CGPointMake(48.66, 27.32)]; - [bezier23Path addLineToPoint: CGPointMake(48.73, 27.12)]; - [bezier23Path addLineToPoint: CGPointMake(48.8, 26.93)]; - [bezier23Path addLineToPoint: CGPointMake(48.88, 26.75)]; - [bezier23Path addLineToPoint: CGPointMake(48.97, 26.58)]; - [bezier23Path addLineToPoint: CGPointMake(49.05, 26.41)]; - [bezier23Path addLineToPoint: CGPointMake(49.15, 26.25)]; - [bezier23Path addLineToPoint: CGPointMake(49.25, 26.11)]; - [bezier23Path addLineToPoint: CGPointMake(49.36, 25.96)]; - [bezier23Path addLineToPoint: CGPointMake(49.47, 25.83)]; - [bezier23Path addLineToPoint: CGPointMake(49.58, 25.7)]; - [bezier23Path addLineToPoint: CGPointMake(49.7, 25.58)]; - [bezier23Path addLineToPoint: CGPointMake(49.83, 25.47)]; - [bezier23Path addLineToPoint: CGPointMake(49.97, 25.36)]; - [bezier23Path addLineToPoint: CGPointMake(50.1, 25.26)]; - [bezier23Path addLineToPoint: CGPointMake(50.24, 25.17)]; - [bezier23Path addLineToPoint: CGPointMake(50.4, 25.09)]; - [bezier23Path addLineToPoint: CGPointMake(50.55, 25.01)]; - [bezier23Path addLineToPoint: CGPointMake(50.71, 24.94)]; - [bezier23Path addLineToPoint: CGPointMake(50.88, 24.88)]; - [bezier23Path addLineToPoint: CGPointMake(51.05, 24.82)]; - [bezier23Path addLineToPoint: CGPointMake(51.23, 24.78)]; - [bezier23Path addLineToPoint: CGPointMake(51.41, 24.74)]; - [bezier23Path addLineToPoint: CGPointMake(51.61, 24.7)]; - [bezier23Path addLineToPoint: CGPointMake(51.8, 24.68)]; - [bezier23Path addLineToPoint: CGPointMake(52, 24.65)]; - [bezier23Path addLineToPoint: CGPointMake(52.21, 24.64)]; - [bezier23Path addLineToPoint: CGPointMake(52.43, 24.64)]; - [bezier23Path addLineToPoint: CGPointMake(52.61, 24.64)]; - [bezier23Path addLineToPoint: CGPointMake(52.78, 24.65)]; - [bezier23Path addLineToPoint: CGPointMake(52.95, 24.67)]; - [bezier23Path addLineToPoint: CGPointMake(53.13, 24.69)]; - [bezier23Path addLineToPoint: CGPointMake(53.28, 24.72)]; - [bezier23Path addLineToPoint: CGPointMake(53.44, 24.75)]; - [bezier23Path addLineToPoint: CGPointMake(53.59, 24.78)]; - [bezier23Path addLineToPoint: CGPointMake(53.72, 24.81)]; - [bezier23Path addLineToPoint: CGPointMake(53.85, 24.85)]; - [bezier23Path addLineToPoint: CGPointMake(53.97, 24.88)]; - [bezier23Path addLineToPoint: CGPointMake(54.08, 24.92)]; - [bezier23Path addLineToPoint: CGPointMake(54.17, 24.95)]; - [bezier23Path addLineToPoint: CGPointMake(54.25, 24.98)]; - [bezier23Path addLineToPoint: CGPointMake(54.31, 25)]; - [bezier23Path addLineToPoint: CGPointMake(54.37, 25.02)]; - [bezier23Path addLineToPoint: CGPointMake(54.4, 25.03)]; - [bezier23Path addLineToPoint: CGPointMake(54.12, 26.61)]; - [bezier23Path closePath]; - bezier23Path.miterLimit = 4; - - bezier23Path.usesEvenOddFillRule = YES; - - [color3 setStroke]; - bezier23Path.lineWidth = 0.5; - [bezier23Path stroke]; - - - //// Bezier 24 Drawing - UIBezierPath* bezier24Path = [UIBezierPath bezierPath]; - [bezier24Path moveToPoint: CGPointMake(68.13, 32.37)]; - [bezier24Path addLineToPoint: CGPointMake(66.56, 32.37)]; - [bezier24Path addLineToPoint: CGPointMake(66.67, 31.74)]; - [bezier24Path addLineToPoint: CGPointMake(66.67, 31.68)]; - [bezier24Path addLineToPoint: CGPointMake(66.58, 31.79)]; - [bezier24Path addLineToPoint: CGPointMake(66.48, 31.9)]; - [bezier24Path addLineToPoint: CGPointMake(66.39, 31.99)]; - [bezier24Path addLineToPoint: CGPointMake(66.28, 32.07)]; - [bezier24Path addLineToPoint: CGPointMake(66.18, 32.14)]; - [bezier24Path addLineToPoint: CGPointMake(66.08, 32.2)]; - [bezier24Path addLineToPoint: CGPointMake(65.98, 32.25)]; - [bezier24Path addLineToPoint: CGPointMake(65.87, 32.31)]; - [bezier24Path addLineToPoint: CGPointMake(65.76, 32.35)]; - [bezier24Path addLineToPoint: CGPointMake(65.65, 32.37)]; - [bezier24Path addLineToPoint: CGPointMake(65.54, 32.4)]; - [bezier24Path addLineToPoint: CGPointMake(65.43, 32.42)]; - [bezier24Path addLineToPoint: CGPointMake(65.32, 32.44)]; - [bezier24Path addLineToPoint: CGPointMake(65.21, 32.45)]; - [bezier24Path addLineToPoint: CGPointMake(65.09, 32.45)]; - [bezier24Path addLineToPoint: CGPointMake(64.98, 32.45)]; - [bezier24Path addLineToPoint: CGPointMake(64.68, 32.43)]; - [bezier24Path addLineToPoint: CGPointMake(64.41, 32.37)]; - [bezier24Path addLineToPoint: CGPointMake(64.16, 32.27)]; - [bezier24Path addLineToPoint: CGPointMake(63.93, 32.14)]; - [bezier24Path addLineToPoint: CGPointMake(63.73, 31.98)]; - [bezier24Path addLineToPoint: CGPointMake(63.54, 31.78)]; - [bezier24Path addLineToPoint: CGPointMake(63.38, 31.57)]; - [bezier24Path addLineToPoint: CGPointMake(63.25, 31.33)]; - [bezier24Path addLineToPoint: CGPointMake(63.13, 31.08)]; - [bezier24Path addLineToPoint: CGPointMake(63.04, 30.81)]; - [bezier24Path addLineToPoint: CGPointMake(62.98, 30.53)]; - [bezier24Path addLineToPoint: CGPointMake(62.94, 30.24)]; - [bezier24Path addLineToPoint: CGPointMake(62.92, 29.95)]; - [bezier24Path addLineToPoint: CGPointMake(62.92, 29.65)]; - [bezier24Path addLineToPoint: CGPointMake(62.95, 29.36)]; - [bezier24Path addLineToPoint: CGPointMake(63, 29.07)]; - [bezier24Path addLineToPoint: CGPointMake(63.09, 28.74)]; - [bezier24Path addLineToPoint: CGPointMake(63.19, 28.42)]; - [bezier24Path addLineToPoint: CGPointMake(63.31, 28.13)]; - [bezier24Path addLineToPoint: CGPointMake(63.45, 27.85)]; - [bezier24Path addLineToPoint: CGPointMake(63.6, 27.6)]; - [bezier24Path addLineToPoint: CGPointMake(63.77, 27.37)]; - [bezier24Path addLineToPoint: CGPointMake(63.95, 27.16)]; - [bezier24Path addLineToPoint: CGPointMake(64.14, 26.98)]; - [bezier24Path addLineToPoint: CGPointMake(64.34, 26.81)]; - [bezier24Path addLineToPoint: CGPointMake(64.55, 26.67)]; - [bezier24Path addLineToPoint: CGPointMake(64.76, 26.54)]; - [bezier24Path addLineToPoint: CGPointMake(64.98, 26.45)]; - [bezier24Path addLineToPoint: CGPointMake(65.21, 26.37)]; - [bezier24Path addLineToPoint: CGPointMake(65.43, 26.32)]; - [bezier24Path addLineToPoint: CGPointMake(65.66, 26.28)]; - [bezier24Path addLineToPoint: CGPointMake(65.9, 26.27)]; - [bezier24Path addLineToPoint: CGPointMake(66.06, 26.28)]; - [bezier24Path addLineToPoint: CGPointMake(66.22, 26.29)]; - [bezier24Path addLineToPoint: CGPointMake(66.37, 26.32)]; - [bezier24Path addLineToPoint: CGPointMake(66.51, 26.36)]; - [bezier24Path addLineToPoint: CGPointMake(66.64, 26.41)]; - [bezier24Path addLineToPoint: CGPointMake(66.75, 26.46)]; - [bezier24Path addLineToPoint: CGPointMake(66.86, 26.52)]; - [bezier24Path addLineToPoint: CGPointMake(66.97, 26.58)]; - [bezier24Path addLineToPoint: CGPointMake(67.06, 26.65)]; - [bezier24Path addLineToPoint: CGPointMake(67.14, 26.73)]; - [bezier24Path addLineToPoint: CGPointMake(67.22, 26.8)]; - [bezier24Path addLineToPoint: CGPointMake(67.29, 26.87)]; - [bezier24Path addLineToPoint: CGPointMake(67.34, 26.95)]; - [bezier24Path addLineToPoint: CGPointMake(67.39, 27.02)]; - [bezier24Path addLineToPoint: CGPointMake(67.44, 27.09)]; - [bezier24Path addLineToPoint: CGPointMake(67.47, 27.16)]; - [bezier24Path addLineToPoint: CGPointMake(67.87, 24.92)]; - [bezier24Path addLineToPoint: CGPointMake(69.42, 24.92)]; - [bezier24Path addLineToPoint: CGPointMake(68.13, 32.37)]; - [bezier24Path closePath]; - bezier24Path.miterLimit = 4; - - bezier24Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier24Path fill]; - - - //// Bezier 25 Drawing - UIBezierPath* bezier25Path = [UIBezierPath bezierPath]; - [bezier25Path moveToPoint: CGPointMake(68.13, 32.37)]; - [bezier25Path addLineToPoint: CGPointMake(66.56, 32.37)]; - [bezier25Path addLineToPoint: CGPointMake(66.67, 31.74)]; - [bezier25Path addLineToPoint: CGPointMake(66.67, 31.68)]; - [bezier25Path addLineToPoint: CGPointMake(66.58, 31.79)]; - [bezier25Path addLineToPoint: CGPointMake(66.48, 31.9)]; - [bezier25Path addLineToPoint: CGPointMake(66.39, 31.99)]; - [bezier25Path addLineToPoint: CGPointMake(66.28, 32.07)]; - [bezier25Path addLineToPoint: CGPointMake(66.18, 32.14)]; - [bezier25Path addLineToPoint: CGPointMake(66.08, 32.2)]; - [bezier25Path addLineToPoint: CGPointMake(65.98, 32.25)]; - [bezier25Path addLineToPoint: CGPointMake(65.87, 32.31)]; - [bezier25Path addLineToPoint: CGPointMake(65.76, 32.35)]; - [bezier25Path addLineToPoint: CGPointMake(65.65, 32.37)]; - [bezier25Path addLineToPoint: CGPointMake(65.54, 32.4)]; - [bezier25Path addLineToPoint: CGPointMake(65.43, 32.42)]; - [bezier25Path addLineToPoint: CGPointMake(65.32, 32.44)]; - [bezier25Path addLineToPoint: CGPointMake(65.21, 32.45)]; - [bezier25Path addLineToPoint: CGPointMake(65.09, 32.45)]; - [bezier25Path addLineToPoint: CGPointMake(64.98, 32.45)]; - [bezier25Path addLineToPoint: CGPointMake(64.68, 32.43)]; - [bezier25Path addLineToPoint: CGPointMake(64.41, 32.37)]; - [bezier25Path addLineToPoint: CGPointMake(64.16, 32.27)]; - [bezier25Path addLineToPoint: CGPointMake(63.93, 32.14)]; - [bezier25Path addLineToPoint: CGPointMake(63.73, 31.98)]; - [bezier25Path addLineToPoint: CGPointMake(63.54, 31.78)]; - [bezier25Path addLineToPoint: CGPointMake(63.38, 31.57)]; - [bezier25Path addLineToPoint: CGPointMake(63.25, 31.33)]; - [bezier25Path addLineToPoint: CGPointMake(63.13, 31.08)]; - [bezier25Path addLineToPoint: CGPointMake(63.04, 30.81)]; - [bezier25Path addLineToPoint: CGPointMake(62.98, 30.53)]; - [bezier25Path addLineToPoint: CGPointMake(62.94, 30.24)]; - [bezier25Path addLineToPoint: CGPointMake(62.92, 29.95)]; - [bezier25Path addLineToPoint: CGPointMake(62.92, 29.65)]; - [bezier25Path addLineToPoint: CGPointMake(62.95, 29.36)]; - [bezier25Path addLineToPoint: CGPointMake(63, 29.07)]; - [bezier25Path addLineToPoint: CGPointMake(63.09, 28.74)]; - [bezier25Path addLineToPoint: CGPointMake(63.19, 28.42)]; - [bezier25Path addLineToPoint: CGPointMake(63.31, 28.13)]; - [bezier25Path addLineToPoint: CGPointMake(63.45, 27.85)]; - [bezier25Path addLineToPoint: CGPointMake(63.6, 27.6)]; - [bezier25Path addLineToPoint: CGPointMake(63.77, 27.37)]; - [bezier25Path addLineToPoint: CGPointMake(63.95, 27.16)]; - [bezier25Path addLineToPoint: CGPointMake(64.14, 26.98)]; - [bezier25Path addLineToPoint: CGPointMake(64.34, 26.81)]; - [bezier25Path addLineToPoint: CGPointMake(64.55, 26.67)]; - [bezier25Path addLineToPoint: CGPointMake(64.76, 26.54)]; - [bezier25Path addLineToPoint: CGPointMake(64.98, 26.45)]; - [bezier25Path addLineToPoint: CGPointMake(65.21, 26.37)]; - [bezier25Path addLineToPoint: CGPointMake(65.43, 26.32)]; - [bezier25Path addLineToPoint: CGPointMake(65.66, 26.28)]; - [bezier25Path addLineToPoint: CGPointMake(65.9, 26.27)]; - [bezier25Path addLineToPoint: CGPointMake(66.06, 26.28)]; - [bezier25Path addLineToPoint: CGPointMake(66.22, 26.29)]; - [bezier25Path addLineToPoint: CGPointMake(66.37, 26.32)]; - [bezier25Path addLineToPoint: CGPointMake(66.51, 26.36)]; - [bezier25Path addLineToPoint: CGPointMake(66.64, 26.41)]; - [bezier25Path addLineToPoint: CGPointMake(66.75, 26.46)]; - [bezier25Path addLineToPoint: CGPointMake(66.86, 26.52)]; - [bezier25Path addLineToPoint: CGPointMake(66.97, 26.58)]; - [bezier25Path addLineToPoint: CGPointMake(67.06, 26.65)]; - [bezier25Path addLineToPoint: CGPointMake(67.14, 26.73)]; - [bezier25Path addLineToPoint: CGPointMake(67.22, 26.8)]; - [bezier25Path addLineToPoint: CGPointMake(67.29, 26.87)]; - [bezier25Path addLineToPoint: CGPointMake(67.34, 26.95)]; - [bezier25Path addLineToPoint: CGPointMake(67.39, 27.02)]; - [bezier25Path addLineToPoint: CGPointMake(67.44, 27.09)]; - [bezier25Path addLineToPoint: CGPointMake(67.47, 27.16)]; - [bezier25Path addLineToPoint: CGPointMake(67.87, 24.92)]; - [bezier25Path addLineToPoint: CGPointMake(69.42, 24.92)]; - [bezier25Path addLineToPoint: CGPointMake(68.13, 32.37)]; - [bezier25Path closePath]; - bezier25Path.miterLimit = 4; - - bezier25Path.usesEvenOddFillRule = YES; - - [color3 setStroke]; - bezier25Path.lineWidth = 0.5; - [bezier25Path stroke]; - - - //// Bezier 26 Drawing - UIBezierPath* bezier26Path = [UIBezierPath bezierPath]; - [bezier26Path moveToPoint: CGPointMake(65.55, 30.99)]; - [bezier26Path addLineToPoint: CGPointMake(65.71, 30.98)]; - [bezier26Path addLineToPoint: CGPointMake(65.86, 30.94)]; - [bezier26Path addLineToPoint: CGPointMake(66, 30.9)]; - [bezier26Path addLineToPoint: CGPointMake(66.13, 30.84)]; - [bezier26Path addLineToPoint: CGPointMake(66.25, 30.77)]; - [bezier26Path addLineToPoint: CGPointMake(66.36, 30.69)]; - [bezier26Path addLineToPoint: CGPointMake(66.47, 30.59)]; - [bezier26Path addLineToPoint: CGPointMake(66.57, 30.49)]; - [bezier26Path addLineToPoint: CGPointMake(66.65, 30.38)]; - [bezier26Path addLineToPoint: CGPointMake(66.73, 30.25)]; - [bezier26Path addLineToPoint: CGPointMake(66.81, 30.12)]; - [bezier26Path addLineToPoint: CGPointMake(66.87, 29.98)]; - [bezier26Path addLineToPoint: CGPointMake(66.93, 29.84)]; - [bezier26Path addLineToPoint: CGPointMake(66.97, 29.69)]; - [bezier26Path addLineToPoint: CGPointMake(67.01, 29.54)]; - [bezier26Path addLineToPoint: CGPointMake(67.04, 29.38)]; - [bezier26Path addLineToPoint: CGPointMake(67.07, 29.23)]; - [bezier26Path addLineToPoint: CGPointMake(67.09, 29.06)]; - [bezier26Path addLineToPoint: CGPointMake(67.09, 28.91)]; - [bezier26Path addLineToPoint: CGPointMake(67.08, 28.75)]; - [bezier26Path addLineToPoint: CGPointMake(67.06, 28.6)]; - [bezier26Path addLineToPoint: CGPointMake(67.04, 28.46)]; - [bezier26Path addLineToPoint: CGPointMake(67, 28.32)]; - [bezier26Path addLineToPoint: CGPointMake(66.95, 28.19)]; - [bezier26Path addLineToPoint: CGPointMake(66.9, 28.08)]; - [bezier26Path addLineToPoint: CGPointMake(66.83, 27.97)]; - [bezier26Path addLineToPoint: CGPointMake(66.76, 27.88)]; - [bezier26Path addLineToPoint: CGPointMake(66.67, 27.8)]; - [bezier26Path addLineToPoint: CGPointMake(66.57, 27.73)]; - [bezier26Path addLineToPoint: CGPointMake(66.47, 27.68)]; - [bezier26Path addLineToPoint: CGPointMake(66.36, 27.65)]; - [bezier26Path addLineToPoint: CGPointMake(66.24, 27.64)]; - [bezier26Path addLineToPoint: CGPointMake(66.09, 27.65)]; - [bezier26Path addLineToPoint: CGPointMake(65.95, 27.68)]; - [bezier26Path addLineToPoint: CGPointMake(65.82, 27.72)]; - [bezier26Path addLineToPoint: CGPointMake(65.69, 27.78)]; - [bezier26Path addLineToPoint: CGPointMake(65.57, 27.85)]; - [bezier26Path addLineToPoint: CGPointMake(65.46, 27.94)]; - [bezier26Path addLineToPoint: CGPointMake(65.36, 28.04)]; - [bezier26Path addLineToPoint: CGPointMake(65.26, 28.15)]; - [bezier26Path addLineToPoint: CGPointMake(65.18, 28.27)]; - [bezier26Path addLineToPoint: CGPointMake(65.1, 28.41)]; - [bezier26Path addLineToPoint: CGPointMake(65.02, 28.54)]; - [bezier26Path addLineToPoint: CGPointMake(64.96, 28.69)]; - [bezier26Path addLineToPoint: CGPointMake(64.91, 28.84)]; - [bezier26Path addLineToPoint: CGPointMake(64.86, 29)]; - [bezier26Path addLineToPoint: CGPointMake(64.81, 29.16)]; - [bezier26Path addLineToPoint: CGPointMake(64.78, 29.33)]; - [bezier26Path addLineToPoint: CGPointMake(64.75, 29.58)]; - [bezier26Path addLineToPoint: CGPointMake(64.76, 29.85)]; - [bezier26Path addLineToPoint: CGPointMake(64.8, 30.13)]; - [bezier26Path addLineToPoint: CGPointMake(64.88, 30.4)]; - [bezier26Path addLineToPoint: CGPointMake(64.99, 30.63)]; - [bezier26Path addLineToPoint: CGPointMake(65.14, 30.82)]; - [bezier26Path addLineToPoint: CGPointMake(65.33, 30.94)]; - [bezier26Path addLineToPoint: CGPointMake(65.55, 30.99)]; - [bezier26Path closePath]; - bezier26Path.miterLimit = 4; - - bezier26Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier26Path fill]; - - - //// Bezier 27 Drawing - UIBezierPath* bezier27Path = [UIBezierPath bezierPath]; - [bezier27Path moveToPoint: CGPointMake(30.59, 31.1)]; - [bezier27Path addLineToPoint: CGPointMake(30.36, 32.37)]; - [bezier27Path addLineToPoint: CGPointMake(28.93, 32.37)]; - [bezier27Path addLineToPoint: CGPointMake(28.97, 32.13)]; - [bezier27Path addLineToPoint: CGPointMake(29, 31.92)]; - [bezier27Path addLineToPoint: CGPointMake(29.02, 31.76)]; - [bezier27Path addLineToPoint: CGPointMake(29.04, 31.68)]; - [bezier27Path addLineToPoint: CGPointMake(28.96, 31.77)]; - [bezier27Path addLineToPoint: CGPointMake(28.87, 31.86)]; - [bezier27Path addLineToPoint: CGPointMake(28.76, 31.95)]; - [bezier27Path addLineToPoint: CGPointMake(28.64, 32.03)]; - [bezier27Path addLineToPoint: CGPointMake(28.51, 32.11)]; - [bezier27Path addLineToPoint: CGPointMake(28.36, 32.17)]; - [bezier27Path addLineToPoint: CGPointMake(28.22, 32.24)]; - [bezier27Path addLineToPoint: CGPointMake(28.06, 32.3)]; - [bezier27Path addLineToPoint: CGPointMake(27.9, 32.35)]; - [bezier27Path addLineToPoint: CGPointMake(27.73, 32.39)]; - [bezier27Path addLineToPoint: CGPointMake(27.57, 32.43)]; - [bezier27Path addLineToPoint: CGPointMake(27.4, 32.45)]; - [bezier27Path addLineToPoint: CGPointMake(27.23, 32.46)]; - [bezier27Path addLineToPoint: CGPointMake(27.07, 32.46)]; - [bezier27Path addLineToPoint: CGPointMake(26.91, 32.45)]; - [bezier27Path addLineToPoint: CGPointMake(26.75, 32.43)]; - [bezier27Path addLineToPoint: CGPointMake(26.55, 32.37)]; - [bezier27Path addLineToPoint: CGPointMake(26.37, 32.32)]; - [bezier27Path addLineToPoint: CGPointMake(26.21, 32.24)]; - [bezier27Path addLineToPoint: CGPointMake(26.07, 32.16)]; - [bezier27Path addLineToPoint: CGPointMake(25.94, 32.07)]; - [bezier27Path addLineToPoint: CGPointMake(25.83, 31.96)]; - [bezier27Path addLineToPoint: CGPointMake(25.74, 31.86)]; - [bezier27Path addLineToPoint: CGPointMake(25.66, 31.74)]; - [bezier27Path addLineToPoint: CGPointMake(25.59, 31.62)]; - [bezier27Path addLineToPoint: CGPointMake(25.53, 31.5)]; - [bezier27Path addLineToPoint: CGPointMake(25.49, 31.37)]; - [bezier27Path addLineToPoint: CGPointMake(25.45, 31.25)]; - [bezier27Path addLineToPoint: CGPointMake(25.43, 31.12)]; - [bezier27Path addLineToPoint: CGPointMake(25.41, 30.98)]; - [bezier27Path addLineToPoint: CGPointMake(25.4, 30.86)]; - [bezier27Path addLineToPoint: CGPointMake(25.4, 30.73)]; - [bezier27Path addLineToPoint: CGPointMake(25.42, 30.51)]; - [bezier27Path addLineToPoint: CGPointMake(25.45, 30.3)]; - [bezier27Path addLineToPoint: CGPointMake(25.51, 30.1)]; - [bezier27Path addLineToPoint: CGPointMake(25.59, 29.91)]; - [bezier27Path addLineToPoint: CGPointMake(25.68, 29.73)]; - [bezier27Path addLineToPoint: CGPointMake(25.78, 29.56)]; - [bezier27Path addLineToPoint: CGPointMake(25.9, 29.4)]; - [bezier27Path addLineToPoint: CGPointMake(26.04, 29.26)]; - [bezier27Path addLineToPoint: CGPointMake(26.18, 29.13)]; - [bezier27Path addLineToPoint: CGPointMake(26.34, 29.01)]; - [bezier27Path addLineToPoint: CGPointMake(26.5, 28.9)]; - [bezier27Path addLineToPoint: CGPointMake(26.67, 28.81)]; - [bezier27Path addLineToPoint: CGPointMake(26.85, 28.73)]; - [bezier27Path addLineToPoint: CGPointMake(27.04, 28.67)]; - [bezier27Path addLineToPoint: CGPointMake(27.24, 28.62)]; - [bezier27Path addLineToPoint: CGPointMake(27.44, 28.58)]; - [bezier27Path addLineToPoint: CGPointMake(27.45, 28.58)]; - [bezier27Path addLineToPoint: CGPointMake(27.48, 28.58)]; - [bezier27Path addLineToPoint: CGPointMake(27.52, 28.57)]; - [bezier27Path addLineToPoint: CGPointMake(27.58, 28.56)]; - [bezier27Path addLineToPoint: CGPointMake(27.65, 28.55)]; - [bezier27Path addLineToPoint: CGPointMake(27.73, 28.55)]; - [bezier27Path addLineToPoint: CGPointMake(27.81, 28.54)]; - [bezier27Path addLineToPoint: CGPointMake(27.91, 28.52)]; - [bezier27Path addLineToPoint: CGPointMake(28.01, 28.51)]; - [bezier27Path addLineToPoint: CGPointMake(28.1, 28.5)]; - [bezier27Path addLineToPoint: CGPointMake(28.2, 28.5)]; - [bezier27Path addLineToPoint: CGPointMake(28.3, 28.49)]; - [bezier27Path addLineToPoint: CGPointMake(28.39, 28.48)]; - [bezier27Path addLineToPoint: CGPointMake(28.47, 28.47)]; - [bezier27Path addLineToPoint: CGPointMake(28.55, 28.47)]; - [bezier27Path addLineToPoint: CGPointMake(28.75, 28.47)]; - [bezier27Path addLineToPoint: CGPointMake(28.88, 28.47)]; - [bezier27Path addLineToPoint: CGPointMake(29.01, 28.48)]; - [bezier27Path addLineToPoint: CGPointMake(29.13, 28.48)]; - [bezier27Path addLineToPoint: CGPointMake(29.23, 28.49)]; - [bezier27Path addLineToPoint: CGPointMake(29.31, 28.49)]; - [bezier27Path addLineToPoint: CGPointMake(29.37, 28.5)]; - [bezier27Path addLineToPoint: CGPointMake(29.39, 28.5)]; - [bezier27Path addLineToPoint: CGPointMake(29.4, 28.46)]; - [bezier27Path addLineToPoint: CGPointMake(29.43, 28.35)]; - [bezier27Path addLineToPoint: CGPointMake(29.46, 28.23)]; - [bezier27Path addLineToPoint: CGPointMake(29.47, 28.13)]; - [bezier27Path addLineToPoint: CGPointMake(29.45, 28)]; - [bezier27Path addLineToPoint: CGPointMake(29.4, 27.89)]; - [bezier27Path addLineToPoint: CGPointMake(29.33, 27.78)]; - [bezier27Path addLineToPoint: CGPointMake(29.24, 27.7)]; - [bezier27Path addLineToPoint: CGPointMake(29.13, 27.63)]; - [bezier27Path addLineToPoint: CGPointMake(29.01, 27.57)]; - [bezier27Path addLineToPoint: CGPointMake(28.88, 27.54)]; - [bezier27Path addLineToPoint: CGPointMake(28.73, 27.53)]; - [bezier27Path addLineToPoint: CGPointMake(28.57, 27.52)]; - [bezier27Path addLineToPoint: CGPointMake(28.4, 27.52)]; - [bezier27Path addLineToPoint: CGPointMake(28.22, 27.52)]; - [bezier27Path addLineToPoint: CGPointMake(28.04, 27.52)]; - [bezier27Path addLineToPoint: CGPointMake(27.85, 27.53)]; - [bezier27Path addLineToPoint: CGPointMake(27.67, 27.55)]; - [bezier27Path addLineToPoint: CGPointMake(27.49, 27.57)]; - [bezier27Path addLineToPoint: CGPointMake(27.31, 27.59)]; - [bezier27Path addLineToPoint: CGPointMake(27.14, 27.61)]; - [bezier27Path addLineToPoint: CGPointMake(26.97, 27.64)]; - [bezier27Path addLineToPoint: CGPointMake(26.83, 27.67)]; - [bezier27Path addLineToPoint: CGPointMake(26.69, 27.7)]; - [bezier27Path addLineToPoint: CGPointMake(26.56, 27.73)]; - [bezier27Path addLineToPoint: CGPointMake(26.46, 27.77)]; - [bezier27Path addLineToPoint: CGPointMake(26.38, 27.81)]; - [bezier27Path addLineToPoint: CGPointMake(26.32, 27.84)]; - [bezier27Path addLineToPoint: CGPointMake(26.72, 26.47)]; - [bezier27Path addLineToPoint: CGPointMake(26.85, 26.42)]; - [bezier27Path addLineToPoint: CGPointMake(26.97, 26.37)]; - [bezier27Path addLineToPoint: CGPointMake(27.11, 26.33)]; - [bezier27Path addLineToPoint: CGPointMake(27.25, 26.3)]; - [bezier27Path addLineToPoint: CGPointMake(27.38, 26.28)]; - [bezier27Path addLineToPoint: CGPointMake(27.53, 26.25)]; - [bezier27Path addLineToPoint: CGPointMake(27.68, 26.23)]; - [bezier27Path addLineToPoint: CGPointMake(27.83, 26.22)]; - [bezier27Path addLineToPoint: CGPointMake(27.99, 26.21)]; - [bezier27Path addLineToPoint: CGPointMake(28.16, 26.2)]; - [bezier27Path addLineToPoint: CGPointMake(28.33, 26.2)]; - [bezier27Path addLineToPoint: CGPointMake(28.88, 26.2)]; - [bezier27Path addLineToPoint: CGPointMake(29.08, 26.2)]; - [bezier27Path addLineToPoint: CGPointMake(29.27, 26.21)]; - [bezier27Path addLineToPoint: CGPointMake(29.43, 26.22)]; - [bezier27Path addLineToPoint: CGPointMake(29.61, 26.25)]; - [bezier27Path addLineToPoint: CGPointMake(29.78, 26.29)]; - [bezier27Path addLineToPoint: CGPointMake(29.96, 26.34)]; - [bezier27Path addLineToPoint: CGPointMake(30.14, 26.41)]; - [bezier27Path addLineToPoint: CGPointMake(30.31, 26.49)]; - [bezier27Path addLineToPoint: CGPointMake(30.48, 26.58)]; - [bezier27Path addLineToPoint: CGPointMake(30.64, 26.69)]; - [bezier27Path addLineToPoint: CGPointMake(30.78, 26.82)]; - [bezier27Path addLineToPoint: CGPointMake(30.91, 26.95)]; - [bezier27Path addLineToPoint: CGPointMake(31.02, 27.11)]; - [bezier27Path addLineToPoint: CGPointMake(31.11, 27.28)]; - [bezier27Path addLineToPoint: CGPointMake(31.16, 27.46)]; - [bezier27Path addLineToPoint: CGPointMake(31.2, 27.65)]; - [bezier27Path addLineToPoint: CGPointMake(31.2, 27.87)]; - [bezier27Path addLineToPoint: CGPointMake(31.16, 28.1)]; - [bezier27Path addLineToPoint: CGPointMake(30.59, 31.1)]; - [bezier27Path closePath]; - bezier27Path.miterLimit = 4; - - bezier27Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier27Path fill]; - - - //// Bezier 28 Drawing - UIBezierPath* bezier28Path = [UIBezierPath bezierPath]; - [bezier28Path moveToPoint: CGPointMake(30.59, 31.1)]; - [bezier28Path addLineToPoint: CGPointMake(30.36, 32.37)]; - [bezier28Path addLineToPoint: CGPointMake(28.93, 32.37)]; - [bezier28Path addLineToPoint: CGPointMake(28.97, 32.13)]; - [bezier28Path addLineToPoint: CGPointMake(29, 31.92)]; - [bezier28Path addLineToPoint: CGPointMake(29.02, 31.76)]; - [bezier28Path addLineToPoint: CGPointMake(29.04, 31.68)]; - [bezier28Path addLineToPoint: CGPointMake(28.96, 31.77)]; - [bezier28Path addLineToPoint: CGPointMake(28.87, 31.86)]; - [bezier28Path addLineToPoint: CGPointMake(28.76, 31.95)]; - [bezier28Path addLineToPoint: CGPointMake(28.64, 32.03)]; - [bezier28Path addLineToPoint: CGPointMake(28.51, 32.11)]; - [bezier28Path addLineToPoint: CGPointMake(28.36, 32.17)]; - [bezier28Path addLineToPoint: CGPointMake(28.22, 32.24)]; - [bezier28Path addLineToPoint: CGPointMake(28.06, 32.3)]; - [bezier28Path addLineToPoint: CGPointMake(27.9, 32.35)]; - [bezier28Path addLineToPoint: CGPointMake(27.73, 32.39)]; - [bezier28Path addLineToPoint: CGPointMake(27.57, 32.43)]; - [bezier28Path addLineToPoint: CGPointMake(27.4, 32.45)]; - [bezier28Path addLineToPoint: CGPointMake(27.23, 32.46)]; - [bezier28Path addLineToPoint: CGPointMake(27.07, 32.46)]; - [bezier28Path addLineToPoint: CGPointMake(26.91, 32.45)]; - [bezier28Path addLineToPoint: CGPointMake(26.75, 32.43)]; - [bezier28Path addLineToPoint: CGPointMake(26.55, 32.37)]; - [bezier28Path addLineToPoint: CGPointMake(26.37, 32.32)]; - [bezier28Path addLineToPoint: CGPointMake(26.21, 32.24)]; - [bezier28Path addLineToPoint: CGPointMake(26.07, 32.16)]; - [bezier28Path addLineToPoint: CGPointMake(25.94, 32.07)]; - [bezier28Path addLineToPoint: CGPointMake(25.83, 31.96)]; - [bezier28Path addLineToPoint: CGPointMake(25.74, 31.86)]; - [bezier28Path addLineToPoint: CGPointMake(25.66, 31.74)]; - [bezier28Path addLineToPoint: CGPointMake(25.59, 31.62)]; - [bezier28Path addLineToPoint: CGPointMake(25.53, 31.5)]; - [bezier28Path addLineToPoint: CGPointMake(25.49, 31.37)]; - [bezier28Path addLineToPoint: CGPointMake(25.45, 31.25)]; - [bezier28Path addLineToPoint: CGPointMake(25.43, 31.12)]; - [bezier28Path addLineToPoint: CGPointMake(25.41, 30.98)]; - [bezier28Path addLineToPoint: CGPointMake(25.4, 30.86)]; - [bezier28Path addLineToPoint: CGPointMake(25.4, 30.73)]; - [bezier28Path addLineToPoint: CGPointMake(25.42, 30.51)]; - [bezier28Path addLineToPoint: CGPointMake(25.45, 30.3)]; - [bezier28Path addLineToPoint: CGPointMake(25.51, 30.1)]; - [bezier28Path addLineToPoint: CGPointMake(25.59, 29.91)]; - [bezier28Path addLineToPoint: CGPointMake(25.68, 29.73)]; - [bezier28Path addLineToPoint: CGPointMake(25.78, 29.56)]; - [bezier28Path addLineToPoint: CGPointMake(25.9, 29.4)]; - [bezier28Path addLineToPoint: CGPointMake(26.04, 29.26)]; - [bezier28Path addLineToPoint: CGPointMake(26.18, 29.13)]; - [bezier28Path addLineToPoint: CGPointMake(26.34, 29.01)]; - [bezier28Path addLineToPoint: CGPointMake(26.5, 28.9)]; - [bezier28Path addLineToPoint: CGPointMake(26.67, 28.81)]; - [bezier28Path addLineToPoint: CGPointMake(26.85, 28.73)]; - [bezier28Path addLineToPoint: CGPointMake(27.04, 28.67)]; - [bezier28Path addLineToPoint: CGPointMake(27.24, 28.62)]; - [bezier28Path addLineToPoint: CGPointMake(27.44, 28.58)]; - [bezier28Path addLineToPoint: CGPointMake(27.45, 28.58)]; - [bezier28Path addLineToPoint: CGPointMake(27.48, 28.58)]; - [bezier28Path addLineToPoint: CGPointMake(27.52, 28.57)]; - [bezier28Path addLineToPoint: CGPointMake(27.58, 28.56)]; - [bezier28Path addLineToPoint: CGPointMake(27.65, 28.55)]; - [bezier28Path addLineToPoint: CGPointMake(27.73, 28.55)]; - [bezier28Path addLineToPoint: CGPointMake(27.81, 28.54)]; - [bezier28Path addLineToPoint: CGPointMake(27.91, 28.52)]; - [bezier28Path addLineToPoint: CGPointMake(28.01, 28.51)]; - [bezier28Path addLineToPoint: CGPointMake(28.1, 28.5)]; - [bezier28Path addLineToPoint: CGPointMake(28.2, 28.5)]; - [bezier28Path addLineToPoint: CGPointMake(28.3, 28.49)]; - [bezier28Path addLineToPoint: CGPointMake(28.39, 28.48)]; - [bezier28Path addLineToPoint: CGPointMake(28.47, 28.47)]; - [bezier28Path addLineToPoint: CGPointMake(28.55, 28.47)]; - [bezier28Path addLineToPoint: CGPointMake(28.75, 28.47)]; - [bezier28Path addLineToPoint: CGPointMake(28.88, 28.47)]; - [bezier28Path addLineToPoint: CGPointMake(29.01, 28.48)]; - [bezier28Path addLineToPoint: CGPointMake(29.13, 28.48)]; - [bezier28Path addLineToPoint: CGPointMake(29.23, 28.49)]; - [bezier28Path addLineToPoint: CGPointMake(29.31, 28.49)]; - [bezier28Path addLineToPoint: CGPointMake(29.37, 28.5)]; - [bezier28Path addLineToPoint: CGPointMake(29.39, 28.5)]; - [bezier28Path addLineToPoint: CGPointMake(29.4, 28.46)]; - [bezier28Path addLineToPoint: CGPointMake(29.43, 28.35)]; - [bezier28Path addLineToPoint: CGPointMake(29.46, 28.23)]; - [bezier28Path addLineToPoint: CGPointMake(29.47, 28.13)]; - [bezier28Path addLineToPoint: CGPointMake(29.45, 28)]; - [bezier28Path addLineToPoint: CGPointMake(29.4, 27.89)]; - [bezier28Path addLineToPoint: CGPointMake(29.33, 27.78)]; - [bezier28Path addLineToPoint: CGPointMake(29.24, 27.7)]; - [bezier28Path addLineToPoint: CGPointMake(29.13, 27.63)]; - [bezier28Path addLineToPoint: CGPointMake(29.01, 27.57)]; - [bezier28Path addLineToPoint: CGPointMake(28.88, 27.54)]; - [bezier28Path addLineToPoint: CGPointMake(28.73, 27.53)]; - [bezier28Path addLineToPoint: CGPointMake(28.57, 27.52)]; - [bezier28Path addLineToPoint: CGPointMake(28.4, 27.52)]; - [bezier28Path addLineToPoint: CGPointMake(28.22, 27.52)]; - [bezier28Path addLineToPoint: CGPointMake(28.04, 27.52)]; - [bezier28Path addLineToPoint: CGPointMake(27.85, 27.53)]; - [bezier28Path addLineToPoint: CGPointMake(27.67, 27.55)]; - [bezier28Path addLineToPoint: CGPointMake(27.49, 27.57)]; - [bezier28Path addLineToPoint: CGPointMake(27.31, 27.59)]; - [bezier28Path addLineToPoint: CGPointMake(27.14, 27.61)]; - [bezier28Path addLineToPoint: CGPointMake(26.97, 27.64)]; - [bezier28Path addLineToPoint: CGPointMake(26.83, 27.67)]; - [bezier28Path addLineToPoint: CGPointMake(26.69, 27.7)]; - [bezier28Path addLineToPoint: CGPointMake(26.56, 27.73)]; - [bezier28Path addLineToPoint: CGPointMake(26.46, 27.77)]; - [bezier28Path addLineToPoint: CGPointMake(26.38, 27.81)]; - [bezier28Path addLineToPoint: CGPointMake(26.32, 27.84)]; - [bezier28Path addLineToPoint: CGPointMake(26.72, 26.47)]; - [bezier28Path addLineToPoint: CGPointMake(26.85, 26.42)]; - [bezier28Path addLineToPoint: CGPointMake(26.97, 26.37)]; - [bezier28Path addLineToPoint: CGPointMake(27.11, 26.33)]; - [bezier28Path addLineToPoint: CGPointMake(27.25, 26.3)]; - [bezier28Path addLineToPoint: CGPointMake(27.38, 26.28)]; - [bezier28Path addLineToPoint: CGPointMake(27.53, 26.25)]; - [bezier28Path addLineToPoint: CGPointMake(27.68, 26.23)]; - [bezier28Path addLineToPoint: CGPointMake(27.83, 26.22)]; - [bezier28Path addLineToPoint: CGPointMake(27.99, 26.21)]; - [bezier28Path addLineToPoint: CGPointMake(28.16, 26.2)]; - [bezier28Path addLineToPoint: CGPointMake(28.33, 26.2)]; - [bezier28Path addLineToPoint: CGPointMake(28.88, 26.2)]; - [bezier28Path addLineToPoint: CGPointMake(29.08, 26.2)]; - [bezier28Path addLineToPoint: CGPointMake(29.27, 26.21)]; - [bezier28Path addLineToPoint: CGPointMake(29.43, 26.22)]; - [bezier28Path addLineToPoint: CGPointMake(29.61, 26.25)]; - [bezier28Path addLineToPoint: CGPointMake(29.78, 26.29)]; - [bezier28Path addLineToPoint: CGPointMake(29.96, 26.34)]; - [bezier28Path addLineToPoint: CGPointMake(30.14, 26.41)]; - [bezier28Path addLineToPoint: CGPointMake(30.31, 26.49)]; - [bezier28Path addLineToPoint: CGPointMake(30.48, 26.58)]; - [bezier28Path addLineToPoint: CGPointMake(30.64, 26.69)]; - [bezier28Path addLineToPoint: CGPointMake(30.78, 26.82)]; - [bezier28Path addLineToPoint: CGPointMake(30.91, 26.95)]; - [bezier28Path addLineToPoint: CGPointMake(31.02, 27.11)]; - [bezier28Path addLineToPoint: CGPointMake(31.11, 27.28)]; - [bezier28Path addLineToPoint: CGPointMake(31.16, 27.46)]; - [bezier28Path addLineToPoint: CGPointMake(31.2, 27.65)]; - [bezier28Path addLineToPoint: CGPointMake(31.2, 27.87)]; - [bezier28Path addLineToPoint: CGPointMake(31.16, 28.1)]; - [bezier28Path addLineToPoint: CGPointMake(30.59, 31.1)]; - [bezier28Path closePath]; - bezier28Path.miterLimit = 4; - - bezier28Path.usesEvenOddFillRule = YES; - - [color3 setStroke]; - bezier28Path.lineWidth = 0.5; - [bezier28Path stroke]; - - - //// Bezier 29 Drawing - UIBezierPath* bezier29Path = [UIBezierPath bezierPath]; - [bezier29Path moveToPoint: CGPointMake(29.22, 29.62)]; - [bezier29Path addLineToPoint: CGPointMake(29.21, 29.59)]; - [bezier29Path addLineToPoint: CGPointMake(29.19, 29.56)]; - [bezier29Path addLineToPoint: CGPointMake(29.16, 29.54)]; - [bezier29Path addLineToPoint: CGPointMake(29.1, 29.53)]; - [bezier29Path addLineToPoint: CGPointMake(29.04, 29.52)]; - [bezier29Path addLineToPoint: CGPointMake(28.96, 29.52)]; - [bezier29Path addLineToPoint: CGPointMake(28.79, 29.52)]; - [bezier29Path addLineToPoint: CGPointMake(28.7, 29.52)]; - [bezier29Path addLineToPoint: CGPointMake(28.6, 29.53)]; - [bezier29Path addLineToPoint: CGPointMake(28.51, 29.54)]; - [bezier29Path addLineToPoint: CGPointMake(28.42, 29.56)]; - [bezier29Path addLineToPoint: CGPointMake(28.34, 29.57)]; - [bezier29Path addLineToPoint: CGPointMake(28.26, 29.58)]; - [bezier29Path addLineToPoint: CGPointMake(28.19, 29.6)]; - [bezier29Path addLineToPoint: CGPointMake(28.12, 29.62)]; - [bezier29Path addLineToPoint: CGPointMake(28.08, 29.63)]; - [bezier29Path addLineToPoint: CGPointMake(28.04, 29.65)]; - [bezier29Path addLineToPoint: CGPointMake(27.98, 29.67)]; - [bezier29Path addLineToPoint: CGPointMake(27.91, 29.7)]; - [bezier29Path addLineToPoint: CGPointMake(27.84, 29.73)]; - [bezier29Path addLineToPoint: CGPointMake(27.77, 29.77)]; - [bezier29Path addLineToPoint: CGPointMake(27.69, 29.81)]; - [bezier29Path addLineToPoint: CGPointMake(27.61, 29.86)]; - [bezier29Path addLineToPoint: CGPointMake(27.53, 29.91)]; - [bezier29Path addLineToPoint: CGPointMake(27.46, 29.97)]; - [bezier29Path addLineToPoint: CGPointMake(27.39, 30.04)]; - [bezier29Path addLineToPoint: CGPointMake(27.33, 30.11)]; - [bezier29Path addLineToPoint: CGPointMake(27.27, 30.18)]; - [bezier29Path addLineToPoint: CGPointMake(27.23, 30.26)]; - [bezier29Path addLineToPoint: CGPointMake(27.2, 30.35)]; - [bezier29Path addLineToPoint: CGPointMake(27.18, 30.44)]; - [bezier29Path addLineToPoint: CGPointMake(27.17, 30.64)]; - [bezier29Path addLineToPoint: CGPointMake(27.2, 30.79)]; - [bezier29Path addLineToPoint: CGPointMake(27.26, 30.9)]; - [bezier29Path addLineToPoint: CGPointMake(27.33, 30.99)]; - [bezier29Path addLineToPoint: CGPointMake(27.42, 31.05)]; - [bezier29Path addLineToPoint: CGPointMake(27.52, 31.08)]; - [bezier29Path addLineToPoint: CGPointMake(27.61, 31.1)]; - [bezier29Path addLineToPoint: CGPointMake(27.7, 31.1)]; - [bezier29Path addLineToPoint: CGPointMake(27.87, 31.1)]; - [bezier29Path addLineToPoint: CGPointMake(28.02, 31.08)]; - [bezier29Path addLineToPoint: CGPointMake(28.17, 31.06)]; - [bezier29Path addLineToPoint: CGPointMake(28.3, 31.02)]; - [bezier29Path addLineToPoint: CGPointMake(28.41, 30.98)]; - [bezier29Path addLineToPoint: CGPointMake(28.52, 30.93)]; - [bezier29Path addLineToPoint: CGPointMake(28.62, 30.88)]; - [bezier29Path addLineToPoint: CGPointMake(28.71, 30.82)]; - [bezier29Path addLineToPoint: CGPointMake(28.78, 30.76)]; - [bezier29Path addLineToPoint: CGPointMake(28.85, 30.69)]; - [bezier29Path addLineToPoint: CGPointMake(28.9, 30.63)]; - [bezier29Path addLineToPoint: CGPointMake(28.95, 30.56)]; - [bezier29Path addLineToPoint: CGPointMake(28.99, 30.5)]; - [bezier29Path addLineToPoint: CGPointMake(29.02, 30.43)]; - [bezier29Path addLineToPoint: CGPointMake(29.05, 30.36)]; - [bezier29Path addLineToPoint: CGPointMake(29.07, 30.3)]; - [bezier29Path addLineToPoint: CGPointMake(29.12, 30.14)]; - [bezier29Path addLineToPoint: CGPointMake(29.16, 29.95)]; - [bezier29Path addLineToPoint: CGPointMake(29.19, 29.77)]; - [bezier29Path addLineToPoint: CGPointMake(29.22, 29.62)]; - [bezier29Path closePath]; - bezier29Path.miterLimit = 4; - - bezier29Path.usesEvenOddFillRule = YES; - - [color2 setFill]; - [bezier29Path fill]; - - - //// Bezier 30 Drawing - UIBezierPath* bezier30Path = [UIBezierPath bezierPath]; - [bezier30Path moveToPoint: CGPointMake(18.61, 32.37)]; - [bezier30Path addLineToPoint: CGPointMake(17.06, 32.37)]; - [bezier30Path addLineToPoint: CGPointMake(18.35, 24.89)]; - [bezier30Path addLineToPoint: CGPointMake(21.05, 24.89)]; - [bezier30Path addLineToPoint: CGPointMake(21.3, 29.33)]; - [bezier30Path addLineToPoint: CGPointMake(23.17, 24.89)]; - [bezier30Path addLineToPoint: CGPointMake(25.98, 24.89)]; - [bezier30Path addLineToPoint: CGPointMake(24.66, 32.37)]; - [bezier30Path addLineToPoint: CGPointMake(23.11, 32.37)]; - [bezier30Path addLineToPoint: CGPointMake(24.09, 26.78)]; - [bezier30Path addLineToPoint: CGPointMake(24.03, 26.78)]; - [bezier30Path addLineToPoint: CGPointMake(21.71, 32.37)]; - [bezier30Path addLineToPoint: CGPointMake(19.96, 32.37)]; - [bezier30Path addLineToPoint: CGPointMake(19.95, 32.13)]; - [bezier30Path addLineToPoint: CGPointMake(19.91, 31.51)]; - [bezier30Path addLineToPoint: CGPointMake(19.86, 30.63)]; - [bezier30Path addLineToPoint: CGPointMake(19.74, 28.6)]; - [bezier30Path addLineToPoint: CGPointMake(19.69, 27.71)]; - [bezier30Path addLineToPoint: CGPointMake(19.65, 27.06)]; - [bezier30Path addLineToPoint: CGPointMake(19.64, 26.78)]; - [bezier30Path addLineToPoint: CGPointMake(19.56, 26.78)]; - [bezier30Path addLineToPoint: CGPointMake(18.61, 32.37)]; - [bezier30Path closePath]; - bezier30Path.miterLimit = 4; - - bezier30Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier30Path fill]; - - - //// Bezier 31 Drawing - UIBezierPath* bezier31Path = [UIBezierPath bezierPath]; - [bezier31Path moveToPoint: CGPointMake(18.61, 32.37)]; - [bezier31Path addLineToPoint: CGPointMake(17.06, 32.37)]; - [bezier31Path addLineToPoint: CGPointMake(18.35, 24.89)]; - [bezier31Path addLineToPoint: CGPointMake(21.05, 24.89)]; - [bezier31Path addLineToPoint: CGPointMake(21.3, 29.33)]; - [bezier31Path addLineToPoint: CGPointMake(23.17, 24.89)]; - [bezier31Path addLineToPoint: CGPointMake(25.98, 24.89)]; - [bezier31Path addLineToPoint: CGPointMake(24.66, 32.37)]; - [bezier31Path addLineToPoint: CGPointMake(23.11, 32.37)]; - [bezier31Path addLineToPoint: CGPointMake(24.09, 26.78)]; - [bezier31Path addLineToPoint: CGPointMake(24.03, 26.78)]; - [bezier31Path addLineToPoint: CGPointMake(21.71, 32.37)]; - [bezier31Path addLineToPoint: CGPointMake(19.96, 32.37)]; - [bezier31Path addLineToPoint: CGPointMake(19.95, 32.13)]; - [bezier31Path addLineToPoint: CGPointMake(19.91, 31.51)]; - [bezier31Path addLineToPoint: CGPointMake(19.86, 30.63)]; - [bezier31Path addLineToPoint: CGPointMake(19.74, 28.6)]; - [bezier31Path addLineToPoint: CGPointMake(19.69, 27.71)]; - [bezier31Path addLineToPoint: CGPointMake(19.65, 27.06)]; - [bezier31Path addLineToPoint: CGPointMake(19.64, 26.78)]; - [bezier31Path addLineToPoint: CGPointMake(19.56, 26.78)]; - [bezier31Path addLineToPoint: CGPointMake(18.61, 32.37)]; - [bezier31Path closePath]; - bezier31Path.miterLimit = 4; - - bezier31Path.usesEvenOddFillRule = YES; - - [color3 setStroke]; - bezier31Path.lineWidth = 0.5; - [bezier31Path stroke]; - - - //// Bezier 32 Drawing - UIBezierPath* bezier32Path = [UIBezierPath bezierPath]; - [bezier32Path moveToPoint: CGPointMake(58.85, 31.1)]; - [bezier32Path addLineToPoint: CGPointMake(58.61, 32.37)]; - [bezier32Path addLineToPoint: CGPointMake(57.18, 32.37)]; - [bezier32Path addLineToPoint: CGPointMake(57.2, 32.13)]; - [bezier32Path addLineToPoint: CGPointMake(57.2, 31.93)]; - [bezier32Path addLineToPoint: CGPointMake(57.2, 31.78)]; - [bezier32Path addLineToPoint: CGPointMake(57.21, 31.71)]; - [bezier32Path addLineToPoint: CGPointMake(57.14, 31.79)]; - [bezier32Path addLineToPoint: CGPointMake(57.05, 31.88)]; - [bezier32Path addLineToPoint: CGPointMake(56.95, 31.96)]; - [bezier32Path addLineToPoint: CGPointMake(56.84, 32.04)]; - [bezier32Path addLineToPoint: CGPointMake(56.72, 32.11)]; - [bezier32Path addLineToPoint: CGPointMake(56.58, 32.18)]; - [bezier32Path addLineToPoint: CGPointMake(56.44, 32.25)]; - [bezier32Path addLineToPoint: CGPointMake(56.3, 32.31)]; - [bezier32Path addLineToPoint: CGPointMake(56.14, 32.35)]; - [bezier32Path addLineToPoint: CGPointMake(55.98, 32.4)]; - [bezier32Path addLineToPoint: CGPointMake(55.82, 32.43)]; - [bezier32Path addLineToPoint: CGPointMake(55.66, 32.45)]; - [bezier32Path addLineToPoint: CGPointMake(55.5, 32.46)]; - [bezier32Path addLineToPoint: CGPointMake(55.34, 32.46)]; - [bezier32Path addLineToPoint: CGPointMake(55.19, 32.45)]; - [bezier32Path addLineToPoint: CGPointMake(55.03, 32.43)]; - [bezier32Path addLineToPoint: CGPointMake(54.83, 32.37)]; - [bezier32Path addLineToPoint: CGPointMake(54.65, 32.32)]; - [bezier32Path addLineToPoint: CGPointMake(54.49, 32.24)]; - [bezier32Path addLineToPoint: CGPointMake(54.34, 32.16)]; - [bezier32Path addLineToPoint: CGPointMake(54.21, 32.07)]; - [bezier32Path addLineToPoint: CGPointMake(54.1, 31.96)]; - [bezier32Path addLineToPoint: CGPointMake(54.01, 31.86)]; - [bezier32Path addLineToPoint: CGPointMake(53.93, 31.74)]; - [bezier32Path addLineToPoint: CGPointMake(53.87, 31.62)]; - [bezier32Path addLineToPoint: CGPointMake(53.81, 31.5)]; - [bezier32Path addLineToPoint: CGPointMake(53.77, 31.37)]; - [bezier32Path addLineToPoint: CGPointMake(53.74, 31.25)]; - [bezier32Path addLineToPoint: CGPointMake(53.72, 31.12)]; - [bezier32Path addLineToPoint: CGPointMake(53.7, 30.98)]; - [bezier32Path addLineToPoint: CGPointMake(53.69, 30.86)]; - [bezier32Path addLineToPoint: CGPointMake(53.69, 30.73)]; - [bezier32Path addLineToPoint: CGPointMake(53.7, 30.51)]; - [bezier32Path addLineToPoint: CGPointMake(53.73, 30.3)]; - [bezier32Path addLineToPoint: CGPointMake(53.79, 30.1)]; - [bezier32Path addLineToPoint: CGPointMake(53.86, 29.91)]; - [bezier32Path addLineToPoint: CGPointMake(53.95, 29.73)]; - [bezier32Path addLineToPoint: CGPointMake(54.05, 29.56)]; - [bezier32Path addLineToPoint: CGPointMake(54.17, 29.4)]; - [bezier32Path addLineToPoint: CGPointMake(54.3, 29.26)]; - [bezier32Path addLineToPoint: CGPointMake(54.45, 29.13)]; - [bezier32Path addLineToPoint: CGPointMake(54.61, 29.01)]; - [bezier32Path addLineToPoint: CGPointMake(54.77, 28.9)]; - [bezier32Path addLineToPoint: CGPointMake(54.95, 28.81)]; - [bezier32Path addLineToPoint: CGPointMake(55.12, 28.73)]; - [bezier32Path addLineToPoint: CGPointMake(55.31, 28.67)]; - [bezier32Path addLineToPoint: CGPointMake(55.5, 28.62)]; - [bezier32Path addLineToPoint: CGPointMake(55.69, 28.58)]; - [bezier32Path addLineToPoint: CGPointMake(55.7, 28.58)]; - [bezier32Path addLineToPoint: CGPointMake(55.73, 28.58)]; - [bezier32Path addLineToPoint: CGPointMake(55.77, 28.57)]; - [bezier32Path addLineToPoint: CGPointMake(55.83, 28.56)]; - [bezier32Path addLineToPoint: CGPointMake(55.9, 28.55)]; - [bezier32Path addLineToPoint: CGPointMake(55.98, 28.55)]; - [bezier32Path addLineToPoint: CGPointMake(56.07, 28.54)]; - [bezier32Path addLineToPoint: CGPointMake(56.16, 28.52)]; - [bezier32Path addLineToPoint: CGPointMake(56.26, 28.51)]; - [bezier32Path addLineToPoint: CGPointMake(56.36, 28.5)]; - [bezier32Path addLineToPoint: CGPointMake(56.46, 28.5)]; - [bezier32Path addLineToPoint: CGPointMake(56.55, 28.49)]; - [bezier32Path addLineToPoint: CGPointMake(56.64, 28.48)]; - [bezier32Path addLineToPoint: CGPointMake(56.72, 28.47)]; - [bezier32Path addLineToPoint: CGPointMake(56.8, 28.47)]; - [bezier32Path addLineToPoint: CGPointMake(57, 28.47)]; - [bezier32Path addLineToPoint: CGPointMake(57.14, 28.47)]; - [bezier32Path addLineToPoint: CGPointMake(57.27, 28.48)]; - [bezier32Path addLineToPoint: CGPointMake(57.4, 28.48)]; - [bezier32Path addLineToPoint: CGPointMake(57.5, 28.49)]; - [bezier32Path addLineToPoint: CGPointMake(57.59, 28.49)]; - [bezier32Path addLineToPoint: CGPointMake(57.65, 28.5)]; - [bezier32Path addLineToPoint: CGPointMake(57.67, 28.5)]; - [bezier32Path addLineToPoint: CGPointMake(57.68, 28.46)]; - [bezier32Path addLineToPoint: CGPointMake(57.7, 28.35)]; - [bezier32Path addLineToPoint: CGPointMake(57.71, 28.23)]; - [bezier32Path addLineToPoint: CGPointMake(57.73, 28.13)]; - [bezier32Path addLineToPoint: CGPointMake(57.7, 28)]; - [bezier32Path addLineToPoint: CGPointMake(57.66, 27.89)]; - [bezier32Path addLineToPoint: CGPointMake(57.58, 27.78)]; - [bezier32Path addLineToPoint: CGPointMake(57.5, 27.7)]; - [bezier32Path addLineToPoint: CGPointMake(57.4, 27.63)]; - [bezier32Path addLineToPoint: CGPointMake(57.28, 27.57)]; - [bezier32Path addLineToPoint: CGPointMake(57.15, 27.54)]; - [bezier32Path addLineToPoint: CGPointMake(57.01, 27.53)]; - [bezier32Path addLineToPoint: CGPointMake(56.85, 27.52)]; - [bezier32Path addLineToPoint: CGPointMake(56.68, 27.52)]; - [bezier32Path addLineToPoint: CGPointMake(56.51, 27.52)]; - [bezier32Path addLineToPoint: CGPointMake(56.32, 27.52)]; - [bezier32Path addLineToPoint: CGPointMake(56.14, 27.53)]; - [bezier32Path addLineToPoint: CGPointMake(55.95, 27.55)]; - [bezier32Path addLineToPoint: CGPointMake(55.77, 27.57)]; - [bezier32Path addLineToPoint: CGPointMake(55.6, 27.59)]; - [bezier32Path addLineToPoint: CGPointMake(55.43, 27.61)]; - [bezier32Path addLineToPoint: CGPointMake(55.26, 27.64)]; - [bezier32Path addLineToPoint: CGPointMake(55.11, 27.67)]; - [bezier32Path addLineToPoint: CGPointMake(54.98, 27.7)]; - [bezier32Path addLineToPoint: CGPointMake(54.85, 27.73)]; - [bezier32Path addLineToPoint: CGPointMake(54.75, 27.77)]; - [bezier32Path addLineToPoint: CGPointMake(54.67, 27.81)]; - [bezier32Path addLineToPoint: CGPointMake(54.61, 27.84)]; - [bezier32Path addLineToPoint: CGPointMake(55, 26.47)]; - [bezier32Path addLineToPoint: CGPointMake(55.13, 26.42)]; - [bezier32Path addLineToPoint: CGPointMake(55.26, 26.37)]; - [bezier32Path addLineToPoint: CGPointMake(55.39, 26.33)]; - [bezier32Path addLineToPoint: CGPointMake(55.53, 26.3)]; - [bezier32Path addLineToPoint: CGPointMake(55.67, 26.28)]; - [bezier32Path addLineToPoint: CGPointMake(55.81, 26.25)]; - [bezier32Path addLineToPoint: CGPointMake(55.96, 26.23)]; - [bezier32Path addLineToPoint: CGPointMake(56.11, 26.22)]; - [bezier32Path addLineToPoint: CGPointMake(56.27, 26.21)]; - [bezier32Path addLineToPoint: CGPointMake(56.44, 26.2)]; - [bezier32Path addLineToPoint: CGPointMake(56.6, 26.2)]; - [bezier32Path addLineToPoint: CGPointMake(57.14, 26.2)]; - [bezier32Path addLineToPoint: CGPointMake(57.33, 26.2)]; - [bezier32Path addLineToPoint: CGPointMake(57.53, 26.21)]; - [bezier32Path addLineToPoint: CGPointMake(57.69, 26.22)]; - [bezier32Path addLineToPoint: CGPointMake(57.86, 26.25)]; - [bezier32Path addLineToPoint: CGPointMake(58.03, 26.29)]; - [bezier32Path addLineToPoint: CGPointMake(58.22, 26.34)]; - [bezier32Path addLineToPoint: CGPointMake(58.39, 26.41)]; - [bezier32Path addLineToPoint: CGPointMake(58.57, 26.49)]; - [bezier32Path addLineToPoint: CGPointMake(58.74, 26.58)]; - [bezier32Path addLineToPoint: CGPointMake(58.9, 26.69)]; - [bezier32Path addLineToPoint: CGPointMake(59.04, 26.82)]; - [bezier32Path addLineToPoint: CGPointMake(59.17, 26.95)]; - [bezier32Path addLineToPoint: CGPointMake(59.29, 27.11)]; - [bezier32Path addLineToPoint: CGPointMake(59.37, 27.28)]; - [bezier32Path addLineToPoint: CGPointMake(59.43, 27.46)]; - [bezier32Path addLineToPoint: CGPointMake(59.47, 27.65)]; - [bezier32Path addLineToPoint: CGPointMake(59.47, 27.87)]; - [bezier32Path addLineToPoint: CGPointMake(59.44, 28.1)]; - [bezier32Path addLineToPoint: CGPointMake(58.85, 31.1)]; - [bezier32Path closePath]; - bezier32Path.miterLimit = 4; - - bezier32Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier32Path fill]; - - - //// Bezier 33 Drawing - UIBezierPath* bezier33Path = [UIBezierPath bezierPath]; - [bezier33Path moveToPoint: CGPointMake(58.61, 32.41)]; - [bezier33Path addLineToPoint: CGPointMake(58.65, 32.37)]; - [bezier33Path addLineToPoint: CGPointMake(58.88, 31.11)]; - [bezier33Path addLineToPoint: CGPointMake(58.81, 31.1)]; - [bezier33Path addLineToPoint: CGPointMake(58.58, 32.36)]; - [bezier33Path addLineToPoint: CGPointMake(58.61, 32.33)]; - [bezier33Path addLineToPoint: CGPointMake(58.61, 32.41)]; - [bezier33Path addLineToPoint: CGPointMake(58.64, 32.4)]; - [bezier33Path addLineToPoint: CGPointMake(58.65, 32.37)]; - [bezier33Path addLineToPoint: CGPointMake(58.61, 32.41)]; - [bezier33Path closePath]; - bezier33Path.miterLimit = 4; - - bezier33Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier33Path fill]; - - - //// Bezier 34 Drawing - UIBezierPath* bezier34Path = [UIBezierPath bezierPath]; - [bezier34Path moveToPoint: CGPointMake(57.15, 32.37)]; - [bezier34Path addLineToPoint: CGPointMake(57.18, 32.41)]; - [bezier34Path addLineToPoint: CGPointMake(58.61, 32.41)]; - [bezier34Path addLineToPoint: CGPointMake(58.61, 32.33)]; - [bezier34Path addLineToPoint: CGPointMake(57.18, 32.33)]; - [bezier34Path addLineToPoint: CGPointMake(57.22, 32.37)]; - [bezier34Path addLineToPoint: CGPointMake(57.15, 32.37)]; - [bezier34Path addLineToPoint: CGPointMake(57.14, 32.41)]; - [bezier34Path addLineToPoint: CGPointMake(57.18, 32.41)]; - [bezier34Path addLineToPoint: CGPointMake(57.15, 32.37)]; - [bezier34Path closePath]; - bezier34Path.miterLimit = 4; - - bezier34Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier34Path fill]; - - - //// Bezier 35 Drawing - UIBezierPath* bezier35Path = [UIBezierPath bezierPath]; - [bezier35Path moveToPoint: CGPointMake(57.24, 31.73)]; - [bezier35Path addLineToPoint: CGPointMake(57.19, 31.69)]; - [bezier35Path addLineToPoint: CGPointMake(57.17, 31.78)]; - [bezier35Path addLineToPoint: CGPointMake(57.16, 31.93)]; - [bezier35Path addLineToPoint: CGPointMake(57.16, 32.13)]; - [bezier35Path addLineToPoint: CGPointMake(57.15, 32.37)]; - [bezier35Path addLineToPoint: CGPointMake(57.22, 32.37)]; - [bezier35Path addLineToPoint: CGPointMake(57.23, 32.13)]; - [bezier35Path addLineToPoint: CGPointMake(57.24, 31.93)]; - [bezier35Path addLineToPoint: CGPointMake(57.24, 31.78)]; - [bezier35Path addLineToPoint: CGPointMake(57.24, 31.73)]; - [bezier35Path addLineToPoint: CGPointMake(57.18, 31.69)]; - [bezier35Path addLineToPoint: CGPointMake(57.24, 31.73)]; - [bezier35Path closePath]; - bezier35Path.miterLimit = 4; - - bezier35Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier35Path fill]; - - - //// Bezier 36 Drawing - UIBezierPath* bezier36Path = [UIBezierPath bezierPath]; - [bezier36Path moveToPoint: CGPointMake(55.03, 32.46)]; - [bezier36Path addLineToPoint: CGPointMake(55.03, 32.46)]; - [bezier36Path addLineToPoint: CGPointMake(55.19, 32.48)]; - [bezier36Path addLineToPoint: CGPointMake(55.34, 32.5)]; - [bezier36Path addLineToPoint: CGPointMake(55.5, 32.49)]; - [bezier36Path addLineToPoint: CGPointMake(55.66, 32.48)]; - [bezier36Path addLineToPoint: CGPointMake(55.83, 32.46)]; - [bezier36Path addLineToPoint: CGPointMake(55.99, 32.43)]; - [bezier36Path addLineToPoint: CGPointMake(56.15, 32.39)]; - [bezier36Path addLineToPoint: CGPointMake(56.31, 32.34)]; - [bezier36Path addLineToPoint: CGPointMake(56.45, 32.28)]; - [bezier36Path addLineToPoint: CGPointMake(56.6, 32.21)]; - [bezier36Path addLineToPoint: CGPointMake(56.73, 32.15)]; - [bezier36Path addLineToPoint: CGPointMake(56.85, 32.07)]; - [bezier36Path addLineToPoint: CGPointMake(56.97, 31.99)]; - [bezier36Path addLineToPoint: CGPointMake(57.08, 31.91)]; - [bezier36Path addLineToPoint: CGPointMake(57.17, 31.82)]; - [bezier36Path addLineToPoint: CGPointMake(57.24, 31.73)]; - [bezier36Path addLineToPoint: CGPointMake(57.18, 31.69)]; - [bezier36Path addLineToPoint: CGPointMake(57.11, 31.77)]; - [bezier36Path addLineToPoint: CGPointMake(57.03, 31.85)]; - [bezier36Path addLineToPoint: CGPointMake(56.93, 31.93)]; - [bezier36Path addLineToPoint: CGPointMake(56.82, 32.01)]; - [bezier36Path addLineToPoint: CGPointMake(56.7, 32.08)]; - [bezier36Path addLineToPoint: CGPointMake(56.56, 32.15)]; - [bezier36Path addLineToPoint: CGPointMake(56.43, 32.21)]; - [bezier36Path addLineToPoint: CGPointMake(56.29, 32.27)]; - [bezier36Path addLineToPoint: CGPointMake(56.14, 32.32)]; - [bezier36Path addLineToPoint: CGPointMake(55.98, 32.36)]; - [bezier36Path addLineToPoint: CGPointMake(55.82, 32.39)]; - [bezier36Path addLineToPoint: CGPointMake(55.66, 32.41)]; - [bezier36Path addLineToPoint: CGPointMake(55.5, 32.43)]; - [bezier36Path addLineToPoint: CGPointMake(55.34, 32.43)]; - [bezier36Path addLineToPoint: CGPointMake(55.19, 32.41)]; - [bezier36Path addLineToPoint: CGPointMake(55.04, 32.39)]; - [bezier36Path addLineToPoint: CGPointMake(55.03, 32.46)]; - [bezier36Path closePath]; - bezier36Path.miterLimit = 4; - - bezier36Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier36Path fill]; - - - //// Bezier 37 Drawing - UIBezierPath* bezier37Path = [UIBezierPath bezierPath]; - [bezier37Path moveToPoint: CGPointMake(53.65, 30.73)]; - [bezier37Path addLineToPoint: CGPointMake(53.65, 30.73)]; - [bezier37Path addLineToPoint: CGPointMake(53.65, 30.86)]; - [bezier37Path addLineToPoint: CGPointMake(53.67, 30.98)]; - [bezier37Path addLineToPoint: CGPointMake(53.68, 31.12)]; - [bezier37Path addLineToPoint: CGPointMake(53.71, 31.25)]; - [bezier37Path addLineToPoint: CGPointMake(53.73, 31.38)]; - [bezier37Path addLineToPoint: CGPointMake(53.78, 31.51)]; - [bezier37Path addLineToPoint: CGPointMake(53.83, 31.64)]; - [bezier37Path addLineToPoint: CGPointMake(53.91, 31.76)]; - [bezier37Path addLineToPoint: CGPointMake(53.99, 31.88)]; - [bezier37Path addLineToPoint: CGPointMake(54.08, 31.99)]; - [bezier37Path addLineToPoint: CGPointMake(54.19, 32.09)]; - [bezier37Path addLineToPoint: CGPointMake(54.32, 32.19)]; - [bezier37Path addLineToPoint: CGPointMake(54.47, 32.28)]; - [bezier37Path addLineToPoint: CGPointMake(54.63, 32.35)]; - [bezier37Path addLineToPoint: CGPointMake(54.82, 32.41)]; - [bezier37Path addLineToPoint: CGPointMake(55.03, 32.46)]; - [bezier37Path addLineToPoint: CGPointMake(55.04, 32.39)]; - [bezier37Path addLineToPoint: CGPointMake(54.83, 32.34)]; - [bezier37Path addLineToPoint: CGPointMake(54.66, 32.28)]; - [bezier37Path addLineToPoint: CGPointMake(54.5, 32.21)]; - [bezier37Path addLineToPoint: CGPointMake(54.36, 32.13)]; - [bezier37Path addLineToPoint: CGPointMake(54.24, 32.04)]; - [bezier37Path addLineToPoint: CGPointMake(54.13, 31.94)]; - [bezier37Path addLineToPoint: CGPointMake(54.04, 31.83)]; - [bezier37Path addLineToPoint: CGPointMake(53.96, 31.72)]; - [bezier37Path addLineToPoint: CGPointMake(53.9, 31.61)]; - [bezier37Path addLineToPoint: CGPointMake(53.85, 31.49)]; - [bezier37Path addLineToPoint: CGPointMake(53.8, 31.37)]; - [bezier37Path addLineToPoint: CGPointMake(53.77, 31.24)]; - [bezier37Path addLineToPoint: CGPointMake(53.75, 31.11)]; - [bezier37Path addLineToPoint: CGPointMake(53.73, 30.98)]; - [bezier37Path addLineToPoint: CGPointMake(53.72, 30.86)]; - [bezier37Path addLineToPoint: CGPointMake(53.73, 30.73)]; - [bezier37Path addLineToPoint: CGPointMake(53.65, 30.73)]; - [bezier37Path closePath]; - bezier37Path.miterLimit = 4; - - bezier37Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier37Path fill]; - - - //// Bezier 38 Drawing - UIBezierPath* bezier38Path = [UIBezierPath bezierPath]; - [bezier38Path moveToPoint: CGPointMake(55.69, 28.55)]; - [bezier38Path addLineToPoint: CGPointMake(55.69, 28.55)]; - [bezier38Path addLineToPoint: CGPointMake(55.49, 28.58)]; - [bezier38Path addLineToPoint: CGPointMake(55.3, 28.63)]; - [bezier38Path addLineToPoint: CGPointMake(55.11, 28.7)]; - [bezier38Path addLineToPoint: CGPointMake(54.93, 28.78)]; - [bezier38Path addLineToPoint: CGPointMake(54.75, 28.87)]; - [bezier38Path addLineToPoint: CGPointMake(54.58, 28.98)]; - [bezier38Path addLineToPoint: CGPointMake(54.43, 29.1)]; - [bezier38Path addLineToPoint: CGPointMake(54.28, 29.24)]; - [bezier38Path addLineToPoint: CGPointMake(54.14, 29.38)]; - [bezier38Path addLineToPoint: CGPointMake(54.02, 29.54)]; - [bezier38Path addLineToPoint: CGPointMake(53.91, 29.71)]; - [bezier38Path addLineToPoint: CGPointMake(53.83, 29.9)]; - [bezier38Path addLineToPoint: CGPointMake(53.75, 30.09)]; - [bezier38Path addLineToPoint: CGPointMake(53.7, 30.3)]; - [bezier38Path addLineToPoint: CGPointMake(53.67, 30.51)]; - [bezier38Path addLineToPoint: CGPointMake(53.65, 30.73)]; - [bezier38Path addLineToPoint: CGPointMake(53.73, 30.73)]; - [bezier38Path addLineToPoint: CGPointMake(53.73, 30.51)]; - [bezier38Path addLineToPoint: CGPointMake(53.77, 30.31)]; - [bezier38Path addLineToPoint: CGPointMake(53.82, 30.11)]; - [bezier38Path addLineToPoint: CGPointMake(53.89, 29.92)]; - [bezier38Path addLineToPoint: CGPointMake(53.98, 29.74)]; - [bezier38Path addLineToPoint: CGPointMake(54.08, 29.58)]; - [bezier38Path addLineToPoint: CGPointMake(54.2, 29.42)]; - [bezier38Path addLineToPoint: CGPointMake(54.33, 29.28)]; - [bezier38Path addLineToPoint: CGPointMake(54.47, 29.16)]; - [bezier38Path addLineToPoint: CGPointMake(54.63, 29.04)]; - [bezier38Path addLineToPoint: CGPointMake(54.79, 28.94)]; - [bezier38Path addLineToPoint: CGPointMake(54.96, 28.84)]; - [bezier38Path addLineToPoint: CGPointMake(55.13, 28.76)]; - [bezier38Path addLineToPoint: CGPointMake(55.32, 28.7)]; - [bezier38Path addLineToPoint: CGPointMake(55.51, 28.65)]; - [bezier38Path addLineToPoint: CGPointMake(55.69, 28.62)]; - [bezier38Path addLineToPoint: CGPointMake(55.69, 28.55)]; - [bezier38Path closePath]; - bezier38Path.miterLimit = 4; - - bezier38Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier38Path fill]; - - - //// Bezier 39 Drawing - UIBezierPath* bezier39Path = [UIBezierPath bezierPath]; - [bezier39Path moveToPoint: CGPointMake(56.87, 28.43)]; - [bezier39Path addLineToPoint: CGPointMake(56.8, 28.43)]; - [bezier39Path addLineToPoint: CGPointMake(56.72, 28.44)]; - [bezier39Path addLineToPoint: CGPointMake(56.64, 28.45)]; - [bezier39Path addLineToPoint: CGPointMake(56.55, 28.45)]; - [bezier39Path addLineToPoint: CGPointMake(56.46, 28.46)]; - [bezier39Path addLineToPoint: CGPointMake(56.36, 28.47)]; - [bezier39Path addLineToPoint: CGPointMake(56.26, 28.48)]; - [bezier39Path addLineToPoint: CGPointMake(56.16, 28.49)]; - [bezier39Path addLineToPoint: CGPointMake(56.07, 28.5)]; - [bezier39Path addLineToPoint: CGPointMake(55.98, 28.51)]; - [bezier39Path addLineToPoint: CGPointMake(55.9, 28.52)]; - [bezier39Path addLineToPoint: CGPointMake(55.83, 28.53)]; - [bezier39Path addLineToPoint: CGPointMake(55.77, 28.54)]; - [bezier39Path addLineToPoint: CGPointMake(55.73, 28.54)]; - [bezier39Path addLineToPoint: CGPointMake(55.7, 28.55)]; - [bezier39Path addLineToPoint: CGPointMake(55.69, 28.55)]; - [bezier39Path addLineToPoint: CGPointMake(55.69, 28.62)]; - [bezier39Path addLineToPoint: CGPointMake(55.7, 28.62)]; - [bezier39Path addLineToPoint: CGPointMake(55.74, 28.61)]; - [bezier39Path addLineToPoint: CGPointMake(55.77, 28.6)]; - [bezier39Path addLineToPoint: CGPointMake(55.83, 28.6)]; - [bezier39Path addLineToPoint: CGPointMake(55.9, 28.59)]; - [bezier39Path addLineToPoint: CGPointMake(55.98, 28.58)]; - [bezier39Path addLineToPoint: CGPointMake(56.07, 28.57)]; - [bezier39Path addLineToPoint: CGPointMake(56.16, 28.56)]; - [bezier39Path addLineToPoint: CGPointMake(56.26, 28.55)]; - [bezier39Path addLineToPoint: CGPointMake(56.36, 28.54)]; - [bezier39Path addLineToPoint: CGPointMake(56.46, 28.53)]; - [bezier39Path addLineToPoint: CGPointMake(56.55, 28.52)]; - [bezier39Path addLineToPoint: CGPointMake(56.64, 28.51)]; - [bezier39Path addLineToPoint: CGPointMake(56.72, 28.51)]; - [bezier39Path addLineToPoint: CGPointMake(56.87, 28.51)]; - [bezier39Path addLineToPoint: CGPointMake(56.87, 28.43)]; - [bezier39Path closePath]; - bezier39Path.miterLimit = 4; - - bezier39Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier39Path fill]; - - - //// Bezier 40 Drawing - UIBezierPath* bezier40Path = [UIBezierPath bezierPath]; - [bezier40Path moveToPoint: CGPointMake(57.63, 28.49)]; - [bezier40Path addLineToPoint: CGPointMake(57.67, 28.46)]; - [bezier40Path addLineToPoint: CGPointMake(57.65, 28.46)]; - [bezier40Path addLineToPoint: CGPointMake(57.59, 28.46)]; - [bezier40Path addLineToPoint: CGPointMake(57.5, 28.45)]; - [bezier40Path addLineToPoint: CGPointMake(57.4, 28.44)]; - [bezier40Path addLineToPoint: CGPointMake(57.14, 28.44)]; - [bezier40Path addLineToPoint: CGPointMake(57, 28.43)]; - [bezier40Path addLineToPoint: CGPointMake(56.87, 28.43)]; - [bezier40Path addLineToPoint: CGPointMake(56.87, 28.51)]; - [bezier40Path addLineToPoint: CGPointMake(57.14, 28.51)]; - [bezier40Path addLineToPoint: CGPointMake(57.27, 28.52)]; - [bezier40Path addLineToPoint: CGPointMake(57.5, 28.52)]; - [bezier40Path addLineToPoint: CGPointMake(57.59, 28.52)]; - [bezier40Path addLineToPoint: CGPointMake(57.65, 28.53)]; - [bezier40Path addLineToPoint: CGPointMake(57.67, 28.53)]; - [bezier40Path addLineToPoint: CGPointMake(57.7, 28.5)]; - [bezier40Path addLineToPoint: CGPointMake(57.67, 28.53)]; - [bezier40Path addLineToPoint: CGPointMake(57.7, 28.54)]; - [bezier40Path addLineToPoint: CGPointMake(57.7, 28.5)]; - [bezier40Path addLineToPoint: CGPointMake(57.63, 28.49)]; - [bezier40Path closePath]; - bezier40Path.miterLimit = 4; - - bezier40Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier40Path fill]; - - - //// Bezier 41 Drawing - UIBezierPath* bezier41Path = [UIBezierPath bezierPath]; - [bezier41Path moveToPoint: CGPointMake(57.69, 28.13)]; - [bezier41Path addLineToPoint: CGPointMake(57.69, 28.13)]; - [bezier41Path addLineToPoint: CGPointMake(57.68, 28.23)]; - [bezier41Path addLineToPoint: CGPointMake(57.66, 28.35)]; - [bezier41Path addLineToPoint: CGPointMake(57.65, 28.45)]; - [bezier41Path addLineToPoint: CGPointMake(57.63, 28.49)]; - [bezier41Path addLineToPoint: CGPointMake(57.7, 28.5)]; - [bezier41Path addLineToPoint: CGPointMake(57.71, 28.46)]; - [bezier41Path addLineToPoint: CGPointMake(57.73, 28.36)]; - [bezier41Path addLineToPoint: CGPointMake(57.75, 28.23)]; - [bezier41Path addLineToPoint: CGPointMake(57.77, 28.13)]; - [bezier41Path addLineToPoint: CGPointMake(57.69, 28.13)]; - [bezier41Path closePath]; - bezier41Path.miterLimit = 4; - - bezier41Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier41Path fill]; - - - //// Bezier 42 Drawing - UIBezierPath* bezier42Path = [UIBezierPath bezierPath]; - [bezier42Path moveToPoint: CGPointMake(57.01, 27.56)]; - [bezier42Path addLineToPoint: CGPointMake(57.01, 27.57)]; - [bezier42Path addLineToPoint: CGPointMake(57.14, 27.57)]; - [bezier42Path addLineToPoint: CGPointMake(57.26, 27.61)]; - [bezier42Path addLineToPoint: CGPointMake(57.38, 27.66)]; - [bezier42Path addLineToPoint: CGPointMake(57.48, 27.73)]; - [bezier42Path addLineToPoint: CGPointMake(57.55, 27.81)]; - [bezier42Path addLineToPoint: CGPointMake(57.62, 27.9)]; - [bezier42Path addLineToPoint: CGPointMake(57.67, 28.01)]; - [bezier42Path addLineToPoint: CGPointMake(57.69, 28.13)]; - [bezier42Path addLineToPoint: CGPointMake(57.76, 28.13)]; - [bezier42Path addLineToPoint: CGPointMake(57.74, 28)]; - [bezier42Path addLineToPoint: CGPointMake(57.69, 27.87)]; - [bezier42Path addLineToPoint: CGPointMake(57.61, 27.76)]; - [bezier42Path addLineToPoint: CGPointMake(57.52, 27.67)]; - [bezier42Path addLineToPoint: CGPointMake(57.41, 27.59)]; - [bezier42Path addLineToPoint: CGPointMake(57.29, 27.54)]; - [bezier42Path addLineToPoint: CGPointMake(57.16, 27.51)]; - [bezier42Path addLineToPoint: CGPointMake(57.01, 27.49)]; - [bezier42Path addLineToPoint: CGPointMake(57.01, 27.56)]; - [bezier42Path closePath]; - bezier42Path.miterLimit = 4; - - bezier42Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier42Path fill]; - - - //// Bezier 43 Drawing - UIBezierPath* bezier43Path = [UIBezierPath bezierPath]; - [bezier43Path moveToPoint: CGPointMake(54.57, 27.84)]; - [bezier43Path addLineToPoint: CGPointMake(54.63, 27.87)]; - [bezier43Path addLineToPoint: CGPointMake(54.69, 27.84)]; - [bezier43Path addLineToPoint: CGPointMake(54.76, 27.8)]; - [bezier43Path addLineToPoint: CGPointMake(54.86, 27.77)]; - [bezier43Path addLineToPoint: CGPointMake(54.98, 27.73)]; - [bezier43Path addLineToPoint: CGPointMake(55.12, 27.71)]; - [bezier43Path addLineToPoint: CGPointMake(55.27, 27.68)]; - [bezier43Path addLineToPoint: CGPointMake(55.43, 27.65)]; - [bezier43Path addLineToPoint: CGPointMake(55.6, 27.63)]; - [bezier43Path addLineToPoint: CGPointMake(55.77, 27.6)]; - [bezier43Path addLineToPoint: CGPointMake(55.95, 27.59)]; - [bezier43Path addLineToPoint: CGPointMake(56.14, 27.57)]; - [bezier43Path addLineToPoint: CGPointMake(56.32, 27.56)]; - [bezier43Path addLineToPoint: CGPointMake(56.85, 27.56)]; - [bezier43Path addLineToPoint: CGPointMake(57.01, 27.56)]; - [bezier43Path addLineToPoint: CGPointMake(57.01, 27.49)]; - [bezier43Path addLineToPoint: CGPointMake(56.85, 27.49)]; - [bezier43Path addLineToPoint: CGPointMake(56.68, 27.48)]; - [bezier43Path addLineToPoint: CGPointMake(56.51, 27.48)]; - [bezier43Path addLineToPoint: CGPointMake(56.32, 27.49)]; - [bezier43Path addLineToPoint: CGPointMake(56.14, 27.5)]; - [bezier43Path addLineToPoint: CGPointMake(55.95, 27.52)]; - [bezier43Path addLineToPoint: CGPointMake(55.77, 27.53)]; - [bezier43Path addLineToPoint: CGPointMake(55.6, 27.56)]; - [bezier43Path addLineToPoint: CGPointMake(55.42, 27.58)]; - [bezier43Path addLineToPoint: CGPointMake(55.25, 27.61)]; - [bezier43Path addLineToPoint: CGPointMake(55.11, 27.64)]; - [bezier43Path addLineToPoint: CGPointMake(54.97, 27.67)]; - [bezier43Path addLineToPoint: CGPointMake(54.84, 27.7)]; - [bezier43Path addLineToPoint: CGPointMake(54.74, 27.73)]; - [bezier43Path addLineToPoint: CGPointMake(54.65, 27.77)]; - [bezier43Path addLineToPoint: CGPointMake(54.58, 27.81)]; - [bezier43Path addLineToPoint: CGPointMake(54.64, 27.85)]; - [bezier43Path addLineToPoint: CGPointMake(54.57, 27.84)]; - [bezier43Path closePath]; - bezier43Path.miterLimit = 4; - - bezier43Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier43Path fill]; - - - //// Bezier 44 Drawing - UIBezierPath* bezier44Path = [UIBezierPath bezierPath]; - [bezier44Path moveToPoint: CGPointMake(54.99, 26.44)]; - [bezier44Path addLineToPoint: CGPointMake(54.97, 26.46)]; - [bezier44Path addLineToPoint: CGPointMake(54.57, 27.84)]; - [bezier44Path addLineToPoint: CGPointMake(54.64, 27.85)]; - [bezier44Path addLineToPoint: CGPointMake(55.04, 26.48)]; - [bezier44Path addLineToPoint: CGPointMake(55.02, 26.5)]; - [bezier44Path addLineToPoint: CGPointMake(54.99, 26.44)]; - [bezier44Path addLineToPoint: CGPointMake(54.98, 26.44)]; - [bezier44Path addLineToPoint: CGPointMake(54.97, 26.46)]; - [bezier44Path addLineToPoint: CGPointMake(54.99, 26.44)]; - [bezier44Path closePath]; - bezier44Path.miterLimit = 4; - - bezier44Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier44Path fill]; - - - //// Bezier 45 Drawing - UIBezierPath* bezier45Path = [UIBezierPath bezierPath]; - [bezier45Path moveToPoint: CGPointMake(57.53, 26.17)]; - [bezier45Path addLineToPoint: CGPointMake(57.53, 26.17)]; - [bezier45Path addLineToPoint: CGPointMake(57.33, 26.16)]; - [bezier45Path addLineToPoint: CGPointMake(57.14, 26.16)]; - [bezier45Path addLineToPoint: CGPointMake(56.6, 26.16)]; - [bezier45Path addLineToPoint: CGPointMake(56.44, 26.17)]; - [bezier45Path addLineToPoint: CGPointMake(56.27, 26.17)]; - [bezier45Path addLineToPoint: CGPointMake(56.11, 26.19)]; - [bezier45Path addLineToPoint: CGPointMake(55.96, 26.2)]; - [bezier45Path addLineToPoint: CGPointMake(55.81, 26.22)]; - [bezier45Path addLineToPoint: CGPointMake(55.66, 26.24)]; - [bezier45Path addLineToPoint: CGPointMake(55.52, 26.27)]; - [bezier45Path addLineToPoint: CGPointMake(55.39, 26.3)]; - [bezier45Path addLineToPoint: CGPointMake(55.25, 26.34)]; - [bezier45Path addLineToPoint: CGPointMake(55.12, 26.38)]; - [bezier45Path addLineToPoint: CGPointMake(54.99, 26.44)]; - [bezier45Path addLineToPoint: CGPointMake(55.02, 26.5)]; - [bezier45Path addLineToPoint: CGPointMake(55.14, 26.45)]; - [bezier45Path addLineToPoint: CGPointMake(55.27, 26.41)]; - [bezier45Path addLineToPoint: CGPointMake(55.4, 26.37)]; - [bezier45Path addLineToPoint: CGPointMake(55.53, 26.34)]; - [bezier45Path addLineToPoint: CGPointMake(55.68, 26.31)]; - [bezier45Path addLineToPoint: CGPointMake(55.82, 26.29)]; - [bezier45Path addLineToPoint: CGPointMake(55.96, 26.26)]; - [bezier45Path addLineToPoint: CGPointMake(56.11, 26.25)]; - [bezier45Path addLineToPoint: CGPointMake(56.27, 26.24)]; - [bezier45Path addLineToPoint: CGPointMake(56.44, 26.24)]; - [bezier45Path addLineToPoint: CGPointMake(57.14, 26.24)]; - [bezier45Path addLineToPoint: CGPointMake(57.33, 26.24)]; - [bezier45Path addLineToPoint: CGPointMake(57.53, 26.24)]; - [bezier45Path addLineToPoint: CGPointMake(57.53, 26.17)]; - [bezier45Path closePath]; - bezier45Path.miterLimit = 4; - - bezier45Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier45Path fill]; - - - //// Bezier 46 Drawing - UIBezierPath* bezier46Path = [UIBezierPath bezierPath]; - [bezier46Path moveToPoint: CGPointMake(59.48, 28.1)]; - [bezier46Path addLineToPoint: CGPointMake(59.48, 28.1)]; - [bezier46Path addLineToPoint: CGPointMake(59.51, 27.87)]; - [bezier46Path addLineToPoint: CGPointMake(59.51, 27.65)]; - [bezier46Path addLineToPoint: CGPointMake(59.47, 27.45)]; - [bezier46Path addLineToPoint: CGPointMake(59.41, 27.27)]; - [bezier46Path addLineToPoint: CGPointMake(59.31, 27.09)]; - [bezier46Path addLineToPoint: CGPointMake(59.2, 26.93)]; - [bezier46Path addLineToPoint: CGPointMake(59.06, 26.79)]; - [bezier46Path addLineToPoint: CGPointMake(58.92, 26.66)]; - [bezier46Path addLineToPoint: CGPointMake(58.76, 26.55)]; - [bezier46Path addLineToPoint: CGPointMake(58.59, 26.45)]; - [bezier46Path addLineToPoint: CGPointMake(58.4, 26.37)]; - [bezier46Path addLineToPoint: CGPointMake(58.23, 26.3)]; - [bezier46Path addLineToPoint: CGPointMake(58.04, 26.25)]; - [bezier46Path addLineToPoint: CGPointMake(57.86, 26.21)]; - [bezier46Path addLineToPoint: CGPointMake(57.69, 26.19)]; - [bezier46Path addLineToPoint: CGPointMake(57.53, 26.17)]; - [bezier46Path addLineToPoint: CGPointMake(57.53, 26.24)]; - [bezier46Path addLineToPoint: CGPointMake(57.69, 26.25)]; - [bezier46Path addLineToPoint: CGPointMake(57.85, 26.28)]; - [bezier46Path addLineToPoint: CGPointMake(58.03, 26.32)]; - [bezier46Path addLineToPoint: CGPointMake(58.2, 26.37)]; - [bezier46Path addLineToPoint: CGPointMake(58.38, 26.44)]; - [bezier46Path addLineToPoint: CGPointMake(58.55, 26.52)]; - [bezier46Path addLineToPoint: CGPointMake(58.72, 26.61)]; - [bezier46Path addLineToPoint: CGPointMake(58.88, 26.72)]; - [bezier46Path addLineToPoint: CGPointMake(59.02, 26.85)]; - [bezier46Path addLineToPoint: CGPointMake(59.14, 26.98)]; - [bezier46Path addLineToPoint: CGPointMake(59.26, 27.12)]; - [bezier46Path addLineToPoint: CGPointMake(59.34, 27.29)]; - [bezier46Path addLineToPoint: CGPointMake(59.4, 27.47)]; - [bezier46Path addLineToPoint: CGPointMake(59.44, 27.65)]; - [bezier46Path addLineToPoint: CGPointMake(59.44, 27.87)]; - [bezier46Path addLineToPoint: CGPointMake(59.41, 28.09)]; - [bezier46Path addLineToPoint: CGPointMake(59.48, 28.1)]; - [bezier46Path closePath]; - bezier46Path.miterLimit = 4; - - bezier46Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier46Path fill]; - - - //// Bezier 47 Drawing - UIBezierPath* bezier47Path = [UIBezierPath bezierPath]; - [bezier47Path moveToPoint: CGPointMake(58.88, 31.11)]; - [bezier47Path addLineToPoint: CGPointMake(58.88, 31.11)]; - [bezier47Path addLineToPoint: CGPointMake(59.48, 28.1)]; - [bezier47Path addLineToPoint: CGPointMake(59.41, 28.09)]; - [bezier47Path addLineToPoint: CGPointMake(58.81, 31.1)]; - [bezier47Path addLineToPoint: CGPointMake(58.88, 31.11)]; - [bezier47Path closePath]; - bezier47Path.miterLimit = 4; - - bezier47Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier47Path fill]; - - - //// Bezier 48 Drawing - UIBezierPath* bezier48Path = [UIBezierPath bezierPath]; - [bezier48Path moveToPoint: CGPointMake(57.47, 29.62)]; - [bezier48Path addLineToPoint: CGPointMake(57.46, 29.58)]; - [bezier48Path addLineToPoint: CGPointMake(57.44, 29.56)]; - [bezier48Path addLineToPoint: CGPointMake(57.4, 29.54)]; - [bezier48Path addLineToPoint: CGPointMake(57.34, 29.52)]; - [bezier48Path addLineToPoint: CGPointMake(57.28, 29.52)]; - [bezier48Path addLineToPoint: CGPointMake(57.2, 29.51)]; - [bezier48Path addLineToPoint: CGPointMake(57.12, 29.51)]; - [bezier48Path addLineToPoint: CGPointMake(57.03, 29.52)]; - [bezier48Path addLineToPoint: CGPointMake(56.94, 29.53)]; - [bezier48Path addLineToPoint: CGPointMake(56.85, 29.54)]; - [bezier48Path addLineToPoint: CGPointMake(56.76, 29.55)]; - [bezier48Path addLineToPoint: CGPointMake(56.67, 29.56)]; - [bezier48Path addLineToPoint: CGPointMake(56.59, 29.58)]; - [bezier48Path addLineToPoint: CGPointMake(56.51, 29.59)]; - [bezier48Path addLineToPoint: CGPointMake(56.44, 29.61)]; - [bezier48Path addLineToPoint: CGPointMake(56.38, 29.62)]; - [bezier48Path addLineToPoint: CGPointMake(56.34, 29.62)]; - [bezier48Path addLineToPoint: CGPointMake(56.3, 29.64)]; - [bezier48Path addLineToPoint: CGPointMake(56.24, 29.66)]; - [bezier48Path addLineToPoint: CGPointMake(56.18, 29.68)]; - [bezier48Path addLineToPoint: CGPointMake(56.1, 29.71)]; - [bezier48Path addLineToPoint: CGPointMake(56.03, 29.75)]; - [bezier48Path addLineToPoint: CGPointMake(55.95, 29.79)]; - [bezier48Path addLineToPoint: CGPointMake(55.88, 29.84)]; - [bezier48Path addLineToPoint: CGPointMake(55.81, 29.89)]; - [bezier48Path addLineToPoint: CGPointMake(55.73, 29.95)]; - [bezier48Path addLineToPoint: CGPointMake(55.67, 30.02)]; - [bezier48Path addLineToPoint: CGPointMake(55.61, 30.09)]; - [bezier48Path addLineToPoint: CGPointMake(55.56, 30.17)]; - [bezier48Path addLineToPoint: CGPointMake(55.52, 30.26)]; - [bezier48Path addLineToPoint: CGPointMake(55.48, 30.35)]; - [bezier48Path addLineToPoint: CGPointMake(55.47, 30.44)]; - [bezier48Path addLineToPoint: CGPointMake(55.46, 30.64)]; - [bezier48Path addLineToPoint: CGPointMake(55.49, 30.79)]; - [bezier48Path addLineToPoint: CGPointMake(55.53, 30.9)]; - [bezier48Path addLineToPoint: CGPointMake(55.6, 30.99)]; - [bezier48Path addLineToPoint: CGPointMake(55.69, 31.05)]; - [bezier48Path addLineToPoint: CGPointMake(55.78, 31.08)]; - [bezier48Path addLineToPoint: CGPointMake(55.88, 31.1)]; - [bezier48Path addLineToPoint: CGPointMake(55.98, 31.1)]; - [bezier48Path addLineToPoint: CGPointMake(56.15, 31.1)]; - [bezier48Path addLineToPoint: CGPointMake(56.31, 31.08)]; - [bezier48Path addLineToPoint: CGPointMake(56.46, 31.05)]; - [bezier48Path addLineToPoint: CGPointMake(56.59, 31.01)]; - [bezier48Path addLineToPoint: CGPointMake(56.71, 30.97)]; - [bezier48Path addLineToPoint: CGPointMake(56.82, 30.92)]; - [bezier48Path addLineToPoint: CGPointMake(56.92, 30.86)]; - [bezier48Path addLineToPoint: CGPointMake(57.01, 30.79)]; - [bezier48Path addLineToPoint: CGPointMake(57.09, 30.73)]; - [bezier48Path addLineToPoint: CGPointMake(57.16, 30.65)]; - [bezier48Path addLineToPoint: CGPointMake(57.22, 30.59)]; - [bezier48Path addLineToPoint: CGPointMake(57.28, 30.51)]; - [bezier48Path addLineToPoint: CGPointMake(57.32, 30.44)]; - [bezier48Path addLineToPoint: CGPointMake(57.34, 30.38)]; - [bezier48Path addLineToPoint: CGPointMake(57.37, 30.31)]; - [bezier48Path addLineToPoint: CGPointMake(57.38, 30.24)]; - [bezier48Path addLineToPoint: CGPointMake(57.41, 30.08)]; - [bezier48Path addLineToPoint: CGPointMake(57.44, 29.92)]; - [bezier48Path addLineToPoint: CGPointMake(57.46, 29.76)]; - [bezier48Path addLineToPoint: CGPointMake(57.47, 29.62)]; - [bezier48Path closePath]; - bezier48Path.miterLimit = 4; - - bezier48Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier48Path fill]; - - - //// Bezier 49 Drawing - UIBezierPath* bezier49Path = [UIBezierPath bezierPath]; - [bezier49Path moveToPoint: CGPointMake(59.27, 32.37)]; - [bezier49Path addLineToPoint: CGPointMake(60.88, 32.37)]; - [bezier49Path addLineToPoint: CGPointMake(61.46, 29.13)]; - [bezier49Path addLineToPoint: CGPointMake(61.48, 29)]; - [bezier49Path addLineToPoint: CGPointMake(61.51, 28.88)]; - [bezier49Path addLineToPoint: CGPointMake(61.55, 28.75)]; - [bezier49Path addLineToPoint: CGPointMake(61.59, 28.63)]; - [bezier49Path addLineToPoint: CGPointMake(61.65, 28.5)]; - [bezier49Path addLineToPoint: CGPointMake(61.72, 28.38)]; - [bezier49Path addLineToPoint: CGPointMake(61.79, 28.27)]; - [bezier49Path addLineToPoint: CGPointMake(61.88, 28.16)]; - [bezier49Path addLineToPoint: CGPointMake(61.98, 28.06)]; - [bezier49Path addLineToPoint: CGPointMake(62.1, 27.97)]; - [bezier49Path addLineToPoint: CGPointMake(62.23, 27.89)]; - [bezier49Path addLineToPoint: CGPointMake(62.38, 27.82)]; - [bezier49Path addLineToPoint: CGPointMake(62.54, 27.76)]; - [bezier49Path addLineToPoint: CGPointMake(62.72, 27.72)]; - [bezier49Path addLineToPoint: CGPointMake(62.92, 27.68)]; - [bezier49Path addLineToPoint: CGPointMake(63.15, 27.67)]; - [bezier49Path addLineToPoint: CGPointMake(63.29, 27.67)]; - [bezier49Path addLineToPoint: CGPointMake(63.54, 26.21)]; - [bezier49Path addLineToPoint: CGPointMake(63.38, 26.22)]; - [bezier49Path addLineToPoint: CGPointMake(63.23, 26.24)]; - [bezier49Path addLineToPoint: CGPointMake(63.09, 26.26)]; - [bezier49Path addLineToPoint: CGPointMake(62.95, 26.3)]; - [bezier49Path addLineToPoint: CGPointMake(62.83, 26.35)]; - [bezier49Path addLineToPoint: CGPointMake(62.71, 26.41)]; - [bezier49Path addLineToPoint: CGPointMake(62.59, 26.47)]; - [bezier49Path addLineToPoint: CGPointMake(62.49, 26.54)]; - [bezier49Path addLineToPoint: CGPointMake(62.38, 26.62)]; - [bezier49Path addLineToPoint: CGPointMake(62.29, 26.7)]; - [bezier49Path addLineToPoint: CGPointMake(62.19, 26.79)]; - [bezier49Path addLineToPoint: CGPointMake(62.1, 26.88)]; - [bezier49Path addLineToPoint: CGPointMake(62.02, 26.98)]; - [bezier49Path addLineToPoint: CGPointMake(61.93, 27.08)]; - [bezier49Path addLineToPoint: CGPointMake(61.85, 27.19)]; - [bezier49Path addLineToPoint: CGPointMake(61.77, 27.3)]; - [bezier49Path addLineToPoint: CGPointMake(61.94, 26.27)]; - [bezier49Path addLineToPoint: CGPointMake(60.34, 26.27)]; - [bezier49Path addLineToPoint: CGPointMake(59.27, 32.37)]; - [bezier49Path closePath]; - bezier49Path.miterLimit = 4; - - bezier49Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier49Path fill]; - - - //// Bezier 50 Drawing - UIBezierPath* bezier50Path = [UIBezierPath bezierPath]; - [bezier50Path moveToPoint: CGPointMake(59.27, 32.37)]; - [bezier50Path addLineToPoint: CGPointMake(60.88, 32.37)]; - [bezier50Path addLineToPoint: CGPointMake(61.46, 29.13)]; - [bezier50Path addLineToPoint: CGPointMake(61.48, 29)]; - [bezier50Path addLineToPoint: CGPointMake(61.51, 28.88)]; - [bezier50Path addLineToPoint: CGPointMake(61.55, 28.75)]; - [bezier50Path addLineToPoint: CGPointMake(61.59, 28.63)]; - [bezier50Path addLineToPoint: CGPointMake(61.65, 28.5)]; - [bezier50Path addLineToPoint: CGPointMake(61.72, 28.38)]; - [bezier50Path addLineToPoint: CGPointMake(61.79, 28.27)]; - [bezier50Path addLineToPoint: CGPointMake(61.88, 28.16)]; - [bezier50Path addLineToPoint: CGPointMake(61.98, 28.06)]; - [bezier50Path addLineToPoint: CGPointMake(62.1, 27.97)]; - [bezier50Path addLineToPoint: CGPointMake(62.23, 27.89)]; - [bezier50Path addLineToPoint: CGPointMake(62.38, 27.82)]; - [bezier50Path addLineToPoint: CGPointMake(62.54, 27.76)]; - [bezier50Path addLineToPoint: CGPointMake(62.72, 27.72)]; - [bezier50Path addLineToPoint: CGPointMake(62.92, 27.68)]; - [bezier50Path addLineToPoint: CGPointMake(63.15, 27.67)]; - [bezier50Path addLineToPoint: CGPointMake(63.29, 27.67)]; - [bezier50Path addLineToPoint: CGPointMake(63.54, 26.21)]; - [bezier50Path addLineToPoint: CGPointMake(63.38, 26.22)]; - [bezier50Path addLineToPoint: CGPointMake(63.23, 26.24)]; - [bezier50Path addLineToPoint: CGPointMake(63.09, 26.26)]; - [bezier50Path addLineToPoint: CGPointMake(62.95, 26.3)]; - [bezier50Path addLineToPoint: CGPointMake(62.83, 26.35)]; - [bezier50Path addLineToPoint: CGPointMake(62.71, 26.41)]; - [bezier50Path addLineToPoint: CGPointMake(62.59, 26.47)]; - [bezier50Path addLineToPoint: CGPointMake(62.49, 26.54)]; - [bezier50Path addLineToPoint: CGPointMake(62.38, 26.62)]; - [bezier50Path addLineToPoint: CGPointMake(62.29, 26.7)]; - [bezier50Path addLineToPoint: CGPointMake(62.19, 26.79)]; - [bezier50Path addLineToPoint: CGPointMake(62.1, 26.88)]; - [bezier50Path addLineToPoint: CGPointMake(62.02, 26.98)]; - [bezier50Path addLineToPoint: CGPointMake(61.93, 27.08)]; - [bezier50Path addLineToPoint: CGPointMake(61.85, 27.19)]; - [bezier50Path addLineToPoint: CGPointMake(61.77, 27.3)]; - [bezier50Path addLineToPoint: CGPointMake(61.94, 26.27)]; - [bezier50Path addLineToPoint: CGPointMake(60.34, 26.27)]; - [bezier50Path addLineToPoint: CGPointMake(59.27, 32.37)]; - [bezier50Path closePath]; - bezier50Path.miterLimit = 4; - - bezier50Path.usesEvenOddFillRule = YES; - - [color3 setStroke]; - bezier50Path.lineWidth = 0.5; - [bezier50Path stroke]; - - - //// Bezier 51 Drawing - UIBezierPath* bezier51Path = [UIBezierPath bezierPath]; - [bezier51Path moveToPoint: CGPointMake(44.2, 32.37)]; - [bezier51Path addLineToPoint: CGPointMake(45.83, 32.37)]; - [bezier51Path addLineToPoint: CGPointMake(46.38, 29.13)]; - [bezier51Path addLineToPoint: CGPointMake(46.4, 29)]; - [bezier51Path addLineToPoint: CGPointMake(46.46, 28.76)]; - [bezier51Path addLineToPoint: CGPointMake(46.5, 28.65)]; - [bezier51Path addLineToPoint: CGPointMake(46.54, 28.54)]; - [bezier51Path addLineToPoint: CGPointMake(46.6, 28.43)]; - [bezier51Path addLineToPoint: CGPointMake(46.67, 28.33)]; - [bezier51Path addLineToPoint: CGPointMake(46.75, 28.23)]; - [bezier51Path addLineToPoint: CGPointMake(46.84, 28.14)]; - [bezier51Path addLineToPoint: CGPointMake(46.94, 28.06)]; - [bezier51Path addLineToPoint: CGPointMake(47.07, 27.99)]; - [bezier51Path addLineToPoint: CGPointMake(47.2, 27.93)]; - [bezier51Path addLineToPoint: CGPointMake(47.36, 27.88)]; - [bezier51Path addLineToPoint: CGPointMake(47.54, 27.83)]; - [bezier51Path addLineToPoint: CGPointMake(47.73, 27.8)]; - [bezier51Path addLineToPoint: CGPointMake(47.96, 27.78)]; - [bezier51Path addLineToPoint: CGPointMake(47.97, 27.78)]; - [bezier51Path addLineToPoint: CGPointMake(48, 27.79)]; - [bezier51Path addLineToPoint: CGPointMake(48.02, 27.8)]; - [bezier51Path addLineToPoint: CGPointMake(48.05, 27.8)]; - [bezier51Path addLineToPoint: CGPointMake(48.08, 27.8)]; - [bezier51Path addLineToPoint: CGPointMake(48.1, 27.81)]; - [bezier51Path addLineToPoint: CGPointMake(48.12, 27.81)]; - [bezier51Path addLineToPoint: CGPointMake(48.13, 27.81)]; - [bezier51Path addLineToPoint: CGPointMake(48.13, 27.79)]; - [bezier51Path addLineToPoint: CGPointMake(48.15, 27.72)]; - [bezier51Path addLineToPoint: CGPointMake(48.17, 27.62)]; - [bezier51Path addLineToPoint: CGPointMake(48.2, 27.49)]; - [bezier51Path addLineToPoint: CGPointMake(48.24, 27.35)]; - [bezier51Path addLineToPoint: CGPointMake(48.28, 27.19)]; - [bezier51Path addLineToPoint: CGPointMake(48.33, 27.03)]; - [bezier51Path addLineToPoint: CGPointMake(48.38, 26.87)]; - [bezier51Path addLineToPoint: CGPointMake(48.43, 26.76)]; - [bezier51Path addLineToPoint: CGPointMake(48.49, 26.65)]; - [bezier51Path addLineToPoint: CGPointMake(48.54, 26.54)]; - [bezier51Path addLineToPoint: CGPointMake(48.6, 26.45)]; - [bezier51Path addLineToPoint: CGPointMake(48.65, 26.36)]; - [bezier51Path addLineToPoint: CGPointMake(48.69, 26.29)]; - [bezier51Path addLineToPoint: CGPointMake(48.72, 26.25)]; - [bezier51Path addLineToPoint: CGPointMake(48.73, 26.24)]; - [bezier51Path addLineToPoint: CGPointMake(48.72, 26.24)]; - [bezier51Path addLineToPoint: CGPointMake(48.7, 26.23)]; - [bezier51Path addLineToPoint: CGPointMake(48.67, 26.22)]; - [bezier51Path addLineToPoint: CGPointMake(48.63, 26.22)]; - [bezier51Path addLineToPoint: CGPointMake(48.59, 26.22)]; - [bezier51Path addLineToPoint: CGPointMake(48.55, 26.21)]; - [bezier51Path addLineToPoint: CGPointMake(48.51, 26.21)]; - [bezier51Path addLineToPoint: CGPointMake(48.47, 26.21)]; - [bezier51Path addLineToPoint: CGPointMake(48.29, 26.22)]; - [bezier51Path addLineToPoint: CGPointMake(48.13, 26.24)]; - [bezier51Path addLineToPoint: CGPointMake(47.98, 26.26)]; - [bezier51Path addLineToPoint: CGPointMake(47.85, 26.3)]; - [bezier51Path addLineToPoint: CGPointMake(47.72, 26.34)]; - [bezier51Path addLineToPoint: CGPointMake(47.6, 26.4)]; - [bezier51Path addLineToPoint: CGPointMake(47.49, 26.46)]; - [bezier51Path addLineToPoint: CGPointMake(47.39, 26.53)]; - [bezier51Path addLineToPoint: CGPointMake(47.29, 26.6)]; - [bezier51Path addLineToPoint: CGPointMake(47.2, 26.69)]; - [bezier51Path addLineToPoint: CGPointMake(47.11, 26.77)]; - [bezier51Path addLineToPoint: CGPointMake(47.03, 26.87)]; - [bezier51Path addLineToPoint: CGPointMake(46.94, 26.96)]; - [bezier51Path addLineToPoint: CGPointMake(46.86, 27.07)]; - [bezier51Path addLineToPoint: CGPointMake(46.78, 27.19)]; - [bezier51Path addLineToPoint: CGPointMake(46.69, 27.3)]; - [bezier51Path addLineToPoint: CGPointMake(46.9, 26.27)]; - [bezier51Path addLineToPoint: CGPointMake(45.26, 26.27)]; - [bezier51Path addLineToPoint: CGPointMake(44.2, 32.37)]; - [bezier51Path closePath]; - bezier51Path.miterLimit = 4; - - bezier51Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier51Path fill]; - - - //// Bezier 52 Drawing - UIBezierPath* bezier52Path = [UIBezierPath bezierPath]; - [bezier52Path moveToPoint: CGPointMake(44.2, 32.37)]; - [bezier52Path addLineToPoint: CGPointMake(45.83, 32.37)]; - [bezier52Path addLineToPoint: CGPointMake(46.38, 29.13)]; - [bezier52Path addLineToPoint: CGPointMake(46.4, 29)]; - [bezier52Path addLineToPoint: CGPointMake(46.46, 28.76)]; - [bezier52Path addLineToPoint: CGPointMake(46.5, 28.65)]; - [bezier52Path addLineToPoint: CGPointMake(46.54, 28.54)]; - [bezier52Path addLineToPoint: CGPointMake(46.6, 28.43)]; - [bezier52Path addLineToPoint: CGPointMake(46.67, 28.33)]; - [bezier52Path addLineToPoint: CGPointMake(46.75, 28.23)]; - [bezier52Path addLineToPoint: CGPointMake(46.84, 28.14)]; - [bezier52Path addLineToPoint: CGPointMake(46.94, 28.06)]; - [bezier52Path addLineToPoint: CGPointMake(47.07, 27.99)]; - [bezier52Path addLineToPoint: CGPointMake(47.2, 27.93)]; - [bezier52Path addLineToPoint: CGPointMake(47.36, 27.88)]; - [bezier52Path addLineToPoint: CGPointMake(47.54, 27.83)]; - [bezier52Path addLineToPoint: CGPointMake(47.73, 27.8)]; - [bezier52Path addLineToPoint: CGPointMake(47.96, 27.78)]; - [bezier52Path addLineToPoint: CGPointMake(47.97, 27.78)]; - [bezier52Path addLineToPoint: CGPointMake(48, 27.79)]; - [bezier52Path addLineToPoint: CGPointMake(48.02, 27.8)]; - [bezier52Path addLineToPoint: CGPointMake(48.05, 27.8)]; - [bezier52Path addLineToPoint: CGPointMake(48.08, 27.8)]; - [bezier52Path addLineToPoint: CGPointMake(48.1, 27.81)]; - [bezier52Path addLineToPoint: CGPointMake(48.12, 27.81)]; - [bezier52Path addLineToPoint: CGPointMake(48.13, 27.81)]; - [bezier52Path addLineToPoint: CGPointMake(48.13, 27.79)]; - [bezier52Path addLineToPoint: CGPointMake(48.15, 27.72)]; - [bezier52Path addLineToPoint: CGPointMake(48.17, 27.62)]; - [bezier52Path addLineToPoint: CGPointMake(48.2, 27.49)]; - [bezier52Path addLineToPoint: CGPointMake(48.24, 27.35)]; - [bezier52Path addLineToPoint: CGPointMake(48.28, 27.19)]; - [bezier52Path addLineToPoint: CGPointMake(48.33, 27.03)]; - [bezier52Path addLineToPoint: CGPointMake(48.38, 26.87)]; - [bezier52Path addLineToPoint: CGPointMake(48.43, 26.76)]; - [bezier52Path addLineToPoint: CGPointMake(48.49, 26.65)]; - [bezier52Path addLineToPoint: CGPointMake(48.54, 26.54)]; - [bezier52Path addLineToPoint: CGPointMake(48.6, 26.45)]; - [bezier52Path addLineToPoint: CGPointMake(48.65, 26.36)]; - [bezier52Path addLineToPoint: CGPointMake(48.69, 26.29)]; - [bezier52Path addLineToPoint: CGPointMake(48.72, 26.25)]; - [bezier52Path addLineToPoint: CGPointMake(48.73, 26.24)]; - [bezier52Path addLineToPoint: CGPointMake(48.72, 26.24)]; - [bezier52Path addLineToPoint: CGPointMake(48.7, 26.23)]; - [bezier52Path addLineToPoint: CGPointMake(48.67, 26.22)]; - [bezier52Path addLineToPoint: CGPointMake(48.63, 26.22)]; - [bezier52Path addLineToPoint: CGPointMake(48.59, 26.22)]; - [bezier52Path addLineToPoint: CGPointMake(48.55, 26.21)]; - [bezier52Path addLineToPoint: CGPointMake(48.51, 26.21)]; - [bezier52Path addLineToPoint: CGPointMake(48.47, 26.21)]; - [bezier52Path addLineToPoint: CGPointMake(48.29, 26.22)]; - [bezier52Path addLineToPoint: CGPointMake(48.13, 26.24)]; - [bezier52Path addLineToPoint: CGPointMake(47.98, 26.26)]; - [bezier52Path addLineToPoint: CGPointMake(47.85, 26.3)]; - [bezier52Path addLineToPoint: CGPointMake(47.72, 26.34)]; - [bezier52Path addLineToPoint: CGPointMake(47.6, 26.4)]; - [bezier52Path addLineToPoint: CGPointMake(47.49, 26.46)]; - [bezier52Path addLineToPoint: CGPointMake(47.39, 26.53)]; - [bezier52Path addLineToPoint: CGPointMake(47.29, 26.6)]; - [bezier52Path addLineToPoint: CGPointMake(47.2, 26.69)]; - [bezier52Path addLineToPoint: CGPointMake(47.11, 26.77)]; - [bezier52Path addLineToPoint: CGPointMake(47.03, 26.87)]; - [bezier52Path addLineToPoint: CGPointMake(46.94, 26.96)]; - [bezier52Path addLineToPoint: CGPointMake(46.86, 27.07)]; - [bezier52Path addLineToPoint: CGPointMake(46.78, 27.19)]; - [bezier52Path addLineToPoint: CGPointMake(46.69, 27.3)]; - [bezier52Path addLineToPoint: CGPointMake(46.9, 26.27)]; - [bezier52Path addLineToPoint: CGPointMake(45.26, 26.27)]; - [bezier52Path addLineToPoint: CGPointMake(44.2, 32.37)]; - [bezier52Path closePath]; - bezier52Path.miterLimit = 4; - - bezier52Path.usesEvenOddFillRule = YES; - - [color3 setStroke]; - bezier52Path.lineWidth = 0.5; - [bezier52Path stroke]; - } - } - } -} -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIPayPalMonogramCardView.h b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIPayPalMonogramCardView.h deleted file mode 100644 index 829b5d8..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIPayPalMonogramCardView.h +++ /dev/null @@ -1,5 +0,0 @@ -#import "BTUICardVectorArtView.h" - -@interface BTUIPayPalMonogramCardView : BTUICardVectorArtView - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIPayPalMonogramCardView.m b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIPayPalMonogramCardView.m deleted file mode 100644 index 8067f79..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIPayPalMonogramCardView.m +++ /dev/null @@ -1,147 +0,0 @@ -#import "BTUIPayPalMonogramCardView.h" - -@implementation BTUIPayPalMonogramCardView - -- (void)drawArt { - //// Color Declarations - UIColor* color3 = [UIColor colorWithRed: 0.092 green: 0.106 blue: 0.242 alpha: 1]; - UIColor* color2 = [UIColor colorWithRed: 0.132 green: 0.488 blue: 0.713 alpha: 1]; - UIColor* color1 = [UIColor colorWithRed: 0.115 green: 0.145 blue: 0.34 alpha: 1]; - - //// Page-1 - { - //// PayPal - { - //// pp_m_rgb - { - //// Group-5 - { - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint: CGPointMake(60.96, 32.7)]; - [bezierPath addCurveToPoint: CGPointMake(62.99, 27.37) controlPoint1: CGPointMake(61.89, 31.21) controlPoint2: CGPointMake(62.58, 29.42)]; - [bezierPath addCurveToPoint: CGPointMake(63.2, 22.57) controlPoint1: CGPointMake(63.36, 25.57) controlPoint2: CGPointMake(63.43, 23.95)]; - [bezierPath addCurveToPoint: CGPointMake(61.44, 18.87) controlPoint1: CGPointMake(62.96, 21.11) controlPoint2: CGPointMake(62.36, 19.86)]; - [bezierPath addCurveToPoint: CGPointMake(59.32, 17.31) controlPoint1: CGPointMake(60.89, 18.26) controlPoint2: CGPointMake(60.17, 17.74)]; - [bezierPath addLineToPoint: CGPointMake(59.29, 17.29)]; - [bezierPath addLineToPoint: CGPointMake(59.29, 17.28)]; - [bezierPath addLineToPoint: CGPointMake(59.3, 17.26)]; - [bezierPath addCurveToPoint: CGPointMake(59.26, 12.67) controlPoint1: CGPointMake(59.59, 15.46) controlPoint2: CGPointMake(59.58, 13.96)]; - [bezierPath addCurveToPoint: CGPointMake(57.27, 9.1) controlPoint1: CGPointMake(58.94, 11.37) controlPoint2: CGPointMake(58.29, 10.2)]; - [bezierPath addCurveToPoint: CGPointMake(45.87, 5.66) controlPoint1: CGPointMake(55.17, 6.81) controlPoint2: CGPointMake(51.33, 5.66)]; - [bezierPath addLineToPoint: CGPointMake(30.88, 5.66)]; - [bezierPath addCurveToPoint: CGPointMake(28.81, 7.34) controlPoint1: CGPointMake(29.84, 5.66) controlPoint2: CGPointMake(28.97, 6.36)]; - [bezierPath addLineToPoint: CGPointMake(22.56, 45)]; - [bezierPath addCurveToPoint: CGPointMake(22.85, 45.95) controlPoint1: CGPointMake(22.51, 45.34) controlPoint2: CGPointMake(22.61, 45.69)]; - [bezierPath addCurveToPoint: CGPointMake(23.79, 46.36) controlPoint1: CGPointMake(23.08, 46.21) controlPoint2: CGPointMake(23.43, 46.36)]; - [bezierPath addLineToPoint: CGPointMake(33.1, 46.36)]; - [bezierPath addLineToPoint: CGPointMake(33.09, 46.42)]; - [bezierPath addLineToPoint: CGPointMake(32.45, 50.27)]; - [bezierPath addCurveToPoint: CGPointMake(32.7, 51.09) controlPoint1: CGPointMake(32.4, 50.57) controlPoint2: CGPointMake(32.49, 50.87)]; - [bezierPath addCurveToPoint: CGPointMake(33.52, 51.45) controlPoint1: CGPointMake(32.9, 51.32) controlPoint2: CGPointMake(33.2, 51.45)]; - [bezierPath addLineToPoint: CGPointMake(41.32, 51.45)]; - [bezierPath addCurveToPoint: CGPointMake(43.13, 49.99) controlPoint1: CGPointMake(42.22, 51.45) controlPoint2: CGPointMake(42.98, 50.84)]; - [bezierPath addLineToPoint: CGPointMake(43.2, 49.61)]; - [bezierPath addLineToPoint: CGPointMake(44.67, 40.74)]; - [bezierPath addLineToPoint: CGPointMake(44.77, 40.25)]; - [bezierPath addCurveToPoint: CGPointMake(46.67, 38.71) controlPoint1: CGPointMake(44.92, 39.36) controlPoint2: CGPointMake(45.72, 38.71)]; - [bezierPath addLineToPoint: CGPointMake(47.84, 38.71)]; - [bezierPath addCurveToPoint: CGPointMake(57.6, 36.2) controlPoint1: CGPointMake(51.85, 38.71) controlPoint2: CGPointMake(55.14, 37.86)]; - [bezierPath addCurveToPoint: CGPointMake(60.96, 32.7) controlPoint1: CGPointMake(58.94, 35.29) controlPoint2: CGPointMake(60.07, 34.11)]; - [bezierPath closePath]; - bezierPath.miterLimit = 4; - - bezierPath.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezierPath fill]; - - - //// Bezier 2 Drawing - UIBezierPath* bezier2Path = [UIBezierPath bezierPath]; - [bezier2Path moveToPoint: CGPointMake(37.87, 17.32)]; - [bezier2Path addCurveToPoint: CGPointMake(38.91, 15.98) controlPoint1: CGPointMake(37.97, 16.72) controlPoint2: CGPointMake(38.37, 16.23)]; - [bezier2Path addCurveToPoint: CGPointMake(39.72, 15.81) controlPoint1: CGPointMake(39.16, 15.87) controlPoint2: CGPointMake(39.43, 15.81)]; - [bezier2Path addLineToPoint: CGPointMake(51.48, 15.81)]; - [bezier2Path addCurveToPoint: CGPointMake(55.35, 16.08) controlPoint1: CGPointMake(52.87, 15.81) controlPoint2: CGPointMake(54.17, 15.89)]; - [bezier2Path addCurveToPoint: CGPointMake(56.34, 16.26) controlPoint1: CGPointMake(55.69, 16.13) controlPoint2: CGPointMake(56.02, 16.19)]; - [bezier2Path addCurveToPoint: CGPointMake(57.28, 16.48) controlPoint1: CGPointMake(56.66, 16.32) controlPoint2: CGPointMake(56.97, 16.4)]; - [bezier2Path addCurveToPoint: CGPointMake(57.72, 16.62) controlPoint1: CGPointMake(57.43, 16.53) controlPoint2: CGPointMake(57.57, 16.57)]; - [bezier2Path addCurveToPoint: CGPointMake(59.35, 17.27) controlPoint1: CGPointMake(58.3, 16.8) controlPoint2: CGPointMake(58.85, 17.02)]; - [bezier2Path addCurveToPoint: CGPointMake(57.31, 9.07) controlPoint1: CGPointMake(59.93, 13.7) controlPoint2: CGPointMake(59.34, 11.27)]; - [bezier2Path addCurveToPoint: CGPointMake(45.87, 5.61) controlPoint1: CGPointMake(55.08, 6.65) controlPoint2: CGPointMake(51.04, 5.61)]; - [bezier2Path addLineToPoint: CGPointMake(30.88, 5.61)]; - [bezier2Path addCurveToPoint: CGPointMake(28.76, 7.33) controlPoint1: CGPointMake(29.82, 5.61) controlPoint2: CGPointMake(28.92, 6.34)]; - [bezier2Path addLineToPoint: CGPointMake(22.52, 44.99)]; - [bezier2Path addCurveToPoint: CGPointMake(23.79, 46.41) controlPoint1: CGPointMake(22.39, 45.74) controlPoint2: CGPointMake(23, 46.41)]; - [bezier2Path addLineToPoint: CGPointMake(33.04, 46.41)]; - [bezier2Path addLineToPoint: CGPointMake(37.87, 17.32)]; - [bezier2Path closePath]; - bezier2Path.miterLimit = 4; - - bezier2Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier2Path fill]; - - - //// Bezier 3 Drawing - UIBezierPath* bezier3Path = [UIBezierPath bezierPath]; - [bezier3Path moveToPoint: CGPointMake(59.35, 17.27)]; - [bezier3Path addLineToPoint: CGPointMake(59.35, 17.27)]; - [bezier3Path addCurveToPoint: CGPointMake(59.19, 18.1) controlPoint1: CGPointMake(59.3, 17.54) controlPoint2: CGPointMake(59.25, 17.82)]; - [bezier3Path addCurveToPoint: CGPointMake(41.81, 31.1) controlPoint1: CGPointMake(57.21, 27.76) controlPoint2: CGPointMake(50.45, 31.1)]; - [bezier3Path addLineToPoint: CGPointMake(37.41, 31.1)]; - [bezier3Path addCurveToPoint: CGPointMake(35.3, 32.82) controlPoint1: CGPointMake(36.35, 31.1) controlPoint2: CGPointMake(35.46, 31.83)]; - [bezier3Path addLineToPoint: CGPointMake(32.41, 50.26)]; - [bezier3Path addCurveToPoint: CGPointMake(33.52, 51.5) controlPoint1: CGPointMake(32.3, 50.91) controlPoint2: CGPointMake(32.83, 51.5)]; - [bezier3Path addLineToPoint: CGPointMake(41.32, 51.5)]; - [bezier3Path addCurveToPoint: CGPointMake(43.17, 49.99) controlPoint1: CGPointMake(42.24, 51.5) controlPoint2: CGPointMake(43.03, 50.86)]; - [bezier3Path addLineToPoint: CGPointMake(43.25, 49.62)]; - [bezier3Path addLineToPoint: CGPointMake(44.72, 40.75)]; - [bezier3Path addLineToPoint: CGPointMake(44.82, 40.26)]; - [bezier3Path addCurveToPoint: CGPointMake(46.67, 38.75) controlPoint1: CGPointMake(44.96, 39.39) controlPoint2: CGPointMake(45.75, 38.75)]; - [bezier3Path addLineToPoint: CGPointMake(47.84, 38.75)]; - [bezier3Path addCurveToPoint: CGPointMake(63.04, 27.38) controlPoint1: CGPointMake(55.39, 38.75) controlPoint2: CGPointMake(61.31, 35.83)]; - [bezier3Path addCurveToPoint: CGPointMake(61.48, 18.84) controlPoint1: CGPointMake(63.77, 23.85) controlPoint2: CGPointMake(63.39, 20.91)]; - [bezier3Path addCurveToPoint: CGPointMake(59.35, 17.27) controlPoint1: CGPointMake(60.9, 18.21) controlPoint2: CGPointMake(60.18, 17.69)]; - [bezier3Path closePath]; - bezier3Path.miterLimit = 4; - - bezier3Path.usesEvenOddFillRule = YES; - - [color2 setFill]; - [bezier3Path fill]; - } - - - //// Bezier 4 Drawing - UIBezierPath* bezier4Path = [UIBezierPath bezierPath]; - [bezier4Path moveToPoint: CGPointMake(54.19, 19.56)]; - [bezier4Path addCurveToPoint: CGPointMake(53.5, 19.4) controlPoint1: CGPointMake(53.97, 19.5) controlPoint2: CGPointMake(53.74, 19.45)]; - [bezier4Path addCurveToPoint: CGPointMake(52.76, 19.26) controlPoint1: CGPointMake(53.26, 19.35) controlPoint2: CGPointMake(53.01, 19.3)]; - [bezier4Path addCurveToPoint: CGPointMake(49.88, 19.06) controlPoint1: CGPointMake(51.88, 19.13) controlPoint2: CGPointMake(50.92, 19.06)]; - [bezier4Path addLineToPoint: CGPointMake(41.15, 19.06)]; - [bezier4Path addCurveToPoint: CGPointMake(40.55, 19.19) controlPoint1: CGPointMake(40.94, 19.06) controlPoint2: CGPointMake(40.73, 19.11)]; - [bezier4Path addCurveToPoint: CGPointMake(39.77, 20.18) controlPoint1: CGPointMake(40.15, 19.38) controlPoint2: CGPointMake(39.85, 19.74)]; - [bezier4Path addLineToPoint: CGPointMake(37.92, 31.39)]; - [bezier4Path addLineToPoint: CGPointMake(37.86, 31.71)]; - [bezier4Path addCurveToPoint: CGPointMake(39.43, 30.43) controlPoint1: CGPointMake(37.99, 30.98) controlPoint2: CGPointMake(38.65, 30.43)]; - [bezier4Path addLineToPoint: CGPointMake(42.7, 30.43)]; - [bezier4Path addCurveToPoint: CGPointMake(55.61, 20.77) controlPoint1: CGPointMake(49.12, 30.43) controlPoint2: CGPointMake(54.15, 27.95)]; - [bezier4Path addCurveToPoint: CGPointMake(55.73, 20.15) controlPoint1: CGPointMake(55.66, 20.56) controlPoint2: CGPointMake(55.69, 20.35)]; - [bezier4Path addCurveToPoint: CGPointMake(54.52, 19.66) controlPoint1: CGPointMake(55.36, 19.96) controlPoint2: CGPointMake(54.95, 19.8)]; - [bezier4Path addCurveToPoint: CGPointMake(54.19, 19.56) controlPoint1: CGPointMake(54.41, 19.63) controlPoint2: CGPointMake(54.3, 19.6)]; - [bezier4Path closePath]; - bezier4Path.miterLimit = 4; - - bezier4Path.usesEvenOddFillRule = YES; - - [color3 setFill]; - [bezier4Path fill]; - } - } - } -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIPayPalWordmarkVectorArtView.h b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIPayPalWordmarkVectorArtView.h deleted file mode 100644 index 56f4fbb..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIPayPalWordmarkVectorArtView.h +++ /dev/null @@ -1,24 +0,0 @@ -#import -#import "BTUIVectorArtView.h" - -@class BTUI; - -@interface BTUIPayPalWordmarkVectorArtView : BTUIVectorArtView - -@property (nonatomic, strong) BTUI *theme; - -/// Initializes a PayPal Wordmark with padding -/// -/// This view includes built-in padding to ensure consistent typographical baseline alignment with Venmo and Coinbase wordmarks. -/// -/// @return A PayPal Wordmark with padding -- (BTUIPayPalWordmarkVectorArtView *)initWithPadding; - -/// Initializes a PayPal Wordmark -/// -/// This view does not include built-in padding. -/// -/// @return A PayPal Wordmark -- (BTUIPayPalWordmarkVectorArtView *)init; - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIPayPalWordmarkVectorArtView.m b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIPayPalWordmarkVectorArtView.m deleted file mode 100644 index a2a20b7..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIPayPalWordmarkVectorArtView.m +++ /dev/null @@ -1,395 +0,0 @@ -#import "BTUIPayPalWordmarkVectorArtView.h" -#import "BTUI.h" - -@interface BTUIPayPalWordmarkVectorArtView () -@property (nonatomic, assign) BOOL includePadding; -@end - -@implementation BTUIPayPalWordmarkVectorArtView - -- (BTUIPayPalWordmarkVectorArtView *)initWithPadding { - self = [super init]; - if (self) { - self.includePadding = YES; - [self setupWithArtDimensions:CGSizeMake(158, 88)]; - } - return self; -} - -- (BTUIPayPalWordmarkVectorArtView *)init { - self = [super init]; - if (self) { - [self setupWithArtDimensions:CGSizeMake(284.0f, 80.0f)]; - } - return self; -} - -- (void)setupWithArtDimensions:(CGSize)artDimensions { - self.artDimensions = artDimensions; - self.opaque = NO; - self.theme = [BTUI braintreeTheme]; -} - -- (void)drawArt -{ - if (self.includePadding) { - //// Color Declarations - UIColor* payColor = [self.theme payBlue]; //[UIColor colorWithRed: 0.005 green: 0.123 blue: 0.454 alpha: 1]; - UIColor* palColor = [self.theme palBlue]; //[UIColor colorWithRed: 0.066 green: 0.536 blue: 0.839 alpha: 1]; - - //// Assets - { - //// button-paypal - { - //// Rectangle Drawing - - - //// logo/paypal - { - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint: CGPointMake(102.29, 34.76)]; - [bezierPath addCurveToPoint: CGPointMake(96.25, 38.4) controlPoint1: CGPointMake(101.73, 38.4) controlPoint2: CGPointMake(98.95, 38.4)]; - [bezierPath addLineToPoint: CGPointMake(94.72, 38.4)]; - [bezierPath addLineToPoint: CGPointMake(95.8, 31.6)]; - [bezierPath addCurveToPoint: CGPointMake(96.63, 30.89) controlPoint1: CGPointMake(95.86, 31.19) controlPoint2: CGPointMake(96.22, 30.89)]; - [bezierPath addLineToPoint: CGPointMake(97.33, 30.89)]; - [bezierPath addCurveToPoint: CGPointMake(101.79, 31.93) controlPoint1: CGPointMake(99.17, 30.89) controlPoint2: CGPointMake(100.9, 30.89)]; - [bezierPath addCurveToPoint: CGPointMake(102.29, 34.76) controlPoint1: CGPointMake(102.33, 32.55) controlPoint2: CGPointMake(102.49, 33.48)]; - [bezierPath addLineToPoint: CGPointMake(102.29, 34.76)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(91, 25)]; - [bezierPath addCurveToPoint: CGPointMake(89.56, 26.45) controlPoint1: CGPointMake(90.31, 25) controlPoint2: CGPointMake(89.67, 25.76)]; - [bezierPath addLineToPoint: CGPointMake(85.5, 53)]; - [bezierPath addCurveToPoint: CGPointMake(86.5, 54) controlPoint1: CGPointMake(85.42, 53.51) controlPoint2: CGPointMake(85.98, 54)]; - [bezierPath addLineToPoint: CGPointMake(91.5, 54)]; - [bezierPath addCurveToPoint: CGPointMake(92.5, 53) controlPoint1: CGPointMake(91.99, 54) controlPoint2: CGPointMake(92.42, 53.48)]; - [bezierPath addLineToPoint: CGPointMake(93.64, 45.22)]; - [bezierPath addCurveToPoint: CGPointMake(95.04, 44.03) controlPoint1: CGPointMake(93.75, 44.54) controlPoint2: CGPointMake(94.34, 44.03)]; - [bezierPath addLineToPoint: CGPointMake(98.25, 44.03)]; - [bezierPath addCurveToPoint: CGPointMake(109.81, 34.4) controlPoint1: CGPointMake(104.94, 44.03) controlPoint2: CGPointMake(108.8, 40.8)]; - [bezierPath addCurveToPoint: CGPointMake(108.52, 27.85) controlPoint1: CGPointMake(110.27, 31.59) controlPoint2: CGPointMake(109.83, 29.39)]; - [bezierPath addCurveToPoint: CGPointMake(101, 25) controlPoint1: CGPointMake(107.07, 26.16) controlPoint2: CGPointMake(104.4, 25)]; - [bezierPath addLineToPoint: CGPointMake(91, 25)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(123.7, 44.09)]; - [bezierPath addCurveToPoint: CGPointMake(118.21, 48.73) controlPoint1: CGPointMake(123.22, 46.87) controlPoint2: CGPointMake(121.02, 48.73)]; - [bezierPath addCurveToPoint: CGPointMake(114.94, 47.42) controlPoint1: CGPointMake(116.79, 48.73) controlPoint2: CGPointMake(115.67, 48.28)]; - [bezierPath addCurveToPoint: CGPointMake(114.18, 44.01) controlPoint1: CGPointMake(114.22, 46.57) controlPoint2: CGPointMake(113.95, 45.36)]; - [bezierPath addCurveToPoint: CGPointMake(119.63, 39.33) controlPoint1: CGPointMake(114.61, 41.26) controlPoint2: CGPointMake(116.86, 39.33)]; - [bezierPath addCurveToPoint: CGPointMake(122.87, 40.66) controlPoint1: CGPointMake(121.01, 39.33) controlPoint2: CGPointMake(122.13, 39.79)]; - [bezierPath addCurveToPoint: CGPointMake(123.7, 44.09) controlPoint1: CGPointMake(123.62, 41.53) controlPoint2: CGPointMake(123.91, 42.75)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(131.15, 34.46)]; - [bezierPath addLineToPoint: CGPointMake(126.25, 34.46)]; - [bezierPath addCurveToPoint: CGPointMake(125.41, 35.19) controlPoint1: CGPointMake(125.83, 34.46) controlPoint2: CGPointMake(125.48, 34.77)]; - [bezierPath addLineToPoint: CGPointMake(125.2, 36.57)]; - [bezierPath addLineToPoint: CGPointMake(124.85, 36.07)]; - [bezierPath addCurveToPoint: CGPointMake(119.07, 34) controlPoint1: CGPointMake(123.79, 34.52) controlPoint2: CGPointMake(121.43, 34)]; - [bezierPath addCurveToPoint: CGPointMake(108.15, 43.92) controlPoint1: CGPointMake(113.67, 34) controlPoint2: CGPointMake(109.05, 38.13)]; - [bezierPath addCurveToPoint: CGPointMake(109.97, 51.49) controlPoint1: CGPointMake(107.68, 46.81) controlPoint2: CGPointMake(108.34, 49.57)]; - [bezierPath addCurveToPoint: CGPointMake(116.13, 54) controlPoint1: CGPointMake(111.46, 53.26) controlPoint2: CGPointMake(113.59, 54)]; - [bezierPath addCurveToPoint: CGPointMake(122.91, 51.18) controlPoint1: CGPointMake(120.49, 54) controlPoint2: CGPointMake(122.91, 51.18)]; - [bezierPath addLineToPoint: CGPointMake(122.69, 52.55)]; - [bezierPath addCurveToPoint: CGPointMake(123.53, 53.54) controlPoint1: CGPointMake(122.61, 53.07) controlPoint2: CGPointMake(123.01, 53.54)]; - [bezierPath addLineToPoint: CGPointMake(127.94, 53.54)]; - [bezierPath addCurveToPoint: CGPointMake(129.34, 52.33) controlPoint1: CGPointMake(128.64, 53.54) controlPoint2: CGPointMake(129.23, 53.03)]; - [bezierPath addLineToPoint: CGPointMake(131.99, 35.46)]; - [bezierPath addCurveToPoint: CGPointMake(131.15, 34.46) controlPoint1: CGPointMake(132.07, 34.94) controlPoint2: CGPointMake(131.67, 34.46)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(137, 27)]; - [bezierPath addLineToPoint: CGPointMake(133, 53)]; - [bezierPath addCurveToPoint: CGPointMake(134, 54) controlPoint1: CGPointMake(132.93, 53.54) controlPoint2: CGPointMake(133.34, 54)]; - [bezierPath addLineToPoint: CGPointMake(138, 54)]; - [bezierPath addCurveToPoint: CGPointMake(140, 53) controlPoint1: CGPointMake(138.98, 54) controlPoint2: CGPointMake(139.59, 53.5)]; - [bezierPath addLineToPoint: CGPointMake(144, 27)]; - [bezierPath addCurveToPoint: CGPointMake(143, 26) controlPoint1: CGPointMake(144.07, 26.46) controlPoint2: CGPointMake(143.66, 26)]; - [bezierPath addLineToPoint: CGPointMake(138, 26)]; - [bezierPath addCurveToPoint: CGPointMake(137, 27) controlPoint1: CGPointMake(137.79, 26) controlPoint2: CGPointMake(137.42, 26.3)]; - [bezierPath closePath]; - bezierPath.miterLimit = 4; - - bezierPath.usesEvenOddFillRule = YES; - - [palColor setFill]; - [bezierPath fill]; - - - //// Bezier 2 Drawing - UIBezierPath* bezier2Path = [UIBezierPath bezierPath]; - [bezier2Path moveToPoint: CGPointMake(29.84, 34.76)]; - [bezier2Path addCurveToPoint: CGPointMake(23.81, 38.4) controlPoint1: CGPointMake(29.29, 38.4) controlPoint2: CGPointMake(26.5, 38.4)]; - [bezier2Path addLineToPoint: CGPointMake(22.28, 38.4)]; - [bezier2Path addLineToPoint: CGPointMake(23.35, 31.6)]; - [bezier2Path addCurveToPoint: CGPointMake(24.19, 30.89) controlPoint1: CGPointMake(23.42, 31.19) controlPoint2: CGPointMake(23.77, 30.89)]; - [bezier2Path addLineToPoint: CGPointMake(24.89, 30.89)]; - [bezier2Path addCurveToPoint: CGPointMake(29.35, 31.93) controlPoint1: CGPointMake(26.72, 30.89) controlPoint2: CGPointMake(28.45, 30.89)]; - [bezier2Path addCurveToPoint: CGPointMake(29.84, 34.76) controlPoint1: CGPointMake(29.88, 32.55) controlPoint2: CGPointMake(30.04, 33.48)]; - [bezier2Path addLineToPoint: CGPointMake(29.84, 34.76)]; - [bezier2Path closePath]; - [bezier2Path moveToPoint: CGPointMake(18.5, 25)]; - [bezier2Path addCurveToPoint: CGPointMake(17, 26.5) controlPoint1: CGPointMake(17.81, 25) controlPoint2: CGPointMake(17.11, 25.82)]; - [bezier2Path addLineToPoint: CGPointMake(13, 53)]; - [bezier2Path addCurveToPoint: CGPointMake(14, 54) controlPoint1: CGPointMake(12.92, 53.51) controlPoint2: CGPointMake(13.48, 54)]; - [bezier2Path addLineToPoint: CGPointMake(18.5, 54)]; - [bezier2Path addCurveToPoint: CGPointMake(20, 52.5) controlPoint1: CGPointMake(19.19, 54) controlPoint2: CGPointMake(19.89, 53.18)]; - [bezier2Path addLineToPoint: CGPointMake(21.2, 45.22)]; - [bezier2Path addCurveToPoint: CGPointMake(22.59, 44.03) controlPoint1: CGPointMake(21.31, 44.54) controlPoint2: CGPointMake(21.9, 44.03)]; - [bezier2Path addLineToPoint: CGPointMake(25.81, 44.03)]; - [bezier2Path addCurveToPoint: CGPointMake(37.37, 34.4) controlPoint1: CGPointMake(32.5, 44.03) controlPoint2: CGPointMake(36.36, 40.8)]; - [bezier2Path addCurveToPoint: CGPointMake(36.07, 27.85) controlPoint1: CGPointMake(37.82, 31.59) controlPoint2: CGPointMake(37.39, 29.39)]; - [bezier2Path addCurveToPoint: CGPointMake(28.5, 25) controlPoint1: CGPointMake(34.63, 26.16) controlPoint2: CGPointMake(31.9, 25)]; - [bezier2Path addLineToPoint: CGPointMake(18.5, 25)]; - [bezier2Path closePath]; - [bezier2Path moveToPoint: CGPointMake(52.25, 44.09)]; - [bezier2Path addCurveToPoint: CGPointMake(46.76, 48.73) controlPoint1: CGPointMake(51.78, 46.87) controlPoint2: CGPointMake(49.57, 48.73)]; - [bezier2Path addCurveToPoint: CGPointMake(43.49, 47.42) controlPoint1: CGPointMake(45.35, 48.73) controlPoint2: CGPointMake(44.22, 48.28)]; - [bezier2Path addCurveToPoint: CGPointMake(42.73, 44.01) controlPoint1: CGPointMake(42.77, 46.57) controlPoint2: CGPointMake(42.5, 45.36)]; - [bezier2Path addCurveToPoint: CGPointMake(48.18, 39.33) controlPoint1: CGPointMake(43.17, 41.26) controlPoint2: CGPointMake(45.41, 39.33)]; - [bezier2Path addCurveToPoint: CGPointMake(51.42, 40.66) controlPoint1: CGPointMake(49.56, 39.33) controlPoint2: CGPointMake(50.69, 39.79)]; - [bezier2Path addCurveToPoint: CGPointMake(52.25, 44.09) controlPoint1: CGPointMake(52.17, 41.53) controlPoint2: CGPointMake(52.46, 42.75)]; - [bezier2Path closePath]; - [bezier2Path moveToPoint: CGPointMake(54.5, 34)]; - [bezier2Path addCurveToPoint: CGPointMake(53.5, 35) controlPoint1: CGPointMake(54.08, 34) controlPoint2: CGPointMake(53.56, 34.58)]; - [bezier2Path addLineToPoint: CGPointMake(53.2, 36.57)]; - [bezier2Path addLineToPoint: CGPointMake(52.85, 36.07)]; - [bezier2Path addCurveToPoint: CGPointMake(47.07, 34) controlPoint1: CGPointMake(51.79, 34.52) controlPoint2: CGPointMake(49.43, 34)]; - [bezier2Path addCurveToPoint: CGPointMake(36.15, 43.92) controlPoint1: CGPointMake(41.67, 34) controlPoint2: CGPointMake(37.05, 38.13)]; - [bezier2Path addCurveToPoint: CGPointMake(37.97, 51.49) controlPoint1: CGPointMake(35.68, 46.81) controlPoint2: CGPointMake(36.34, 49.57)]; - [bezier2Path addCurveToPoint: CGPointMake(44.13, 54) controlPoint1: CGPointMake(39.46, 53.26) controlPoint2: CGPointMake(41.59, 54)]; - [bezier2Path addCurveToPoint: CGPointMake(50.91, 51.18) controlPoint1: CGPointMake(48.49, 54) controlPoint2: CGPointMake(50.91, 51.18)]; - [bezier2Path addLineToPoint: CGPointMake(50.5, 53)]; - [bezier2Path addCurveToPoint: CGPointMake(51.5, 54) controlPoint1: CGPointMake(50.42, 53.52) controlPoint2: CGPointMake(50.98, 54)]; - [bezier2Path addLineToPoint: CGPointMake(56, 54)]; - [bezier2Path addCurveToPoint: CGPointMake(57.5, 52.5) controlPoint1: CGPointMake(56.7, 54) controlPoint2: CGPointMake(57.39, 53.2)]; - [bezier2Path addLineToPoint: CGPointMake(60, 35)]; - [bezier2Path addCurveToPoint: CGPointMake(59, 34) controlPoint1: CGPointMake(60.08, 34.48) controlPoint2: CGPointMake(59.52, 34)]; - [bezier2Path addLineToPoint: CGPointMake(54.5, 34)]; - [bezier2Path closePath]; - [bezier2Path moveToPoint: CGPointMake(80, 34)]; - [bezier2Path addCurveToPoint: CGPointMake(79, 35.04) controlPoint1: CGPointMake(79.67, 34) controlPoint2: CGPointMake(79.22, 34.24)]; - [bezier2Path addLineToPoint: CGPointMake(72, 44.4)]; - [bezier2Path addLineToPoint: CGPointMake(69, 35.04)]; - [bezier2Path addCurveToPoint: CGPointMake(68, 34) controlPoint1: CGPointMake(68.97, 34.42) controlPoint2: CGPointMake(68.41, 34)]; - [bezier2Path addLineToPoint: CGPointMake(63, 34)]; - [bezier2Path addCurveToPoint: CGPointMake(62, 35.04) controlPoint1: CGPointMake(62.27, 34) controlPoint2: CGPointMake(61.86, 34.58)]; - [bezier2Path addLineToPoint: CGPointMake(68, 51.68)]; - [bezier2Path addLineToPoint: CGPointMake(62, 58.96)]; - [bezier2Path addCurveToPoint: CGPointMake(63, 60) controlPoint1: CGPointMake(61.97, 59.21) controlPoint2: CGPointMake(62.38, 60)]; - [bezier2Path addLineToPoint: CGPointMake(68, 60)]; - [bezier2Path addCurveToPoint: CGPointMake(69, 58.96) controlPoint1: CGPointMake(68.54, 60) controlPoint2: CGPointMake(68.98, 59.77)]; - [bezier2Path addLineToPoint: CGPointMake(86, 35.04)]; - [bezier2Path addCurveToPoint: CGPointMake(85, 34) controlPoint1: CGPointMake(86.24, 34.79) controlPoint2: CGPointMake(85.83, 34)]; - [bezier2Path addLineToPoint: CGPointMake(80, 34)]; - [bezier2Path closePath]; - bezier2Path.miterLimit = 4; - - bezier2Path.usesEvenOddFillRule = YES; - - [payColor setFill]; - [bezier2Path fill]; - } - } - } - } else { - //// Color Declarations - UIColor* color0 = [self.theme palBlue]; - UIColor* color1 = [self.theme payBlue]; - - //// PayPal - { - //// Group 2 - { - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint: CGPointMake(189.07, 1.49)]; - [bezierPath addLineToPoint: CGPointMake(167.92, 1.49)]; - [bezierPath addCurveToPoint: CGPointMake(165.02, 3.97) controlPoint1: CGPointMake(166.48, 1.49) controlPoint2: CGPointMake(165.24, 2.54)]; - [bezierPath addLineToPoint: CGPointMake(156.47, 58.2)]; - [bezierPath addCurveToPoint: CGPointMake(158.21, 60.24) controlPoint1: CGPointMake(156.3, 59.27) controlPoint2: CGPointMake(157.12, 60.24)]; - [bezierPath addLineToPoint: CGPointMake(169.06, 60.24)]; - [bezierPath addCurveToPoint: CGPointMake(171.09, 58.5) controlPoint1: CGPointMake(170.07, 60.24) controlPoint2: CGPointMake(170.93, 59.5)]; - [bezierPath addLineToPoint: CGPointMake(173.52, 43.13)]; - [bezierPath addCurveToPoint: CGPointMake(176.42, 40.65) controlPoint1: CGPointMake(173.74, 41.7) controlPoint2: CGPointMake(174.97, 40.65)]; - [bezierPath addLineToPoint: CGPointMake(183.11, 40.65)]; - [bezierPath addCurveToPoint: CGPointMake(207.18, 20.54) controlPoint1: CGPointMake(197.04, 40.65) controlPoint2: CGPointMake(205.08, 33.91)]; - [bezierPath addCurveToPoint: CGPointMake(204.49, 6.89) controlPoint1: CGPointMake(208.13, 14.7) controlPoint2: CGPointMake(207.22, 10.11)]; - [bezierPath addCurveToPoint: CGPointMake(189.07, 1.49) controlPoint1: CGPointMake(201.48, 3.36) controlPoint2: CGPointMake(196.15, 1.49)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(191.51, 21.3)]; - [bezierPath addCurveToPoint: CGPointMake(178.95, 28.89) controlPoint1: CGPointMake(190.36, 28.89) controlPoint2: CGPointMake(184.56, 28.89)]; - [bezierPath addLineToPoint: CGPointMake(175.76, 28.89)]; - [bezierPath addLineToPoint: CGPointMake(178, 14.71)]; - [bezierPath addCurveToPoint: CGPointMake(179.74, 13.23) controlPoint1: CGPointMake(178.13, 13.86) controlPoint2: CGPointMake(178.87, 13.23)]; - [bezierPath addLineToPoint: CGPointMake(181.2, 13.23)]; - [bezierPath addCurveToPoint: CGPointMake(190.48, 15.4) controlPoint1: CGPointMake(185.02, 13.23) controlPoint2: CGPointMake(188.62, 13.23)]; - [bezierPath addCurveToPoint: CGPointMake(191.51, 21.3) controlPoint1: CGPointMake(191.6, 16.7) controlPoint2: CGPointMake(191.93, 18.63)]; - [bezierPath closePath]; - bezierPath.miterLimit = 4; - - [color0 setFill]; - [bezierPath fill]; - - - //// Bezier 2 Drawing - UIBezierPath* bezier2Path = [UIBezierPath bezierPath]; - [bezier2Path moveToPoint: CGPointMake(38.22, 1.49)]; - [bezier2Path addLineToPoint: CGPointMake(17.07, 1.49)]; - [bezier2Path addCurveToPoint: CGPointMake(14.17, 3.97) controlPoint1: CGPointMake(15.62, 1.49) controlPoint2: CGPointMake(14.39, 2.54)]; - [bezier2Path addLineToPoint: CGPointMake(5.61, 58.2)]; - [bezier2Path addCurveToPoint: CGPointMake(7.36, 60.24) controlPoint1: CGPointMake(5.45, 59.27) controlPoint2: CGPointMake(6.27, 60.24)]; - [bezier2Path addLineToPoint: CGPointMake(17.45, 60.24)]; - [bezier2Path addCurveToPoint: CGPointMake(20.36, 57.76) controlPoint1: CGPointMake(18.9, 60.24) controlPoint2: CGPointMake(20.13, 59.19)]; - [bezier2Path addLineToPoint: CGPointMake(22.67, 43.13)]; - [bezier2Path addCurveToPoint: CGPointMake(25.57, 40.65) controlPoint1: CGPointMake(22.89, 41.7) controlPoint2: CGPointMake(24.12, 40.65)]; - [bezier2Path addLineToPoint: CGPointMake(32.26, 40.65)]; - [bezier2Path addCurveToPoint: CGPointMake(56.33, 20.54) controlPoint1: CGPointMake(46.19, 40.65) controlPoint2: CGPointMake(54.23, 33.91)]; - [bezier2Path addCurveToPoint: CGPointMake(53.64, 6.89) controlPoint1: CGPointMake(57.28, 14.7) controlPoint2: CGPointMake(56.37, 10.11)]; - [bezier2Path addCurveToPoint: CGPointMake(38.22, 1.49) controlPoint1: CGPointMake(50.63, 3.36) controlPoint2: CGPointMake(45.3, 1.49)]; - [bezier2Path closePath]; - [bezier2Path moveToPoint: CGPointMake(40.66, 21.3)]; - [bezier2Path addCurveToPoint: CGPointMake(28.1, 28.89) controlPoint1: CGPointMake(39.51, 28.89) controlPoint2: CGPointMake(33.71, 28.89)]; - [bezier2Path addLineToPoint: CGPointMake(24.91, 28.89)]; - [bezier2Path addLineToPoint: CGPointMake(27.15, 14.71)]; - [bezier2Path addCurveToPoint: CGPointMake(28.89, 13.23) controlPoint1: CGPointMake(27.28, 13.86) controlPoint2: CGPointMake(28.02, 13.23)]; - [bezier2Path addLineToPoint: CGPointMake(30.35, 13.23)]; - [bezier2Path addCurveToPoint: CGPointMake(39.63, 15.4) controlPoint1: CGPointMake(34.17, 13.23) controlPoint2: CGPointMake(37.77, 13.23)]; - [bezier2Path addCurveToPoint: CGPointMake(40.66, 21.3) controlPoint1: CGPointMake(40.74, 16.7) controlPoint2: CGPointMake(41.08, 18.63)]; - [bezier2Path closePath]; - bezier2Path.miterLimit = 4; - - [color1 setFill]; - [bezier2Path fill]; - - - //// Bezier 3 Drawing - UIBezierPath* bezier3Path = [UIBezierPath bezierPath]; - [bezier3Path moveToPoint: CGPointMake(101.44, 21.06)]; - [bezier3Path addLineToPoint: CGPointMake(91.31, 21.06)]; - [bezier3Path addCurveToPoint: CGPointMake(89.57, 22.54) controlPoint1: CGPointMake(90.44, 21.06) controlPoint2: CGPointMake(89.7, 21.69)]; - [bezier3Path addLineToPoint: CGPointMake(89.12, 25.38)]; - [bezier3Path addLineToPoint: CGPointMake(88.41, 24.35)]; - [bezier3Path addCurveToPoint: CGPointMake(76.45, 20.1) controlPoint1: CGPointMake(86.22, 21.17) controlPoint2: CGPointMake(81.33, 20.1)]; - [bezier3Path addCurveToPoint: CGPointMake(53.85, 40.47) controlPoint1: CGPointMake(65.26, 20.1) controlPoint2: CGPointMake(55.71, 28.58)]; - [bezier3Path addCurveToPoint: CGPointMake(57.62, 56.03) controlPoint1: CGPointMake(52.88, 46.41) controlPoint2: CGPointMake(54.25, 52.08)]; - [bezier3Path addCurveToPoint: CGPointMake(70.37, 61.18) controlPoint1: CGPointMake(60.71, 59.67) controlPoint2: CGPointMake(65.12, 61.18)]; - [bezier3Path addCurveToPoint: CGPointMake(84.39, 55.39) controlPoint1: CGPointMake(79.39, 61.18) controlPoint2: CGPointMake(84.39, 55.39)]; - [bezier3Path addLineToPoint: CGPointMake(83.94, 58.2)]; - [bezier3Path addCurveToPoint: CGPointMake(85.68, 60.24) controlPoint1: CGPointMake(83.77, 59.27) controlPoint2: CGPointMake(84.6, 60.24)]; - [bezier3Path addLineToPoint: CGPointMake(94.8, 60.24)]; - [bezier3Path addCurveToPoint: CGPointMake(97.7, 57.76) controlPoint1: CGPointMake(96.25, 60.24) controlPoint2: CGPointMake(97.48, 59.19)]; - [bezier3Path addLineToPoint: CGPointMake(103.18, 23.09)]; - [bezier3Path addCurveToPoint: CGPointMake(101.44, 21.06) controlPoint1: CGPointMake(103.35, 22.02) controlPoint2: CGPointMake(102.52, 21.06)]; - [bezier3Path closePath]; - [bezier3Path moveToPoint: CGPointMake(87.32, 40.77)]; - [bezier3Path addCurveToPoint: CGPointMake(75.89, 50.44) controlPoint1: CGPointMake(86.34, 46.55) controlPoint2: CGPointMake(81.75, 50.44)]; - [bezier3Path addCurveToPoint: CGPointMake(69.09, 47.71) controlPoint1: CGPointMake(72.95, 50.44) controlPoint2: CGPointMake(70.6, 49.49)]; - [bezier3Path addCurveToPoint: CGPointMake(67.5, 40.59) controlPoint1: CGPointMake(67.59, 45.93) controlPoint2: CGPointMake(67.03, 43.4)]; - [bezier3Path addCurveToPoint: CGPointMake(78.85, 30.85) controlPoint1: CGPointMake(68.42, 34.86) controlPoint2: CGPointMake(73.08, 30.85)]; - [bezier3Path addCurveToPoint: CGPointMake(85.61, 33.61) controlPoint1: CGPointMake(81.73, 30.85) controlPoint2: CGPointMake(84.07, 31.8)]; - [bezier3Path addCurveToPoint: CGPointMake(87.32, 40.77) controlPoint1: CGPointMake(87.16, 35.42) controlPoint2: CGPointMake(87.77, 37.97)]; - [bezier3Path closePath]; - bezier3Path.miterLimit = 4; - - [color1 setFill]; - [bezier3Path fill]; - - - //// Bezier 4 Drawing - UIBezierPath* bezier4Path = [UIBezierPath bezierPath]; - [bezier4Path moveToPoint: CGPointMake(252.29, 21.06)]; - [bezier4Path addLineToPoint: CGPointMake(242.16, 21.06)]; - [bezier4Path addCurveToPoint: CGPointMake(240.42, 22.54) controlPoint1: CGPointMake(241.29, 21.06) controlPoint2: CGPointMake(240.55, 21.69)]; - [bezier4Path addLineToPoint: CGPointMake(239.97, 25.38)]; - [bezier4Path addLineToPoint: CGPointMake(239.27, 24.35)]; - [bezier4Path addCurveToPoint: CGPointMake(227.3, 20.1) controlPoint1: CGPointMake(237.07, 21.17) controlPoint2: CGPointMake(232.18, 20.1)]; - [bezier4Path addCurveToPoint: CGPointMake(204.7, 40.47) controlPoint1: CGPointMake(216.12, 20.1) controlPoint2: CGPointMake(206.56, 28.58)]; - [bezier4Path addCurveToPoint: CGPointMake(208.47, 56.03) controlPoint1: CGPointMake(203.73, 46.41) controlPoint2: CGPointMake(205.1, 52.08)]; - [bezier4Path addCurveToPoint: CGPointMake(221.22, 61.18) controlPoint1: CGPointMake(211.56, 59.67) controlPoint2: CGPointMake(215.97, 61.18)]; - [bezier4Path addCurveToPoint: CGPointMake(235.24, 55.39) controlPoint1: CGPointMake(230.24, 61.18) controlPoint2: CGPointMake(235.24, 55.39)]; - [bezier4Path addLineToPoint: CGPointMake(234.79, 58.2)]; - [bezier4Path addCurveToPoint: CGPointMake(236.53, 60.24) controlPoint1: CGPointMake(234.62, 59.27) controlPoint2: CGPointMake(235.45, 60.24)]; - [bezier4Path addLineToPoint: CGPointMake(245.65, 60.24)]; - [bezier4Path addCurveToPoint: CGPointMake(248.56, 57.76) controlPoint1: CGPointMake(247.1, 60.24) controlPoint2: CGPointMake(248.33, 59.19)]; - [bezier4Path addLineToPoint: CGPointMake(254.03, 23.09)]; - [bezier4Path addCurveToPoint: CGPointMake(252.29, 21.06) controlPoint1: CGPointMake(254.2, 22.02) controlPoint2: CGPointMake(253.37, 21.06)]; - [bezier4Path closePath]; - [bezier4Path moveToPoint: CGPointMake(238.17, 40.77)]; - [bezier4Path addCurveToPoint: CGPointMake(226.74, 50.44) controlPoint1: CGPointMake(237.19, 46.55) controlPoint2: CGPointMake(232.6, 50.44)]; - [bezier4Path addCurveToPoint: CGPointMake(219.94, 47.71) controlPoint1: CGPointMake(223.8, 50.44) controlPoint2: CGPointMake(221.45, 49.49)]; - [bezier4Path addCurveToPoint: CGPointMake(218.35, 40.59) controlPoint1: CGPointMake(218.44, 45.93) controlPoint2: CGPointMake(217.88, 43.4)]; - [bezier4Path addCurveToPoint: CGPointMake(229.7, 30.85) controlPoint1: CGPointMake(219.26, 34.86) controlPoint2: CGPointMake(223.93, 30.85)]; - [bezier4Path addCurveToPoint: CGPointMake(236.46, 33.61) controlPoint1: CGPointMake(232.58, 30.85) controlPoint2: CGPointMake(234.91, 31.8)]; - [bezier4Path addCurveToPoint: CGPointMake(238.17, 40.77) controlPoint1: CGPointMake(238.01, 35.42) controlPoint2: CGPointMake(238.62, 37.97)]; - [bezier4Path closePath]; - bezier4Path.miterLimit = 4; - - [color0 setFill]; - [bezier4Path fill]; - - - //// Bezier 5 Drawing - UIBezierPath* bezier5Path = [UIBezierPath bezierPath]; - [bezier5Path moveToPoint: CGPointMake(155.38, 21.06)]; - [bezier5Path addLineToPoint: CGPointMake(145.2, 21.06)]; - [bezier5Path addCurveToPoint: CGPointMake(142.76, 22.34) controlPoint1: CGPointMake(144.22, 21.06) controlPoint2: CGPointMake(143.31, 21.54)]; - [bezier5Path addLineToPoint: CGPointMake(128.72, 43.02)]; - [bezier5Path addLineToPoint: CGPointMake(122.77, 23.15)]; - [bezier5Path addCurveToPoint: CGPointMake(119.96, 21.06) controlPoint1: CGPointMake(122.4, 21.91) controlPoint2: CGPointMake(121.26, 21.06)]; - [bezier5Path addLineToPoint: CGPointMake(109.95, 21.06)]; - [bezier5Path addCurveToPoint: CGPointMake(108.28, 23.39) controlPoint1: CGPointMake(108.74, 21.06) controlPoint2: CGPointMake(107.89, 22.24)]; - [bezier5Path addLineToPoint: CGPointMake(119.49, 56.29)]; - [bezier5Path addLineToPoint: CGPointMake(108.95, 71.16)]; - [bezier5Path addCurveToPoint: CGPointMake(110.39, 73.95) controlPoint1: CGPointMake(108.12, 72.33) controlPoint2: CGPointMake(108.96, 73.95)]; - [bezier5Path addLineToPoint: CGPointMake(120.56, 73.95)]; - [bezier5Path addCurveToPoint: CGPointMake(122.97, 72.68) controlPoint1: CGPointMake(121.52, 73.95) controlPoint2: CGPointMake(122.42, 73.47)]; - [bezier5Path addLineToPoint: CGPointMake(156.82, 23.82)]; - [bezier5Path addCurveToPoint: CGPointMake(155.38, 21.06) controlPoint1: CGPointMake(157.63, 22.65) controlPoint2: CGPointMake(156.8, 21.06)]; - [bezier5Path closePath]; - bezier5Path.miterLimit = 4; - - [color1 setFill]; - [bezier5Path fill]; - - - //// Bezier 6 Drawing - UIBezierPath* bezier6Path = [UIBezierPath bezierPath]; - [bezier6Path moveToPoint: CGPointMake(264.22, 2.98)]; - [bezier6Path addLineToPoint: CGPointMake(255.54, 58.21)]; - [bezier6Path addCurveToPoint: CGPointMake(257.29, 60.24) controlPoint1: CGPointMake(255.38, 59.27) controlPoint2: CGPointMake(256.2, 60.24)]; - [bezier6Path addLineToPoint: CGPointMake(266.01, 60.24)]; - [bezier6Path addCurveToPoint: CGPointMake(268.92, 57.76) controlPoint1: CGPointMake(267.46, 60.24) controlPoint2: CGPointMake(268.69, 59.19)]; - [bezier6Path addLineToPoint: CGPointMake(277.48, 3.53)]; - [bezier6Path addCurveToPoint: CGPointMake(275.73, 1.49) controlPoint1: CGPointMake(277.64, 2.46) controlPoint2: CGPointMake(276.82, 1.49)]; - [bezier6Path addLineToPoint: CGPointMake(265.96, 1.49)]; - [bezier6Path addCurveToPoint: CGPointMake(264.22, 2.98) controlPoint1: CGPointMake(265.1, 1.49) controlPoint2: CGPointMake(264.36, 2.12)]; - [bezier6Path closePath]; - bezier6Path.miterLimit = 4; - - [color0 setFill]; - [bezier6Path fill]; - } - } - } -} - -- (void)updateConstraints { - NSLayoutConstraint *aspectRatioConstraint = [NSLayoutConstraint constraintWithItem:self - attribute:NSLayoutAttributeWidth - relatedBy:NSLayoutRelationEqual - toItem:self - attribute:NSLayoutAttributeHeight - multiplier:(self.artDimensions.width / self.artDimensions.height) - constant:0.0f]; - aspectRatioConstraint.priority = UILayoutPriorityRequired; - - [self addConstraint:aspectRatioConstraint]; - - [super updateConstraints]; -} - -- (UILayoutPriority)contentCompressionResistancePriorityForAxis:(__unused UILayoutConstraintAxis)axis { - return UILayoutPriorityRequired; -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIUnknownCardVectorArtView.h b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIUnknownCardVectorArtView.h deleted file mode 100644 index fff4f3b..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIUnknownCardVectorArtView.h +++ /dev/null @@ -1,5 +0,0 @@ -#import "BTUICardVectorArtView.h" - -@interface BTUIUnknownCardVectorArtView : BTUICardVectorArtView - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIUnknownCardVectorArtView.m b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIUnknownCardVectorArtView.m deleted file mode 100644 index 45d5bad..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIUnknownCardVectorArtView.m +++ /dev/null @@ -1,306 +0,0 @@ -#import "BTUIUnknownCardVectorArtView.h" -#import "BTUI.h" - -@implementation BTUIUnknownCardVectorArtView - -- (void)drawArt { - - //// Color Declarations - UIColor* color2 = [UIColor colorWithRed: 0 green: 0 blue: 0 alpha: 0.099]; - UIColor* color1 = self.highlightColor ?: color2; - - //// Page-1 - { - //// Unknown - { - //// Card-# - { - //// CC-numbers - { - //// CC-number - { - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint: CGPointMake(6, 30)]; - [bezierPath addLineToPoint: CGPointMake(8, 30)]; - [bezierPath addLineToPoint: CGPointMake(8, 36)]; - [bezierPath addLineToPoint: CGPointMake(6, 36)]; - [bezierPath addLineToPoint: CGPointMake(6, 30)]; - [bezierPath closePath]; - bezierPath.miterLimit = 4; - - bezierPath.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezierPath fill]; - - - //// Bezier 2 Drawing - UIBezierPath* bezier2Path = [UIBezierPath bezierPath]; - [bezier2Path moveToPoint: CGPointMake(10, 30)]; - [bezier2Path addLineToPoint: CGPointMake(12, 30)]; - [bezier2Path addLineToPoint: CGPointMake(12, 36)]; - [bezier2Path addLineToPoint: CGPointMake(10, 36)]; - [bezier2Path addLineToPoint: CGPointMake(10, 30)]; - [bezier2Path closePath]; - bezier2Path.miterLimit = 4; - - bezier2Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier2Path fill]; - - - //// Bezier 3 Drawing - UIBezierPath* bezier3Path = [UIBezierPath bezierPath]; - [bezier3Path moveToPoint: CGPointMake(14, 30)]; - [bezier3Path addLineToPoint: CGPointMake(16, 30)]; - [bezier3Path addLineToPoint: CGPointMake(16, 36)]; - [bezier3Path addLineToPoint: CGPointMake(14, 36)]; - [bezier3Path addLineToPoint: CGPointMake(14, 30)]; - [bezier3Path closePath]; - bezier3Path.miterLimit = 4; - - bezier3Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier3Path fill]; - - - //// Bezier 4 Drawing - UIBezierPath* bezier4Path = [UIBezierPath bezierPath]; - [bezier4Path moveToPoint: CGPointMake(18, 30)]; - [bezier4Path addLineToPoint: CGPointMake(20, 30)]; - [bezier4Path addLineToPoint: CGPointMake(20, 36)]; - [bezier4Path addLineToPoint: CGPointMake(18, 36)]; - [bezier4Path addLineToPoint: CGPointMake(18, 30)]; - [bezier4Path closePath]; - bezier4Path.miterLimit = 4; - - bezier4Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier4Path fill]; - - - //// Bezier 5 Drawing - UIBezierPath* bezier5Path = [UIBezierPath bezierPath]; - [bezier5Path moveToPoint: CGPointMake(26, 30)]; - [bezier5Path addLineToPoint: CGPointMake(28, 30)]; - [bezier5Path addLineToPoint: CGPointMake(28, 36)]; - [bezier5Path addLineToPoint: CGPointMake(26, 36)]; - [bezier5Path addLineToPoint: CGPointMake(26, 30)]; - [bezier5Path closePath]; - bezier5Path.miterLimit = 4; - - bezier5Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier5Path fill]; - - - //// Bezier 6 Drawing - UIBezierPath* bezier6Path = [UIBezierPath bezierPath]; - [bezier6Path moveToPoint: CGPointMake(30, 30)]; - [bezier6Path addLineToPoint: CGPointMake(32, 30)]; - [bezier6Path addLineToPoint: CGPointMake(32, 36)]; - [bezier6Path addLineToPoint: CGPointMake(30, 36)]; - [bezier6Path addLineToPoint: CGPointMake(30, 30)]; - [bezier6Path closePath]; - bezier6Path.miterLimit = 4; - - bezier6Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier6Path fill]; - - - //// Bezier 7 Drawing - UIBezierPath* bezier7Path = [UIBezierPath bezierPath]; - [bezier7Path moveToPoint: CGPointMake(34, 30)]; - [bezier7Path addLineToPoint: CGPointMake(36, 30)]; - [bezier7Path addLineToPoint: CGPointMake(36, 36)]; - [bezier7Path addLineToPoint: CGPointMake(34, 36)]; - [bezier7Path addLineToPoint: CGPointMake(34, 30)]; - [bezier7Path closePath]; - bezier7Path.miterLimit = 4; - - bezier7Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier7Path fill]; - - - //// Bezier 8 Drawing - UIBezierPath* bezier8Path = [UIBezierPath bezierPath]; - [bezier8Path moveToPoint: CGPointMake(38, 30)]; - [bezier8Path addLineToPoint: CGPointMake(40, 30)]; - [bezier8Path addLineToPoint: CGPointMake(40, 36)]; - [bezier8Path addLineToPoint: CGPointMake(38, 36)]; - [bezier8Path addLineToPoint: CGPointMake(38, 30)]; - [bezier8Path closePath]; - bezier8Path.miterLimit = 4; - - bezier8Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier8Path fill]; - - - //// Bezier 9 Drawing - UIBezierPath* bezier9Path = [UIBezierPath bezierPath]; - [bezier9Path moveToPoint: CGPointMake(46, 30)]; - [bezier9Path addLineToPoint: CGPointMake(48, 30)]; - [bezier9Path addLineToPoint: CGPointMake(48, 36)]; - [bezier9Path addLineToPoint: CGPointMake(46, 36)]; - [bezier9Path addLineToPoint: CGPointMake(46, 30)]; - [bezier9Path closePath]; - bezier9Path.miterLimit = 4; - - bezier9Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier9Path fill]; - - - //// Bezier 10 Drawing - UIBezierPath* bezier10Path = [UIBezierPath bezierPath]; - [bezier10Path moveToPoint: CGPointMake(50, 30)]; - [bezier10Path addLineToPoint: CGPointMake(52, 30)]; - [bezier10Path addLineToPoint: CGPointMake(52, 36)]; - [bezier10Path addLineToPoint: CGPointMake(50, 36)]; - [bezier10Path addLineToPoint: CGPointMake(50, 30)]; - [bezier10Path closePath]; - bezier10Path.miterLimit = 4; - - bezier10Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier10Path fill]; - - - //// Bezier 11 Drawing - UIBezierPath* bezier11Path = [UIBezierPath bezierPath]; - [bezier11Path moveToPoint: CGPointMake(54, 30)]; - [bezier11Path addLineToPoint: CGPointMake(56, 30)]; - [bezier11Path addLineToPoint: CGPointMake(56, 36)]; - [bezier11Path addLineToPoint: CGPointMake(54, 36)]; - [bezier11Path addLineToPoint: CGPointMake(54, 30)]; - [bezier11Path closePath]; - bezier11Path.miterLimit = 4; - - bezier11Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier11Path fill]; - - - //// Bezier 12 Drawing - UIBezierPath* bezier12Path = [UIBezierPath bezierPath]; - [bezier12Path moveToPoint: CGPointMake(58, 30)]; - [bezier12Path addLineToPoint: CGPointMake(60, 30)]; - [bezier12Path addLineToPoint: CGPointMake(60, 36)]; - [bezier12Path addLineToPoint: CGPointMake(58, 36)]; - [bezier12Path addLineToPoint: CGPointMake(58, 30)]; - [bezier12Path closePath]; - bezier12Path.miterLimit = 4; - - bezier12Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier12Path fill]; - - - //// Bezier 13 Drawing - UIBezierPath* bezier13Path = [UIBezierPath bezierPath]; - [bezier13Path moveToPoint: CGPointMake(66, 30)]; - [bezier13Path addLineToPoint: CGPointMake(68, 30)]; - [bezier13Path addLineToPoint: CGPointMake(68, 36)]; - [bezier13Path addLineToPoint: CGPointMake(66, 36)]; - [bezier13Path addLineToPoint: CGPointMake(66, 30)]; - [bezier13Path closePath]; - bezier13Path.miterLimit = 4; - - bezier13Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier13Path fill]; - - - //// Bezier 14 Drawing - UIBezierPath* bezier14Path = [UIBezierPath bezierPath]; - [bezier14Path moveToPoint: CGPointMake(70, 30)]; - [bezier14Path addLineToPoint: CGPointMake(72, 30)]; - [bezier14Path addLineToPoint: CGPointMake(72, 36)]; - [bezier14Path addLineToPoint: CGPointMake(70, 36)]; - [bezier14Path addLineToPoint: CGPointMake(70, 30)]; - [bezier14Path closePath]; - bezier14Path.miterLimit = 4; - - bezier14Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier14Path fill]; - - - //// Bezier 15 Drawing - UIBezierPath* bezier15Path = [UIBezierPath bezierPath]; - [bezier15Path moveToPoint: CGPointMake(74, 30)]; - [bezier15Path addLineToPoint: CGPointMake(76, 30)]; - [bezier15Path addLineToPoint: CGPointMake(76, 36)]; - [bezier15Path addLineToPoint: CGPointMake(74, 36)]; - [bezier15Path addLineToPoint: CGPointMake(74, 30)]; - [bezier15Path closePath]; - bezier15Path.miterLimit = 4; - - bezier15Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier15Path fill]; - - - //// Bezier 16 Drawing - UIBezierPath* bezier16Path = [UIBezierPath bezierPath]; - [bezier16Path moveToPoint: CGPointMake(78, 30)]; - [bezier16Path addLineToPoint: CGPointMake(80, 30)]; - [bezier16Path addLineToPoint: CGPointMake(80, 36)]; - [bezier16Path addLineToPoint: CGPointMake(78, 36)]; - [bezier16Path addLineToPoint: CGPointMake(78, 30)]; - [bezier16Path closePath]; - bezier16Path.miterLimit = 4; - - bezier16Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier16Path fill]; - } - - - //// Rectangle Drawing - UIBezierPath* rectanglePath = [UIBezierPath bezierPathWithRect: CGRectMake(26, 42, 14, 2)]; - [color2 setFill]; - [rectanglePath fill]; - - - //// Rectangle 2 Drawing - UIBezierPath* rectangle2Path = [UIBezierPath bezierPathWithRect: CGRectMake(6, 46, 34, 2)]; - [color2 setFill]; - [rectangle2Path fill]; - } - - - //// Rounded Rectangle Drawing - UIBezierPath* roundedRectanglePath = [UIBezierPath bezierPathWithRoundedRect: CGRectMake(6, 6, 14, 14) cornerRadius: 0.75]; - [color2 setFill]; - [roundedRectanglePath fill]; - - - //// Rounded Rectangle 2 Drawing - UIBezierPath* roundedRectangle2Path = [UIBezierPath bezierPathWithRoundedRect: CGRectMake(72, 40, 8, 8) cornerRadius: 0.75]; - [color2 setFill]; - [roundedRectangle2Path fill]; - } - } - } -} -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIVenmoWordmarkVectorArtView.h b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIVenmoWordmarkVectorArtView.h deleted file mode 100644 index 37c8059..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIVenmoWordmarkVectorArtView.h +++ /dev/null @@ -1,7 +0,0 @@ -#import "BTUIVectorArtView.h" - -@interface BTUIVenmoWordmarkVectorArtView : BTUIVectorArtView - -@property (nonatomic, strong) UIColor *color; - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIVenmoWordmarkVectorArtView.m b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIVenmoWordmarkVectorArtView.m deleted file mode 100644 index 9deb4c3..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIVenmoWordmarkVectorArtView.m +++ /dev/null @@ -1,189 +0,0 @@ -#import "BTUIVenmoWordmarkVectorArtView.h" - -@implementation BTUIVenmoWordmarkVectorArtView - -- (id)init { - self = [super init]; - if (self) { - self.artDimensions = CGSizeMake(132, 88); - self.opaque = NO; - } - return self; -} - -- (void)setColor:(UIColor *)color { - _color = color; - [self setNeedsDisplay]; -} - -- (void)drawArt { - //// Color Declarations - UIColor* color = self.color; //[UIColor colorWithRed: 0.194 green: 0.507 blue: 0.764 alpha: 1]; - - //// Assets - { - //// button-venmo - { - //// Rectangle Drawing - - - //// logo/venmo - { - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint: CGPointMake(70.02, 53.98)]; - [bezierPath addCurveToPoint: CGPointMake(70.02, 52.78) controlPoint1: CGPointMake(70.02, 53.43) controlPoint2: CGPointMake(69.97, 53.09)]; - [bezierPath addCurveToPoint: CGPointMake(72.56, 36.46) controlPoint1: CGPointMake(70.87, 47.34) controlPoint2: CGPointMake(71.77, 41.9)]; - [bezierPath addCurveToPoint: CGPointMake(74.94, 34.44) controlPoint1: CGPointMake(72.87, 34.33) controlPoint2: CGPointMake(72.83, 34.43)]; - [bezierPath addCurveToPoint: CGPointMake(76.91, 34.43) controlPoint1: CGPointMake(75.59, 34.44) controlPoint2: CGPointMake(76.25, 34.48)]; - [bezierPath addCurveToPoint: CGPointMake(78.78, 35.72) controlPoint1: CGPointMake(77.84, 34.35) controlPoint2: CGPointMake(78.63, 34.46)]; - [bezierPath addCurveToPoint: CGPointMake(79.63, 35.35) controlPoint1: CGPointMake(79.13, 35.57) controlPoint2: CGPointMake(79.39, 35.49)]; - [bezierPath addCurveToPoint: CGPointMake(83.08, 34.11) controlPoint1: CGPointMake(80.7, 34.71) controlPoint2: CGPointMake(81.84, 34.3)]; - [bezierPath addCurveToPoint: CGPointMake(87.94, 35.56) controlPoint1: CGPointMake(84.94, 33.83) controlPoint2: CGPointMake(86.59, 34.13)]; - [bezierPath addCurveToPoint: CGPointMake(88.47, 35.99) controlPoint1: CGPointMake(88.08, 35.71) controlPoint2: CGPointMake(88.26, 35.82)]; - [bezierPath addCurveToPoint: CGPointMake(90.53, 34.9) controlPoint1: CGPointMake(89.16, 35.62) controlPoint2: CGPointMake(89.83, 35.22)]; - [bezierPath addCurveToPoint: CGPointMake(96.29, 34.23) controlPoint1: CGPointMake(92.38, 34.05) controlPoint2: CGPointMake(94.29, 33.75)]; - [bezierPath addCurveToPoint: CGPointMake(99, 37.48) controlPoint1: CGPointMake(97.97, 34.63) controlPoint2: CGPointMake(98.97, 35.72)]; - [bezierPath addCurveToPoint: CGPointMake(98.7, 41.97) controlPoint1: CGPointMake(99.02, 38.98) controlPoint2: CGPointMake(98.91, 40.49)]; - [bezierPath addCurveToPoint: CGPointMake(97.05, 52.6) controlPoint1: CGPointMake(98.2, 45.52) controlPoint2: CGPointMake(97.6, 49.06)]; - [bezierPath addCurveToPoint: CGPointMake(95.52, 53.99) controlPoint1: CGPointMake(96.84, 53.93) controlPoint2: CGPointMake(96.8, 53.99)]; - [bezierPath addCurveToPoint: CGPointMake(91.7, 53.99) controlPoint1: CGPointMake(94.24, 54) controlPoint2: CGPointMake(92.97, 54)]; - [bezierPath addCurveToPoint: CGPointMake(90.47, 53.9) controlPoint1: CGPointMake(91.34, 53.99) controlPoint2: CGPointMake(90.98, 53.94)]; - [bezierPath addCurveToPoint: CGPointMake(90.55, 52.4) controlPoint1: CGPointMake(90.5, 53.35) controlPoint2: CGPointMake(90.48, 52.87)]; - [bezierPath addCurveToPoint: CGPointMake(92.22, 41.39) controlPoint1: CGPointMake(91.1, 48.73) controlPoint2: CGPointMake(91.66, 45.06)]; - [bezierPath addCurveToPoint: CGPointMake(92.28, 40.52) controlPoint1: CGPointMake(92.26, 41.1) controlPoint2: CGPointMake(92.32, 40.8)]; - [bezierPath addCurveToPoint: CGPointMake(91.24, 39.51) controlPoint1: CGPointMake(92.21, 39.89) controlPoint2: CGPointMake(91.84, 39.46)]; - [bezierPath addCurveToPoint: CGPointMake(89.13, 40.07) controlPoint1: CGPointMake(90.52, 39.58) controlPoint2: CGPointMake(89.78, 39.77)]; - [bezierPath addCurveToPoint: CGPointMake(88.65, 41.13) controlPoint1: CGPointMake(88.86, 40.2) controlPoint2: CGPointMake(88.71, 40.75)]; - [bezierPath addCurveToPoint: CGPointMake(87.43, 48.92) controlPoint1: CGPointMake(88.22, 43.72) controlPoint2: CGPointMake(87.83, 46.32)]; - [bezierPath addCurveToPoint: CGPointMake(86.63, 53.9) controlPoint1: CGPointMake(87.17, 50.56) controlPoint2: CGPointMake(86.91, 52.2)]; - [bezierPath addLineToPoint: CGPointMake(80.17, 53.9)]; - [bezierPath addCurveToPoint: CGPointMake(80.62, 50.53) controlPoint1: CGPointMake(80.33, 52.73) controlPoint2: CGPointMake(80.45, 51.62)]; - [bezierPath addCurveToPoint: CGPointMake(81.96, 42.12) controlPoint1: CGPointMake(81.06, 47.72) controlPoint2: CGPointMake(81.52, 44.93)]; - [bezierPath addCurveToPoint: CGPointMake(82.02, 40.63) controlPoint1: CGPointMake(82.03, 41.63) controlPoint2: CGPointMake(82.08, 41.12)]; - [bezierPath addCurveToPoint: CGPointMake(81.53, 39.69) controlPoint1: CGPointMake(81.97, 40.29) controlPoint2: CGPointMake(81.79, 39.88)]; - [bezierPath addCurveToPoint: CGPointMake(78.43, 40.93) controlPoint1: CGPointMake(80.64, 39.03) controlPoint2: CGPointMake(78.64, 39.84)]; - [bezierPath addCurveToPoint: CGPointMake(77.86, 44.51) controlPoint1: CGPointMake(78.2, 42.12) controlPoint2: CGPointMake(78.04, 43.32)]; - [bezierPath addCurveToPoint: CGPointMake(76.58, 53.05) controlPoint1: CGPointMake(77.43, 47.36) controlPoint2: CGPointMake(77, 50.2)]; - [bezierPath addCurveToPoint: CGPointMake(75.81, 53.98) controlPoint1: CGPointMake(76.51, 53.55) controlPoint2: CGPointMake(76.4, 53.97)]; - [bezierPath addCurveToPoint: CGPointMake(70.02, 53.98) controlPoint1: CGPointMake(73.93, 53.98) controlPoint2: CGPointMake(72.05, 53.98)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(65.64, 53.85)]; - [bezierPath addCurveToPoint: CGPointMake(59.25, 53.73) controlPoint1: CGPointMake(64, 54.09) controlPoint2: CGPointMake(60.19, 54.03)]; - [bezierPath addCurveToPoint: CGPointMake(59.71, 50.43) controlPoint1: CGPointMake(59.4, 52.64) controlPoint2: CGPointMake(59.54, 51.53)]; - [bezierPath addCurveToPoint: CGPointMake(61.06, 41.78) controlPoint1: CGPointMake(60.16, 47.55) controlPoint2: CGPointMake(60.61, 44.67)]; - [bezierPath addCurveToPoint: CGPointMake(58.66, 39.69) controlPoint1: CGPointMake(61.39, 39.72) controlPoint2: CGPointMake(60.6, 39.04)]; - [bezierPath addCurveToPoint: CGPointMake(57.43, 41.2) controlPoint1: CGPointMake(57.9, 39.94) controlPoint2: CGPointMake(57.55, 40.4)]; - [bezierPath addCurveToPoint: CGPointMake(55.71, 52.57) controlPoint1: CGPointMake(56.88, 45) controlPoint2: CGPointMake(56.29, 48.78)]; - [bezierPath addCurveToPoint: CGPointMake(54.19, 53.98) controlPoint1: CGPointMake(55.51, 53.92) controlPoint2: CGPointMake(55.46, 53.97)]; - [bezierPath addCurveToPoint: CGPointMake(49, 53.98) controlPoint1: CGPointMake(52.51, 53.99) controlPoint2: CGPointMake(50.84, 53.98)]; - [bezierPath addCurveToPoint: CGPointMake(49.38, 50.94) controlPoint1: CGPointMake(49.13, 52.89) controlPoint2: CGPointMake(49.22, 51.91)]; - [bezierPath addCurveToPoint: CGPointMake(51.46, 37.73) controlPoint1: CGPointMake(50.06, 46.54) controlPoint2: CGPointMake(50.76, 42.14)]; - [bezierPath addCurveToPoint: CGPointMake(51.8, 35.38) controlPoint1: CGPointMake(51.58, 36.95) controlPoint2: CGPointMake(51.71, 36.17)]; - [bezierPath addCurveToPoint: CGPointMake(52.73, 34.45) controlPoint1: CGPointMake(51.86, 34.79) controlPoint2: CGPointMake(52.12, 34.45)]; - [bezierPath addCurveToPoint: CGPointMake(56.91, 34.44) controlPoint1: CGPointMake(54.12, 34.45) controlPoint2: CGPointMake(55.52, 34.47)]; - [bezierPath addCurveToPoint: CGPointMake(57.91, 35.69) controlPoint1: CGPointMake(57.69, 34.43) controlPoint2: CGPointMake(57.61, 35.12)]; - [bezierPath addCurveToPoint: CGPointMake(59.21, 35.06) controlPoint1: CGPointMake(58.36, 35.47) controlPoint2: CGPointMake(58.79, 35.27)]; - [bezierPath addCurveToPoint: CGPointMake(65.29, 34.26) controlPoint1: CGPointMake(61.15, 34.1) controlPoint2: CGPointMake(63.16, 33.69)]; - [bezierPath addCurveToPoint: CGPointMake(67.84, 37) controlPoint1: CGPointMake(66.7, 34.64) controlPoint2: CGPointMake(67.49, 35.55)]; - [bezierPath addCurveToPoint: CGPointMake(67.73, 40.97) controlPoint1: CGPointMake(68.17, 38.36) controlPoint2: CGPointMake(67.92, 39.67)]; - [bezierPath addCurveToPoint: CGPointMake(65.8, 53.33) controlPoint1: CGPointMake(67.14, 45.1) controlPoint2: CGPointMake(66.45, 49.21)]; - [bezierPath addCurveToPoint: CGPointMake(65.64, 53.85) controlPoint1: CGPointMake(65.77, 53.49) controlPoint2: CGPointMake(65.71, 53.64)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(118.98, 42.12)]; - [bezierPath addCurveToPoint: CGPointMake(117.38, 48.99) controlPoint1: CGPointMake(119.11, 44.56) controlPoint2: CGPointMake(118.6, 46.87)]; - [bezierPath addCurveToPoint: CGPointMake(108.97, 54) controlPoint1: CGPointMake(115.52, 52.2) controlPoint2: CGPointMake(112.75, 53.97)]; - [bezierPath addCurveToPoint: CGPointMake(105.76, 53.8) controlPoint1: CGPointMake(107.9, 54) controlPoint2: CGPointMake(106.8, 54.02)]; - [bezierPath addCurveToPoint: CGPointMake(101.19, 49.25) controlPoint1: CGPointMake(103.3, 53.26) controlPoint2: CGPointMake(101.73, 51.62)]; - [bezierPath addCurveToPoint: CGPointMake(102.47, 38.85) controlPoint1: CGPointMake(100.37, 45.67) controlPoint2: CGPointMake(100.59, 42.13)]; - [bezierPath addCurveToPoint: CGPointMake(109.3, 34.21) controlPoint1: CGPointMake(103.99, 36.22) controlPoint2: CGPointMake(106.29, 34.71)]; - [bezierPath addCurveToPoint: CGPointMake(113.49, 34.2) controlPoint1: CGPointMake(110.7, 33.97) controlPoint2: CGPointMake(112.08, 33.96)]; - [bezierPath addCurveToPoint: CGPointMake(118.97, 40.15) controlPoint1: CGPointMake(116.67, 34.74) controlPoint2: CGPointMake(118.72, 36.92)]; - [bezierPath addCurveToPoint: CGPointMake(118.98, 42.12) controlPoint1: CGPointMake(119.02, 40.8) controlPoint2: CGPointMake(118.98, 41.46)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(107.37, 45.48)]; - [bezierPath addCurveToPoint: CGPointMake(107.54, 45.5) controlPoint1: CGPointMake(107.43, 45.48) controlPoint2: CGPointMake(107.48, 45.49)]; - [bezierPath addCurveToPoint: CGPointMake(107.55, 47.1) controlPoint1: CGPointMake(107.54, 46.04) controlPoint2: CGPointMake(107.5, 46.57)]; - [bezierPath addCurveToPoint: CGPointMake(108.89, 48.99) controlPoint1: CGPointMake(107.64, 48.09) controlPoint2: CGPointMake(108.18, 48.82)]; - [bezierPath addCurveToPoint: CGPointMake(110.96, 47.92) controlPoint1: CGPointMake(109.58, 49.16) controlPoint2: CGPointMake(110.4, 48.74)]; - [bezierPath addCurveToPoint: CGPointMake(111.09, 47.71) controlPoint1: CGPointMake(111, 47.85) controlPoint2: CGPointMake(111.05, 47.79)]; - [bezierPath addCurveToPoint: CGPointMake(112.18, 40.52) controlPoint1: CGPointMake(112.23, 45.43) controlPoint2: CGPointMake(112.51, 43.02)]; - [bezierPath addCurveToPoint: CGPointMake(111.11, 39.14) controlPoint1: CGPointMake(112.1, 39.9) controlPoint2: CGPointMake(111.81, 39.33)]; - [bezierPath addCurveToPoint: CGPointMake(109.2, 39.73) controlPoint1: CGPointMake(110.36, 38.95) controlPoint2: CGPointMake(109.66, 39.14)]; - [bezierPath addCurveToPoint: CGPointMake(108.08, 41.75) controlPoint1: CGPointMake(108.73, 40.33) controlPoint2: CGPointMake(108.29, 41.03)]; - [bezierPath addCurveToPoint: CGPointMake(107.37, 45.48) controlPoint1: CGPointMake(107.74, 42.96) controlPoint2: CGPointMake(107.6, 44.23)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(12, 35.08)]; - [bezierPath addCurveToPoint: CGPointMake(13.83, 34.83) controlPoint1: CGPointMake(12.73, 34.98) controlPoint2: CGPointMake(13.28, 34.89)]; - [bezierPath addCurveToPoint: CGPointMake(17.44, 34.46) controlPoint1: CGPointMake(15.03, 34.69) controlPoint2: CGPointMake(16.24, 34.55)]; - [bezierPath addCurveToPoint: CGPointMake(18.72, 35.54) controlPoint1: CGPointMake(18.39, 34.39) controlPoint2: CGPointMake(18.6, 34.58)]; - [bezierPath addCurveToPoint: CGPointMake(19.75, 44.26) controlPoint1: CGPointMake(19.08, 38.45) controlPoint2: CGPointMake(19.4, 41.36)]; - [bezierPath addCurveToPoint: CGPointMake(20.28, 47.47) controlPoint1: CGPointMake(19.87, 45.33) controlPoint2: CGPointMake(20.02, 46.39)]; - [bezierPath addCurveToPoint: CGPointMake(23.06, 41.7) controlPoint1: CGPointMake(21.55, 45.7) controlPoint2: CGPointMake(22.38, 43.74)]; - [bezierPath addCurveToPoint: CGPointMake(23.16, 35.38) controlPoint1: CGPointMake(23.75, 39.62) controlPoint2: CGPointMake(23.88, 37.53)]; - [bezierPath addCurveToPoint: CGPointMake(23.98, 34.99) controlPoint1: CGPointMake(23.49, 35.22) controlPoint2: CGPointMake(23.72, 35.05)]; - [bezierPath addCurveToPoint: CGPointMake(28.25, 34.07) controlPoint1: CGPointMake(25.4, 34.67) controlPoint2: CGPointMake(26.82, 34.36)]; - [bezierPath addCurveToPoint: CGPointMake(29.46, 34.73) controlPoint1: CGPointMake(29.01, 33.91) controlPoint2: CGPointMake(29.17, 33.97)]; - [bezierPath addCurveToPoint: CGPointMake(29.93, 36.66) controlPoint1: CGPointMake(29.69, 35.35) controlPoint2: CGPointMake(29.86, 36.01)]; - [bezierPath addCurveToPoint: CGPointMake(28.75, 43.64) controlPoint1: CGPointMake(30.19, 39.1) controlPoint2: CGPointMake(29.68, 41.41)]; - [bezierPath addCurveToPoint: CGPointMake(23.03, 53.4) controlPoint1: CGPointMake(27.27, 47.16) controlPoint2: CGPointMake(25.23, 50.33)]; - [bezierPath addCurveToPoint: CGPointMake(22.17, 53.97) controlPoint1: CGPointMake(22.84, 53.67) controlPoint2: CGPointMake(22.46, 53.96)]; - [bezierPath addCurveToPoint: CGPointMake(15.03, 54) controlPoint1: CGPointMake(19.83, 54.02) controlPoint2: CGPointMake(17.49, 54)]; - [bezierPath addCurveToPoint: CGPointMake(13.49, 44.53) controlPoint1: CGPointMake(14.51, 50.78) controlPoint2: CGPointMake(13.99, 47.65)]; - [bezierPath addCurveToPoint: CGPointMake(12, 35.08) controlPoint1: CGPointMake(12.99, 41.41) controlPoint2: CGPointMake(12.4, 38.31)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(38.37, 45.72)]; - [bezierPath addCurveToPoint: CGPointMake(41.21, 48.8) controlPoint1: CGPointMake(38.38, 47.8) controlPoint2: CGPointMake(39.3, 48.75)]; - [bezierPath addCurveToPoint: CGPointMake(45.43, 47.88) controlPoint1: CGPointMake(42.69, 48.84) controlPoint2: CGPointMake(44.07, 48.4)]; - [bezierPath addCurveToPoint: CGPointMake(46.75, 47.34) controlPoint1: CGPointMake(45.8, 47.73) controlPoint2: CGPointMake(46.18, 47.57)]; - [bezierPath addCurveToPoint: CGPointMake(45.97, 52.45) controlPoint1: CGPointMake(46.49, 49.15) controlPoint2: CGPointMake(46.28, 50.81)]; - [bezierPath addCurveToPoint: CGPointMake(45.18, 53.12) controlPoint1: CGPointMake(45.92, 52.72) controlPoint2: CGPointMake(45.5, 53.03)]; - [bezierPath addCurveToPoint: CGPointMake(42.05, 53.85) controlPoint1: CGPointMake(44.15, 53.42) controlPoint2: CGPointMake(43.11, 53.75)]; - [bezierPath addCurveToPoint: CGPointMake(37.72, 53.88) controlPoint1: CGPointMake(40.62, 53.98) controlPoint2: CGPointMake(39.14, 54.06)]; - [bezierPath addCurveToPoint: CGPointMake(31.74, 47.78) controlPoint1: CGPointMake(34.3, 53.45) controlPoint2: CGPointMake(32.15, 51.27)]; - [bezierPath addCurveToPoint: CGPointMake(34.04, 38.05) controlPoint1: CGPointMake(31.32, 44.29) controlPoint2: CGPointMake(31.95, 40.99)]; - [bezierPath addCurveToPoint: CGPointMake(44.6, 34.35) controlPoint1: CGPointMake(36.45, 34.65) controlPoint2: CGPointMake(40.9, 33.31)]; - [bezierPath addCurveToPoint: CGPointMake(46.79, 42.8) controlPoint1: CGPointMake(48.43, 35.42) controlPoint2: CGPointMake(49.6, 39.99)]; - [bezierPath addCurveToPoint: CGPointMake(41.48, 45.3) controlPoint1: CGPointMake(45.32, 44.27) controlPoint2: CGPointMake(43.45, 44.9)]; - [bezierPath addCurveToPoint: CGPointMake(38.37, 45.72) controlPoint1: CGPointMake(40.48, 45.5) controlPoint2: CGPointMake(39.45, 45.58)]; - [bezierPath closePath]; - [bezierPath moveToPoint: CGPointMake(38.49, 42.08)]; - [bezierPath addCurveToPoint: CGPointMake(42.3, 40.96) controlPoint1: CGPointMake(40.01, 42.18) controlPoint2: CGPointMake(41.22, 41.79)]; - [bezierPath addCurveToPoint: CGPointMake(42.73, 40.36) controlPoint1: CGPointMake(42.49, 40.82) controlPoint2: CGPointMake(42.63, 40.58)]; - [bezierPath addCurveToPoint: CGPointMake(42.52, 38.87) controlPoint1: CGPointMake(42.96, 39.83) controlPoint2: CGPointMake(42.92, 39.31)]; - [bezierPath addCurveToPoint: CGPointMake(41.16, 38.52) controlPoint1: CGPointMake(42.16, 38.46) controlPoint2: CGPointMake(41.68, 38.36)]; - [bezierPath addCurveToPoint: CGPointMake(40.36, 38.85) controlPoint1: CGPointMake(40.88, 38.6) controlPoint2: CGPointMake(40.59, 38.69)]; - [bezierPath addCurveToPoint: CGPointMake(38.49, 42.08) controlPoint1: CGPointMake(39.31, 39.6) controlPoint2: CGPointMake(38.62, 40.57)]; - [bezierPath addLineToPoint: CGPointMake(38.49, 42.08)]; - [bezierPath closePath]; - bezierPath.miterLimit = 4; - - bezierPath.usesEvenOddFillRule = YES; - - [color setFill]; - [bezierPath fill]; - } - } - } -} - -- (void)updateConstraints { - NSLayoutConstraint *aspectRatioConstraint = [NSLayoutConstraint constraintWithItem:self - attribute:NSLayoutAttributeWidth - relatedBy:NSLayoutRelationEqual - toItem:self - attribute:NSLayoutAttributeHeight - multiplier:(self.artDimensions.width / self.artDimensions.height) - constant:0.0f]; - aspectRatioConstraint.priority = UILayoutPriorityRequired; - - [self addConstraint:aspectRatioConstraint]; - - [super updateConstraints]; -} - -- (UILayoutPriority)contentCompressionResistancePriorityForAxis:(__unused UILayoutConstraintAxis)axis { - return UILayoutPriorityRequired; -} - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIVisaVectorArtView.h b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIVisaVectorArtView.h deleted file mode 100644 index 8516593..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIVisaVectorArtView.h +++ /dev/null @@ -1,5 +0,0 @@ -#import "BTUICardVectorArtView.h" - -@interface BTUIVisaVectorArtView : BTUICardVectorArtView - -@end diff --git a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIVisaVectorArtView.m b/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIVisaVectorArtView.m deleted file mode 100644 index 4ff958a..0000000 --- a/Pods/Braintree/Braintree/UI/Views/Vector Art/BTUIVisaVectorArtView.m +++ /dev/null @@ -1,128 +0,0 @@ -#import "BTUIVisaVectorArtView.h" - -@implementation BTUIVisaVectorArtView - -- (void)drawArt { - //// Color Declarations - UIColor* color2 = [UIColor colorWithRed: 0.914 green: 0.555 blue: 0.193 alpha: 1]; - UIColor* color1 = [UIColor colorWithRed: 0.033 green: 0.277 blue: 0.542 alpha: 1]; - - //// Page-1 - { - //// Visa - { - //// Group 3 - { - //// Bezier Drawing - UIBezierPath* bezierPath = [UIBezierPath bezierPath]; - [bezierPath moveToPoint: CGPointMake(37.45, 38.09)]; - [bezierPath addLineToPoint: CGPointMake(32.1, 38.09)]; - [bezierPath addLineToPoint: CGPointMake(35.45, 17)]; - [bezierPath addLineToPoint: CGPointMake(40.8, 17)]; - [bezierPath addLineToPoint: CGPointMake(37.45, 38.09)]; - [bezierPath closePath]; - bezierPath.miterLimit = 4; - - bezierPath.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezierPath fill]; - - - //// Bezier 2 Drawing - UIBezierPath* bezier2Path = [UIBezierPath bezierPath]; - [bezier2Path moveToPoint: CGPointMake(27.58, 17)]; - [bezier2Path addLineToPoint: CGPointMake(22.48, 31.5)]; - [bezier2Path addLineToPoint: CGPointMake(21.88, 28.38)]; - [bezier2Path addLineToPoint: CGPointMake(21.88, 28.38)]; - [bezier2Path addLineToPoint: CGPointMake(20.07, 18.9)]; - [bezier2Path addCurveToPoint: CGPointMake(17.53, 17) controlPoint1: CGPointMake(20.07, 18.9) controlPoint2: CGPointMake(19.86, 17)]; - [bezier2Path addLineToPoint: CGPointMake(9.1, 17)]; - [bezier2Path addLineToPoint: CGPointMake(9, 17.36)]; - [bezier2Path addCurveToPoint: CGPointMake(14.6, 19.77) controlPoint1: CGPointMake(9, 17.36) controlPoint2: CGPointMake(11.58, 17.91)]; - [bezier2Path addLineToPoint: CGPointMake(19.25, 38.09)]; - [bezier2Path addLineToPoint: CGPointMake(24.83, 38.09)]; - [bezier2Path addLineToPoint: CGPointMake(33.34, 17)]; - [bezier2Path addLineToPoint: CGPointMake(27.58, 17)]; - [bezier2Path closePath]; - bezier2Path.miterLimit = 4; - - bezier2Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier2Path fill]; - - - //// Bezier 3 Drawing - UIBezierPath* bezier3Path = [UIBezierPath bezierPath]; - [bezier3Path moveToPoint: CGPointMake(63.99, 30.63)]; - [bezier3Path addLineToPoint: CGPointMake(66.8, 22.74)]; - [bezier3Path addLineToPoint: CGPointMake(68.38, 30.63)]; - [bezier3Path addLineToPoint: CGPointMake(63.99, 30.63)]; - [bezier3Path addLineToPoint: CGPointMake(63.99, 30.63)]; - [bezier3Path addLineToPoint: CGPointMake(63.99, 30.63)]; - [bezier3Path addLineToPoint: CGPointMake(63.99, 30.63)]; - [bezier3Path closePath]; - [bezier3Path moveToPoint: CGPointMake(69.88, 38.09)]; - [bezier3Path addLineToPoint: CGPointMake(74.79, 38.09)]; - [bezier3Path addLineToPoint: CGPointMake(70.51, 17)]; - [bezier3Path addLineToPoint: CGPointMake(66.2, 17)]; - [bezier3Path addCurveToPoint: CGPointMake(63.73, 18.57) controlPoint1: CGPointMake(64.22, 17) controlPoint2: CGPointMake(63.73, 18.57)]; - [bezier3Path addLineToPoint: CGPointMake(55.75, 38.09)]; - [bezier3Path addLineToPoint: CGPointMake(61.33, 38.09)]; - [bezier3Path addLineToPoint: CGPointMake(62.45, 34.96)]; - [bezier3Path addLineToPoint: CGPointMake(69.25, 34.96)]; - [bezier3Path addLineToPoint: CGPointMake(69.88, 38.09)]; - [bezier3Path addLineToPoint: CGPointMake(69.88, 38.09)]; - [bezier3Path closePath]; - bezier3Path.miterLimit = 4; - - bezier3Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier3Path fill]; - - - //// Bezier 4 Drawing - UIBezierPath* bezier4Path = [UIBezierPath bezierPath]; - [bezier4Path moveToPoint: CGPointMake(56.14, 22.45)]; - [bezier4Path addLineToPoint: CGPointMake(56.9, 17.92)]; - [bezier4Path addCurveToPoint: CGPointMake(52.09, 17) controlPoint1: CGPointMake(56.9, 17.92) controlPoint2: CGPointMake(54.55, 17)]; - [bezier4Path addCurveToPoint: CGPointMake(43.12, 23.98) controlPoint1: CGPointMake(49.43, 17) controlPoint2: CGPointMake(43.12, 18.19)]; - [bezier4Path addCurveToPoint: CGPointMake(50.53, 32.36) controlPoint1: CGPointMake(43.12, 29.43) controlPoint2: CGPointMake(50.53, 29.5)]; - [bezier4Path addCurveToPoint: CGPointMake(41.7, 32.9) controlPoint1: CGPointMake(50.53, 35.22) controlPoint2: CGPointMake(43.89, 34.71)]; - [bezier4Path addLineToPoint: CGPointMake(40.9, 37.64)]; - [bezier4Path addCurveToPoint: CGPointMake(46.94, 38.83) controlPoint1: CGPointMake(40.9, 37.64) controlPoint2: CGPointMake(43.29, 38.83)]; - [bezier4Path addCurveToPoint: CGPointMake(56.11, 31.61) controlPoint1: CGPointMake(50.6, 38.83) controlPoint2: CGPointMake(56.11, 36.89)]; - [bezier4Path addCurveToPoint: CGPointMake(48.64, 23.23) controlPoint1: CGPointMake(56.11, 26.13) controlPoint2: CGPointMake(48.64, 25.62)]; - [bezier4Path addCurveToPoint: CGPointMake(56.14, 22.45) controlPoint1: CGPointMake(48.64, 20.85) controlPoint2: CGPointMake(53.85, 21.15)]; - [bezier4Path closePath]; - bezier4Path.miterLimit = 4; - - bezier4Path.usesEvenOddFillRule = YES; - - [color1 setFill]; - [bezier4Path fill]; - - - //// Bezier 5 Drawing - UIBezierPath* bezier5Path = [UIBezierPath bezierPath]; - [bezier5Path moveToPoint: CGPointMake(21.88, 28.38)]; - [bezier5Path addLineToPoint: CGPointMake(20.07, 18.9)]; - [bezier5Path addCurveToPoint: CGPointMake(17.53, 17) controlPoint1: CGPointMake(20.07, 18.9) controlPoint2: CGPointMake(19.86, 17)]; - [bezier5Path addLineToPoint: CGPointMake(9.1, 17)]; - [bezier5Path addLineToPoint: CGPointMake(9, 17.36)]; - [bezier5Path addCurveToPoint: CGPointMake(16.95, 21.45) controlPoint1: CGPointMake(9, 17.36) controlPoint2: CGPointMake(13.06, 18.22)]; - [bezier5Path addCurveToPoint: CGPointMake(21.88, 28.38) controlPoint1: CGPointMake(20.66, 24.53) controlPoint2: CGPointMake(21.88, 28.38)]; - [bezier5Path closePath]; - bezier5Path.miterLimit = 4; - - bezier5Path.usesEvenOddFillRule = YES; - - [color2 setFill]; - [bezier5Path fill]; - } - } - } -} -@end diff --git a/Pods/Braintree/Braintree/Venmo/BTClient+BTVenmo.h b/Pods/Braintree/Braintree/Venmo/BTClient+BTVenmo.h deleted file mode 100644 index 2bfad0a..0000000 --- a/Pods/Braintree/Braintree/Venmo/BTClient+BTVenmo.h +++ /dev/null @@ -1,13 +0,0 @@ -#import "BTClient.h" - -typedef NS_ENUM(NSUInteger, BTVenmoStatus) { - BTVenmoStatusOff = 0, - BTVenmoStatusOffline, - BTVenmoStatusProduction -}; - -@interface BTClient (BTVenmo) - -- (BTVenmoStatus)btVenmo_status; - -@end diff --git a/Pods/Braintree/Braintree/Venmo/BTClient+BTVenmo.m b/Pods/Braintree/Braintree/Venmo/BTClient+BTVenmo.m deleted file mode 100644 index 3c8ce24..0000000 --- a/Pods/Braintree/Braintree/Venmo/BTClient+BTVenmo.m +++ /dev/null @@ -1,20 +0,0 @@ -#import "BTClient+BTVenmo.h" -#import "BTClient_Internal.h" - -NSString *const BTVenmoStatusValueProduction = @"production"; -NSString *const BTVenmoStatusValueOffline = @"offline"; - -@implementation BTClient (BTVenmo) - -- (BTVenmoStatus)btVenmo_status { - NSString *status = self.configuration.btVenmo_status; - if ([status isEqualToString:BTVenmoStatusValueProduction]) { - return BTVenmoStatusProduction; - } else if([status isEqualToString:BTVenmoStatusValueOffline]) { - return BTVenmoStatusOffline; - } else { - return BTVenmoStatusOff; - } -} - -@end diff --git a/Pods/Braintree/Braintree/Venmo/BTVenmoAppSwitchHandler.h b/Pods/Braintree/Braintree/Venmo/BTVenmoAppSwitchHandler.h deleted file mode 100644 index 301379f..0000000 --- a/Pods/Braintree/Braintree/Venmo/BTVenmoAppSwitchHandler.h +++ /dev/null @@ -1,11 +0,0 @@ -#import -#import "BTClient.h" -#import "BTAppSwitching.h" -#import "BTAppSwitchErrors.h" - -@interface BTVenmoAppSwitchHandler : NSObject - -+ (instancetype)sharedHandler; - -@end - diff --git a/Pods/Braintree/Braintree/Venmo/BTVenmoAppSwitchHandler.m b/Pods/Braintree/Braintree/Venmo/BTVenmoAppSwitchHandler.m deleted file mode 100644 index 8c33ab2..0000000 --- a/Pods/Braintree/Braintree/Venmo/BTVenmoAppSwitchHandler.m +++ /dev/null @@ -1,218 +0,0 @@ -#import "BTVenmoAppSwitchHandler.h" -#import "BTVenmoAppSwitchHandler_Internal.h" -#import "BTVenmoAppSwitchRequestURL.h" -#import "BTVenmoAppSwitchReturnURL.h" -#import "BTClient+BTVenmo.h" -#import "BTClient_Internal.h" -#import "BTMutableCardPaymentMethod.h" -#import "BTAppSwitch.h" - -#import - -@implementation BTVenmoAppSwitchHandler - -@synthesize returnURLScheme = _returnURLScheme; -@synthesize delegate = _delegate; - -+ (void)load { - if (self == [BTVenmoAppSwitchHandler class]) { - [[BTAppSwitch sharedInstance] addAppSwitching:[BTVenmoAppSwitchHandler sharedHandler] forApp:BTAppTypeVenmo]; - } -} - -- (BOOL)initiateAppSwitchWithClient:(BTClient *)client delegate:(id)delegate error:(NSError *__autoreleasing *)error { - - client = [client copyWithMetadata:^(BTClientMutableMetadata *metadata) { - metadata.source = BTClientMetadataSourceVenmoApp; - }]; - - NSError *appSwitchError = [self appSwitchErrorForClient:client]; - if (appSwitchError) { - if ([appSwitchError.domain isEqualToString:BTAppSwitchErrorDomain]) { - switch (appSwitchError.code) { - case BTAppSwitchErrorDisabled: - [client postAnalyticsEvent:@"ios.venmo.appswitch.initiate.error.disabled"]; - break; - case BTAppSwitchErrorIntegrationReturnURLScheme: - [client postAnalyticsEvent:@"ios.venmo.appswitch.initiate.error.invalid.return-url-scheme"]; - break; - case BTAppSwitchErrorIntegrationMerchantId: - [client postAnalyticsEvent:@"ios.venmo.appswitch.initiate.error.invalid.merchant-id"]; - break; - case BTAppSwitchErrorAppNotAvailable: - [client postAnalyticsEvent:@"ios.venmo.appswitch.initiate.error.unavailable"]; - break; - default: - [client postAnalyticsEvent:@"ios.venmo.appswitch.initiate.error.unrecognized-error"]; - break; - } - } - if (error) { - *error = appSwitchError; - } - return NO; - } - - self.client = client; - self.delegate = delegate; - - BOOL offline = client.btVenmo_status == BTVenmoStatusOffline; - - NSURL *venmoAppSwitchURL = [BTVenmoAppSwitchRequestURL appSwitchURLForMerchantID:client.merchantId - returnURLScheme:self.returnURLScheme - offline:offline - error:error]; - if (*error) { - return NO; - } - - BOOL success = [[UIApplication sharedApplication] openURL:venmoAppSwitchURL]; - if (success) { - [client postAnalyticsEvent:@"ios.venmo.appswitch.initiate.success"]; - } else { - [client postAnalyticsEvent:@"ios.venmo.appswitch.initiate.error.failure"]; - if (error) { - *error = [NSError errorWithDomain:BTAppSwitchErrorDomain - code:BTAppSwitchErrorFailed - userInfo:@{NSLocalizedDescriptionKey: @"UIApplication failed to perform app switch to Venmo."}]; - } - return NO; - } - return YES; -} - - -- (BOOL)appSwitchAvailableForClient:(BTClient *)client { - return [self appSwitchErrorForClient:client] == nil; -} - -- (NSError *)appSwitchErrorForClient:(BTClient *)client { - - if ([client btVenmo_status] == BTVenmoStatusOff) { - return [NSError errorWithDomain:BTAppSwitchErrorDomain - code:BTAppSwitchErrorDisabled - userInfo:@{ NSLocalizedDescriptionKey:@"Venmo App Switch is not enabled." }]; - } - - if (!self.returnURLScheme) { - return [NSError errorWithDomain:BTAppSwitchErrorDomain - code:BTAppSwitchErrorIntegrationReturnURLScheme - userInfo:@{ NSLocalizedDescriptionKey:@"Venmo App Switch requires you to set a returnURLScheme. Please call +[Braintree setReturnURLScheme:]." }]; - } - - if (!client.merchantId) { - return [NSError errorWithDomain:BTAppSwitchErrorDomain - code:BTAppSwitchErrorIntegrationMerchantId - userInfo:@{ NSLocalizedDescriptionKey:@"Venmo App Switch could not find all required fields in the client token." }]; - } - - if (![BTVenmoAppSwitchRequestURL isAppSwitchAvailable]) { - return [NSError errorWithDomain:BTAppSwitchErrorDomain - code:BTAppSwitchErrorAppNotAvailable - userInfo:@{ NSLocalizedDescriptionKey:@"No version of the Venmo app is installed on this device that is compatible with app switch." }]; - } - - return nil; -} - -- (BOOL)canHandleReturnURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication { - return [BTVenmoAppSwitchReturnURL isValidURL:url sourceApplication:sourceApplication]; -} - -- (void)handleReturnURL:(NSURL *)url { - BTVenmoAppSwitchReturnURL *returnURL = [[BTVenmoAppSwitchReturnURL alloc] initWithURL:url]; - switch (returnURL.state) { - case BTVenmoAppSwitchReturnURLStateSucceeded: { - [self informDelegateWillCreatePaymentMethod]; - [self.client postAnalyticsEvent:@"ios.venmo.appswitch.handle.authorized"]; - - switch (self.client.btVenmo_status) { - case BTVenmoStatusOffline: - /* FALLTHROUGH */ - [self.client postAnalyticsEvent:@"ios.venmo.appswitch.handle.offline"]; - case BTVenmoStatusProduction: { - [self.client fetchPaymentMethodWithNonce:returnURL.paymentMethod.nonce - success:^(BTPaymentMethod *paymentMethod){ - [self.client postAnalyticsEvent:@"ios.venmo.appswitch.handle.success"]; - [self informDelegateDidCreatePaymentMethod:paymentMethod]; - } - failure:^(NSError *error){ - [self.client postAnalyticsEvent:@"ios.venmo.appswitch.handle.client-failure"]; - NSError *venmoError = [NSError errorWithDomain:BTAppSwitchErrorDomain - code:BTAppSwitchErrorFailureFetchingPaymentMethod - userInfo:@{NSLocalizedDescriptionKey: @"Failed to fetch payment method", - NSUnderlyingErrorKey: error}]; - [self informDelegateDidFailWithError:venmoError]; - }]; - break; - } - case BTVenmoStatusOff: { - NSError *error = [NSError errorWithDomain:BTAppSwitchErrorDomain - code:BTAppSwitchErrorDisabled - userInfo:@{ NSLocalizedDescriptionKey: @"Received a Venmo app switch return while Venmo is disabled" }]; - [self informDelegateDidFailWithError:error]; - [self.client postAnalyticsEvent:@"ios.venmo.appswitch.handle.off"]; - break; - } - } - break; - } - case BTVenmoAppSwitchReturnURLStateFailed: - [self.client postAnalyticsEvent:@"ios.venmo.appswitch.handle.error"]; - [self informDelegateDidFailWithError:returnURL.error]; - break; - case BTVenmoAppSwitchReturnURLStateCanceled: - [self.client postAnalyticsEvent:@"ios.venmo.appswitch.handle.cancel"]; - [self informDelegateDidCancel]; - break; - default: - // should not happen - break; - } -} - -#pragma mark Delegate Informers - -- (void)informDelegateWillCreatePaymentMethod { - if ([self.delegate respondsToSelector:@selector(appSwitcherWillCreatePaymentMethod:)]) { - [self.delegate appSwitcherWillCreatePaymentMethod:self]; - } -} - -- (void)informDelegateDidCreatePaymentMethod:(BTPaymentMethod *)paymentMethod { - if ([self.delegate respondsToSelector:@selector(appSwitcher:didCreatePaymentMethod:)]) { - [self.delegate appSwitcher:self didCreatePaymentMethod:paymentMethod]; - } -} - -- (void)informDelegateDidFailWithError:(NSError *)error { - if ([self.delegate respondsToSelector:@selector(appSwitcher:didFailWithError:)]) { - [self.delegate appSwitcher:self didFailWithError:error]; - } -} - -- (void)informDelegateDidFailWithErrorCode:(NSInteger)code localizedDescription:(NSString *)localizedDescription { - NSError *error = [NSError errorWithDomain:BTAppSwitchErrorDomain - code:code - userInfo:@{ NSLocalizedDescriptionKey:localizedDescription }]; - [self informDelegateDidFailWithError:error]; -} - -- (void)informDelegateDidCancel { - if ([self.delegate respondsToSelector:@selector(appSwitcherDidCancel:)]) { - [self.delegate appSwitcherDidCancel:self]; - } -} - -#pragma mark Singleton - -+ (instancetype)sharedHandler { - static BTVenmoAppSwitchHandler *instance; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - instance = [[BTVenmoAppSwitchHandler alloc] init]; - }); - return instance; -} - -@end diff --git a/Pods/Braintree/Braintree/Venmo/BTVenmoAppSwitchHandler_Internal.h b/Pods/Braintree/Braintree/Venmo/BTVenmoAppSwitchHandler_Internal.h deleted file mode 100644 index eb786c9..0000000 --- a/Pods/Braintree/Braintree/Venmo/BTVenmoAppSwitchHandler_Internal.h +++ /dev/null @@ -1,8 +0,0 @@ -#import "BTVenmoAppSwitchHandler.h" -#import "BTClient.h" - -@interface BTVenmoAppSwitchHandler () - -@property (nonatomic, strong) BTClient *client; - -@end diff --git a/Pods/Braintree/Braintree/Venmo/BTVenmoAppSwitchRequestURL.h b/Pods/Braintree/Braintree/Venmo/BTVenmoAppSwitchRequestURL.h deleted file mode 100644 index a0c962f..0000000 --- a/Pods/Braintree/Braintree/Venmo/BTVenmoAppSwitchRequestURL.h +++ /dev/null @@ -1,17 +0,0 @@ -#import - -@interface BTVenmoAppSwitchRequestURL : NSObject - -/// Whether app to the Venmo app is available -+ (BOOL)isAppSwitchAvailable; - -/// Create an app switch URL -/// -/// @param merchantID The merchant ID -/// @param scheme The return URL scheme, e.g. "com.yourcompany.Your-App.payments" -/// @param offline Whether the Venmo app should be in "offline" mode, useful for testing/development -/// -/// @return The resulting URL -+ (NSURL *)appSwitchURLForMerchantID:(NSString *)merchantID returnURLScheme:(NSString *)scheme offline:(BOOL)offline error:(NSError * __autoreleasing *)error; - -@end diff --git a/Pods/Braintree/Braintree/Venmo/BTVenmoAppSwitchRequestURL.m b/Pods/Braintree/Braintree/Venmo/BTVenmoAppSwitchRequestURL.m deleted file mode 100644 index 30cfef2..0000000 --- a/Pods/Braintree/Braintree/Venmo/BTVenmoAppSwitchRequestURL.m +++ /dev/null @@ -1,59 +0,0 @@ -#import - -#import "BTVenmoAppSwitchRequestURL.h" -#import "BTURLUtils.h" -#import "BTAppSwitchErrors.h" - -#define kXCallbackTemplate @"scheme://x-callback-url/path" -#define kVenmoScheme @"com.venmo.touch.v1" - -@implementation BTVenmoAppSwitchRequestURL - -+ (BOOL)isAppSwitchAvailable { - NSURL *url = [self appSwitchBaseURLComponents].URL; - return [[UIApplication sharedApplication] canOpenURL:url]; -} - -+ (NSURL *)appSwitchURLForMerchantID:(NSString *)merchantID returnURLScheme:(NSString *)scheme offline:(BOOL)offline error:(NSError * __autoreleasing *)error { - NSString *bundleDisplayName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleDisplayName"]; - if (!bundleDisplayName) { - if (error) { - *error = [NSError errorWithDomain:BTAppSwitchErrorDomain - code:BTAppSwitchErrorIntegrationInvalidBundleDisplayName - userInfo:@{NSLocalizedDescriptionKey: @"CFBundleDisplayName must be non-nil. Please set 'Bundle display name' in your Info.plist."}]; - } - return nil; - } - - NSMutableDictionary *appSwitchParameters = [@{@"x-success": [self returnURLWithScheme:scheme result:@"success"], - @"x-error": [self returnURLWithScheme:scheme result:@"error"], - @"x-cancel": [self returnURLWithScheme:scheme result:@"cancel"], - @"x-source": bundleDisplayName, - @"braintree_merchant_id": merchantID, - } mutableCopy]; - if (offline) { - appSwitchParameters[@"offline"] = @1; - } - - NSURLComponents *components = [self appSwitchBaseURLComponents]; - components.percentEncodedQuery = [BTURLUtils queryStringWithDictionary:appSwitchParameters]; - return components.URL; -} - -#pragma mark Internal Helpers - -+ (NSURL *)returnURLWithScheme:(NSString *)scheme result:(NSString *)result { - NSURLComponents *components = [NSURLComponents componentsWithString:kXCallbackTemplate]; - components.scheme = scheme; - components.percentEncodedPath = [NSString stringWithFormat:@"/vzero/auth/venmo/%@", result]; - return components.URL; -} - -+ (NSURLComponents *)appSwitchBaseURLComponents { - NSURLComponents *components = [NSURLComponents componentsWithString:kXCallbackTemplate]; - components.scheme = kVenmoScheme; - components.percentEncodedPath = @"/vzero/auth"; - return components; -} - -@end diff --git a/Pods/Braintree/Braintree/Venmo/BTVenmoAppSwitchReturnURL.h b/Pods/Braintree/Braintree/Venmo/BTVenmoAppSwitchReturnURL.h deleted file mode 100644 index f989f48..0000000 --- a/Pods/Braintree/Braintree/Venmo/BTVenmoAppSwitchReturnURL.h +++ /dev/null @@ -1,47 +0,0 @@ -#import -#import "BTPaymentMethod.h" - -extern NSString *const BTVenmoAppSwitchReturnURLErrorDomain; - -typedef NS_ENUM(NSUInteger, BTVenmoAppSwitchReturnURLState) { - BTVenmoAppSwitchReturnURLStateSucceeded, - BTVenmoAppSwitchReturnURLStateFailed, - BTVenmoAppSwitchReturnURLStateCanceled, - BTVenmoAppSwitchReturnURLStateUnknown -}; - -/// This class interprets URLs received from the Venmo app via app switch returns. -/// -/// Venmo Touch app switch authorization requests should result in success, failure or -/// user-initiated cancelation. These states are communicated in the url. -@interface BTVenmoAppSwitchReturnURL : NSObject - -/// Evaluates whether the url-sourceApplication pair represents a valid Venmo Touch return. -/// -/// @param url an app switch return URL -/// @param sourceApplication an app switch source application -/// -/// @return YES if the url-sourceApplication pair likely represent a Venmo Touch app switch return -+ (BOOL)isValidURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication; - -/// Initializes a new BTVenmoAppSwitchReturnURL -/// -/// @param url an incoming app switch url -/// -/// @return An initialized app switch return url -- (instancetype)initWithURL:(NSURL *)url; - -/// The overall status of the app switch - success, failure or cancelation -@property (nonatomic, assign, readonly) BTVenmoAppSwitchReturnURLState state; - -/// Creates and returns a payment method object that represents the payment method -/// authorized in the Venmo app switch. -/// -/// @return A new payment method object with a transactable or vaultable nonce -@property (nonatomic, strong, readonly) BTPaymentMethod *paymentMethod; - -/// If the return URL's state is BTVenmoAppSwitchReturnURLStateFailed, -/// the error returned from Venmo via the app switch. -@property (nonatomic, strong, readonly) NSError *error; - -@end diff --git a/Pods/Braintree/Braintree/Venmo/BTVenmoAppSwitchReturnURL.m b/Pods/Braintree/Braintree/Venmo/BTVenmoAppSwitchReturnURL.m deleted file mode 100644 index 4695bb8..0000000 --- a/Pods/Braintree/Braintree/Venmo/BTVenmoAppSwitchReturnURL.m +++ /dev/null @@ -1,45 +0,0 @@ -#import "BTVenmoAppSwitchReturnURL.h" -#import "BTMutableCardPaymentMethod.h" -#import "BTURLUtils.h" - -NSString *const BTVenmoAppSwitchReturnURLErrorDomain = @"BTVenmoAppSwitchReturnURLErrorDomain"; - -@implementation BTVenmoAppSwitchReturnURL - -+ (BOOL)isValidURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication { - return [self isVenmoSourceApplication:sourceApplication] || [self isFakeWalletURL:url andSourceApplication:sourceApplication]; -} - -- (instancetype)initWithURL:(NSURL *)url { - self = [self init]; - if (self) { - NSDictionary *parameters = [BTURLUtils dictionaryForQueryString:url.query]; - if ([url.path isEqualToString:@"/vzero/auth/venmo/success"]) { - _state = BTVenmoAppSwitchReturnURLStateSucceeded; - _paymentMethod = [[BTMutableCardPaymentMethod alloc] init]; - _paymentMethod.nonce = parameters[@"paymentMethodNonce"]; - } else if ([url.path isEqualToString:@"/vzero/auth/venmo/error"]) { - _state = BTVenmoAppSwitchReturnURLStateFailed; - NSString *errorMessage = parameters[@"errorMessage"]; - NSInteger errorCode = [parameters[@"errorCode"] integerValue]; - _error = [NSError errorWithDomain:BTVenmoAppSwitchReturnURLErrorDomain code:errorCode userInfo:(errorMessage != nil ? @{ NSLocalizedDescriptionKey: errorMessage } : nil)]; - } else if ([url.path isEqualToString:@"/vzero/auth/venmo/cancel"]) { - _state = BTVenmoAppSwitchReturnURLStateCanceled; - } else { - _state = BTVenmoAppSwitchReturnURLStateUnknown; - } - } - return self; -} - -#pragma mark Internal Helpers - -+ (BOOL)isVenmoSourceApplication:(NSString *)sourceApplication { - return [sourceApplication isEqualToString:@"net.kortina.labs.Venmo"]; -} - -+ (BOOL)isFakeWalletURL:(NSURL *)url andSourceApplication:(NSString *)sourceApplication { - return [sourceApplication isEqualToString:@"com.paypal.PPClient.Debug"] && [url.host isEqualToString:@"x-callback-url"] && [url.path hasPrefix:@"/vzero/auth/venmo/"]; -} - -@end