Compare commits

..
46 Commits
Author SHA1 Message Date
Florian Gabach e05dd8699e Bump to 1.0.5 2017-03-08 17:17:39 +01:00
Florian Gabach 599de6b72a Set default customisation 2017-03-08 17:17:09 +01:00
Florian Gabach 5acb789a62 More licence for exemple 2017-03-08 17:05:02 +01:00
Florian Gabach fe8d28cfcb Fix title 2017-03-08 17:03:37 +01:00
Florian Gabach 25d3bee5c1 Bump version 2017-03-08 17:01:40 +01:00
Florian Gabach bc80c351fb Fix warning 2017-03-08 17:01:31 +01:00
Florian Gabach c2ddafb489 Add contributor 2017-03-08 17:00:21 +01:00
Florian Gabach f0eda60afa Merge pull request #4 from DavidLari/master
Add title property/Remove hard coded title
2017-03-08 16:58:39 +01:00
Florian Gabach b566e460ad Merge branch 'master' into master 2017-03-08 16:57:07 +01:00
Florian Gabach c39454be01 Update README.md 2017-03-08 16:54:29 +01:00
Florian Gabach ddca5365fc Add verbose mode 2017-03-08 16:52:24 +01:00
Florian Gabach 797b669aa1 Update README.md 2017-03-08 16:47:14 +01:00
Florian Gabach ec4d296b9f Add public customisation 2017-03-08 16:46:23 +01:00
David Lari 37fa7e98e4 Merge pull request #1 from DavidLari/DavidLari-patch-1
Remove print() statement
2017-03-08 10:43:58 -05:00
David Lari 7916776680 Remove hard coded title 2017-03-08 10:38:33 -05:00
David Lari cdbdd930e6 Add title property 2017-03-08 10:36:18 -05:00
David Lari e087efe1cb Remove print() statement 2017-03-08 10:33:37 -05:00
Florian Gabach 8746135531 Add CHANGELOG 2017-03-06 08:54:00 +01:00
Florian Gabach 94602ea642 Add swift version file 2017-03-06 08:35:53 +01:00
Florian Gabach 0e39df021c Bump version 2017-03-06 08:34:16 +01:00
Florian Gabach b4c935c6c5 Make extension internal 2017-03-06 08:34:01 +01:00
Florian Gabach c83354c959 Update README.md 2017-03-05 15:26:08 +01:00
Florian Gabach 9b7b96a359 Update README.md 2017-03-05 15:24:45 +01:00
Florian Gabach 0d0c610678 Update README.md 2017-03-05 15:21:10 +01:00
Florian Gabach c32927f2bd Update README.md 2017-03-03 11:33:27 +01:00
Florian Gabach f041e631c8 Add contributor & contributing file 2017-03-03 11:11:05 +01:00
Florian Gabach e1b2e3a0b3 Bump version 2017-03-03 10:57:34 +01:00
Florian Gabach 3f1dad13dc Bump version 2017-03-03 10:56:50 +01:00
Florian Gabach d3d3a65776 Merge branch 'master' of https://github.com/terflogag/OpenSourceController 2017-03-03 10:55:23 +01:00
Florian Gabach 58daf0f708 Add default text 2017-03-03 10:55:19 +01:00
Florian Gabach 7ae1949d9c Update README.md 2017-03-03 10:48:09 +01:00
Florian Gabach 32a24c31dc Replace demo gif 2017-03-03 10:42:55 +01:00
Florian Gabach 88b67d62cc Add Array extensions 2017-03-03 10:34:10 +01:00
Florian Gabach 3c85e3a413 SwiftLint warning 2017-03-03 10:30:25 +01:00
Florian Gabach 8ee9fdbbc2 Update UI 2017-03-03 10:30:10 +01:00
Florian Gabach f201595937 Add poop file 2017-03-01 12:07:40 +01:00
Florian Gabach b3ef99250e Update README.md 2017-03-01 12:07:04 +01:00
Florian Gabach 73b530f1ad Update README.md 2017-02-28 17:55:04 +01:00
Florian Gabach 90f8ff46fc Add demonstration gif 2017-02-28 17:52:50 +01:00
Florian Gabach 9762f2c871 Add licence file for demo 2017-02-28 17:52:39 +01:00
Florian Gabach 02e2641995 Update README.md 2017-02-28 14:01:13 +01:00
Florian Gabach ec2fe2d21d Clean SwiftLint warning 2017-02-28 13:58:30 +01:00
Florian Gabach 991dcdb89a Init licence cell from LicenceFile object 2017-02-28 12:49:43 +01:00
Florian Gabach 3f041ea96b Update README.md 2017-02-28 12:37:43 +01:00
Florian Gabach 7f82b42868 Clean 2017-02-28 09:25:24 +01:00
Florian Gabach 444f723498 Add documentation 2017-02-28 09:09:37 +01:00
38 changed files with 3085 additions and 220 deletions
+1
View File
@@ -0,0 +1 @@
3.0.2
+14
View File
@@ -0,0 +1,14 @@
Changelog
==========
### 1.0.5
- Fix default customisation
### 1.0.4
- Add customisation way
### 1.0.3
- Remove public extension
+14
View File
@@ -0,0 +1,14 @@
Contributing 🚀
===============
For fixes, improvements or ideas, fork the repository and issue a pull request.
To get a pull request accepted, please adhere to these rules:
- Work from the latest `master` branch.
- Respect current code style and respect the [SwiftLint](https://github.com/realm/SwiftLint) rules (see swiftlint's file).
- If this is about new features, please make sure to add enable/disable configuration.
Ideally, only work on one feature at a time.
If you've done work on the code (i.e. not just fixes to the README), add yourself to the top of [`CONTRIBUTORS.md`](./CONTRIBUTORS.md).
Thank you, and happy coding ! 😘
+9
View File
@@ -0,0 +1,9 @@
Contributors
============
Contributors to the codebase :
| Name | Github handle | Mail |
| ------------- |------------- | ----- |
| David Lari | DavidLari | / |
@@ -1,151 +0,0 @@
// Generated by Apple Swift version 3.0.2 (swiftlang-800.0.63 clang-800.0.42.1)
#pragma clang diagnostic push
#if defined(__has_include) && __has_include(<swift/objc-prologue.h>)
# include <swift/objc-prologue.h>
#endif
#pragma clang diagnostic ignored "-Wauto-import"
#include <objc/NSObject.h>
#include <stdint.h>
#include <stddef.h>
#include <stdbool.h>
#if !defined(SWIFT_TYPEDEFS)
# define SWIFT_TYPEDEFS 1
# if defined(__has_include) && __has_include(<uchar.h>)
# include <uchar.h>
# elif !defined(__cplusplus) || __cplusplus < 201103L
typedef uint_least16_t char16_t;
typedef uint_least32_t char32_t;
# endif
typedef float swift_float2 __attribute__((__ext_vector_type__(2)));
typedef float swift_float3 __attribute__((__ext_vector_type__(3)));
typedef float swift_float4 __attribute__((__ext_vector_type__(4)));
typedef double swift_double2 __attribute__((__ext_vector_type__(2)));
typedef double swift_double3 __attribute__((__ext_vector_type__(3)));
typedef double swift_double4 __attribute__((__ext_vector_type__(4)));
typedef int swift_int2 __attribute__((__ext_vector_type__(2)));
typedef int swift_int3 __attribute__((__ext_vector_type__(3)));
typedef int swift_int4 __attribute__((__ext_vector_type__(4)));
typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2)));
typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3)));
typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4)));
#endif
#if !defined(SWIFT_PASTE)
# define SWIFT_PASTE_HELPER(x, y) x##y
# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y)
#endif
#if !defined(SWIFT_METATYPE)
# define SWIFT_METATYPE(X) Class
#endif
#if !defined(SWIFT_CLASS_PROPERTY)
# if __has_feature(objc_class_property)
# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__
# else
# define SWIFT_CLASS_PROPERTY(...)
# endif
#endif
#if defined(__has_attribute) && __has_attribute(objc_runtime_name)
# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X)))
#else
# define SWIFT_RUNTIME_NAME(X)
#endif
#if defined(__has_attribute) && __has_attribute(swift_name)
# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X)))
#else
# define SWIFT_COMPILE_NAME(X)
#endif
#if defined(__has_attribute) && __has_attribute(objc_method_family)
# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X)))
#else
# define SWIFT_METHOD_FAMILY(X)
#endif
#if defined(__has_attribute) && __has_attribute(noescape)
# define SWIFT_NOESCAPE __attribute__((noescape))
#else
# define SWIFT_NOESCAPE
#endif
#if !defined(SWIFT_CLASS_EXTRA)
# define SWIFT_CLASS_EXTRA
#endif
#if !defined(SWIFT_PROTOCOL_EXTRA)
# define SWIFT_PROTOCOL_EXTRA
#endif
#if !defined(SWIFT_ENUM_EXTRA)
# define SWIFT_ENUM_EXTRA
#endif
#if !defined(SWIFT_CLASS)
# if defined(__has_attribute) && __has_attribute(objc_subclassing_restricted)
# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA
# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
# else
# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA
# endif
#endif
#if !defined(SWIFT_PROTOCOL)
# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA
#endif
#if !defined(SWIFT_EXTENSION)
# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__)
#endif
#if !defined(OBJC_DESIGNATED_INITIALIZER)
# if defined(__has_attribute) && __has_attribute(objc_designated_initializer)
# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer))
# else
# define OBJC_DESIGNATED_INITIALIZER
# endif
#endif
#if !defined(SWIFT_ENUM)
# define SWIFT_ENUM(_type, _name) enum _name : _type _name; enum SWIFT_ENUM_EXTRA _name : _type
# if defined(__has_feature) && __has_feature(generalized_swift_name)
# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_EXTRA _name : _type
# else
# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME) SWIFT_ENUM(_type, _name)
# endif
#endif
#if !defined(SWIFT_UNAVAILABLE)
# define SWIFT_UNAVAILABLE __attribute__((unavailable))
#endif
#if defined(__has_feature) && __has_feature(modules)
@import ObjectiveC;
#endif
#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch"
#pragma clang diagnostic ignored "-Wduplicate-method-arg"
SWIFT_CLASS("_TtC20OpenSourceController11LicenceFile")
@interface LicenceFile : NSObject
/**
Licence initializer
\param title name of the library
\param url url of the licence content
*/
- (nonnull instancetype)initWithTitle:(NSString * _Nonnull)title url:(NSString * _Nonnull)url OBJC_DESIGNATED_INITIALIZER;
- (nonnull instancetype)init SWIFT_UNAVAILABLE;
@end
@class UIViewController;
SWIFT_CLASS("_TtC20OpenSourceController20OpenSourceController")
@interface OpenSourceController : NSObject
@property (nonatomic, copy) NSArray<LicenceFile *> * _Nullable licences;
/**
Present OpenSourceViewController embbeded in navigation controller
\param from the source controller
*/
- (void)presentOpenSourceControllerFrom:(UIViewController * _Nonnull)from;
- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER;
@end
#pragma clang diagnostic pop
@@ -1,10 +0,0 @@
framework module OpenSourceController {
umbrella header "OpenSourceController-umbrella.h"
export *
module * { export * }
}
module OpenSourceController.Swift {
header "OpenSourceController-Swift.h"
}
Binary file not shown.
@@ -14,6 +14,9 @@
607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */; };
607FACEC1AFB9204008FA782 /* Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACEB1AFB9204008FA782 /* Tests.swift */; };
6B97E461A777A38641DFF2BB /* Pods_OpenSourceController_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 01C1ED0DAD6B8C56070C2725 /* Pods_OpenSourceController_Example.framework */; };
767195ED1E697890005424C6 /* CONTRIBUTORS.md in Sources */ = {isa = PBXBuildFile; fileRef = 767195EC1E697890005424C6 /* CONTRIBUTORS.md */; };
767195EF1E697896005424C6 /* CONTRIBUTING.md in Sources */ = {isa = PBXBuildFile; fileRef = 767195EE1E697896005424C6 /* CONTRIBUTING.md */; };
768FE1CC1E7062350037E80E /* CHANGELOG.md in Sources */ = {isa = PBXBuildFile; fileRef = 768FE1CB1E7062350037E80E /* CHANGELOG.md */; };
DE9F38AD98FC5DFBDF7EADF1 /* Pods_OpenSourceController_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B544A0C5F114143EEFD0366A /* Pods_OpenSourceController_Tests.framework */; };
/* End PBXBuildFile section */
@@ -54,6 +57,9 @@
607FACEB1AFB9204008FA782 /* Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tests.swift; sourceTree = "<group>"; };
64B1D807A1D310FDA418A3AD /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = "<group>"; };
64E410A815536CB40C9EFD4D /* Pods-OpenSourceController_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OpenSourceController_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-OpenSourceController_Example/Pods-OpenSourceController_Example.debug.xcconfig"; sourceTree = "<group>"; };
767195EC1E697890005424C6 /* CONTRIBUTORS.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; name = CONTRIBUTORS.md; path = ../CONTRIBUTORS.md; sourceTree = "<group>"; };
767195EE1E697896005424C6 /* CONTRIBUTING.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; name = CONTRIBUTING.md; path = ../CONTRIBUTING.md; sourceTree = "<group>"; };
768FE1CB1E7062350037E80E /* CHANGELOG.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; name = CHANGELOG.md; path = ../CHANGELOG.md; sourceTree = "<group>"; };
7992D734190D4686F9AF2409 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = "<group>"; };
87501F335829155E114806FA /* Pods-OpenSourceController_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OpenSourceController_Tests.release.xcconfig"; path = "Pods/Target Support Files/Pods-OpenSourceController_Tests/Pods-OpenSourceController_Tests.release.xcconfig"; sourceTree = "<group>"; };
B544A0C5F114143EEFD0366A /* Pods_OpenSourceController_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_OpenSourceController_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -147,6 +153,9 @@
C1CC167BCAEA652E1A800918 /* OpenSourceController.podspec */,
64B1D807A1D310FDA418A3AD /* README.md */,
7992D734190D4686F9AF2409 /* LICENSE */,
767195EC1E697890005424C6 /* CONTRIBUTORS.md */,
767195EE1E697896005424C6 /* CONTRIBUTING.md */,
768FE1CB1E7062350037E80E /* CHANGELOG.md */,
);
name = "Podspec Metadata";
sourceTree = "<group>";
@@ -235,6 +244,7 @@
};
607FACE41AFB9204008FA782 = {
CreatedOnToolsVersion = 6.3.1;
DevelopmentTeam = 62PP362QNQ;
LastSwiftMigration = 0820;
TestTargetID = 607FACCF1AFB9204008FA782;
};
@@ -404,7 +414,10 @@
buildActionMask = 2147483647;
files = (
607FACD81AFB9204008FA782 /* ViewController.swift in Sources */,
768FE1CC1E7062350037E80E /* CHANGELOG.md in Sources */,
607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */,
767195EF1E697896005424C6 /* CONTRIBUTING.md in Sources */,
767195ED1E697890005424C6 /* CONTRIBUTORS.md in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -571,6 +584,7 @@
isa = XCBuildConfiguration;
baseConfigurationReference = B618AB26E5C0028641390646 /* Pods-OpenSourceController_Tests.debug.xcconfig */;
buildSettings = {
DEVELOPMENT_TEAM = 62PP362QNQ;
FRAMEWORK_SEARCH_PATHS = "$(inherited)";
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
@@ -588,6 +602,7 @@
isa = XCBuildConfiguration;
baseConfigurationReference = 87501F335829155E114806FA /* Pods-OpenSourceController_Tests.release.xcconfig */;
buildSettings = {
DEVELOPMENT_TEAM = 62PP362QNQ;
FRAMEWORK_SEARCH_PATHS = "$(inherited)";
INFOPLIST_FILE = Tests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
@@ -13,7 +13,6 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
return true
@@ -41,6 +40,4 @@ class AppDelegate: UIResponder, UIApplicationDelegate {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
}
@@ -11,6 +11,8 @@ import OpenSourceController
class ViewController: UIViewController {
// MARK: - Lifecycle
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib
@@ -21,13 +23,61 @@ class ViewController: UIViewController {
// Dispose of any resources that can be recreated.
}
// MARK: - Action
/// Handle button click & show the controller with licences
@IBAction func showOpenSource(_ sender: Any) {
// Create controller
let openSourceVC = OpenSourceController()
openSourceVC.licences = [LicenceFile(title: "FacebookImagePicker",
// Apply somre customisation if you want !
//self.controllerCustomUI(openSourceVC: openSourceVC)
// Init with LicenceFile object
openSourceVC.licences = [LicenceFile(title: "FacebookImagePicker",
url: "https://raw.githubusercontent.com/terflogag/FacebookImagePicker/master/LICENSE"),
LicenceFile(title: "JSQMessagesViewController",
url: "https://raw.githubusercontent.com/jessesquires/JSQMessagesViewController/develop/LICENSE")]
LicenceFile(title: "JSQMessagesViewController",
url: "https://raw.githubusercontent.com/jessesquires/JSQMessagesViewController/develop/LICENSE"),
LicenceFile(title: "OpenSourceController",
url: "https://raw.githubusercontent.com/terflogag/OpenSourceController/master/LICENSE"),
LicenceFile(title: "PermissionScope",
url: "https://raw.githubusercontent.com/nickoneill/PermissionScope/master/LICENSE"),
LicenceFile(title: "EasyTipView",
url: "https://raw.githubusercontent.com/teodorpatras/EasyTipView/master/LICENSE"),
LicenceFile(title: "ReachabilitySwift",
url: "https://raw.githubusercontent.com/ashleymills/Reachability.swift/master/LICENSE"),
LicenceFile(title: "KeychainAccess",
url: "https://raw.githubusercontent.com/kishikawakatsumi/KeychainAccess/master/LICENSE")]
// Present controller
openSourceVC.presentOpenSourceController(from: self)
}
}
// Customization
fileprivate func controllerCustomUI(openSourceVC: OpenSourceController) {
// Navigation bar title
openSourceVC.config.title = "MyCustomTitle"
// Navigation bar tint color
openSourceVC.config.uiConfig.barTintColor = UIColor.red
// Close button color
openSourceVC.config.uiConfig.closeButtonColor = UIColor.white
// BackgroundColor
openSourceVC.config.uiConfig.backgroundColor = UIColor.red.withAlphaComponent(0.6)
// Licence text color
openSourceVC.config.uiConfig.licenceTextColor = UIColor.white
// Navigation bar title color
openSourceVC.config.uiConfig.titleColor = UIColor.white
// Licence cell background color
openSourceVC.config.uiConfig.licenceBackgroundColor = UIColor.red
// Verbose mode
openSourceVC.config.verbose = true
}
}
+6 -6
View File
@@ -3,27 +3,27 @@ import XCTest
import OpenSourceController
class Tests: XCTestCase {
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
}
override func tearDown() {
// Put teardown code here. This method is called after the invocation of each test method in the class.
super.tearDown()
}
func testExample() {
// This is an example of a functional test case.
XCTAssert(true, "Pass")
}
func testPerformanceExample() {
// This is an example of a performance test case.
self.measure() {
self.measure {
// Put the code you want to measure the time of here.
}
}
}
+1 -1
View File
@@ -1,4 +1,4 @@
Copyright (c) 2017 terflogag <florian.gabach@gmail.com>
Copyright (c) 2016 Florian Gabach <contact@floriangabach.fr>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
+5 -10
View File
@@ -1,17 +1,12 @@
Pod::Spec.new do |s|
s.name = 'OpenSourceController'
s.version = '0.1.0'
s.summary = 'Blablablabla blabbla blabbla blabbla'
s.description = 'Blablablabla blabbla blabbla blabbla blabbla blabbla blabbla blabbla blabbla blabbla'
s.homepage = 'https://github.com/terflogag/GBHFacebookImagePicker'
s.version = '1.0.5'
s.summary = 'Display all the librarys licence used in your application. Enjoy !'
s.description = 'Display a screen with all licence used in your apply can be painful to maintain. OpenSourceController was built to respond to this problem. OpenSourceController is a simple parser to display the licences which are used in your application.'
s.homepage = 'https://github.com/terflogag/OpenSourceController'
s.license = { :type => 'MIT', :file => 'LICENSE' }
s.author = { 'Florian Gabach' => 'contact@floriangabach.fr' }
s.source = { :git => 'https://github.com/terflogag/GBHFacebookImagePicker.git', :tag => s.version.to_s }
s.source = { :git => 'https://github.com/terflogag/OpenSourceController.git', :tag => s.version.to_s }
s.ios.deployment_target = '9.0'
s.source_files = 'OpenSourceController/Classes/**/*'
s.resource_bundles = {
'OpenSourceController' => [
'Images/*.{png}','OpenSourceController/Classes/Storyboard/*.{storyboard,xib}'
]
}
end
@@ -11,18 +11,24 @@ import UIKit
public class OpenSourceController: NSObject {
// Contains list of licence object
public var licences: [LicenceFile]?
open var licences: [LicenceFile]?
// Configuration
open var config = OpenSourceControllerConfig()
/// Present OpenSourceViewController embbeded in navigation controller
///
/// - Parameter from: the source controller
public final func presentOpenSourceController(from: UIViewController) {
open func presentOpenSourceController(from: UIViewController) {
// Create open source controller
let licenceController = OpenSourceViewController()
// Init licence
licenceController.licences = self.licences
// Init config
licenceController.config = self.config
// Embed in navigation controller
let navController = UINavigationController(rootViewController: licenceController)
@@ -19,7 +19,10 @@ class OpenSourceViewController: UITableViewController {
private let reuseIdentifier = "openSourceCell"
/// Contains all licence object before downloaded
var licences: [LicenceFile]?
internal var licences: [LicenceFile]?
// Controller configuration for customization
internal var config = OpenSourceControllerConfig()
/// Contains all licences object after downloaded
fileprivate var downloadedLicence: [LicenceFile]? {
@@ -54,7 +57,8 @@ class OpenSourceViewController: UITableViewController {
fileprivate func prepareLicences() {
if let licences = self.licences {
self.startLoading()
LicenceDownloader.downloadLicences(licences: licences) { () in
LicenceDownloader.downloadLicences(licences: licences,
config: self.config) { () in
// Update licences
self.downloadedLicence = self.licences
}
@@ -65,16 +69,31 @@ class OpenSourceViewController: UITableViewController {
fileprivate func prepareTableView() {
// Common init
self.tableView.tableFooterView = UIView()
self.title = NSLocalizedString("Tiers library", comment: "")
self.tableView.register(OpenSourceTableViewCell.self, forCellReuseIdentifier: self.reuseIdentifier)
self.title = self.config.title
self.tableView.register(OpenSourceTableViewCell.self,
forCellReuseIdentifier: self.reuseIdentifier)
self.tableView.dataSource = self
self.tableView.delegate = self
self.tableView.separatorStyle = .singleLine
if let backgroundColor = self.config.uiConfig.backgroundColor {
self.tableView.backgroundColor = backgroundColor
}
// Navigation bar
if let tintColor = self.config.uiConfig.barTintColor {
self.navigationController?.navigationBar.barTintColor = tintColor
}
if let textColor = self.config.uiConfig.titleColor {
let attribut = [NSForegroundColorAttributeName: textColor]
self.navigationController?.navigationBar.titleTextAttributes = attribut
}
// Close button (on the right corner of navigation bar)
let closeButton = UIBarButtonItem(barButtonSystemItem: .stop,
target: self,
action: #selector(self.closePicker))
closeButton.tintColor = config.uiConfig.closeButtonColor ?? UIColor.black
self.navigationItem.rightBarButtonItem = closeButton
// Loading indicator
@@ -119,24 +138,22 @@ class OpenSourceViewController: UITableViewController {
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
var cell = tableView.dequeueReusableCell(withIdentifier: self.reuseIdentifier,
for: indexPath) as? OpenSourceTableViewCell
// Init cell
if cell == nil {
cell = OpenSourceTableViewCell(style: UITableViewCellStyle.default,
reuseIdentifier: self.reuseIdentifier)
}
let libraryTitleAttribut = [NSFontAttributeName: UIFont.boldSystemFont(ofSize: UIFont.systemFontSize + 2)]
let libraryLicenceAttribut = [NSFontAttributeName: UIFont.systemFont(ofSize: UIFont.systemFontSize)]
let libraryTitle = NSMutableAttributedString(string: self.downloadedLicence?[indexPath.row].title ?? "",
attributes: libraryTitleAttribut)
libraryTitle.append(NSAttributedString(string: "\n\n"))
libraryTitle.append(NSAttributedString(string: self.downloadedLicence?[indexPath.row].detail ?? "",
attributes: libraryLicenceAttribut))
cell?.textLabel?.attributedText = libraryTitle
// Configure the cell with licence
if let licence = self.downloadedLicence?.get(at: indexPath.row) {
cell?.configure(licence: licence, config: self.config)
}
return cell!
}
override func tableView(_ tableView: UITableView, estimatedHeightForRowAt indexPath: IndexPath) -> CGFloat {
// Automatic dimension
return UITableViewAutomaticDimension
}
@@ -0,0 +1,22 @@
//
// Array+Extensions.swift
// Pods
//
// Created by Florian Gabach on 03/03/2017.
//
//
import Foundation
extension Array {
/// Get an index safely
func get(at index: Int) -> Element? {
guard index >= 0
&& index < count else {
return nil
}
return self[index]
}
}
@@ -16,6 +16,7 @@ class LicenceDownloader: NSObject {
/// - licences: array which contains licence model model
/// - completion: end downloading completion
class func downloadLicences(licences: [LicenceFile],
config: OpenSourceControllerConfig,
completion: @escaping () -> Void) {
// Number of licences
let licenceCount = licences.count
@@ -25,7 +26,7 @@ class LicenceDownloader: NSObject {
// Download licence's detail for every lience
for licence in licences {
licence.downloadLicenceDetail(completion: { () in
licence.downloadLicenceDetail(config: config, completion: { () in
alreadyDownloaded += 1
// If this is the last licence, perfom completion
@@ -31,12 +31,15 @@ public class LicenceFile: NSObject {
public init(title: String, url: String) {
self.title = title
self.url = url
self.detail = NSLocalizedString("Unable to load this licence.",
comment: "")
}
/// Download licence detail
///
/// - Parameter completion: end of download handler
func downloadLicenceDetail(completion: @escaping (Void) -> Void) {
func downloadLicenceDetail(config: OpenSourceControllerConfig,
completion: @escaping (Void) -> Void) {
if let url = URL(string: self.url) {
let task = URLSession.shared.dataTask(with: url) { (data, _, _) in
if let data = data,
@@ -46,7 +49,9 @@ public class LicenceFile: NSObject {
self.detail = html
// Log
print("Licence for \(self.title ?? "") downloaded with success.")
if config.verbose {
print("Licence for \(self.title ?? "") downloaded with success.")
}
}
completion()
}
@@ -0,0 +1,41 @@
//
// OpenSourceControllerConfig.swift
// Pods
//
// Created by Florian Gabach on 08/03/2017.
//
//
/// Simple struct to hold settings
public struct OpenSourceControllerConfig {
/// Sub-stuct holding configuration relevant to UI presentation !
public struct UIConfig {
/// Will be applied to the navigation bar
public var barTintColor: UIColor?
/// Will be applied to the navigation bar
public var backgroundColor: UIColor?
/// Will be applied to licence text
public var licenceBackgroundColor: UIColor?
/// Will be applied to the navigation bar
public var closeButtonColor: UIColor?
/// Will be applied to licence text
public var licenceTextColor: UIColor?
/// Will be applied to licence text
public var titleColor: UIColor?
}
/// Will be applied to the navigation bar title
public var title: String = "Tiers library"
// Verbose mode for print log when licence are downloaded
public var verbose: Bool = false
/// UI-specific configuration.
public var uiConfig = UIConfig()
}
@@ -10,17 +10,13 @@ import UIKit
class OpenSourceTableViewCell: UITableViewCell {
// MARK: IBOutlet
@IBOutlet var licenceTitle: UILabel!
@IBOutlet var licenceDesc: UILabel!
// MARK: - Lifecycle
override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
super.init(style: .default,
reuseIdentifier: reuseIdentifier)
// Prepare cell
self.prepareCellComponent()
}
@@ -52,12 +48,24 @@ class OpenSourceTableViewCell: UITableViewCell {
/// Initialize the cell content with Licence model
///
/// - Parameter licence: the licence model
func configure(licence: LicenceFile) {
func configure(licence: LicenceFile, config: OpenSourceControllerConfig) {
// Library's name
self.licenceTitle.text = licence.title
// Build attributed text
let libraryTitleAttribut = [NSFontAttributeName: UIFont.boldSystemFont(ofSize: UIFont.systemFontSize + 2)]
let libraryLicenceAttribut = [NSFontAttributeName: UIFont.systemFont(ofSize: UIFont.systemFontSize)]
let libraryTitle = NSMutableAttributedString(string: licence.title ?? "",
attributes: libraryTitleAttribut)
libraryTitle.append(NSAttributedString(string: "\n\n"))
libraryTitle.append(NSAttributedString(string: licence.detail ?? "",
attributes: libraryLicenceAttribut))
// Library licence's detail
self.licenceDesc.text = licence.detail
// Set text
self.textLabel?.attributedText = libraryTitle
self.textLabel?.textColor = config.uiConfig.licenceTextColor
// Background
if let backgroundColor = config.uiConfig.licenceBackgroundColor {
self.backgroundColor = backgroundColor
}
}
}
+110 -9
View File
@@ -1,16 +1,47 @@
# OpenSourceController
<p align="center">
<img src="https://github.com/terflogag/OpenSourceController/blob/master/Ressources/welcome_img.png" alt="OpenSourceController" />
</p>
[![CI Status](http://img.shields.io/travis/terflogag/OpenSourceController.svg?style=flat)](https://travis-ci.org/terflogag/OpenSourceController)
[![Version](https://img.shields.io/cocoapods/v/OpenSourceController.svg?style=flat)](http://cocoapods.org/pods/OpenSourceController)
[![License](https://img.shields.io/cocoapods/l/OpenSourceController.svg?style=flat)](http://cocoapods.org/pods/OpenSourceController)
[![Platform](https://img.shields.io/cocoapods/p/OpenSourceController.svg?style=flat)](http://cocoapods.org/pods/OpenSourceController)
<p align="center">
<a href="https://cocoapods.org/pods/OpenSourceController" target="_blank"><img src="https://img.shields.io/cocoapods/v/OpenSourceController.svg?style=flat" alt="Cocoapods version" /></a>
<a href="http://cocoapods.org/pods/OpenSourceController" target="_blank"><img src="https://img.shields.io/cocoapods/p/OpenSourceController.svg?style=flat" alt="Cocoapods plateform" /></a>
<img src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg" alt="Prs welcome" />
</p>
## Example
<p align="center">
<a href="#features">Features</a>
• <a href="#installation">Installation</a>
• <a href="#usage">Usage</a>
• <a href="#translation">Translation</a>
• <a href="#customisation">Customisation</a>
• <a href="#license">License</a>
</p>
To run the example project, clone the repo, and run `pod install` from the Example directory first.
Display a screen with all licences used in your application can be painful to maintain. OpenSourceController was built to respond to this problem. OpenSourceController is a simple parser to display the licences which are used in your application.
<p align="center">
<img src="https://github.com/terflogag/OpenSourceController/blob/master/Ressources/demo.gif" alt="OpenSourceController" />
</p>
## Features
- [x] Display tableView with licences used in your app
- [x] Download licence from an URL
## Todo (feel free to make PR)
- [ ] Download licence from Podfile (https://github.com/terflogag/OpenSourceController/issues/1)
- [ ] Download licence from Cartfile (https://github.com/terflogag/OpenSourceController/issues/2)
- [ ] Download licence from local file
- [ ] Carthage support
- [ ] Unit & UI Test
## Requirements
* Xcode 8
* iOS 9.0+ target deployment
* Swift 3 project
## Installation
OpenSourceController is available through [CocoaPods](http://cocoapods.org). To install
@@ -20,10 +51,80 @@ it, simply add the following line to your Podfile:
pod "OpenSourceController"
```
## Usage
- Import the library :
```swift
import OpenSourceController
```
- Display the controller :
```swift
// Create controller
let openSourceVC = OpenSourceController()
// Init with LicenceFile object
openSourceVC.licences = [LicenceFile(title: "FacebookImagePicker",
url: "https://raw.githubusercontent.com/terflogag/FacebookImagePicker/master/LICENSE"),
LicenceFile(title: "JSQMessagesViewController",
url: "https://raw.githubusercontent.com/jessesquires/JSQMessagesViewController/develop/LICENSE")]
// Present controller
openSourceVC.presentOpenSourceController(from: self)
```
## Customisation
You can apply some customisation. To do it you can use the OpenSourceControllerConfig structure like this :
```swift
// Navigation bar title
openSourceVC.config.title = "MyCustomTitle"
// Navigation bar tint color
openSourceVC.config.uiConfig.barTintColor = UIColor.red
// Close button color
openSourceVC.config.uiConfig.closeButtonColor = UIColor.white
// BackgroundColor
openSourceVC.config.uiConfig.backgroundColor = UIColor.red.withAlphaComponent(0.6)
// Licence text color
openSourceVC.config.uiConfig.licenceTextColor = UIColor.white
// Navigation bar title color
openSourceVC.config.uiConfig.titleColor = UIColor.white
// Licence cell background color
openSourceVC.config.uiConfig.licenceBackgroundColor = UIColor.red
// Verbose mode
openSourceVC.config.verbose = true
```
## Translation
OpenSourceController is currently write in english. If you need translation for the permission popup (or whatever thing), just add this line in your localized file :
```
"Unable to load this licence." = "<your_translation>";
```
## Applications
Some applications already use this controller like :
- [Troll Generator](https://itunes.apple.com/fr/app/troll-generator/id1038097542?mt=8)
- [Giraf](https://itunes.apple.com/fr/app/giraf/id1136592561?mt=8)
What about yours ? If your application also use this library, feel free to contact me or make pull request on the README 😁
## Author
terflogag, florian.gabach@gmail.com
Florian Gabach, contact@floriangabach.fr
## License
OpenSourceController is available under the MIT license. See the LICENSE file for more info.
OpenSourceController is available under the [MIT license](LICENSE).
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

+455
View File
@@ -0,0 +1,455 @@
print("A: Hello !")
print("B : Whats the fuck are you doing with this swift file ?")
print("A: Just trying to add some Swift line for github...")
print("B: Really ?")
print("A: Hello")
print("B: What ??")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
+455
View File
@@ -0,0 +1,455 @@
print("A: Hello !")
print("B : Whats the fuck are you doing with this swift file ?")
print("A: Just trying to add some Swift line for github...")
print("B: Really ?")
print("A: Hello")
print("B: What ??")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
+455
View File
@@ -0,0 +1,455 @@
print("A: Hello !")
print("B : Whats the fuck are you doing with this swift file ?")
print("A: Just trying to add some Swift line for github...")
print("B: Really ?")
print("A: Hello")
print("B: What ??")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
+455
View File
@@ -0,0 +1,455 @@
print("A: Hello !")
print("B : Whats the fuck are you doing with this swift file ?")
print("A: Just trying to add some Swift line for github...")
print("B: Really ?")
print("A: Hello")
print("B: What ??")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
+455
View File
@@ -0,0 +1,455 @@
print("A: Hello !")
print("B : Whats the fuck are you doing with this swift file ?")
print("A: Just trying to add some Swift line for github...")
print("B: Really ?")
print("A: Hello")
print("B: What ??")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
+455
View File
@@ -0,0 +1,455 @@
print("A: Hello !")
print("B : Whats the fuck are you doing with this swift file ?")
print("A: Just trying to add some Swift line for github...")
print("B: Really ?")
print("A: Hello")
print("B: What ??")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
print("A: Hello")
Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB