     
     fileprivate func _containsAnEmoji() -> Bool {
         // Original Objective-C code by Gabriel Massana https://github.com/GabrielMassana
-        // Adapted to Swift 3 by Eric Dejonckheere https://github.com/ericdke
+        // Adapted to Swift 3 by Eric Aya https://github.com/ericdke
         let hs = self.character(at: 0)
         // surrogate pair
         if 0xd800 <= hs && hs <= 0xdbff {

    
    public var condensedWhitespace: String {
        #if os(OSX)
            let components = self.components(separatedBy: CharacterSet.whitespacesAndNewlines)
        #else
            let components = self.components(separatedBy: NSCharacterSet.whitespacesAndNewlines())
        #endif

    }
    
    public var emojiRanges: [NSRange] {
        var ranges = [NSRange]()
        let s = NSString(string:self)
        s.enumerateSubstrings(in: NSRange(location: 0, length: s.length),
                              options: .byComposedCharacterSequences) {
                                (substring, substringRange, _, _) in
            if let substring = substring {
                if NSString(string: substring)._containsAnEmoji() {
                    ranges.append(substringRange)
                }
            }
        }
        return ranges
    }
    
    public var containsEmoji: Bool {
