From 218b48b379ec40166b89a048faa62eaa8d206b70 Mon Sep 17 00:00:00 2001 From: Victor Peschenkov Date: Tue, 17 Mar 2020 21:37:49 +0300 Subject: [PATCH] Add an opaque flag --- ISSUE_TEMPLATE.md | 38 +--- LetterAvatarKit.podspec | 2 +- LetterAvatarKit.xcodeproj/project.pbxproj | 30 ++- .../Character+LetterAvatarKit.swift | 1 + .../Extensions/UIColor+LetterAvatarKit.swift | 18 +- LetterAvatarKit/LetterAvatarBuilder.swift | 18 +- .../LetterAvatarBuilderConfiguration.swift | 29 +-- LetterAvatarKit/LetterAvatarMaker.swift | 14 +- .../LetterAvatarMakerExtendable.swift | 17 +- LetterAvatarKitObjcExample/Podfile.lock | 2 +- LetterAvatarKitObjcExample/Pods/Manifest.lock | 2 +- .../Pods/Pods.xcodeproj/project.pbxproj | 213 +++++++++--------- .../LetterAvatarKit/LetterAvatarKit.xcconfig | 1 + ...-LetterAvatarKitObjcExample.debug.xcconfig | 1 + ...etterAvatarKitObjcExample.release.xcconfig | 1 + .../UIImage+LetterAvatarKitTests.swift | 4 +- .../LetterAvatarBuilderTests.swift | 8 +- .../LetterAvatarMakerTests.swift | 8 +- README.md | 9 +- docs/Classes.html | 4 +- docs/Classes/LetterAvatarBuilder.html | 6 +- .../LetterAvatarBuilderConfiguration.html | 70 ++++-- docs/Extensions.html | 4 +- docs/Extensions/UIColor.html | 4 +- docs/Extensions/UIImage.html | 4 +- docs/badge.svg | 4 +- .../Contents/Resources/Documents/Classes.html | 4 +- .../Classes/LetterAvatarBuilder.html | 6 +- .../LetterAvatarBuilderConfiguration.html | 70 ++++-- .../Resources/Documents/Extensions.html | 4 +- .../Documents/Extensions/UIColor.html | 4 +- .../Documents/Extensions/UIImage.html | 4 +- .../Contents/Resources/Documents/index.html | 29 ++- .../Contents/Resources/Documents/search.json | 2 +- .../Contents/Resources/docSet.dsidx | Bin 12288 -> 12288 bytes docs/docsets/LetterAvatarKit.tgz | Bin 48327 -> 48565 bytes docs/index.html | 29 ++- docs/search.json | 2 +- docs/undocumented.json | 6 +- 39 files changed, 377 insertions(+), 295 deletions(-) diff --git a/ISSUE_TEMPLATE.md b/ISSUE_TEMPLATE.md index edc71b4..ded394c 100644 --- a/ISSUE_TEMPLATE.md +++ b/ISSUE_TEMPLATE.md @@ -1,39 +1,3 @@ ### Description -Describe your issue here. - -### Requirements (place an `x` in each of the `[ ]`) - -* [ ] I've read and agree to the [Code of Conduct](CODE_OF_CONDUCT.md). -* [ ] I've read and understood the [Contributing guidelines](CONTRIBUTING.md) and have done my best effort to follow them. -* [ ] I've searched for any related issues and avoided creating a duplicate issue. - ---- - -### Bug Report - -Filling out the following details about bugs will help us solve your issue sooner. - -#### Reproducible in: - -LetterAvatarKit version: - -iOS version: - -#### Steps to reproduce: - -1. -2. -3. - -#### Expected result: - -What you expected to happen - -#### Actual result: - -What actually happened - -#### Attachments: - -Logs, screenshots, screencast, sample project, funny gif, etc. +Describe your issue here. \ No newline at end of file diff --git a/LetterAvatarKit.podspec b/LetterAvatarKit.podspec index a1b7551..05f848c 100644 --- a/LetterAvatarKit.podspec +++ b/LetterAvatarKit.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |spec| spec.name = 'LetterAvatarKit' spec.platform = :ios, '8.0' - spec.version = '1.2.1' + spec.version = '1.2.2' spec.license = { :type => 'MIT' } spec.homepage = 'https://github.com/vpeschenkov/LetterAvatarKit' spec.authors = { 'Viktor Peschenkov' => 'v.peschenkov@gmail.com' } diff --git a/LetterAvatarKit.xcodeproj/project.pbxproj b/LetterAvatarKit.xcodeproj/project.pbxproj index 7a53036..ab2c66f 100644 --- a/LetterAvatarKit.xcodeproj/project.pbxproj +++ b/LetterAvatarKit.xcodeproj/project.pbxproj @@ -213,6 +213,7 @@ EB8EC4051F85929E000B7641 /* Frameworks */, EB8EC4061F85929E000B7641 /* Headers */, EB8EC4071F85929E000B7641 /* Resources */, + 3505688D24215D6500FB2E54 /* SwiftLint */, ); buildRules = ( ); @@ -307,6 +308,27 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + 3505688D24215D6500FB2E54 /* SwiftLint */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = SwiftLint; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "if which swiftlint >/dev/null; then\n swiftlint\nelse\n echo \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n"; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ EB8EC4041F85929E000B7641 /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -485,8 +507,8 @@ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MARKETING_VERSION = 1.2.1; - PRODUCT_BUNDLE_IDENTIFIER = org.peschenkov.LetterAvatarKit; + MARKETING_VERSION = 1.2.2; + PRODUCT_BUNDLE_IDENTIFIER = com.github.vpeschenkov.LetterAvatarKit; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; @@ -510,8 +532,8 @@ INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 8.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MARKETING_VERSION = 1.2.1; - PRODUCT_BUNDLE_IDENTIFIER = org.peschenkov.LetterAvatarKit; + MARKETING_VERSION = 1.2.2; + PRODUCT_BUNDLE_IDENTIFIER = com.github.vpeschenkov.LetterAvatarKit; PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_VERSION = 5.0; diff --git a/LetterAvatarKit/Extensions/Character+LetterAvatarKit.swift b/LetterAvatarKit/Extensions/Character+LetterAvatarKit.swift index f536cdb..7d09e72 100644 --- a/LetterAvatarKit/Extensions/Character+LetterAvatarKit.swift +++ b/LetterAvatarKit/Extensions/Character+LetterAvatarKit.swift @@ -26,6 +26,7 @@ import Foundation internal extension Character { + var ASCIIValue: Int { let unicode = String(self).unicodeScalars return Int(unicode[unicode.startIndex].value) diff --git a/LetterAvatarKit/Extensions/UIColor+LetterAvatarKit.swift b/LetterAvatarKit/Extensions/UIColor+LetterAvatarKit.swift index e431612..143eb69 100644 --- a/LetterAvatarKit/Extensions/UIColor+LetterAvatarKit.swift +++ b/LetterAvatarKit/Extensions/UIColor+LetterAvatarKit.swift @@ -51,8 +51,9 @@ func LKUIColorByRGB(red: CGFloat, green: CGFloat, blue: CGFloat) -> UIColor { } extension UIColor { + private struct ColorKey { - static var value = "org.peschenkov.LetterAvatarKit.UIColor.colors" + static var propertyReference = "org.peschenkov.LetterAvatarKit.UIColor.colors" } /// Colors from http://flatuicolors.com/ public enum HEXColor { @@ -95,8 +96,8 @@ extension UIColor { /// ASBESTOS static let asbestosColor = 0x7F8C8D } - static public var colors: [ UIColor ] { - var colors = objc_getAssociatedObject(self, &ColorKey.value) + static public var colors: [UIColor] { + var colors = objc_getAssociatedObject(self, &ColorKey.propertyReference) if colors == nil { colors = [ LKUIColorByHEX(HEXColor.turquoiseColor), @@ -119,9 +120,14 @@ extension UIColor { LKUIColorByHEX(HEXColor.silverColor), LKUIColorByHEX(HEXColor.asbestosColor) ] - objc_setAssociatedObject(self, &ColorKey.value, colors, .OBJC_ASSOCIATION_RETAIN_NONATOMIC) - return colors as? [ UIColor ] ?? [] + objc_setAssociatedObject( + self, + &ColorKey.propertyReference, + colors, + .OBJC_ASSOCIATION_RETAIN_NONATOMIC + ) + return colors as? [UIColor] ?? [] } - return colors as? [ UIColor ] ?? [] + return colors as? [UIColor] ?? [] } } diff --git a/LetterAvatarKit/LetterAvatarBuilder.swift b/LetterAvatarKit/LetterAvatarBuilder.swift index 703dd25..efb47af 100644 --- a/LetterAvatarKit/LetterAvatarBuilder.swift +++ b/LetterAvatarKit/LetterAvatarBuilder.swift @@ -31,7 +31,7 @@ open class LetterAvatarBuilder: NSObject { /// Makes a letter-based avatar image by using a given configuration. /// /// - Parameters: - /// - configuration: The configuration that is used to draw a + /// - configuration: A configuration that is used to draw a /// letter-based avatar image. /// /// - Returns: Returns whether an instance of UIImage or nil. @@ -47,7 +47,7 @@ open class LetterAvatarBuilder: NSObject { } let usernameInfo = UsernameInfo( username: username, - singleLetter: configuration.isSingleLettered + singleLetter: configuration.useSingleLetter ) var colorIndex = 0 if colors.count > 1 { @@ -69,7 +69,7 @@ open class LetterAvatarBuilder: NSObject { backgroundColor: CGColor ) -> UIImage? { let rect = CGRect(x: 0.0, y: 0.0, width: configuration.size.width, height: configuration.size.height) - UIGraphicsBeginImageContextWithOptions(rect.size, false, UIScreen.main.scale) + UIGraphicsBeginImageContextWithOptions(rect.size, configuration.isOpaque, UIScreen.main.scale) if let context = UIGraphicsGetCurrentContext() { let borderWidth = configuration.borderWidth let borderColor = configuration.borderColor.cgColor @@ -77,7 +77,7 @@ open class LetterAvatarBuilder: NSObject { context.setFillColor(backgroundColor) context.setStrokeColor(borderColor) context.setLineWidth(borderWidth) - if (configuration.isCircle) { + if configuration.circle { context.fillEllipse(in: rect) context.strokeEllipse(in: strokeRect) } else { @@ -111,7 +111,7 @@ open class LetterAvatarBuilder: NSObject { private func makeFitFont(withFont font: UIFont?, forSize size: CGSize) -> UIFont { guard let font = font else { - return UIFont.systemFont(ofSize:min(size.height, size.width) / 2.0) + return UIFont.systemFont(ofSize: min(size.height, size.width) / 2.0) } let fitFont = font.withSize(min(size.height, size.width) / 2.0) return fitFont.pointSize < font.pointSize ? fitFont : font @@ -129,7 +129,7 @@ private class UsernameInfo { } private let username: String - private let isSingleLettered: Bool + private let useSingleLetter: Bool private typealias InfoContainer = (letters: String, value: Int) private lazy var userInfo: InfoContainer = { @@ -139,7 +139,7 @@ private class UsernameInfo { let components = username.components(separatedBy: " ") // If there are whether two words or more if components.count > 1 { - if !isSingleLettered { + if !useSingleLetter { for component in components.prefix(3) { if let letter = component.first { letters.append(letter) @@ -165,7 +165,7 @@ private class UsernameInfo { // If single Letter is passed as false but the string is a single char, // this line fails due to out of bounds exception. // https://github.com/vpeschenkov/LetterAvatarKit/issues/11 - if !isSingleLettered && component.count >= 2 { + if !useSingleLetter && component.count >= 2 { // Process the second name letter let startIndex = component.index(after: component.startIndex) let endIndex = component.index(component.startIndex, offsetBy: 2) @@ -183,6 +183,6 @@ private class UsernameInfo { init(username: String, singleLetter: Bool) { self.username = username - self.isSingleLettered = singleLetter + self.useSingleLetter = singleLetter } } diff --git a/LetterAvatarKit/LetterAvatarBuilderConfiguration.swift b/LetterAvatarKit/LetterAvatarBuilderConfiguration.swift index fb7bf26..ac6ec90 100644 --- a/LetterAvatarKit/LetterAvatarBuilderConfiguration.swift +++ b/LetterAvatarKit/LetterAvatarBuilderConfiguration.swift @@ -29,35 +29,38 @@ import Foundation /// Uses for configurating a LetterAvatarBuilder instance. @objc(LKLetterAvatarBuilderConfiguration) open class LetterAvatarBuilderConfiguration: NSObject { - /// The size of an avatar image. + /// A size of an avatar image. @objc(size) open var size: CGSize = CGSize(width: 80, height: 80) - /// The username. + /// An username. @objc(username) open var username: String? - /// The flag that indicates of using single only one letter, otherwise, + /// A flag that indicates of using single only one letter, otherwise, /// as much as wil be possible to obtain. But no more than 3 letters. - @objc(isSingleLettered) - open var isSingleLettered: Bool = false - /// The letters font. + @objc(useSingleLetter) + open var useSingleLetter: Bool = false + /// Letters font. @objc(lettersFont) open var lettersFont: UIFont? - /// The colors are used to draw image. + /// Colors that are used to draw image. @objc(lettersColor) open var lettersColor: UIColor = LKUIColorByRGB(red: 236, green: 240, blue: 241) - /// The background colors of the image. + /// Background colors of the image. @objc(backgroundColors) open var backgroundColors: [UIColor] = UIColor.colors - /// The letters font attributes. + /// Letters font attributes. @objc(lettersFontAttributes) open var lettersFontAttributes: [NSAttributedString.Key: Any]? /// Indicates whether to generate circle or square image. - @objc(isCircle) - open var isCircle: Bool = false - /// The border width of the image. + @objc(circle) + open var circle: Bool = false + /// A border width of the image. @objc(borderWidth) open var borderWidth: CGFloat = 0.0 - /// The border color of the image. + /// A border color of the image. @objc(borderColor) open var borderColor: UIColor = UIColor.white + /// A Boolean flag indicating whether the avatar is opaque. + @objc(isOpaque) + open var isOpaque: Bool = false } diff --git a/LetterAvatarKit/LetterAvatarMaker.swift b/LetterAvatarKit/LetterAvatarMaker.swift index 1da0237..1399b6d 100644 --- a/LetterAvatarKit/LetterAvatarMaker.swift +++ b/LetterAvatarKit/LetterAvatarMaker.swift @@ -56,8 +56,8 @@ extension LetterAvatarMaker: LetterAvatarMakerExtendable { } @discardableResult - public func setSingleLettered(_ isSingleLettered: Bool) -> LetterAvatarMakerExtendable { - configuration.isSingleLettered = isSingleLettered + public func useSingleLetter(_ useSingleLetter: Bool) -> LetterAvatarMakerExtendable { + configuration.useSingleLetter = useSingleLetter return self } @@ -88,8 +88,14 @@ extension LetterAvatarMaker: LetterAvatarMakerExtendable { } @discardableResult - public func setCircle(_ isCircle: Bool) -> LetterAvatarMakerExtendable { - configuration.isCircle = isCircle + public func setCircle(_ circle: Bool) -> LetterAvatarMakerExtendable { + configuration.circle = circle + return self + } + + @discardableResult + public func drawOpaqueBackground(_ isOpaque: Bool) -> LetterAvatarMakerExtendable { + configuration.isOpaque = isOpaque return self } diff --git a/LetterAvatarKit/LetterAvatarMakerExtendable.swift b/LetterAvatarKit/LetterAvatarMakerExtendable.swift index 859c7e3..08ce924 100644 --- a/LetterAvatarKit/LetterAvatarMakerExtendable.swift +++ b/LetterAvatarKit/LetterAvatarMakerExtendable.swift @@ -27,30 +27,19 @@ import UIKit import Foundation public protocol LetterAvatarMakerExtendable: NSObjectProtocol { - /// Sets the image size which is used to draw the image. func setSize(_ size: CGSize) -> LetterAvatarMakerExtendable - /// Sets a username size which is used to draw the image. func setUsername(_ username: String) -> LetterAvatarMakerExtendable - /// Sets the letter font which is used to draw the letters. func setLettersFont(_ lettersFont: UIFont?) -> LetterAvatarMakerExtendable - /// Sets the letter color which is used to draw the letters. func setLettersColor(_ lettersColor: UIColor) -> LetterAvatarMakerExtendable - /// Sets whether to generate single-lettered image or not. - func setSingleLettered(_ isSingleLettered: Bool) -> LetterAvatarMakerExtendable - /// Sets the letter background colors which are used to draw the letters. + func useSingleLetter(_ useSingleLetter: Bool) -> LetterAvatarMakerExtendable func setBackgroundColors(_ backgroundColors: [UIColor]) -> LetterAvatarMakerExtendable - /// Sets the letter font attributes which are used to draw the letters. func setLettersFontAttributes( _ lettersFontAttributes: [NSAttributedString.Key: Any]? ) -> LetterAvatarMakerExtendable - // Sets whether to generate circle or square image. - func setCircle(_ isCircle: Bool) -> LetterAvatarMakerExtendable - /// Sets the image border width which is used to draw the image. + func setCircle(_ circle: Bool) -> LetterAvatarMakerExtendable func setBorderWidth(_ borderWidth: CGFloat) -> LetterAvatarMakerExtendable - /// Sets the image border color which is used to draw the image. func setBorderColor(_ borderColor: UIColor) -> LetterAvatarMakerExtendable - /// Builds the image using the `maker` values + func drawOpaqueBackground(_ isOpaque: Bool) -> LetterAvatarMakerExtendable func build(maker: (LetterAvatarBuilderConfiguration) -> Void) -> UIImage? - /// Builds the image using self parameters func build() -> UIImage? } diff --git a/LetterAvatarKitObjcExample/Podfile.lock b/LetterAvatarKitObjcExample/Podfile.lock index afad2bb..b73c190 100644 --- a/LetterAvatarKitObjcExample/Podfile.lock +++ b/LetterAvatarKitObjcExample/Podfile.lock @@ -13,4 +13,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: acab86cc8cc5517bd2b945abae924096efac0c35 -COCOAPODS: 1.7.1 +COCOAPODS: 1.8.4 diff --git a/LetterAvatarKitObjcExample/Pods/Manifest.lock b/LetterAvatarKitObjcExample/Pods/Manifest.lock index afad2bb..b73c190 100644 --- a/LetterAvatarKitObjcExample/Pods/Manifest.lock +++ b/LetterAvatarKitObjcExample/Pods/Manifest.lock @@ -13,4 +13,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: acab86cc8cc5517bd2b945abae924096efac0c35 -COCOAPODS: 1.7.1 +COCOAPODS: 1.8.4 diff --git a/LetterAvatarKitObjcExample/Pods/Pods.xcodeproj/project.pbxproj b/LetterAvatarKitObjcExample/Pods/Pods.xcodeproj/project.pbxproj index cc70c38..082a09e 100644 --- a/LetterAvatarKitObjcExample/Pods/Pods.xcodeproj/project.pbxproj +++ b/LetterAvatarKitObjcExample/Pods/Pods.xcodeproj/project.pbxproj @@ -7,26 +7,26 @@ objects = { /* Begin PBXBuildFile section */ - 0978367E3F5451F340CA495C4FFDB859 /* Pods-LetterAvatarKitObjcExample-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 88633E760E91F5DB5655075DC75A60E1 /* Pods-LetterAvatarKitObjcExample-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 31C19330A09EA010A3F16331279E4278 /* LetterAvatarKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 07AB794DBA7D3FC57F1CE52437FF92E1 /* LetterAvatarKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 3EAC7C4CAD6C4D39A1371DDBC49CC1D8 /* Character+LetterAvatarKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DECEB5DDF01C1A0EB8418234BA17452 /* Character+LetterAvatarKit.swift */; }; - 5FE050AE22C3F548BD61D2EDD086D61C /* LetterAvatarKit.h in Headers */ = {isa = PBXBuildFile; fileRef = B7CCCAA4FF8B6649CE22562854BFC69F /* LetterAvatarKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 775BA76DFD2A0DE79C8F2D7438F42B35 /* UIImage+LetterAvatarKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E3DF090B2D999F9611E4367EEC38BAA /* UIImage+LetterAvatarKit.swift */; }; - 84E9878917DE3C1002D47A74D33E4AD7 /* LetterAvatarMakerExtendable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 779F265110D2453F4BA9536A5B157965 /* LetterAvatarMakerExtendable.swift */; }; - 88603C964B151DC40E6B24B96D201FE3 /* LetterAvatarKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5ABBC4D9458F23B38DA6C5B5F0834B76 /* LetterAvatarKit-dummy.m */; }; - AF0D1F005C4B6E8A60CFE21F061D1046 /* UIColor+LetterAvatarKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E9BF32A454FA11EA9B0A51D7585499E /* UIColor+LetterAvatarKit.swift */; }; - AF7D8AFC7327015369033C95DABFA39F /* Pods-LetterAvatarKitObjcExample-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C50D087AE41542C5113C0257B89E33B /* Pods-LetterAvatarKitObjcExample-dummy.m */; }; - B350CC59DE13BBB76419ABDB7F945814 /* LetterAvatarBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FEC7E67B4ACCE8D3C71AF49056DA9A8 /* LetterAvatarBuilder.swift */; }; - B58EAABF9B2A52A942D58EF8A7B7BFC6 /* String+LetterAvatarKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6F719F05868B0CE9C301D85F81B90A5 /* String+LetterAvatarKit.swift */; }; - B9DAF5BAC6CE2077BCDE8AD5AFD48B9C /* LetterAvatarMaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76265D46F45CA31F735AE944955F3090 /* LetterAvatarMaker.swift */; }; - C93C3F559078166255FF89BE6FD61702 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 436BAA54A31999B53B3CC7115C55FE50 /* Foundation.framework */; }; - D74AEE3035A37B4370BE770B833C071F /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 312B988EF117AE4DE76A268D970131FE /* UIKit.framework */; }; - D7BFE5ED63239496A5F8D21165DD050F /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 436BAA54A31999B53B3CC7115C55FE50 /* Foundation.framework */; }; - E39D3B670AF23127D1C9834507FD11E6 /* LetterAvatarBuilderConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85D288C2A8894EFA80619913FAE56490 /* LetterAvatarBuilderConfiguration.swift */; }; + 0F55DC4A827824DF0F5F9B22A254D434 /* UIColor+LetterAvatarKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9E9BF32A454FA11EA9B0A51D7585499E /* UIColor+LetterAvatarKit.swift */; }; + 19E09AFDD0E82A054C5A307432F1DC76 /* Pods-LetterAvatarKitObjcExample-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 88633E760E91F5DB5655075DC75A60E1 /* Pods-LetterAvatarKitObjcExample-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 20A650EB1E7C8045010B4AFA6CCD89F3 /* LetterAvatarBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FEC7E67B4ACCE8D3C71AF49056DA9A8 /* LetterAvatarBuilder.swift */; }; + 20F9424F46741F8CA46D7393BA9DBD0B /* LetterAvatarKit-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 5ABBC4D9458F23B38DA6C5B5F0834B76 /* LetterAvatarKit-dummy.m */; }; + 22FC893DD469F2835F808E08D669F97E /* Pods-LetterAvatarKitObjcExample-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 4C50D087AE41542C5113C0257B89E33B /* Pods-LetterAvatarKitObjcExample-dummy.m */; }; + 2A7D08911242525AC2BBAC1E626EEF10 /* Character+LetterAvatarKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7DECEB5DDF01C1A0EB8418234BA17452 /* Character+LetterAvatarKit.swift */; }; + 2BCB24FE50C2EE156DA2BB4CED48174A /* LetterAvatarKit.h in Headers */ = {isa = PBXBuildFile; fileRef = B7CCCAA4FF8B6649CE22562854BFC69F /* LetterAvatarKit.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 3AA27E2E6603E85CC93A5E5A586F5113 /* LetterAvatarBuilderConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 85D288C2A8894EFA80619913FAE56490 /* LetterAvatarBuilderConfiguration.swift */; }; + 6862CB88019C04E95E8C888DB44C1DBB /* LetterAvatarMakerExtendable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 779F265110D2453F4BA9536A5B157965 /* LetterAvatarMakerExtendable.swift */; }; + 7DD95FBC166F6E09EBABCD489AFF7D6B /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 436BAA54A31999B53B3CC7115C55FE50 /* Foundation.framework */; }; + 8B24B7503165556923D8D926CFD8CC68 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 312B988EF117AE4DE76A268D970131FE /* UIKit.framework */; }; + B1569E201C78FE50BDDD0CF4D5D2FBE7 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 436BAA54A31999B53B3CC7115C55FE50 /* Foundation.framework */; }; + BD82DD765EA58EE3C568864183550384 /* LetterAvatarMaker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76265D46F45CA31F735AE944955F3090 /* LetterAvatarMaker.swift */; }; + D4FC11C3CCE142EFCA7E04FC96135329 /* LetterAvatarKit-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 07AB794DBA7D3FC57F1CE52437FF92E1 /* LetterAvatarKit-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DB46711390F009E0B32FB4154D7A09CF /* UIImage+LetterAvatarKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E3DF090B2D999F9611E4367EEC38BAA /* UIImage+LetterAvatarKit.swift */; }; + E544276E5EFFA82AAD26DCFF5232943B /* String+LetterAvatarKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6F719F05868B0CE9C301D85F81B90A5 /* String+LetterAvatarKit.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - A7000429EFACADA0AE9CBEB0F4E5831A /* PBXContainerItemProxy */ = { + 8DE6AB1BD549A72EC0A776AB806BDBB2 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; @@ -106,20 +106,20 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 5733BFB46B66285653A00F6C379A296E /* Frameworks */ = { + 37326C57105ABBA3169413E6D77B4E05 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D7BFE5ED63239496A5F8D21165DD050F /* Foundation.framework in Frameworks */, - D74AEE3035A37B4370BE770B833C071F /* UIKit.framework in Frameworks */, + B1569E201C78FE50BDDD0CF4D5D2FBE7 /* Foundation.framework in Frameworks */, + 8B24B7503165556923D8D926CFD8CC68 /* UIKit.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - E568217C551F2D879F935E3717DB7FDC /* Frameworks */ = { + 72109030A4A8B6CEF133440CF76C147E /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - C93C3F559078166255FF89BE6FD61702 /* Foundation.framework in Frameworks */, + 7DD95FBC166F6E09EBABCD489AFF7D6B /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -286,20 +286,20 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 74C21E89AE4B03F88316DD7CB1106E9F /* Headers */ = { + 244FF069859AA7B8EF61387439FDB6D6 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 0978367E3F5451F340CA495C4FFDB859 /* Pods-LetterAvatarKitObjcExample-umbrella.h in Headers */, + D4FC11C3CCE142EFCA7E04FC96135329 /* LetterAvatarKit-umbrella.h in Headers */, + 2BCB24FE50C2EE156DA2BB4CED48174A /* LetterAvatarKit.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; - B0EB1381E102FE58DB288352AB4D573C /* Headers */ = { + 8C4CA30676DD84336A90C0B81821C6F8 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 31C19330A09EA010A3F16331279E4278 /* LetterAvatarKit-umbrella.h in Headers */, - 5FE050AE22C3F548BD61D2EDD086D61C /* LetterAvatarKit.h in Headers */, + 19E09AFDD0E82A054C5A307432F1DC76 /* Pods-LetterAvatarKitObjcExample-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -308,17 +308,17 @@ /* Begin PBXNativeTarget section */ 961D4DE155D1D97BBB2F3D48799AEBA6 /* Pods-LetterAvatarKitObjcExample */ = { isa = PBXNativeTarget; - buildConfigurationList = BE003672DB4BCDDCB9281585A8CE6757 /* Build configuration list for PBXNativeTarget "Pods-LetterAvatarKitObjcExample" */; + buildConfigurationList = 21C81B05DC95C00DC105754220F0ABAA /* Build configuration list for PBXNativeTarget "Pods-LetterAvatarKitObjcExample" */; buildPhases = ( - 74C21E89AE4B03F88316DD7CB1106E9F /* Headers */, - 03CF480BFC466FFCB0C9FC2DC68DF210 /* Sources */, - E568217C551F2D879F935E3717DB7FDC /* Frameworks */, - 32800F4E0ECC325B952B7ECA9AEB3B4E /* Resources */, + 8C4CA30676DD84336A90C0B81821C6F8 /* Headers */, + A005208B949051BF0BBEF0C1F28B2F37 /* Sources */, + 72109030A4A8B6CEF133440CF76C147E /* Frameworks */, + BC96164068B73C39027385B25784F896 /* Resources */, ); buildRules = ( ); dependencies = ( - BC422CCCEB5AC9F3D027C42E604F1881 /* PBXTargetDependency */, + AF902EEB956ABBEF6BB1160F6D5208DE /* PBXTargetDependency */, ); name = "Pods-LetterAvatarKitObjcExample"; productName = "Pods-LetterAvatarKitObjcExample"; @@ -327,12 +327,12 @@ }; D9F7736046D8F388E749400613707326 /* LetterAvatarKit */ = { isa = PBXNativeTarget; - buildConfigurationList = 8A46E85A0AD40FE9108AC26D4CD0105B /* Build configuration list for PBXNativeTarget "LetterAvatarKit" */; + buildConfigurationList = 2DEE0AF4C0359DC99C7A3AD35023A462 /* Build configuration list for PBXNativeTarget "LetterAvatarKit" */; buildPhases = ( - B0EB1381E102FE58DB288352AB4D573C /* Headers */, - 275851725C9F5328722FA5FADB3F30A2 /* Sources */, - 5733BFB46B66285653A00F6C379A296E /* Frameworks */, - 52610AE02381C5ED6305C6D17AFEB92A /* Resources */, + 244FF069859AA7B8EF61387439FDB6D6 /* Headers */, + 8B2194BDA23785641939F6F168A694CD /* Sources */, + 37326C57105ABBA3169413E6D77B4E05 /* Frameworks */, + A40D67E92FB588D365887D7880FEA65B /* Resources */, ); buildRules = ( ); @@ -349,8 +349,8 @@ BFDFE7DC352907FC980B868725387E98 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1020; - LastUpgradeCheck = 1020; + LastSwiftUpdateCheck = 1100; + LastUpgradeCheck = 1100; }; buildConfigurationList = 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */; compatibilityVersion = "Xcode 8.0"; @@ -358,6 +358,7 @@ hasScannedForEncodings = 0; knownRegions = ( en, + Base, ); mainGroup = CF1408CF629C7361332E53B88F7BD30C; productRefGroup = CBBA3580666EF57882AD99C9D40D1EDE /* Products */; @@ -371,14 +372,14 @@ /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 32800F4E0ECC325B952B7ECA9AEB3B4E /* Resources */ = { + A40D67E92FB588D365887D7880FEA65B /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 52610AE02381C5ED6305C6D17AFEB92A /* Resources */ = { + BC96164068B73C39027385B25784F896 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( @@ -388,45 +389,45 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 03CF480BFC466FFCB0C9FC2DC68DF210 /* Sources */ = { + 8B2194BDA23785641939F6F168A694CD /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - AF7D8AFC7327015369033C95DABFA39F /* Pods-LetterAvatarKitObjcExample-dummy.m in Sources */, + 2A7D08911242525AC2BBAC1E626EEF10 /* Character+LetterAvatarKit.swift in Sources */, + 20A650EB1E7C8045010B4AFA6CCD89F3 /* LetterAvatarBuilder.swift in Sources */, + 3AA27E2E6603E85CC93A5E5A586F5113 /* LetterAvatarBuilderConfiguration.swift in Sources */, + 20F9424F46741F8CA46D7393BA9DBD0B /* LetterAvatarKit-dummy.m in Sources */, + BD82DD765EA58EE3C568864183550384 /* LetterAvatarMaker.swift in Sources */, + 6862CB88019C04E95E8C888DB44C1DBB /* LetterAvatarMakerExtendable.swift in Sources */, + E544276E5EFFA82AAD26DCFF5232943B /* String+LetterAvatarKit.swift in Sources */, + 0F55DC4A827824DF0F5F9B22A254D434 /* UIColor+LetterAvatarKit.swift in Sources */, + DB46711390F009E0B32FB4154D7A09CF /* UIImage+LetterAvatarKit.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 275851725C9F5328722FA5FADB3F30A2 /* Sources */ = { + A005208B949051BF0BBEF0C1F28B2F37 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 3EAC7C4CAD6C4D39A1371DDBC49CC1D8 /* Character+LetterAvatarKit.swift in Sources */, - B350CC59DE13BBB76419ABDB7F945814 /* LetterAvatarBuilder.swift in Sources */, - E39D3B670AF23127D1C9834507FD11E6 /* LetterAvatarBuilderConfiguration.swift in Sources */, - 88603C964B151DC40E6B24B96D201FE3 /* LetterAvatarKit-dummy.m in Sources */, - B9DAF5BAC6CE2077BCDE8AD5AFD48B9C /* LetterAvatarMaker.swift in Sources */, - 84E9878917DE3C1002D47A74D33E4AD7 /* LetterAvatarMakerExtendable.swift in Sources */, - B58EAABF9B2A52A942D58EF8A7B7BFC6 /* String+LetterAvatarKit.swift in Sources */, - AF0D1F005C4B6E8A60CFE21F061D1046 /* UIColor+LetterAvatarKit.swift in Sources */, - 775BA76DFD2A0DE79C8F2D7438F42B35 /* UIImage+LetterAvatarKit.swift in Sources */, + 22FC893DD469F2835F808E08D669F97E /* Pods-LetterAvatarKitObjcExample-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - BC422CCCEB5AC9F3D027C42E604F1881 /* PBXTargetDependency */ = { + AF902EEB956ABBEF6BB1160F6D5208DE /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = LetterAvatarKit; target = D9F7736046D8F388E749400613707326 /* LetterAvatarKit */; - targetProxy = A7000429EFACADA0AE9CBEB0F4E5831A /* PBXContainerItemProxy */; + targetProxy = 8DE6AB1BD549A72EC0A776AB806BDBB2 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 20F56439532C7449B909CA0DDD945A5E /* Debug */ = { + 796BD5DC5B845DD6995BA0644FD4EF00 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7A59E7C021AB8A1E75725C609C654583 /* Pods-LetterAvatarKitObjcExample.debug.xcconfig */; + baseConfigurationReference = 72BBB8D54CE353B808481EBAFCAD212B /* Pods-LetterAvatarKitObjcExample.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; @@ -452,41 +453,11 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; - }; - 3150EF79E3048F685C2A517E3ECEE3D9 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 353245E92E269EFC1F09D150390FC13E /* LetterAvatarKit.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/LetterAvatarKit/LetterAvatarKit-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/LetterAvatarKit/LetterAvatarKit-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/LetterAvatarKit/LetterAvatarKit.modulemap"; - PRODUCT_MODULE_NAME = LetterAvatarKit; - PRODUCT_NAME = LetterAvatarKit; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.0; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; + name = Release; }; 8F17DC3A99F99FBAD606CE6963886315 /* Release */ = { isa = XCBuildConfiguration; @@ -612,9 +583,41 @@ }; name = Debug; }; - CEB77619B8D611AB2694F984BE5D98AD /* Release */ = { + BC5A75FDAB8203B1E49B3C21CCBD2253 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 72BBB8D54CE353B808481EBAFCAD212B /* Pods-LetterAvatarKitObjcExample.release.xcconfig */; + baseConfigurationReference = 353245E92E269EFC1F09D150390FC13E /* LetterAvatarKit.xcconfig */; + buildSettings = { + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/LetterAvatarKit/LetterAvatarKit-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/LetterAvatarKit/LetterAvatarKit-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/LetterAvatarKit/LetterAvatarKit.modulemap"; + PRODUCT_MODULE_NAME = LetterAvatarKit; + PRODUCT_NAME = LetterAvatarKit; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + CD6202D1007CE72501CA574A30513B17 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 7A59E7C021AB8A1E75725C609C654583 /* Pods-LetterAvatarKitObjcExample.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; @@ -640,13 +643,12 @@ SDKROOT = iphoneos; SKIP_INSTALL = YES; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; - F477C4E74012C11A2C07C3063D202FC8 /* Release */ = { + F6E7BA1528F475FF8DD495AF2A708E48 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 353245E92E269EFC1F09D150390FC13E /* LetterAvatarKit.xcconfig */; buildSettings = { @@ -672,38 +674,37 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + 21C81B05DC95C00DC105754220F0ABAA /* Build configuration list for PBXNativeTarget "Pods-LetterAvatarKitObjcExample" */ = { isa = XCConfigurationList; buildConfigurations = ( - 916E0404255105F480DC4950B7625F7A /* Debug */, - 8F17DC3A99F99FBAD606CE6963886315 /* Release */, + CD6202D1007CE72501CA574A30513B17 /* Debug */, + 796BD5DC5B845DD6995BA0644FD4EF00 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 8A46E85A0AD40FE9108AC26D4CD0105B /* Build configuration list for PBXNativeTarget "LetterAvatarKit" */ = { + 2DEE0AF4C0359DC99C7A3AD35023A462 /* Build configuration list for PBXNativeTarget "LetterAvatarKit" */ = { isa = XCConfigurationList; buildConfigurations = ( - 3150EF79E3048F685C2A517E3ECEE3D9 /* Debug */, - F477C4E74012C11A2C07C3063D202FC8 /* Release */, + F6E7BA1528F475FF8DD495AF2A708E48 /* Debug */, + BC5A75FDAB8203B1E49B3C21CCBD2253 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - BE003672DB4BCDDCB9281585A8CE6757 /* Build configuration list for PBXNativeTarget "Pods-LetterAvatarKitObjcExample" */ = { + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 20F56439532C7449B909CA0DDD945A5E /* Debug */, - CEB77619B8D611AB2694F984BE5D98AD /* Release */, + 916E0404255105F480DC4950B7625F7A /* Debug */, + 8F17DC3A99F99FBAD606CE6963886315 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/LetterAvatarKitObjcExample/Pods/Target Support Files/LetterAvatarKit/LetterAvatarKit.xcconfig b/LetterAvatarKitObjcExample/Pods/Target Support Files/LetterAvatarKit/LetterAvatarKit.xcconfig index 6377542..15980a8 100644 --- a/LetterAvatarKitObjcExample/Pods/Target Support Files/LetterAvatarKit/LetterAvatarKit.xcconfig +++ b/LetterAvatarKitObjcExample/Pods/Target Support Files/LetterAvatarKit/LetterAvatarKit.xcconfig @@ -8,3 +8,4 @@ PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/LetterAvatarKitObjcExample/Pods/Target Support Files/Pods-LetterAvatarKitObjcExample/Pods-LetterAvatarKitObjcExample.debug.xcconfig b/LetterAvatarKitObjcExample/Pods/Target Support Files/Pods-LetterAvatarKitObjcExample/Pods-LetterAvatarKitObjcExample.debug.xcconfig index 77f9aac..0c0e6c6 100644 --- a/LetterAvatarKitObjcExample/Pods/Target Support Files/Pods-LetterAvatarKitObjcExample/Pods-LetterAvatarKitObjcExample.debug.xcconfig +++ b/LetterAvatarKitObjcExample/Pods/Target Support Files/Pods-LetterAvatarKitObjcExample/Pods-LetterAvatarKitObjcExample.debug.xcconfig @@ -9,3 +9,4 @@ PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/LetterAvatarKitObjcExample/Pods/Target Support Files/Pods-LetterAvatarKitObjcExample/Pods-LetterAvatarKitObjcExample.release.xcconfig b/LetterAvatarKitObjcExample/Pods/Target Support Files/Pods-LetterAvatarKitObjcExample/Pods-LetterAvatarKitObjcExample.release.xcconfig index 77f9aac..0c0e6c6 100644 --- a/LetterAvatarKitObjcExample/Pods/Target Support Files/Pods-LetterAvatarKitObjcExample/Pods-LetterAvatarKitObjcExample.release.xcconfig +++ b/LetterAvatarKitObjcExample/Pods/Target Support Files/Pods-LetterAvatarKitObjcExample/Pods-LetterAvatarKitObjcExample.release.xcconfig @@ -9,3 +9,4 @@ PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods +USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/LetterAvatarKitTests/Extensions/UIImage+LetterAvatarKitTests.swift b/LetterAvatarKitTests/Extensions/UIImage+LetterAvatarKitTests.swift index d283e00..38208bc 100644 --- a/LetterAvatarKitTests/Extensions/UIImage+LetterAvatarKitTests.swift +++ b/LetterAvatarKitTests/Extensions/UIImage+LetterAvatarKitTests.swift @@ -45,7 +45,7 @@ class UIImageLetterAvatarKitTests: XCTestCase { // Make a configuration let configuration = LetterAvatarBuilderConfiguration() configuration.username = "Avatar Test" - configuration.isSingleLettered = true + configuration.useSingleLetter = true // Make images let avatarImage = UIImage.makeLetterAvatar(withConfiguration: configuration) let testAvatarImage = UIImage(named: "LetterAvatarSingleLetterTestImage") @@ -84,7 +84,7 @@ class UIImageLetterAvatarKitTests: XCTestCase { // Make a configuration let configuration = LetterAvatarBuilderConfiguration() configuration.username = "Avatar" - configuration.isSingleLettered = true + configuration.useSingleLetter = true // Make images let avatarImage = UIImage.makeLetterAvatar(withConfiguration: configuration) let testAvatarImage = UIImage(named: "LetterAvatarSingleLetterTestImage") diff --git a/LetterAvatarKitTests/LetterAvatarBuilderTests.swift b/LetterAvatarKitTests/LetterAvatarBuilderTests.swift index 4165430..529ebd8 100644 --- a/LetterAvatarKitTests/LetterAvatarBuilderTests.swift +++ b/LetterAvatarKitTests/LetterAvatarBuilderTests.swift @@ -48,7 +48,7 @@ class LetterAvatarBuilderTests: XCTestCase { // Make a configuration let configuration = LetterAvatarBuilderConfiguration() configuration.username = "Avatar Test" - configuration.isSingleLettered = true + configuration.useSingleLetter = true // Make images let avatarImage = LetterAvatarBuilder().makeAvatar(with: configuration) let testImage = UIImage(named: "LetterAvatarSingleLetterTestImage") @@ -84,7 +84,7 @@ class LetterAvatarBuilderTests: XCTestCase { func testAvatarBuildWithOneWordUsernameAndSingleLetterFlag() { let configuration = LetterAvatarBuilderConfiguration() configuration.username = "Avatar" - configuration.isSingleLettered = true + configuration.useSingleLetter = true let avatarImage = LetterAvatarBuilder().makeAvatar(with: configuration) let testImage = UIImage(named: "LetterAvatarSingleLetterTestImage") XCTAssertEqual(avatarImage, testImage) @@ -93,7 +93,7 @@ class LetterAvatarBuilderTests: XCTestCase { func testAvatarBuildWithOnlyOneBackgroundColor() { let configuration = LetterAvatarBuilderConfiguration() configuration.username = "Avatar" - configuration.isSingleLettered = true + configuration.useSingleLetter = true configuration.backgroundColors = [ .red ] let avatarImage = LetterAvatarBuilder().makeAvatar(with: configuration) XCTAssertNotNil(avatarImage) @@ -105,7 +105,7 @@ class LetterAvatarBuilderTests: XCTestCase { func testAvatarBuildFailureCannotIncrementBeyondEndIndex() { let configuration = LetterAvatarBuilderConfiguration() configuration.username = "N" - configuration.isSingleLettered = true + configuration.useSingleLetter = true configuration.backgroundColors = [ .red ] let avatarImage = LetterAvatarBuilder().makeAvatar(with: configuration) XCTAssertNotNil(avatarImage) diff --git a/LetterAvatarKitTests/LetterAvatarMakerTests.swift b/LetterAvatarKitTests/LetterAvatarMakerTests.swift index 93d7a9f..61cfce1 100644 --- a/LetterAvatarKitTests/LetterAvatarMakerTests.swift +++ b/LetterAvatarKitTests/LetterAvatarMakerTests.swift @@ -49,7 +49,7 @@ class LetterAvatarMakerTests: XCTestCase { // Make images let avatarImage = LetterAvatarMaker() .setUsername("Avatar Test") - .setSingleLettered(true) + .useSingleLetter(true) .build() let testImage = UIImage(named: "LetterAvatarSingleLetterTestImage") XCTAssertEqual(avatarImage, testImage) @@ -80,7 +80,7 @@ class LetterAvatarMakerTests: XCTestCase { func testAvatarBuildWithOneWordUsernameAndSingleLetterFlag() { let avatarImage = LetterAvatarMaker() .setUsername("Avatar") - .setSingleLettered(true) + .useSingleLetter(true) .build() let testImage = UIImage(named: "LetterAvatarSingleLetterTestImage") XCTAssertEqual(avatarImage, testImage) @@ -89,7 +89,7 @@ class LetterAvatarMakerTests: XCTestCase { func testAvatarBuildWithOnlyOneBackgroundColor() { let avatarImage = LetterAvatarMaker() .setUsername("Avatar") - .setSingleLettered(true) + .useSingleLetter(true) .setBackgroundColors([ .red ]) .build() XCTAssertNotNil(avatarImage) @@ -101,7 +101,7 @@ class LetterAvatarMakerTests: XCTestCase { func testAvatarBuildFailureCannotIncrementBeyondEndIndex() { let avatarImage = LetterAvatarMaker() .setUsername("N") - .setSingleLettered(true) + .useSingleLetter(true) .setBackgroundColors([ .red ]) .build() XCTAssertNotNil(avatarImage) diff --git a/README.md b/README.md index 3cf4c96..0a7e0ca 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ `LetterAvatarKit` is available through [CocoaPods](https://cocoapods.org). To install it, simply add the following line to your Podfile: ```ruby -pod "LetterAvatarKit", "1.2.1" # Swift 5.0 +pod "LetterAvatarKit", "1.2.2" # Swift 5.0+ pod "LetterAvatarKit", "1.1.7" # Swift 4.2 pod "LetterAvatarKit", "1.1.5" # Swift 4.0 ``` @@ -35,7 +35,7 @@ pod "LetterAvatarKit", "1.1.5" # Swift 4.0 Add this to `Cartfile` ```ruby -github "vpeschenkov/LetterAvatarKit" == 1.2.1 # Swift 5.0 +github "vpeschenkov/LetterAvatarKit" == 1.2.2 # Swift 5.0+ github "vpeschenkov/LetterAvatarKit" == 1.1.7 # Swift 4.2 github "vpeschenkov/LetterAvatarKit" == 1.1.5 # Swift 4.0 ``` @@ -166,6 +166,11 @@ open var borderWidth: CGFloat = 0.0 open var borderColor: UIColor = UIColor.white ``` +```swift +/// A Boolean flag indicating whether the avatar is opaque. +open var opaque: Bool = false +``` + ## Community Questions, comments, issues, and pull requests are welcome! diff --git a/docs/Classes.html b/docs/Classes.html index 789343f..c9c9a5a 100644 --- a/docs/Classes.html +++ b/docs/Classes.html @@ -14,7 +14,7 @@
-

