[
  {
    "path": ".gitignore",
    "content": "# Xcode\n#\n# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore\n\n## Build generated\nbuild/\nDerivedData/\n\n## Various settings\n*.pbxuser\n!default.pbxuser\n*.mode1v3\n!default.mode1v3\n*.mode2v3\n!default.mode2v3\n*.perspectivev3\n!default.perspectivev3\nxcuserdata/\n\n## Other\n*.moved-aside\n*.xcuserstate\n\n## Obj-C/Swift specific\n*.hmap\n*.ipa\n*.dSYM.zip\n*.dSYM\n\n## Playgrounds\ntimeline.xctimeline\nplayground.xcworkspace\n\n# Swift Package Manager\n#\n# Add this line if you want to avoid checking in source code from Swift Package Manager dependencies.\n# Packages/\n.build/\n\n# CocoaPods\n#\n# We recommend against adding the Pods directory to your .gitignore. However\n# you should judge for yourself, the pros and cons are mentioned at:\n# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control\n#\nPods/\n**/Marvel.xcworkspace/\n\n# Carthage\n#\n# Add this line if you want to avoid checking in source code from Carthage dependencies.\n# Carthage/Checkouts\n\nCarthage/Build\n\n# fastlane\n#\n# It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the\n# screenshots whenever they are needed.\n# For more information about the recommended setup visit:\n# https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md\n\n**/fastlane/report.xml\n**/fastlane/Preview.html\n**/fastlane/screenshots\n**/fastlane/test_output\n"
  },
  {
    "path": ".ruby-version",
    "content": "2.3.0\n"
  },
  {
    "path": ".travis.yml",
    "content": "language: objective-c\nosx_image: xcode8.1\ncache:\n- bundler\n- cocoapods\nbefore_install:\n- bundle install\n- bundle exec pod keys set MarvelApiKey $MARVEL_API_SECRET Marvel\n- bundle exec pod keys set MarvelPrivateKey $MARVEL_API_PUBLIC Marvel\n- pod repo update\nscript:\n- fastlane test\n- bundle exec danger\nafter_success:\n  - bash <(curl -s https://codecov.io/bash)\nenv:\n  global:\n  - secure: iQP72QQ4U3N8v2qLSiU1lcPv9enJAMFY9Bs/5MxI6D8gmOlVreEZloKVW4zS2pLcJITlttXiCLGCwi203DxbfnfXcdeEr04IsbWNDWv2NggtdSK1A/iQZDVIJGss0Qgvi6JW7+BVaPemCMhlndWxo4l0qkpj5jNvwS8bPWSPKJ1MB6AZlMQShktUlDYWujMcx3AfTgczLJbhiFrP8gpa6XCgFOu7lzlw6C+aqvRQgywUeLL9MKWge3OVBZnOMFtStB2ehUeKxvcp6HXOBIGaG8FVVef/NI+YXyLlX4wwLkuUsnR61lO/hEDMtL59ZE6SKOXDhXi00GyITT/E1k0sa/3caMgnQ5apHQxjN5y5vhc96CqEYnMyyAnwsgAktXpHqy5qU7TUJQ4EOfg67oFHFcXXqBbvFIh1AVM15e8oMZdEs/9GrDllm2KTY57FznO+XqqbmzLeFudaoVeWnXWsmy/M68RQZNp6cdRsBU+wVHu2k8uNwaIF91ouHm9sXJLcICFgvGZ/mg5r4nWza9Hu0gRk8FWLVNQtahjboS2OMAn+ZvyybjOungMvZoXU4ZJcXV4izAw6WIdUZgrU5GmzknWNwO1x8+AhJ7Lo/pkCsm22zV6HwB41sIo1CvJRfB8f8UvL7YPtU1DURNn7KIdju2C8jdi8Ae8onfkMknJQhNo=\n  - secure: ZCih/6Pkg6kxc3V/GVfe29KYN1fL9EKVqdGz9vqMgfFyivDsz7a/WXXqoYBqyBXJ0Z9tT+13GZG1QidcZeLoxJ+RAvVvhtZhp4PBH4sa9dsy4laWZkA9hIRmgfoMR3M1Cuab+twmXBz/rPXkTWeOk9dBRlXe4BP5/QfzwrTz9NApezCV1vsGLGFVulQrClHE0USMA0eE6IiAACM7EsT4I4q063zJxQWAAsly9i/hbsL3J+1lUpqE4UcNamou/1Ri07VEFWYzM5Y87+dLB6pD1e96Cj7KjNfQVwBK9uw2K17i4oQt/kgwx8J2A4zdzCPF0kzu54Jmw6hUUrlv7sVscUfKKDPwtdqlQpS/ga7NgV43OzrhNrnnnjZQi7RRJAWvB33zsOjouEab9MVUS5vv6zi5uEUQj4eADgUlGbrhz9bw0Qdj2oX6UUWHnpyt5hS88cLqymZ5VLfvNwnrY3ZUzoGvFFu09KPrL1eUIgccanrpFqQHC0zqQZRiH1qKWH0dq8jgQNYE766mU1zypPge9wZW26dORatb8vat+lalt47wz38B2Wq818FgCN3PeeMyDr0xZoWInY0jTRB1eZzRhrVIX39MpyQ916bScCFr4Ex9biORiio0anUWUox1dyqSHvT/ZRpEdLf5YU2FhySh+9rEcAvluctXyHZvk5hYZUI=\n"
  },
  {
    "path": "Dangerfile",
    "content": "# Sometimes it's a README fix, or something like that - which isn't relevant for\n# including in a project's CHANGELOG for example\ndeclared_trivial = github.pr_title.include? \"#trivial\"\n\n# Make it more obvious that a PR is a work in progress and shouldn't be merged yet\nwarn(\"PR is classed as Work in Progress\") if github.pr_title.include? \"[WIP]\"\n\n# Warn when there is a big PR\nwarn(\"Big PR\") if git.lines_of_code > 500\n\nmessage(\"Test Comment on PR\")\n# Don't let testing shortcuts get into master by accident\n# fail(\"fdescribe left in tests\") if `grep -r fdescribe specs/ `.length > 1\n# fail(\"fit left in tests\") if `grep -r fit specs/ `.length > 1\n\n# Slater config\nslather.configure(\"Marvel.xcodeproj\", \"Marvel\", options: {\n  workspace: 'Marvel.xcworkspace',\n  output_directory: \"coverage\",\n  ignore_list: [\n    \"**/Storyboard.swift\",\n    \"**/MarvelAPI.swift\",\n    \"**/MarvelAPIManager.swift\"\n  ],\n  ci_service: :travis,\n  coverage_service: :terminal,\n})\n\nslather.notify_if_coverage_is_less_than(minimum_coverage: 80)\nslather.notify_if_modified_file_is_less_than(minimum_coverage: 60)\nslather.show_coverage\n"
  },
  {
    "path": "Gemfile",
    "content": "# frozen_string_literal: true\nsource \"https://rubygems.org\"\n\n# gem \"rails\"\ngem \"cocoapods\", \"1.1.1\"\ngem \"cocoapods-keys\", \"1.7.0\"\ngem \"slather\", \"2.3.0\"\ngem \"fastlane\", \"1.110.0\"\ngem 'danger'\ngem \"danger-slather\"\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2016 Thiago Lioy\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "Marvel/AppDelegate/AppDelegate.swift",
    "content": "//\n//  AppDelegate.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 14/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport UIKit\n\n@UIApplicationMain\nclass AppDelegate: UIResponder, UIApplicationDelegate {\n\n    var window: UIWindow?\n\n\n    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {\n        // Override point for customization after application launch.\n        ApperanceProxyHelper.customizeNavigationBar()\n        return true\n    }\n\n\n}\n\n"
  },
  {
    "path": "Marvel/ApperanceProxyHelper.swift",
    "content": "//\n//  ApperanceProxyHelper.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 11/12/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport Foundation\nimport UIKit\n\nstruct ApperanceProxyHelper {\n    \n    static func customizeNavigationBar() {\n        let navigationBarAppearace = UINavigationBar.appearance()\n        navigationBarAppearace.tintColor = ColorPalette.white\n        navigationBarAppearace.titleTextAttributes = [NSForegroundColorAttributeName:ColorPalette.white]\n    }\n    \n}\n\n\n"
  },
  {
    "path": "Marvel/Cells/CharacterCollectionCell.swift",
    "content": "//\n//  CharacterCollectionCell.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 20/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport UIKit\nimport Reusable\n\nfinal class CharacterCollectionCell: UICollectionViewCell, NibReusable {\n    @IBOutlet weak var name: UILabel!\n    @IBOutlet weak var thumb: UIImageView!\n    \n    \n    static func size(for parentWidth: CGFloat) -> CGSize {\n        let numberOfCells = CGFloat(2)\n        let width = parentWidth / numberOfCells\n        return CGSize(width: width, height: width)\n    }\n    \n    func setup(item: Character) {\n        name.text = item.name\n        thumb.download(image: item.thumImage?.fullPath() ?? \"\")\n    }\n}\n"
  },
  {
    "path": "Marvel/Cells/CharacterTableCell.swift",
    "content": "//\n//  CharacterTableCell.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 15/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport UIKit\nimport Reusable\n\nfinal class CharacterTableCell: UITableViewCell, NibReusable {\n    @IBOutlet weak var name: UILabel!\n    @IBOutlet weak var characterDescription: UILabel!\n    @IBOutlet weak var thumb: UIImageView!\n    \n    static func height() -> CGFloat {\n        return 80\n    }\n    \n    func setup(item: Character) {\n        name.text = item.name\n        characterDescription.text = item.bio.isEmpty ? \"No description\" : item.bio\n        thumb.download(image: item.thumImage?.fullPath() ?? \"\")\n    }\n}\n"
  },
  {
    "path": "Marvel/Cells/Xibs/CharacterCollectionCell.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVersion=\"11542\" systemVersion=\"16B2657\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\">\n    <device id=\"retina4_7\" orientation=\"portrait\">\n        <adaptation id=\"fullscreen\"/>\n    </device>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"11524\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <objects>\n        <placeholder placeholderIdentifier=\"IBFilesOwner\" id=\"-1\" userLabel=\"File's Owner\"/>\n        <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"-2\" customClass=\"UIResponder\"/>\n        <collectionViewCell opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\" reuseIdentifier=\"CharacterCollectionCell\" id=\"dub-5O-5r3\" customClass=\"CharacterCollectionCell\" customModule=\"Marvel\" customModuleProvider=\"target\">\n            <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"316\" height=\"311\"/>\n            <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMaxY=\"YES\"/>\n            <view key=\"contentView\" opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\">\n                <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"316\" height=\"311\"/>\n                <autoresizingMask key=\"autoresizingMask\"/>\n                <subviews>\n                    <imageView userInteractionEnabled=\"NO\" contentMode=\"scaleToFill\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"qsZ-Mq-TPu\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"316\" height=\"311\"/>\n                    </imageView>\n                    <view contentMode=\"scaleToFill\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"NMe-cL-xw2\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"267\" width=\"316\" height=\"44\"/>\n                        <subviews>\n                            <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"Name\" textAlignment=\"natural\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" adjustsFontSizeToFit=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"3az-cb-fkg\">\n                                <rect key=\"frame\" x=\"10\" y=\"11.5\" width=\"296\" height=\"21\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"height\" constant=\"21\" id=\"mBv-G1-VvS\"/>\n                                </constraints>\n                                <fontDescription key=\"fontDescription\" name=\"HelveticaNeue\" family=\"Helvetica Neue\" pointSize=\"18\"/>\n                                <color key=\"textColor\" white=\"1\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                        </subviews>\n                        <color key=\"backgroundColor\" white=\"0.0\" alpha=\"0.60370291095890416\" colorSpace=\"custom\" customColorSpace=\"genericGamma22GrayColorSpace\"/>\n                        <constraints>\n                            <constraint firstItem=\"3az-cb-fkg\" firstAttribute=\"leading\" secondItem=\"NMe-cL-xw2\" secondAttribute=\"leading\" constant=\"10\" id=\"4df-yf-aJX\"/>\n                            <constraint firstItem=\"3az-cb-fkg\" firstAttribute=\"centerY\" secondItem=\"NMe-cL-xw2\" secondAttribute=\"centerY\" id=\"YhA-oa-Y3l\"/>\n                            <constraint firstAttribute=\"trailing\" secondItem=\"3az-cb-fkg\" secondAttribute=\"trailing\" constant=\"10\" id=\"jUo-9t-A7U\"/>\n                            <constraint firstAttribute=\"height\" constant=\"44\" id=\"lbv-sh-rHT\"/>\n                        </constraints>\n                    </view>\n                </subviews>\n            </view>\n            <constraints>\n                <constraint firstAttribute=\"bottom\" secondItem=\"NMe-cL-xw2\" secondAttribute=\"bottom\" id=\"F9X-h9-KDP\"/>\n                <constraint firstItem=\"qsZ-Mq-TPu\" firstAttribute=\"leading\" secondItem=\"dub-5O-5r3\" secondAttribute=\"leading\" id=\"GZn-gu-a3t\"/>\n                <constraint firstAttribute=\"trailing\" secondItem=\"NMe-cL-xw2\" secondAttribute=\"trailing\" id=\"RQb-xW-hez\"/>\n                <constraint firstAttribute=\"trailing\" secondItem=\"qsZ-Mq-TPu\" secondAttribute=\"trailing\" id=\"XeP-om-SoN\"/>\n                <constraint firstItem=\"NMe-cL-xw2\" firstAttribute=\"leading\" secondItem=\"dub-5O-5r3\" secondAttribute=\"leading\" id=\"ayu-7B-LOV\"/>\n                <constraint firstAttribute=\"bottom\" secondItem=\"qsZ-Mq-TPu\" secondAttribute=\"bottom\" id=\"qd2-h4-Boq\"/>\n                <constraint firstItem=\"qsZ-Mq-TPu\" firstAttribute=\"top\" secondItem=\"dub-5O-5r3\" secondAttribute=\"top\" id=\"rrV-Uh-Jf6\"/>\n            </constraints>\n            <size key=\"customSize\" width=\"316\" height=\"311\"/>\n            <connections>\n                <outlet property=\"name\" destination=\"3az-cb-fkg\" id=\"RbX-d0-yUw\"/>\n                <outlet property=\"thumb\" destination=\"qsZ-Mq-TPu\" id=\"bt9-ko-Yda\"/>\n            </connections>\n            <point key=\"canvasLocation\" x=\"6\" y=\"44.5\"/>\n        </collectionViewCell>\n    </objects>\n</document>\n"
  },
  {
    "path": "Marvel/Cells/Xibs/CharacterTableCell.xib",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.XIB\" version=\"3.0\" toolsVersion=\"11542\" systemVersion=\"16B2657\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\">\n    <device id=\"retina4_7\" orientation=\"portrait\">\n        <adaptation id=\"fullscreen\"/>\n    </device>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"11524\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <objects>\n        <placeholder placeholderIdentifier=\"IBFilesOwner\" id=\"-1\" userLabel=\"File's Owner\"/>\n        <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"-2\" customClass=\"UIResponder\"/>\n        <tableViewCell clipsSubviews=\"YES\" contentMode=\"scaleToFill\" selectionStyle=\"none\" indentationWidth=\"10\" reuseIdentifier=\"CharacterTableCell\" rowHeight=\"80\" id=\"7Dc-hd-PXe\" customClass=\"CharacterTableCell\" customModule=\"Marvel\" customModuleProvider=\"target\">\n            <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"80\"/>\n            <autoresizingMask key=\"autoresizingMask\"/>\n            <tableViewCellContentView key=\"contentView\" opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\" tableViewCell=\"7Dc-hd-PXe\" id=\"Td0-f4-45U\">\n                <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"79.5\"/>\n                <autoresizingMask key=\"autoresizingMask\"/>\n                <subviews>\n                    <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"Label\" textAlignment=\"natural\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" adjustsFontSizeToFit=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"ewx-XE-MgE\">\n                        <rect key=\"frame\" x=\"95\" y=\"10\" width=\"265\" height=\"21\"/>\n                        <constraints>\n                            <constraint firstAttribute=\"height\" constant=\"21\" id=\"pQr-Iq-CMg\"/>\n                        </constraints>\n                        <fontDescription key=\"fontDescription\" type=\"system\" pointSize=\"17\"/>\n                        <color key=\"textColor\" red=\"1\" green=\"0.98823529409999999\" blue=\"0.97647058819999999\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                        <nil key=\"highlightedColor\"/>\n                    </label>\n                    <imageView userInteractionEnabled=\"NO\" contentMode=\"scaleToFill\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"WoA-qp-Juc\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"80\" height=\"80\"/>\n                        <constraints>\n                            <constraint firstAttribute=\"width\" constant=\"80\" id=\"527-kp-Bxt\"/>\n                            <constraint firstAttribute=\"height\" constant=\"80\" id=\"tt7-Pj-d3i\"/>\n                        </constraints>\n                    </imageView>\n                    <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"Label\" lineBreakMode=\"tailTruncation\" numberOfLines=\"0\" baselineAdjustment=\"alignBaselines\" adjustsFontSizeToFit=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"GgV-4R-szU\">\n                        <rect key=\"frame\" x=\"95\" y=\"31\" width=\"265\" height=\"41\"/>\n                        <fontDescription key=\"fontDescription\" name=\"HelveticaNeue\" family=\"Helvetica Neue\" pointSize=\"14\"/>\n                        <color key=\"textColor\" red=\"1\" green=\"0.98823529409999999\" blue=\"0.97647058819999999\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                        <nil key=\"highlightedColor\"/>\n                    </label>\n                </subviews>\n                <color key=\"backgroundColor\" red=\"0.25098039220000001\" green=\"0.2470588235\" blue=\"0.29803921570000003\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                <constraints>\n                    <constraint firstItem=\"WoA-qp-Juc\" firstAttribute=\"top\" secondItem=\"Td0-f4-45U\" secondAttribute=\"top\" id=\"AJo-M6-Z0V\"/>\n                    <constraint firstItem=\"WoA-qp-Juc\" firstAttribute=\"leading\" secondItem=\"Td0-f4-45U\" secondAttribute=\"leading\" id=\"K2D-Q5-Ry4\"/>\n                    <constraint firstItem=\"GgV-4R-szU\" firstAttribute=\"top\" secondItem=\"ewx-XE-MgE\" secondAttribute=\"bottom\" id=\"KDY-T2-8mc\"/>\n                    <constraint firstAttribute=\"trailing\" secondItem=\"GgV-4R-szU\" secondAttribute=\"trailing\" constant=\"15\" id=\"KlM-ms-w6A\"/>\n                    <constraint firstItem=\"GgV-4R-szU\" firstAttribute=\"leading\" secondItem=\"WoA-qp-Juc\" secondAttribute=\"trailing\" constant=\"15\" id=\"O3c-BL-9US\"/>\n                    <constraint firstAttribute=\"trailing\" secondItem=\"ewx-XE-MgE\" secondAttribute=\"trailing\" constant=\"15\" id=\"UnY-Ud-04x\"/>\n                    <constraint firstItem=\"ewx-XE-MgE\" firstAttribute=\"top\" secondItem=\"Td0-f4-45U\" secondAttribute=\"top\" constant=\"10\" id=\"ZPz-Ly-zth\"/>\n                    <constraint firstItem=\"ewx-XE-MgE\" firstAttribute=\"leading\" secondItem=\"WoA-qp-Juc\" secondAttribute=\"trailing\" constant=\"15\" id=\"nw8-ex-774\"/>\n                    <constraint firstAttribute=\"bottom\" secondItem=\"GgV-4R-szU\" secondAttribute=\"bottom\" constant=\"8\" id=\"o8v-ps-1lG\"/>\n                </constraints>\n            </tableViewCellContentView>\n            <connections>\n                <outlet property=\"characterDescription\" destination=\"GgV-4R-szU\" id=\"9j4-F7-Q3n\"/>\n                <outlet property=\"name\" destination=\"ewx-XE-MgE\" id=\"ydS-da-65d\"/>\n                <outlet property=\"thumb\" destination=\"WoA-qp-Juc\" id=\"REy-5e-Pto\"/>\n            </connections>\n            <point key=\"canvasLocation\" x=\"33.5\" y=\"79\"/>\n        </tableViewCell>\n    </objects>\n</document>\n"
  },
  {
    "path": "Marvel/Controllers/CharacterViewController.swift",
    "content": "//\n//  CharacterViewController.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 14/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport UIKit\n\nfinal class CharacterViewController: UIViewController {\n    @IBOutlet weak var characterDescription: UILabel!\n    @IBOutlet weak var image: UIImageView!\n    \n    var character: Character?\n}\n\nextension CharacterViewController {\n    override func viewDidLoad() {\n        super.viewDidLoad()\n        setupView()\n    }\n    \n    override func viewWillAppear(_ animated: Bool) {\n        super.viewWillAppear(animated)\n        self.navigationItem.title = character?.name ?? \"\"\n    }\n}\n\n\nextension CharacterViewController {\n    func setupView() {\n        let bio = character?.bio ?? \"\"\n        characterDescription.text = bio.isEmpty ? \"No description\" : bio\n        \n        image.download(image: character?.thumImage?.fullPath() ?? \"\")\n    }\n}\n"
  },
  {
    "path": "Marvel/Controllers/CharactersViewController.swift",
    "content": "//\n//  CharactersViewController.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 14/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport UIKit\n\nprotocol CharactersDelegate {\n    func didSelectCharacter(at index: IndexPath)\n}\n\n\nfinal class CharactersViewController: UIViewController {\n    var apiManager: MarvelAPICalls = MarvelAPIManager()\n    \n    var tableDatasource: CharactersDatasource?\n    var tableDelegate: CharactersTableDelegate?\n    \n    var collectionDatasource: CharactersCollectionDatasource?\n    var collectionDelegate: CharactersCollectionDelegate?\n    \n    var characters: [Character] = []\n    \n    var showingAsList = true\n    \n    @IBOutlet weak var searchBar: UISearchBar!\n    @IBOutlet weak var activityIndicator: UIActivityIndicatorView!\n    @IBOutlet weak var tableView: UITableView!\n    @IBOutlet weak var collectionView: UICollectionView!\n    \n}\n\nextension CharactersViewController {\n    override func viewDidLoad() {\n        super.viewDidLoad()\n        setupSearchBar()\n        fetchCharacters()\n    }\n}\n\nextension CharactersViewController {\n    func fetchCharacters(for query: String? = nil) {\n        tableView.isHidden = true\n        collectionView.isHidden = true\n        activityIndicator.startAnimating()\n        apiManager.characters(query: query) { characters in\n            self.activityIndicator.stopAnimating()\n            if let characters = characters {\n                if self.showingAsList {\n                    self.setupTableView(with: characters)\n                } else {\n                    self.setupCollectionView(with: characters)\n                }\n            }\n        }\n    }\n    \n    func setupSearchBar() {\n        self.searchBar.delegate = self\n    }\n    \n    func setupTableView(with characters: [Character]) {\n        self.characters = characters\n        showingAsList = true\n        tableView.isHidden = false\n        collectionView.isHidden = true\n        tableDelegate = CharactersTableDelegate(self)\n        tableDatasource = CharactersDatasource(items: characters, tableView: self.tableView, delegate: tableDelegate!)\n    }\n    \n    func setupCollectionView(with characters: [Character]) {\n        self.characters = characters\n        showingAsList = false\n        collectionView.isHidden = false\n        tableView.isHidden = true\n        collectionDelegate = CharactersCollectionDelegate(self)\n        collectionDatasource = CharactersCollectionDatasource(items: characters, collectionView: self.collectionView, delegate: collectionDelegate!)\n    }\n}\n\nextension CharactersViewController {\n    @IBAction func showAsGrid(_ sender: UIButton) {\n        setupCollectionView(with: characters)\n    }\n    \n    @IBAction func showAsTable(_ sender: UIButton) {\n        setupTableView(with: characters)\n    }\n}\n\nextension CharactersViewController: CharactersDelegate {\n    func didSelectCharacter(at index: IndexPath) {\n        searchBar.resignFirstResponder()\n        guard let nextController = Storyboard.Main.characterViewControllerScene\n            .viewController() as? CharacterViewController else {\n            return\n        }\n        \n        let character = characters[index.row]\n        nextController.character = character\n        self.navigationController?.pushViewController(nextController, animated: true)\n    }\n}\n\nextension CharactersViewController: UISearchBarDelegate {\n    func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {\n        searchBar.resignFirstResponder()\n        let query = searchBar.text ?? \"\"\n        if !query.isEmpty {\n            fetchCharacters(for: query)\n        }\n    }\n    func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {\n        searchBar.resignFirstResponder()\n    }\n}\n\n"
  },
  {
    "path": "Marvel/Datasources/CharactersCollectionDatasource.swift",
    "content": "//\n//  CharactersCollectionDatasource.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 20/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport UIKit\n\nfinal class CharactersCollectionDatasource: NSObject, ItemsCollectionViewDatasource {\n    \n    var items:[Character] = []\n    weak var collectionView: UICollectionView?\n    weak var delegate: UICollectionViewDelegate?\n    \n    required init(items: [Character], collectionView: UICollectionView, delegate: UICollectionViewDelegate) {\n        self.items = items\n        self.collectionView = collectionView\n        self.delegate = delegate\n        super.init()\n        collectionView.register(cellType: CharacterCollectionCell.self)\n        self.setupCollectionView()\n    }\n    \n\n    \n    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {\n        return self.items.count\n    }\n    \n    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {\n        let cell = collectionView.dequeueReusableCell(for: indexPath, cellType: CharacterCollectionCell.self)\n        let character = self.items[indexPath.row]\n        cell.setup(item: character)\n        return cell\n    }\n}\n\nclass CharactersCollectionDelegate: NSObject, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {\n    \n    let delegate: CharactersDelegate\n    \n    init(_ delegate: CharactersDelegate) {\n        self.delegate = delegate\n    }\n    \n    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {\n        delegate.didSelectCharacter(at: indexPath)\n    }\n    \n    \n    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {\n        let width = collectionView.bounds.size.width\n        return CharacterCollectionCell.size(for: width)\n    }\n}\n"
  },
  {
    "path": "Marvel/Datasources/CharactersDatasource.swift",
    "content": "//\n//  CharactersDatasource.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 17/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport UIKit\n\nfinal class CharactersDatasource: NSObject, ItemsTableViewDatasource {\n    \n    var items:[Character] = []\n    weak var tableView: UITableView?\n    weak var delegate: UITableViewDelegate?\n    \n    required init(items: [Character], tableView: UITableView, delegate: UITableViewDelegate) {\n        self.items = items\n        self.tableView = tableView\n        self.delegate = delegate\n        super.init()\n        tableView.register(cellType: CharacterTableCell.self)\n        self.setupTableView()\n    }\n    \n    \n    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {\n        return self.items.count\n    }\n    \n    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {\n        let cell = tableView.dequeueReusableCell(for: indexPath, cellType: CharacterTableCell.self)\n        let character = self.items[indexPath.row]\n        cell.setup(item: character)\n        return cell\n    }\n}\n\nclass CharactersTableDelegate: NSObject, UITableViewDelegate {\n    \n    let delegate: CharactersDelegate\n    \n    init(_ delegate: CharactersDelegate) {\n        self.delegate = delegate\n    }\n    \n    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {\n        return CharacterTableCell.height()\n    }\n    \n    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {\n        delegate.didSelectCharacter(at: indexPath)\n    }\n}\n"
  },
  {
    "path": "Marvel/Datasources/ItemsCollectionViewDatasource.swift",
    "content": "//\n//  ItemsCollectionViewDatasource.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 20/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport UIKit\n\nprotocol ItemsCollectionViewDatasource: UICollectionViewDataSource {\n    associatedtype T\n    var items:[T] {get}\n    weak var collectionView: UICollectionView? {get}\n    weak var delegate: UICollectionViewDelegate? {get}\n    \n    init(items: [T], collectionView: UICollectionView, delegate: UICollectionViewDelegate)\n    \n    func setupCollectionView()\n}\n\nextension ItemsCollectionViewDatasource {\n    func setupCollectionView() {\n        self.collectionView?.dataSource = self\n        self.collectionView?.delegate = self.delegate\n        self.collectionView?.reloadData()\n    }\n}\n\n"
  },
  {
    "path": "Marvel/Datasources/ItemsTableViewDatasource.swift",
    "content": "//\n//  ItemsTableDatasource.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 17/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport UIKit\n\nprotocol ItemsTableViewDatasource: UITableViewDataSource {\n    associatedtype T\n    var items:[T] {get}\n    weak var tableView: UITableView? {get}\n    weak var delegate: UITableViewDelegate? {get}\n    \n    init(items: [T], tableView: UITableView, delegate: UITableViewDelegate)\n    \n    func setupTableView()\n}\n\nextension ItemsTableViewDatasource {\n    func setupTableView() {\n        self.tableView?.dataSource = self\n        self.tableView?.delegate = self.delegate\n        self.tableView?.reloadData()\n    }\n}\n"
  },
  {
    "path": "Marvel/Models/Character.swift",
    "content": "//\n//  Character.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 14/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport Foundation\nimport ObjectMapper\n\nstruct Character {\n    var id: Int = 0\n    var name: String = \"\"\n    var bio: String = \"\"\n    var thumImage: ThumbImage?\n}\n\n\nextension Character: Mappable {\n    init?(map: Map) {\n        \n    }\n    \n    mutating func mapping(map: Map) {\n        id    <- map[\"id\"]\n        name    <- map[\"name\"]\n        bio     <- map[\"description\"]\n        thumImage    <- map[\"thumbnail\"]\n    }\n}\n"
  },
  {
    "path": "Marvel/Models/ThumbImage.swift",
    "content": "//\n//  ThumbImage.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 17/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport Foundation\nimport ObjectMapper\n\n\nstruct ThumbImage {\n    var path: String = \"\"\n    var imageExtension: String = \"\"\n    \n    func fullPath() -> String {\n        return \"\\(path).\\(imageExtension)\"\n    }\n}\n\nextension ThumbImage: Mappable {\n    init?(map: Map) {\n        \n    }\n    \n    mutating func mapping(map: Map) {\n        path    <- map[\"path\"]\n        imageExtension    <- map[\"extension\"]\n    }\n}\n"
  },
  {
    "path": "Marvel/Network/MarvelAPI.swift",
    "content": "//\n//  MarvelAPI.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 14/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport Foundation\nimport Moya\nimport CryptoSwift\nimport Dollar\nimport Keys\n\nfileprivate struct MarvelAPIConfig {\n    fileprivate static let keys = MarvelKeys()\n    static let privatekey = keys.marvelPrivateKey()!\n    static let apikey = keys.marvelApiKey()!\n    static let ts = Date().timeIntervalSince1970.description\n    static let hash = \"\\(ts)\\(privatekey)\\(apikey)\".md5()\n}\n\nenum MarvelAPI {\n    case characters(String?)\n    case character(String)\n}\n\nextension MarvelAPI: TargetType {\n    var baseURL: URL { return URL(string: \"https://gateway.marvel.com:443\")! }\n    \n    \n    var path: String {\n        switch self {\n        case .characters:\n            return \"/v1/public/characters\"\n        case .character(let characterId):\n            return \"/v1/public/characters/\\(characterId)\"\n        }\n    }\n    \n    var method: Moya.Method {\n        switch self {\n        case .characters, .character:\n            return .get\n        }\n    }\n    \n    func authParameters() -> [String: String] {\n        return [\"apikey\": MarvelAPIConfig.apikey,\n                \"ts\": MarvelAPIConfig.ts,\n                \"hash\": MarvelAPIConfig.hash]\n    }\n    \n    var parameters: [String: Any]? {\n        \n        switch self {\n        \n        case .characters(let query):\n            if let query = query {\n                return $.merge(authParameters(),\n                               [\"nameStartsWith\": query])\n            }\n            return authParameters()\n            \n        case .character(let characterId):\n            return $.merge(authParameters(),\n                           [\"characterId\": characterId])\n        }\n    }\n    \n    var task: Task {\n        return .request\n    }\n    \n    var sampleData: Data {\n        switch self {\n        default:\n            return Data()\n        }\n    }\n}\n"
  },
  {
    "path": "Marvel/Network/MarvelAPIManager.swift",
    "content": "//\n//  MarvelAPIManager.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 14/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport Foundation\nimport Moya\nimport RxSwift\nimport ObjectMapper\nimport Moya_ObjectMapper\n\nextension Response {\n    func removeAPIWrappers() -> Response {\n        guard let json = try? self.mapJSON() as? Dictionary<String, AnyObject>,\n            let results = json?[\"data\"]?[\"results\"] ?? [],\n            let newData = try? JSONSerialization.data(withJSONObject: results, options: .prettyPrinted) else {\n                return self\n        }\n        \n        let newResponse = Response(statusCode: self.statusCode,\n                                   data: newData,\n                                   response: self.response)\n        return newResponse\n    }\n}\n\nstruct MarvelAPIManager {\n    \n    let provider: RxMoyaProvider<MarvelAPI>\n    let disposeBag = DisposeBag()\n    \n    \n    init() {\n        provider = RxMoyaProvider<MarvelAPI>()\n    }\n    \n}\n\nextension MarvelAPIManager {\n    typealias AdditionalStepsAction = (() -> ())\n    \n    fileprivate func requestObject<T: Mappable>(_ token: MarvelAPI, type: T.Type,\n                                   completion: @escaping (T?) -> Void,\n                                   additionalSteps: AdditionalStepsAction? = nil) {\n        provider.request(token)\n            .debug()\n            .mapObject(T.self)\n            .subscribe { event -> Void in\n                switch event {\n                case .next(let parsedObject):\n                    completion(parsedObject)\n                    additionalSteps?()\n                case .error(let error):\n                    print(error)\n                    completion(nil)\n                default:\n                    break\n                }\n            }.addDisposableTo(disposeBag)\n    }\n    \n    fileprivate func requestArray<T: Mappable>(_ token: MarvelAPI, type: T.Type,\n                                  completion: @escaping ([T]?) -> Void,\n                                  additionalSteps:  AdditionalStepsAction? = nil) {\n        provider.request(token)\n            .debug()\n            .map { response -> Response in\n                return response.removeAPIWrappers()\n            }\n            .mapArray(T.self)\n            .subscribe { event -> Void in\n                switch event {\n                case .next(let parsedArray):\n                    completion(parsedArray)\n                    additionalSteps?()\n                case .error(let error):\n                    print(error)\n                    completion(nil)\n                default:\n                    break\n                }\n            }.addDisposableTo(disposeBag)\n    }\n}\n\nprotocol MarvelAPICalls {\n    func characters(query: String?, completion: @escaping ([Character]?) -> Void)\n}\n\nextension MarvelAPIManager: MarvelAPICalls {\n    \n    func characters(query: String? = nil, completion: @escaping ([Character]?) -> Void) {\n        requestArray(.characters(query),\n                     type: Character.self,\n                     completion: completion)\n    }\n    \n    \n}\n"
  },
  {
    "path": "Marvel/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"iphone\",\n      \"size\" : \"20x20\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"20x20\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"spotilight_small.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"settings_small@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"29x29\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"settings_small@3x.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"spotlight_medium.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"40x40\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"spotlight_large.png\",\n      \"scale\" : \"3x\"\n    },\n    {\n      \"size\" : \"60x60\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"iphone_small.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"size\" : \"60x60\",\n      \"idiom\" : \"iphone\",\n      \"filename\" : \"iphone_medium.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Marvel/Resources/Assets.xcassets/Contents.json",
    "content": "{\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  }\n}"
  },
  {
    "path": "Marvel/Resources/Assets.xcassets/Grid Icon.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"Grid Icon@1x.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"Grid Icon@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"Grid Icon@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"properties\" : {\n    \"template-rendering-intent\" : \"original\"\n  }\n}"
  },
  {
    "path": "Marvel/Resources/Assets.xcassets/List Icon.imageset/Contents.json",
    "content": "{\n  \"images\" : [\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"List Icon.png\",\n      \"scale\" : \"1x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"List Icon@2x.png\",\n      \"scale\" : \"2x\"\n    },\n    {\n      \"idiom\" : \"universal\",\n      \"filename\" : \"List Icon@3x.png\",\n      \"scale\" : \"3x\"\n    }\n  ],\n  \"info\" : {\n    \"version\" : 1,\n    \"author\" : \"xcode\"\n  },\n  \"properties\" : {\n    \"template-rendering-intent\" : \"original\"\n  }\n}"
  },
  {
    "path": "Marvel/Resources/ColorPalette.swift",
    "content": "//\n//  ColorPalette.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 11/12/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\n\nimport UIKit\nenum ColorPalette {\n    \n    static let red =  UIColor(red:0.910, green: 0.282, blue: 0.333, alpha: 1.000)\n    \n    static let white =  UIColor(red:1.000, green: 0.988, blue: 0.976, alpha: 1.000)\n    \n    static let black =  UIColor(red:0.251, green: 0.247, blue: 0.298, alpha: 1.000)\n}\n"
  },
  {
    "path": "Marvel/Resources/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>UIViewControllerBasedStatusBarAppearance</key>\n\t<false/>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>APPL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n\t<key>LSRequiresIPhoneOS</key>\n\t<true/>\n\t<key>NSAppTransportSecurity</key>\n\t<dict>\n\t\t<key>NSAllowsArbitraryLoads</key>\n\t\t<true/>\n\t</dict>\n\t<key>UILaunchStoryboardName</key>\n\t<string>LaunchScreen</string>\n\t<key>UIMainStoryboardFile</key>\n\t<string>Main</string>\n\t<key>UIRequiredDeviceCapabilities</key>\n\t<array>\n\t\t<string>armv7</string>\n\t</array>\n\t<key>UIStatusBarStyle</key>\n\t<string>UIStatusBarStyleLightContent</string>\n\t<key>UISupportedInterfaceOrientations</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t</array>\n\t<key>UISupportedInterfaceOrientations~ipad</key>\n\t<array>\n\t\t<string>UIInterfaceOrientationPortrait</string>\n\t\t<string>UIInterfaceOrientationPortraitUpsideDown</string>\n\t\t<string>UIInterfaceOrientationLandscapeLeft</string>\n\t\t<string>UIInterfaceOrientationLandscapeRight</string>\n\t</array>\n</dict>\n</plist>\n"
  },
  {
    "path": "Marvel/Resources/Storyboard.swift",
    "content": "// Generated using SwiftGen, by O.Halligon — https://github.com/AliSoftware/SwiftGen\n\nimport Foundation\nimport UIKit\n\nprotocol StoryboardSceneType {\n  static var storyboardName: String { get }\n}\n\nextension StoryboardSceneType {\n  static func storyboard() -> UIStoryboard {\n    return UIStoryboard(name: self.storyboardName, bundle: nil)\n  }\n\n  static func initialViewController() -> UIViewController {\n    guard let vc = storyboard().instantiateInitialViewController() else {\n      fatalError(\"Failed to instantiate initialViewController for \\(self.storyboardName)\")\n    }\n    return vc\n  }\n}\n\nextension StoryboardSceneType where Self: RawRepresentable, Self.RawValue == String {\n  func viewController() -> UIViewController {\n    return Self.storyboard().instantiateViewController(withIdentifier: self.rawValue)\n  }\n  static func viewController(identifier: Self) -> UIViewController {\n    return identifier.viewController()\n  }\n}\n\nprotocol StoryboardSegueType: RawRepresentable { }\n\nextension UIViewController {\n  func performSegue<S: StoryboardSegueType>(segue: S, sender: AnyObject? = nil) where S.RawValue == String {\n    performSegue(withIdentifier: segue.rawValue, sender: sender)\n  }\n}\n\n// swiftlint:disable file_length\n// swiftlint:disable type_body_length\n\nstruct Storyboard {\n  enum LaunchScreen: StoryboardSceneType {\n    static let storyboardName = \"LaunchScreen\"\n  }\n  enum Main: String, StoryboardSceneType {\n    static let storyboardName = \"Main\"\n\n    static func initialViewController() -> UINavigationController {\n      guard let vc = storyboard().instantiateInitialViewController() as? UINavigationController else {\n        fatalError(\"Failed to instantiate initialViewController for \\(self.storyboardName)\")\n      }\n      return vc\n    }\n\n    case characterViewControllerScene = \"CharacterViewController\"\n    static func instantiateCharacterViewController() -> CharacterViewController {\n      guard let vc = Storyboard.Main.characterViewControllerScene.viewController() as? CharacterViewController\n      else {\n        fatalError(\"ViewController 'CharacterViewController' is not of the expected class CharacterViewController.\")\n      }\n      return vc\n    }\n\n    case charactersViewControllerScene = \"CharactersViewController\"\n    static func instantiateCharactersViewController() -> CharactersViewController {\n      guard let vc = Storyboard.Main.charactersViewControllerScene.viewController() as? CharactersViewController\n      else {\n        fatalError(\"ViewController 'CharactersViewController' is not of the expected class CharactersViewController.\")\n      }\n      return vc\n    }\n  }\n}\n\nstruct StoryboardSegue {\n}\n"
  },
  {
    "path": "Marvel/Storyboards/Base.lproj/LaunchScreen.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"11542\" systemVersion=\"16B2657\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" launchScreen=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\" initialViewController=\"01J-lp-oVM\">\n    <device id=\"retina4_7\" orientation=\"portrait\">\n        <adaptation id=\"fullscreen\"/>\n    </device>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"11524\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--View Controller-->\n        <scene sceneID=\"EHf-IW-A2E\">\n            <objects>\n                <viewController id=\"01J-lp-oVM\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"Llm-lL-Icb\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"xb3-aO-Qok\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"Ze5-6b-2t3\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"left\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"MARVEL\" textAlignment=\"center\" lineBreakMode=\"tailTruncation\" baselineAdjustment=\"alignBaselines\" adjustsFontSizeToFit=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"z3M-5M-6r6\">\n                                <rect key=\"frame\" x=\"20\" y=\"326.5\" width=\"335\" height=\"80\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"height\" constant=\"80\" id=\"uve-cn-zho\"/>\n                                </constraints>\n                                <fontDescription key=\"fontDescription\" name=\"Arial-BoldMT\" family=\"Arial\" pointSize=\"60\"/>\n                                <color key=\"textColor\" red=\"1\" green=\"0.9882352941176471\" blue=\"0.97647058823529409\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                                <nil key=\"highlightedColor\"/>\n                            </label>\n                        </subviews>\n                        <color key=\"backgroundColor\" red=\"0.90980392156862744\" green=\"0.14509803921568626\" blue=\"0.20784313725490194\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                        <constraints>\n                            <constraint firstItem=\"z3M-5M-6r6\" firstAttribute=\"leading\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"leading\" constant=\"20\" id=\"317-Bu-aJT\"/>\n                            <constraint firstItem=\"z3M-5M-6r6\" firstAttribute=\"centerY\" secondItem=\"Ze5-6b-2t3\" secondAttribute=\"centerY\" constant=\"33\" id=\"6vj-Sk-vR8\"/>\n                            <constraint firstAttribute=\"trailing\" secondItem=\"z3M-5M-6r6\" secondAttribute=\"trailing\" constant=\"20\" id=\"V8P-7L-ttl\"/>\n                        </constraints>\n                    </view>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"iYj-Kq-Ea1\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"52\" y=\"374.66266866566718\"/>\n        </scene>\n    </scenes>\n</document>\n"
  },
  {
    "path": "Marvel/Storyboards/Base.lproj/Main.storyboard",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<document type=\"com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB\" version=\"3.0\" toolsVersion=\"11542\" systemVersion=\"16B2657\" targetRuntime=\"iOS.CocoaTouch\" propertyAccessControl=\"none\" useAutolayout=\"YES\" useTraitCollections=\"YES\" colorMatched=\"YES\" initialViewController=\"Z0N-wd-fHj\">\n    <device id=\"retina4_7\" orientation=\"portrait\">\n        <adaptation id=\"fullscreen\"/>\n    </device>\n    <dependencies>\n        <deployment identifier=\"iOS\"/>\n        <plugIn identifier=\"com.apple.InterfaceBuilder.IBCocoaTouchPlugin\" version=\"11524\"/>\n        <capability name=\"Navigation items with more than one left or right bar item\" minToolsVersion=\"7.0\"/>\n        <capability name=\"documents saved in the Xcode 8 format\" minToolsVersion=\"8.0\"/>\n    </dependencies>\n    <scenes>\n        <!--Characters-->\n        <scene sceneID=\"w3P-uW-srD\">\n            <objects>\n                <viewController storyboardIdentifier=\"CharactersViewController\" useStoryboardIdentifierAsRestorationIdentifier=\"YES\" id=\"7wy-Hx-css\" customClass=\"CharactersViewController\" customModule=\"Marvel\" customModuleProvider=\"target\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"zib-5N-qOv\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"71u-47-5CQ\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"d7s-Jc-H7P\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <searchBar contentMode=\"redraw\" showsCancelButton=\"YES\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"FSe-Lr-fZW\">\n                                <rect key=\"frame\" x=\"0.0\" y=\"64\" width=\"375\" height=\"44\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"height\" constant=\"44\" id=\"sAP-aP-xrl\"/>\n                                </constraints>\n                                <color key=\"barTintColor\" red=\"0.25098039215686274\" green=\"0.24705882352941178\" blue=\"0.29803921568627451\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                                <textInputTraits key=\"textInputTraits\"/>\n                            </searchBar>\n                            <collectionView hidden=\"YES\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"scaleToFill\" dataMode=\"prototypes\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"ZU2-Kk-0z9\">\n                                <rect key=\"frame\" x=\"0.0\" y=\"108\" width=\"375\" height=\"559\"/>\n                                <color key=\"backgroundColor\" red=\"0.25098039220000001\" green=\"0.2470588235\" blue=\"0.29803921570000003\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                                <collectionViewFlowLayout key=\"collectionViewLayout\" minimumLineSpacing=\"0.0\" minimumInteritemSpacing=\"0.0\" id=\"Ohz-7M-pKz\">\n                                    <size key=\"itemSize\" width=\"50\" height=\"50\"/>\n                                    <size key=\"headerReferenceSize\" width=\"0.0\" height=\"0.0\"/>\n                                    <size key=\"footerReferenceSize\" width=\"0.0\" height=\"0.0\"/>\n                                    <inset key=\"sectionInset\" minX=\"0.0\" minY=\"0.0\" maxX=\"0.0\" maxY=\"0.0\"/>\n                                </collectionViewFlowLayout>\n                                <cells>\n                                    <collectionViewCell opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\" id=\"2sP-Tn-TUf\">\n                                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"50\" height=\"50\"/>\n                                        <autoresizingMask key=\"autoresizingMask\" flexibleMaxX=\"YES\" flexibleMaxY=\"YES\"/>\n                                        <view key=\"contentView\" opaque=\"NO\" clipsSubviews=\"YES\" multipleTouchEnabled=\"YES\" contentMode=\"center\">\n                                            <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"50\" height=\"50\"/>\n                                            <autoresizingMask key=\"autoresizingMask\"/>\n                                        </view>\n                                    </collectionViewCell>\n                                </cells>\n                            </collectionView>\n                            <tableView hidden=\"YES\" clipsSubviews=\"YES\" contentMode=\"scaleToFill\" alwaysBounceVertical=\"YES\" dataMode=\"prototypes\" style=\"plain\" separatorStyle=\"default\" rowHeight=\"44\" sectionHeaderHeight=\"28\" sectionFooterHeight=\"28\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"ixD-Lv-jLy\">\n                                <rect key=\"frame\" x=\"0.0\" y=\"108\" width=\"375\" height=\"559\"/>\n                                <color key=\"backgroundColor\" red=\"0.25098039220000001\" green=\"0.2470588235\" blue=\"0.29803921570000003\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                            </tableView>\n                            <activityIndicatorView hidden=\"YES\" opaque=\"NO\" contentMode=\"scaleToFill\" horizontalHuggingPriority=\"750\" verticalHuggingPriority=\"750\" hidesWhenStopped=\"YES\" style=\"white\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"zfM-hz-I4n\">\n                                <rect key=\"frame\" x=\"0.5\" y=\"323\" width=\"375\" height=\"20\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"height\" constant=\"20\" id=\"8hU-2K-nuS\"/>\n                                    <constraint firstAttribute=\"width\" constant=\"375\" id=\"ys7-OV-ky1\"/>\n                                </constraints>\n                            </activityIndicatorView>\n                        </subviews>\n                        <color key=\"backgroundColor\" red=\"0.25098039220000001\" green=\"0.2470588235\" blue=\"0.29803921570000003\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                        <constraints>\n                            <constraint firstItem=\"zfM-hz-I4n\" firstAttribute=\"centerX\" secondItem=\"d7s-Jc-H7P\" secondAttribute=\"centerX\" id=\"0K0-EX-45Y\"/>\n                            <constraint firstItem=\"FSe-Lr-fZW\" firstAttribute=\"leading\" secondItem=\"d7s-Jc-H7P\" secondAttribute=\"leading\" id=\"0sL-Bt-xb1\"/>\n                            <constraint firstItem=\"ixD-Lv-jLy\" firstAttribute=\"top\" secondItem=\"FSe-Lr-fZW\" secondAttribute=\"bottom\" id=\"3Eg-ka-cn5\"/>\n                            <constraint firstAttribute=\"trailing\" secondItem=\"ixD-Lv-jLy\" secondAttribute=\"trailing\" id=\"AkI-CR-926\"/>\n                            <constraint firstItem=\"ZU2-Kk-0z9\" firstAttribute=\"top\" secondItem=\"FSe-Lr-fZW\" secondAttribute=\"bottom\" id=\"KE5-2g-tGe\"/>\n                            <constraint firstItem=\"71u-47-5CQ\" firstAttribute=\"top\" secondItem=\"ZU2-Kk-0z9\" secondAttribute=\"bottom\" id=\"St3-3s-cMG\"/>\n                            <constraint firstItem=\"FSe-Lr-fZW\" firstAttribute=\"top\" secondItem=\"zib-5N-qOv\" secondAttribute=\"bottom\" id=\"W4r-Bz-5Tp\"/>\n                            <constraint firstAttribute=\"trailing\" secondItem=\"ZU2-Kk-0z9\" secondAttribute=\"trailing\" id=\"Y0I-J8-uJ8\"/>\n                            <constraint firstItem=\"71u-47-5CQ\" firstAttribute=\"top\" secondItem=\"ixD-Lv-jLy\" secondAttribute=\"bottom\" id=\"Y3M-Dh-lAx\"/>\n                            <constraint firstAttribute=\"trailing\" secondItem=\"FSe-Lr-fZW\" secondAttribute=\"trailing\" id=\"aHi-LQ-Fbl\"/>\n                            <constraint firstItem=\"ixD-Lv-jLy\" firstAttribute=\"leading\" secondItem=\"d7s-Jc-H7P\" secondAttribute=\"leading\" id=\"k79-IR-91p\"/>\n                            <constraint firstItem=\"ZU2-Kk-0z9\" firstAttribute=\"leading\" secondItem=\"d7s-Jc-H7P\" secondAttribute=\"leading\" id=\"tMj-Nk-9QW\"/>\n                            <constraint firstItem=\"zfM-hz-I4n\" firstAttribute=\"centerY\" secondItem=\"d7s-Jc-H7P\" secondAttribute=\"centerY\" id=\"uek-EN-JmA\"/>\n                        </constraints>\n                    </view>\n                    <navigationItem key=\"navigationItem\" title=\"Characters\" id=\"edj-2g-NMS\">\n                        <barButtonItem key=\"backBarButtonItem\" title=\" \" id=\"9nk-oM-bJT\"/>\n                        <rightBarButtonItems>\n                            <barButtonItem image=\"Grid Icon\" id=\"B43-Zz-GvA\">\n                                <color key=\"tintColor\" red=\"1\" green=\"0.98823529409999999\" blue=\"0.97647058819999999\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                                <connections>\n                                    <action selector=\"showAsGrid:\" destination=\"7wy-Hx-css\" id=\"Rqd-05-Hbo\"/>\n                                </connections>\n                            </barButtonItem>\n                            <barButtonItem image=\"List Icon\" id=\"qeA-Rs-8CW\">\n                                <color key=\"tintColor\" red=\"1\" green=\"0.98823529409999999\" blue=\"0.97647058819999999\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                                <connections>\n                                    <action selector=\"showAsTable:\" destination=\"7wy-Hx-css\" id=\"tbZ-cn-bKk\"/>\n                                </connections>\n                            </barButtonItem>\n                        </rightBarButtonItems>\n                    </navigationItem>\n                    <connections>\n                        <outlet property=\"activityIndicator\" destination=\"zfM-hz-I4n\" id=\"vDV-1q-1jQ\"/>\n                        <outlet property=\"collectionView\" destination=\"ZU2-Kk-0z9\" id=\"Ybi-UC-10S\"/>\n                        <outlet property=\"searchBar\" destination=\"FSe-Lr-fZW\" id=\"LSv-KC-z4D\"/>\n                        <outlet property=\"tableView\" destination=\"ixD-Lv-jLy\" id=\"D5i-F6-flR\"/>\n                    </connections>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"BHJ-BB-ry4\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"1015.2\" y=\"98.50074962518741\"/>\n        </scene>\n        <!--Character View Controller-->\n        <scene sceneID=\"MlC-fX-U7i\">\n            <objects>\n                <viewController storyboardIdentifier=\"CharacterViewController\" useStoryboardIdentifierAsRestorationIdentifier=\"YES\" id=\"Os0-jz-Fgx\" customClass=\"CharacterViewController\" customModule=\"Marvel\" customModuleProvider=\"target\" sceneMemberID=\"viewController\">\n                    <layoutGuides>\n                        <viewControllerLayoutGuide type=\"top\" id=\"ok8-no-yJx\"/>\n                        <viewControllerLayoutGuide type=\"bottom\" id=\"XiB-jz-7cn\"/>\n                    </layoutGuides>\n                    <view key=\"view\" contentMode=\"scaleToFill\" id=\"3xQ-ny-OFa\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"667\"/>\n                        <autoresizingMask key=\"autoresizingMask\" widthSizable=\"YES\" heightSizable=\"YES\"/>\n                        <subviews>\n                            <imageView userInteractionEnabled=\"NO\" contentMode=\"scaleToFill\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"Z7i-md-Isc\">\n                                <rect key=\"frame\" x=\"0.0\" y=\"64\" width=\"375\" height=\"375\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"height\" constant=\"375\" id=\"POZ-Zj-zcK\"/>\n                                </constraints>\n                            </imageView>\n                            <view contentMode=\"scaleToFill\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"nmU-N1-ZLO\">\n                                <rect key=\"frame\" x=\"0.0\" y=\"439\" width=\"375\" height=\"228\"/>\n                                <subviews>\n                                    <label opaque=\"NO\" userInteractionEnabled=\"NO\" contentMode=\"top\" horizontalHuggingPriority=\"251\" verticalHuggingPriority=\"251\" text=\"Name\" lineBreakMode=\"tailTruncation\" numberOfLines=\"0\" baselineAdjustment=\"alignBaselines\" adjustsFontSizeToFit=\"NO\" translatesAutoresizingMaskIntoConstraints=\"NO\" id=\"WQK-6I-FJ3\">\n                                        <rect key=\"frame\" x=\"10\" y=\"10\" width=\"355\" height=\"208\"/>\n                                        <fontDescription key=\"fontDescription\" name=\"HelveticaNeue\" family=\"Helvetica Neue\" pointSize=\"18\"/>\n                                        <color key=\"textColor\" white=\"1\" alpha=\"1\" colorSpace=\"calibratedWhite\"/>\n                                        <nil key=\"highlightedColor\"/>\n                                    </label>\n                                </subviews>\n                                <color key=\"backgroundColor\" red=\"0.25098039220000001\" green=\"0.2470588235\" blue=\"0.29803921570000003\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                                <constraints>\n                                    <constraint firstAttribute=\"trailing\" secondItem=\"WQK-6I-FJ3\" secondAttribute=\"trailing\" constant=\"10\" id=\"QTX-5F-CYv\"/>\n                                    <constraint firstItem=\"WQK-6I-FJ3\" firstAttribute=\"leading\" secondItem=\"nmU-N1-ZLO\" secondAttribute=\"leading\" constant=\"10\" id=\"gJo-7t-bmn\"/>\n                                    <constraint firstAttribute=\"bottom\" secondItem=\"WQK-6I-FJ3\" secondAttribute=\"bottom\" constant=\"10\" id=\"hDm-f5-MjQ\"/>\n                                    <constraint firstItem=\"WQK-6I-FJ3\" firstAttribute=\"top\" secondItem=\"nmU-N1-ZLO\" secondAttribute=\"top\" constant=\"10\" id=\"joY-Eo-gq6\"/>\n                                </constraints>\n                            </view>\n                        </subviews>\n                        <color key=\"backgroundColor\" red=\"1\" green=\"0.98823529409999999\" blue=\"0.97647058819999999\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                        <constraints>\n                            <constraint firstItem=\"nmU-N1-ZLO\" firstAttribute=\"top\" secondItem=\"Z7i-md-Isc\" secondAttribute=\"bottom\" id=\"73U-5v-xDG\"/>\n                            <constraint firstItem=\"nmU-N1-ZLO\" firstAttribute=\"leading\" secondItem=\"3xQ-ny-OFa\" secondAttribute=\"leading\" id=\"LX0-HS-V8o\"/>\n                            <constraint firstAttribute=\"trailing\" secondItem=\"nmU-N1-ZLO\" secondAttribute=\"trailing\" id=\"VCB-SW-xE0\"/>\n                            <constraint firstAttribute=\"trailing\" secondItem=\"Z7i-md-Isc\" secondAttribute=\"trailing\" id=\"al6-Wj-pgG\"/>\n                            <constraint firstItem=\"Z7i-md-Isc\" firstAttribute=\"leading\" secondItem=\"3xQ-ny-OFa\" secondAttribute=\"leading\" id=\"ezg-LL-mdh\"/>\n                            <constraint firstItem=\"Z7i-md-Isc\" firstAttribute=\"top\" secondItem=\"ok8-no-yJx\" secondAttribute=\"bottom\" id=\"g0q-eG-Psw\"/>\n                            <constraint firstItem=\"XiB-jz-7cn\" firstAttribute=\"top\" secondItem=\"nmU-N1-ZLO\" secondAttribute=\"bottom\" id=\"stx-za-9zo\"/>\n                        </constraints>\n                    </view>\n                    <simulatedNavigationBarMetrics key=\"simulatedTopBarMetrics\" prompted=\"NO\"/>\n                    <connections>\n                        <outlet property=\"characterDescription\" destination=\"WQK-6I-FJ3\" id=\"lKS-px-jQg\"/>\n                        <outlet property=\"image\" destination=\"Z7i-md-Isc\" id=\"JLU-Sg-aqe\"/>\n                    </connections>\n                </viewController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"5uo-fJ-dNi\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"1724\" y=\"98.50074962518741\"/>\n        </scene>\n        <!--Navigation Controller-->\n        <scene sceneID=\"fXh-Vh-ViE\">\n            <objects>\n                <navigationController automaticallyAdjustsScrollViewInsets=\"NO\" id=\"Z0N-wd-fHj\" sceneMemberID=\"viewController\">\n                    <toolbarItems/>\n                    <navigationBar key=\"navigationBar\" contentMode=\"scaleToFill\" misplaced=\"YES\" id=\"d5w-FI-Zdg\">\n                        <rect key=\"frame\" x=\"0.0\" y=\"0.0\" width=\"375\" height=\"44\"/>\n                        <autoresizingMask key=\"autoresizingMask\"/>\n                        <color key=\"barTintColor\" red=\"0.90980392160000001\" green=\"0.1450980392\" blue=\"0.20784313730000001\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                        <textAttributes key=\"titleTextAttributes\">\n                            <color key=\"textColor\" red=\"1\" green=\"0.98823529409999999\" blue=\"0.97647058819999999\" alpha=\"1\" colorSpace=\"custom\" customColorSpace=\"sRGB\"/>\n                        </textAttributes>\n                    </navigationBar>\n                    <nil name=\"viewControllers\"/>\n                    <connections>\n                        <segue destination=\"7wy-Hx-css\" kind=\"relationship\" relationship=\"rootViewController\" id=\"WuD-dp-L0Y\"/>\n                    </connections>\n                </navigationController>\n                <placeholder placeholderIdentifier=\"IBFirstResponder\" id=\"9d9-9c-s4r\" userLabel=\"First Responder\" sceneMemberID=\"firstResponder\"/>\n            </objects>\n            <point key=\"canvasLocation\" x=\"76\" y=\"98.50074962518741\"/>\n        </scene>\n    </scenes>\n    <resources>\n        <image name=\"Grid Icon\" width=\"18\" height=\"18\"/>\n        <image name=\"List Icon\" width=\"22\" height=\"22\"/>\n    </resources>\n</document>\n"
  },
  {
    "path": "Marvel/UIImageView+Kingfisher.swift",
    "content": "//\n//  UIImage+Kingfisher.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 20/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport UIKit\nimport Kingfisher\n\nextension UIImageView {\n    func download(image url: String) {\n        guard let imageURL = URL(string:url) else {\n            return\n        }\n        self.kf.setImage(with: ImageResource(downloadURL: imageURL))\n    }\n}\n"
  },
  {
    "path": "Marvel.xcodeproj/project.pbxproj",
    "content": "// !$*UTF8*$!\n{\n\tarchiveVersion = 1;\n\tclasses = {\n\t};\n\tobjectVersion = 46;\n\tobjects = {\n\n/* Begin PBXBuildFile section */\n\t\t577769109DC3FB06E7D1882F /* Pods_Marvel.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A8D7213E1EA596B7C60C8E59 /* Pods_Marvel.framework */; };\n\t\t9922F1571DFDB69200237BFE /* ColorPalette.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9922F1561DFDB69200237BFE /* ColorPalette.swift */; };\n\t\t9922F15A1DFDC00900237BFE /* ApperanceProxyHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9922F1591DFDC00900237BFE /* ApperanceProxyHelper.swift */; };\n\t\t9939CFC71DDA244A008CE399 /* CharactersViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9939CFC61DDA244A008CE399 /* CharactersViewController.swift */; };\n\t\t9939CFC91DDA245A008CE399 /* CharacterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9939CFC81DDA245A008CE399 /* CharacterViewController.swift */; };\n\t\t9939CFCF1DDA2E07008CE399 /* MarvelAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9939CFCE1DDA2E07008CE399 /* MarvelAPI.swift */; };\n\t\t9939CFD11DDA30DC008CE399 /* MarvelAPIManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9939CFD01DDA30DC008CE399 /* MarvelAPIManager.swift */; };\n\t\t9939CFD41DDA333D008CE399 /* Character.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9939CFD31DDA333D008CE399 /* Character.swift */; };\n\t\t993AFDFF1DEA764200857C4F /* CharactersViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 993AFDFE1DEA764200857C4F /* CharactersViewControllerSpec.swift */; };\n\t\t9976B4F81DEA43F200D2D3C4 /* MockLoader.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9976B4F71DEA43F200D2D3C4 /* MockLoader.swift */; };\n\t\t999665411DEA242300E9A5BF /* CharacterSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 999665401DEA242300E9A5BF /* CharacterSpec.swift */; };\n\t\t99B248E31DDB427000027C10 /* CharacterTableCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99B248E21DDB427000027C10 /* CharacterTableCell.swift */; };\n\t\t99C67AC21DEB007600FB1E68 /* CharacterViewControllerSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99C67AC11DEB007600FB1E68 /* CharacterViewControllerSpec.swift */; };\n\t\t99C67AC51DEB032F00FB1E68 /* CharactersDatasourceSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99C67AC41DEB032F00FB1E68 /* CharactersDatasourceSpec.swift */; };\n\t\t99C67AC71DEB06C100FB1E68 /* CharactersDelegateSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99C67AC61DEB06C100FB1E68 /* CharactersDelegateSpec.swift */; };\n\t\t99C67ACA1DEB0B3D00FB1E68 /* CharactersCollectionDatasourceSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99C67AC91DEB0B3D00FB1E68 /* CharactersCollectionDatasourceSpec.swift */; };\n\t\t99C67ACC1DEB0CB800FB1E68 /* CharactersCollectionDelegateSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99C67ACB1DEB0CB800FB1E68 /* CharactersCollectionDelegateSpec.swift */; };\n\t\t99D0DEB21DE2598F00FE34D7 /* ItemsCollectionViewDatasource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D0DEB11DE2598F00FE34D7 /* ItemsCollectionViewDatasource.swift */; };\n\t\t99D0DEB41DE259F100FE34D7 /* CharacterCollectionCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D0DEB31DE259F100FE34D7 /* CharacterCollectionCell.swift */; };\n\t\t99D0DEB61DE25AC900FE34D7 /* CharacterCollectionCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 99D0DEB51DE25AC900FE34D7 /* CharacterCollectionCell.xib */; };\n\t\t99D0DEB81DE25BF300FE34D7 /* CharactersCollectionDatasource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D0DEB71DE25BF300FE34D7 /* CharactersCollectionDatasource.swift */; };\n\t\t99D0DEBA1DE268D000FE34D7 /* UIImageView+Kingfisher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D0DEB91DE268D000FE34D7 /* UIImageView+Kingfisher.swift */; };\n\t\t99D0DEBE1DE26D8100FE34D7 /* Storyboard.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D0DEBD1DE26D8100FE34D7 /* Storyboard.swift */; };\n\t\t99E1DFE41DDA1F4C006F9D96 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99E1DFE31DDA1F4C006F9D96 /* AppDelegate.swift */; };\n\t\t99E1DFE91DDA1F4C006F9D96 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 99E1DFE71DDA1F4C006F9D96 /* Main.storyboard */; };\n\t\t99E1DFEB1DDA1F4C006F9D96 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 99E1DFEA1DDA1F4C006F9D96 /* Assets.xcassets */; };\n\t\t99E1DFEE1DDA1F4C006F9D96 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 99E1DFEC1DDA1F4C006F9D96 /* LaunchScreen.storyboard */; };\n\t\t99EF5DB61DEA5CCD00B5569F /* ThumbImageSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99EF5DB51DEA5CCD00B5569F /* ThumbImageSpec.swift */; };\n\t\t99F8870E1DEA3E6D0044E3B0 /* characters_response.json in Resources */ = {isa = PBXBuildFile; fileRef = 99F8870D1DEA3E6D0044E3B0 /* characters_response.json */; };\n\t\t99F887101DEA3EA00044E3B0 /* character.json in Resources */ = {isa = PBXBuildFile; fileRef = 99F8870F1DEA3EA00044E3B0 /* character.json */; };\n\t\t99FC2BC81DDDB0F3006CB7EE /* ItemsTableViewDatasource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99FC2BC71DDDB0F3006CB7EE /* ItemsTableViewDatasource.swift */; };\n\t\t99FC2BCA1DDDB1BF006CB7EE /* CharactersDatasource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99FC2BC91DDDB1BF006CB7EE /* CharactersDatasource.swift */; };\n\t\t99FC2BCD1DDDB8C7006CB7EE /* CharacterTableCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 99FC2BCC1DDDB8C7006CB7EE /* CharacterTableCell.xib */; };\n\t\t99FC2BCF1DDDB966006CB7EE /* ThumbImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99FC2BCE1DDDB966006CB7EE /* ThumbImage.swift */; };\n\t\tFAB8878D2CDDAC3D491738F7 /* Pods_MarvelTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8C6A61295B862198BB138719 /* Pods_MarvelTests.framework */; };\n/* End PBXBuildFile section */\n\n/* Begin PBXContainerItemProxy section */\n\t\t9996653B1DEA236300E9A5BF /* PBXContainerItemProxy */ = {\n\t\t\tisa = PBXContainerItemProxy;\n\t\t\tcontainerPortal = 99E1DFD81DDA1F4C006F9D96 /* Project object */;\n\t\t\tproxyType = 1;\n\t\t\tremoteGlobalIDString = 99E1DFDF1DDA1F4C006F9D96;\n\t\t\tremoteInfo = Marvel;\n\t\t};\n/* End PBXContainerItemProxy section */\n\n/* Begin PBXFileReference section */\n\t\t46E32511C8C4E886533F9B7E /* Pods-Marvel.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = \"Pods-Marvel.debug.xcconfig\"; path = \"Pods/Target Support Files/Pods-Marvel/Pods-Marvel.debug.xcconfig\"; sourceTree = \"<group>\"; };\n\t\t8289D5AF9F3BDEDBC4EE6E82 /* Pods-Marvel.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = \"Pods-Marvel.release.xcconfig\"; path = \"Pods/Target Support Files/Pods-Marvel/Pods-Marvel.release.xcconfig\"; sourceTree = \"<group>\"; };\n\t\t8C6A61295B862198BB138719 /* Pods_MarvelTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MarvelTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t9922F1561DFDB69200237BFE /* ColorPalette.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColorPalette.swift; sourceTree = \"<group>\"; };\n\t\t9922F1591DFDC00900237BFE /* ApperanceProxyHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ApperanceProxyHelper.swift; sourceTree = \"<group>\"; };\n\t\t9939CFC61DDA244A008CE399 /* CharactersViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CharactersViewController.swift; sourceTree = \"<group>\"; };\n\t\t9939CFC81DDA245A008CE399 /* CharacterViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CharacterViewController.swift; sourceTree = \"<group>\"; };\n\t\t9939CFCE1DDA2E07008CE399 /* MarvelAPI.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarvelAPI.swift; sourceTree = \"<group>\"; };\n\t\t9939CFD01DDA30DC008CE399 /* MarvelAPIManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MarvelAPIManager.swift; sourceTree = \"<group>\"; };\n\t\t9939CFD31DDA333D008CE399 /* Character.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Character.swift; sourceTree = \"<group>\"; };\n\t\t993AFDFE1DEA764200857C4F /* CharactersViewControllerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CharactersViewControllerSpec.swift; sourceTree = \"<group>\"; };\n\t\t9976B4F71DEA43F200D2D3C4 /* MockLoader.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockLoader.swift; sourceTree = \"<group>\"; };\n\t\t999665361DEA236300E9A5BF /* MarvelTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MarvelTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t9996653A1DEA236300E9A5BF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\t999665401DEA242300E9A5BF /* CharacterSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CharacterSpec.swift; sourceTree = \"<group>\"; };\n\t\t99B248E21DDB427000027C10 /* CharacterTableCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CharacterTableCell.swift; sourceTree = \"<group>\"; };\n\t\t99C67AC11DEB007600FB1E68 /* CharacterViewControllerSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CharacterViewControllerSpec.swift; sourceTree = \"<group>\"; };\n\t\t99C67AC41DEB032F00FB1E68 /* CharactersDatasourceSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CharactersDatasourceSpec.swift; sourceTree = \"<group>\"; };\n\t\t99C67AC61DEB06C100FB1E68 /* CharactersDelegateSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CharactersDelegateSpec.swift; sourceTree = \"<group>\"; };\n\t\t99C67AC91DEB0B3D00FB1E68 /* CharactersCollectionDatasourceSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CharactersCollectionDatasourceSpec.swift; sourceTree = \"<group>\"; };\n\t\t99C67ACB1DEB0CB800FB1E68 /* CharactersCollectionDelegateSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CharactersCollectionDelegateSpec.swift; sourceTree = \"<group>\"; };\n\t\t99D0DEB11DE2598F00FE34D7 /* ItemsCollectionViewDatasource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemsCollectionViewDatasource.swift; sourceTree = \"<group>\"; };\n\t\t99D0DEB31DE259F100FE34D7 /* CharacterCollectionCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CharacterCollectionCell.swift; sourceTree = \"<group>\"; };\n\t\t99D0DEB51DE25AC900FE34D7 /* CharacterCollectionCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CharacterCollectionCell.xib; sourceTree = \"<group>\"; };\n\t\t99D0DEB71DE25BF300FE34D7 /* CharactersCollectionDatasource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CharactersCollectionDatasource.swift; sourceTree = \"<group>\"; };\n\t\t99D0DEB91DE268D000FE34D7 /* UIImageView+Kingfisher.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = \"UIImageView+Kingfisher.swift\"; sourceTree = \"<group>\"; };\n\t\t99D0DEBD1DE26D8100FE34D7 /* Storyboard.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Storyboard.swift; sourceTree = \"<group>\"; };\n\t\t99E1DFE01DDA1F4C006F9D96 /* Marvel.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Marvel.app; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\t99E1DFE31DDA1F4C006F9D96 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = \"<group>\"; };\n\t\t99E1DFE81DDA1F4C006F9D96 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = \"<group>\"; };\n\t\t99E1DFEA1DDA1F4C006F9D96 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = \"<group>\"; };\n\t\t99E1DFED1DDA1F4C006F9D96 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = \"<group>\"; };\n\t\t99E1DFEF1DDA1F4C006F9D96 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = \"<group>\"; };\n\t\t99EF5DB51DEA5CCD00B5569F /* ThumbImageSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThumbImageSpec.swift; sourceTree = \"<group>\"; };\n\t\t99F8870D1DEA3E6D0044E3B0 /* characters_response.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = characters_response.json; sourceTree = \"<group>\"; };\n\t\t99F8870F1DEA3EA00044E3B0 /* character.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = character.json; sourceTree = \"<group>\"; };\n\t\t99FC2BC71DDDB0F3006CB7EE /* ItemsTableViewDatasource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ItemsTableViewDatasource.swift; sourceTree = \"<group>\"; };\n\t\t99FC2BC91DDDB1BF006CB7EE /* CharactersDatasource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CharactersDatasource.swift; sourceTree = \"<group>\"; };\n\t\t99FC2BCC1DDDB8C7006CB7EE /* CharacterTableCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CharacterTableCell.xib; sourceTree = \"<group>\"; };\n\t\t99FC2BCE1DDDB966006CB7EE /* ThumbImage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ThumbImage.swift; sourceTree = \"<group>\"; };\n\t\tA8D7213E1EA596B7C60C8E59 /* Pods_Marvel.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Marvel.framework; sourceTree = BUILT_PRODUCTS_DIR; };\n\t\tBF2D032F8BA77A47BCBA607A /* Pods-MarvelTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = \"Pods-MarvelTests.debug.xcconfig\"; path = \"Pods/Target Support Files/Pods-MarvelTests/Pods-MarvelTests.debug.xcconfig\"; sourceTree = \"<group>\"; };\n\t\tE54675F9B824A595E2F0D533 /* Pods-MarvelTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = \"Pods-MarvelTests.release.xcconfig\"; path = \"Pods/Target Support Files/Pods-MarvelTests/Pods-MarvelTests.release.xcconfig\"; sourceTree = \"<group>\"; };\n/* End PBXFileReference section */\n\n/* Begin PBXFrameworksBuildPhase section */\n\t\t999665331DEA236300E9A5BF /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\tFAB8878D2CDDAC3D491738F7 /* Pods_MarvelTests.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t99E1DFDD1DDA1F4C006F9D96 /* Frameworks */ = {\n\t\t\tisa = PBXFrameworksBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t577769109DC3FB06E7D1882F /* Pods_Marvel.framework in Frameworks */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXFrameworksBuildPhase section */\n\n/* Begin PBXGroup section */\n\t\t9922F1581DFDBFF400237BFE /* Apperance */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t9922F1591DFDC00900237BFE /* ApperanceProxyHelper.swift */,\n\t\t\t);\n\t\t\tname = Apperance;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9939CFC51DDA2417008CE399 /* Controllers */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t9939CFC81DDA245A008CE399 /* CharacterViewController.swift */,\n\t\t\t\t9939CFC61DDA244A008CE399 /* CharactersViewController.swift */,\n\t\t\t);\n\t\t\tpath = Controllers;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9939CFCA1DDA267D008CE399 /* Storyboards */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t99E1DFEC1DDA1F4C006F9D96 /* LaunchScreen.storyboard */,\n\t\t\t\t99E1DFE71DDA1F4C006F9D96 /* Main.storyboard */,\n\t\t\t);\n\t\t\tpath = Storyboards;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9939CFCB1DDA26A3008CE399 /* Resources */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t99D0DEBD1DE26D8100FE34D7 /* Storyboard.swift */,\n\t\t\t\t99E1DFEA1DDA1F4C006F9D96 /* Assets.xcassets */,\n\t\t\t\t99E1DFEF1DDA1F4C006F9D96 /* Info.plist */,\n\t\t\t\t9922F1561DFDB69200237BFE /* ColorPalette.swift */,\n\t\t\t);\n\t\t\tpath = Resources;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9939CFCC1DDA2716008CE399 /* AppDelegate */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t99E1DFE31DDA1F4C006F9D96 /* AppDelegate.swift */,\n\t\t\t);\n\t\t\tpath = AppDelegate;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9939CFCD1DDA2DF1008CE399 /* Network */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t9939CFCE1DDA2E07008CE399 /* MarvelAPI.swift */,\n\t\t\t\t9939CFD01DDA30DC008CE399 /* MarvelAPIManager.swift */,\n\t\t\t);\n\t\t\tpath = Network;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9939CFD21DDA332A008CE399 /* Models */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t9939CFD31DDA333D008CE399 /* Character.swift */,\n\t\t\t\t99FC2BCE1DDDB966006CB7EE /* ThumbImage.swift */,\n\t\t\t);\n\t\t\tpath = Models;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t993AFDFD1DEA762C00857C4F /* Controllers */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t993AFDFE1DEA764200857C4F /* CharactersViewControllerSpec.swift */,\n\t\t\t\t99C67AC11DEB007600FB1E68 /* CharacterViewControllerSpec.swift */,\n\t\t\t);\n\t\t\tname = Controllers;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t9976B4F61DEA43D100D2D3C4 /* TestHelpers */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t9976B4F71DEA43F200D2D3C4 /* MockLoader.swift */,\n\t\t\t);\n\t\t\tname = TestHelpers;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t999665371DEA236300E9A5BF /* MarvelTests */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t99C67AC81DEB06C700FB1E68 /* Delegates */,\n\t\t\t\t99C67AC31DEB031E00FB1E68 /* Datasources */,\n\t\t\t\t993AFDFD1DEA762C00857C4F /* Controllers */,\n\t\t\t\t99EF5DB41DEA5CBD00B5569F /* Models */,\n\t\t\t\t9976B4F61DEA43D100D2D3C4 /* TestHelpers */,\n\t\t\t\t99F8870C1DEA3E560044E3B0 /* Mocks */,\n\t\t\t\t9996653A1DEA236300E9A5BF /* Info.plist */,\n\t\t\t);\n\t\t\tpath = MarvelTests;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t99B248E11DDB423900027C10 /* Cells */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t99FC2BCB1DDDB8B1006CB7EE /* Xibs */,\n\t\t\t\t99B248E21DDB427000027C10 /* CharacterTableCell.swift */,\n\t\t\t\t99D0DEB31DE259F100FE34D7 /* CharacterCollectionCell.swift */,\n\t\t\t);\n\t\t\tpath = Cells;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t99C67AC31DEB031E00FB1E68 /* Datasources */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t99C67AC41DEB032F00FB1E68 /* CharactersDatasourceSpec.swift */,\n\t\t\t\t99C67AC91DEB0B3D00FB1E68 /* CharactersCollectionDatasourceSpec.swift */,\n\t\t\t);\n\t\t\tname = Datasources;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t99C67AC81DEB06C700FB1E68 /* Delegates */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t99C67AC61DEB06C100FB1E68 /* CharactersDelegateSpec.swift */,\n\t\t\t\t99C67ACB1DEB0CB800FB1E68 /* CharactersCollectionDelegateSpec.swift */,\n\t\t\t);\n\t\t\tname = Delegates;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t99D0DEBB1DE268D500FE34D7 /* Extensions */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t99D0DEB91DE268D000FE34D7 /* UIImageView+Kingfisher.swift */,\n\t\t\t);\n\t\t\tname = Extensions;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t99E1DFD71DDA1F4C006F9D96 = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tA614E78BE86E798A7E93A6F8 /* Frameworks */,\n\t\t\t\t99E1DFE21DDA1F4C006F9D96 /* Marvel */,\n\t\t\t\t999665371DEA236300E9A5BF /* MarvelTests */,\n\t\t\t\tF31159AB537646F3DA1B5700 /* Pods */,\n\t\t\t\t99E1DFE11DDA1F4C006F9D96 /* Products */,\n\t\t\t);\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t99E1DFE11DDA1F4C006F9D96 /* Products */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t99E1DFE01DDA1F4C006F9D96 /* Marvel.app */,\n\t\t\t\t999665361DEA236300E9A5BF /* MarvelTests.xctest */,\n\t\t\t);\n\t\t\tname = Products;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t99E1DFE21DDA1F4C006F9D96 /* Marvel */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t9922F1581DFDBFF400237BFE /* Apperance */,\n\t\t\t\t99D0DEBB1DE268D500FE34D7 /* Extensions */,\n\t\t\t\t9939CFCC1DDA2716008CE399 /* AppDelegate */,\n\t\t\t\t99B248E11DDB423900027C10 /* Cells */,\n\t\t\t\t9939CFC51DDA2417008CE399 /* Controllers */,\n\t\t\t\t99FC2BC61DDDB0A5006CB7EE /* Datasources */,\n\t\t\t\t9939CFD21DDA332A008CE399 /* Models */,\n\t\t\t\t9939CFCD1DDA2DF1008CE399 /* Network */,\n\t\t\t\t9939CFCB1DDA26A3008CE399 /* Resources */,\n\t\t\t\t9939CFCA1DDA267D008CE399 /* Storyboards */,\n\t\t\t);\n\t\t\tpath = Marvel;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t99EF5DB41DEA5CBD00B5569F /* Models */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t999665401DEA242300E9A5BF /* CharacterSpec.swift */,\n\t\t\t\t99EF5DB51DEA5CCD00B5569F /* ThumbImageSpec.swift */,\n\t\t\t);\n\t\t\tname = Models;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t99F8870C1DEA3E560044E3B0 /* Mocks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t99F8870D1DEA3E6D0044E3B0 /* characters_response.json */,\n\t\t\t\t99F8870F1DEA3EA00044E3B0 /* character.json */,\n\t\t\t);\n\t\t\tname = Mocks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t99FC2BC61DDDB0A5006CB7EE /* Datasources */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t99FC2BC91DDDB1BF006CB7EE /* CharactersDatasource.swift */,\n\t\t\t\t99FC2BC71DDDB0F3006CB7EE /* ItemsTableViewDatasource.swift */,\n\t\t\t\t99D0DEB11DE2598F00FE34D7 /* ItemsCollectionViewDatasource.swift */,\n\t\t\t\t99D0DEB71DE25BF300FE34D7 /* CharactersCollectionDatasource.swift */,\n\t\t\t);\n\t\t\tpath = Datasources;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t99FC2BCB1DDDB8B1006CB7EE /* Xibs */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t99FC2BCC1DDDB8C7006CB7EE /* CharacterTableCell.xib */,\n\t\t\t\t99D0DEB51DE25AC900FE34D7 /* CharacterCollectionCell.xib */,\n\t\t\t);\n\t\t\tpath = Xibs;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tA614E78BE86E798A7E93A6F8 /* Frameworks */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\tA8D7213E1EA596B7C60C8E59 /* Pods_Marvel.framework */,\n\t\t\t\t8C6A61295B862198BB138719 /* Pods_MarvelTests.framework */,\n\t\t\t);\n\t\t\tname = Frameworks;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\tF31159AB537646F3DA1B5700 /* Pods */ = {\n\t\t\tisa = PBXGroup;\n\t\t\tchildren = (\n\t\t\t\t46E32511C8C4E886533F9B7E /* Pods-Marvel.debug.xcconfig */,\n\t\t\t\t8289D5AF9F3BDEDBC4EE6E82 /* Pods-Marvel.release.xcconfig */,\n\t\t\t\tBF2D032F8BA77A47BCBA607A /* Pods-MarvelTests.debug.xcconfig */,\n\t\t\t\tE54675F9B824A595E2F0D533 /* Pods-MarvelTests.release.xcconfig */,\n\t\t\t);\n\t\t\tname = Pods;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXGroup section */\n\n/* Begin PBXNativeTarget section */\n\t\t999665351DEA236300E9A5BF /* MarvelTests */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 9996653F1DEA236300E9A5BF /* Build configuration list for PBXNativeTarget \"MarvelTests\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t40FD7841A58E5007D40EC477 /* [CP] Check Pods Manifest.lock */,\n\t\t\t\t999665321DEA236300E9A5BF /* Sources */,\n\t\t\t\t999665331DEA236300E9A5BF /* Frameworks */,\n\t\t\t\t999665341DEA236300E9A5BF /* Resources */,\n\t\t\t\tAF9627A2960EE733DD7D8871 /* [CP] Embed Pods Frameworks */,\n\t\t\t\t2163A2BCCD3A507A6B8CD6FB /* [CP] Copy Pods Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t\t9996653C1DEA236300E9A5BF /* PBXTargetDependency */,\n\t\t\t);\n\t\t\tname = MarvelTests;\n\t\t\tproductName = MarvelTests;\n\t\t\tproductReference = 999665361DEA236300E9A5BF /* MarvelTests.xctest */;\n\t\t\tproductType = \"com.apple.product-type.bundle.unit-test\";\n\t\t};\n\t\t99E1DFDF1DDA1F4C006F9D96 /* Marvel */ = {\n\t\t\tisa = PBXNativeTarget;\n\t\t\tbuildConfigurationList = 99E1DFF21DDA1F4C006F9D96 /* Build configuration list for PBXNativeTarget \"Marvel\" */;\n\t\t\tbuildPhases = (\n\t\t\t\t349470B03A6A7FDAFB705949 /* [CP] Check Pods Manifest.lock */,\n\t\t\t\t99D0DEBC1DE26D0F00FE34D7 /* SwiftGen */,\n\t\t\t\t99E1DFDC1DDA1F4C006F9D96 /* Sources */,\n\t\t\t\t99E1DFDD1DDA1F4C006F9D96 /* Frameworks */,\n\t\t\t\t99E1DFDE1DDA1F4C006F9D96 /* Resources */,\n\t\t\t\t65B66DF972813F1C9E6FAB9F /* [CP] Embed Pods Frameworks */,\n\t\t\t\t572BC285D19F6AE624CEB662 /* [CP] Copy Pods Resources */,\n\t\t\t);\n\t\t\tbuildRules = (\n\t\t\t);\n\t\t\tdependencies = (\n\t\t\t);\n\t\t\tname = Marvel;\n\t\t\tproductName = Marvel;\n\t\t\tproductReference = 99E1DFE01DDA1F4C006F9D96 /* Marvel.app */;\n\t\t\tproductType = \"com.apple.product-type.application\";\n\t\t};\n/* End PBXNativeTarget section */\n\n/* Begin PBXProject section */\n\t\t99E1DFD81DDA1F4C006F9D96 /* Project object */ = {\n\t\t\tisa = PBXProject;\n\t\t\tattributes = {\n\t\t\t\tLastSwiftUpdateCheck = 0810;\n\t\t\t\tLastUpgradeCheck = 0810;\n\t\t\t\tORGANIZATIONNAME = \"Thiago Lioy\";\n\t\t\t\tTargetAttributes = {\n\t\t\t\t\t999665351DEA236300E9A5BF = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 8.1;\n\t\t\t\t\t\tDevelopmentTeam = 6UM2WYVE6K;\n\t\t\t\t\t\tProvisioningStyle = Automatic;\n\t\t\t\t\t\tTestTargetID = 99E1DFDF1DDA1F4C006F9D96;\n\t\t\t\t\t};\n\t\t\t\t\t99E1DFDF1DDA1F4C006F9D96 = {\n\t\t\t\t\t\tCreatedOnToolsVersion = 8.1;\n\t\t\t\t\t\tDevelopmentTeam = 6UM2WYVE6K;\n\t\t\t\t\t\tProvisioningStyle = Automatic;\n\t\t\t\t\t};\n\t\t\t\t};\n\t\t\t};\n\t\t\tbuildConfigurationList = 99E1DFDB1DDA1F4C006F9D96 /* Build configuration list for PBXProject \"Marvel\" */;\n\t\t\tcompatibilityVersion = \"Xcode 3.2\";\n\t\t\tdevelopmentRegion = English;\n\t\t\thasScannedForEncodings = 0;\n\t\t\tknownRegions = (\n\t\t\t\ten,\n\t\t\t\tBase,\n\t\t\t);\n\t\t\tmainGroup = 99E1DFD71DDA1F4C006F9D96;\n\t\t\tproductRefGroup = 99E1DFE11DDA1F4C006F9D96 /* Products */;\n\t\t\tprojectDirPath = \"\";\n\t\t\tprojectRoot = \"\";\n\t\t\ttargets = (\n\t\t\t\t99E1DFDF1DDA1F4C006F9D96 /* Marvel */,\n\t\t\t\t999665351DEA236300E9A5BF /* MarvelTests */,\n\t\t\t);\n\t\t};\n/* End PBXProject section */\n\n/* Begin PBXResourcesBuildPhase section */\n\t\t999665341DEA236300E9A5BF /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t99F8870E1DEA3E6D0044E3B0 /* characters_response.json in Resources */,\n\t\t\t\t99F887101DEA3EA00044E3B0 /* character.json in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t99E1DFDE1DDA1F4C006F9D96 /* Resources */ = {\n\t\t\tisa = PBXResourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t99FC2BCD1DDDB8C7006CB7EE /* CharacterTableCell.xib in Resources */,\n\t\t\t\t99D0DEB61DE25AC900FE34D7 /* CharacterCollectionCell.xib in Resources */,\n\t\t\t\t99E1DFEE1DDA1F4C006F9D96 /* LaunchScreen.storyboard in Resources */,\n\t\t\t\t99E1DFEB1DDA1F4C006F9D96 /* Assets.xcassets in Resources */,\n\t\t\t\t99E1DFE91DDA1F4C006F9D96 /* Main.storyboard in Resources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXResourcesBuildPhase section */\n\n/* Begin PBXShellScriptBuildPhase section */\n\t\t2163A2BCCD3A507A6B8CD6FB /* [CP] Copy Pods Resources */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = \"[CP] Copy Pods Resources\";\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"\\\"${SRCROOT}/Pods/Target Support Files/Pods-MarvelTests/Pods-MarvelTests-resources.sh\\\"\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n\t\t349470B03A6A7FDAFB705949 /* [CP] Check Pods Manifest.lock */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = \"[CP] Check Pods Manifest.lock\";\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"diff \\\"${PODS_ROOT}/../Podfile.lock\\\" \\\"${PODS_ROOT}/Manifest.lock\\\" > /dev/null\\nif [ $? != 0 ] ; then\\n    # print error to STDERR\\n    echo \\\"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\\\" >&2\\n    exit 1\\nfi\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n\t\t40FD7841A58E5007D40EC477 /* [CP] Check Pods Manifest.lock */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = \"[CP] Check Pods Manifest.lock\";\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"diff \\\"${PODS_ROOT}/../Podfile.lock\\\" \\\"${PODS_ROOT}/Manifest.lock\\\" > /dev/null\\nif [ $? != 0 ] ; then\\n    # print error to STDERR\\n    echo \\\"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\\\" >&2\\n    exit 1\\nfi\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n\t\t572BC285D19F6AE624CEB662 /* [CP] Copy Pods Resources */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = \"[CP] Copy Pods Resources\";\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"\\\"${SRCROOT}/Pods/Target Support Files/Pods-Marvel/Pods-Marvel-resources.sh\\\"\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n\t\t65B66DF972813F1C9E6FAB9F /* [CP] Embed Pods Frameworks */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = \"[CP] Embed Pods Frameworks\";\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"\\\"${SRCROOT}/Pods/Target Support Files/Pods-Marvel/Pods-Marvel-frameworks.sh\\\"\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n\t\t99D0DEBC1DE26D0F00FE34D7 /* SwiftGen */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = SwiftGen;\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"$PODS_ROOT/SwiftGen/bin/swiftgen storyboards -t swift3 $SOURCE_ROOT --output $SOURCE_ROOT/Marvel/Resources/Storyboard.swift --sceneEnumName Storyboard\";\n\t\t};\n\t\tAF9627A2960EE733DD7D8871 /* [CP] Embed Pods Frameworks */ = {\n\t\t\tisa = PBXShellScriptBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t);\n\t\t\tinputPaths = (\n\t\t\t);\n\t\t\tname = \"[CP] Embed Pods Frameworks\";\n\t\t\toutputPaths = (\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t\tshellPath = /bin/sh;\n\t\t\tshellScript = \"\\\"${SRCROOT}/Pods/Target Support Files/Pods-MarvelTests/Pods-MarvelTests-frameworks.sh\\\"\\n\";\n\t\t\tshowEnvVarsInLog = 0;\n\t\t};\n/* End PBXShellScriptBuildPhase section */\n\n/* Begin PBXSourcesBuildPhase section */\n\t\t999665321DEA236300E9A5BF /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t9976B4F81DEA43F200D2D3C4 /* MockLoader.swift in Sources */,\n\t\t\t\t99C67AC51DEB032F00FB1E68 /* CharactersDatasourceSpec.swift in Sources */,\n\t\t\t\t99C67AC71DEB06C100FB1E68 /* CharactersDelegateSpec.swift in Sources */,\n\t\t\t\t999665411DEA242300E9A5BF /* CharacterSpec.swift in Sources */,\n\t\t\t\t99C67AC21DEB007600FB1E68 /* CharacterViewControllerSpec.swift in Sources */,\n\t\t\t\t99C67ACA1DEB0B3D00FB1E68 /* CharactersCollectionDatasourceSpec.swift in Sources */,\n\t\t\t\t99EF5DB61DEA5CCD00B5569F /* ThumbImageSpec.swift in Sources */,\n\t\t\t\t993AFDFF1DEA764200857C4F /* CharactersViewControllerSpec.swift in Sources */,\n\t\t\t\t99C67ACC1DEB0CB800FB1E68 /* CharactersCollectionDelegateSpec.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n\t\t99E1DFDC1DDA1F4C006F9D96 /* Sources */ = {\n\t\t\tisa = PBXSourcesBuildPhase;\n\t\t\tbuildActionMask = 2147483647;\n\t\t\tfiles = (\n\t\t\t\t99D0DEB81DE25BF300FE34D7 /* CharactersCollectionDatasource.swift in Sources */,\n\t\t\t\t99D0DEBE1DE26D8100FE34D7 /* Storyboard.swift in Sources */,\n\t\t\t\t99FC2BC81DDDB0F3006CB7EE /* ItemsTableViewDatasource.swift in Sources */,\n\t\t\t\t9939CFD11DDA30DC008CE399 /* MarvelAPIManager.swift in Sources */,\n\t\t\t\t9922F15A1DFDC00900237BFE /* ApperanceProxyHelper.swift in Sources */,\n\t\t\t\t99D0DEBA1DE268D000FE34D7 /* UIImageView+Kingfisher.swift in Sources */,\n\t\t\t\t9939CFC91DDA245A008CE399 /* CharacterViewController.swift in Sources */,\n\t\t\t\t99D0DEB41DE259F100FE34D7 /* CharacterCollectionCell.swift in Sources */,\n\t\t\t\t99B248E31DDB427000027C10 /* CharacterTableCell.swift in Sources */,\n\t\t\t\t9939CFC71DDA244A008CE399 /* CharactersViewController.swift in Sources */,\n\t\t\t\t99D0DEB21DE2598F00FE34D7 /* ItemsCollectionViewDatasource.swift in Sources */,\n\t\t\t\t9939CFD41DDA333D008CE399 /* Character.swift in Sources */,\n\t\t\t\t9922F1571DFDB69200237BFE /* ColorPalette.swift in Sources */,\n\t\t\t\t99E1DFE41DDA1F4C006F9D96 /* AppDelegate.swift in Sources */,\n\t\t\t\t99FC2BCA1DDDB1BF006CB7EE /* CharactersDatasource.swift in Sources */,\n\t\t\t\t9939CFCF1DDA2E07008CE399 /* MarvelAPI.swift in Sources */,\n\t\t\t\t99FC2BCF1DDDB966006CB7EE /* ThumbImage.swift in Sources */,\n\t\t\t);\n\t\t\trunOnlyForDeploymentPostprocessing = 0;\n\t\t};\n/* End PBXSourcesBuildPhase section */\n\n/* Begin PBXTargetDependency section */\n\t\t9996653C1DEA236300E9A5BF /* PBXTargetDependency */ = {\n\t\t\tisa = PBXTargetDependency;\n\t\t\ttarget = 99E1DFDF1DDA1F4C006F9D96 /* Marvel */;\n\t\t\ttargetProxy = 9996653B1DEA236300E9A5BF /* PBXContainerItemProxy */;\n\t\t};\n/* End PBXTargetDependency section */\n\n/* Begin PBXVariantGroup section */\n\t\t99E1DFE71DDA1F4C006F9D96 /* Main.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t99E1DFE81DDA1F4C006F9D96 /* Base */,\n\t\t\t);\n\t\t\tname = Main.storyboard;\n\t\t\tpath = .;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n\t\t99E1DFEC1DDA1F4C006F9D96 /* LaunchScreen.storyboard */ = {\n\t\t\tisa = PBXVariantGroup;\n\t\t\tchildren = (\n\t\t\t\t99E1DFED1DDA1F4C006F9D96 /* Base */,\n\t\t\t);\n\t\t\tname = LaunchScreen.storyboard;\n\t\t\tpath = .;\n\t\t\tsourceTree = \"<group>\";\n\t\t};\n/* End PBXVariantGroup section */\n\n/* Begin XCBuildConfiguration section */\n\t\t9996653D1DEA236300E9A5BF /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = BF2D032F8BA77A47BCBA607A /* Pods-MarvelTests.debug.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tDEVELOPMENT_TEAM = 6UM2WYVE6K;\n\t\t\t\tINFOPLIST_FILE = MarvelTests/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.tpioy.marvelapp.MarvelTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 3.0;\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/Marvel.app/Marvel\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t9996653E1DEA236300E9A5BF /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = E54675F9B824A595E2F0D533 /* Pods-MarvelTests.release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tBUNDLE_LOADER = \"$(TEST_HOST)\";\n\t\t\t\tDEVELOPMENT_TEAM = 6UM2WYVE6K;\n\t\t\t\tINFOPLIST_FILE = MarvelTests/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks @loader_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.tpioy.marvelapp.MarvelTests;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 3.0;\n\t\t\t\tTEST_HOST = \"$(BUILT_PRODUCTS_DIR)/Marvel.app/Marvel\";\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t99E1DFF01DDA1F4C006F9D96 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVES = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = dwarf;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tENABLE_TESTABILITY = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_DYNAMIC_NO_PIC = NO;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_OPTIMIZATION_LEVEL = 0;\n\t\t\t\tGCC_PREPROCESSOR_DEFINITIONS = (\n\t\t\t\t\t\"DEBUG=1\",\n\t\t\t\t\t\"$(inherited)\",\n\t\t\t\t);\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 10.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = YES;\n\t\t\t\tONLY_ACTIVE_ARCH = YES;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Onone\";\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t99E1DFF11DDA1F4C006F9D96 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbuildSettings = {\n\t\t\t\tALWAYS_SEARCH_USER_PATHS = NO;\n\t\t\t\tCLANG_ANALYZER_NONNULL = YES;\n\t\t\t\tCLANG_CXX_LANGUAGE_STANDARD = \"gnu++0x\";\n\t\t\t\tCLANG_CXX_LIBRARY = \"libc++\";\n\t\t\t\tCLANG_ENABLE_MODULES = YES;\n\t\t\t\tCLANG_ENABLE_OBJC_ARC = YES;\n\t\t\t\tCLANG_WARN_BOOL_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_CONSTANT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;\n\t\t\t\tCLANG_WARN_DOCUMENTATION_COMMENTS = YES;\n\t\t\t\tCLANG_WARN_EMPTY_BODY = YES;\n\t\t\t\tCLANG_WARN_ENUM_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_INFINITE_RECURSION = YES;\n\t\t\t\tCLANG_WARN_INT_CONVERSION = YES;\n\t\t\t\tCLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;\n\t\t\t\tCLANG_WARN_SUSPICIOUS_MOVES = YES;\n\t\t\t\tCLANG_WARN_UNREACHABLE_CODE = YES;\n\t\t\t\tCLANG_WARN__DUPLICATE_METHOD_MATCH = YES;\n\t\t\t\t\"CODE_SIGN_IDENTITY[sdk=iphoneos*]\" = \"iPhone Developer\";\n\t\t\t\tCOPY_PHASE_STRIP = NO;\n\t\t\t\tDEBUG_INFORMATION_FORMAT = \"dwarf-with-dsym\";\n\t\t\t\tENABLE_NS_ASSERTIONS = NO;\n\t\t\t\tENABLE_STRICT_OBJC_MSGSEND = YES;\n\t\t\t\tGCC_C_LANGUAGE_STANDARD = gnu99;\n\t\t\t\tGCC_NO_COMMON_BLOCKS = YES;\n\t\t\t\tGCC_WARN_64_TO_32_BIT_CONVERSION = YES;\n\t\t\t\tGCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;\n\t\t\t\tGCC_WARN_UNDECLARED_SELECTOR = YES;\n\t\t\t\tGCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;\n\t\t\t\tGCC_WARN_UNUSED_FUNCTION = YES;\n\t\t\t\tGCC_WARN_UNUSED_VARIABLE = YES;\n\t\t\t\tIPHONEOS_DEPLOYMENT_TARGET = 10.0;\n\t\t\t\tMTL_ENABLE_DEBUG_INFO = NO;\n\t\t\t\tSDKROOT = iphoneos;\n\t\t\t\tSWIFT_OPTIMIZATION_LEVEL = \"-Owholemodule\";\n\t\t\t\tTARGETED_DEVICE_FAMILY = \"1,2\";\n\t\t\t\tVALIDATE_PRODUCT = YES;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n\t\t99E1DFF31DDA1F4C006F9D96 /* Debug */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 46E32511C8C4E886533F9B7E /* Pods-Marvel.debug.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tDEVELOPMENT_TEAM = 6UM2WYVE6K;\n\t\t\t\tINFOPLIST_FILE = Marvel/Resources/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.tpioy.marvelapp.Marvel;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 3.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = 1;\n\t\t\t};\n\t\t\tname = Debug;\n\t\t};\n\t\t99E1DFF41DDA1F4C006F9D96 /* Release */ = {\n\t\t\tisa = XCBuildConfiguration;\n\t\t\tbaseConfigurationReference = 8289D5AF9F3BDEDBC4EE6E82 /* Pods-Marvel.release.xcconfig */;\n\t\t\tbuildSettings = {\n\t\t\t\tASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;\n\t\t\t\tDEVELOPMENT_TEAM = 6UM2WYVE6K;\n\t\t\t\tINFOPLIST_FILE = Marvel/Resources/Info.plist;\n\t\t\t\tLD_RUNPATH_SEARCH_PATHS = \"$(inherited) @executable_path/Frameworks\";\n\t\t\t\tPRODUCT_BUNDLE_IDENTIFIER = com.tpioy.marvelapp.Marvel;\n\t\t\t\tPRODUCT_NAME = \"$(TARGET_NAME)\";\n\t\t\t\tSWIFT_VERSION = 3.0;\n\t\t\t\tTARGETED_DEVICE_FAMILY = 1;\n\t\t\t};\n\t\t\tname = Release;\n\t\t};\n/* End XCBuildConfiguration section */\n\n/* Begin XCConfigurationList section */\n\t\t9996653F1DEA236300E9A5BF /* Build configuration list for PBXNativeTarget \"MarvelTests\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t9996653D1DEA236300E9A5BF /* Debug */,\n\t\t\t\t9996653E1DEA236300E9A5BF /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t99E1DFDB1DDA1F4C006F9D96 /* Build configuration list for PBXProject \"Marvel\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t99E1DFF01DDA1F4C006F9D96 /* Debug */,\n\t\t\t\t99E1DFF11DDA1F4C006F9D96 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n\t\t99E1DFF21DDA1F4C006F9D96 /* Build configuration list for PBXNativeTarget \"Marvel\" */ = {\n\t\t\tisa = XCConfigurationList;\n\t\t\tbuildConfigurations = (\n\t\t\t\t99E1DFF31DDA1F4C006F9D96 /* Debug */,\n\t\t\t\t99E1DFF41DDA1F4C006F9D96 /* Release */,\n\t\t\t);\n\t\t\tdefaultConfigurationIsVisible = 0;\n\t\t\tdefaultConfigurationName = Release;\n\t\t};\n/* End XCConfigurationList section */\n\t};\n\trootObject = 99E1DFD81DDA1F4C006F9D96 /* Project object */;\n}\n"
  },
  {
    "path": "Marvel.xcodeproj/project.xcworkspace/contents.xcworkspacedata",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Workspace\n   version = \"1.0\">\n   <FileRef\n      location = \"self:Marvel.xcodeproj\">\n   </FileRef>\n</Workspace>\n"
  },
  {
    "path": "Marvel.xcodeproj/xcshareddata/xcschemes/Marvel.xcscheme",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<Scheme\n   LastUpgradeVersion = \"0810\"\n   version = \"1.3\">\n   <BuildAction\n      parallelizeBuildables = \"YES\"\n      buildImplicitDependencies = \"YES\">\n      <BuildActionEntries>\n         <BuildActionEntry\n            buildForTesting = \"YES\"\n            buildForRunning = \"YES\"\n            buildForProfiling = \"YES\"\n            buildForArchiving = \"YES\"\n            buildForAnalyzing = \"YES\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"99E1DFDF1DDA1F4C006F9D96\"\n               BuildableName = \"Marvel.app\"\n               BlueprintName = \"Marvel\"\n               ReferencedContainer = \"container:Marvel.xcodeproj\">\n            </BuildableReference>\n         </BuildActionEntry>\n      </BuildActionEntries>\n   </BuildAction>\n   <TestAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      codeCoverageEnabled = \"YES\">\n      <Testables>\n         <TestableReference\n            skipped = \"NO\">\n            <BuildableReference\n               BuildableIdentifier = \"primary\"\n               BlueprintIdentifier = \"999665351DEA236300E9A5BF\"\n               BuildableName = \"MarvelTests.xctest\"\n               BlueprintName = \"MarvelTests\"\n               ReferencedContainer = \"container:Marvel.xcodeproj\">\n            </BuildableReference>\n         </TestableReference>\n      </Testables>\n      <MacroExpansion>\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"99E1DFDF1DDA1F4C006F9D96\"\n            BuildableName = \"Marvel.app\"\n            BlueprintName = \"Marvel\"\n            ReferencedContainer = \"container:Marvel.xcodeproj\">\n         </BuildableReference>\n      </MacroExpansion>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </TestAction>\n   <LaunchAction\n      buildConfiguration = \"Debug\"\n      selectedDebuggerIdentifier = \"Xcode.DebuggerFoundation.Debugger.LLDB\"\n      selectedLauncherIdentifier = \"Xcode.DebuggerFoundation.Launcher.LLDB\"\n      launchStyle = \"0\"\n      useCustomWorkingDirectory = \"NO\"\n      ignoresPersistentStateOnLaunch = \"NO\"\n      debugDocumentVersioning = \"YES\"\n      debugServiceExtension = \"internal\"\n      allowLocationSimulation = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"99E1DFDF1DDA1F4C006F9D96\"\n            BuildableName = \"Marvel.app\"\n            BlueprintName = \"Marvel\"\n            ReferencedContainer = \"container:Marvel.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n      <AdditionalOptions>\n      </AdditionalOptions>\n   </LaunchAction>\n   <ProfileAction\n      buildConfiguration = \"Release\"\n      shouldUseLaunchSchemeArgsEnv = \"YES\"\n      savedToolIdentifier = \"\"\n      useCustomWorkingDirectory = \"NO\"\n      debugDocumentVersioning = \"YES\">\n      <BuildableProductRunnable\n         runnableDebuggingMode = \"0\">\n         <BuildableReference\n            BuildableIdentifier = \"primary\"\n            BlueprintIdentifier = \"99E1DFDF1DDA1F4C006F9D96\"\n            BuildableName = \"Marvel.app\"\n            BlueprintName = \"Marvel\"\n            ReferencedContainer = \"container:Marvel.xcodeproj\">\n         </BuildableReference>\n      </BuildableProductRunnable>\n   </ProfileAction>\n   <AnalyzeAction\n      buildConfiguration = \"Debug\">\n   </AnalyzeAction>\n   <ArchiveAction\n      buildConfiguration = \"Release\"\n      revealArchiveInOrganizer = \"YES\">\n   </ArchiveAction>\n</Scheme>\n"
  },
  {
    "path": "MarvelTests/CharacterSpec.swift",
    "content": "//\n//  NewTestSpec.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 26/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport Quick\nimport Nimble\n@testable import Marvel\n\nclass CharacterSpec: QuickSpec {\n    override func spec() {\n        describe(\"a character\") {\n            \n            var character: Marvel.Character!\n            \n            beforeEach {\n                let testBundle = Bundle(for: type(of: self))\n                let mockLoader = MockLoader(file: \"character\", in: testBundle)\n                character = mockLoader?.map(to: Character.self)\n            }\n            \n            it(\"should be able to create a chracter from json\") {\n                expect(character).toNot(beNil())\n            }\n            \n            it(\"should have a thumbImage\") {\n                expect(character.thumImage).toNot(beNil())\n            }\n            \n        }\n    }\n}\n"
  },
  {
    "path": "MarvelTests/CharacterViewControllerSpec.swift",
    "content": "//\n//  CharacterViewControllerSpec.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 27/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport Foundation\nimport Quick\nimport Nimble\n@testable import Marvel\n\n\nclass CharacterViewControllerSpec: QuickSpec {\n    override func spec() {\n        describe(\"CharacterViewController\") {\n            \n            var controller: CharacterViewController!\n            var character: Marvel.Character!\n            beforeEach {\n                let testBundle = Bundle(for: type(of: self))\n                let mockLoader = MockLoader(file: \"character\", in: testBundle)\n                character = (mockLoader?.map(to: Character.self))!\n                \n                \n                controller = Storyboard.Main.characterViewControllerScene.viewController() as! CharacterViewController\n                \n                controller.character = character\n                \n                //Load view components\n                let _ = controller.view\n            }\n            \n            context(\"valid character\") {\n                it(\"should setup properties with character information\") {\n                    controller.viewDidLoad()\n                    let name = controller.name.text\n                    expect(name).to(equal(character.name))\n                }\n            }\n            \n            context(\"nil character\") {\n                it(\"should setup properties with default values\") {\n                    controller.character = nil\n                    controller.viewDidLoad()\n                    let name = controller.name.text\n                    expect(name).to(equal(\"\"))\n                }\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "MarvelTests/CharactersCollectionDatasourceSpec.swift",
    "content": "//\n//  CharactersCollectionDatasourceSpec.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 27/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport Foundation\nimport Quick\nimport Nimble\n@testable import Marvel\n\nclass CharactersCollectionDatasourceSpec: QuickSpec {\n    override func spec() {\n        describe(\"CharactersCollectionDatasource\") {\n            \n            var controller: CharactersViewController!\n            var character: Marvel.Character!\n            \n            beforeEach {\n                let testBundle = Bundle(for: type(of: self))\n                let mockLoader = MockLoader(file: \"character\", in: testBundle)\n                character = (mockLoader?.map(to: Character.self))!\n                let apiMock = MarvelAPICallsMock(characters: [character])\n                \n                controller = Storyboard.Main.charactersViewControllerScene.viewController() as! CharactersViewController\n                \n                controller.apiManager = apiMock\n                \n                //Load view components\n                let _ = controller.view\n                controller.showAsGrid(UIButton())\n            }\n            \n            it(\"should have a valid datasource\") {\n                expect(controller.collectionDatasource).toNot(beNil())\n            }\n            \n            it(\"should have a cell of expected type\") {\n                let indexPath = IndexPath(row: 0, section: 0)\n                let cell = controller.collectionDatasource!.collectionView(controller.collectionView, cellForItemAt: indexPath)\n                expect(cell.isKind(of: CharacterCollectionCell.self)).to(beTruthy())\n            }\n            \n            it(\"should have a configured cell\") {\n                let indexPath = IndexPath(row: 0, section: 0)\n                let cell = controller.collectionDatasource!.collectionView(controller.collectionView, cellForItemAt: indexPath) as! CharacterCollectionCell\n                let name = cell.name.text!\n                expect(name).to(equal(character.name))\n            }\n            \n            it(\"should have the right numberOfRowsInSection\") {\n                let count = controller.collectionDatasource!.collectionView(controller.collectionView, numberOfItemsInSection: 0)\n                expect(count).to(equal(1))\n            }\n            \n            \n            \n        }\n    }\n}\n"
  },
  {
    "path": "MarvelTests/CharactersCollectionDelegateSpec.swift",
    "content": "//\n//  CharactersCollectionDelegateSpec.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 27/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport Foundation\nimport Quick\nimport Nimble\n@testable import Marvel\n\n\nclass CharactersCollectionDelegateMock: CharactersDelegate {\n    var didSelectRowTrigged = false\n    \n    func didSelectCharacter(at index: IndexPath) {\n        didSelectRowTrigged = true\n    }\n}\n\nclass CharactersCollectionDelegateSpec: QuickSpec {\n    override func spec() {\n        describe(\"CharactersCollectionDelegate\") {\n            \n            var controller: CharactersViewController!\n            var character: Marvel.Character!\n            \n            beforeEach {\n                let testBundle = Bundle(for: type(of: self))\n                let mockLoader = MockLoader(file: \"character\", in: testBundle)\n                character = (mockLoader?.map(to: Character.self))!\n                let apiMock = MarvelAPICallsMock(characters: [character])\n                \n                controller = Storyboard.Main.charactersViewControllerScene.viewController() as! CharactersViewController\n                \n                controller.apiManager = apiMock\n                \n                //Load view components\n                let _ = controller.view\n                controller.showAsGrid(UIButton())\n            }\n            \n            it(\"should have a valid delegate\") {\n                expect(controller.collectionDelegate).toNot(beNil())\n            }\n            \n            it(\"should have a cell of expected size\") {\n                let indexPath = IndexPath(row: 0, section: 0)\n                let size = controller.collectionDelegate!.collectionView(controller.collectionView, layout: controller.collectionView.collectionViewLayout, sizeForItemAt: indexPath)\n                let width = controller.collectionView.bounds.size.width\n                let expectedSize = CharacterCollectionCell.size(for: width)\n                expect(size.height).to(equal(expectedSize.height))\n                expect(size.width).to(equal(expectedSize.width))\n            }\n            \n            it(\"should call delegate on didSelectedRowAt\") {\n                let indexPath = IndexPath(row: 0, section: 0)\n                let charactersDelegateMock = CharactersCollectionDelegateMock()\n                controller.collectionDelegate = CharactersCollectionDelegate(charactersDelegateMock)\n                expect(charactersDelegateMock.didSelectRowTrigged).to(beFalsy())\n                controller.collectionDelegate!.collectionView(controller.collectionView, didSelectItemAt: indexPath)\n                expect(charactersDelegateMock.didSelectRowTrigged).to(beTruthy())\n            }\n            \n            \n            \n        }\n    }\n}\n\n"
  },
  {
    "path": "MarvelTests/CharactersDatasourceSpec.swift",
    "content": "//\n//  CharactersDatasourceSpec.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 27/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport Foundation\nimport Quick\nimport Nimble\n@testable import Marvel\n\n\nclass CharactersDatasourceSpec: QuickSpec {\n    override func spec() {\n        describe(\"CharactersDatasource\") {\n            \n            var controller: CharactersViewController!\n            var character: Marvel.Character!\n            \n            beforeEach {\n                let testBundle = Bundle(for: type(of: self))\n                let mockLoader = MockLoader(file: \"character\", in: testBundle)\n                character = (mockLoader?.map(to: Character.self))!\n                let apiMock = MarvelAPICallsMock(characters: [character])\n                \n                controller = Storyboard.Main.charactersViewControllerScene.viewController() as! CharactersViewController\n                \n                controller.apiManager = apiMock\n                \n                //Load view components\n                let _ = controller.view\n            }\n            \n            it(\"should have a valid datasource\") {\n                expect(controller.tableDatasource).toNot(beNil())\n            }\n            \n            it(\"should have a cell of expected type\") {\n                let indexPath = IndexPath(row: 0, section: 0)\n                let cell = controller.tableDatasource!.tableView(controller.tableView, cellForRowAt: indexPath)\n                expect(cell.isKind(of: CharacterTableCell.self)).to(beTruthy())\n            }\n            \n            it(\"should have a configured cell\") {\n                let indexPath = IndexPath(row: 0, section: 0)\n                let cell = controller.tableDatasource!.tableView(controller.tableView, cellForRowAt: indexPath) as! CharacterTableCell\n                let name = cell.name.text!\n                expect(name).to(equal(character.name))\n            }\n            \n            it(\"should have the right numberOfRowsInSection\") {\n                let count = controller.tableDatasource!.tableView(controller.tableView, numberOfRowsInSection: 0)\n                expect(count).to(equal(1))\n            }\n            \n        }\n    }\n}\n"
  },
  {
    "path": "MarvelTests/CharactersDelegateSpec.swift",
    "content": "//\n//  CharactersDelegateSpec.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 27/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport Foundation\nimport Quick\nimport Nimble\n@testable import Marvel\n\n\nclass CharactersDelegateMock: CharactersDelegate {\n    var didSelectRowTrigged = false\n    \n    func didSelectCharacter(at index: IndexPath) {\n        didSelectRowTrigged = true\n    }\n}\n\nclass CharactersDelegateSpec: QuickSpec {\n    override func spec() {\n        describe(\"CharactersDelegate\") {\n            \n            var controller: CharactersViewController!\n            var character: Marvel.Character!\n            \n            beforeEach {\n                let testBundle = Bundle(for: type(of: self))\n                let mockLoader = MockLoader(file: \"character\", in: testBundle)\n                character = (mockLoader?.map(to: Character.self))!\n                let apiMock = MarvelAPICallsMock(characters: [character])\n                \n                controller = Storyboard.Main.charactersViewControllerScene.viewController() as! CharactersViewController\n                \n                controller.apiManager = apiMock\n                \n                //Load view components\n                let _ = controller.view\n            }\n            \n            it(\"should have a valid datasource\") {\n                expect(controller.tableDelegate).toNot(beNil())\n            }\n            \n            it(\"should have a cell of expected height\") {\n                let indexPath = IndexPath(row: 0, section: 0)\n                let height = controller.tableDelegate!.tableView(controller.tableView, heightForRowAt: indexPath)\n                expect(height).to(equal(80))\n            }\n            \n            it(\"should call delegate on didSelectedRowAt\") {\n                let indexPath = IndexPath(row: 0, section: 0)\n                let charactersDelegateMock = CharactersDelegateMock()\n                controller.tableDelegate = CharactersTableDelegate(charactersDelegateMock)\n                expect(charactersDelegateMock.didSelectRowTrigged).to(beFalsy())\n                controller.tableDelegate!.tableView(controller.tableView, didSelectRowAt: indexPath)\n                expect(charactersDelegateMock.didSelectRowTrigged).to(beTruthy())\n            }\n            \n            \n            \n        }\n    }\n}\n"
  },
  {
    "path": "MarvelTests/CharactersViewControllerSpec.swift",
    "content": "//\n//  CharactersViewControllerSpec.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 27/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport Foundation\nimport Quick\nimport Nimble\n@testable import Marvel\n\nstruct MarvelAPICallsMock: MarvelAPICalls {\n    let characters: [Marvel.Character]\n    \n    func characters(query: String? = nil, completion: @escaping ([Marvel.Character]?) -> Void) {\n        completion(characters)\n    }\n}\n\nclass CharactersViewControllerSpec: QuickSpec {\n    override func spec() {\n        describe(\"CharactersViewController\") {\n            \n            var controller: CharactersViewController!\n            var apiMock: MarvelAPICalls!\n            beforeEach {\n                let testBundle = Bundle(for: type(of: self))\n                let mockLoader = MockLoader(file: \"character\", in: testBundle)\n                let character = (mockLoader?.map(to: Character.self))!\n                apiMock = MarvelAPICallsMock(characters: [character])\n                \n                controller = Storyboard.Main.charactersViewControllerScene.viewController() as! CharactersViewController\n                \n                controller.apiManager = apiMock\n                \n                //Load view components\n                let _ = controller.view\n            }\n            \n            it(\"should have expected props setup\") {\n                controller.viewDidLoad()\n                expect(controller.apiManager).toNot(beNil())\n                expect(controller.tableDatasource).toNot(beNil())\n                expect(controller.tableDelegate).toNot(beNil())\n                expect(controller.collectionDatasource).to(beNil())\n                expect(controller.collectionDelegate).to(beNil())\n                expect(controller.characters).toNot(beNil())\n                expect(controller.searchBar).toNot(beNil())\n                expect(controller.activityIndicator).toNot(beNil())\n                expect(controller.tableView).toNot(beNil())\n                expect(controller.collectionView).toNot(beNil())\n            }\n            \n            it(\"should use mock response on fetchCharacters\") {\n                controller.viewDidLoad()\n                let count = controller.tableDatasource?.items.count ?? 0\n                expect(count).toEventually(equal(1))\n            }\n            \n            it(\"should be able to display content as tableView\") {\n                controller.viewDidLoad()\n                controller.showAsTable(UIButton())\n                expect(controller.collectionView.isHidden).to(beTruthy())\n                expect(controller.tableView.isHidden).to(beFalsy())\n            }\n            \n            it(\"should be able to display content as collectionView\") {\n                controller.viewDidLoad()\n                controller.showAsGrid(UIButton())\n                expect(controller.tableView.isHidden).to(beTruthy())\n                expect(controller.collectionView.isHidden).to(beFalsy())\n            }\n            \n            context(\"Empty search\") {\n                \n                it(\"should not fetchCharacters when no searchTerm is provided\") {\n                    controller.searchBar.text = \"\"\n                    let searchBar = controller.searchBar\n                    controller.characters = []\n                    controller.searchBarSearchButtonClicked(searchBar!)\n                    expect(controller.characters.isEmpty).to(beTruthy())\n                }\n            }\n            \n            context(\"Not empty search\") {\n                \n                it(\"should fetchCharacters when searchTerm is provided\") {\n                    controller.searchBar.text = \"searchThis\"\n                    let searchBar = controller.searchBar\n                    controller.characters = []\n                    controller.searchBarSearchButtonClicked(searchBar!)\n                    expect(controller.characters.isEmpty).to(beFalsy())\n                }\n            }\n            \n            \n            it(\"should hide keyboard with click on searchbar cancel button\") {\n                 let searchBar = controller.searchBar!\n                searchBar.becomeFirstResponder()\n                controller.searchBarCancelButtonClicked(searchBar)\n                expect(searchBar.isFirstResponder).to(beFalsy())\n            }\n            \n            context(\"didSelectCharacter\") {\n                beforeEach {\n                    let navController: UINavigationController = Storyboard.Main.initialViewController()\n                    controller = navController.viewControllers.first as! CharactersViewController\n                    controller.apiManager = apiMock\n                    let _ = controller.view\n                    controller.viewDidLoad()\n                }\n                \n                it(\"should navigate do next controller when selecting a character\") {\n                    let indexPath = IndexPath(row: 0, section: 0)\n                    let controllerCounts =  controller.navigationController?.viewControllers.count\n                    expect(controllerCounts).to(equal(1))\n                    controller.didSelectCharacter(at: indexPath)\n                    expect(controller.navigationController?.viewControllers.count ?? 0)\n                        .toEventually(equal(2), timeout: 3)\n                }\n            }\n            \n        }\n    }\n}\n"
  },
  {
    "path": "MarvelTests/Info.plist",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE plist PUBLIC \"-//Apple//DTD PLIST 1.0//EN\" \"http://www.apple.com/DTDs/PropertyList-1.0.dtd\">\n<plist version=\"1.0\">\n<dict>\n\t<key>CFBundleDevelopmentRegion</key>\n\t<string>en</string>\n\t<key>CFBundleExecutable</key>\n\t<string>$(EXECUTABLE_NAME)</string>\n\t<key>CFBundleIdentifier</key>\n\t<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>\n\t<key>CFBundleInfoDictionaryVersion</key>\n\t<string>6.0</string>\n\t<key>CFBundleName</key>\n\t<string>$(PRODUCT_NAME)</string>\n\t<key>CFBundlePackageType</key>\n\t<string>BNDL</string>\n\t<key>CFBundleShortVersionString</key>\n\t<string>1.0</string>\n\t<key>CFBundleVersion</key>\n\t<string>1</string>\n</dict>\n</plist>\n"
  },
  {
    "path": "MarvelTests/MockLoader.swift",
    "content": "//\n//  MockLoader.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 26/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport Foundation\nimport ObjectMapper\n@testable import Marvel\n\nstruct MockLoader {\n    \n    let data: Data\n    let json: String\n    \n    init?(file: String, withExtension fileExt: String = \"json\", in bundle:Bundle = Bundle.main) {\n        guard let path = bundle.path(forResource: file, ofType: fileExt) else {\n            return nil\n        }\n        let pathURL = URL(fileURLWithPath: path)\n        do {\n            data = try Data(contentsOf: pathURL, options: .dataReadingMapped)\n            if let decoded = NSString(data: data, encoding: 0) as? String {\n                json = decoded\n            } else {\n                return nil\n            }\n        } catch{\n            return nil\n        }\n    }\n}\n\nextension MockLoader {\n    func map<T: Mappable>(to type: T.Type) -> T? {\n        return Mapper<T>().map(JSONString: json)\n    }\n    \n}\n"
  },
  {
    "path": "MarvelTests/ThumbImageSpec.swift",
    "content": "//\n//  ThumbImageSpec.swift\n//  Marvel\n//\n//  Created by Thiago Lioy on 26/11/16.\n//  Copyright © 2016 Thiago Lioy. All rights reserved.\n//\n\nimport Foundation\nimport Quick\nimport Nimble\n@testable import Marvel\n\nclass ThumbImageSpec: QuickSpec {\n    override func spec() {\n        describe(\"a thumbImage\") {\n            \n            var thumbImage = ThumbImage()\n            \n            it(\"should be able to create a chracter from json\") {\n                thumbImage.imageExtension = \"png\"\n                thumbImage.path = \"whatever\"\n                expect(thumbImage.fullPath()).to(equal(\"whatever.png\"))\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "MarvelTests/character.json",
    "content": "{\n    \"id\": 1011334,\n    \"name\": \"3-D Man\",\n    \"description\": \"\",\n    \"modified\": \"2014-04-29T14:18:17-0400\",\n    \"thumbnail\": {\n        \"path\": \"http://i.annihil.us/u/prod/marvel/i/mg/c/e0/535fecbbb9784\",\n        \"extension\": \"jpg\"\n    },\n    \"resourceURI\": \"http://gateway.marvel.com/v1/public/characters/1011334\",\n    \"comics\": {\n        \"available\": 11,\n        \"collectionURI\": \"http://gateway.marvel.com/v1/public/characters/1011334/comics\",\n        \"items\": [\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/comics/21366\",\n                  \"name\": \"Avengers: The Initiative (2007) #14\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/comics/24571\",\n                  \"name\": \"Avengers: The Initiative (2007) #14 (SPOTLIGHT VARIANT)\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/comics/21546\",\n                  \"name\": \"Avengers: The Initiative (2007) #15\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/comics/21741\",\n                  \"name\": \"Avengers: The Initiative (2007) #16\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/comics/21975\",\n                  \"name\": \"Avengers: The Initiative (2007) #17\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/comics/22299\",\n                  \"name\": \"Avengers: The Initiative (2007) #18\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/comics/22300\",\n                  \"name\": \"Avengers: The Initiative (2007) #18 (ZOMBIE VARIANT)\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/comics/22506\",\n                  \"name\": \"Avengers: The Initiative (2007) #19\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/comics/10223\",\n                  \"name\": \"Marvel Premiere (1972) #35\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/comics/10224\",\n                  \"name\": \"Marvel Premiere (1972) #36\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/comics/10225\",\n                  \"name\": \"Marvel Premiere (1972) #37\"\n                  }\n                  ],\n        \"returned\": 11\n    },\n    \"series\": {\n        \"available\": 2,\n        \"collectionURI\": \"http://gateway.marvel.com/v1/public/characters/1011334/series\",\n        \"items\": [\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/series/1945\",\n                  \"name\": \"Avengers: The Initiative (2007 - 2010)\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/series/2045\",\n                  \"name\": \"Marvel Premiere (1972 - 1981)\"\n                  }\n                  ],\n        \"returned\": 2\n    },\n    \"stories\": {\n        \"available\": 17,\n        \"collectionURI\": \"http://gateway.marvel.com/v1/public/characters/1011334/stories\",\n        \"items\": [\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/19947\",\n                  \"name\": \"Cover #19947\",\n                  \"type\": \"cover\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/19948\",\n                  \"name\": \"The 3-D Man!\",\n                  \"type\": \"interiorStory\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/19949\",\n                  \"name\": \"Cover #19949\",\n                  \"type\": \"cover\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/19950\",\n                  \"name\": \"The Devil's Music!\",\n                  \"type\": \"interiorStory\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/19951\",\n                  \"name\": \"Cover #19951\",\n                  \"type\": \"cover\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/19952\",\n                  \"name\": \"Code-Name:  The Cold Warrior!\",\n                  \"type\": \"interiorStory\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/47185\",\n                  \"name\": \"Avengers: The Initiative (2007) #14 - Int\",\n                  \"type\": \"interiorStory\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/47499\",\n                  \"name\": \"Avengers: The Initiative (2007) #15 - Int\",\n                  \"type\": \"interiorStory\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/47792\",\n                  \"name\": \"Avengers: The Initiative (2007) #16\",\n                  \"type\": \"cover\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/47793\",\n                  \"name\": \"Avengers: The Initiative (2007) #16 - Int\",\n                  \"type\": \"interiorStory\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/48362\",\n                  \"name\": \"Avengers: The Initiative (2007) #17 - Int\",\n                  \"type\": \"interiorStory\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/49104\",\n                  \"name\": \"Avengers: The Initiative (2007) #18 - Int\",\n                  \"type\": \"interiorStory\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/49106\",\n                  \"name\": \"Avengers: The Initiative (2007) #18, Zombie Variant - Int\",\n                  \"type\": \"interiorStory\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/49888\",\n                  \"name\": \"Avengers: The Initiative (2007) #19\",\n                  \"type\": \"cover\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/49889\",\n                  \"name\": \"Avengers: The Initiative (2007) #19 - Int\",\n                  \"type\": \"interiorStory\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/54371\",\n                  \"name\": \"Avengers: The Initiative (2007) #14, Spotlight Variant - Int\",\n                  \"type\": \"interiorStory\"\n                  },\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/96303\",\n                  \"name\": \"Deadpool (1997) #44\",\n                  \"type\": \"interiorStory\"\n                  }\n                  ],\n        \"returned\": 17\n    },\n    \"events\": {\n        \"available\": 1,\n        \"collectionURI\": \"http://gateway.marvel.com/v1/public/characters/1011334/events\",\n        \"items\": [\n                  {\n                  \"resourceURI\": \"http://gateway.marvel.com/v1/public/events/269\",\n                  \"name\": \"Secret Invasion\"\n                  }\n                  ],\n        \"returned\": 1\n    },\n    \"urls\": [\n             {\n             \"type\": \"detail\",\n             \"url\": \"http://marvel.com/characters/74/3-d_man?utm_campaign=apiRef&utm_source=c71376dc66cd17b7f74bfeed02a6b9c2\"\n             },\n             {\n             \"type\": \"wiki\",\n             \"url\": \"http://marvel.com/universe/3-D_Man_(Chandler)?utm_campaign=apiRef&utm_source=c71376dc66cd17b7f74bfeed02a6b9c2\"\n             },\n             {\n             \"type\": \"comiclink\",\n             \"url\": \"http://marvel.com/comics/characters/1011334/3-d_man?utm_campaign=apiRef&utm_source=c71376dc66cd17b7f74bfeed02a6b9c2\"\n             }\n             ]\n}\n"
  },
  {
    "path": "MarvelTests/characters_response.json",
    "content": "{\n    \"code\": 200,\n    \"status\": \"Ok\",\n    \"copyright\": \"© 2016 MARVEL\",\n    \"attributionText\": \"Data provided by Marvel. © 2016 MARVEL\",\n    \"attributionHTML\": \"<a href=\\\"http://marvel.com\\\">Data provided by Marvel. © 2016 MARVEL</a>\",\n    \"etag\": \"e1cef8a6e120071d86387f876a7eb1c011a1b0ac\",\n    \"data\": {\n        \"offset\": 0,\n        \"limit\": 2,\n        \"total\": 1485,\n        \"count\": 2,\n        \"results\": [\n                    {\n                    \"id\": 1011334,\n                    \"name\": \"3-D Man\",\n                    \"description\": \"\",\n                    \"modified\": \"2014-04-29T14:18:17-0400\",\n                    \"thumbnail\": {\n                    \"path\": \"http://i.annihil.us/u/prod/marvel/i/mg/c/e0/535fecbbb9784\",\n                    \"extension\": \"jpg\"\n                    },\n                    \"resourceURI\": \"http://gateway.marvel.com/v1/public/characters/1011334\",\n                    \"comics\": {\n                    \"available\": 11,\n                    \"collectionURI\": \"http://gateway.marvel.com/v1/public/characters/1011334/comics\",\n                    \"items\": [\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/comics/21366\",\n                              \"name\": \"Avengers: The Initiative (2007) #14\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/comics/24571\",\n                              \"name\": \"Avengers: The Initiative (2007) #14 (SPOTLIGHT VARIANT)\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/comics/21546\",\n                              \"name\": \"Avengers: The Initiative (2007) #15\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/comics/21741\",\n                              \"name\": \"Avengers: The Initiative (2007) #16\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/comics/21975\",\n                              \"name\": \"Avengers: The Initiative (2007) #17\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/comics/22299\",\n                              \"name\": \"Avengers: The Initiative (2007) #18\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/comics/22300\",\n                              \"name\": \"Avengers: The Initiative (2007) #18 (ZOMBIE VARIANT)\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/comics/22506\",\n                              \"name\": \"Avengers: The Initiative (2007) #19\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/comics/10223\",\n                              \"name\": \"Marvel Premiere (1972) #35\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/comics/10224\",\n                              \"name\": \"Marvel Premiere (1972) #36\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/comics/10225\",\n                              \"name\": \"Marvel Premiere (1972) #37\"\n                              }\n                              ],\n                    \"returned\": 11\n                    },\n                    \"series\": {\n                    \"available\": 2,\n                    \"collectionURI\": \"http://gateway.marvel.com/v1/public/characters/1011334/series\",\n                    \"items\": [\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/series/1945\",\n                              \"name\": \"Avengers: The Initiative (2007 - 2010)\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/series/2045\",\n                              \"name\": \"Marvel Premiere (1972 - 1981)\"\n                              }\n                              ],\n                    \"returned\": 2\n                    },\n                    \"stories\": {\n                    \"available\": 17,\n                    \"collectionURI\": \"http://gateway.marvel.com/v1/public/characters/1011334/stories\",\n                    \"items\": [\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/19947\",\n                              \"name\": \"Cover #19947\",\n                              \"type\": \"cover\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/19948\",\n                              \"name\": \"The 3-D Man!\",\n                              \"type\": \"interiorStory\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/19949\",\n                              \"name\": \"Cover #19949\",\n                              \"type\": \"cover\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/19950\",\n                              \"name\": \"The Devil's Music!\",\n                              \"type\": \"interiorStory\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/19951\",\n                              \"name\": \"Cover #19951\",\n                              \"type\": \"cover\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/19952\",\n                              \"name\": \"Code-Name:  The Cold Warrior!\",\n                              \"type\": \"interiorStory\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/47185\",\n                              \"name\": \"Avengers: The Initiative (2007) #14 - Int\",\n                              \"type\": \"interiorStory\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/47499\",\n                              \"name\": \"Avengers: The Initiative (2007) #15 - Int\",\n                              \"type\": \"interiorStory\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/47792\",\n                              \"name\": \"Avengers: The Initiative (2007) #16\",\n                              \"type\": \"cover\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/47793\",\n                              \"name\": \"Avengers: The Initiative (2007) #16 - Int\",\n                              \"type\": \"interiorStory\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/48362\",\n                              \"name\": \"Avengers: The Initiative (2007) #17 - Int\",\n                              \"type\": \"interiorStory\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/49104\",\n                              \"name\": \"Avengers: The Initiative (2007) #18 - Int\",\n                              \"type\": \"interiorStory\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/49106\",\n                              \"name\": \"Avengers: The Initiative (2007) #18, Zombie Variant - Int\",\n                              \"type\": \"interiorStory\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/49888\",\n                              \"name\": \"Avengers: The Initiative (2007) #19\",\n                              \"type\": \"cover\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/49889\",\n                              \"name\": \"Avengers: The Initiative (2007) #19 - Int\",\n                              \"type\": \"interiorStory\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/54371\",\n                              \"name\": \"Avengers: The Initiative (2007) #14, Spotlight Variant - Int\",\n                              \"type\": \"interiorStory\"\n                              },\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/96303\",\n                              \"name\": \"Deadpool (1997) #44\",\n                              \"type\": \"interiorStory\"\n                              }\n                              ],\n                    \"returned\": 17\n                    },\n                    \"events\": {\n                    \"available\": 1,\n                    \"collectionURI\": \"http://gateway.marvel.com/v1/public/characters/1011334/events\",\n                    \"items\": [\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/events/269\",\n                              \"name\": \"Secret Invasion\"\n                              }\n                              ],\n                    \"returned\": 1\n                    },\n                    \"urls\": [\n                             {\n                             \"type\": \"detail\",\n                             \"url\": \"http://marvel.com/characters/74/3-d_man?utm_campaign=apiRef&utm_source=c71376dc66cd17b7f74bfeed02a6b9c2\"\n                             },\n                             {\n                             \"type\": \"wiki\",\n                             \"url\": \"http://marvel.com/universe/3-D_Man_(Chandler)?utm_campaign=apiRef&utm_source=c71376dc66cd17b7f74bfeed02a6b9c2\"\n                             },\n                             {\n                             \"type\": \"comiclink\",\n                             \"url\": \"http://marvel.com/comics/characters/1011334/3-d_man?utm_campaign=apiRef&utm_source=c71376dc66cd17b7f74bfeed02a6b9c2\"\n                             }\n                             ]\n                    },\n                    {\n                    \"id\": 1017100,\n                    \"name\": \"A-Bomb (HAS)\",\n                    \"description\": \"Rick Jones has been Hulk's best bud since day one, but now he's more than a friend...he's a teammate! Transformed by a Gamma energy explosion, A-Bomb's thick, armored skin is just as strong and powerful as it is blue. And when he curls into action, he uses it like a giant bowling ball of destruction! \",\n                    \"modified\": \"2013-09-18T15:54:04-0400\",\n                    \"thumbnail\": {\n                    \"path\": \"http://i.annihil.us/u/prod/marvel/i/mg/3/20/5232158de5b16\",\n                    \"extension\": \"jpg\"\n                    },\n                    \"resourceURI\": \"http://gateway.marvel.com/v1/public/characters/1017100\",\n                    \"comics\": {\n                    \"available\": 0,\n                    \"collectionURI\": \"http://gateway.marvel.com/v1/public/characters/1017100/comics\",\n                    \"items\": [],\n                    \"returned\": 0\n                    },\n                    \"series\": {\n                    \"available\": 0,\n                    \"collectionURI\": \"http://gateway.marvel.com/v1/public/characters/1017100/series\",\n                    \"items\": [],\n                    \"returned\": 0\n                    },\n                    \"stories\": {\n                    \"available\": 1,\n                    \"collectionURI\": \"http://gateway.marvel.com/v1/public/characters/1017100/stories\",\n                    \"items\": [\n                              {\n                              \"resourceURI\": \"http://gateway.marvel.com/v1/public/stories/105929\",\n                              \"name\": \"cover from Free Comic Book Day 2013 (Avengers/Hulk) (2013) #1\",\n                              \"type\": \"cover\"\n                              }\n                              ],\n                    \"returned\": 1\n                    },\n                    \"events\": {\n                    \"available\": 0,\n                    \"collectionURI\": \"http://gateway.marvel.com/v1/public/characters/1017100/events\",\n                    \"items\": [],\n                    \"returned\": 0\n                    },\n                    \"urls\": [\n                             {\n                             \"type\": \"detail\",\n                             \"url\": \"http://marvel.com/characters/76/a-bomb?utm_campaign=apiRef&utm_source=c71376dc66cd17b7f74bfeed02a6b9c2\"\n                             },\n                             {\n                             \"type\": \"comiclink\",\n                             \"url\": \"http://marvel.com/comics/characters/1017100/a-bomb_has?utm_campaign=apiRef&utm_source=c71376dc66cd17b7f74bfeed02a6b9c2\"\n                             }\n                             ]\n                    }\n                    ]\n    }\n}\n"
  },
  {
    "path": "Podfile",
    "content": "# Uncomment the next line to define a global platform for your project\nplatform :ios, '9.0'\n\ntarget 'Marvel' do\n  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks\n  use_frameworks!\n\n  plugin 'cocoapods-keys', {\n    :project => \"Marvel\",\n    :target => \"Marvel\",\n    :keys => [\n      \"MarvelApiKey\",\n      \"MarvelPrivateKey\"\n    ]}\n\n  # Pods for Marvel\n   pod 'SwiftGen'\n   pod 'RxSwift', '~> 3.0.0-beta.2'\n   pod 'Moya/RxSwift','~> 8.0.0-beta.1'\n   pod 'Moya-ObjectMapper/RxSwift', :git => 'https://github.com/ivanbruel/Moya-ObjectMapper'\n   pod 'CryptoSwift'\n   pod 'Dollar'\n   pod 'Kingfisher'\n   pod \"Reusable\"\nend\n\ntarget 'MarvelTests' do\n  use_frameworks!\n\n  pod 'Quick'\n  pod 'Nimble'\n  pod 'Fakery'\n  pod 'ObjectMapper'\n\nend\n\npost_install do |installer|\n  installer.pods_project.targets.each do |target|\n    target.build_configurations.each do |config|\n      config.build_settings['SWIFT_VERSION'] = '3.0'\n    end\n  end\nend\n"
  },
  {
    "path": "README.md",
    "content": "# Marvel App\n\n[![Twitter: @tplioy](https://img.shields.io/badge/contact-@tplioy-blue.svg?style=flat)](https://twitter.com/tplioy)\n[![License](http://img.shields.io/badge/license-MIT-green.svg?style=flat)](https://github.com/thiagolioy/marvelapp/blob/master/LICENSE)\n[![Build Status](https://img.shields.io/travis/thiagolioy/marvelapp/master.svg?style=flat)](https://travis-ci.org/thiagolioy/marvelapp)\n[![GitHub forks](https://img.shields.io/github/forks/thiagolioy/marvelapp.svg)](https://github.com/thiagolioy/marvelapp/network)\n[![GitHub stars](https://img.shields.io/github/stars/thiagolioy/marvelapp.svg)](https://github.com/thiagolioy/marvelapp/stargazers)\n[![GitHub issues](https://img.shields.io/github/issues/thiagolioy/marvelapp.svg)](https://github.com/thiagolioy/marvelapp/issues)\n\n-------\n<p align=\"center\">\n    <a href=\"#appearance\">Appearance</a> &bull;\n    <a href=\"#motivation\">Motivation</a> &bull;\n    <a href=\"#posts\">Posts</a> &bull;\n    <a href=\"#installation\">Installation</a>\n</p>\n-------\n\n## Appearance\n\n<h3 align=\"center\">\n  <img src=\"assets/marvel_screens.png\" alt=\"Marvel Screens\" />\n</h3>\n\n## Motivation\n\nThis repository supports a series of posts that will show how to create an iOS app from scratch, using many different pods and tools that will make your life easier. The project will have Marvel's theme and use its [API](https://developer.marvel.com). You can usually find this information elsewhere but it is usually splitted in different unrelated tutorials, my approach here is to convey all within a single project\n\n\n\n## Posts\n\nCreating a Marvel iOS App from scratch..\n\n- [Part 1 | Tools, pods, tricks of the trade and more](https://medium.com/cocoaacademymag/creating-a-ios-app-from-scratch-tools-pods-tricks-of-the-trade-and-more-part-1-a0a3f18fbd13#.fu8u4puxu)\n- [Part 2 | Tests, coverage and more](https://medium.com/cocoaacademymag/creating-a-ios-app-from-scratch-part-2-tests-coverage-and-more-73b94178b695#.4s4omxm48)\n- [Part 3 | Travis, Danger and Fastlane](https://medium.com/cocoaacademymag/creating-a-ios-app-from-scratch-part-3-travis-danger-and-fastlane-8ac91a003c95#.ii2fy9oc5)\n- [Part 4 | Sketch for developers](https://medium.com/cocoaacademymag/creating-a-marvel-ios-app-from-scratch-part-4-sketch-for-developers-2344a221482a#.kr3lhhobz)\n\nOther posts built upon Marvel's iOS App..\n\n- [Migrating a Marvel's App to view code!](https://medium.com/cocoaacademymag/migrating-an-app-to-view-code-ffe3f1510408#.jwzemxaqa)\n- [Testing Marvel's View Code project .. With 100 % Code coverage !!](https://medium.com/cocoaacademymag/testing-marvels-view-code-project-with-100-code-coverage-23c55de4053b#.j16lslb7k)\n\n- [Marvel iOS App! Favoriting a character with View Code, Realm & RxSwift ..](https://medium.com/cocoaacademymag/marvel-ios-app-favoriting-a-character-with-view-code-realm-rxswift-e43b187c0f8e#.dd6bmjkil)\n\n- [Architecture Thoughts: Migrating Marvel's iOS App to ReSwift](https://medium.com/cocoaacademymag/architecture-thoughts-migrating-marvels-ios-app-to-reswift-ef7f20e84e60#.nl0b3aizp)\n\n\n\n\n\n\n## Installation\n\nThis project uses [Bundler](http://bundler.io) and [CocoaPods](https://cocoapods.org). All you need to setup it properly is:\n```\nbundle\nbundle exec pod install\n```\n\n## Tests And Coverage\n\nYou can run the tests any time. All your need to do is:\n```\nbundle exec fastlane test\n```\n\n## License\nThis project is licensed under the terms of the MIT license. See the LICENSE file.\n"
  },
  {
    "path": "coverage/AppDelegate.swift.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html>\n<head>\n<title>AppDelegate.swift - Slather</title>\n<link href=\"slather.css\" media=\"all\" rel=\"stylesheet\">\n</head>\n<body>\n<header><div class=\"row\"><a href=\"index.html\"><img src=\"logo.jpg\" alt=\"Slather logo\"></a></div></header><div class=\"row\"><div id=\"reports\">\n<h2 class=\"cov_title\">\n<span>Coverage for \"AppDelegate.swift\" : </span><span class=\"cov_high\">100.00%</span>\n</h2>\n<h4 class=\"cov_subtitle\">(4 of 4 relevant lines covered)</h4>\n<h4 class=\"cov_filepath\">Marvel/AppDelegate/AppDelegate.swift</h4>\n<table class=\"source_code\">\n<tr class=\"never\">\n<td class=\"num\">1</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">2</td>\n<td class=\"src\"><pre><code class=\"objc\">//  AppDelegate.swift</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">3</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Marvel</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">4</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">5</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Created by Thiago Lioy on 14/11/16.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">6</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Copyright &#65533;&#65533; 2016 Thiago Lioy. All rights reserved.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">7</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">8</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">9</td>\n<td class=\"src\"><pre><code class=\"objc\">import UIKit</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">10</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">11</td>\n<td class=\"src\"><pre><code class=\"objc\">@UIApplicationMain</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">12</td>\n<td class=\"src\"><pre><code class=\"objc\">class AppDelegate: UIResponder, UIApplicationDelegate {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">13</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">14</td>\n<td class=\"src\"><pre><code class=\"objc\">    var window: UIWindow?</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">15</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">16</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">17</td>\n<td class=\"src\"><pre><code class=\"objc\">    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -&gt; Bool {</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">18</td>\n<td class=\"src\"><pre><code class=\"objc\">        // Override point for customization after application launch.</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">19</td>\n<td class=\"src\"><pre><code class=\"objc\">        return true</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">20</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">21</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">22</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">23</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">24</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n</table>\n</div></div>\n<footer><div class=\"row\">\n<p><a href=\"https://github.com/SlatherOrg/slather\">Fork me on Github</a></p>\n<p>&copy; 2016 Slather</p>\n</div></footer><script src=\"highlight.pack.js\"></script><script>hljs.initHighlightingOnLoad();</script>\n</body>\n</html>\n"
  },
  {
    "path": "coverage/Character.swift.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html>\n<head>\n<title>Character.swift - Slather</title>\n<link href=\"slather.css\" media=\"all\" rel=\"stylesheet\">\n</head>\n<body>\n<header><div class=\"row\"><a href=\"index.html\"><img src=\"logo.jpg\" alt=\"Slather logo\"></a></div></header><div class=\"row\"><div id=\"reports\">\n<h2 class=\"cov_title\">\n<span>Coverage for \"Character.swift\" : </span><span class=\"cov_high\">100.00%</span>\n</h2>\n<h4 class=\"cov_subtitle\">(8 of 8 relevant lines covered)</h4>\n<h4 class=\"cov_filepath\">Marvel/Models/Character.swift</h4>\n<table class=\"source_code\">\n<tr class=\"never\">\n<td class=\"num\">1</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">2</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Character.swift</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">3</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Marvel</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">4</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">5</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Created by Thiago Lioy on 14/11/16.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">6</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Copyright &#65533;&#65533; 2016 Thiago Lioy. All rights reserved.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">7</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">8</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">9</td>\n<td class=\"src\"><pre><code class=\"objc\">import Foundation</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">10</td>\n<td class=\"src\"><pre><code class=\"objc\">import ObjectMapper</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">11</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">12</td>\n<td class=\"src\"><pre><code class=\"objc\">struct Character {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">13</td>\n<td class=\"src\"><pre><code class=\"objc\">    var id: Int = 0</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">14</td>\n<td class=\"src\"><pre><code class=\"objc\">    var name: String = \"\"</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">15</td>\n<td class=\"src\"><pre><code class=\"objc\">    var thumImage: ThumbImage?</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">16</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">17</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">18</td>\n<td class=\"src\"><pre><code class=\"objc\">extension Character: Mappable {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">19</td>\n<td class=\"src\"><pre><code class=\"objc\">    init?(map: Map) {</code></pre></td>\n<td class=\"coverage\">26x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">20</td>\n<td class=\"src\"><pre><code class=\"objc\">        </code></pre></td>\n<td class=\"coverage\">26x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">21</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">26x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">22</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">23</td>\n<td class=\"src\"><pre><code class=\"objc\">    mutating func mapping(map: Map) {</code></pre></td>\n<td class=\"coverage\">26x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">24</td>\n<td class=\"src\"><pre><code class=\"objc\">        id    &lt;- map[\"id\"]</code></pre></td>\n<td class=\"coverage\">26x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">25</td>\n<td class=\"src\"><pre><code class=\"objc\">        name    &lt;- map[\"name\"]</code></pre></td>\n<td class=\"coverage\">26x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">26</td>\n<td class=\"src\"><pre><code class=\"objc\">        thumImage    &lt;- map[\"thumbnail\"]</code></pre></td>\n<td class=\"coverage\">26x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">27</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">26x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">28</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n</table>\n</div></div>\n<footer><div class=\"row\">\n<p><a href=\"https://github.com/SlatherOrg/slather\">Fork me on Github</a></p>\n<p>&copy; 2016 Slather</p>\n</div></footer><script src=\"highlight.pack.js\"></script><script>hljs.initHighlightingOnLoad();</script>\n</body>\n</html>\n"
  },
  {
    "path": "coverage/CharacterCollectionCell.swift.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html>\n<head>\n<title>CharacterCollectionCell.swift - Slather</title>\n<link href=\"slather.css\" media=\"all\" rel=\"stylesheet\">\n</head>\n<body>\n<header><div class=\"row\"><a href=\"index.html\"><img src=\"logo.jpg\" alt=\"Slather logo\"></a></div></header><div class=\"row\"><div id=\"reports\">\n<h2 class=\"cov_title\">\n<span>Coverage for \"CharacterCollectionCell.swift\" : </span><span class=\"cov_high\">90.00%</span>\n</h2>\n<h4 class=\"cov_subtitle\">(9 of 10 relevant lines covered)</h4>\n<h4 class=\"cov_filepath\">Marvel/Cells/CharacterCollectionCell.swift</h4>\n<table class=\"source_code\">\n<tr class=\"never\">\n<td class=\"num\">1</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">2</td>\n<td class=\"src\"><pre><code class=\"objc\">//  CharacterCollectionCell.swift</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">3</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Marvel</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">4</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">5</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Created by Thiago Lioy on 20/11/16.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">6</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Copyright &#65533;&#65533; 2016 Thiago Lioy. All rights reserved.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">7</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">8</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">9</td>\n<td class=\"src\"><pre><code class=\"objc\">import UIKit</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">10</td>\n<td class=\"src\"><pre><code class=\"objc\">import Reusable</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">11</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">12</td>\n<td class=\"src\"><pre><code class=\"objc\">final class CharacterCollectionCell: UICollectionViewCell, NibReusable {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">13</td>\n<td class=\"src\"><pre><code class=\"objc\">    @IBOutlet weak var name: UILabel!</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">14</td>\n<td class=\"src\"><pre><code class=\"objc\">    @IBOutlet weak var thumb: UIImageView!</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">15</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">16</td>\n<td class=\"src\"><pre><code class=\"objc\">    static let paddingBtwCells = CGFloat(10)</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">17</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">18</td>\n<td class=\"src\"><pre><code class=\"objc\">    static func size(for parentWidth: CGFloat) -&gt; CGSize {</code></pre></td>\n<td class=\"coverage\">4x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">19</td>\n<td class=\"src\"><pre><code class=\"objc\">        let numberOfCells = CGFloat(2)</code></pre></td>\n<td class=\"coverage\">4x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">20</td>\n<td class=\"src\"><pre><code class=\"objc\">        let totalPadding = CGFloat(numberOfCells+1) * paddingBtwCells</code></pre></td>\n<td class=\"coverage\">4x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">21</td>\n<td class=\"src\"><pre><code class=\"objc\">        let width = (parentWidth - totalPadding) / numberOfCells</code></pre></td>\n<td class=\"coverage\">4x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">22</td>\n<td class=\"src\"><pre><code class=\"objc\">        return CGSize(width: width, height: width)</code></pre></td>\n<td class=\"coverage\">4x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">23</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">4x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">24</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">25</td>\n<td class=\"src\"><pre><code class=\"objc\">    func setup(item: Character) {</code></pre></td>\n<td class=\"coverage\">2x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">26</td>\n<td class=\"src\"><pre><code class=\"objc\">        name.text = item.name</code></pre></td>\n<td class=\"coverage\">2x</td>\n</tr>\n<tr class=\"missed\">\n<td class=\"num\">27</td>\n<td class=\"src\"><pre><code class=\"objc\">        thumb.download(image: item.thumImage?.fullPath() ?? \"\")</code></pre></td>\n<td class=\"coverage\">!</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">28</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">2x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">29</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n</table>\n</div></div>\n<footer><div class=\"row\">\n<p><a href=\"https://github.com/SlatherOrg/slather\">Fork me on Github</a></p>\n<p>&copy; 2016 Slather</p>\n</div></footer><script src=\"highlight.pack.js\"></script><script>hljs.initHighlightingOnLoad();</script>\n</body>\n</html>\n"
  },
  {
    "path": "coverage/CharacterTableCell.swift.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html>\n<head>\n<title>CharacterTableCell.swift - Slather</title>\n<link href=\"slather.css\" media=\"all\" rel=\"stylesheet\">\n</head>\n<body>\n<header><div class=\"row\"><a href=\"index.html\"><img src=\"logo.jpg\" alt=\"Slather logo\"></a></div></header><div class=\"row\"><div id=\"reports\">\n<h2 class=\"cov_title\">\n<span>Coverage for \"CharacterTableCell.swift\" : </span><span class=\"cov_high\">85.71%</span>\n</h2>\n<h4 class=\"cov_subtitle\">(6 of 7 relevant lines covered)</h4>\n<h4 class=\"cov_filepath\">Marvel/Cells/CharacterTableCell.swift</h4>\n<table class=\"source_code\">\n<tr class=\"never\">\n<td class=\"num\">1</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">2</td>\n<td class=\"src\"><pre><code class=\"objc\">//  CharacterTableCell.swift</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">3</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Marvel</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">4</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">5</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Created by Thiago Lioy on 15/11/16.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">6</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Copyright &#65533;&#65533; 2016 Thiago Lioy. All rights reserved.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">7</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">8</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">9</td>\n<td class=\"src\"><pre><code class=\"objc\">import UIKit</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">10</td>\n<td class=\"src\"><pre><code class=\"objc\">import Reusable</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">11</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">12</td>\n<td class=\"src\"><pre><code class=\"objc\">final class CharacterTableCell: UITableViewCell, NibReusable {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">13</td>\n<td class=\"src\"><pre><code class=\"objc\">    @IBOutlet weak var name: UILabel!</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">14</td>\n<td class=\"src\"><pre><code class=\"objc\">    @IBOutlet weak var thumb: UIImageView!</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">15</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">16</td>\n<td class=\"src\"><pre><code class=\"objc\">    static func height() -&gt; CGFloat {</code></pre></td>\n<td class=\"coverage\">33x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">17</td>\n<td class=\"src\"><pre><code class=\"objc\">        return 80</code></pre></td>\n<td class=\"coverage\">33x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">18</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">33x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">19</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">20</td>\n<td class=\"src\"><pre><code class=\"objc\">    func setup(item: Character) {</code></pre></td>\n<td class=\"coverage\">2x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">21</td>\n<td class=\"src\"><pre><code class=\"objc\">        name.text = item.name</code></pre></td>\n<td class=\"coverage\">2x</td>\n</tr>\n<tr class=\"missed\">\n<td class=\"num\">22</td>\n<td class=\"src\"><pre><code class=\"objc\">        thumb.download(image: item.thumImage?.fullPath() ?? \"\")</code></pre></td>\n<td class=\"coverage\">!</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">23</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">2x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">24</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n</table>\n</div></div>\n<footer><div class=\"row\">\n<p><a href=\"https://github.com/SlatherOrg/slather\">Fork me on Github</a></p>\n<p>&copy; 2016 Slather</p>\n</div></footer><script src=\"highlight.pack.js\"></script><script>hljs.initHighlightingOnLoad();</script>\n</body>\n</html>\n"
  },
  {
    "path": "coverage/CharacterViewController.swift.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html>\n<head>\n<title>CharacterViewController.swift - Slather</title>\n<link href=\"slather.css\" media=\"all\" rel=\"stylesheet\">\n</head>\n<body>\n<header><div class=\"row\"><a href=\"index.html\"><img src=\"logo.jpg\" alt=\"Slather logo\"></a></div></header><div class=\"row\"><div id=\"reports\">\n<h2 class=\"cov_title\">\n<span>Coverage for \"CharacterViewController.swift\" : </span><span class=\"cov_high\">100.00%</span>\n</h2>\n<h4 class=\"cov_subtitle\">(8 of 8 relevant lines covered)</h4>\n<h4 class=\"cov_filepath\">Marvel/Controllers/CharacterViewController.swift</h4>\n<table class=\"source_code\">\n<tr class=\"never\">\n<td class=\"num\">1</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">2</td>\n<td class=\"src\"><pre><code class=\"objc\">//  CharacterViewController.swift</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">3</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Marvel</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">4</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">5</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Created by Thiago Lioy on 14/11/16.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">6</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Copyright &#65533;&#65533; 2016 Thiago Lioy. All rights reserved.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">7</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">8</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">9</td>\n<td class=\"src\"><pre><code class=\"objc\">import UIKit</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">10</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">11</td>\n<td class=\"src\"><pre><code class=\"objc\">final class CharacterViewController: UIViewController {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">12</td>\n<td class=\"src\"><pre><code class=\"objc\">    @IBOutlet weak var name: UILabel!</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">13</td>\n<td class=\"src\"><pre><code class=\"objc\">    @IBOutlet weak var image: UIImageView!</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">14</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">15</td>\n<td class=\"src\"><pre><code class=\"objc\">    var character: Character?</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">16</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">17</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">18</td>\n<td class=\"src\"><pre><code class=\"objc\">extension CharacterViewController {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">19</td>\n<td class=\"src\"><pre><code class=\"objc\">    override func viewDidLoad() {</code></pre></td>\n<td class=\"coverage\">4x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">20</td>\n<td class=\"src\"><pre><code class=\"objc\">        super.viewDidLoad()</code></pre></td>\n<td class=\"coverage\">4x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">21</td>\n<td class=\"src\"><pre><code class=\"objc\">        setupView()</code></pre></td>\n<td class=\"coverage\">4x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">22</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">4x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">23</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">24</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">25</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">26</td>\n<td class=\"src\"><pre><code class=\"objc\">extension CharacterViewController {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">27</td>\n<td class=\"src\"><pre><code class=\"objc\">    func setupView() {</code></pre></td>\n<td class=\"coverage\">4x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">28</td>\n<td class=\"src\"><pre><code class=\"objc\">        name.text = character?.name ?? \"\"</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">29</td>\n<td class=\"src\"><pre><code class=\"objc\">        image.download(image: character?.thumImage?.fullPath() ?? \"\")</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">30</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">4x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">31</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n</table>\n</div></div>\n<footer><div class=\"row\">\n<p><a href=\"https://github.com/SlatherOrg/slather\">Fork me on Github</a></p>\n<p>&copy; 2016 Slather</p>\n</div></footer><script src=\"highlight.pack.js\"></script><script>hljs.initHighlightingOnLoad();</script>\n</body>\n</html>\n"
  },
  {
    "path": "coverage/CharactersCollectionDatasource.swift.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html>\n<head>\n<title>CharactersCollectionDatasource.swift - Slather</title>\n<link href=\"slather.css\" media=\"all\" rel=\"stylesheet\">\n</head>\n<body>\n<header><div class=\"row\"><a href=\"index.html\"><img src=\"logo.jpg\" alt=\"Slather logo\"></a></div></header><div class=\"row\"><div id=\"reports\">\n<h2 class=\"cov_title\">\n<span>Coverage for \"CharactersCollectionDatasource.swift\" : </span><span class=\"cov_high\">100.00%</span>\n</h2>\n<h4 class=\"cov_subtitle\">(27 of 27 relevant lines covered)</h4>\n<h4 class=\"cov_filepath\">Marvel/Datasources/CharactersCollectionDatasource.swift</h4>\n<table class=\"source_code\">\n<tr class=\"never\">\n<td class=\"num\">1</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">2</td>\n<td class=\"src\"><pre><code class=\"objc\">//  CharactersCollectionDatasource.swift</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">3</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Marvel</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">4</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">5</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Created by Thiago Lioy on 20/11/16.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">6</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Copyright &#65533;&#65533; 2016 Thiago Lioy. All rights reserved.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">7</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">8</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">9</td>\n<td class=\"src\"><pre><code class=\"objc\">import UIKit</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">10</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">11</td>\n<td class=\"src\"><pre><code class=\"objc\">final class CharactersCollectionDatasource: NSObject, ItemsCollectionViewDatasource {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">12</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">13</td>\n<td class=\"src\"><pre><code class=\"objc\">    var items:[Character] = []</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">14</td>\n<td class=\"src\"><pre><code class=\"objc\">    weak var collectionView: UICollectionView?</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">15</td>\n<td class=\"src\"><pre><code class=\"objc\">    weak var delegate: UICollectionViewDelegate?</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">16</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">17</td>\n<td class=\"src\"><pre><code class=\"objc\">    required init(items: [Character], collectionView: UICollectionView, delegate: UICollectionViewDelegate) {</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">18</td>\n<td class=\"src\"><pre><code class=\"objc\">        self.items = items</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">19</td>\n<td class=\"src\"><pre><code class=\"objc\">        self.collectionView = collectionView</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">20</td>\n<td class=\"src\"><pre><code class=\"objc\">        self.delegate = delegate</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">21</td>\n<td class=\"src\"><pre><code class=\"objc\">        super.init()</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">22</td>\n<td class=\"src\"><pre><code class=\"objc\">        collectionView.register(cellType: CharacterCollectionCell.self)</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">23</td>\n<td class=\"src\"><pre><code class=\"objc\">        self.setupCollectionView()</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">24</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">25</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">26</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">27</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">28</td>\n<td class=\"src\"><pre><code class=\"objc\">    func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -&gt; Int {</code></pre></td>\n<td class=\"coverage\">3x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">29</td>\n<td class=\"src\"><pre><code class=\"objc\">        return self.items.count</code></pre></td>\n<td class=\"coverage\">3x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">30</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">3x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">31</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">32</td>\n<td class=\"src\"><pre><code class=\"objc\">    func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -&gt; UICollectionViewCell {</code></pre></td>\n<td class=\"coverage\">2x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">33</td>\n<td class=\"src\"><pre><code class=\"objc\">        let cell = collectionView.dequeueReusableCell(for: indexPath, cellType: CharacterCollectionCell.self)</code></pre></td>\n<td class=\"coverage\">2x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">34</td>\n<td class=\"src\"><pre><code class=\"objc\">        let character = self.items[indexPath.row]</code></pre></td>\n<td class=\"coverage\">2x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">35</td>\n<td class=\"src\"><pre><code class=\"objc\">        cell.setup(item: character)</code></pre></td>\n<td class=\"coverage\">2x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">36</td>\n<td class=\"src\"><pre><code class=\"objc\">        return cell</code></pre></td>\n<td class=\"coverage\">2x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">37</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">2x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">38</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">39</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">40</td>\n<td class=\"src\"><pre><code class=\"objc\">class CharactersCollectionDelegate: NSObject, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">41</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">42</td>\n<td class=\"src\"><pre><code class=\"objc\">    let delegate: CharactersDelegate</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">43</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">44</td>\n<td class=\"src\"><pre><code class=\"objc\">    init(_ delegate: CharactersDelegate) {</code></pre></td>\n<td class=\"coverage\">9x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">45</td>\n<td class=\"src\"><pre><code class=\"objc\">        self.delegate = delegate</code></pre></td>\n<td class=\"coverage\">9x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">46</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">9x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">47</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">48</td>\n<td class=\"src\"><pre><code class=\"objc\">    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">49</td>\n<td class=\"src\"><pre><code class=\"objc\">        delegate.didSelectCharacter(at: indexPath)</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">50</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">51</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">52</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">53</td>\n<td class=\"src\"><pre><code class=\"objc\">    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -&gt; CGSize {</code></pre></td>\n<td class=\"coverage\">3x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">54</td>\n<td class=\"src\"><pre><code class=\"objc\">        let width = collectionView.bounds.size.width</code></pre></td>\n<td class=\"coverage\">3x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">55</td>\n<td class=\"src\"><pre><code class=\"objc\">        return CharacterCollectionCell.size(for: width)</code></pre></td>\n<td class=\"coverage\">3x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">56</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">3x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">57</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n</table>\n</div></div>\n<footer><div class=\"row\">\n<p><a href=\"https://github.com/SlatherOrg/slather\">Fork me on Github</a></p>\n<p>&copy; 2016 Slather</p>\n</div></footer><script src=\"highlight.pack.js\"></script><script>hljs.initHighlightingOnLoad();</script>\n</body>\n</html>\n"
  },
  {
    "path": "coverage/CharactersDatasource.swift.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html>\n<head>\n<title>CharactersDatasource.swift - Slather</title>\n<link href=\"slather.css\" media=\"all\" rel=\"stylesheet\">\n</head>\n<body>\n<header><div class=\"row\"><a href=\"index.html\"><img src=\"logo.jpg\" alt=\"Slather logo\"></a></div></header><div class=\"row\"><div id=\"reports\">\n<h2 class=\"cov_title\">\n<span>Coverage for \"CharactersDatasource.swift\" : </span><span class=\"cov_high\">100.00%</span>\n</h2>\n<h4 class=\"cov_subtitle\">(26 of 26 relevant lines covered)</h4>\n<h4 class=\"cov_filepath\">Marvel/Datasources/CharactersDatasource.swift</h4>\n<table class=\"source_code\">\n<tr class=\"never\">\n<td class=\"num\">1</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">2</td>\n<td class=\"src\"><pre><code class=\"objc\">//  CharactersDatasource.swift</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">3</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Marvel</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">4</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">5</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Created by Thiago Lioy on 17/11/16.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">6</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Copyright &#65533;&#65533; 2016 Thiago Lioy. All rights reserved.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">7</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">8</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">9</td>\n<td class=\"src\"><pre><code class=\"objc\">import UIKit</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">10</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">11</td>\n<td class=\"src\"><pre><code class=\"objc\">final class CharactersDatasource: NSObject, ItemsTableViewDatasource {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">12</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">13</td>\n<td class=\"src\"><pre><code class=\"objc\">    var items:[Character] = []</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">14</td>\n<td class=\"src\"><pre><code class=\"objc\">    weak var tableView: UITableView?</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">15</td>\n<td class=\"src\"><pre><code class=\"objc\">    weak var delegate: UITableViewDelegate?</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">16</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">17</td>\n<td class=\"src\"><pre><code class=\"objc\">    required init(items: [Character], tableView: UITableView, delegate: UITableViewDelegate) {</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">18</td>\n<td class=\"src\"><pre><code class=\"objc\">        self.items = items</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">19</td>\n<td class=\"src\"><pre><code class=\"objc\">        self.tableView = tableView</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">20</td>\n<td class=\"src\"><pre><code class=\"objc\">        self.delegate = delegate</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">21</td>\n<td class=\"src\"><pre><code class=\"objc\">        super.init()</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">22</td>\n<td class=\"src\"><pre><code class=\"objc\">        tableView.register(cellType: CharacterTableCell.self)</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">23</td>\n<td class=\"src\"><pre><code class=\"objc\">        self.setupTableView()</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">24</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">25</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">26</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">27</td>\n<td class=\"src\"><pre><code class=\"objc\">    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -&gt; Int {</code></pre></td>\n<td class=\"coverage\">31x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">28</td>\n<td class=\"src\"><pre><code class=\"objc\">        return self.items.count</code></pre></td>\n<td class=\"coverage\">31x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">29</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">31x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">30</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">31</td>\n<td class=\"src\"><pre><code class=\"objc\">    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -&gt; UITableViewCell {</code></pre></td>\n<td class=\"coverage\">2x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">32</td>\n<td class=\"src\"><pre><code class=\"objc\">        let cell = tableView.dequeueReusableCell(for: indexPath, cellType: CharacterTableCell.self)</code></pre></td>\n<td class=\"coverage\">2x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">33</td>\n<td class=\"src\"><pre><code class=\"objc\">        let character = self.items[indexPath.row]</code></pre></td>\n<td class=\"coverage\">2x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">34</td>\n<td class=\"src\"><pre><code class=\"objc\">        cell.setup(item: character)</code></pre></td>\n<td class=\"coverage\">2x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">35</td>\n<td class=\"src\"><pre><code class=\"objc\">        return cell</code></pre></td>\n<td class=\"coverage\">2x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">36</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">2x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">37</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">38</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">39</td>\n<td class=\"src\"><pre><code class=\"objc\">class CharactersTableDelegate: NSObject, UITableViewDelegate {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">40</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">41</td>\n<td class=\"src\"><pre><code class=\"objc\">    let delegate: CharactersDelegate</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">42</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">43</td>\n<td class=\"src\"><pre><code class=\"objc\">    init(_ delegate: CharactersDelegate) {</code></pre></td>\n<td class=\"coverage\">31x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">44</td>\n<td class=\"src\"><pre><code class=\"objc\">        self.delegate = delegate</code></pre></td>\n<td class=\"coverage\">31x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">45</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">31x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">46</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">47</td>\n<td class=\"src\"><pre><code class=\"objc\">    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -&gt; CGFloat {</code></pre></td>\n<td class=\"coverage\">33x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">48</td>\n<td class=\"src\"><pre><code class=\"objc\">        return CharacterTableCell.height()</code></pre></td>\n<td class=\"coverage\">33x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">49</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">33x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">50</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">51</td>\n<td class=\"src\"><pre><code class=\"objc\">    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">52</td>\n<td class=\"src\"><pre><code class=\"objc\">        delegate.didSelectCharacter(at: indexPath)</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">53</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">54</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n</table>\n</div></div>\n<footer><div class=\"row\">\n<p><a href=\"https://github.com/SlatherOrg/slather\">Fork me on Github</a></p>\n<p>&copy; 2016 Slather</p>\n</div></footer><script src=\"highlight.pack.js\"></script><script>hljs.initHighlightingOnLoad();</script>\n</body>\n</html>\n"
  },
  {
    "path": "coverage/CharactersViewController.swift.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html>\n<head>\n<title>CharactersViewController.swift - Slather</title>\n<link href=\"slather.css\" media=\"all\" rel=\"stylesheet\">\n</head>\n<body>\n<header><div class=\"row\"><a href=\"index.html\"><img src=\"logo.jpg\" alt=\"Slather logo\"></a></div></header><div class=\"row\"><div id=\"reports\">\n<h2 class=\"cov_title\">\n<span>Coverage for \"CharactersViewController.swift\" : </span><span class=\"cov_high\">95.00%</span>\n</h2>\n<h4 class=\"cov_subtitle\">(57 of 60 relevant lines covered)</h4>\n<h4 class=\"cov_filepath\">Marvel/Controllers/CharactersViewController.swift</h4>\n<table class=\"source_code\">\n<tr class=\"never\">\n<td class=\"num\">1</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">2</td>\n<td class=\"src\"><pre><code class=\"objc\">//  CharactersViewController.swift</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">3</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Marvel</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">4</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">5</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Created by Thiago Lioy on 14/11/16.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">6</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Copyright &#65533;&#65533; 2016 Thiago Lioy. All rights reserved.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">7</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">8</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">9</td>\n<td class=\"src\"><pre><code class=\"objc\">import UIKit</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">10</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">11</td>\n<td class=\"src\"><pre><code class=\"objc\">protocol CharactersDelegate {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">12</td>\n<td class=\"src\"><pre><code class=\"objc\">    func didSelectCharacter(at index: IndexPath)</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">13</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">14</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">15</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">16</td>\n<td class=\"src\"><pre><code class=\"objc\">final class CharactersViewController: UIViewController {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">17</td>\n<td class=\"src\"><pre><code class=\"objc\">    var apiManager: MarvelAPICalls = MarvelAPIManager()</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">18</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">19</td>\n<td class=\"src\"><pre><code class=\"objc\">    var tableDatasource: CharactersDatasource?</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">20</td>\n<td class=\"src\"><pre><code class=\"objc\">    var tableDelegate: CharactersTableDelegate?</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">21</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">22</td>\n<td class=\"src\"><pre><code class=\"objc\">    var collectionDatasource: CharactersCollectionDatasource?</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">23</td>\n<td class=\"src\"><pre><code class=\"objc\">    var collectionDelegate: CharactersCollectionDelegate?</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">24</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">25</td>\n<td class=\"src\"><pre><code class=\"objc\">    var characters: [Character] = []</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">26</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">27</td>\n<td class=\"src\"><pre><code class=\"objc\">    @IBOutlet weak var searchBar: UISearchBar!</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">28</td>\n<td class=\"src\"><pre><code class=\"objc\">    @IBOutlet weak var activityIndicator: UIActivityIndicatorView!</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">29</td>\n<td class=\"src\"><pre><code class=\"objc\">    @IBOutlet weak var tableView: UITableView!</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">30</td>\n<td class=\"src\"><pre><code class=\"objc\">    @IBOutlet weak var collectionView: UICollectionView!</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">31</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">32</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">33</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">34</td>\n<td class=\"src\"><pre><code class=\"objc\">extension CharactersViewController {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">35</td>\n<td class=\"src\"><pre><code class=\"objc\">    override func viewDidLoad() {</code></pre></td>\n<td class=\"coverage\">29x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">36</td>\n<td class=\"src\"><pre><code class=\"objc\">        super.viewDidLoad()</code></pre></td>\n<td class=\"coverage\">29x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">37</td>\n<td class=\"src\"><pre><code class=\"objc\">        setupSearchBar()</code></pre></td>\n<td class=\"coverage\">29x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">38</td>\n<td class=\"src\"><pre><code class=\"objc\">        fetchCharacters()</code></pre></td>\n<td class=\"coverage\">29x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">39</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">29x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">40</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">41</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">42</td>\n<td class=\"src\"><pre><code class=\"objc\">extension CharactersViewController {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">43</td>\n<td class=\"src\"><pre><code class=\"objc\">    func fetchCharacters(for query: String? = nil) {</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">44</td>\n<td class=\"src\"><pre><code class=\"objc\">        tableView.isHidden = true</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">45</td>\n<td class=\"src\"><pre><code class=\"objc\">        collectionView.isHidden = true</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">46</td>\n<td class=\"src\"><pre><code class=\"objc\">        activityIndicator.startAnimating()</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">47</td>\n<td class=\"src\"><pre><code class=\"objc\">        apiManager.characters(query: query) { characters in</code></pre></td>\n<td class=\"coverage\">29x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">48</td>\n<td class=\"src\"><pre><code class=\"objc\">            self.activityIndicator.stopAnimating()</code></pre></td>\n<td class=\"coverage\">29x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">49</td>\n<td class=\"src\"><pre><code class=\"objc\">            if let characters = characters {</code></pre></td>\n<td class=\"coverage\">29x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">50</td>\n<td class=\"src\"><pre><code class=\"objc\">                self.setupTableView(with: characters)</code></pre></td>\n<td class=\"coverage\">29x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">51</td>\n<td class=\"src\"><pre><code class=\"objc\">            }</code></pre></td>\n<td class=\"coverage\">29x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">52</td>\n<td class=\"src\"><pre><code class=\"objc\">        }</code></pre></td>\n<td class=\"coverage\">29x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">53</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">54</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">55</td>\n<td class=\"src\"><pre><code class=\"objc\">    func setupSearchBar() {</code></pre></td>\n<td class=\"coverage\">29x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">56</td>\n<td class=\"src\"><pre><code class=\"objc\">        self.searchBar.delegate = self</code></pre></td>\n<td class=\"coverage\">29x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">57</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">29x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">58</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">59</td>\n<td class=\"src\"><pre><code class=\"objc\">    func setupTableView(with characters: [Character]) {</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">60</td>\n<td class=\"src\"><pre><code class=\"objc\">        self.characters = characters</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">61</td>\n<td class=\"src\"><pre><code class=\"objc\">        tableView.isHidden = false</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">62</td>\n<td class=\"src\"><pre><code class=\"objc\">        collectionView.isHidden = true</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">63</td>\n<td class=\"src\"><pre><code class=\"objc\">        tableDelegate = CharactersTableDelegate(self)</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">64</td>\n<td class=\"src\"><pre><code class=\"objc\">        tableDatasource = CharactersDatasource(items: characters, tableView: self.tableView, delegate: tableDelegate!)</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">65</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">66</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">67</td>\n<td class=\"src\"><pre><code class=\"objc\">    func setupCollectionView(with characters: [Character]) {</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">68</td>\n<td class=\"src\"><pre><code class=\"objc\">        self.characters = characters</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">69</td>\n<td class=\"src\"><pre><code class=\"objc\">        collectionView.isHidden = false</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">70</td>\n<td class=\"src\"><pre><code class=\"objc\">        tableView.isHidden = true</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">71</td>\n<td class=\"src\"><pre><code class=\"objc\">        collectionDelegate = CharactersCollectionDelegate(self)</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">72</td>\n<td class=\"src\"><pre><code class=\"objc\">        collectionDatasource = CharactersCollectionDatasource(items: characters, collectionView: self.collectionView, delegate: collectionDelegate!)</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">73</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">74</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">75</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">76</td>\n<td class=\"src\"><pre><code class=\"objc\">extension CharactersViewController {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">77</td>\n<td class=\"src\"><pre><code class=\"objc\">    @IBAction func showAsGrid(_ sender: UIButton) {</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">78</td>\n<td class=\"src\"><pre><code class=\"objc\">        setupCollectionView(with: characters)</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">79</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">80</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">81</td>\n<td class=\"src\"><pre><code class=\"objc\">    @IBAction func showAsTable(_ sender: UIButton) {</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">82</td>\n<td class=\"src\"><pre><code class=\"objc\">        setupTableView(with: characters)</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">83</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">84</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">85</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">86</td>\n<td class=\"src\"><pre><code class=\"objc\">extension CharactersViewController: CharactersDelegate {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">87</td>\n<td class=\"src\"><pre><code class=\"objc\">    func didSelectCharacter(at index: IndexPath) {</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">88</td>\n<td class=\"src\"><pre><code class=\"objc\">        searchBar.resignFirstResponder()</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">89</td>\n<td class=\"src\"><pre><code class=\"objc\">        guard let nextController = Storyboard.Main.characterViewControllerScene</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"missed\">\n<td class=\"num\">90</td>\n<td class=\"src\"><pre><code class=\"objc\">            .viewController() as? CharacterViewController else {</code></pre></td>\n<td class=\"coverage\">!</td>\n</tr>\n<tr class=\"missed\">\n<td class=\"num\">91</td>\n<td class=\"src\"><pre><code class=\"objc\">            return</code></pre></td>\n<td class=\"coverage\">!</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">92</td>\n<td class=\"src\"><pre><code class=\"objc\">        }</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">93</td>\n<td class=\"src\"><pre><code class=\"objc\">        </code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">94</td>\n<td class=\"src\"><pre><code class=\"objc\">        let character = characters[index.row]</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">95</td>\n<td class=\"src\"><pre><code class=\"objc\">        nextController.character = character</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">96</td>\n<td class=\"src\"><pre><code class=\"objc\">        self.navigationController?.pushViewController(nextController, animated: true)</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">97</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">98</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">99</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">100</td>\n<td class=\"src\"><pre><code class=\"objc\">extension CharactersViewController: UISearchBarDelegate {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">101</td>\n<td class=\"src\"><pre><code class=\"objc\">    func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {</code></pre></td>\n<td class=\"coverage\">2x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">102</td>\n<td class=\"src\"><pre><code class=\"objc\">        searchBar.resignFirstResponder()</code></pre></td>\n<td class=\"coverage\">2x</td>\n</tr>\n<tr class=\"missed\">\n<td class=\"num\">103</td>\n<td class=\"src\"><pre><code class=\"objc\">        let query = searchBar.text ?? \"\"</code></pre></td>\n<td class=\"coverage\">!</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">104</td>\n<td class=\"src\"><pre><code class=\"objc\">        if !query.isEmpty {</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">105</td>\n<td class=\"src\"><pre><code class=\"objc\">            fetchCharacters(for: query)</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">106</td>\n<td class=\"src\"><pre><code class=\"objc\">        }</code></pre></td>\n<td class=\"coverage\">2x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">107</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">2x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">108</td>\n<td class=\"src\"><pre><code class=\"objc\">    func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">109</td>\n<td class=\"src\"><pre><code class=\"objc\">        searchBar.resignFirstResponder()</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">110</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">111</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">112</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n</table>\n</div></div>\n<footer><div class=\"row\">\n<p><a href=\"https://github.com/SlatherOrg/slather\">Fork me on Github</a></p>\n<p>&copy; 2016 Slather</p>\n</div></footer><script src=\"highlight.pack.js\"></script><script>hljs.initHighlightingOnLoad();</script>\n</body>\n</html>\n"
  },
  {
    "path": "coverage/ItemsCollectionViewDatasource.swift.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html>\n<head>\n<title>ItemsCollectionViewDatasource.swift - Slather</title>\n<link href=\"slather.css\" media=\"all\" rel=\"stylesheet\">\n</head>\n<body>\n<header><div class=\"row\"><a href=\"index.html\"><img src=\"logo.jpg\" alt=\"Slather logo\"></a></div></header><div class=\"row\"><div id=\"reports\">\n<h2 class=\"cov_title\">\n<span>Coverage for \"ItemsCollectionViewDatasource.swift\" : </span><span class=\"cov_high\">100.00%</span>\n</h2>\n<h4 class=\"cov_subtitle\">(5 of 5 relevant lines covered)</h4>\n<h4 class=\"cov_filepath\">Marvel/Datasources/ItemsCollectionViewDatasource.swift</h4>\n<table class=\"source_code\">\n<tr class=\"never\">\n<td class=\"num\">1</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">2</td>\n<td class=\"src\"><pre><code class=\"objc\">//  ItemsCollectionViewDatasource.swift</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">3</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Marvel</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">4</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">5</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Created by Thiago Lioy on 20/11/16.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">6</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Copyright &#65533;&#65533; 2016 Thiago Lioy. All rights reserved.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">7</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">8</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">9</td>\n<td class=\"src\"><pre><code class=\"objc\">import UIKit</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">10</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">11</td>\n<td class=\"src\"><pre><code class=\"objc\">protocol ItemsCollectionViewDatasource: UICollectionViewDataSource {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">12</td>\n<td class=\"src\"><pre><code class=\"objc\">    associatedtype T</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">13</td>\n<td class=\"src\"><pre><code class=\"objc\">    var items:[T] {get}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">14</td>\n<td class=\"src\"><pre><code class=\"objc\">    weak var collectionView: UICollectionView? {get}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">15</td>\n<td class=\"src\"><pre><code class=\"objc\">    weak var delegate: UICollectionViewDelegate? {get}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">16</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">17</td>\n<td class=\"src\"><pre><code class=\"objc\">    init(items: [T], collectionView: UICollectionView, delegate: UICollectionViewDelegate)</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">18</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">19</td>\n<td class=\"src\"><pre><code class=\"objc\">    func setupCollectionView()</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">20</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">21</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">22</td>\n<td class=\"src\"><pre><code class=\"objc\">extension ItemsCollectionViewDatasource {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">23</td>\n<td class=\"src\"><pre><code class=\"objc\">    func setupCollectionView() {</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">24</td>\n<td class=\"src\"><pre><code class=\"objc\">        self.collectionView?.dataSource = self</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">25</td>\n<td class=\"src\"><pre><code class=\"objc\">        self.collectionView?.delegate = self.delegate</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">26</td>\n<td class=\"src\"><pre><code class=\"objc\">        self.collectionView?.reloadData()</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">27</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">28</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">29</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n</table>\n</div></div>\n<footer><div class=\"row\">\n<p><a href=\"https://github.com/SlatherOrg/slather\">Fork me on Github</a></p>\n<p>&copy; 2016 Slather</p>\n</div></footer><script src=\"highlight.pack.js\"></script><script>hljs.initHighlightingOnLoad();</script>\n</body>\n</html>\n"
  },
  {
    "path": "coverage/ItemsTableViewDatasource.swift.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html>\n<head>\n<title>ItemsTableViewDatasource.swift - Slather</title>\n<link href=\"slather.css\" media=\"all\" rel=\"stylesheet\">\n</head>\n<body>\n<header><div class=\"row\"><a href=\"index.html\"><img src=\"logo.jpg\" alt=\"Slather logo\"></a></div></header><div class=\"row\"><div id=\"reports\">\n<h2 class=\"cov_title\">\n<span>Coverage for \"ItemsTableViewDatasource.swift\" : </span><span class=\"cov_high\">100.00%</span>\n</h2>\n<h4 class=\"cov_subtitle\">(5 of 5 relevant lines covered)</h4>\n<h4 class=\"cov_filepath\">Marvel/Datasources/ItemsTableViewDatasource.swift</h4>\n<table class=\"source_code\">\n<tr class=\"never\">\n<td class=\"num\">1</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">2</td>\n<td class=\"src\"><pre><code class=\"objc\">//  ItemsTableDatasource.swift</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">3</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Marvel</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">4</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">5</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Created by Thiago Lioy on 17/11/16.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">6</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Copyright &#65533;&#65533; 2016 Thiago Lioy. All rights reserved.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">7</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">8</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">9</td>\n<td class=\"src\"><pre><code class=\"objc\">import UIKit</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">10</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">11</td>\n<td class=\"src\"><pre><code class=\"objc\">protocol ItemsTableViewDatasource: UITableViewDataSource {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">12</td>\n<td class=\"src\"><pre><code class=\"objc\">    associatedtype T</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">13</td>\n<td class=\"src\"><pre><code class=\"objc\">    var items:[T] {get}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">14</td>\n<td class=\"src\"><pre><code class=\"objc\">    weak var tableView: UITableView? {get}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">15</td>\n<td class=\"src\"><pre><code class=\"objc\">    weak var delegate: UITableViewDelegate? {get}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">16</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">17</td>\n<td class=\"src\"><pre><code class=\"objc\">    init(items: [T], tableView: UITableView, delegate: UITableViewDelegate)</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">18</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">19</td>\n<td class=\"src\"><pre><code class=\"objc\">    func setupTableView()</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">20</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">21</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">22</td>\n<td class=\"src\"><pre><code class=\"objc\">extension ItemsTableViewDatasource {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">23</td>\n<td class=\"src\"><pre><code class=\"objc\">    func setupTableView() {</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">24</td>\n<td class=\"src\"><pre><code class=\"objc\">        self.tableView?.dataSource = self</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">25</td>\n<td class=\"src\"><pre><code class=\"objc\">        self.tableView?.delegate = self.delegate</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">26</td>\n<td class=\"src\"><pre><code class=\"objc\">        self.tableView?.reloadData()</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">27</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">30x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">28</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n</table>\n</div></div>\n<footer><div class=\"row\">\n<p><a href=\"https://github.com/SlatherOrg/slather\">Fork me on Github</a></p>\n<p>&copy; 2016 Slather</p>\n</div></footer><script src=\"highlight.pack.js\"></script><script>hljs.initHighlightingOnLoad();</script>\n</body>\n</html>\n"
  },
  {
    "path": "coverage/ThumbImage.swift.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html>\n<head>\n<title>ThumbImage.swift - Slather</title>\n<link href=\"slather.css\" media=\"all\" rel=\"stylesheet\">\n</head>\n<body>\n<header><div class=\"row\"><a href=\"index.html\"><img src=\"logo.jpg\" alt=\"Slather logo\"></a></div></header><div class=\"row\"><div id=\"reports\">\n<h2 class=\"cov_title\">\n<span>Coverage for \"ThumbImage.swift\" : </span><span class=\"cov_high\">100.00%</span>\n</h2>\n<h4 class=\"cov_subtitle\">(10 of 10 relevant lines covered)</h4>\n<h4 class=\"cov_filepath\">Marvel/Models/ThumbImage.swift</h4>\n<table class=\"source_code\">\n<tr class=\"never\">\n<td class=\"num\">1</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">2</td>\n<td class=\"src\"><pre><code class=\"objc\">//  ThumbImage.swift</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">3</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Marvel</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">4</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">5</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Created by Thiago Lioy on 17/11/16.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">6</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Copyright &#65533;&#65533; 2016 Thiago Lioy. All rights reserved.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">7</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">8</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">9</td>\n<td class=\"src\"><pre><code class=\"objc\">import Foundation</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">10</td>\n<td class=\"src\"><pre><code class=\"objc\">import ObjectMapper</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">11</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">12</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">13</td>\n<td class=\"src\"><pre><code class=\"objc\">struct ThumbImage {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">14</td>\n<td class=\"src\"><pre><code class=\"objc\">    var path: String = \"\"</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">15</td>\n<td class=\"src\"><pre><code class=\"objc\">    var imageExtension: String = \"\"</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">16</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">17</td>\n<td class=\"src\"><pre><code class=\"objc\">    func fullPath() -&gt; String {</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">18</td>\n<td class=\"src\"><pre><code class=\"objc\">        return \"\\(path).\\(imageExtension)\"</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">19</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">20</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">21</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">22</td>\n<td class=\"src\"><pre><code class=\"objc\">extension ThumbImage: Mappable {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">23</td>\n<td class=\"src\"><pre><code class=\"objc\">    init?(map: Map) {</code></pre></td>\n<td class=\"coverage\">26x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">24</td>\n<td class=\"src\"><pre><code class=\"objc\">        </code></pre></td>\n<td class=\"coverage\">26x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">25</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">26x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">26</td>\n<td class=\"src\"><pre><code class=\"objc\">    </code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">27</td>\n<td class=\"src\"><pre><code class=\"objc\">    mutating func mapping(map: Map) {</code></pre></td>\n<td class=\"coverage\">26x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">28</td>\n<td class=\"src\"><pre><code class=\"objc\">        path    &lt;- map[\"path\"]</code></pre></td>\n<td class=\"coverage\">26x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">29</td>\n<td class=\"src\"><pre><code class=\"objc\">        imageExtension    &lt;- map[\"extension\"]</code></pre></td>\n<td class=\"coverage\">26x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">30</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">26x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">31</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n</table>\n</div></div>\n<footer><div class=\"row\">\n<p><a href=\"https://github.com/SlatherOrg/slather\">Fork me on Github</a></p>\n<p>&copy; 2016 Slather</p>\n</div></footer><script src=\"highlight.pack.js\"></script><script>hljs.initHighlightingOnLoad();</script>\n</body>\n</html>\n"
  },
  {
    "path": "coverage/UIImageView+Kingfisher.swift.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html>\n<head>\n<title>UIImageView+Kingfisher.swift - Slather</title>\n<link href=\"slather.css\" media=\"all\" rel=\"stylesheet\">\n</head>\n<body>\n<header><div class=\"row\"><a href=\"index.html\"><img src=\"logo.jpg\" alt=\"Slather logo\"></a></div></header><div class=\"row\"><div id=\"reports\">\n<h2 class=\"cov_title\">\n<span>Coverage for \"UIImageView+Kingfisher.swift\" : </span><span class=\"cov_high\">100.00%</span>\n</h2>\n<h4 class=\"cov_subtitle\">(6 of 6 relevant lines covered)</h4>\n<h4 class=\"cov_filepath\">Marvel/UIImageView+Kingfisher.swift</h4>\n<table class=\"source_code\">\n<tr class=\"never\">\n<td class=\"num\">1</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">2</td>\n<td class=\"src\"><pre><code class=\"objc\">//  UIImage+Kingfisher.swift</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">3</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Marvel</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">4</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">5</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Created by Thiago Lioy on 20/11/16.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">6</td>\n<td class=\"src\"><pre><code class=\"objc\">//  Copyright &#65533;&#65533; 2016 Thiago Lioy. All rights reserved.</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">7</td>\n<td class=\"src\"><pre><code class=\"objc\">//</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">8</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">9</td>\n<td class=\"src\"><pre><code class=\"objc\">import UIKit</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">10</td>\n<td class=\"src\"><pre><code class=\"objc\">import Kingfisher</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">11</td>\n<td class=\"src\"><pre><code class=\"objc\"></code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">12</td>\n<td class=\"src\"><pre><code class=\"objc\">extension UIImageView {</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">13</td>\n<td class=\"src\"><pre><code class=\"objc\">    func download(image url: String) {</code></pre></td>\n<td class=\"coverage\">8x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">14</td>\n<td class=\"src\"><pre><code class=\"objc\">        guard let imageURL = URL(string:url) else {</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">15</td>\n<td class=\"src\"><pre><code class=\"objc\">            return</code></pre></td>\n<td class=\"coverage\">1x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">16</td>\n<td class=\"src\"><pre><code class=\"objc\">        }</code></pre></td>\n<td class=\"coverage\">7x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">17</td>\n<td class=\"src\"><pre><code class=\"objc\">        self.kf.setImage(with: ImageResource(downloadURL: imageURL))</code></pre></td>\n<td class=\"coverage\">7x</td>\n</tr>\n<tr class=\"covered\">\n<td class=\"num\">18</td>\n<td class=\"src\"><pre><code class=\"objc\">    }</code></pre></td>\n<td class=\"coverage\">7x</td>\n</tr>\n<tr class=\"never\">\n<td class=\"num\">19</td>\n<td class=\"src\"><pre><code class=\"objc\">}</code></pre></td>\n<td class=\"coverage\"></td>\n</tr>\n</table>\n</div></div>\n<footer><div class=\"row\">\n<p><a href=\"https://github.com/SlatherOrg/slather\">Fork me on Github</a></p>\n<p>&copy; 2016 Slather</p>\n</div></footer><script src=\"highlight.pack.js\"></script><script>hljs.initHighlightingOnLoad();</script>\n</body>\n</html>\n"
  },
  {
    "path": "coverage/highlight.pack.js",
    "content": "!function(e){\"undefined\"!=typeof exports?e(exports):(window.hljs=e({}),\"function\"==typeof define&&define.amd&&define(\"hljs\",[],function(){return window.hljs}))}(function(e){function n(e){return e.replace(/&/gm,\"&amp;\").replace(/</gm,\"&lt;\").replace(/>/gm,\"&gt;\")}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0==t.index}function a(e){return/no-?highlight|plain|text/.test(e)}function i(e){var n,t,r,i=e.className+\" \";if(i+=e.parentNode?e.parentNode.className:\"\",t=/\\blang(?:uage)?-([\\w-]+)\\b/.exec(i))return E(t[1])?t[1]:\"no-highlight\";for(i=i.split(/\\s+/),n=0,r=i.length;r>n;n++)if(E(i[n])||a(i[n]))return i[n]}function o(e,n){var t,r={};for(t in e)r[t]=e[t];if(n)for(t in n)r[t]=n[t];return r}function u(e){var n=[];return function r(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3==i.nodeType?a+=i.nodeValue.length:1==i.nodeType&&(n.push({event:\"start\",offset:a,node:i}),a=r(i,a),t(i).match(/br|hr|img|input/)||n.push({event:\"stop\",offset:a,node:i}));return a}(e,0),n}function c(e,r,a){function i(){return e.length&&r.length?e[0].offset!=r[0].offset?e[0].offset<r[0].offset?e:r:\"start\"==r[0].event?e:r:e.length?e:r}function o(e){function r(e){return\" \"+e.nodeName+'=\"'+n(e.value)+'\"'}f+=\"<\"+t(e)+Array.prototype.map.call(e.attributes,r).join(\"\")+\">\"}function u(e){f+=\"</\"+t(e)+\">\"}function c(e){(\"start\"==e.event?o:u)(e.node)}for(var s=0,f=\"\",l=[];e.length||r.length;){var g=i();if(f+=n(a.substr(s,g[0].offset-s)),s=g[0].offset,g==e){l.reverse().forEach(u);do c(g.splice(0,1)[0]),g=i();while(g==e&&g.length&&g[0].offset==s);l.reverse().forEach(o)}else\"start\"==g[0].event?l.push(g[0].node):l.pop(),c(g.splice(0,1)[0])}return f+n(a.substr(s))}function s(e){function n(e){return e&&e.source||e}function t(t,r){return new RegExp(n(t),\"m\"+(e.cI?\"i\":\"\")+(r?\"g\":\"\"))}function r(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var u={},c=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(\" \").forEach(function(e){var t=e.split(\"|\");u[t[0]]=[n,t[1]?Number(t[1]):1]})};\"string\"==typeof a.k?c(\"keyword\",a.k):Object.keys(a.k).forEach(function(e){c(e,a.k[e])}),a.k=u}a.lR=t(a.l||/\\b\\w+\\b/,!0),i&&(a.bK&&(a.b=\"\\\\b(\"+a.bK.split(\" \").join(\"|\")+\")\\\\b\"),a.b||(a.b=/\\B|\\b/),a.bR=t(a.b),a.e||a.eW||(a.e=/\\B|\\b/),a.e&&(a.eR=t(a.e)),a.tE=n(a.e)||\"\",a.eW&&i.tE&&(a.tE+=(a.e?\"|\":\"\")+i.tE)),a.i&&(a.iR=t(a.i)),void 0===a.r&&(a.r=1),a.c||(a.c=[]);var s=[];a.c.forEach(function(e){e.v?e.v.forEach(function(n){s.push(o(e,n))}):s.push(\"self\"==e?a:e)}),a.c=s,a.c.forEach(function(e){r(e,a)}),a.starts&&r(a.starts,i);var f=a.c.map(function(e){return e.bK?\"\\\\.?(\"+e.b+\")\\\\.?\":e.b}).concat([a.tE,a.i]).map(n).filter(Boolean);a.t=f.length?t(f.join(\"|\"),!0):{exec:function(){return null}}}}r(e)}function f(e,t,a,i){function o(e,n){for(var t=0;t<n.c.length;t++)if(r(n.c[t].bR,e))return n.c[t]}function u(e,n){if(r(e.eR,n)){for(;e.endsParent&&e.parent;)e=e.parent;return e}return e.eW?u(e.parent,n):void 0}function c(e,n){return!a&&r(n.iR,e)}function g(e,n){var t=N.cI?n[0].toLowerCase():n[0];return e.k.hasOwnProperty(t)&&e.k[t]}function h(e,n,t,r){var a=r?\"\":w.classPrefix,i='<span class=\"'+a,o=t?\"\":\"</span>\";return i+=e+'\">',i+n+o}function p(){if(!L.k)return n(B);var e=\"\",t=0;L.lR.lastIndex=0;for(var r=L.lR.exec(B);r;){e+=n(B.substr(t,r.index-t));var a=g(L,r);a?(y+=a[1],e+=h(a[0],n(r[0]))):e+=n(r[0]),t=L.lR.lastIndex,r=L.lR.exec(B)}return e+n(B.substr(t))}function d(){if(L.sL&&!x[L.sL])return n(B);var e=L.sL?f(L.sL,B,!0,M[L.sL]):l(B);return L.r>0&&(y+=e.r),\"continuous\"==L.subLanguageMode&&(M[L.sL]=e.top),h(e.language,e.value,!1,!0)}function b(){return void 0!==L.sL?d():p()}function v(e,t){var r=e.cN?h(e.cN,\"\",!0):\"\";e.rB?(k+=r,B=\"\"):e.eB?(k+=n(t)+r,B=\"\"):(k+=r,B=t),L=Object.create(e,{parent:{value:L}})}function m(e,t){if(B+=e,void 0===t)return k+=b(),0;var r=o(t,L);if(r)return k+=b(),v(r,t),r.rB?0:t.length;var a=u(L,t);if(a){var i=L;i.rE||i.eE||(B+=t),k+=b();do L.cN&&(k+=\"</span>\"),y+=L.r,L=L.parent;while(L!=a.parent);return i.eE&&(k+=n(t)),B=\"\",a.starts&&v(a.starts,\"\"),i.rE?0:t.length}if(c(t,L))throw new Error('Illegal lexeme \"'+t+'\" for mode \"'+(L.cN||\"<unnamed>\")+'\"');return B+=t,t.length||1}var N=E(e);if(!N)throw new Error('Unknown language: \"'+e+'\"');s(N);var R,L=i||N,M={},k=\"\";for(R=L;R!=N;R=R.parent)R.cN&&(k=h(R.cN,\"\",!0)+k);var B=\"\",y=0;try{for(var C,j,I=0;;){if(L.t.lastIndex=I,C=L.t.exec(t),!C)break;j=m(t.substr(I,C.index-I),C[0]),I=C.index+j}for(m(t.substr(I)),R=L;R.parent;R=R.parent)R.cN&&(k+=\"</span>\");return{r:y,value:k,language:e,top:L}}catch(O){if(-1!=O.message.indexOf(\"Illegal\"))return{r:0,value:n(t)};throw O}}function l(e,t){t=t||w.languages||Object.keys(x);var r={r:0,value:n(e)},a=r;return t.forEach(function(n){if(E(n)){var t=f(n,e,!1);t.language=n,t.r>a.r&&(a=t),t.r>r.r&&(a=r,r=t)}}),a.language&&(r.second_best=a),r}function g(e){return w.tabReplace&&(e=e.replace(/^((<[^>]+>|\\t)+)/gm,function(e,n){return n.replace(/\\t/g,w.tabReplace)})),w.useBR&&(e=e.replace(/\\n/g,\"<br>\")),e}function h(e,n,t){var r=n?R[n]:t,a=[e.trim()];return e.match(/\\bhljs\\b/)||a.push(\"hljs\"),-1===e.indexOf(r)&&a.push(r),a.join(\" \").trim()}function p(e){var n=i(e);if(!a(n)){var t;w.useBR?(t=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"div\"),t.innerHTML=e.innerHTML.replace(/\\n/g,\"\").replace(/<br[ \\/]*>/g,\"\\n\")):t=e;var r=t.textContent,o=n?f(n,r,!0):l(r),s=u(t);if(s.length){var p=document.createElementNS(\"http://www.w3.org/1999/xhtml\",\"div\");p.innerHTML=o.value,o.value=c(s,u(p),r)}o.value=g(o.value),e.innerHTML=o.value,e.className=h(e.className,n,o.language),e.result={language:o.language,re:o.r},o.second_best&&(e.second_best={language:o.second_best.language,re:o.second_best.r})}}function d(e){w=o(w,e)}function b(){if(!b.called){b.called=!0;var e=document.querySelectorAll(\"pre code\");Array.prototype.forEach.call(e,p)}}function v(){addEventListener(\"DOMContentLoaded\",b,!1),addEventListener(\"load\",b,!1)}function m(n,t){var r=x[n]=t(e);r.aliases&&r.aliases.forEach(function(e){R[e]=n})}function N(){return Object.keys(x)}function E(e){return x[e]||x[R[e]]}var w={classPrefix:\"hljs-\",tabReplace:null,useBR:!1,languages:void 0},x={},R={};return e.highlight=f,e.highlightAuto=l,e.fixMarkup=g,e.highlightBlock=p,e.configure=d,e.initHighlighting=b,e.initHighlightingOnLoad=v,e.registerLanguage=m,e.listLanguages=N,e.getLanguage=E,e.inherit=o,e.IR=\"[a-zA-Z]\\\\w*\",e.UIR=\"[a-zA-Z_]\\\\w*\",e.NR=\"\\\\b\\\\d+(\\\\.\\\\d+)?\",e.CNR=\"\\\\b(0[xX][a-fA-F0-9]+|(\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)\",e.BNR=\"\\\\b(0b[01]+)\",e.RSR=\"!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~\",e.BE={b:\"\\\\\\\\[\\\\s\\\\S]\",r:0},e.ASM={cN:\"string\",b:\"'\",e:\"'\",i:\"\\\\n\",c:[e.BE]},e.QSM={cN:\"string\",b:'\"',e:'\"',i:\"\\\\n\",c:[e.BE]},e.PWM={b:/\\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such)\\b/},e.C=function(n,t,r){var a=e.inherit({cN:\"comment\",b:n,e:t,c:[]},r||{});return a.c.push(e.PWM),a.c.push({cN:\"doctag\",bK:\"TODO FIXME NOTE BUG XXX\",r:0}),a},e.CLCM=e.C(\"//\",\"$\"),e.CBCM=e.C(\"/\\\\*\",\"\\\\*/\"),e.HCM=e.C(\"#\",\"$\"),e.NM={cN:\"number\",b:e.NR,r:0},e.CNM={cN:\"number\",b:e.CNR,r:0},e.BNM={cN:\"number\",b:e.BNR,r:0},e.CSSNM={cN:\"number\",b:e.NR+\"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?\",r:0},e.RM={cN:\"regexp\",b:/\\//,e:/\\/[gimuy]*/,i:/\\n/,c:[e.BE,{b:/\\[/,e:/\\]/,r:0,c:[e.BE]}]},e.TM={cN:\"title\",b:e.IR,r:0},e.UTM={cN:\"title\",b:e.UIR,r:0},e});hljs.registerLanguage(\"json\",function(e){var t={literal:\"true false null\"},i=[e.QSM,e.CNM],l={cN:\"value\",e:\",\",eW:!0,eE:!0,c:i,k:t},c={b:\"{\",e:\"}\",c:[{cN:\"attribute\",b:'\\\\s*\"',e:'\"\\\\s*:\\\\s*',eB:!0,eE:!0,c:[e.BE],i:\"\\\\n\",starts:l}],i:\"\\\\S\"},n={b:\"\\\\[\",e:\"\\\\]\",c:[e.inherit(l,{cN:null})],i:\"\\\\S\"};return i.splice(i.length,0,c,n),{c:i,k:t,i:\"\\\\S\"}});hljs.registerLanguage(\"objectivec\",function(e){var t={cN:\"built_in\",b:\"(AV|CA|CF|CG|CI|MK|MP|NS|UI)\\\\w+\"},i={keyword:\"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required\",literal:\"false true FALSE TRUE nil YES NO NULL\",built_in:\"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once\"},o=/[a-zA-Z@][a-zA-Z0-9_]*/,n=\"@interface @class @protocol @implementation\";return{aliases:[\"mm\",\"objc\",\"obj-c\"],k:i,l:o,i:\"</\",c:[t,e.CLCM,e.CBCM,e.CNM,e.QSM,{cN:\"string\",v:[{b:'@\"',e:'\"',i:\"\\\\n\",c:[e.BE]},{b:\"'\",e:\"[^\\\\\\\\]'\",i:\"[^\\\\\\\\][^']\"}]},{cN:\"preprocessor\",b:\"#\",e:\"$\",c:[{cN:\"title\",v:[{b:'\"',e:'\"'},{b:\"<\",e:\">\"}]}]},{cN:\"class\",b:\"(\"+n.split(\" \").join(\"|\")+\")\\\\b\",e:\"({|$)\",eE:!0,k:n,l:o,c:[e.UTM]},{cN:\"variable\",b:\"\\\\.\"+e.UIR,r:0}]}});hljs.registerLanguage(\"cpp\",function(t){var e={cN:\"keyword\",b:\"[a-z\\\\d_]*_t\"},r={keyword:\"false int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using true class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignof constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool complex _Complex _Imaginary atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong\",built_in:\"std string cin cout cerr clog stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf\"};return{aliases:[\"c\",\"cc\",\"h\",\"c++\",\"h++\",\"hpp\"],k:r,i:\"</\",c:[e,t.CLCM,t.CBCM,{cN:\"string\",v:[t.inherit(t.QSM,{b:'((u8?|U)|L)?\"'}),{b:'(u8?|U)?R\"',e:'\"',c:[t.BE]},{b:\"'\\\\\\\\?.\",e:\"'\",i:\".\"}]},{cN:\"number\",b:\"\\\\b(\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)(u|U|l|L|ul|UL|f|F)\"},t.CNM,{cN:\"preprocessor\",b:\"#\",e:\"$\",k:\"if else elif endif define undef warning error line pragma\",c:[{b:/\\\\\\n/,r:0},{b:'include\\\\s*[<\"]',e:'[>\"]',k:\"include\",i:\"\\\\n\"},t.CLCM]},{b:\"\\\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\\\s*<\",e:\">\",k:r,c:[\"self\",e]},{b:t.IR+\"::\",k:r},{bK:\"new throw return else\",r:0},{cN:\"function\",b:\"(\"+t.IR+\"\\\\s+)+\"+t.IR+\"\\\\s*\\\\(\",rB:!0,e:/[{;=]/,eE:!0,k:r,c:[{b:t.IR+\"\\\\s*\\\\(\",rB:!0,c:[t.TM],r:0},{cN:\"params\",b:/\\(/,e:/\\)/,k:r,r:0,c:[t.CBCM]},t.CLCM,t.CBCM]}]}});"
  },
  {
    "path": "coverage/index.html",
    "content": "<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\" \"http://www.w3.org/TR/REC-html40/loose.dtd\">\n<html>\n<head>\n<title>Marvel.xcodeproj - Slather</title>\n<link href=\"slather.css\" media=\"all\" rel=\"stylesheet\">\n</head>\n<body>\n<header><div class=\"row\"><a href=\"index.html\"><img src=\"logo.jpg\" alt=\"Slather logo\"></a></div></header><div class=\"row\"><div id=\"reports\">\n<h2>Files for \"Marvel.xcodeproj\"</h2>\n<h4>\n<span>Total Coverage : </span><span class=\"cov_high\" id=\"total_coverage\">97.16%</span>\n</h4>\n<input class=\"search\" placeholder=\"Search\"><table class=\"coverage_list\" cellspacing=\"0\" cellpadding=\"0\">\n<thead><tr>\n<th class=\"col_num sort\" data-sort=\"data_percentage\">%</th>\n<th class=\"sort\" data-sort=\"data_filename\">File</th>\n<th class=\"col_percent sort\" data-sort=\"data_lines\">Lines</th>\n<th class=\"col_percent sort\" data-sort=\"data_relevant\">Relevant</th>\n<th class=\"col_percent sort\" data-sort=\"data_covered\">Covered</th>\n<th class=\"col_percent sort\" data-sort=\"data_missed\">Missed</th>\n</tr></thead>\n<tbody class=\"list\">\n<tr>\n<td><span class=\"percentage cov_high data_percentage\">100.00</span></td>\n<td class=\"data_filename\"><a href=\"AppDelegate.swift.html\">AppDelegate.swift</a></td>\n<td class=\"data_lines\">24</td>\n<td class=\"data_relevant\">4</td>\n<td class=\"data_covered\">4</td>\n<td class=\"data_missed\">0</td>\n</tr>\n<tr>\n<td><span class=\"percentage cov_high data_percentage\">90.00</span></td>\n<td class=\"data_filename\"><a href=\"CharacterCollectionCell.swift.html\">CharacterCollectionCell.swift</a></td>\n<td class=\"data_lines\">29</td>\n<td class=\"data_relevant\">10</td>\n<td class=\"data_covered\">9</td>\n<td class=\"data_missed\">1</td>\n</tr>\n<tr>\n<td><span class=\"percentage cov_high data_percentage\">85.71</span></td>\n<td class=\"data_filename\"><a href=\"CharacterTableCell.swift.html\">CharacterTableCell.swift</a></td>\n<td class=\"data_lines\">24</td>\n<td class=\"data_relevant\">7</td>\n<td class=\"data_covered\">6</td>\n<td class=\"data_missed\">1</td>\n</tr>\n<tr>\n<td><span class=\"percentage cov_high data_percentage\">100.00</span></td>\n<td class=\"data_filename\"><a href=\"CharacterViewController.swift.html\">CharacterViewController.swift</a></td>\n<td class=\"data_lines\">31</td>\n<td class=\"data_relevant\">8</td>\n<td class=\"data_covered\">8</td>\n<td class=\"data_missed\">0</td>\n</tr>\n<tr>\n<td><span class=\"percentage cov_high data_percentage\">95.00</span></td>\n<td class=\"data_filename\"><a href=\"CharactersViewController.swift.html\">CharactersViewController.swift</a></td>\n<td class=\"data_lines\">112</td>\n<td class=\"data_relevant\">60</td>\n<td class=\"data_covered\">57</td>\n<td class=\"data_missed\">3</td>\n</tr>\n<tr>\n<td><span class=\"percentage cov_high data_percentage\">100.00</span></td>\n<td class=\"data_filename\"><a href=\"CharactersCollectionDatasource.swift.html\">CharactersCollectionDatasource.swift</a></td>\n<td class=\"data_lines\">57</td>\n<td class=\"data_relevant\">27</td>\n<td class=\"data_covered\">27</td>\n<td class=\"data_missed\">0</td>\n</tr>\n<tr>\n<td><span class=\"percentage cov_high data_percentage\">100.00</span></td>\n<td class=\"data_filename\"><a href=\"CharactersDatasource.swift.html\">CharactersDatasource.swift</a></td>\n<td class=\"data_lines\">54</td>\n<td class=\"data_relevant\">26</td>\n<td class=\"data_covered\">26</td>\n<td class=\"data_missed\">0</td>\n</tr>\n<tr>\n<td><span class=\"percentage cov_high data_percentage\">100.00</span></td>\n<td class=\"data_filename\"><a href=\"ItemsCollectionViewDatasource.swift.html\">ItemsCollectionViewDatasource.swift</a></td>\n<td class=\"data_lines\">29</td>\n<td class=\"data_relevant\">5</td>\n<td class=\"data_covered\">5</td>\n<td class=\"data_missed\">0</td>\n</tr>\n<tr>\n<td><span class=\"percentage cov_high data_percentage\">100.00</span></td>\n<td class=\"data_filename\"><a href=\"ItemsTableViewDatasource.swift.html\">ItemsTableViewDatasource.swift</a></td>\n<td class=\"data_lines\">28</td>\n<td class=\"data_relevant\">5</td>\n<td class=\"data_covered\">5</td>\n<td class=\"data_missed\">0</td>\n</tr>\n<tr>\n<td><span class=\"percentage cov_high data_percentage\">100.00</span></td>\n<td class=\"data_filename\"><a href=\"Character.swift.html\">Character.swift</a></td>\n<td class=\"data_lines\">28</td>\n<td class=\"data_relevant\">8</td>\n<td class=\"data_covered\">8</td>\n<td class=\"data_missed\">0</td>\n</tr>\n<tr>\n<td><span class=\"percentage cov_high data_percentage\">100.00</span></td>\n<td class=\"data_filename\"><a href=\"ThumbImage.swift.html\">ThumbImage.swift</a></td>\n<td class=\"data_lines\">31</td>\n<td class=\"data_relevant\">10</td>\n<td class=\"data_covered\">10</td>\n<td class=\"data_missed\">0</td>\n</tr>\n<tr>\n<td><span class=\"percentage cov_high data_percentage\">100.00</span></td>\n<td class=\"data_filename\"><a href=\"UIImageView%2BKingfisher.swift.html\">UIImageView+Kingfisher.swift</a></td>\n<td class=\"data_lines\">19</td>\n<td class=\"data_relevant\">6</td>\n<td class=\"data_covered\">6</td>\n<td class=\"data_missed\">0</td>\n</tr>\n</tbody>\n</table>\n</div></div>\n<footer><div class=\"row\">\n<p><a href=\"https://github.com/SlatherOrg/slather\">Fork me on Github</a></p>\n<p>&copy; 2016 Slather</p>\n</div></footer><script src=\"list.min.js\"></script><script>var reports = new List('reports', { valueNames: [ 'data_percentage', 'data_filename', 'data_lines', 'data_relevant', 'data_covered', 'data_missed' ]});</script>\n</body>\n</html>\n"
  },
  {
    "path": "coverage/slather.css",
    "content": "/* --------------------------------------------------------\nSlather stylesheet\n\nversion: 0.1\nauthor: Ikhsan Assaat (@ixnixnixn)\n----------------------------------------------------------*/\n\n/* General */\nhtml {\n  position: relative;\n  min-height: 100%;\n}\nbody {\n  font: 16px \"Helvetica\", sans-serif;\n  margin: 0 0 120px;\n  color: #333;\n}\n.row { margin: 0 2em; }\n\n/* Header */\nheader { margin-top: 1em; }\nheader img { width: auto; height: 120px; }\n\n/* Coverage */\n#reports > h2 { margin-bottom: 0; }\n#reports > h4 { margin-top: 5px; }\n.percentage {\n  padding: 4px ;\n  font-weight: bold;\n}\n.cov_high { color: #67CF7C; }\n.cov_medium { color: #F89404; }\n.cov_low { color: #F86769; }\n.cov_title { margin-bottom: 0; }\n.cov_subtitle { margin-top: 0.2em; }\n.cov_filepath { font-style: italic; }\n\n/* Index Table */\ntable.coverage_list {\n  width: 90%;\n  min-width: 400px;\n}\ntable.coverage_list th,\ntable.coverage_list td {\n  padding: .6em .5em;\n  text-align: left;\n}\ntable.coverage_list th.col_num { width: 70px; }\ntable.coverage_list th.col_percent { width: 75px; }\ntable.coverage_list thead, tfoot { background: #FDCD9B; }\ntable.coverage_list tbody tr:hover { background: #FCF2E6; }\ntable.coverage_list tbody td { border-bottom: 1px solid #CCC; }\ntable.coverage_list td a {\n  color: #333;\n  text-decoration: none;\n  border-bottom: 1px dotted;\n}\ntable.coverage_list td a:hover {\n  border-bottom: none;\n}\n\n/* Source Code */\ntable.source_code {\n  width: 100%;\n  max-width: 1200px;\n  min-width: 400px;\n  font-size: 13px;\n  border-spacing: 0;\n  background: #FCF2E6;\n  padding: 1.2em 1em;\n  margin-bottom: 2em;\n}\n\ntable.source_code td {\n  padding-bottom: 0.3em;\n}\ntable.source_code tr.missed td { background-color: rgba(248, 103, 105, 0.2); }\ntable.source_code tr.covered td { background-color: rgba(103, 207, 124, 0.2); }\ntable.source_code td.num {\n  border-right: 1px rgba(0,0,0,0.1) solid;\n  text-align: right;\n  padding-right: 1em;\n  width: 30px;\n}\ntable.source_code td.src {\n  border-left: 1px rgba(255,255,255,0.7) solid;\n  padding-left: 1em;\n}\ntable.source_code td.src pre {\n  white-space: pre-wrap;\n  white-space: -moz-pre-wrap;\n  white-space: -pre-wrap;\n  white-space: -o-pre-wrap;\n  word-wrap: break-word;\n  margin: 0;\n}\ntable.source_code td.src pre code { font: 13px \"Menlo\", \"Courier New\"; }\n\ntable.source_code td.coverage {\n  text-align: right;\n  padding-right: 0.5em;\n}\n\n/* Footer */\nfooter {\n  background-color: #67CDCF;\n  height: 80px;\n\n  position: absolute;\n  left: 0;\n  bottom: 0;\n  width: 100%;\n  overflow:hidden;\n}\n\nfooter p, footer a {\n  color: #ffffff;\n  font-weight: bold;\n  text-align: center;\n}\n\n\n/* ----------------------------------------------------------\nSyntax Highlighting using highlight.js (https://highlightjs.org)\n------------------------------------------------------------- */\n.hljs {\n  display: block;\n  overflow-x: auto;\n  -webkit-text-size-adjust: none;\n}\n\n.hljs,\n.hljs-subst,\n.hljs-tag .hljs-title,\n.nginx .hljs-title {\n  color: #333;\n}\n\n.hljs-string,\n.hljs-title,\n.hljs-constant,\n.hljs-parent,\n.hljs-tag .hljs-value,\n.hljs-rule .hljs-value,\n.hljs-preprocessor,\n.hljs-pragma,\n.hljs-name,\n.haml .hljs-symbol,\n.ruby .hljs-symbol,\n.ruby .hljs-symbol .hljs-string,\n.hljs-template_tag,\n.django .hljs-variable,\n.smalltalk .hljs-class,\n.hljs-addition,\n.hljs-flow,\n.hljs-stream,\n.bash .hljs-variable,\n.pf .hljs-variable,\n.apache .hljs-tag,\n.apache .hljs-cbracket,\n.tex .hljs-command,\n.tex .hljs-special,\n.erlang_repl .hljs-function_or_atom,\n.asciidoc .hljs-header,\n.markdown .hljs-header,\n.coffeescript .hljs-attribute,\n.tp .hljs-variable {\n  color: #D14F4F;\n}\n\n.smartquote,\n.hljs-comment,\n.hljs-annotation,\n.diff .hljs-header,\n.hljs-chunk,\n.asciidoc .hljs-blockquote,\n.markdown .hljs-blockquote {\n  color: #888;\n}\n\n.hljs-number,\n.hljs-date,\n.hljs-regexp,\n.hljs-literal,\n.hljs-hexcolor,\n.smalltalk .hljs-symbol,\n.smalltalk .hljs-char,\n.go .hljs-constant,\n.hljs-change,\n.lasso .hljs-variable,\n.makefile .hljs-variable,\n.asciidoc .hljs-bullet,\n.markdown .hljs-bullet,\n.asciidoc .hljs-link_url,\n.markdown .hljs-link_url {\n  color: #05A5A8;\n}\n\n.hljs-label,\n.ruby .hljs-string,\n.hljs-decorator,\n.hljs-filter .hljs-argument,\n.hljs-localvars,\n.hljs-array,\n.hljs-attr_selector,\n.hljs-important,\n.hljs-pseudo,\n.hljs-pi,\n.haml .hljs-bullet,\n.hljs-doctype,\n.hljs-deletion,\n.hljs-envvar,\n.hljs-shebang,\n.apache .hljs-sqbracket,\n.nginx .hljs-built_in,\n.tex .hljs-formula,\n.erlang_repl .hljs-reserved,\n.hljs-prompt,\n.asciidoc .hljs-link_label,\n.markdown .hljs-link_label,\n.vhdl .hljs-attribute,\n.clojure .hljs-attribute,\n.asciidoc .hljs-attribute,\n.lasso .hljs-attribute,\n.coffeescript .hljs-property,\n.hljs-phony {\n  color: #087599;\n}\n\n.hljs-keyword,\n.hljs-id,\n.hljs-title,\n.hljs-built_in,\n.css .hljs-tag,\n.hljs-doctag,\n.smalltalk .hljs-class,\n.hljs-winutils,\n.bash .hljs-variable,\n.pf .hljs-variable,\n.apache .hljs-tag,\n.hljs-type,\n.hljs-typename,\n.tex .hljs-command,\n.asciidoc .hljs-strong,\n.markdown .hljs-strong,\n.hljs-request,\n.hljs-status,\n.tp .hljs-data,\n.tp .hljs-io {\n  font-weight: bold;\n}\n\n.asciidoc .hljs-emphasis,\n.markdown .hljs-emphasis,\n.tp .hljs-units {\n  font-style: italic;\n}\n\n.nginx .hljs-built_in {\n  font-weight: normal;\n}\n\n.coffeescript .javascript,\n.javascript .xml,\n.lasso .markup,\n.tex .hljs-formula,\n.xml .javascript,\n.xml .vbscript,\n.xml .css,\n.xml .hljs-cdata {\n  opacity: 0.5;\n}\n\n/* -------------------------------------------------------\nSorting & Filtering with List.js (http://www.listjs.com/)\n------------------------------------------------------- */\n\ninput.search {\n  border:solid 1px #ccc;\n  border-radius: 4px;\n  padding:7px;\n  margin-bottom:10px;\n  font-size: 12px;\n}\ninput.search:focus {\n  outline:none;\n  border-color:#aaa;\n}\n\nth.sort::-moz-selection { background:transparent; }\nth.sort::selection      { background:transparent; }\nth.sort { cursor:pointer; }\nth.sort:after {\n  content:'';\n  display:inline-block;\n  width: 0;\n  height: 0;\n  position: relative;\n  top: -3px;\n  right: -6px;\n  border-width:0 4px 4px;\n  border-style:solid;\n  border-color:#404040 transparent;\n  visibility:hidden;\n}\n th.sort:hover:after { visibility:visible; }\n th.sort.desc:after,\n th.sort.asc:after,\n th.sort.asc:hover:after {\n  visibility:visible;\n  opacity:0.6;\n}\n th.sort.desc:after {\n  border-bottom:none;\n  border-width:4px 4px 0;\n}\n"
  },
  {
    "path": "fastlane/Appfile",
    "content": "app_identifier \"\" # The bundle identifier of your app\napple_id \"\" # Your Apple email address\n\nteam_id \"\"  # Developer Portal Team ID\n\n# you can even provide different app identifiers, Apple IDs and team names per lane:\n# More information: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Appfile.md\n"
  },
  {
    "path": "fastlane/Fastfile",
    "content": "# Customise this file, documentation can be found here:\n# https://github.com/fastlane/fastlane/tree/master/fastlane/docs\n# All available actions: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Actions.md\n# can also be listed using the `fastlane actions` command\n\n# Change the syntax highlighting to Ruby\n# All lines starting with a # are ignored when running `fastlane`\n\n# If you want to automatically update fastlane if a new version is available:\n# update_fastlane\n\n# This is the minimum version number required.\n# Update this, if you use features of a newer version\nfastlane_version \"1.110.0\"\n\ndefault_platform :ios\n\nplatform :ios do\n  before_all do\n    # ENV[\"SLACK_URL\"] = \"https://hooks.slack.com/services/...\"\n    cocoapods\n  end\n\n  desc \"Runs all the tests\"\n  lane :test do\n    scan(scheme: \"Marvel\")\n    slather(\n      output_directory: \"coverage\",\n      workspace: \"Marvel.xcworkspace\",\n      scheme: \"Marvel\",\n      proj: \"Marvel.xcodeproj\",\n      html: true,\n      ignore: [\n        \"**/Storyboard.swift\",\n        \"**/MarvelAPI.swift\",\n        \"**/MarvelAPIManager.swift\"\n      ]\n    )\n  end\n\n  desc \"Submit a new Beta Build to Apple TestFlight\"\n  desc \"This will also make sure the profile is up to date\"\n  lane :beta do\n    # match(type: \"appstore\") # more information: https://codesigning.guide\n    gym(scheme: \"Marvel\") # Build your app - more options available\n    pilot\n\n    # sh \"your_script.sh\"\n    # You can also use other beta testing services here (run `fastlane actions`)\n  end\n\n  desc \"Deploy a new version to the App Store\"\n  lane :release do\n    # match(type: \"appstore\")\n    # snapshot\n    gym(scheme: \"Marvel\") # Build your app - more options available\n    deliver(force: true)\n    # frameit\n  end\n\n  # You can define as many lanes as you want\n\n  after_all do |lane|\n    # This block is called, only if the executed lane was successful\n\n    # slack(\n    #   message: \"Successfully deployed new App Update.\"\n    # )\n  end\n\n  error do |lane, exception|\n    # slack(\n    #   message: exception.message,\n    #   success: false\n    # )\n  end\nend\n\n\n# More information about multiple platforms in fastlane: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md\n# All available actions: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Actions.md\n\n# fastlane reports which actions are used\n# No personal data is recorded. Learn more at https://github.com/fastlane/enhancer\n"
  },
  {
    "path": "fastlane/README.md",
    "content": "fastlane documentation\n================\n# Installation\n```\nsudo gem install fastlane\n```\n# Available Actions\n## iOS\n### ios test\n```\nfastlane ios test\n```\nRuns all the tests\n### ios beta\n```\nfastlane ios beta\n```\nSubmit a new Beta Build to Apple TestFlight\n\nThis will also make sure the profile is up to date\n### ios release\n```\nfastlane ios release\n```\nDeploy a new version to the App Store\n\n----\n\nThis README.md is auto-generated and will be re-generated every time [fastlane](https://fastlane.tools) is run.\nMore information about fastlane can be found on [https://fastlane.tools](https://fastlane.tools).\nThe documentation of fastlane can be found on [GitHub](https://github.com/fastlane/fastlane/tree/master/fastlane).\n"
  }
]