LetterAvatarKit Docs (81% documented)

+

LetterAvatarKit Docs (82% documented)

View on GitHub

@@ -132,7 +132,7 @@

Declaration

diff --git a/docs/Classes/LetterAvatarBuilder.html b/docs/Classes/LetterAvatarBuilder.html index 1093fc6..0b95f0e 100644 --- a/docs/Classes/LetterAvatarBuilder.html +++ b/docs/Classes/LetterAvatarBuilder.html @@ -14,7 +14,7 @@
-

LetterAvatarKit Docs (81% documented)

+

LetterAvatarKit Docs (82% documented)

View on GitHub

@@ -109,7 +109,7 @@

Parameters

-

The configuration that is used to draw a +

A configuration that is used to draw a letter-based avatar image.

@@ -129,7 +129,7 @@

Return Value

diff --git a/docs/Classes/LetterAvatarBuilderConfiguration.html b/docs/Classes/LetterAvatarBuilderConfiguration.html index f392bfd..316c9f4 100644 --- a/docs/Classes/LetterAvatarBuilderConfiguration.html +++ b/docs/Classes/LetterAvatarBuilderConfiguration.html @@ -14,7 +14,7 @@
-

LetterAvatarKit Docs (81% documented)

+

LetterAvatarKit Docs (82% documented)

View on GitHub

@@ -85,7 +85,7 @@

LetterAvatarBuilderConfiguration

-

The size of an avatar image.

+

A size of an avatar image.

@@ -113,7 +113,7 @@

Declaration

-

The username.

+

An username.

@@ -131,9 +131,9 @@

Declaration

  • @@ -141,7 +141,7 @@

    Declaration

    -

    The flag that indicates of using single only one letter, otherwise, +

    A flag that indicates of using single only one letter, otherwise, as much as wil be possible to obtain. But no more than 3 letters.

    @@ -149,8 +149,8 @@

    Declaration

    Declaration

    Swift

    -
    @objc(isSingleLettered)
    -open var isSingleLettered: Bool
    +
    @objc(useSingleLetter)
    +open var useSingleLetter: Bool
    @@ -170,7 +170,7 @@

    Declaration

    -

    The letters font.

    +

    Letters font.

    @@ -198,7 +198,7 @@

    Declaration

    -

    The colors are used to draw image.

    +

    Colors that are used to draw image.

    @@ -226,7 +226,7 @@

    Declaration

    -

    The background colors of the image.

    +

    Background colors of the image.

    @@ -254,7 +254,7 @@

    Declaration

    -

    The letters font attributes.

    +

    Letters font attributes.

    @@ -272,9 +272,9 @@

    Declaration

  • - - - isCircle + + + circle
    @@ -289,8 +289,8 @@

    Declaration

    Declaration

    Swift

    -
    @objc(isCircle)
    -open var isCircle: Bool
    +
    @objc(circle)
    +open var circle: Bool
    @@ -310,7 +310,7 @@

    Declaration

    -

    The border width of the image.

    +

    A border width of the image.

    @@ -338,7 +338,7 @@

    Declaration

    -

    The border color of the image.

    +

    A border color of the image.

    @@ -348,6 +348,34 @@

    Declaration

    @objc(borderColor)
     open var borderColor: UIColor
    +
    +
    +
    +
  • +
  • +
  • +
    + + + + isOpaque + +
    +
    +
    +
    +
    +
    +

    A Boolean flag indicating whether the avatar is opaque.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc(isOpaque)
    +open var isOpaque: Bool
    +
    @@ -358,7 +386,7 @@

    Declaration

  • diff --git a/docs/Extensions.html b/docs/Extensions.html index c073184..66cb8b1 100644 --- a/docs/Extensions.html +++ b/docs/Extensions.html @@ -14,7 +14,7 @@
    -

    LetterAvatarKit Docs (81% documented)

    +

    LetterAvatarKit Docs (82% documented)

    View on GitHub

    @@ -128,7 +128,7 @@

    Declaration

    diff --git a/docs/Extensions/UIColor.html b/docs/Extensions/UIColor.html index 020d758..41b08c6 100644 --- a/docs/Extensions/UIColor.html +++ b/docs/Extensions/UIColor.html @@ -14,7 +14,7 @@
    -

    LetterAvatarKit Docs (81% documented)

    +

    LetterAvatarKit Docs (82% documented)

    View on GitHub

    @@ -102,7 +102,7 @@

    Declaration

    diff --git a/docs/Extensions/UIImage.html b/docs/Extensions/UIImage.html index 91428d7..3f02765 100644 --- a/docs/Extensions/UIImage.html +++ b/docs/Extensions/UIImage.html @@ -14,7 +14,7 @@
    -

    LetterAvatarKit Docs (81% documented)

    +

    LetterAvatarKit Docs (82% documented)

    View on GitHub

    @@ -245,7 +245,7 @@

    Return Value

    diff --git a/docs/badge.svg b/docs/badge.svg index b5adf50..d53230b 100644 --- a/docs/badge.svg +++ b/docs/badge.svg @@ -19,10 +19,10 @@ documentation - 81% + 82% - 81% + 82% diff --git a/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Classes.html index 789343f..c9c9a5a 100644 --- a/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Classes.html +++ b/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Classes.html @@ -14,7 +14,7 @@
    -

    LetterAvatarKit Docs (81% documented)

    +

    LetterAvatarKit Docs (82% documented)

    View on GitHub

    @@ -132,7 +132,7 @@

    Declaration

    diff --git a/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Classes/LetterAvatarBuilder.html b/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Classes/LetterAvatarBuilder.html index 1093fc6..0b95f0e 100644 --- a/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Classes/LetterAvatarBuilder.html +++ b/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Classes/LetterAvatarBuilder.html @@ -14,7 +14,7 @@
    -

    LetterAvatarKit Docs (81% documented)

    +

    LetterAvatarKit Docs (82% documented)

    View on GitHub

    @@ -109,7 +109,7 @@

    Parameters

    -

    The configuration that is used to draw a +

    A configuration that is used to draw a letter-based avatar image.

    @@ -129,7 +129,7 @@

    Return Value

    diff --git a/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Classes/LetterAvatarBuilderConfiguration.html b/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Classes/LetterAvatarBuilderConfiguration.html index f392bfd..316c9f4 100644 --- a/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Classes/LetterAvatarBuilderConfiguration.html +++ b/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Classes/LetterAvatarBuilderConfiguration.html @@ -14,7 +14,7 @@
    -

    LetterAvatarKit Docs (81% documented)

    +

    LetterAvatarKit Docs (82% documented)

    View on GitHub

    @@ -85,7 +85,7 @@

    LetterAvatarBuilderConfiguration

    -

    The size of an avatar image.

    +

    A size of an avatar image.

    @@ -113,7 +113,7 @@

    Declaration

    -

    The username.

    +

    An username.

    @@ -131,9 +131,9 @@

    Declaration

  • @@ -141,7 +141,7 @@

    Declaration

    -

    The flag that indicates of using single only one letter, otherwise, +

    A flag that indicates of using single only one letter, otherwise, as much as wil be possible to obtain. But no more than 3 letters.

    @@ -149,8 +149,8 @@

    Declaration

    Declaration

    Swift

    -
    @objc(isSingleLettered)
    -open var isSingleLettered: Bool
    +
    @objc(useSingleLetter)
    +open var useSingleLetter: Bool
    @@ -170,7 +170,7 @@

    Declaration

    -

    The letters font.

    +

    Letters font.

    @@ -198,7 +198,7 @@

    Declaration

    -

    The colors are used to draw image.

    +

    Colors that are used to draw image.

    @@ -226,7 +226,7 @@

    Declaration

    -

    The background colors of the image.

    +

    Background colors of the image.

    @@ -254,7 +254,7 @@

    Declaration

    -

    The letters font attributes.

    +

    Letters font attributes.

    @@ -272,9 +272,9 @@

    Declaration

  • - - - isCircle + + + circle
    @@ -289,8 +289,8 @@

    Declaration

    Declaration

    Swift

    -
    @objc(isCircle)
    -open var isCircle: Bool
    +
    @objc(circle)
    +open var circle: Bool
    @@ -310,7 +310,7 @@

    Declaration

    -

    The border width of the image.

    +

    A border width of the image.

    @@ -338,7 +338,7 @@

    Declaration

    -

    The border color of the image.

    +

    A border color of the image.

    @@ -348,6 +348,34 @@

    Declaration

    @objc(borderColor)
     open var borderColor: UIColor
    +
    +
    +
    +
  • +
  • +
  • +
    + + + + isOpaque + +
    +
    +
    +
    +
    +
    +

    A Boolean flag indicating whether the avatar is opaque.

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    @objc(isOpaque)
    +open var isOpaque: Bool
    +
    @@ -358,7 +386,7 @@

    Declaration

  • diff --git a/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Extensions.html b/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Extensions.html index c073184..66cb8b1 100644 --- a/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Extensions.html +++ b/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Extensions.html @@ -14,7 +14,7 @@
    -

    LetterAvatarKit Docs (81% documented)

    +

    LetterAvatarKit Docs (82% documented)

    View on GitHub

    @@ -128,7 +128,7 @@

    Declaration

    diff --git a/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Extensions/UIColor.html b/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Extensions/UIColor.html index 020d758..41b08c6 100644 --- a/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Extensions/UIColor.html +++ b/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Extensions/UIColor.html @@ -14,7 +14,7 @@
    -

    LetterAvatarKit Docs (81% documented)

    +

    LetterAvatarKit Docs (82% documented)

    View on GitHub

    @@ -102,7 +102,7 @@

    Declaration

    diff --git a/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Extensions/UIImage.html b/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Extensions/UIImage.html index 91428d7..3f02765 100644 --- a/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Extensions/UIImage.html +++ b/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/Extensions/UIImage.html @@ -14,7 +14,7 @@
    -

    LetterAvatarKit Docs (81% documented)

    +

    LetterAvatarKit Docs (82% documented)

    View on GitHub

    @@ -245,7 +245,7 @@

    Return Value

    diff --git a/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/index.html b/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/index.html index 71257fa..45a059f 100644 --- a/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/index.html @@ -13,7 +13,7 @@
    -

    LetterAvatarKit Docs (81% documented)

    +

    LetterAvatarKit Docs (82% documented)

    View on GitHub

    @@ -60,7 +60,8 @@

    LetterAvatarKit

    -

    +

    +

    LetterAvatarKit provides an UIImage extension for generating letter-based avatars/placeholders. There are a few images showing what you can achive by using this framework:

    @@ -71,19 +72,28 @@

    Requirements

  • iOS 8 and later
  • Swift 4.0 and later
  • +

    Features

    + +

    Installation

    CocoaPods

    LetterAvatarKit is available through CocoaPods. To install it, simply add the following line to your Podfile:

    -
    pod "LetterAvatarKit", "1.2.1" # Swift 5.0
    +
    pod "LetterAvatarKit", "1.2.2" # Swift 5.0+
     pod "LetterAvatarKit", "1.1.7" # Swift 4.2
     pod "LetterAvatarKit", "1.1.5" # Swift 4.0
     

    Carthage

    Add this to Cartfile

    -
    github "vpeschenkov/LetterAvatarKit" == 1.2.1 # Swift 5.0
    +
    github "vpeschenkov/LetterAvatarKit" == 1.2.2 # Swift 5.0+
     github "vpeschenkov/LetterAvatarKit" == 1.1.7 # Swift 4.2
     github "vpeschenkov/LetterAvatarKit" == 1.1.5 # Swift 4.0
     
    @@ -149,12 +159,12 @@

    Objective-C

    Customization

    You can configure the following properties of LetterAvatarBuilderConfiguration:

    -
    /// The size of an avatar image.
    -open var size: CGSize = CGSize(width: 80, height: 80)
    -
    /// The username.
     open var username: String?
     
    +
    /// The size of an avatar image.
    +open var size: CGSize = CGSize(width: 80, height: 80)
    +
    /// The flag that indicates of using single only one letter, otherwise,
     /// as much as wil be possible to obtain. But no more than 3 letters.
     open var isSingleLettered: Bool = false
    @@ -180,6 +190,9 @@ 

    Customization

    /// The border color of the image.
     open var borderColor: UIColor = UIColor.white
     
    +
    /// A Boolean flag indicating whether the avatar is opaque.
    +open var opaque: Bool = false
    +

    Community

    Questions, comments, issues, and pull requests are welcome!

    @@ -196,7 +209,7 @@

    License

    diff --git a/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/search.json b/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/search.json index 9615e43..e747f8b 100644 --- a/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/search.json +++ b/docs/docsets/LetterAvatarKit.docset/Contents/Resources/Documents/search.json @@ -1 +1 @@ -{"Extensions/UIImage.html#/c:@CM@LetterAvatarKit@@objc(cs)UIImage(cm)lk_makeLetterAvatarWithConfiguration:":{"name":"makeLetterAvatar(withConfiguration:)","abstract":"

    Makes an letter-based avatar image using given configuration.

    ","parent_name":"UIImage"},"Extensions/UIImage.html#/c:@CM@LetterAvatarKit@@objc(cs)UIImage(cm)lk_makeLetterAvatarWithUsername:":{"name":"makeLetterAvatar(withUsername:)","abstract":"

    Makes an letter-based avatar image using given username.

    ","parent_name":"UIImage"},"Extensions/UIImage.html#/c:@CM@LetterAvatarKit@@objc(cs)UIImage(cm)lk_makeLetterAvatarWithUsername:size:":{"name":"makeLetterAvatar(withUsername:size:)","abstract":"

    Makes an letter-based avatar image using given username and size.

    ","parent_name":"UIImage"},"Extensions/UIColor.html#/s:So7UIColorC15LetterAvatarKitE8HEXColorO":{"name":"HEXColor","abstract":"

    Colors from http://flatuicolors.com/

    ","parent_name":"UIColor"},"Extensions/UIColor.html":{"name":"UIColor"},"Extensions/UIImage.html":{"name":"UIImage"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)size":{"name":"size","abstract":"

    The size of an avatar image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)username":{"name":"username","abstract":"

    The username.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)isSingleLettered":{"name":"isSingleLettered","abstract":"

    The flag that indicates of using single only one letter, otherwise,","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)lettersFont":{"name":"lettersFont","abstract":"

    The letters font.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)lettersColor":{"name":"lettersColor","abstract":"

    The colors are used to draw image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)backgroundColors":{"name":"backgroundColors","abstract":"

    The background colors of the image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)lettersFontAttributes":{"name":"lettersFontAttributes","abstract":"

    The letters font attributes.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)isCircle":{"name":"isCircle","abstract":"

    Indicates whether to generate circle or square image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)borderWidth":{"name":"borderWidth","abstract":"

    The border width of the image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)borderColor":{"name":"borderColor","abstract":"

    The border color of the image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilder.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilder(im)makeAvatarWithConfiguration:":{"name":"makeAvatar(with:)","abstract":"

    Makes a letter-based avatar image by using a given configuration.

    ","parent_name":"LetterAvatarBuilder"},"Classes/LetterAvatarBuilder.html":{"name":"LetterAvatarBuilder","abstract":"

    Uses for making letter-based avatar images.

    "},"Classes/LetterAvatarBuilderConfiguration.html":{"name":"LetterAvatarBuilderConfiguration","abstract":"

    Uses for configurating a LetterAvatarBuilder instance.

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

    "}} \ No newline at end of file +{"Extensions/UIImage.html#/c:@CM@LetterAvatarKit@@objc(cs)UIImage(cm)lk_makeLetterAvatarWithConfiguration:":{"name":"makeLetterAvatar(withConfiguration:)","abstract":"

    Makes an letter-based avatar image using given configuration.

    ","parent_name":"UIImage"},"Extensions/UIImage.html#/c:@CM@LetterAvatarKit@@objc(cs)UIImage(cm)lk_makeLetterAvatarWithUsername:":{"name":"makeLetterAvatar(withUsername:)","abstract":"

    Makes an letter-based avatar image using given username.

    ","parent_name":"UIImage"},"Extensions/UIImage.html#/c:@CM@LetterAvatarKit@@objc(cs)UIImage(cm)lk_makeLetterAvatarWithUsername:size:":{"name":"makeLetterAvatar(withUsername:size:)","abstract":"

    Makes an letter-based avatar image using given username and size.

    ","parent_name":"UIImage"},"Extensions/UIColor.html#/s:So7UIColorC15LetterAvatarKitE8HEXColorO":{"name":"HEXColor","abstract":"

    Colors from http://flatuicolors.com/

    ","parent_name":"UIColor"},"Extensions/UIColor.html":{"name":"UIColor"},"Extensions/UIImage.html":{"name":"UIImage"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)size":{"name":"size","abstract":"

    A size of an avatar image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)username":{"name":"username","abstract":"

    An username.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)useSingleLetter":{"name":"useSingleLetter","abstract":"

    A flag that indicates of using single only one letter, otherwise,","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)lettersFont":{"name":"lettersFont","abstract":"

    Letters font.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)lettersColor":{"name":"lettersColor","abstract":"

    Colors that are used to draw image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)backgroundColors":{"name":"backgroundColors","abstract":"

    Background colors of the image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)lettersFontAttributes":{"name":"lettersFontAttributes","abstract":"

    Letters font attributes.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)circle":{"name":"circle","abstract":"

    Indicates whether to generate circle or square image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)borderWidth":{"name":"borderWidth","abstract":"

    A border width of the image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)borderColor":{"name":"borderColor","abstract":"

    A border color of the image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)isOpaque":{"name":"isOpaque","abstract":"

    A Boolean flag indicating whether the avatar is opaque.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilder.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilder(im)makeAvatarWithConfiguration:":{"name":"makeAvatar(with:)","abstract":"

    Makes a letter-based avatar image by using a given configuration.

    ","parent_name":"LetterAvatarBuilder"},"Classes/LetterAvatarBuilder.html":{"name":"LetterAvatarBuilder","abstract":"

    Uses for making letter-based avatar images.

    "},"Classes/LetterAvatarBuilderConfiguration.html":{"name":"LetterAvatarBuilderConfiguration","abstract":"

    Uses for configurating a LetterAvatarBuilder instance.

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

    "}} \ No newline at end of file diff --git a/docs/docsets/LetterAvatarKit.docset/Contents/Resources/docSet.dsidx b/docs/docsets/LetterAvatarKit.docset/Contents/Resources/docSet.dsidx index b7073ef4b97e09d18b590686182bffcb76f58f8a..756f67929ef99c4ba951de1ed98dca16d6a459e4 100644 GIT binary patch delta 450 zcmZojXh@hK%_uQZ#+gxKW5N=C12NVb2L4pOD}0u`k9oK9w)6bq$>cu4tYS5UT%1}QoSIycnV$#c z>1CAU=7fu|GWd$8PhKdlFu6j^m{EB08ZmoDp~-K=CJ6`#vN6cYHZf)v`xhh@mZnag zC|<<@<7}=KH)iDH;bUWvlx?g{&MZpK0V`lk-fSz`#Uv)j$;O~9+r(d5oEn^&m!6aA zlUh=eI(dS4HJVV-=1iH{%z9$1wG6CFSZjHou*tC=<=w{H!TE{3g+rEO8{0>&soVyf zu57XVX?$1tta$!%pWJMq;LSRjOHGYYY_g%60=sAgE6^8=P;VHqi`cOmi~BN8-Y8}P u^wKM}$$~S2_r8r8^|w=sGia6W)hWW19^p!7{BODX9fVd#)xqM delta 359 zcmZojXh@hK%_u%m#+gxkW5N=CJyAAJ2L4pOD}0u`k9oK9w)6bq$>cu9t;;ou^F5~% z$9fJi_FA@=Y^&G;*$mh?Hx^!JWl|NLTqml=C^C7er~;cXD}%3i`eZ?Ig~_i)jTwa| z%Zu4F3Qmp}o3yz_+=!7|fRBwqR6vSGGwovp6_2 zFFhyKC$*#`wJ0@ZGNX76AF9yiOqtotK$mhcuo<#(@jhW&%@)MFjkkmI1A85ZIL8L= z<6M)u^*Ei`Uh${#UFEal`OA~FvG4}#Hjq<+;;0V8>Qfk=&!pqft!o~f;#nsx3T_EZJ?)KZt1Poa;Dg^@rZf`Gwpp*wA zMa(({KMZs)6~op59M&?tU3$<5XL1_lQ#wTHLEZJCokF%2m@~C*C4szwAf6vb>5%+6 zE1n7RqsXKgpKe=Io2lCjHMeaiy%wFz?&oGPzo)sa^U>9(!}PH`|~>~Q~7-9tY^_lo1Sj+-M@4O9@nwD4KK}P zQXX%c=WLyn_7exI*PN2N=#0!*BnGJ>QXa3{ejtGY)4WcSAhI-mLLn<7Ng<2>hqu~q z*4mYSh^Eq&^;+nRX}WrPlXxj~#-1E<$L5M$9l>)p6`6s(!DOO?b}OtZqO#HK=C@SR zyf$rWsP@}#GnyIcyl(ZnO=XkFg#Po4EedxIU$^4F#0=VVh`YyP5^zx0R4>a&(-^JRnPn`Vl+Mt3POSdOJ5*E04qt8Os07(QCtB9x z<%!p)+EUZ!*OP68wqBGIIhRdZ=BY}T&kTI|CsU>-Uw)20oupZI!l}jP+E>o|IOtm2 zC~VGkOu<=xplReAQs+W~X+FZQxarc6(**#w8Q?XOUbe=oRr<9uW8-&Fst{!8j@;Py z{l8gR2~liiloSaxts4LZ`*rU6$5jCUw*{r+b^ zhPM8w@I2S`st!5T|0n|wWbrtj4*wgHc*rYx7><#WDds0iOM z3ffl_UU`q&$Ou?V*9IW>i=s{M4~$(tV{3Nc#fi%?!MECTd63H}!13l#`w6Z6^)mb{X|29g z-4Vs|1NUj8)_l8rW2!yr^6Yh}-Rn%MY{6y1ZS1B>?+h!=S*g`?s{8uC;&t}&0jD|Z zC0o`N^_q;EB%Ss%Q*Q)4;E9c^7DML%hpZ9U-6iIlp(KmAP_@VB+}%C1TW4c&d17m7 z@HJnoNG`)*+&<-CT8s&A+7kNA+-{$%;-soAq2+KBeD+_fPA|jDI=y%3I1#PYpP(Wk znW2&j>Bab_)CN!@3g5;AW33i87&rn(_UHGprF|a@SgxyDpKtfrjx1ii+7`)A1T+Et zv){EjVUvXTM?30k0n=c1QO4O0nhwKBUX`JQbW;l!z1pFs~JMpzsehVcxdFZ z>5W!0t~a3`zR_-~?l+6c=lCAm3%KT7cB_fj3j=L#wk&E&2nU|_s`b3=JuSvhuickf z>m7b$Tj!n|mx^1rHQJkgdyr;u1sAaH+c)&+vsd`k$>6>>p82vS)8u!fc5w*#sGZtq zcW8Jy{J$OK)uaEXP56DQ;omzDQcu_q(d{^ZsAsI9??Niam?2$GPF#N>q44(NU|?Y2 zYW2^5+165ENM$(l)*qc?4hl%u`)-E!&-`WAiV;YYB%#~IFr-Ph9WccVgS1tmzd#nl zMZJH%Z#{^_K?!+sYUqw24x&Gp+}}V2*>bt@e$0OEI@3yo*zf;+ zT8)L+H+$@ne1W*@`o2J3cQ(FFU#;f8cZC#f#=UpF#R|}XuUgx0A+mxa*VheI4qmyGyJ$bY*A95pEN^tyfGGB6MI`G5h@MFnITb23}g;v@; zJ#NnBG|8D;R(X0}wW*VaBcqh*tzw~cPo1cU62Ru8(6!^CuP8rwt5vb&rPK{xV|ZAg zV6Nk1$lXn%SAAXz`>O1$6>Op!K?T*+*|b52PP#rO_|ku+beopM#4JQ8^xeAB%*sxn z4hnvGxo)ISGqqIm>+HE+N$3_iX>VVlIh*20U$EGqOtLp-5t=DJ1J76JAZKRTH34SL zVW3Q?>%@py&yE0n+t4Hv;TH#04goLkPHAEr)hA;48Y)^}hy91R3AI*Z`j9&G8g@N$ z+c5`hL@kUmAwXY$%xp}^Y?bQf5hqENQ;pul#oClN%psmpoi)-+b5fym#x;quifQAj zF{(-4CV3j|o=jjWn1ViPL`?$DYkRfT2H+&iTCiD?(<@@h58QY<@1_kfgagC$G{-4SZo=}hKF1cMw! zB8y5cflQ`}VrW#zLHSUK-i-4BDblWetrre_Mw7ik$vg-7X^<|fL8`*Yb-+>y} zSQBll(;b^Of`4NgVYXAYa_F>*!OWGX~5SP>^0tW3Uly z6t-t8S`3AsKzdLiJf=k5ftG4WQ>$6?gJE!q7{k6Yx?4WNBU88T{g1^t3vznT{$}qI z42r)6)yX(DxYB>LnXfLQ)_#sCZUQdYzXttZ9a`a;S^WlFOB=HsJIXDWO{veA+X@!1 zJ*c?OIRY4+Sivt&0W9QRC1Jyx#f>hSnF+09b^K#&1epSIGQUmt**gX}vu$Ju_TXaG zq)G-9P;Jl4r~5M%dji#CG%XVHU>%!TMUwRAG_Bg?Ly&?utgj-jalURMsf8}XI;`ctO#|gFpMpmaEc1f) z@nX^ZQU>6uBTb!jNs$kCIFgC-7VLPD8%T`xcR41zr)Bhz5&Ds>`P5w1KGhbG7bynX zk~1gBHR0;_IAfq zK+?Bl#!#1#7Bt5D`~k51D>IBj@ez_Y-5EJ%stK3G{IwScwTMot*hg;KM4zYa?+QiZ zuiO*{ri0QK${xkB)W(69^2Q@tMQhyRPhjv&VFftVuoz7IqX$2%IznbDFX6W->p zwgvi_QLufd_G`Mm-50=ucgUs@WtfpyZx4DI517#APQq^qLnqpjfpr#!rImvbW6vNd z3&NtNFzZtjT4}Xwtaao3?hLha&eR$g^(iKp5>`mA2WyTDFGPL|nPsl=o@6ui4qB1)6p3s+5gv z`{-r1s~ef#;LtV@a$ZB}(x=bPG-67(CZCfFYWjaapz!f=mzfQ6_$MfmQeao>KB^(c z8Q8w{_cBHci!X#cX+kE!*#M2?h!D#Fw!fWj&`%c6n+Tvvg#^ZQ5Tap$7#jEUqbQAz z>wD8Ag6bKCjp;wV{0o%dp_DU2Tv6*0VHb`zVi&KR^fP&*+ICsA9t zQ}WuxPxQ`-t2nNA517@OqLs2^9JkQ55mOfpEZ4R*;0rTrV+LcwK49uosw?>3c*dse^WOmQhM&{pC^eY0`PgWaulhq3qdfqh8+zX;3 zi$I@5Cxic7A<_?vUTihym}MD(5w^}M#1tJER&g2abER_(!mw-;l`_5WW8Z%6UFz6v z*glN1*BFm)c#yC>`D*`J%8Y!>u(C|E-GHH5`Sygt651U&ARGQYS)8J)Pkhe$>x)GA!Xu!qH_*FI>)~$)WCU=psSV#)x(fR$b z+VPLJWEQw%>!3OW{Q<_mW1#OEGmVnQr{EQqHO}T{sZLuK!;XdX5!?QXg+Cqh=OaMj zXAPx+9{g4xj)&a~CTJ!ZRoID%h@|~R+a*>l7e{3__N?YW8NH5H6oAO=p-_foJLs_X zjL+)(^YtyderZDm3Ye))b;Kn<_~@xH1HBI z_aM%!UbHkQY%e5m>bYS1oA%RSoD%ThO+(LQdb!L39bDPO1kpeSkFJpvN-7|&G*Tu$ zl-l(Xm#KCg%yU{;D9UXoa(0sne5Ij-eX{R7a(gLS!DCo%j}8 zgFS^!IwQ*0+0b(`Fy;Q|e39ZxK1OW{hHF}TK<(~MD)Uy9rI*$@_k5!18+MDsr) z7n|))RW}1zBo1m#k&{vL-Ut7>#`#}D{nxZAxrY_VWc!KGvW2V|_BklCw6X;h!x3@Yghuxd>N5}>Bg#4%T(%t=Mr{lRB3DY?7xF6hqHAJ5sb|> z{^9NEZuSU%-!XFBhK+4VNfFoeUmmRrbPEttl}@i21EJQhTN@NO6DO*dHJsU5a|nY5 zKtZh~A!||5US#@-Eaa~=B`jKk?P{TCN_n~!GRNC+CqBDw4d*IkCGkL5vrtZWo*`um zNWO;IQ8J&AcYG{97m@#o@pN=u%PrQ%?MP4-gtS7=B&E9Kbn5r}=3e@hjHtwN=_pVc z<}$QrsRY}cQcXf4)ivF2DXU@tdN@^eYW$ad+xZB#G8^XPBovpTy_5>feFAxJyLJ)c zLhfv|S9Pdfscuw(bQRECMC)~y%wL5Qnk@943QbGT*j0pJByzu677gylCwNSDr4^G+ zierrx%adDdvxROO3V(R3t~A#?I>pYJ2CaEaZgOH_ygt_}QMxV5O!xDM1VQAy9<(jn zNOn_hF5Yy|C-h;VRBuq;HRtQ=gN41jb6S*A#mq2H8fS8TTqkfF5bbjS3!=}MGQ}{J zsJWE#^Z)M*F}KB`(dKUU0*)jOuTIHNS6#sM!)+ zmC+B$IZ`nF>QmKOz{?p0iJv+el-#=kFe0w5h9E6iOIlSi(8&U`DdiO-6zhRh_LOL; z<)gvKCWyz>`v4Swh(t<%1#gd1Di7!1+@m72Iju&gC|ko zH>7p556rz;U8|*_j*_xXYpfXiG2NmW7-n?{GIof#o&7hrue;>u-+`qC^itP28TqQO z*D}t58ZZ_8+$grmr4C3zneo)#zPn_xSgm5#mm8Eh89)aXs-b9qe~*DYSx?vQXV##` zn4#xwk`)6Gt6@H8+2g58f@tOR%C@R{2$%Npk`3+vdYy$LxqhqpGnV^T{cq$H7Q#U@ zpSK1j4^3Q_F5zKOcLkN))w#rS;ZS~3*pt&*c*bq8C+T~j3U>Ynb48Ylo~4N7R|P)1 z+A*gnNdfb3)P0@TzIm#jHVQp@(BM>OQ3cGIcXc;%N+IxU7{3*CbUyd4+3i-xj)LJA zZ@5LiY(1WPAb`1~ zaNmVz?#<_F0|G;yH7ZFVkT4y-e?Sz_q&4(-1VE(x>Om0o-PMtIW}7>t7~*nB>`W{e zc-Ig8UwmiG%UNL@|Isy51AFrlV$uQzZzVRnxqu~+pg!_IZXWlDPA9Dq0ab*mN65#p zk!+c!L*6LXa))2PHtwiL{pUzp`VtL~tngVnJpl~;op}^i4C|;BaFc?Z$ADMJ2pb9j zw_*456|xZe7bLV@vTw0he9GarM*hHRohz0CLRvBj`q!UsDb3#EVj*cAXhmDLJPm=; zMF-R!$tk#gw?+PrHTBbYf9>StsJbQj)p6Uf<&gDB2%Y(mDeuT`zXs@<#`q}yy7Q`X zQ&VeH?}8Uu6$mDi{L_vWpy|JnqUz|B6nwO(w8Xf7qPd{9W@Vn9@s*I3V2%&{$i?EH+ zpdm5M=R|(qVrv<`AsALh$JWz56docZG~X~g=F-ljXySA7S(!H6>(L|_wA5xQW+xwJ zyC`HkSm_W|wn^|EwJt~D$-4ney`t8GKh^f2$ck*I?aStOu5kZS7=DN8y_&zhio4-s zJiOg=Uu@shL7^{;-pW#cXL5+}efLYe_P%QVrH<9rWl`<2RZxEQ>+!ogZCm|ER>cME zr2zzY_UQ>y+20WVBH3~8cDmdHzBgRgK}n0mm*)@fa^X_t_w$n*dF-&c^syN{18 zdZ!BuNHVk#aQEc7`hGx_tG)hmkr@SUyb5<(Yx2(hGx_l3^XA?8A+QC`vf8snjGF0>Kv-KWw(3ZD50LlSaG& zVApdsE8CjZk&H468fbL9?~!-s$67ipxb$ncXk^w4G@(4L^7OQnt3NLjcQ6uIhc25+ zou?M(qZVI#eCl8?P58F=AU&T*trTn7{Og|X#HCX3MrPCE>Z;@EX;WX!`)aATVeVr~ zNVp@2mvaq5Oo)H73gKf}-Ga1XE%7OUJRpo*9SBSFjMPzzKvuxk+Rm2yRy876?KWts zd#X&E?MSOmucX0-JtKg;(VQ1+2BVj^Nj+Kch$vXB%f;w*cqI|URhBqTJ=t30#wc^!=A=e(Zm%4j{bSU%CIa-IcQe7a^|U zmn+T{&P57V-BBiJa`Boa98$y~sPyQ4S}s~~CkY#^Ou)wyAWKEGmbX{rR79YxFd*Ou zhoh#15_1I|XHO`Q?zhP{br2PGTUk<6t`iYqLW>)GapG<2`? z?}ppQ#>V~~%tS0PnBRq95RV>8)RL0}eKAJM`tZ{3rp=dIeX=QT#mG>#`Oh{fdW6pu z|J-vHxn1dKnlI}DL@?|IEKKhH=`^a1-Ol@+MJTUwHvn!8J8*g zYuqgf0U@X!a@q+51GRsg>Wobwst3w_I(>S@#o;mfi9SZZeuqi zCLkf?+eeFzBqbu|#E9hS<2eF^Ec;#3*TFY&mQa%TVcMUr# zE?)~1m-pe}`5IBDuLKE^!e{`z!QUq6_de0;-|4&zX;kIWdw|o;1}tnFk%U{Zj_d5{sy9eB^v@t6{?rUox z!E03a_meX_zoje4LS_~Jwe3@D5kk_XlrH36(!R6fx(ZYNea1IygYsi2+4mIr>1s2R z&+E)zDF*C%nt28oCtDJAsJ1#=7+5|(ZmqtZuWdaSio$L^orG@@d2Bp%)eP}NGPycV zROeR0^}Pnx?BC9wfc2KK^|!*Ojt6FDlJ*DmMb{?3)9voOt7d&&{O9>AM&HGc_^gTa zwIU99v%t0Q&6x5o-_3&`4Xh_t4Haz)%@ldqFfwS>j zG!cISVcOH*1Q(yZn^z#Sn1bs|Z;J`L%ki%~V~z?L@cB`yCMK0g%om z-RJe_uDc3m-#dEHL(SGlCFFWY5xlYlx|t%)8(KFN~EY_k9^F#RAxk7tnP$EPRI zJ69E?pv&*JFn-Dh63^Vx@`C9NyzUOSoYiIdyl(;fo0wa-*i&?gCsQBm)R-UrAn?=F z`D0c`jnjG8$NJG=8ptdDegRJS@ zUe85uJnLs=c=q*`bXDL&9ylOp`XsOYnCalOkF1wu#VFr9cZjNN*FjR&>&KSQo4LX( zj2UKnI?D{;z!v{Z~9q{es61}&vl3KitUgt#%SFqK1twh>wR*` z?{cooZ;ETnZ5JC*-1585g5+{PtTQryY?uS@u3SVa7#Yp>;FeqFE{?mN+eDFe!r5qTzw#WSkw3E zddt~6p(ceiBm+B%p!Z7h&1Av*rmBy3cgSdTme1W&*X|%@=au?qQ|^0+V%LwZBW6hF zjXI$JQDqD{k!60n<0FOqnF2kThX7a1q#lo|`md)~ADIt2H)HlX{}~0u(LT8!I$&qe z+d&BEHP*hP?ru^&>+KZr3Oq&n-V1sksO)-gSOdL!4?u3GK?_|bokx569pJo!mgp|9 zzM8$?69Deh{|JJ-blLm9V=j$zU3FRm+rEn6aeLlWdl8jLvzo(N&^?K^^_kn0!t!7rLJwhe^Tb#uuOAQ+iM9iyo zla_|RicDvsEtch}o1=qg6*#9FUPYF6=}_^@X_PB5ev)xK4crvHX%lt8Lq5-pN?MbP zb;gRrY@o}0B=0Pl7q>lOhUIfl`=GqQjGq~H`w(Aa5Q6Qdw^YrJN#9c>Gy>K)G(knw zorpOruCrOfNUOCK6IynS-D@NbjSU~JFVWBkDBr4R7dB2M@_gWl1oiORZ^+O2AC3YT zF~T~{xQ%k^((0S15cLHB!R86GoGBRDDOgm7UJuMmckD+u?89d#r!MIT<|`q^%qC*_ zYF9V+#)Wg@+K%ZXDa}<}R7rx~5!5XF1K*Ro909?{muXxi($hBFOm(w_1mMCkzkE&G z(mRW*$BSu5$hg=4l9O)`o1MQlGmxSqhKCQJ6ZReOn)I7q>Vzn6L5i** zb)L?z02uUNC5J`*YA~q$LwyBePPkIkK4`V&EXB|jGHOBJHoGQ7$hTsjS<+;!sW)i4 zs>b+Z&DrV^D4rTO9_v^`P zs#>TqQQw zzWti*?c@G8`{F}|36UkHwWam{>$Jyi!3psj|BulZ`K5XywlOLsf`EWWfL;7$7>KH8 z_Etu*4Q0_?{V8uM|M>U$+Zk`EO-G!{-MQNWKGFFN*eK3;Gfx?b)o5EcwybVTbjio6=Rz#;cT`m7XM9pE$d9a zckj>e+RE52OZ?Z%1pn~5gD>_>6Z+X8t+L%$tNNp($U>8o0ndfSiil|Pd|n4cv>em= zd8~ELRX=gYK6E8yL6u+hudA)6r-^dFSe~2wDGa{~8YJi7^`vmgA+pwZC!iyGTIHA zeX2;9LIwiS=lGn1DeL=<_OFa+=EjYt8sV|u9ly#SOHV-eO2nB3V&vm2Adw-oo~0M< z)+#{3NIMX7(Yj=QCRK6Pbww)!aw#!P8UJia$`qL@RuS^|!@)s|nrN8Ae&4>fZEVnGO zDARa~)rsifPlBSkd8Zzap;b%y)0Q4#=UKWhBXHVxcUq1l;Zo^GGJm9;@&&uSEJC|SV$?gvDmcCK{HK&2G>;8 zcr#q^r$b>H&RS6q5^1;9fZ&isWcOOu0C;G-0(!a&F{@u+Y?2vUTt}49I&|uf3=4_g zX^UJodJoYtb}<*dT2YKxh^@0(e*UPWTcSoK)}xUjv+adU>vl&DZW}z${6s;R%>UYs zJN8{aXH27G@`$Vh>JM6w)setbl2bVc1#nx-eXdEWLY|d|0xusIy2h_0oP`JJFE)&c%ET1xpSh#3$zXp}A908oz`2l)OZI+G zexXkhJ0_YWrwvArlmOoboVsA4uw2WkUrN$0oJR5?BBB#pFcsLP>@T>bvH4wllF_ zS5NT%@eX(3(WJqEE_i%UtgSfIV*!@_0T6eJRyNYyPt%=_awPqJG_n$9QwtWrqnILu zqXKpZah_z`!~^z$$*lc=cQim|iA747P)?kP0;Bs&tD)0`0w5{XT4}VHiHVDMTV76 zxCS^_y|}~lE<)1A%nW&lDzSM|r(vHNBoz|_G-LZ7R(>WA|EkMCoN*G29skwbeFat9 zBT)T=y2EsGa2x2B*rNDkM^S?m;=lYrl*<&=GRDi~8K@9`U1VyCUgVI=ej>;HrDFA` zAZ4Y*4D@~pR8=u7f{FvKr{hM+tA~Uy+r_lymQmEE>kRZ@L{u0^yUc!1hv+LbnnNkq zZ(jcvb`d>pW!L`P;T;CvA5n@1Ind4Fci4{a33i3BDA~Xl?muQFwTj&4pZ#K&*!+E_ zGc~$vX-nZf3O04kS<<-esnWO|(4#4=$(S3?jVpE&tSs%$dkm)uB_pdICnY;4 z$8&>W^;#70#|+I9!G@dvBset`hj8}$Ye}C@UvF^eDFNv@Pl(4SdztA3C!|Ll0aN(| zYFTW`8PZ3D1>WYiMW(P&5F_&sMP$#+q&4uns}!e{(G+ z%L?s^gE9VK8;<)INo(_BE5ann5-S<>xAAEHX&BGvFCR4>cWH-$|K~>iM?Pfdi(d@; z?$vb6sY536=VK?XE&jmw@%owH_;+jQ2@?$it~P?PTKjnk(uw}MEE$Dj1sb95a^F#- zOp+(LfrEdE!D34+2QenSicPb%aOJ8la`fUYQYTRqnEym?+xfSG(hTKqy;5_C3+&H~40-@bwoDqe;m(RPs)zjC(HDfkTQg@;*-(v$JJ9{VO9q zkx-$E;>y-+rc%|0!bMd@c)CJPRejqMTlR()2O#HkShUaQdExH2jF@gPWi1Ru?V%Q# z^#uOaIS@=FpR|H*!z*N@s(A1P=g?aQ_nzpqJ`?2Q!Cp1#@AFArn5fSc=<;KjyCyhw zd>5A=ME1KwXwE^2M%<2~<;q>B9U`M*U&S)*K(?MuXQ8d7FiOYoi9ZzkORacXtLj)T z4h&uXWQ1AA16ysJ;$0-E|E{?iA&yC1z!=?>uR3-AYp6Hm=IcUV&4;tpnBg__01a^| z?apwwy099vRms30c~}>AW~$QDyg@c`(lXm# zE?7Kv@|zP;y$}{TDddQ6V2I3+i3<&g1lHSGDatTUFcHLl>LsaqzL5C8%(e1!sV9Ue zppU%G-cJ7!t%VVK8QSW&8x=IQH&=)PQsQsM($@o= zNPjyeV$hq~VXVGaW90J`JJ>O0DA;#d6ktQ*)C`~wkN9q+rVVU@f^8byWRJj{5Qva~*lv^u}8hFUV-UXXD1U%Q^}$F8g#s~=lD zf1Jm@<>}ujqZws?u;0YinNL~N0BY$77O5GYCa*cqh!(f=H`vt1@^iCr!=VyIe|Xar zI#hdrzUOSTB1VI6=TYhe5^zKQfsskhB#WWuYb@RaWd3fH0$k=-%BLBh6jl%)(Xv9I zkbdV-LXoviW6wMGzeZjISg)SUvcKGk*0OR_>pixrxp^nFmg&q(l!FCl0Fof$h(~A= z1J_lV0Crsqjn-^j(vZfjvDD^D!9w#IRlANEyC3~?J%f1ubi8J53%94E9h&OC*!gAS zD<0m=r@Ey2X{4#zX?IT(IA;=L0#{PbW10`hTB`yl-;Gf4lJ3`8-{Cb3n6nucSRQOX zw!F_ytm zWMX+le|j`^g~wm6*JM$G-)4WI(k?Q#I>Nzw;zgRCX5GdL7%CP;wfPdHl6zqwXIf4A zIY#Px>pq#g*Jlk1L4fm{Kk0Axa0Z-%48lKuXhV>AC_j+DXXLTKN27X`q-0U+W1OU* zUeW#3S+Sf@A-36{S-^Jl5>`@9RG?NJVTXD@V@yw$;-kaI4H^jArZg?1hYAd+CO8wQ zrqEE{*LClh&ieY-2^x`e=OTYcgp+csbkU6zDiqQ*&QI(m1ix%395}c^c2yyoCydcBGqZOOBb=mM z%ymq(H$Bf`(m3F0QnprWp`(~viLR9v;zDT$q1`BXtbFHiv!eF*>T7K#y!sDz>|{wo$J)-nJ|TcQmMSq5V#w ze5qPTv&W8Cg(gGk!23=ra(ERTm)&VjB{90z{CZVRyBX+*wTuwT;t2dTP7!9%ou5gu z$I5LXYAyWuBV1yzs<}W-3;J`l)a>LLhJ84`n&uDjMD-d0%yC|%!yfk~G|CLG!CvPF zA_ODL6}PFeQ88|>l7s-S20KOyQW{6rPqls2oIc8beP|^_q&0=yP|dzrvPxHy({Fg8 zAVT#`;;{fYLy@hzu3>63{}6o$k{a=7C&Yd>DFu<@4&SyiZF6hzC_*=5#Rp;2xVrGp zb+_`H_HXU1Hj;aUSxYf&jLrw7OtqTfOw%i^7!af2^1%p5lT|^tVruE&P|M8Q)-v5| zB;DVFol9m@f4~#c=1f(3xp9!Y`j6d3i!SU2*k5ap@c#%E$NQD!xC%*w)BUxvSzRi;S`-Ng1dyH`NlE?pJOPo4}=qG3E*{nHL{lzg5w?NM;8 zs!7IwmC%!60vO9Af~9!!6>Dk;$)4*F34ia(mrD-YJmB#%v$|AE`4d`{m1s!T7;KvY zSeu1w(up{;ob{b{<_dB{^=ieKMy(BaTvEwit}GV=(H?b~-2P`>lIr+4sHA ziNx5Ty0El7)I55Co7aHCsO_Ub2ZPIs@9P&H9@M!6?`W^2>WT@D29ME$N@QcFPpPwO7=M< z44#ZC^sa*jwZJ%>Jxs7TNu>0p`@nNdZNc`~8(QDvzSydgpYp2qp3;jcehDrMaB*C9 zQldF?9Ofp?j_T>5o*FsUF(e$CFzv!w}0w&QLnHBOatR^IHO{K{QcBV01P` zk2@#-8r$E~X8O3+dDn*BG$SFjnIbSAT?A#}TYS=Aycrdvkxe$0I<>9Xyo7fJN2a6c5` z#QTbo*Q8m~2gAT1N?%$$58FTr=I(#rojehJ^*t{Uw?qdbPkSaUarEFRR?2osKt zP|K@Ukv0AufYxdX#72q>v$~lajD(eOBLb*oDsGPzcB>LY&LUFL-MQO2Kg zo5j|s5M9|>;>>3RK|L&@$p=s;jx^6V|9BkbTHXzgLiDq+H$F#w%$(;Fa(gElBm^&${e11F;=+za(g+wZ2{al*buB z@9d;1E^D|+m(kpr>zr#8sQ7QS{IfWk|1>}INB~duZp*7$TUSys5?|YB)+R5HF;h8C zgfLyGo`luecb2p5I>&S6Wt;UN824177b+ANqCWIjuA(B=_J#t#BPDC;Mp3R)Epqpm zzZ&`)_ouL91n^EQ8Lr-A6#L($I2&55NhFL%fp4mV?;!dGVg)sPidX)%b+6M<`}?y< z;#mbs1(e`ToJ1mwHL?EmbxPV$aP-8PsO3AYLHvyyh+>R>b-1%WLVKsaTFI!(dhK1h zr+tt8D!|hM+*1ih0ETi3U1*-1K#fyVKq(6uK+EeB1}=1hBcRvbdRS4KKXJ_Fz!c8s ziB@X<`D33yq9l#ZqNAXF{3K2aQ&hq(6%df=xvUcWBJhJJILzf8JA&+=S@Ag5=HEIF z6e0!~c6c)OzGa;s@#V8ct$%-K-=WE^#$WtvGK)d0$QvZzxX@xGFrlWMR>WpToss(X z;b8y;D-D#GLZxzUXYZPMh_o%c>B4B$iJ1Pqo<5oSMC|90bqoZw8 z+SLDuXd1s1II5qW>hBUcG;qRN3(5@01e_Q=a3G*x_T+EmnM*npiKmjN=da}$eg^Ae zCq$Z43HtTEzbk~taN(c)7~t%;S551I&s&($Ifyai<=#@V&mP|m>sC^}wDyoEVo}0C zSJzN7*-G{oD>3gZiVAxHnVz1U90Cez)@_1D5oV^o z`h`R4;y*&&-p~CH47Rg{Y2_y*?ZgmV1lkL7@GK);O`gYB?dz=LKQC2#lCUwI?ktO6jFA?f!Z3 z)>&KNv(=HKTrRQjJywcpqHCJ$LKL8tE~)dij#~(jh)EwkZjf63jp8=cpB0C7fu>~~ z(jR?|SsDpL_f^pcPRN9;JB*N$<^3j;@_Z(|w~KbTsrhc8e~mFYj#GRF`awu+F8UYR zG+a4K~M)_zI5>q04vYrm8#C>XmQi3!GQ0cN!ts0e$;&-zz%~yc1OxPM} z#e6A&UpGR3*UVEu8rrq(%;_|5U$)ybnXJXPfBUlr{~^OB0ws|Kax@%tgIw1K7_!ki zv{E?qE5{Gj?{5|fxrZfpDb{~}?t6ynofdz-^Is6-d(hiD!|xLb2s`nbVUJMpjKFJh z?|ox;awz#y3FNMGu;S$u%y|MRdU#Yne8@7V#m=(E{cZ)Ich}&5lXvS{i?}5Q4A6ygS*^R{6t>BM1Gi z39xfJAJQb{_2|-_bTRu9H!E|08Wqq0O!7Rop70v-frKWV@#z@fWjUrG4K)WSL`^Z=ZeLml3q5Os z#hYs*DK2d%refsqO-kM4}5M6M_NF~ZlQ*25=UIf|MB1iY$M>kx}D%Q2S)jA z1t=<$6)_@sO(7fT{dFcsf^nnzY3?W?p($G=BqYc8%D}N)Nh3zS`>E~(g?>;t5iwqv zFC#3M)qM~vAzV!z&lEb0oA67(q5HRc);yI4vG^(_%3AS{5$PP5XsTF&`|4St(*kED zi6Jh*7#WmOKE!lm;HPm>9aOac$`0&i0kKb$C;ceh+BDSHI?0RX7n2`ZhXxV!=WS}V zfvpVUZBX$CbUnvaAqF)jZhWQ4lTfup&7~`%{r}=i*G1#wrU_>vS~XMt2RA^-zd$~l z7z_w7ouK|iIRqH>PwQ`p)Kc3TXVBPM^CmuX7~RHA%T zA^=(LE;ylNpsB2kVBa>XYVO@Al+0Z{CN!!5wq$Q@aIg}{wiQ&13VLmnb@d9W6R`-C zLKal=uDdOQ4XYn97!Ad#$XEp0qy!^n5?P|?%(H|Eq+LVhVpwC#Ou&>d)7)=+!kM%u zYycT53Xq5?f;K)Vr)__V${b!6N;-fSDo~^wg5rWsotDiYU<+|Brjicg3M*YAdDpv}{d9AE15fg9V&eP~pOH#tLFX)iDsn+2ky`bX2;)g|jAqohKC_7dG zM=g>OZ5HcrhvMTByQ?b1Pl0a#An#3YumUJ_F|Zklme-`^Ezmhwf+r|w!XcavHU3&a zNApdxrx$dG@1K8{)T*M@@I8oq=we=6z-E^52ir)OX_NFCH`NPGzDMS%yb?ug!h9B3 zGs-YpuA*_L3wVqeWG_cCq)Mor7y!f0@ExHdQNkkvNBAwH!X)^F1Q7rlZ2@vPT*>yZ zl(nqj4uD$ik?4USLIaU}S!#eZQ3Zli&(<$SP{K{^6ncLT0odTaf)c{qB1^7S*^RP3 zKT(==CtMcHA=*Kgbx?r{p?!dTYCvigssLMK=_xrBQnRt8yOQ{pkvGT+ONtJ!qYn+a zkzgKTy$-K8qT7OX=uQF{&}NWZq-cRA*d5L*JWv3murLv1+s7Rqp+y#85o)r$F2p|K zzA-S@lkR`u;Br``izr5gM$)%|ayfWQ2&%GP<6JAJ&7_4PRINmPKLTxu;72lvyRvcQ zqAt=rsA@(0+{hITMU1)BbwzLU)rj-5NF#7jqk*zAu>^N3gM%zuR#ks*7nkPYEzB9g2!n%FWvv#t5qdDx zHQbd&U2z&$TLoRc=us&Fs6F_~i)T1$Xjn$YM@$0vW&_@m!Xmz4{2!bj}kE9)F3xabQ8 zO+<6<0tqVexAmBxe1)!W@GoJPhNLUMS_j*7GiLy`8N<3XfFHz$uXk#Lm&8!Vb zG?F6%kDY=J(p|7J@#+iVi5mt%hf6xZD+Xi%I7LlkU{9bq{B8n@h5A;IwjsqU1zYC2 zA(#%k;bwZ&!jWCl=U@al%@fnOy3>nf3qfImbzpc;JxfGiss^r*0L?6rJ!*nxh)JIw8tSJP zInELV1h!F*=0!lY;ftCI49lE}I@!dH=;hQ9Wh`(JfU?xQpX;uEE+hJXb5BALpkjYS z+l6_>c4BW`RG9}Isp^XnbctMUO{bkf7ex}ArM6+8xC`R~r)kNqjLdO!fm2ym&0{CI zzMUXMbf7ijuA&Gns>AnO7<{GcAjknQc?$4%#FPlbF>UNj38k#7qJa&dFXoshE8M(> z8LtvQg|^ylq@$-&0I#TOjo35xa0`FQZ(tsp?4X!nh@I#I!$Q#Sy=N~uOh8uUd#H*? z@OFvnhA=(Ks32;ZR8!O;T2UI#zq9Pxt%|HB>vRAKQPV6fZiA)D!6s=`(*zV_gnA%_ zR$Nr}!(*^DDTy`!$*}>Ql=izgv__%h@TyZX=&hNW7 z8>%pt`M3faiUgQ4gB_Jx24j3hOg{t$ImM&Dsc2(?mJ;iP44GYaoeAYcdG|1LcRVc8 z!1I9xYEUF)mU+ZA3>X@|37CkDYKBhNS!hb2M3Z`swql(Z)FTcCZu>9^n>s*=Wv%W3 z!a}PVbULBB4UWf&jYKFmP`HZQ-4ZL60!aKCh@{aZP&w;_nbe7s?nM}X(MMqdx?@Mg zV+x~R9~*K(cTO~|z*;(CsHU3WKY($~NKEBWDZ^BPVkSBS2w9k3(1Pf(MmUrC0$+1z zjbjl?#Mv*Bm_HRFPea5aPctyqA2aAm7~NQH%Ph_@4YZM0NFd3?{gn+f<`fcVHEGKy z#Zq=#R1FS>91RY=7PNwYdrGcTv*Zo=qOr$SIlNJ_(oJdJctRf zn!#D!7;3(ND_k>GF|Ic}kjS-2lSxk17LR+F6l#AZgHhO4 z3+$JyjC2jCe_%Xs1g!#W9cyK9t45k-@H-4%7z7|q8w_==PaF~UgK*t|@Lx->(gk>w zt~ffHDiB8)n@rh>WQvB$ zguaSo3Z$ifs^>dm$ogn^S>RPMI6dyEsbxJt-AS>T5S^=L7-OEmot6u?0}w&bm156N zpr#rJY$EQqgb{)QOM^V>c*}({wR&NOq;XH@9=r&NfeYOVHjpEmWiiTD3U^KdI*i&G zVtfEqCt6_?65{ZN+!(_NDpEOu12~t)@jR-FH8$ga8cPl2k=}?d{A}()5=tv1oIg6S za(amoT2#ZfW3$T=v3~ZHkiZy$sjT;iPvH>VI>`Fovn`P-y)7JVg z)<*^aOWWem#Z9F#J44bv=8JtrFT!x(@tg=n&>^5ir3Msh!*WE`17_l+Ein^UC}7*& zQj>&fDKO$&ZwbD4{1uJB8*sN8Uyguf4KW&jAi8NpmNn85H24kP3Y)va=_qC>Y{+ED zBbM;v3fbAT2rt!z!)&s}8Hk}|S5;(dP}!ZHA{N0U9m6P?>S(B`LoF__GUuHpF;HS9 z2ojIN8T}bOJ2yL&Evv`$HNiCD{%~C%!yc~%s&j@142tp7Ger9;juSu>i9L?gPBj64 zZ%l!FZ$hon;KU&DcH{43q+?jQ7IG}>D)W_$#4<*j=%QP;2OKxqepv|1uTp}F<`gxj z<~3Ib2dh9>(dY-a1~J+<5?OAsp_=e%0wagB7~g2XUo7#RvnmpjD)QdMa*_BDw!Fqe z^DnSUa3uC)i~3rGh|p+=oH66g zoCr?7l1S)yHWg;6DRb4@M zOoYMupucE>;Sy6Ri>z+q9KZ~Jj|=EV%JJAT-ckT0p# zDSJJ@K#Ss`I@1_zyP0ShTrA2>$M>q|QK@Zvb@&mG5k?KO9EqX_RC%+swmh$5MiTB) zl}iSo?@jV85F1~TukN+n(yEL^)GMPyb1W~9Fb~fF4pBawCqir320|i}}ZmdC12R1H2g_ z&xja62qyy~a55oGB@UHSu(jkB8%+=G;wzj4`Qjsno3F%)6LtN6j_Qzo!{v&TWGRkj zkX;8$kdqAqd6=jkfTQaTFOG&po;b}H3{8M+wCL=?0SB)gWMP2oVG=yt#ZOHGNwuqq znnQd=To9Nk+z~v76==i5rB0{JAvSmqAVIe4$-et!o(SnKvHYb}$U$Gd$m3$|KRWQ9mRI0P-Pk}QuJZc76`%d6V-Lxiy`u!1qw(2&NS(kVPFu-TQIg``R4 z3aQ~?A*V)89V5ll!#`Iucp@-YaQaT`tXp%ub}P*?;dUQ?%RoZtrm)b#!APN#IiRY? zBcr#f7SVZ-3>9!&<+8)V9-yKT)q%0MX_=HJqsjn2dZkkE28Dc4%0B_CdbK&Q8Xyib|MiuNt*~!vnoct48->hSX3+( zD?|~jv)%xItxk70yVIdHA~M4F+%E)80Wjzxepsa=J&U!X6m$X=D{T6SU04L*LYSo6 zgQ?@l_aE0I$f9@oNf5xjSG$|9bidkY#Jkf9!%fZoR^u^HdyIH26(4aLbV+BY(^)#- zQ6~a);0?AK4+h49>wwt1PDBOUo3)x=wTcE>dc_4RZhR~!$}hN-NRzB~{)T;?R%4m^olBDM4)_sR`U!b7_~SfD4>MPT`> zkmV@S#RqX${G_o8^`jhD>tbH0x$=Y+*&Pu>wjzp#v?a7j&y$#czGAR&n;7_X@tMg3JHgHx)pd}WNVL=$ zdMu~17JGpz0R&qXQ`I2a6$Y_pLhAhbI%5*EG+NU}%SZ^kib^Z|R1}=&Xw-&S z_$NGwHyKip2GgsvI^SG0L z`=Fjp7mp0T2@hosDau2FxktDa6pxx79QI*D7l-AcFm%|1syvLwy)hR+vez4HwykvU zUt0{3=yI#sCK%Zw=Vg^p55pewnv9b`pGW|hA!|sck3*JriU)itu+7*v%s%uWQG5tt z!)h69IqNGmYUdLBdLWhsgK|1_Kom}Y&_t_0G5{oaH|~yQB8QYxVTrgRde{b%EW!UH zsOI7DtPir!6apBk_qn4waJR(J2Vs)Do zMhva6NW3i2d1`TApCA?8H#O0rPqikeUS&2f&5ylQ;-dXIjx|qQw*kmUJGu2iSrdY>=080s(&uv3l0C!zM`PdkJ&Yq0@}_p<9({y zMq7rU2he%~=QgB+u4?40WwC!MHHd%&_}LWB-BUzwCE>UR7P`7<;!zC*B@|MpF;-~T z$_f0W*3;;y$Z`ffQBTvp5_cprK6qdt8AuEt337lIL*5|Kq+rVFS;Pf@p*%7?Iz6U) zeLWON=!mbOi6h2m5qcRjJCB1zi#etlORfiV$T4Sb`wj0>$K7{*SB zG>Qs(!afSyW+8aKM9u9=!mc*J+!OR0*-G>s8!3~IG8T}Za<_?pxoA<3HN44SJY_XU zjP`;cVw4!t%^z{C*i4@~4lCm!>PUyqiVDh;iESXG#I-f-ru(FSWx6#?v`PYN#Cl9s zIT)5CL9wxUMsk3%Rw`g~(Xx=W(olrp;z{!z-N){(BFq%Fkir88hNZUCcDf)gV$^Hk z8Sliuue5^a*O4r!V&%h0qSD}IMarfpa`F@63z0Mtqa8fyJ&5TJ+&OVM2s&#!-R)A= z$eCK$2qtRPG9(p$tv|FeA)2kgAsJghk{$QFML&q36PXAnEN6WJO{=-C8D(Pv*kOS- zz$Us+rm-P9vytJkX~n#dl;XV-+1yecZkJmozLqK6M8O3{_CJV{57nSTTa!;#X5&v% z$f2T{kFrG=gy2bCquVRJ_3d$OCuA0&25ROLj!+Z*WYN=qUgG#AY3gX>NBAagm$eNM z>F``#990$9zZzdihphsiaE_va*!v_98@|;N7eW+Vf+aT*1r4@BR5r2DCUH86JzkC| z1v$KgODX|iH(Qzsg&F{{PfXF$3%aRxA5Y1{0MHyHwzEYJBw)t1f$O_TVtZjo zfP$@m@jU>1Q&IURC4>Q|U}y^k-VQ}`3nmE}ikkwZb@fpyhx4c;9TKMm&-M(r`g`j$ z*r^d}Pvw#oeBg6>tZ9@<3g%-WxClwo;i_9-%uXIAeq57>v+S39MP-e>lLq=lQD-7@ z5{bT-H+?TU7cBw+7^wMqwBiB>)&P;8sdNN?PohA0SsJEIDi#Qr5h-?{pfTTZaYFVTQ)g-L}#pL!Tu_ z5ko@OGkQom`3q~vthSq|T_k4`7az~e?<0pKXVMuwu32;}GfXj@aq!v{UJGY`BU<=c zIK*=`8r3e`XCOj6fu6N;)iaGM3h{CK-AIVrFt(Cfr2%HuCAAp}3Ivlj@t~MWux;n+ z79d}jzX6`c4SWR1QDkk`M)MkSqjLqBq5}15(&qV;mhmSV#s(vG&>|J0Y2!~xo2!iB z!O)`*u#IxIZANz!NlZG5%eWJNBu|0t0dW$fMjDG5Xn9T8_+MA)E1jGRK_o4}mx4K< zETg$XOvh6pe(>xJV2q1N4F^4aiJSziHgs}?E-j2{i!$7YSW!I^2!S_|I9?jnqBoC5 zrcel~0?Aq}!vaL=qAg@h5WR^yy3_I0o_VXGj&O~HfAUlhhKQ80MD-G zrO}B~`IKr-^vrN#72m_zk{z)H_z6%ep^#dG`A28a!q6-CK!;gxy6Cpc`X88&Ra(wRtEHK}xhIUBEJM zO7NH0TvgO6hj|X;(HA;@9XZqi7V6w+FV;0+sB;)+rq1I|sC?$=ip2o|Oh3UkTe^)4 zx4eRxj*VE%#?~`*Z82PnD9iVN^MyE^FVLt?l@Qby1W>OqP_JwR>KIYFH>BHzY829| zQAn@rizGFP<5VHX2gCxj&&_2Nd5D7@JOK{Q?3+VL1QjM}yu*-x?HFxBuSdIwhLmN! z4)T?na%dQka)vLMPKU@wIK|{Wg@Fo2&Zcl*&IDku5HmxXPH?S~_wAGEK0_*ePnH4) zmlE1|ig{x2Gdv7XNMT}dklzK$3=G}|?Wu=qz$!G&XxbqAU~+!XGc?oy=dvYL6U`wo zTtb+Ft59$PnAn1U)Zat;y{PahrP(p(5CR8*RRrj`ntPGx3TcVFiY}#wOhHs8hYB#< z9u39TwGh}c(2Fq0s|bw?Jg57Ec0^fYsEa&d=NqB+6pEk3*xBhNy&+TytzQa%bX`kq1);`F$g0W8;T#@e z4(O|a`x1h39Nkf1anv$&HXCa9_7nPvBJb>P3;kA=i# zxU}gq)aXG@sNn$So?HFG9Fai67<-1@;&v1_ zG%04c!FlL^7F_`}<_IqS6f)$L?<5*?*QcHpxIwciQ7w&W}6QQ3#6b+ z7+{3%RFGk95xcbKqPnYmO3Yx#QzIDU+74r6(;PHel!T$ zCf#MSIClp;jtQ#2Sf<7J6a>NOc1QAO-AU6_Fa;P<4#j z&6YNQs6Yl~q`84mlkCaI6S9R66j%**MfixU6VrOa%tlQFgEdfcSJHxaNyN9L+Xi(Z zoN(%3ADwf`PE*p`z088IYwI+|B=J}_!UaOtFew;j0VZ*pwH+ryc%;o@idecN*D67E zjNS6ZRO$k9>H*xBfGsc?+#9{%e$B{O?ItdN9@elDl>^FQIUslh)fLM^fhTG;$9C~p zr=*h8kVeFj=$R!x^HXR;R)Iv+XH@}l)Eyi)+^l!#hOeck)A8YU0bZM#76-ekOx?2U&$6&emEk1APa3elP=2105nB`-C z+I!cNhv_t z%dMbAS{dD0R=SLh1@0pVqAR+$v4KNF55DaI#gNU1qBB2H2C5lLtim5z>Mj!N*8sw@l4x84ozCI>zy5_iCBBQ5MR9 zBeYrqDVOX*HGEArsx3$-nN)WsSs1;eir_3+t!5QJMR1@*7XN9G8*xLD)FF|uZ;s6p z5LOgl(>6*ix8}^Yj9NoF4-5%^MliN2vS19O@>xVZR5&%Pc^KnF!aq~cNeMpVKfI3> z5sN${>;ZABUQ#g`MRLaj`eu0Hh42=DnAL)Zu&t{CDDietEF#e#7`Cbl!*Y)OJ|>l# zUX4wuL~S|GvERoeK$Ffn^7k>xx0;SqKgWI_lUg3jwR!hM3lNiGHF8>itWftvYz#=% zJa#7PjY+GCJw^aian6#&HHw))6QqS(6Dlh+ENlpaW`IaUtekOoj!DGgi<~k{Q_(y^ zD)9w5o{|hxQ2Jw$($9L0Na5r;R(6<1c*b}#DI*hsTf(-bV=n=#giDbGM&k!Um$7jK zkhp0eJt;B(ul!&MW7WZb-%)K0{*Gul3QUYTYinqRj>q;;@qwJWNY5!*>k?uE(;Xzt zCUU71|6y`PQ2K^%fi9==qS9B5C`@Fgo0ivAR7fXQDU_*4s>K{E{tVudszghWu6n$7 zOUBJ|Ad4H-B>1sY-jZ$af#4c!H9<>A#Wb=e4fTQL@_0CO?<3NGAkM&V<~q-&S(ObL zH3_BzRNHCS=`@L4OVnX2439&(7t|Rd-{sbgD&N_Oy~)tp$tG2h56$aT->tQ)5idxl z$_st$nWk2tLTEHXv=xTx`m?MAa+X7+R=}_8%7k5ri4kdsACugz{$`2~^i}I2Em>Xs zAmU3=Kcpx6+7#k{yU&R(HaM0^o;Sp(E`GLl==e=HktQOpHW;&rSwPSur5_+?RM}h# zi~8lDs82$`(Ju51Z4wE1MH3g&#Lcf225E}S0uRwdL{Y})kQd$Ks|S%FgI5Bw>HbJZ zD}*d$*$alLndblB-kWZ>Z7d6;=eM7NLcC?d1SeS@0vY0eacn2?P8@s3&Q5Y99xqHJ zA#pN6YKW<|?mOIH-z(hvR_94>4Lt%NZO6_|&c0G&325|K-CbQ(U4x)txJ|SUSIdaK zH3;tr>ZlHQ2=WyrepBFKnLS`-9!gb{0kUrdQ^7d>hEP47~ya^f5gtk4*QaP_6X3V6j?w_f9k$A0q+j znqsah*nLdLw!mKWkb6^=Z`(IvpI;scArAJiLj)I2%))o*88E=YVLEJ_hG(fvhU38# zH?bnSc;f=%MHG>r=rk(2H7Q6c`oTNvAd5UH_JT)$W_C(;yRr5JS)e0GWnD4vf-0-; zAS=$gJf;$o3?m`bECz~;2dYa+8>-F6rD_IhccLMrciQ4BcX2h2!65CCitoWYxh)1j0fg zJoZL^MthG9rRCUjtdWz}vDsIZp}J$COnwu|eMMT68)|1~l&IUciB2e1s4q5(UxcR` zBfuI-l!WYEUt>#Jq3*~56bgEw@R2ERbUtBv#f=T;Q6O`9jj=Mv<~7FOH?Of@m_MiP zt3YbKdcB(LTdy6`*0B%e53|xU!+HZbr|%tX~K@sW%4oTkaQAwWJyX6;yZ7-joMoc64N5 z*Vt#U8?D(d?K733x~-kUnng*dLB#UwYk4EH9RQ`JZ|vAoKh=)ifXod581x<+vTf^s zqF9^c@r{`jy^2+0&o~XXV|2yEY~90^dsKi1mP6(K;;k$AK(%+}3Cx_RViTE5G`YDd zZE+KZrKyTMh34(62b!sa;t3q}EAR!A_e`_cVhVBY%IQu}SvF|d{Nt&ox>{SI5rSo;tzn<`Qi zx_G@t6=0zPP6~PhR1(L^?CDn_Mu070U1?{FVE)1t+uPH$h zM*%CCY_fK>774kUp-U-9j@~nWLndwv)fAOvQ6<-j96a`Kg zMT>Q~SZ47!U59xFM|QY^6K@?Q*%~;}voK$iIWhhk1EyP}TqPUl>p?buj6;eyjE}2D zx*p7Cs6xxJc-NyLux9i1BwU=XCnfq!Bpv9^s)iytqz#=nbR5R6uzM-%}Dg&>7Bh>aCugSD^JzA`@$#BhT!>DbKeGb<^f`k*djvnFteuEvv zyT|Rr_Av8Ks50@T?VaK)DfqWDZ;UVN-7k8_=Z%B5H{o{uJYHn;<(iy7P%AFvox(>! zw4yuuo`3Y;L4O^u;K&_C|u^C9H839wv5!8?u~?H_eL=ON>U8XWe^Y!3X= zE%|f{qsTmL^Y=ri?*T4?1C2`!vUHrlG0%DQTi-*7bDl{!=g;)e_Xx!NiE$2pmCqO# z0TvWzU;_^NE*{~3^TI#cQ{Q+7L>789vchy%BWLfC{4^k1XSdYR!Du-%$%@k@_9* zGt4MVt}sl&2i&FjAje0~ypicULYqpA=rz&kY84f(ssi+XJ}S?LO3M{=xYDcsBm!2t zzN&!SSWAD~kMK^53Kx@AK_MsLm}Nxs1mxP$ba@Np{DFuq2V@ByR2UBsy^9#UGSXfg54RR`k!TdamnK1)9M|eg*+aEyuLNZl7uKQ_5sT!Nw?-bSmgU)bSf zNt#vX`3Qucbqd-LN=;3-;k2EG5TqLwT^dK_JQA@l7>vp_cTbATj=Ftc-ZYfro}0D) z7FGDFm+J)<5}K`(vw1^O#5&tg&%!YJzl=Q|*We?pV{fZgg!4-ZnQcBsuP4pbzK5p5Fo#y>(knnHkGo6nCu%!3fPV&5SY z3fJ~Q^6ttLenniv>&I6`JaJGOwupwJg%Gy?9B;?AjN08bRb0{5Qh|fHodn01O6_)A zp_yEN%t(digQ&DFRK@OOl+rKanA}V zM>>wm)($07^4Yb__>lBh#%v^zf$mLAgGN@D)CO-xe(V9uR=MLgn!yeguuP;3{7mCL z3iw6Cr6+3dOk8TxUmEFL5b`imRWD;_syLT_k74nnUpG1lC|p`)(L0aMH1`Yaz-g}K ztz=y0#terttQH<@wFIVc^2P+P;{=XAMiD7?h9Xd)^U!ISPOT0BdEy0tWv1uXm-ggn z`^u$Ua*Rdc#5A!n%J=HU)n2rb26=H=&sFUs0S+N<`gS3YT&)A|1kD4qE%ywmst6VB zfm(Qr<2Zav0cSC|E8zUMaCWcPqyXZ7R$6-xTvs0Sb5HwN=^YLF{y@7-9E+20Wm zXSV%nH3Y?cQg)G}$-S}{CW9&w8Az8B2Sx+AMH>(jvqBhyN#vz^T*sKRnW z$Nn?Bwvt&kxhcc=cogkjnbx0TMJ}y*Vfz%!kKT%K%H%wz*`;MJoyHH)A3X`<3|u-W z;8KZU?BzXhjcq=p-917zdpx{#^P{7bA}q@}mN!CufEhdLm{z!6l6zmr zROrw-Al=8E1j4(NH!hQ$Y#$~k=&XZC97%_{N_M7Frmz5e1$h>VfPI^K!J!Nl^@26) zt44hD#*^V}8V2QtXfyw0lL2imVuSu$E16B6htq6c8KXf_>FR<-xT>s3`?8oMc@*H; zgdY4sRB)hhb;ZGJ{z4suZJjQbU(sbE?j$Q%4R)9B8GmPQOBdjUgktkb02>aL8+91} zh(@h=Y*%ijA+F6VhP{cCk!_NH@{o1-K#a&cPM|h2O^o4SN=y$>1>b(gWtbICQxSKH zsvATY-`bRgRm7@=Wu~H@lToB4iQL^C+F!TOdzb^rPDP@I+elPA1Vd7us-!^4ERL*n zlEe5Q#{I!SiWx{nNlCr1$Rb)~mKPYrWGvJ2HDQTGt>X+MUg22KXbROVQpobtVoX-X;+a1p zU94-VV^eTgqe_UudEu)<2JDSO;-0sJC(&{^V2g6=)L^AAQk7u@@p|Sv{NzYl4U@#9 zLVh5TO6WZ9EnRXHlkzTl?t8JLMXnl97C0&rjjeSQJ^R5V00L;1Q%!x zSal-<8Snxjt(5u@g}HEq*U>;*Y-;qXMe#ZtQZPBFrsvH)8+8f5EP{PH*o;2#{Ob>|_+WvtO}4igaE>fEYP zZ~%JZ*ai65hO^E9LsT@sBBw)-F}$`N&vCuB66I!ebrkccb-sWzx-PtikyuD~|8b-M z;CeJnLOfT0B~N?@r>%ShDERc}ML4G*2D#~vQfLV6Xu1TW7w>enji(Mo|1n`CdjDoo zB%0@Gbeb)j(d?p`XTM>*2r+e-bkLm4e%thIL$X}v5zfg+ho$(SD`PPTUboI&1W6d& z*(pS=C`YK!zF)7T>$PuC zW!M|~!-nHrxqd0Gj&!yl@%pB@GP8a9EEwQs<_`Ukpeqs#Ck9X*k;@npnmgYW!HFx5 zjXqXWHkyJ40itAwN*^%-0zU@!04NQ`!Sv048NeLB0uGD(RQH^2I&pji_oy|`E>bd| zZ8*5)M1jPtxf0Sq)P$?$%rVu-zPI!P-oZL7GA(fs)>WXG9XJJ)z8WKas;4*_Nk9NjOd8%*9pK|^bd3CP(IUPLY zQF>#k5tkZST9}!&fU|$gSXduIt8j~zq>AyWI<<;WX<|pae>)I=#DI`MDU&Vxm|BE^ zgZFzBewxA$md{26!?I@;M;4n_bN1P(NW%YA!x?i1yOl6*3MX2A!M zQ(jhp^k0Zd>^Q1-6TMl2%q9Ulj#@1urAsGNutOm`2-(%E;Fp=;HX3k?j+&+RlV2lht zt3wgZ!z^v&#)=e+ETX3Y=^c*eqwu(X^xtm(_Ax3P{{V^N&^yj=qdqc!blctwBGqx= zYnmva>YMRV8ur~5szSfqK>N3DyOQMpM==Y=32+0EQ)K!v3f?KK;ApgeaF*p+l#TJU zc1Cn0Ii8$ZhjxK;<-LN!K-MhN#VZ^HOg}Ddq{x0|OzP}YT%y-eaOCje2hF~Ke{ej) z?@8|T^&#<-R^Sui(4^L(h=s!LW*#l;9mF+10j3Z_@P>4u)WriK0-W}`B3KmBORq6f zR3r9^ElBMdEyVa|S#gnnR0c^v)FCoiG%-3Hl4cIxVh{WBIArnH$AB$T%n?Vv8t&|4fRHRlwAnFM)IX>5ar6p^I;_1(k?c(C4 zxK4?*s#NcJxFo)--tiJZJ53A?)^XiNJz-b7fR$Z8(slk4nTBL?WekFtTuk;HMu!-- zi_Z?n?d|&x;dtgxx)fo$bFfby&4N8wpi-e#SRXc2#ErP|njGeK(74@8dUaK)%-ht_ zIRyH3tTM9hopOGE(NW5dVYsn_q8Ka*qZd^*>%^T>uea7L0YB6b{k1Slm@_aT7Md~= zKeSJgK_K~3gD8h}q{${LhKb7J;FZFF*tO0f1_c)sFCm{a_&axM0K1}dXnZAVNTPX@ z$xYRrNqUeVab7q2BMEbiYnalVuC5>rj1wQ-8>?86X+ti5HWXDmd&gx3@f=-8ml8RE5WXaed%-^AKfBcc~I{Ut4RcB{ks^Bh{=?E2U0YGY&?D; z+QQdydhyL-b}pY^k<^pJ7N~Op-Y}T!x9V-CD`1L(9^kZ`=J*KfVRlYWzdb|mee{GP zICKF8U3*D?F2>$5uj%-jf9yH(2_Q#c=NEMNaXGHCHe|EGI|W_P2Zi@gGP;HuWHFdw zrUWT;^3W=zjvkHrWb$vk2S4H6)W~HubUBHzL`aM!Uq^i{txy66T<X5KhIcL@kIeNON=N2P^$|>#O?WSH094}PhEmU}hgK;ql$6{WI+IbaGrdJVR9!Kbi$Gy6Rga*P& zw8Q$&FjD~47(GFv#kWr;H~K2?$YGuth&jgD{nC}2F}$FNi%k38xc5R}({juySc>ex z$v6voOx{DjA0w|Ujrdi<;>z{av+@m)SM-B_-GwE)yL6_=2_-TDzV`$=PQ2f7)Sx>s z*YCK(!;HXoa&ZuNlsK#cUyH8%AmD>Ulr0nO6-1=M{h?TC;?T}^ zC&xL6MbvJu9vuc`d@nD@I$*!DJ55^K2s(p#jw_nq2?)5s(2DvNNx8b|bx@-ziRugPu1f!}a&bI|?OT z$C2H1L`i+WF4%K`vSiEQQLyTQBr9KkjjMecHgKo1KCfN^v7!1)7v=A+5bc+uZTDis z52ufgT=#|TQwlY|K1%vn{Q&;1*YLZ!M}Ip8yL{z+V`xIv3q3>p9sC@*MeW%l!rrVb zR=D!Ofgnjv@so8dV;*iI2uvgTa4J}v!BGTUNMCJveB+~54rL%|Iqf34XIwddd8BY5 z578^sdMhbP9g?rK5s*`54EIl=UP`J(z@t}5enlR%w4V)!Z9suZIm3|AYZ?lZ{!LPnwd5hK5ntvgYe_vyqGK0|vCNNsbYC(Q~=upF+z; zAW6TsLQ;MASf9x&tyE({n%_LLzTlm*Rxh0NVnT`@h_Tm4Ax{bFBjURhrwE-9BTeS) zNsgl)icnmXjt3=rv*a6pPNb@P5zr;R-AwWHC(Wq~0;j6Kl!B2e?cUWZx@SM16N7esr6xwqpYn7ZR3zi|FnLWXc%Gvko9rGXSUTfXjZ2S= zghbxq(H$_scl1jxhn7Z5a`0|0_t3cL_FyUa0rCd(j{~z7y7Z7Hs5hfhfg-^N;L@Z8`#&EsHwlE4PpB5Mz7)}u6yL-ci z#ee$^{EZ4`eM3iZ5bFaUmh$Utf^I&|1Nx?P0R&Xj%_tCmzG<}-ZW!AUmEVb*P*|sE zWZ5MD#Y7?TRBWCjv(@r4$zx*MZd zQfG#hSx`@7VvUdbt_(8(DX`-DxMEPADx)$S3`L*_m|z6ppwHMpM#@Tw=!^!lxI_+G z2CYKN8Ysknxng|YT7saTkUBIXJ7Q#Q+-i;sTnud&3RqMO&`x3Ih5F10=AAyG?=SsA zc6B2obh>B0n975?%zB+6q2=k6M#G!7!tr@{nVSouDoqz^Ha#78p1P{^;YW5XcXFOs zG*qcep#WZs!QNrX0Ns%hLx!Ga2V*$mkLK#x(~rM@7|*}<*`Tl>5Aeo;ico#hGk|a2 zu&mdphpKNo{1Z>`Q&?;)FCt8?o#lrv$!|F;scQa!fkeI!FJV_vz;vnuHnv@VZ!XwY zf37cUEC!B@hUCyFRG9*Wx@0TsiK5)NYQBupx>nSjFhFU3>6%}DHNWijuUx~)16ih{ zkB_8(52pwt)0B-ZWyo9nL|D_|;{~CJA^^aDZ+keF6y>e752zeJ1IRF7*uwD1y+DO& z6lrJEReJCioyN}4#rR@(cR@U&W|$HY9q%O2mN>=mcQe;D=D2PwlHyw6P;qjePS~dW z-J&Na0^qQq$Z?Anr?`IAHuo?h3QFH(wqWOft?Rw*p$56+gQl$nHN;JyX!upKMPB(k z6N06%eG0Y6@W8d1YciBGlG}vd0=@ZIkArsMyJ|2O2~NG6r9FH0q|>@YIz7 zj1T157zH;0yW-&wJe+ZpdBXFCWI*FY@m5VHf4kZ`1!;~!&}}AkpPdCKttC=u+FVWu zI%N9Mu#f7Rb?s|n1RH9Z4KC5x0w8d70`rZt&^<(5vtI1i(I7vcjn7h*rBBXwuK=x& zkdU2ZunIUTQYZrKn67W2)4q^tER)|b_VJRdMFt!uqJ982>@MFvBDA6$D19J!pjtcU^ zI~LGH*4L#mgK4*6ezPzhcz0%ow`q9^qcv3I}2adzdd&cvTlYoL70ppXLf+h&E1?+6sf5I4rv;py~9ZpVT?d6x`jvs* zx0C*ZECQ&nlPrWBf4AtY^Hlu*`Ag&&d%p)8fl@|wJ&K_*BW`mXt z1&(+e<~ho7VB0VMBx|=)SEU0TPgn_THe(U~J<$)zf5vu%GdXOlWXVLs^*%L)K3)kRK@JrTAB>!YWC%KU+H?<%df$8pd;UbKe? z7C{YJs;=Y7>$ePgKLGIs>&4g8>`c0x&-nfJ8HX`S>B1;s+Le`|K>bbuBO1q2cGzL;F?%D7KA+Ctwm zGIU@gb!YFTo}5}43Y+IQb%jS7B|Wh^lUDR3-P(;|xf|q#8TBx9CtMVc#jrnk*Ho%e zNqw_%Ozx*d1Q~=|EWHOBOG#;c6N6fnz5zy?RAuv>X%c*J02hCFn%Em5%WihP9#5@3~NwU}b$4fE$^2x~5~7!juQi zE*cPDS%f>|O-~2;>U);>!rJovqIQPmrC+P-^^})w!?!A3v+x8&I8fzHLmyqFO=)1a zNLKk95!a>@qlY1MeTn#8;m~Iid(+sP#q1z;K|7Cw-FS1MpCP)vmVk3_wlnW-9Fz`s zZ-I$)cG(9BR=QR9aYF5GRxs2WvKy0*h!+$FY-<63_DDBF_Q8mNp{X5oxH=(|xriJM zgaSDu3n-md^ro>tv6JG6J^{m%A&D1%0s9t4SmG>von4R|IrcVyGIo25cz5?L3UueO zN~4=R^cQ(#-VHi}qiH&g*zE^0(?o)jjzzB=gyJn6o<0c@<@EX-?7IS!u=8zAzXAMJ zq|9RQ5lLHWO?cYtN++|DN{mRwurA3-ls8>5KAgs7)P@^Gks%~dEX*TJZzTYK?Y4K` z#@KgzN}%X_;2UFLY7B!badmkX^Vw<s9iYp93 zM)V{%V%ik(JY9K{u!>rLTFcNTYo5|IUndgrv=sTnHDkMsz(b?+P@Z_;*46THf zi0sNMjkloiSWSrynGzc^B{r0l*dXY#d$k>l#v&c4$QU_d|A>r#!nADxY7ZE;FsY_? zQj^+Yxsj%J62Q%9q3NfZ=1Miqh1oUD#hH1~^6(EMwi^C0t{AeDrKw{mNRYwYGm3Q7 z?YMp(%kV!+qinrimJ=!3=px0N94_m0JQhAi#M?`uWDG@S=kRHY>9etT zTIK2Ua1IaTJoGD*RE#29X4EalTr0ptN5{+K#qsob&@T!AVFZtHn{JW<8u2wu=g%i) zt2?}vmFkd&KyZsAXIxW4)+f7BH${QM(n+BaDJDB{`96=XjvZI=38*}BkR6U>2oDjr zb<_uw(To;<3W$8PBg9{*yeGq&pwi%gSPyL#j^>zD`e6rkCmI329So(#XoBjusv*X0 zW?ulw*?#VYSE1iEM`W*DI6Tm*>~qeX(Z9d+yg~@x+W$z!RQR zv~B&kY2`c6;eqnCAC zNN-OrvY3%;@Hax?TK7*bSk?p+^^*X`S^y%zG1}(h>|i{v&(Rj6}4S*rb`8TR4 zx8tYPod4pK@)H^Zh$pC* z9*}7fX)vFVF&>4}AvDB+i}O`9$(FU#^pfg-g}-yuki-Y5K3yzku$l0{y;uSgTsek% zVwLiNt(T#BAdF;zG~p(8 zUiOEt%a}*^R?||ELV>|Rm7qux9CH3W8g?{nsVcXcZYZV7bSsXbp3%H>o8kk@1gIK+ zBmdrZSj<2~%vmfIHN11Y$n3Sf3;0|2+;#o05z$n@+ z_`7zo?(}INjTC#7K*SW0<$r(m;)lS0JRXsUX<;go-}smFDbMOgS{?aJ6>)=ObfuDB z;BVS$Peu$))o#9sZNCC!V6LSFWb+2w+v||IL`YYD$QA){vNLGzq#j`Wq201IY~UW|p})I^%%Q2K$9gaZzi;=_c0ttT&@ zzr?y0J?Jl5hN=W|Q^)Q?7PHAKstaWWxU1V26AZzNqrx(epbKZ|FG4HRd7c42%4dUR z3z@_h&r!0_3iHcp95^)Hcx)r8g3lcWH{0G#LwDXRC+r2OPxBnCN z3P1bMEBN5oVZXR*_^<7K8>21bGy45^n1|bKN19Y(xNlkwzs13L7L(dCv8rNTz5|@{ zTZP(72=n?|OgT{+2wBA2)ny!fBdo_D$zrFN;86B6-^T_IYbzR+m#t1sXecCH*OHF`Nc}>$)f>leifYnb9zR3w=hCF~aWdkd~7k z_YXzGFuZ&_2`^ry%O&(JZwDf|Uo%5g;A0s2I!M-)d~ zBMj4E29VKt6y|z#PWfhe7C8=3Cb9TB;3!sS&Knq+z6(^Ip8Flh_G{{^YLSv z&tXvMw`rIFY2k=}C_2s89EzPaPsnQ~hY!bC;}k3ye=FyL?=m$TL-!zp9e8>LIk7KL zDs~6dEjD3PmBoC$m5DI(FgBoofWFC(hUB{lKlI5WPSl8!p#-@lvg}OcL=SrP!4406 zcUN}=9fe^KPAM!_;C)$KS(4Xv?fp_s>$aOfJ%6M(^ZUc zK2t1G*n zd=+9XM$n zFU!A&GjHra5i;D%7-8XYG%WNsIbY1MaSDiwCj=>(RJl*$NxKY31h%AaRn4+Hgz}#BB$V^<6Ypp z)zV~t?9~)K=AGo^$=S$&DI&*7covFqWmmHA&^p$MrQ6&bwbbUCsB{};Vdi$>B92T1 zTFMc9mq~bwBReD0kb32I#m2>PQ^y>iNlPXyYcx^>FTY|f$lxn-U!>!BeN6_#QL2v- zo@F^h7wBd5O09#{hWnqW2PYLBR`&UX5*Gh|2XrZ7rlQIV)%a4G$N?quEgm+I_<9je zVc3f$CO#91g=Wh}aExqB!yQz|7LHvEi6gnFIMv7KYA(!WG3v4y@_K#hP4z2OJvO4E zj$0>hSLxys-FA(M)xcoL-psO8_U7>VI2@1B5qcbt*{X&#m;CL357f9>%O6J7V zuSFSAe-W+KfZ&YnZqJybgI6@N#dB;i4(cd>+os3$ z`nMQ;T58$bBhnaBuV2R=q4|c>Zj%}}UExHnNxB@(5~Sbwp667ha2Cj^=ocv}&`HE5 zxSKf<$LR|VFxZ&DAm>kJ6F~ID)kt=U`d{FfJS%&E8m}1ois%3u1~AF6+WBpdi5zmI zn=rp z4k1Fc$*mHIPR6WOS zh*64re14;u1E!5FL$~?_i8DMC~E0rV(G|*4mD)|96BKj+fM~==7y{hZ=qTz^d2E9bK zlDN%`G`G4Xi)-?%T3oMxs=yhvwY3S0wDM_aVz?Z<}uA$=AF6$ z1Ch6m+B*Wpx(9Fo)1#w0@=jn;zbk0*uBYtmyI1ZRv=5w^=tLHOJV)9^Y*0YxEq#Iq zUEG$_!Um+stw+$aJ}ylnlM(7mHUT^A5XVyOq)hhO5t$tq^|Zx{%fhK8x^M&d0nxwk zE+orw&g21|WG-!ggdar_)__Bi66W2TG)eAfP91gq+!NT{jdDWf<6nI{R41#m`P+cDPt|}%r zGGqs=%pHZHp*#`~2*#DY3-rMyqY?OGJe<0m$d35+i(o~61Vak6;fnEN4iB{W04zH> zO3w1&!o!n$=K?Pbp$@?=0;tHEx`StsBs>6W@{x4K@QUUFk9vUC%<^P1_KskgcxQdr zpP9Z)#<)Z;yu7a~MIxz=uAAg^T8sOn$IDx=pgz4lAiGKZ*B>=G} zQCU(j4cDZAr(x$60B=sAHMyR~WMwt1;zecE<(%k$j0~<_mAhhqEQnBplz^9_hOQDu z03H*P802Z)f}4)>ML5Sm*k+@@SHDEmW$TtmWfEbcsFdjH8=|+n7%9Hv>M+>{GMlY0 zW`_G#m3t8x5*AH{>GEB$fuRu*UK%Rs6m7E*TIo7qkPPG}yd+yJ4FcfVbeg`$E@q=T zM*)_9R8Hr6xa`Z8u-ot;zQmr5N+tBVJl=RYpbe`H&U zx;{6xn%a%okm1=yk1r+DA*KAzx*8nw5o3N!wI&t9UFeSBjNv+g`4Jvuq(1C?A$-o{ z(*ItiTBH#-;$hH1`K}p92$JCF(Z2ev7@T!~*YFf6gLkM1Fgi?CMbwI`Vizf@+BmJ~ z<4)yZa860`^N%=a|81|+9(q6G75ve0|7P2JMP|jl<0&M+7Wam%lp&R(vk6{0!iktJ z>9qkr0}PJNnQ4%4aI&NOxO&!RxTl9L{{Vuc;S^6MK<^ppJXc^0DJEd&?lL2f3-^(ovkskWo!4)CII&2Wk>(qgtV*2UtdUvZ_3JXzf`jbV`bCI}(FsdEN1~HSz9$?oVPH zSXS&98T+-`A4*Y9*n_TjewLqHiuP%Y&GcJ<{ZJvPjbD-84B;TYgF zp_RavEuosxS1_Zf=s^@twIi5i*^$bZa7BWwdZ?Gq60ic0Eo}bSa30h-9C45DsZ!oPyWGjsX zcs+HM! zDBy;Ad!3HI-`T%9LH}=jDC>jqF=Co}UX?v3@OuUE6~ zg*T+9@uV{SqN%@sSl7p*HB>{xI@g%Z<-~U3x|i;4MHN*{)kKK=pW=Cj&bhAi;i0Zs z>xwzH7#&GOg)DC;vul>T?{o`jg1)iI4zb;#Xf|Lary{DYY>%`{j5@Vfze^J4B17Zg z1G#ZpuP=)_jMYe)#3dE3u%sXcSYp~GrAqIad8jq~^>MqU8A-mVAkaj)JBcGoxE^>OdG*FLZ|9g5cG zz7vaEa#nhOn9ED^a%`tJF*}wcK_9sypEaB}e4%3!m3Rw`b6mLrunp3Sm^+qhwqlgZ zs70BSU&=(z6s!Wb=fH0YjA|qPNL=3R)UC@IHX2gaI`7qXLBdxzNOxgC@8Dleexpqk z4+FU$`-%lEg<2Lc3!Iq!5q$ty33U{XSSjA97ojG9CH_(bYnb4r8){tp1!zTut3C-e zc@HPDGjoR<%uq=a`;~Q9`azjv8ETzmv=KQE^V)Q_tl=^u0sas`aOK$`30RIx{_s=0 zpHHothg#MD%1bJ|%yR)^hG}>7PowyE=|+k}ig6{RqAE8B!`CwTTjP zJxW^c2kNN`231~sqeMB4N~)cY9vJ$o9IFO@l~@gPI=#&f12T$~`U;^?yc~JbF*tc6 zl*t_mPFoav2!IPAy&qLL@#YY-&dV3CUgHv0COeXQu_WFDL)y){Z9=opEd<1X!#34R z8>+?J^`r;q>%$~FJ9Lx`*H~)EH;e!dzK{cF=?skBTX;tUFYCL9%`RT8CeWPh2eH0zS|Rfkpg3=^ zbp86!j*W~lGpumQ877ss3Q6%I8H*sM-6Xv0waEQ4-UrU+{MH=d@5WGP!L})X4?c)@ z$c2CKoN>?wa7bPT;mD&G+0@ka#{{A&yACnLZ?oczy4##fYGRtK#j4_d(tQ}$+EOb< zx|@!q2Q+pI_zr!Rc03$`-?`EbE=9;U`^Jc55855$pt$}q-Y!rjKyv3KXYSRd{1}PvBf<3(mFoqF1P5zZkaZwj2OLUa>M35;^jQcezkLJTnDD8%F| zJ7%C&H9!tP_ZqKxcjRP_5x&?B|dK@T0p`-6>V8pfwW%PFE7>yTY-wt5Wb z{J=G~5UkYHi+ibWq`yXv%B3nWOcOa^FXA@BuSF;Fs2D(p$@a+g6w7-K8*BVh%#>$y z$;wp~Y=XZ>?CI~@NO@=@k+D8%pvne@t@O3CCD)i&zLxZ*t0#|tHi0iZK$Ts$b0HP$ zo19@gjZjKxe2kCoJG0f2l8y4jF4B}I=9KGcErJlKZo|S~k*gGPBPRPHv>5>woy|^U zWJq7^Xibq8SCe(WSf*(3)@}3RaTuY(;QB=NM4Id&CbD>dsAySH3ooCES%XD{<-OE; zlNoqJ$_)0KZrqiBvq|>8yt#2;L)5S5IBo1V1ml22-k_KGQkJV0r!-tgoBj&6(eOwh z4)}1Iyh_IdW;I|9e1*K5BTE{gY*L_x;k4zyt#Fda=eonUh8PIMD>pe2M|p}w>B&DZ zr#Haon|h+Av&XaP0GNkmP(|mqZX&WH>hESSNH`ves7rl+5w9tHo?Lm7qX_u)R-dtk z3FdGQZv4mf&%fc%_vsQa)uS_D1{dFDwA*2~wZ)}M-u^LVHQjB@~1pW_y`|YxI zl7CPeolfWe-McmVdyoHi_V)QNKHj}|r`El5@6P^ScYpt0x7OLacmHnZKWd#nc*9gDv&&SZeC;|B|0`LisJ4&stD>cZ(OmEx$&71Fmjl zgPJ7yMcyRLN41@xb_+dXAWBPaxwUsUYPC&AhW5`=Ye2CYR&WdQn{A7Q2VFoP6*suu zX?T_m!{uy27od-ZSeI~zdVx~UcIJLu%T(&UP2XsLw`(t^SSk5@@oMZI2#$la_S28w z*G33{B+KJfPUe)*RrJOJ?cKOpPn0Si$>0q-mU@cA+No%rzt(CL!XTTTzMg%Htpv53 z^;_W)Tm0XuHDt%N*8t4bxaIV30gA>7bYZR2N^WT!%5Zf9ak&`ba(0?d*?Wx|WVX!B zvB80VR}+F4&fd~AJ&e|AQKEw?hfs?iEos&2A#WKmA6wivJ$@QFhb9uKp^V@6M23S4 zYIiyv`I-8`q&IwUx_5!%liy@$O89_v6RB`Zj{}x(5SSHUIm)O)r-|H6q+W0Ns=i*$ z=|DR*-zH|D+cIJl)vKz7yfB&HrRhAU1uEAc8~L8B zCUc-u(aaY=;%aFLpx~O)P-c&ew=j`c63!ZYfX#PFl4-tZ5_4AifCiDZTem!_l^0r# zbecH7y<7vzC1;%VuVDk>-zO|KLm0?)`eZeUYUK6k?P>-jehrm4P-OtNa*bj=kh^EcyG)^D3xg6I)=zWon z0}h6ik5XXoI5HILPyl*%IDVAVYT=t8Hz~dS`)e5igFi+l->zwrE<@!j;MQt?IcPq( zB|eFJMZC+$N|5j+=B+i!ra=8V$mgYt!-s9oxVe-dm#YgPjN1~(50M8J6@@kO-0ig6 zcqNs-fx)!%^K7u>E%@FI=+ub*2^^%j9!=xXY~dVYG%i^^O-tZ>?0lM)uqhqCz-yA7 z$wmeGYog-%JY6_459FGw2w@0+Ai6{&WZ@hZ@KFu0PL7S$>JRq*rVck?TOYRPW`(j* z?oM+-vK-w?1CkB(;*CxXK=Mtt{B{*lXfxfDhi$wf zW5Bdc$b1M~U=UdnIOq~2i5GC{4e57wz1CHM=j89(V5+u*%a1-#-0? zzP)e`|L6buziaaKU)kMfXkVkCMQ@*BRheHOwxM_GC0s1C7#L#Fanw3&N()@0e4Y{~ zV6`C96hhn9oBspwq-T{Lfi*64$@~?tMdmgBpthWm&8N72d_iTInM_R)1Z72)d~#ICl>H zjWz!8igkcRhKFq)bsHdac%uwieY$N;1VZO0z@li`gZ{T<2Z13Et4>&AS<#12i_TGN z(SG(lZu@&Rj-v_Qny3dM{_obW**ZDxf325Ll}}DQY+N|MU5O7Ell` zw>Wp-zvAliOBXM63@UYVTP4aGBaNhs9oB8-hHn)&f!_OsQffNlgpnG^ao@1$KSj%ifza1YT#QZc*_#6LeuXlS4A-W zZ$Y!tF6|S4QLU=xFN1FNz~s|4+WnkpcUqHhy+*XPPeHU2jGrIb>V^N22$#K!ZYb8f zM#S>dXGX-Y0O;eCGk-chwrcw;p=EoRg@kJ){aI<_!8jc9-D);X(EJQoSs;~33%-^U z+-tMx_!54lwK2_rSDP(I>Eb-gQ}0HY*CwlYR15Kc(so>n(%O8MlUEkJke)>dm{#qp z)v`97)h4qAs#pNFxFhPyug`|sC!P)F=J-R72z&Q^Y&O0=59FuMc^-%j^z{sd zm7jDLm^J-n&H-z9#>+MS|BU#bCjy0+)8#cLu6+t7HkRn;$HLb7|40n{)3Ytbu4#4k z=?}nv&2)kGd5|+#^;g5rVu0q`HGck#_?aLobRR>&Oc-<$>FQ(=o?i>GjiR53wF%CD z7}^&5;-m4lRqh%=e@+CA4mt2fbeixM`$QyNs_rj?sLKN_rd%WJ&xo+UQoyanjJsz8 zQp>+a*1G8LMb^cY`}q-ed2f6K(uNO5RRt=4ka?k4{~F25Pk)evXqZF@y zR8h1uOkpT!ip>D8%@(!%?FxlI*DQoC`g;!)2I}WOLFDeZz8&Q}e>yH^|48iZ>=R`> zMooVitZWU>c)7;UpH(}CAzLFyVb_wJa?#%{$#Laps^eG#hi{OLG3%U{gHx2sQ; zTBvINGT2xTOg>%X;m?YPzhbAgtU)f6$5Clq$ua;hOLNP-Hlr!HM$xrTLD6z0e}4R| z_sGA!1f%FIqM~p`Q&mZFTcX#U!EClHY<<`zyYXy(c~INy>~#!ehkmUjt{ZKCcU$Dt zVE+u$W#GJtU|m8n@`r^%2o}?D>>U0xiY;~IHI%4_JWa&eX>ty=y2FkjYI z^918+_|%nV=T5VG-z_Xt=R9i+-DM}F|MP$Tpa1zk|8MQA)B3V? z2m9{T!uPaCjkL1adt3MsGm<-hsrh1t?jBmU8>!+vLRR(y!U<|EJZ!U|0iAkSwGwT|8@88bh-uqe|I{ayVw5z{uMu;%m3fC%fCO(<=-cG`MY-P zckS4(yb9EquYLKIvtIl1yY}UG?aS{IyZiqWUw;2P-S_>gJofz+o%BtA!c!DevCdyJ z3elv>bPHD2*}V45w^j67&n7MaHRVKfo^PEc{_hhlKTnsVS<==O*D)x7@BV2L=JyY? z)Yof?^JkPeKL_aMwQ%#sMWGe@EeUJG>D&W6opDe>j6L`Z#cp1$uwr`ZB7Q1ZDv)G;ivn21!vh{GavZa&aB7~Ip z7u$GX*ty={(+?ZW)=4w+;YFY|9N|kUw@uZ<8ym59>pd7tj_d<}di4I`LyoPp4d1t~ z7|4K&@DJJvKZ;nM;TUh?w(fXUEjG~-?{z! z{`{W%ztY9Zd)j!<{a@$q{riRcKS;ce|Mf5VY2U6rUZhF3#N$}wl6=`R5Xw2Oj@ABN zr@hzNf3Wx9e(iRD`$kK%2p9qnE1FFx@*sSq_os^m95C|jyY%vWwn)_bi#eh;BZDa3 zdcGPjGe9|M>C4MS3OFP#rLz;la`HTlvv91^37ckd>q!a(N1AL(=W>HAE@gN+nUBhe z)+lA_w`qt0!b|DTrf?2aH7-AFZvDk-IbSVH$uAeP$-JC@{A#(FRkZ(V6^%A@?KQC3 zDLOeQPFV}E0n!f3(g%Z$Eq!~Lr>kUEO8!wCgryG{L0lz%p8-}1$E_b$lPF!3lG##L zC1Zfsma?O@laZfVW>Y(nFTCue;utCQ=@j_q%R<^koX)KwQ}Wj`CZv^$zkrvD3%z!#Gr;=83V4gpFXD2g zJQXeUZ33tE>89_GN8zSvY&|iybm`N|1WMuS(>x9<7LEA&Z3>8ObJaN3#e6p2^!)`9 z&Ko}d2w*BhQG6_*qvF@gNo2HYF4E$ju~tUaqE+92z8TM=aJ=E;GfDYxpY_)Fj4&uF ztAX8Hv54YITJ?VIi!b5l!2=FAj4lnDq>ka&vSm2V;)7E8bg?MZ5Z>$F@80Jcv|E*? z{G8rN_L9AFMW=;o_^dTLa!#^OzXkwK%Ef1&Ry>}3A{^p*MFn4e`QaVtergBukLth& z*E>vqwm`OGeg}gDek$u}U3_d+A^cQSmA-GX-#4bxnhmLfa>h|LP|F#!j~iN&Ae<`e z`B*50A;PJms^XS-KtB~3i%a(|{ZwR>OY8&I^KexH@rKDG?3;9FJ z7s2$g<%^5%W6Ku-wZDJ&ZqnTg?zCxft~;B$e)fUDn4N#x z>MItH=%-@w6=AVy^-YSXbz{adYTb~ryf8K_{NhrrT={u%omS^6VwLJ#dmogmxDKm- za}@zsovR47>RiRMraD&{bA9>c-o1*9MIxrUx-zBG>D;ft6wwBns+94pd^A+=g0ta= zW-Kqd>WtZVikY_=RxPxDnY&n{BvUMH-$q zF@btcklsURQ~wzp&E*Voc3Kb8iH1=#nk|>J38vrSbn8s+@<}a59gP7Hq5-Pd7{p%d zE|jNld!=t&Gf$Cfu{*!0<+E{rmH=qgrkSMiOepa{XT(lh@nI&~XpYmt z(ir@h&&0y~KM*sD#tOX1FPh{whk*Gv-oZFAZ&$Nrlc2X8e_GB6=G>JpA9UoZBmVxfgmzSS4yuEv(Gv)c%@8W;d`B|PZAP0aR5~EcD0KERzB&3E=);W+L}|@sT*Gy zb}{cq;R@>ae|eM=DuhiGzHj>1hrmNawoKe>C46;eTn~> z$6*=C;)w{;3y?f-0+y2NRi#1yM_H1j(+z{B0o_-dMVuZ6IQH&{kJV_Wr7d*Cw$6pz ztcg~40xJ{_dskD3i!xl`;Y z8I6?AW;M-r#xlMYe#M)&&k%MW^K>C z{d>i|6h=^FwM@+=Xe~f7;c_PLiM3^|Lb34f-`Q7_V)Y-0O*Zt`yR{Hw~vEwvw|0}Ko)*FNR)YmUP}D${j^cJ7x@ zbQ6;RH*_q@(IjdRjqj-qZmT(b0M&)itabNHe-dTGj;kQb3h13sK6S&;Ew2^&WERM# z88RLPf@vSSM8B#?*Cq|Na&Q|sH$@GWXWHWD>=XZi1Zl-$D$|trEExBd#SA)YT*$k^vyL^SYhS$Rk^x0tSvOdDR=3Cg$X4^Qhh-14xxG~I{OD~2-%uq ze=|N{Ral(5QAdl+Y6=L4C-;us36qVup`^{?!0)!cRJelcHTFVts&ThbNRjF#PH@xh z-;Gwu3g&~!6YhO;?~YBAsxo(qN9iIRL+{U0a~*UABP9D#lA@GIMhUeosAa>pF$igi zsKl|~HO}njeOuT;(+-OdhP0S1!)03Ef4`fgLznVQX1{IEFx&ch+qY^GM8a)PA?kwR z69G`|2T5o3l|uRNohGqeO9YUR`WE|Ooi7{b^TU=|sq>rqTIy}pd2c1lcGamz z#zR0YNt+}4e7t9za1xE+J7axob>7t@N$97@)mZSOX2l;iT{8P%rkD5pmvT_Tf1Chm zYAFWc4$}~ zra{GFV$H-R5XVXS5{=$EHQxzpL6IkKnwAk1J+N&hZX_bnihV(?WdVfO_Mgx`jSfMV9CX(!=BKKuQ8)mPxyKDiR6b&yYf8!R~_zD4( zSJNq`*v3q^1Tyxq096|KO8m4XA1sc{z<35zZ=+w$)|F9=-S+k~jA=T%M3K@ebk5FP zB@Y#Sm7InF$jT|t;c#Y(>Ce8py8gNTx&FESx&FESx&FESx&FESx&FESx&FESx&FES Xx&FESx&C?2&;JK;@XOZ#18@TXSv(TM delta 47873 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
    -

    LetterAvatarKit Docs (81% documented)

    +

    LetterAvatarKit Docs (82% documented)

    View on GitHub

    @@ -60,7 +60,8 @@

    LetterAvatarKit

    -

    +

    +

    LetterAvatarKit provides an UIImage extension for generating letter-based avatars/placeholders. There are a few images showing what you can achive by using this framework:

    @@ -71,19 +72,28 @@

    Requirements

  • iOS 8 and later
  • Swift 4.0 and later
  • +

    Features

    + +
      +
    • Ease of use
    • +
    • Flexible API
    • +
    • Builder pattern
    • +
    • Circle/Square/Bordered image
    • +
    • Flat UI colors
    • +

    Installation

    CocoaPods

    LetterAvatarKit is available through CocoaPods. To install it, simply add the following line to your Podfile:

    -
    pod "LetterAvatarKit", "1.2.1" # Swift 5.0
    +
    pod "LetterAvatarKit", "1.2.2" # Swift 5.0+
     pod "LetterAvatarKit", "1.1.7" # Swift 4.2
     pod "LetterAvatarKit", "1.1.5" # Swift 4.0
     

    Carthage

    Add this to Cartfile

    -
    github "vpeschenkov/LetterAvatarKit" == 1.2.1 # Swift 5.0
    +
    github "vpeschenkov/LetterAvatarKit" == 1.2.2 # Swift 5.0+
     github "vpeschenkov/LetterAvatarKit" == 1.1.7 # Swift 4.2
     github "vpeschenkov/LetterAvatarKit" == 1.1.5 # Swift 4.0
     
    @@ -149,12 +159,12 @@

    Objective-C

    Customization

    You can configure the following properties of LetterAvatarBuilderConfiguration:

    -
    /// The size of an avatar image.
    -open var size: CGSize = CGSize(width: 80, height: 80)
    -
    /// The username.
     open var username: String?
     
    +
    /// The size of an avatar image.
    +open var size: CGSize = CGSize(width: 80, height: 80)
    +
    /// The flag that indicates of using single only one letter, otherwise,
     /// as much as wil be possible to obtain. But no more than 3 letters.
     open var isSingleLettered: Bool = false
    @@ -180,6 +190,9 @@ 

    Customization

    /// The border color of the image.
     open var borderColor: UIColor = UIColor.white
     
    +
    /// A Boolean flag indicating whether the avatar is opaque.
    +open var opaque: Bool = false
    +

    Community

    Questions, comments, issues, and pull requests are welcome!

    @@ -196,7 +209,7 @@

    License

    diff --git a/docs/search.json b/docs/search.json index 9615e43..e747f8b 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -{"Extensions/UIImage.html#/c:@CM@LetterAvatarKit@@objc(cs)UIImage(cm)lk_makeLetterAvatarWithConfiguration:":{"name":"makeLetterAvatar(withConfiguration:)","abstract":"

    Makes an letter-based avatar image using given configuration.

    ","parent_name":"UIImage"},"Extensions/UIImage.html#/c:@CM@LetterAvatarKit@@objc(cs)UIImage(cm)lk_makeLetterAvatarWithUsername:":{"name":"makeLetterAvatar(withUsername:)","abstract":"

    Makes an letter-based avatar image using given username.

    ","parent_name":"UIImage"},"Extensions/UIImage.html#/c:@CM@LetterAvatarKit@@objc(cs)UIImage(cm)lk_makeLetterAvatarWithUsername:size:":{"name":"makeLetterAvatar(withUsername:size:)","abstract":"

    Makes an letter-based avatar image using given username and size.

    ","parent_name":"UIImage"},"Extensions/UIColor.html#/s:So7UIColorC15LetterAvatarKitE8HEXColorO":{"name":"HEXColor","abstract":"

    Colors from http://flatuicolors.com/

    ","parent_name":"UIColor"},"Extensions/UIColor.html":{"name":"UIColor"},"Extensions/UIImage.html":{"name":"UIImage"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)size":{"name":"size","abstract":"

    The size of an avatar image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)username":{"name":"username","abstract":"

    The username.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)isSingleLettered":{"name":"isSingleLettered","abstract":"

    The flag that indicates of using single only one letter, otherwise,","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)lettersFont":{"name":"lettersFont","abstract":"

    The letters font.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)lettersColor":{"name":"lettersColor","abstract":"

    The colors are used to draw image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)backgroundColors":{"name":"backgroundColors","abstract":"

    The background colors of the image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)lettersFontAttributes":{"name":"lettersFontAttributes","abstract":"

    The letters font attributes.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)isCircle":{"name":"isCircle","abstract":"

    Indicates whether to generate circle or square image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)borderWidth":{"name":"borderWidth","abstract":"

    The border width of the image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)borderColor":{"name":"borderColor","abstract":"

    The border color of the image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilder.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilder(im)makeAvatarWithConfiguration:":{"name":"makeAvatar(with:)","abstract":"

    Makes a letter-based avatar image by using a given configuration.

    ","parent_name":"LetterAvatarBuilder"},"Classes/LetterAvatarBuilder.html":{"name":"LetterAvatarBuilder","abstract":"

    Uses for making letter-based avatar images.

    "},"Classes/LetterAvatarBuilderConfiguration.html":{"name":"LetterAvatarBuilderConfiguration","abstract":"

    Uses for configurating a LetterAvatarBuilder instance.

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

    "}} \ No newline at end of file +{"Extensions/UIImage.html#/c:@CM@LetterAvatarKit@@objc(cs)UIImage(cm)lk_makeLetterAvatarWithConfiguration:":{"name":"makeLetterAvatar(withConfiguration:)","abstract":"

    Makes an letter-based avatar image using given configuration.

    ","parent_name":"UIImage"},"Extensions/UIImage.html#/c:@CM@LetterAvatarKit@@objc(cs)UIImage(cm)lk_makeLetterAvatarWithUsername:":{"name":"makeLetterAvatar(withUsername:)","abstract":"

    Makes an letter-based avatar image using given username.

    ","parent_name":"UIImage"},"Extensions/UIImage.html#/c:@CM@LetterAvatarKit@@objc(cs)UIImage(cm)lk_makeLetterAvatarWithUsername:size:":{"name":"makeLetterAvatar(withUsername:size:)","abstract":"

    Makes an letter-based avatar image using given username and size.

    ","parent_name":"UIImage"},"Extensions/UIColor.html#/s:So7UIColorC15LetterAvatarKitE8HEXColorO":{"name":"HEXColor","abstract":"

    Colors from http://flatuicolors.com/

    ","parent_name":"UIColor"},"Extensions/UIColor.html":{"name":"UIColor"},"Extensions/UIImage.html":{"name":"UIImage"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)size":{"name":"size","abstract":"

    A size of an avatar image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)username":{"name":"username","abstract":"

    An username.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)useSingleLetter":{"name":"useSingleLetter","abstract":"

    A flag that indicates of using single only one letter, otherwise,","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)lettersFont":{"name":"lettersFont","abstract":"

    Letters font.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)lettersColor":{"name":"lettersColor","abstract":"

    Colors that are used to draw image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)backgroundColors":{"name":"backgroundColors","abstract":"

    Background colors of the image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)lettersFontAttributes":{"name":"lettersFontAttributes","abstract":"

    Letters font attributes.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)circle":{"name":"circle","abstract":"

    Indicates whether to generate circle or square image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)borderWidth":{"name":"borderWidth","abstract":"

    A border width of the image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)borderColor":{"name":"borderColor","abstract":"

    A border color of the image.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilderConfiguration.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilderConfiguration(py)isOpaque":{"name":"isOpaque","abstract":"

    A Boolean flag indicating whether the avatar is opaque.

    ","parent_name":"LetterAvatarBuilderConfiguration"},"Classes/LetterAvatarBuilder.html#/c:@M@LetterAvatarKit@objc(cs)LKLetterAvatarBuilder(im)makeAvatarWithConfiguration:":{"name":"makeAvatar(with:)","abstract":"

    Makes a letter-based avatar image by using a given configuration.

    ","parent_name":"LetterAvatarBuilder"},"Classes/LetterAvatarBuilder.html":{"name":"LetterAvatarBuilder","abstract":"

    Uses for making letter-based avatar images.

    "},"Classes/LetterAvatarBuilderConfiguration.html":{"name":"LetterAvatarBuilderConfiguration","abstract":"

    Uses for configurating a LetterAvatarBuilder instance.

    "},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

    "},"Extensions.html":{"name":"Extensions","abstract":"

    The following extensions are available globally.

    "}} \ No newline at end of file diff --git a/docs/undocumented.json b/docs/undocumented.json index 90bbcb7..d8bd373 100644 --- a/docs/undocumented.json +++ b/docs/undocumented.json @@ -2,7 +2,7 @@ "warnings": [ { "file": "/Users/vpeschenkov/Documents/git/LetterAvatarKit/LetterAvatarKit/Extensions/UIColor+LetterAvatarKit.swift", - "line": 98, + "line": 99, "symbol": "UIColor.colors", "symbol_kind": "source.lang.swift.decl.var.static", "warning": "undocumented" @@ -16,14 +16,14 @@ }, { "file": "/Users/vpeschenkov/Documents/git/LetterAvatarKit/LetterAvatarKit/LetterAvatarMaker.swift", - "line": 28, + "line": 29, "symbol": "LetterAvatarMaker", "symbol_kind": "source.lang.swift.decl.class", "warning": "undocumented" }, { "file": "/Users/vpeschenkov/Documents/git/LetterAvatarKit/LetterAvatarKit/LetterAvatarMakerExtendable.swift", - "line": 28, + "line": 29, "symbol": "LetterAvatarMakerExtendable", "symbol_kind": "source.lang.swift.decl.protocol", "warning": "undocumented"