From 0246ee905a88f119f578f400f5e543e243bab1a1 Mon Sep 17 00:00:00 2001 From: Arthur Ariel Sabintsev Date: Sat, 10 Mar 2018 19:51:58 -0500 Subject: [PATCH] Updated docs --- CONTRIBUTORS.md | 2 +- Gemfile.lock | 44 +- Siren.podspec | 2 +- .../docs}/Classes.html | 25 +- .../docs}/Classes/Siren.html | 93 +- .../docs}/Classes/Siren/AlertType.html | 39 +- .../docs}/Classes/Siren/LanguageType.html | 143 +- .../docs}/Classes/Siren/VersionCheckType.html | 37 +- .../docs}/Enums.html | 35 +- .../docs}/Enums/UpdateType.html | 41 +- .../docs}/Protocols.html | 25 +- .../docs}/Protocols/SirenDelegate.html | 39 +- SirenExample/docs/Structs.html | 183 +++ .../docs/Structs/SirenAlertMessaging.html | 242 +++ .../SirenAlertMessaging/Constants.html | 239 +++ SirenExample/docs/Structs/SirenError.html | 136 ++ .../docs/Structs/SirenError/Known.html | 375 +++++ SirenExample/docs/badge.svg | 28 + .../docs}/css/highlight.css | 0 .../docs}/css/jazzy.css | 0 .../docs}/docsets/.docset/Contents/Info.plist | 0 .../Contents/Resources/Documents/Classes.html | 138 ++ .../Resources/Documents/Classes/Siren.html | 744 +++++++++ .../Documents/Classes/Siren/AlertType.html | 231 +++ .../Documents/Classes/Siren/LanguageType.html | 1369 ++++++++++++++++ .../Classes/Siren/VersionCheckType.html | 199 +++ .../Contents/Resources/Documents/Enums.html | 142 ++ .../Resources/Documents/Enums/UpdateType.html | 267 ++++ .../Resources/Documents/Protocols.html | 138 ++ .../Documents/Protocols/SirenDelegate.html | 348 ++++ .../Contents/Resources/Documents/Structs.html | 183 +++ .../Structs/SirenAlertMessaging.html | 242 +++ .../SirenAlertMessaging/Constants.html | 239 +++ .../Documents/Structs/SirenError.html | 136 ++ .../Documents/Structs/SirenError/Known.html | 375 +++++ .../Resources/Documents/css/highlight.css | 200 +++ .../Resources/Documents/css/jazzy.css | 337 ++++ .../Resources/Documents/img/carat.png | Bin .../Contents/Resources/Documents/img/dash.png | Bin .../Contents/Resources/Documents/img/gh.png | Bin .../Contents/Resources/Documents/index.html | 23 +- .../Contents/Resources/Documents/js/jazzy.js | 0 .../Resources/Documents/js/jquery.min.js | 0 .../Contents/Resources/Documents/search.json | 1 + .../.docset/Contents/Resources/docSet.dsidx | Bin 0 -> 36864 bytes SirenExample/docs/docsets/.tgz | Bin 0 -> 60644 bytes SirenExample/docs/img/carat.png | Bin 0 -> 274 bytes SirenExample/docs/img/dash.png | Bin 0 -> 1338 bytes SirenExample/docs/img/gh.png | Bin 0 -> 1571 bytes SirenExample/docs/index.html | 97 ++ SirenExample/docs/js/jazzy.js | 46 + SirenExample/docs/js/jquery.min.js | 4 + SirenExample/docs/search.json | 1 + SirenExample/docs/undocumented.json | 6 + Sources/Siren.swift | 54 +- Sources/SirenError.swift | 6 +- docs/Classes.html | 30 +- docs/Classes/Siren.html | 98 +- docs/Classes/Siren/AlertType.html | 44 +- docs/Classes/Siren/LanguageType.html | 272 ++-- docs/Classes/Siren/VersionCheckType.html | 42 +- docs/Enums.html | 40 +- docs/Enums/UpdateType.html | 61 +- docs/Protocols.html | 30 +- docs/Protocols/SirenDelegate.html | 44 +- docs/Structs.html | 185 +++ docs/Structs/SirenAlertMessaging.html | 244 +++ .../SirenAlertMessaging/Constants.html | 246 +++ docs/Structs/SirenError.html | 139 ++ docs/Structs/SirenError/Known.html | 417 +++++ docs/badge.svg | 29 +- .../Contents/Resources/Documents/search.json | 1 - .../.docset/Contents/Resources/docSet.dsidx | Bin 32768 -> 0 bytes docs/docsets/.tgz | Bin 55731 -> 0 bytes docs/docsets/Siren.docset/Contents/Info.plist | 20 + .../Contents/Resources/Documents/Classes.html | 139 ++ .../Resources/Documents/Classes/Siren.html | 745 +++++++++ .../Documents/Classes/Siren/AlertType.html | 232 +++ .../Documents/Classes/Siren/LanguageType.html | 1412 +++++++++++++++++ .../Classes/Siren/VersionCheckType.html | 200 +++ .../Contents/Resources/Documents/Enums.html | 143 ++ .../Resources/Documents/Enums/UpdateType.html | 273 ++++ .../Resources/Documents/Protocols.html | 139 ++ .../Documents/Protocols/SirenDelegate.html | 349 ++++ .../Contents/Resources/Documents/Structs.html | 185 +++ .../Structs/SirenAlertMessaging.html | 244 +++ .../SirenAlertMessaging/Constants.html | 246 +++ .../Documents/Structs/SirenError.html | 139 ++ .../Documents/Structs/SirenError/Known.html | 417 +++++ .../Resources/Documents/css/highlight.css | 200 +++ .../Resources/Documents/css/jazzy.css | 337 ++++ .../Resources/Documents/img/carat.png | Bin 0 -> 274 bytes .../Contents/Resources/Documents/img/dash.png | Bin 0 -> 1338 bytes .../Contents/Resources/Documents/img/gh.png | Bin 0 -> 1571 bytes .../Contents/Resources/Documents/index.html | 436 +++++ .../Contents/Resources/Documents/js/jazzy.js | 46 + .../Resources/Documents/js/jquery.min.js | 4 + .../Contents/Resources/Documents/search.json | 1 + .../Contents/Resources/docSet.dsidx | Bin 0 -> 36864 bytes docs/docsets/Siren.tgz | Bin 0 -> 67712 bytes docs/index.html | 374 ++++- docs/search.json | 2 +- docs/undocumented.json | 458 +++++- 103 files changed, 15521 insertions(+), 396 deletions(-) rename {docs/docsets/.docset/Contents/Resources/Documents => SirenExample/docs}/Classes.html (76%) rename {docs/docsets/.docset/Contents/Resources/Documents => SirenExample/docs}/Classes/Siren.html (76%) rename {docs/docsets/.docset/Contents/Resources/Documents => SirenExample/docs}/Classes/Siren/AlertType.html (80%) rename {docs/docsets/.docset/Contents/Resources/Documents => SirenExample/docs}/Classes/Siren/LanguageType.html (82%) rename {docs/docsets/.docset/Contents/Resources/Documents => SirenExample/docs}/Classes/Siren/VersionCheckType.html (76%) rename {docs/docsets/.docset/Contents/Resources/Documents => SirenExample/docs}/Enums.html (73%) rename {docs/docsets/.docset/Contents/Resources/Documents => SirenExample/docs}/Enums/UpdateType.html (80%) rename {docs/docsets/.docset/Contents/Resources/Documents => SirenExample/docs}/Protocols.html (77%) rename {docs/docsets/.docset/Contents/Resources/Documents => SirenExample/docs}/Protocols/SirenDelegate.html (81%) create mode 100644 SirenExample/docs/Structs.html create mode 100644 SirenExample/docs/Structs/SirenAlertMessaging.html create mode 100644 SirenExample/docs/Structs/SirenAlertMessaging/Constants.html create mode 100644 SirenExample/docs/Structs/SirenError.html create mode 100644 SirenExample/docs/Structs/SirenError/Known.html create mode 100644 SirenExample/docs/badge.svg rename {docs/docsets/.docset/Contents/Resources/Documents => SirenExample/docs}/css/highlight.css (100%) rename {docs/docsets/.docset/Contents/Resources/Documents => SirenExample/docs}/css/jazzy.css (100%) rename {docs => SirenExample/docs}/docsets/.docset/Contents/Info.plist (100%) create mode 100644 SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Classes.html create mode 100644 SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren.html create mode 100644 SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren/AlertType.html create mode 100644 SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren/LanguageType.html create mode 100644 SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren/VersionCheckType.html create mode 100644 SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Enums.html create mode 100644 SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Enums/UpdateType.html create mode 100644 SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Protocols.html create mode 100644 SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Protocols/SirenDelegate.html create mode 100644 SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Structs.html create mode 100644 SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Structs/SirenAlertMessaging.html create mode 100644 SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Structs/SirenAlertMessaging/Constants.html create mode 100644 SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Structs/SirenError.html create mode 100644 SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Structs/SirenError/Known.html create mode 100644 SirenExample/docs/docsets/.docset/Contents/Resources/Documents/css/highlight.css create mode 100644 SirenExample/docs/docsets/.docset/Contents/Resources/Documents/css/jazzy.css rename {docs => SirenExample/docs}/docsets/.docset/Contents/Resources/Documents/img/carat.png (100%) rename {docs => SirenExample/docs}/docsets/.docset/Contents/Resources/Documents/img/dash.png (100%) rename {docs => SirenExample/docs}/docsets/.docset/Contents/Resources/Documents/img/gh.png (100%) rename {docs => SirenExample/docs}/docsets/.docset/Contents/Resources/Documents/index.html (70%) rename {docs => SirenExample/docs}/docsets/.docset/Contents/Resources/Documents/js/jazzy.js (100%) rename {docs => SirenExample/docs}/docsets/.docset/Contents/Resources/Documents/js/jquery.min.js (100%) create mode 100644 SirenExample/docs/docsets/.docset/Contents/Resources/Documents/search.json create mode 100644 SirenExample/docs/docsets/.docset/Contents/Resources/docSet.dsidx create mode 100644 SirenExample/docs/docsets/.tgz create mode 100755 SirenExample/docs/img/carat.png create mode 100755 SirenExample/docs/img/dash.png create mode 100755 SirenExample/docs/img/gh.png create mode 100644 SirenExample/docs/index.html create mode 100755 SirenExample/docs/js/jazzy.js create mode 100755 SirenExample/docs/js/jquery.min.js create mode 100644 SirenExample/docs/search.json create mode 100644 SirenExample/docs/undocumented.json create mode 100644 docs/Structs.html create mode 100644 docs/Structs/SirenAlertMessaging.html create mode 100644 docs/Structs/SirenAlertMessaging/Constants.html create mode 100644 docs/Structs/SirenError.html create mode 100644 docs/Structs/SirenError/Known.html delete mode 100644 docs/docsets/.docset/Contents/Resources/Documents/search.json delete mode 100644 docs/docsets/.docset/Contents/Resources/docSet.dsidx delete mode 100644 docs/docsets/.tgz create mode 100644 docs/docsets/Siren.docset/Contents/Info.plist create mode 100644 docs/docsets/Siren.docset/Contents/Resources/Documents/Classes.html create mode 100644 docs/docsets/Siren.docset/Contents/Resources/Documents/Classes/Siren.html create mode 100644 docs/docsets/Siren.docset/Contents/Resources/Documents/Classes/Siren/AlertType.html create mode 100644 docs/docsets/Siren.docset/Contents/Resources/Documents/Classes/Siren/LanguageType.html create mode 100644 docs/docsets/Siren.docset/Contents/Resources/Documents/Classes/Siren/VersionCheckType.html create mode 100644 docs/docsets/Siren.docset/Contents/Resources/Documents/Enums.html create mode 100644 docs/docsets/Siren.docset/Contents/Resources/Documents/Enums/UpdateType.html create mode 100644 docs/docsets/Siren.docset/Contents/Resources/Documents/Protocols.html create mode 100644 docs/docsets/Siren.docset/Contents/Resources/Documents/Protocols/SirenDelegate.html create mode 100644 docs/docsets/Siren.docset/Contents/Resources/Documents/Structs.html create mode 100644 docs/docsets/Siren.docset/Contents/Resources/Documents/Structs/SirenAlertMessaging.html create mode 100644 docs/docsets/Siren.docset/Contents/Resources/Documents/Structs/SirenAlertMessaging/Constants.html create mode 100644 docs/docsets/Siren.docset/Contents/Resources/Documents/Structs/SirenError.html create mode 100644 docs/docsets/Siren.docset/Contents/Resources/Documents/Structs/SirenError/Known.html create mode 100644 docs/docsets/Siren.docset/Contents/Resources/Documents/css/highlight.css create mode 100644 docs/docsets/Siren.docset/Contents/Resources/Documents/css/jazzy.css create mode 100755 docs/docsets/Siren.docset/Contents/Resources/Documents/img/carat.png create mode 100755 docs/docsets/Siren.docset/Contents/Resources/Documents/img/dash.png create mode 100755 docs/docsets/Siren.docset/Contents/Resources/Documents/img/gh.png create mode 100644 docs/docsets/Siren.docset/Contents/Resources/Documents/index.html create mode 100755 docs/docsets/Siren.docset/Contents/Resources/Documents/js/jazzy.js create mode 100755 docs/docsets/Siren.docset/Contents/Resources/Documents/js/jquery.min.js create mode 100644 docs/docsets/Siren.docset/Contents/Resources/Documents/search.json create mode 100644 docs/docsets/Siren.docset/Contents/Resources/docSet.dsidx create mode 100644 docs/docsets/Siren.tgz diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 9c195fa4..c4f68143 100755 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -48,7 +48,7 @@ - [NSemakov](https://github.com/NSemakov) for [Pull Request #179](https://github.com/ArtSabintsev/Siren/pull/179) - [Attia Mo](https://github.com/attiamo) for [Pull Request #182](https://github.com/ArtSabintsev/Siren/pull/182) - [wbison](https://github.com/wbison) for [Pull Request #185 (Harpy)](https://github.com/ArtSabintsev/Harpy/pull/185) - +- [Balázs Vincze](https://github.com/vinczebalazs) for [Pull Request #200](https://github.com/ArtSabintsev/siren/pull/200) ### Harpy Project Contributors This repo is a Swift language port of [Harpy](http://github.com/ArtSabintsev/Harpy). We couldn't have built this port without acknowledging the following developers who were instrumental in getting Harpy to v3.2.1, the version of Harpy that Siren was based on. diff --git a/Gemfile.lock b/Gemfile.lock index 88c29238..f175906b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -7,31 +7,32 @@ GEM minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) + atomos (0.1.2) claide (1.0.2) - cocoapods (1.3.1) + cocoapods (1.4.0) activesupport (>= 4.0.2, < 5) claide (>= 1.0.2, < 2.0) - cocoapods-core (= 1.3.1) - cocoapods-deintegrate (>= 1.0.1, < 2.0) + cocoapods-core (= 1.4.0) + cocoapods-deintegrate (>= 1.0.2, < 2.0) cocoapods-downloader (>= 1.1.3, < 2.0) cocoapods-plugins (>= 1.0.0, < 2.0) cocoapods-search (>= 1.0.0, < 2.0) cocoapods-stats (>= 1.0.0, < 2.0) - cocoapods-trunk (>= 1.2.0, < 2.0) + cocoapods-trunk (>= 1.3.0, < 2.0) cocoapods-try (>= 1.1.0, < 2.0) colored2 (~> 3.1) escape (~> 0.0.4) fourflusher (~> 2.0.1) gh_inspector (~> 1.0) - molinillo (~> 0.5.7) + molinillo (~> 0.6.4) nap (~> 1.0) ruby-macho (~> 1.1) - xcodeproj (>= 1.5.1, < 2.0) - cocoapods-core (1.3.1) + xcodeproj (>= 1.5.4, < 2.0) + cocoapods-core (1.4.0) activesupport (>= 4.0.2, < 6) fuzzy_match (~> 2.0.4) nap (~> 1.0) - cocoapods-deintegrate (1.0.1) + cocoapods-deintegrate (1.0.2) cocoapods-downloader (1.1.3) cocoapods-plugins (1.0.0) nap @@ -44,48 +45,49 @@ GEM colored2 (3.1.2) concurrent-ruby (1.0.5) escape (0.0.4) - ffi (1.9.18) + ffi (1.9.23) fourflusher (2.0.1) fuzzy_match (2.0.4) - gh_inspector (1.0.3) - i18n (0.9.1) + gh_inspector (1.1.3) + i18n (0.9.5) concurrent-ruby (~> 1.0) - jazzy (0.9.0) + jazzy (0.9.1) cocoapods (~> 1.0) mustache (~> 0.99) open4 redcarpet (~> 3.2) - rouge (~> 1.5) + rouge (>= 2.0.6, < 4.0) sass (~> 3.4) sqlite3 (~> 1.3) xcinvoke (~> 0.3.0) liferaft (0.0.6) - minitest (5.10.3) - molinillo (0.5.7) + minitest (5.11.3) + molinillo (0.6.4) mustache (0.99.8) nanaimo (0.2.3) nap (1.1.0) netrc (0.11.0) open4 (1.3.4) - rb-fsevent (0.10.2) + rb-fsevent (0.10.3) rb-inotify (0.9.10) ffi (>= 0.5.0, < 2) redcarpet (3.4.0) - rouge (1.11.1) + rouge (3.1.1) ruby-macho (1.1.0) - sass (3.5.4) + sass (3.5.5) sass-listen (~> 4.0.0) sass-listen (4.0.0) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) sqlite3 (1.3.13) thread_safe (0.3.6) - tzinfo (1.2.4) + tzinfo (1.2.5) thread_safe (~> 0.1) xcinvoke (0.3.0) liferaft (~> 0.0.6) - xcodeproj (1.5.4) + xcodeproj (1.5.6) CFPropertyList (~> 2.3.3) + atomos (~> 0.1.2) claide (>= 1.0.2, < 2.0) colored2 (~> 3.1) nanaimo (~> 0.2.3) @@ -98,4 +100,4 @@ DEPENDENCIES jazzy BUNDLED WITH - 1.16.0 + 1.16.1 diff --git a/Siren.podspec b/Siren.podspec index fc147da0..d239a5bc 100755 --- a/Siren.podspec +++ b/Siren.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = "Siren" - s.version = "3.2.0" + s.version = "3.2.1" s.summary = "Notify users that a new version of your iOS app is available, and prompt them with the App Store link." s.description = <<-DESC diff --git a/docs/docsets/.docset/Contents/Resources/Documents/Classes.html b/SirenExample/docs/Classes.html similarity index 76% rename from docs/docsets/.docset/Contents/Resources/Documents/Classes.html rename to SirenExample/docs/Classes.html index 90c8aef8..4f5aedfc 100644 --- a/docs/docsets/.docset/Contents/Resources/Documents/Classes.html +++ b/SirenExample/docs/Classes.html @@ -44,7 +44,7 @@ +
@@ -99,7 +116,7 @@

Siren

Declaration

Swift

-
public final class Siren: NSObject
+
public final class Siren: NSObject
@@ -111,8 +128,8 @@

Declaration

diff --git a/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren.html b/SirenExample/docs/Classes/Siren.html similarity index 76% rename from docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren.html rename to SirenExample/docs/Classes/Siren.html index 351b5c3d..47ccd0db 100644 --- a/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren.html +++ b/SirenExample/docs/Classes/Siren.html @@ -45,7 +45,7 @@ +
@@ -68,7 +85,7 @@

Siren

-
public final class Siren: NSObject
+
public final class Siren: NSObject
@@ -98,7 +115,7 @@

Siren

Declaration

Swift

-
public let SirenErrorDomain = "Siren Error Domain"
+
public let SirenErrorDomain = "Siren Error Domain"
@@ -140,7 +157,7 @@

Declaration

Declaration

Swift

-
public weak var delegate: SirenDelegate?
+
public weak var delegate: SirenDelegate?
@@ -168,7 +185,7 @@

Declaration

Declaration

Swift

-
public lazy var debugEnabled = false
+
public lazy var debugEnabled = false
@@ -196,7 +213,7 @@

Declaration

Declaration

Swift

-
public var alertType: AlertType = .option
+
public var alertType: AlertType = .option
@@ -225,7 +242,7 @@

Declaration

Declaration

Swift

-
public lazy var majorUpdateAlertType: AlertType = .option
+
public lazy var majorUpdateAlertType: AlertType = .option
@@ -254,7 +271,7 @@

Declaration

Declaration

Swift

-
public lazy var minorUpdateAlertType: AlertType = .option
+
public lazy var minorUpdateAlertType: AlertType = .option
@@ -283,7 +300,7 @@

Declaration

Declaration

Swift

-
public lazy var patchUpdateAlertType: AlertType = .option
+
public lazy var patchUpdateAlertType: AlertType = .option
@@ -312,7 +329,7 @@

Declaration

Declaration

Swift

-
public lazy var revisionUpdateAlertType: AlertType = .option
+
public lazy var revisionUpdateAlertType: AlertType = .option
@@ -340,7 +357,35 @@

Declaration

Declaration

Swift

-
public lazy var appName = Bundle.bestMatchingAppName()
+
public lazy var appName = Bundle.bestMatchingAppName()
+ +
+ + + + +
  • +
    + + + + alertMessaging + +
    +
    +
    +
    +
    +
    +

    Overrides all the Strings to which Siren defaults. +Defaults to the values defined in SirenAlertMessaging.Constants

    + +
    +
    +

    Declaration

    +
    +

    Swift

    +
    public var alertMessaging = SirenAlertMessaging()
    @@ -369,7 +414,7 @@

    Declaration

    Declaration

    Swift

    -
    public var countryCode: String?
    +
    public var countryCode: String?
    @@ -397,7 +442,7 @@

    Declaration

    Declaration

    Swift

    -
    public var forceLanguageLocalization: Siren.LanguageType?
    +
    public var forceLanguageLocalization: Siren.LanguageType?
    @@ -424,7 +469,7 @@

    Declaration

    Declaration

    Swift

    -
    public var alertControllerTintColor: UIColor?
    +
    public var alertControllerTintColor: UIColor?
    @@ -452,7 +497,7 @@

    Declaration

    Declaration

    Swift

    -
    public var showAlertAfterCurrentVersionHasBeenReleasedForDays: Int = 1
    +
    public var showAlertAfterCurrentVersionHasBeenReleasedForDays: Int = 1
    @@ -479,7 +524,7 @@

    Declaration

    Declaration

    Swift

    -
    public internal(set) var currentAppStoreVersion: String?
    +
    public internal(set) var currentAppStoreVersion: String?
    @@ -506,7 +551,7 @@

    Declaration

    Declaration

    Swift

    -
    public static let shared = Siren()
    +
    public static let shared = Siren()
    @@ -535,7 +580,7 @@

    Declaration

    Declaration

    Swift

    -
    public func checkVersion(checkType: VersionCheckType)
    +
    public func checkVersion(checkType: VersionCheckType)
    @@ -586,7 +631,7 @@

    Parameters

    Declaration

    Swift

    -
    public func launchAppStore()
    +
    public func launchAppStore()
    @@ -618,7 +663,7 @@

    Declaration

    Declaration

    Swift

    -
    enum AlertType
    +
    enum AlertType
    @@ -646,7 +691,7 @@

    Declaration

    Declaration

    Swift

    -
    enum VersionCheckType: Int
    +
    enum VersionCheckType: Int
    @@ -677,7 +722,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    enum LanguageType: String
    @@ -689,8 +734,8 @@

    Declaration

  • diff --git a/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren/AlertType.html b/SirenExample/docs/Classes/Siren/AlertType.html similarity index 80% rename from docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren/AlertType.html rename to SirenExample/docs/Classes/Siren/AlertType.html index f1896dec..3118a109 100644 --- a/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren/AlertType.html +++ b/SirenExample/docs/Classes/Siren/AlertType.html @@ -1,7 +1,7 @@ - AlertType Enum Reference + AlertType Enumeration Reference @@ -11,7 +11,7 @@ - +

    Docs (100% documented)

    @@ -21,7 +21,7 @@
    @@ -45,7 +45,7 @@ +
    @@ -68,7 +85,7 @@

    AlertType

    -
    enum AlertType
    +
    enum AlertType
    @@ -98,7 +115,7 @@

    AlertType

    Declaration

    Swift

    -
    case force
    +
    case force
    @@ -129,7 +146,7 @@

    Declaration

    Declaration

    Swift

    -
    case option
    +
    case option
    @@ -160,7 +177,7 @@

    Declaration

    Declaration

    Swift

    -
    case skip
    +
    case skip
    @@ -192,7 +209,7 @@

    Declaration

    Declaration

    Swift

    -
    case none
    +
    case none
    @@ -204,8 +221,8 @@

    Declaration

    diff --git a/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren/LanguageType.html b/SirenExample/docs/Classes/Siren/LanguageType.html similarity index 82% rename from docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren/LanguageType.html rename to SirenExample/docs/Classes/Siren/LanguageType.html index af216bd5..cb3d127c 100644 --- a/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren/LanguageType.html +++ b/SirenExample/docs/Classes/Siren/LanguageType.html @@ -1,7 +1,7 @@ - LanguageType Enum Reference + LanguageType Enumeration Reference @@ -11,7 +11,7 @@ - +

    Docs (100% documented)

    @@ -21,7 +21,7 @@
    @@ -45,7 +45,7 @@ +
    @@ -68,7 +85,7 @@

    LanguageType

    -
    enum LanguageType: String
    +
    enum LanguageType: String
    @@ -100,7 +117,7 @@

    LanguageType

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case arabic = "ar"
    @@ -130,7 +147,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case armenian = "hy"
    @@ -160,7 +177,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case basque = "eu"
    @@ -190,7 +207,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case chineseSimplified = "zh-Hans"
    @@ -220,7 +237,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case chineseTraditional = "zh-Hant"
    @@ -250,7 +267,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case croatian = "hr"
    @@ -280,7 +297,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case czech = "cs"
    @@ -310,7 +327,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case danish = "da"
    @@ -340,7 +357,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case dutch = "nl"
    @@ -370,7 +387,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case english = "en"
    @@ -400,7 +417,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case estonian = "et"
    @@ -430,7 +447,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case finnish = "fi"
    @@ -460,7 +477,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case french = "fr"
    @@ -490,7 +507,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case german = "de"
    @@ -520,7 +537,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case greek = "el"
    @@ -550,7 +567,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case hebrew = "he"
    @@ -580,7 +597,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case hungarian = "hu"
    @@ -610,7 +627,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case indonesian = "id"
    @@ -640,7 +657,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case italian = "it"
    @@ -670,7 +687,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case japanese = "ja"
    @@ -700,7 +717,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case korean = "ko"
    @@ -730,7 +747,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case latvian = "lv"
    @@ -760,7 +777,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case lithuanian = "lt"
    @@ -790,7 +807,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case malay = "ms"
    @@ -820,7 +837,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case norwegian = "nb-NO"
    @@ -850,7 +867,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case persian = "fa"
    @@ -880,7 +897,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case persianAfghanistan = "fa-AF"
    @@ -910,7 +927,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case persianIran = "fa-IR"
    @@ -940,7 +957,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case polish = "pl"
    @@ -970,7 +987,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case portugueseBrazil = "pt"
    @@ -1000,7 +1017,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case portuguesePortugal = "pt-PT"
    @@ -1030,7 +1047,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case russian = "ru"
    @@ -1060,7 +1077,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case serbianCyrillic = "sr-Cyrl"
    @@ -1090,7 +1107,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case serbianLatin = "sr-Latn"
    @@ -1120,7 +1137,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case slovenian = "sl"
    @@ -1150,7 +1167,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case spanish = "es"
    @@ -1180,7 +1197,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case swedish = "sv"
    @@ -1210,7 +1227,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case thai = "th"
    @@ -1240,7 +1257,7 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case turkish = "tr"
    @@ -1270,7 +1287,37 @@

    Declaration

    Declaration

    Swift

    -
    enum LanguageType: String
    +
    case urdu = "ur"
    + +
    + + + + + + +
    +
      +
    • +
      + + + + ukrainian + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case ukrainian = "uk"
      @@ -1300,7 +1347,7 @@

      Declaration

      Declaration

      Swift

      -
      enum LanguageType: String
      +
      case vietnamese = "vi"
      @@ -1312,8 +1359,8 @@

      Declaration

    diff --git a/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren/VersionCheckType.html b/SirenExample/docs/Classes/Siren/VersionCheckType.html similarity index 76% rename from docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren/VersionCheckType.html rename to SirenExample/docs/Classes/Siren/VersionCheckType.html index 21d02c93..726f9827 100644 --- a/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren/VersionCheckType.html +++ b/SirenExample/docs/Classes/Siren/VersionCheckType.html @@ -1,7 +1,7 @@ - VersionCheckType Enum Reference + VersionCheckType Enumeration Reference @@ -11,7 +11,7 @@ - +

    Docs (100% documented)

    @@ -21,7 +21,7 @@
    @@ -45,7 +45,7 @@ +
    @@ -68,7 +85,7 @@

    VersionCheckType

    -
    enum VersionCheckType: Int
    +
    enum VersionCheckType: Int
    @@ -98,7 +115,7 @@

    VersionCheckType

    Declaration

    Swift

    -
    case immediately = 0
    +
    case immediately = 0
    @@ -129,7 +146,7 @@

    Declaration

    Declaration

    Swift

    -
    case daily = 1
    +
    case daily = 1
    @@ -160,7 +177,7 @@

    Declaration

    Declaration

    Swift

    -
    case weekly = 7
    +
    case weekly = 7
    @@ -172,8 +189,8 @@

    Declaration

    diff --git a/docs/docsets/.docset/Contents/Resources/Documents/Enums.html b/SirenExample/docs/Enums.html similarity index 73% rename from docs/docsets/.docset/Contents/Resources/Documents/Enums.html rename to SirenExample/docs/Enums.html index 8e7fe77b..9dc40bd5 100644 --- a/docs/docsets/.docset/Contents/Resources/Documents/Enums.html +++ b/SirenExample/docs/Enums.html @@ -1,7 +1,7 @@ - Enums Reference + Enumerations Reference @@ -10,7 +10,7 @@ - +

    Docs (100% documented)

    @@ -20,7 +20,7 @@
    @@ -44,7 +44,7 @@ +
    -

    Enums

    -

    The following enums are available globally.

    +

    Enumerations

    +

    The following enumerations are available globally.

    @@ -103,7 +120,7 @@

    Enums

    Declaration

    Swift

    -
    public enum UpdateType: String
    +
    public enum UpdateType: String
    @@ -115,8 +132,8 @@

    Declaration

    diff --git a/docs/docsets/.docset/Contents/Resources/Documents/Enums/UpdateType.html b/SirenExample/docs/Enums/UpdateType.html similarity index 80% rename from docs/docsets/.docset/Contents/Resources/Documents/Enums/UpdateType.html rename to SirenExample/docs/Enums/UpdateType.html index b530f06a..5ecdb2c6 100644 --- a/docs/docsets/.docset/Contents/Resources/Documents/Enums/UpdateType.html +++ b/SirenExample/docs/Enums/UpdateType.html @@ -1,7 +1,7 @@ - UpdateType Enum Reference + UpdateType Enumeration Reference @@ -11,7 +11,7 @@ - +

    Docs (100% documented)

    @@ -21,7 +21,7 @@
    @@ -45,7 +45,7 @@ +
    @@ -68,7 +85,7 @@

    UpdateType

    -
    public enum UpdateType: String
    +
    public enum UpdateType: String
    @@ -108,7 +125,7 @@

    UpdateType

    Declaration

    Swift

    -
    public enum UpdateType: String
    +
    case major
    @@ -138,7 +155,7 @@

    Declaration

    Declaration

    Swift

    -
    public enum UpdateType: String
    +
    case minor
    @@ -168,7 +185,7 @@

    Declaration

    Declaration

    Swift

    -
    public enum UpdateType: String
    +
    case patch
    @@ -198,7 +215,7 @@

    Declaration

    Declaration

    Swift

    -
    public enum UpdateType: String
    +
    case revision
    @@ -228,7 +245,7 @@

    Declaration

    Declaration

    Swift

    -
    public enum UpdateType: String
    +
    case unknown
    @@ -240,8 +257,8 @@

    Declaration

    diff --git a/docs/docsets/.docset/Contents/Resources/Documents/Protocols.html b/SirenExample/docs/Protocols.html similarity index 77% rename from docs/docsets/.docset/Contents/Resources/Documents/Protocols.html rename to SirenExample/docs/Protocols.html index 2534a6c8..5a08e9ca 100644 --- a/docs/docsets/.docset/Contents/Resources/Documents/Protocols.html +++ b/SirenExample/docs/Protocols.html @@ -44,7 +44,7 @@ +
    @@ -99,7 +116,7 @@

    SirenDelegate Protocol

    Declaration

    Swift

    -
    public protocol SirenDelegate: NSObjectProtocol
    +
    public protocol SirenDelegate: NSObjectProtocol
    @@ -111,8 +128,8 @@

    Declaration

    diff --git a/docs/docsets/.docset/Contents/Resources/Documents/Protocols/SirenDelegate.html b/SirenExample/docs/Protocols/SirenDelegate.html similarity index 81% rename from docs/docsets/.docset/Contents/Resources/Documents/Protocols/SirenDelegate.html rename to SirenExample/docs/Protocols/SirenDelegate.html index 3022a5e3..19a8b008 100644 --- a/docs/docsets/.docset/Contents/Resources/Documents/Protocols/SirenDelegate.html +++ b/SirenExample/docs/Protocols/SirenDelegate.html @@ -45,7 +45,7 @@ +
    @@ -68,7 +85,7 @@

    SirenDelegate

    -
    public protocol SirenDelegate: NSObjectProtocol
    +
    public protocol SirenDelegate: NSObjectProtocol
    @@ -105,7 +122,7 @@

    Default Implementation

    Declaration

    Swift

    -
    func sirenDidShowUpdateDialog(alertType: Siren.AlertType)
    +
    func sirenDidShowUpdateDialog(alertType: Siren.AlertType)
    @@ -139,7 +156,7 @@

    Default Implementation

    Declaration

    Swift

    -
    func sirenUserDidLaunchAppStore()
    +
    func sirenUserDidLaunchAppStore()
    @@ -173,7 +190,7 @@

    Default Implementation

    Declaration

    Swift

    -
    func sirenUserDidSkipVersion()
    +
    func sirenUserDidSkipVersion()
    @@ -207,7 +224,7 @@

    Default Implementation

    Declaration

    Swift

    -
    func sirenUserDidCancel()
    +
    func sirenUserDidCancel()
    @@ -241,7 +258,7 @@

    Default Implementation

    Declaration

    Swift

    -
    func sirenDidFailVersionCheck(error: Error)
    +
    func sirenDidFailVersionCheck(error: Error)
    @@ -275,7 +292,7 @@

    Default Implementation

    Declaration

    Swift

    -
    func sirenDidDetectNewVersionWithoutAlert(message: String, updateType: UpdateType)
    +
    func sirenDidDetectNewVersionWithoutAlert(message: String, updateType: UpdateType)
    @@ -309,7 +326,7 @@

    Default Implementation

    Declaration

    Swift

    -
    func sirenLatestVersionInstalled()
    +
    func sirenLatestVersionInstalled()
    @@ -321,8 +338,8 @@

    Declaration

    diff --git a/SirenExample/docs/Structs.html b/SirenExample/docs/Structs.html new file mode 100644 index 00000000..3d27258b --- /dev/null +++ b/SirenExample/docs/Structs.html @@ -0,0 +1,183 @@ + + + + Structures Reference + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    Structures

    +

    The following structures are available globally.

    + +
    +
    +
    + +
      +
    • +
      + + + + SirenError + +
      +
      +
      +
      +
      +
      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public struct SirenError: LocalizedError
      + +
      +
      +
      +
      +
    • +
    +
    +
    + +
      +
    • +
      + + + + SirenAlertMessaging + +
      +
      +
      +
      +
      +
      +

      Allows the overriding of all the UIAlertController and UIActionSheet Strings to which Siren defaults.

      +
      +

      Warning

      + Overriding any of these keys will result in the loss of the built-in internationalization that Siren provides. + +
      + +

      As SirenAlertMessaging is a Struct, one or more keys can be modified. Overriding only one string will result in the other keys retaining their default (and internationalizable) values.

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public struct SirenAlertMessaging
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + diff --git a/SirenExample/docs/Structs/SirenAlertMessaging.html b/SirenExample/docs/Structs/SirenAlertMessaging.html new file mode 100644 index 00000000..74b64163 --- /dev/null +++ b/SirenExample/docs/Structs/SirenAlertMessaging.html @@ -0,0 +1,242 @@ + + + + SirenAlertMessaging Structure Reference + + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    SirenAlertMessaging

    +
    +
    +
    public struct SirenAlertMessaging
    + +
    +
    +

    Allows the overriding of all the UIAlertController and UIActionSheet Strings to which Siren defaults.

    +
    +

    Warning

    + Overriding any of these keys will result in the loss of the built-in internationalization that Siren provides. + +
    + +

    As SirenAlertMessaging is a Struct, one or more keys can be modified. Overriding only one string will result in the other keys retaining their default (and internationalizable) values.

    + +
    +
    +
    +
      +
    • +
      + + + + Constants + +
      +
      +
      +
      +
      +
      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public struct Constants
      + +
      +
      +
      +
      +
    • +
    • + +
      +
      +
      +
      +
      +

      The public initializer

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public init(updateTitle title: String = Constants.updateTitle,
      +            updateMessage message: String = Constants.updateMessage,
      +            updateButtonMessage: String = Constants.updateNow,
      +            nextTimeButtonMessage: String = Constants.nextTime,
      +            skipVersionButtonMessage: String = Constants.skipVersion)
      + +
      +
      +
      +

      Parameters

      + + + + + + + + + + + + + + + + + + + + + + + +
      + + title + + +
      +

      The title field of the UIAlertController.

      +
      +
      + + message + + +
      +

      The message field of the UIAlertController.

      +
      +
      + + updateButtonMessage + + +
      +

      The title field of the Update Button UIAlertAction.

      +
      +
      + + nextTimeButtonMessage + + +
      +

      The title field of the Next Time Button UIAlertAction.

      +
      +
      + + skipVersionButtonMessage + + +
      +

      The title field of the Skip Button UIAlertAction.

      +
      +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + diff --git a/SirenExample/docs/Structs/SirenAlertMessaging/Constants.html b/SirenExample/docs/Structs/SirenAlertMessaging/Constants.html new file mode 100644 index 00000000..1536f96a --- /dev/null +++ b/SirenExample/docs/Structs/SirenAlertMessaging/Constants.html @@ -0,0 +1,239 @@ + + + + Constants Structure Reference + + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    Constants

    +
    +
    +
    public struct Constants
    + +
    +
    + +
    +
    +
    +
      +
    • +
      + + + + nextTime + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public static let nextTime = "Next time"
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + skipVersion + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public static let skipVersion = "Skip this version"
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + updateMessage + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public static let updateMessage = "A new version of %@ is available. Please update to version %@ now."
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + updateTitle + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public static let updateTitle = "Update Available"
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + updateNow + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public static let updateNow = "Update"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + diff --git a/SirenExample/docs/Structs/SirenError.html b/SirenExample/docs/Structs/SirenError.html new file mode 100644 index 00000000..ba064390 --- /dev/null +++ b/SirenExample/docs/Structs/SirenError.html @@ -0,0 +1,136 @@ + + + + SirenError Structure Reference + + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    SirenError

    +
    +
    +
    public struct SirenError: LocalizedError
    + +
    +
    + +
    +
    +
    +
      +
    • +
      + + + + Known + +
      +
      +
      +
      +
      +
      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public enum Known: Error
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + diff --git a/SirenExample/docs/Structs/SirenError/Known.html b/SirenExample/docs/Structs/SirenError/Known.html new file mode 100644 index 00000000..ea9af8b6 --- /dev/null +++ b/SirenExample/docs/Structs/SirenError/Known.html @@ -0,0 +1,375 @@ + + + + Known Enumeration Reference + + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    Known

    +
    +
    +
    public enum Known: Error
    + +
    +
    + +
    +
    +
    +
      +
    • +
      + + + + appStoreAppIDFailure + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case appStoreAppIDFailure
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case appStoreDataRetrievalFailure(underlyingError: Error?)
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case appStoreJSONParsingFailure(underlyingError: Error)
      + +
      +
      +
      +
      +
    • +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
      +
    • +
      + + + + malformedURL + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case malformedURL
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + noUpdateAvailable + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case noUpdateAvailable
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case recentlyCheckedAlready
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + diff --git a/SirenExample/docs/badge.svg b/SirenExample/docs/badge.svg new file mode 100644 index 00000000..a096feca --- /dev/null +++ b/SirenExample/docs/badge.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + documentation + + + documentation + + + 100% + + + 100% + + + diff --git a/docs/docsets/.docset/Contents/Resources/Documents/css/highlight.css b/SirenExample/docs/css/highlight.css similarity index 100% rename from docs/docsets/.docset/Contents/Resources/Documents/css/highlight.css rename to SirenExample/docs/css/highlight.css diff --git a/docs/docsets/.docset/Contents/Resources/Documents/css/jazzy.css b/SirenExample/docs/css/jazzy.css similarity index 100% rename from docs/docsets/.docset/Contents/Resources/Documents/css/jazzy.css rename to SirenExample/docs/css/jazzy.css diff --git a/docs/docsets/.docset/Contents/Info.plist b/SirenExample/docs/docsets/.docset/Contents/Info.plist similarity index 100% rename from docs/docsets/.docset/Contents/Info.plist rename to SirenExample/docs/docsets/.docset/Contents/Info.plist diff --git a/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Classes.html b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Classes.html new file mode 100644 index 00000000..4f5aedfc --- /dev/null +++ b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Classes.html @@ -0,0 +1,138 @@ + + + + Classes Reference + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    Classes

    +

    The following classes are available globally.

    + +
    +
    +
    +
    + + + +

    Siren

    +
    +
    +
      +
    • +
      + + + + Siren + +
      +
      +
      +
      +
      +
      +

      The Siren Class. A singleton that is initialized using the shared constant.

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public final class Siren: NSObject
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + diff --git a/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren.html b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren.html new file mode 100644 index 00000000..47ccd0db --- /dev/null +++ b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren.html @@ -0,0 +1,744 @@ + + + + Siren Class Reference + + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    Siren

    +
    +
    +
    public final class Siren: NSObject
    + +
    +
    +

    The Siren Class. A singleton that is initialized using the shared constant.

    + +
    +
    +
    +
      +
    • +
      + + + + SirenErrorDomain + +
      +
      +
      +
      +
      +
      +

      The error domain for all errors created by Siren.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public let SirenErrorDomain = "Siren Error Domain"
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + delegate + +
      +
      +
      +
      +
      +
      +

      The SirenDelegate variable, which should be set if you’d like to be notified:

      + +

      When a user views or interacts with the alert

      + +
        +
      • sirenDidShowUpdateDialog(alertType: AlertType)
      • +
      • sirenUserDidLaunchAppStore()
      • +
      • sirenUserDidSkipVersion()
      • +
      • sirenUserDidCancel()
      • +
      + +

      When a new version has been detected, and you would like to present a localized message in a custom UI. use this delegate method:

      + +
        +
      • sirenDidDetectNewVersionWithoutAlert(message: String)
      • +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public weak var delegate: SirenDelegate?
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + debugEnabled + +
      +
      +
      +
      +
      +
      +

      The debug flag, which is disabled by default. +When enabled, a stream of print() statements are logged to your console when a version check is performed.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public lazy var debugEnabled = false
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + alertType + +
      +
      +
      +
      +
      +
      +

      Determines the type of alert that should be shown. +See the Siren.AlertType enum for full details.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var alertType: AlertType = .option
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + majorUpdateAlertType + +
      +
      +
      +
      +
      +
      +

      Determines the type of alert that should be shown for major version updates: A.b.c +Defaults to Siren.AlertType.option. +See the Siren.AlertType enum for full details.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public lazy var majorUpdateAlertType: AlertType = .option
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + minorUpdateAlertType + +
      +
      +
      +
      +
      +
      +

      Determines the type of alert that should be shown for minor version updates: a.B.c +Defaults to Siren.AlertType.option. +See the Siren.AlertType enum for full details.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public lazy var minorUpdateAlertType: AlertType = .option
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + patchUpdateAlertType + +
      +
      +
      +
      +
      +
      +

      Determines the type of alert that should be shown for minor patch updates: a.b.C +Defaults to Siren.AlertType.option. +See the Siren.AlertType enum for full details.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public lazy var patchUpdateAlertType: AlertType = .option
      + +
      +
      +
      +
      +
    • +
    • + +
      +
      +
      +
      +
      +

      Determines the type of alert that should be shown for revision updates: a.b.c.D +Defaults to Siren.AlertType.option. +See the Siren.AlertType enum for full details.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public lazy var revisionUpdateAlertType: AlertType = .option
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + appName + +
      +
      +
      +
      +
      +
      +

      The name of your app. +By default, it’s set to the name of the app that’s stored in your plist.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public lazy var appName = Bundle.bestMatchingAppName()
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + alertMessaging + +
      +
      +
      +
      +
      +
      +

      Overrides all the Strings to which Siren defaults. +Defaults to the values defined in SirenAlertMessaging.Constants

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var alertMessaging = SirenAlertMessaging()
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + countryCode + +
      +
      +
      +
      +
      +
      +

      The region or country of an App Store in which your app is available. +By default, all version checks are performed against the US App Store. +If your app is not available in the US App Store, set it to the identifier of at least one App Store within which it is available.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var countryCode: String?
      + +
      +
      +
      +
      +
    • +
    • + +
      +
      +
      +
      +
      +

      Overrides the default localization of a user’s device when presenting the update message and button titles in the alert. +See the Siren.LanguageType enum for more details.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var forceLanguageLocalization: Siren.LanguageType?
      + +
      +
      +
      +
      +
    • +
    • + +
      +
      +
      +
      +
      +

      Overrides the tint color for UIAlertController.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var alertControllerTintColor: UIColor?
      + +
      +
      +
      +
      +
    • +
    • + +
      +
      +
      +
      +
      +

      When this is set, the alert will only show up if the current version has already been released for X days +Defaults to 1 day to avoid an issue where Apple updates the JSON faster than the app binary propogates to the App Store.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public var showAlertAfterCurrentVersionHasBeenReleasedForDays: Int = 1
      + +
      +
      +
      +
      +
    • +
    • + +
      +
      +
      +
      +
      +

      The current version of your app that is available for download on the App Store

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public internal(set) var currentAppStoreVersion: String?
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + shared + +
      +
      +
      +
      +
      +
      +

      The App’s Singleton

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public static let shared = Siren()
      + +
      +
      +
      +
      +
    • +
    • + +
      +
      +
      +
      +
      +

      Checks the currently installed version of your app against the App Store. +The default check is against the US App Store, but if your app is not listed in the US, +you should set the countryCode property before calling this method. Please refer to the countryCode property for more information.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public func checkVersion(checkType: VersionCheckType)
      + +
      +
      +
      +

      Parameters

      + + + + + + + +
      + + checkType + + +
      +

      The frequency in days in which you want a check to be performed. Please refer to the Siren.VersionCheckType enum for more details.

      +
      +
      +
      +
      +
      +
    • +
    • +
      + + + + launchAppStore() + +
      +
      +
      +
      +
      +
      +

      Launches the AppStore in two situations:

      + +
        +
      • User clicked the Update button in the UIAlertController modal.
      • +
      • Developer built a custom alert modal and needs to be able to call this function when the user chooses to update the app in the aforementioned custom modal.
      • +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public func launchAppStore()
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + AlertType + +
      +
      +
      +
      +
      +
      +

      Determines the type of alert to present after a successful version check has been performed.

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      enum AlertType
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + VersionCheckType + +
      +
      +
      +
      +
      +
      +

      Determines the frequency in which the the version check is performed and the user is prompted to update the app.

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      enum VersionCheckType: Int
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + LanguageType + +
      +
      +
      +
      +
      +
      +

      Determines the available languages in which the update message and alert button titles should appear.

      + +

      By default, the operating system’s default lanuage setting is used. However, you can force a specific language +by setting the forceLanguageLocalization property before calling checkVersion()

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      enum LanguageType: String
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + diff --git a/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren/AlertType.html b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren/AlertType.html new file mode 100644 index 00000000..3118a109 --- /dev/null +++ b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren/AlertType.html @@ -0,0 +1,231 @@ + + + + AlertType Enumeration Reference + + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    AlertType

    +
    +
    +
    enum AlertType
    + +
    +
    +

    Determines the type of alert to present after a successful version check has been performed.

    + +
    +
    +
    +
      +
    • +
      + + + + force + +
      +
      +
      +
      +
      +
      +

      Forces user to update your app (1 button alert).

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case force
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + option + +
      +
      +
      +
      +
      +
      +

      (DEFAULT) Presents user with option to update app now or at next launch (2 button alert).

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case option
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + skip + +
      +
      +
      +
      +
      +
      +

      Presents user with option to update the app now, at next launch, or to skip this version all together (3 button alert).

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case skip
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + none + +
      +
      +
      +
      +
      +
      +

      Doesn’t show the alert, but instead returns a localized message +for use in a custom UI within the sirenDidDetectNewVersionWithoutAlert() delegate method.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case none
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + diff --git a/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren/LanguageType.html b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren/LanguageType.html new file mode 100644 index 00000000..cb3d127c --- /dev/null +++ b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren/LanguageType.html @@ -0,0 +1,1369 @@ + + + + LanguageType Enumeration Reference + + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    LanguageType

    +
    +
    +
    enum LanguageType: String
    + +
    +
    +

    Determines the available languages in which the update message and alert button titles should appear.

    + +

    By default, the operating system’s default lanuage setting is used. However, you can force a specific language +by setting the forceLanguageLocalization property before calling checkVersion()

    + +
    +
    +
    +
      +
    • +
      + + + + arabic + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case arabic = "ar"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + armenian + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case armenian = "hy"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + basque + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case basque = "eu"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + chineseSimplified + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case chineseSimplified = "zh-Hans"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + chineseTraditional + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case chineseTraditional = "zh-Hant"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + croatian + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case croatian = "hr"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + czech + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case czech = "cs"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + danish + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case danish = "da"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + dutch + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case dutch = "nl"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + english + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case english = "en"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + estonian + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case estonian = "et"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + finnish + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case finnish = "fi"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + french + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case french = "fr"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + german + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case german = "de"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + greek + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case greek = "el"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + hebrew + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case hebrew = "he"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + hungarian + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case hungarian = "hu"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + indonesian + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case indonesian = "id"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + italian + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case italian = "it"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + japanese + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case japanese = "ja"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + korean + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case korean = "ko"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + latvian + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case latvian = "lv"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + lithuanian + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case lithuanian = "lt"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + malay + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case malay = "ms"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + norwegian + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case norwegian = "nb-NO"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + persian + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case persian = "fa"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + persianAfghanistan + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case persianAfghanistan = "fa-AF"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + persianIran + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case persianIran = "fa-IR"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + polish + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case polish = "pl"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + portugueseBrazil + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case portugueseBrazil = "pt"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + portuguesePortugal + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case portuguesePortugal = "pt-PT"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + russian + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case russian = "ru"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + serbianCyrillic + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case serbianCyrillic = "sr-Cyrl"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + serbianLatin + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case serbianLatin = "sr-Latn"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + slovenian + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case slovenian = "sl"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + spanish + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case spanish = "es"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + swedish + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case swedish = "sv"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + thai + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case thai = "th"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + turkish + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case turkish = "tr"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + urdu + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case urdu = "ur"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + ukrainian + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case ukrainian = "uk"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + vietnamese + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case vietnamese = "vi"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + diff --git a/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren/VersionCheckType.html b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren/VersionCheckType.html new file mode 100644 index 00000000..726f9827 --- /dev/null +++ b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Classes/Siren/VersionCheckType.html @@ -0,0 +1,199 @@ + + + + VersionCheckType Enumeration Reference + + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    VersionCheckType

    +
    +
    +
    enum VersionCheckType: Int
    + +
    +
    +

    Determines the frequency in which the the version check is performed and the user is prompted to update the app.

    + +
    +
    +
    +
      +
    • +
      + + + + immediately + +
      +
      +
      +
      +
      +
      +

      Version check performed every time the app is launched.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case immediately = 0
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + daily + +
      +
      +
      +
      +
      +
      +

      Version check performed once a day.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case daily = 1
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + weekly + +
      +
      +
      +
      +
      +
      +

      Version check performed once a week.

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case weekly = 7
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + diff --git a/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Enums.html b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Enums.html new file mode 100644 index 00000000..9dc40bd5 --- /dev/null +++ b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Enums.html @@ -0,0 +1,142 @@ + + + + Enumerations Reference + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    Enumerations

    +

    The following enumerations are available globally.

    + +
    +
    +
    +
      +
    • +
      + + + + UpdateType + +
      +
      +
      +
      +
      +
      +

      MARK - Siren UpdateType +UpdateType defines what kind of update is available +It is used as parameter if user wants to use +custom alert to inform the user about an update.

      + +
        +
      • major: Major release available: A.b.c.d
      • +
      • minor: Minor release available: a.B.c.d
      • +
      • patch: Patch release available: a.b.C.d
      • +
      • revision: Revision release available: a.b.c.D
      • +
      • unknown: No information available about the update
      • +
      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public enum UpdateType: String
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + diff --git a/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Enums/UpdateType.html b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Enums/UpdateType.html new file mode 100644 index 00000000..5ecdb2c6 --- /dev/null +++ b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Enums/UpdateType.html @@ -0,0 +1,267 @@ + + + + UpdateType Enumeration Reference + + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    UpdateType

    +
    +
    +
    public enum UpdateType: String
    + +
    +
    +

    MARK - Siren UpdateType +UpdateType defines what kind of update is available +It is used as parameter if user wants to use +custom alert to inform the user about an update.

    + +
      +
    • major: Major release available: A.b.c.d
    • +
    • minor: Minor release available: a.B.c.d
    • +
    • patch: Patch release available: a.b.C.d
    • +
    • revision: Revision release available: a.b.c.D
    • +
    • unknown: No information available about the update
    • +
    + +
    +
    +
    +
      +
    • +
      + + + + major + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case major
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + minor + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case minor
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + patch + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case patch
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + revision + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case revision
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + unknown + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case unknown
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + diff --git a/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Protocols.html b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Protocols.html new file mode 100644 index 00000000..5a08e9ca --- /dev/null +++ b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Protocols.html @@ -0,0 +1,138 @@ + + + + Protocols Reference + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    Protocols

    +

    The following protocols are available globally.

    + +
    +
    +
    + +
      +
    • +
      + + + + SirenDelegate + +
      +
      +
      +
      +
      +
      +

      Delegate that handles all codepaths for Siren upon version check completion.

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public protocol SirenDelegate: NSObjectProtocol
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + diff --git a/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Protocols/SirenDelegate.html b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Protocols/SirenDelegate.html new file mode 100644 index 00000000..19a8b008 --- /dev/null +++ b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Protocols/SirenDelegate.html @@ -0,0 +1,348 @@ + + + + SirenDelegate Protocol Reference + + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    SirenDelegate

    +
    +
    +
    public protocol SirenDelegate: NSObjectProtocol
    + +
    +
    +

    Delegate that handles all codepaths for Siren upon version check completion.

    + +
    +
    +
    +
      +
    • +
      + + + + sirenDidShowUpdateDialog(alertType:) + + + Default implementation + +
      +
      +
      +
      +
      +
      +

      User presented with update dialog.

      + +
      +

      Default Implementation

      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      func sirenDidShowUpdateDialog(alertType: Siren.AlertType)
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + sirenUserDidLaunchAppStore() + + + Default implementation + +
      +
      +
      +
      +
      +
      +

      User did click on button that launched App Store.app.

      + +
      +

      Default Implementation

      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      func sirenUserDidLaunchAppStore()
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + sirenUserDidSkipVersion() + + + Default implementation + +
      +
      +
      +
      +
      +
      +

      User did click on button that skips version update.

      + +
      +

      Default Implementation

      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      func sirenUserDidSkipVersion()
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + sirenUserDidCancel() + + + Default implementation + +
      +
      +
      +
      +
      +
      +

      User did click on button that cancels update dialog.

      + +
      +

      Default Implementation

      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      func sirenUserDidCancel()
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + sirenDidFailVersionCheck(error:) + + + Default implementation + +
      +
      +
      +
      +
      +
      +

      Siren failed to perform version check (may return system-level error).

      + +
      +

      Default Implementation

      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      func sirenDidFailVersionCheck(error: Error)
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + sirenDidDetectNewVersionWithoutAlert(message:updateType:) + + + Default implementation + +
      +
      +
      +
      +
      +
      +

      Siren performed version check and did not display alert.

      + +
      +

      Default Implementation

      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      func sirenDidDetectNewVersionWithoutAlert(message: String, updateType: UpdateType)
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + sirenLatestVersionInstalled() + + + Default implementation + +
      +
      +
      +
      +
      +
      +

      Siren performed version check and latest version is installed.

      + +
      +

      Default Implementation

      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      func sirenLatestVersionInstalled()
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + diff --git a/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Structs.html b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Structs.html new file mode 100644 index 00000000..3d27258b --- /dev/null +++ b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Structs.html @@ -0,0 +1,183 @@ + + + + Structures Reference + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    Structures

    +

    The following structures are available globally.

    + +
    +
    +
    + +
      +
    • +
      + + + + SirenError + +
      +
      +
      +
      +
      +
      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public struct SirenError: LocalizedError
      + +
      +
      +
      +
      +
    • +
    +
    +
    + +
      +
    • +
      + + + + SirenAlertMessaging + +
      +
      +
      +
      +
      +
      +

      Allows the overriding of all the UIAlertController and UIActionSheet Strings to which Siren defaults.

      +
      +

      Warning

      + Overriding any of these keys will result in the loss of the built-in internationalization that Siren provides. + +
      + +

      As SirenAlertMessaging is a Struct, one or more keys can be modified. Overriding only one string will result in the other keys retaining their default (and internationalizable) values.

      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public struct SirenAlertMessaging
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + diff --git a/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Structs/SirenAlertMessaging.html b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Structs/SirenAlertMessaging.html new file mode 100644 index 00000000..74b64163 --- /dev/null +++ b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Structs/SirenAlertMessaging.html @@ -0,0 +1,242 @@ + + + + SirenAlertMessaging Structure Reference + + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    SirenAlertMessaging

    +
    +
    +
    public struct SirenAlertMessaging
    + +
    +
    +

    Allows the overriding of all the UIAlertController and UIActionSheet Strings to which Siren defaults.

    +
    +

    Warning

    + Overriding any of these keys will result in the loss of the built-in internationalization that Siren provides. + +
    + +

    As SirenAlertMessaging is a Struct, one or more keys can be modified. Overriding only one string will result in the other keys retaining their default (and internationalizable) values.

    + +
    +
    +
    +
      +
    • +
      + + + + Constants + +
      +
      +
      +
      +
      +
      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public struct Constants
      + +
      +
      +
      +
      +
    • +
    • + +
      +
      +
      +
      +
      +

      The public initializer

      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public init(updateTitle title: String = Constants.updateTitle,
      +            updateMessage message: String = Constants.updateMessage,
      +            updateButtonMessage: String = Constants.updateNow,
      +            nextTimeButtonMessage: String = Constants.nextTime,
      +            skipVersionButtonMessage: String = Constants.skipVersion)
      + +
      +
      +
      +

      Parameters

      + + + + + + + + + + + + + + + + + + + + + + + +
      + + title + + +
      +

      The title field of the UIAlertController.

      +
      +
      + + message + + +
      +

      The message field of the UIAlertController.

      +
      +
      + + updateButtonMessage + + +
      +

      The title field of the Update Button UIAlertAction.

      +
      +
      + + nextTimeButtonMessage + + +
      +

      The title field of the Next Time Button UIAlertAction.

      +
      +
      + + skipVersionButtonMessage + + +
      +

      The title field of the Skip Button UIAlertAction.

      +
      +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + diff --git a/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Structs/SirenAlertMessaging/Constants.html b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Structs/SirenAlertMessaging/Constants.html new file mode 100644 index 00000000..1536f96a --- /dev/null +++ b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Structs/SirenAlertMessaging/Constants.html @@ -0,0 +1,239 @@ + + + + Constants Structure Reference + + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    Constants

    +
    +
    +
    public struct Constants
    + +
    +
    + +
    +
    +
    +
      +
    • +
      + + + + nextTime + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public static let nextTime = "Next time"
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + skipVersion + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public static let skipVersion = "Skip this version"
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + updateMessage + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public static let updateMessage = "A new version of %@ is available. Please update to version %@ now."
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + updateTitle + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public static let updateTitle = "Update Available"
      + +
      +
      +
      +
      +
    • +
    • +
      + + + + updateNow + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public static let updateNow = "Update"
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + diff --git a/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Structs/SirenError.html b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Structs/SirenError.html new file mode 100644 index 00000000..ba064390 --- /dev/null +++ b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Structs/SirenError.html @@ -0,0 +1,136 @@ + + + + SirenError Structure Reference + + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    SirenError

    +
    +
    +
    public struct SirenError: LocalizedError
    + +
    +
    + +
    +
    +
    +
      +
    • +
      + + + + Known + +
      +
      +
      +
      +
      +
      + + See more +
      +
      +

      Declaration

      +
      +

      Swift

      +
      public enum Known: Error
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + diff --git a/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Structs/SirenError/Known.html b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Structs/SirenError/Known.html new file mode 100644 index 00000000..ea9af8b6 --- /dev/null +++ b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/Structs/SirenError/Known.html @@ -0,0 +1,375 @@ + + + + Known Enumeration Reference + + + + + + + + + + +
    +
    +

    Docs (100% documented)

    +
    +
    +
    + +
    +
    + +
    +
    +
    +

    Known

    +
    +
    +
    public enum Known: Error
    + +
    +
    + +
    +
    +
    +
      +
    • +
      + + + + appStoreAppIDFailure + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case appStoreAppIDFailure
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case appStoreDataRetrievalFailure(underlyingError: Error?)
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case appStoreJSONParsingFailure(underlyingError: Error)
      + +
      +
      +
      +
      +
    • +
    +
    +
    + +
    +
    + +
    +
    + +
    +
    +
      +
    • +
      + + + + malformedURL + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case malformedURL
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • +
      + + + + noUpdateAvailable + +
      +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case noUpdateAvailable
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
      +
    • + +
      +
      +
      +
      +
      + +
      +
      +

      Declaration

      +
      +

      Swift

      +
      case recentlyCheckedAlready
      + +
      +
      +
      +
      +
    • +
    +
    +
    +
    + +
    +
    + + + diff --git a/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/css/highlight.css b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/css/highlight.css new file mode 100644 index 00000000..d0db0e13 --- /dev/null +++ b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/css/highlight.css @@ -0,0 +1,200 @@ +/* Credit to https://gist.github.com/wataru420/2048287 */ +.highlight { + /* Comment */ + /* Error */ + /* Keyword */ + /* Operator */ + /* Comment.Multiline */ + /* Comment.Preproc */ + /* Comment.Single */ + /* Comment.Special */ + /* Generic.Deleted */ + /* Generic.Deleted.Specific */ + /* Generic.Emph */ + /* Generic.Error */ + /* Generic.Heading */ + /* Generic.Inserted */ + /* Generic.Inserted.Specific */ + /* Generic.Output */ + /* Generic.Prompt */ + /* Generic.Strong */ + /* Generic.Subheading */ + /* Generic.Traceback */ + /* Keyword.Constant */ + /* Keyword.Declaration */ + /* Keyword.Pseudo */ + /* Keyword.Reserved */ + /* Keyword.Type */ + /* Literal.Number */ + /* Literal.String */ + /* Name.Attribute */ + /* Name.Builtin */ + /* Name.Class */ + /* Name.Constant */ + /* Name.Entity */ + /* Name.Exception */ + /* Name.Function */ + /* Name.Namespace */ + /* Name.Tag */ + /* Name.Variable */ + /* Operator.Word */ + /* Text.Whitespace */ + /* Literal.Number.Float */ + /* Literal.Number.Hex */ + /* Literal.Number.Integer */ + /* Literal.Number.Oct */ + /* Literal.String.Backtick */ + /* Literal.String.Char */ + /* Literal.String.Doc */ + /* Literal.String.Double */ + /* Literal.String.Escape */ + /* Literal.String.Heredoc */ + /* Literal.String.Interpol */ + /* Literal.String.Other */ + /* Literal.String.Regex */ + /* Literal.String.Single */ + /* Literal.String.Symbol */ + /* Name.Builtin.Pseudo */ + /* Name.Variable.Class */ + /* Name.Variable.Global */ + /* Name.Variable.Instance */ + /* Literal.Number.Integer.Long */ } + .highlight .c { + color: #999988; + font-style: italic; } + .highlight .err { + color: #a61717; + background-color: #e3d2d2; } + .highlight .k { + color: #000000; + font-weight: bold; } + .highlight .o { + color: #000000; + font-weight: bold; } + .highlight .cm { + color: #999988; + font-style: italic; } + .highlight .cp { + color: #999999; + font-weight: bold; } + .highlight .c1 { + color: #999988; + font-style: italic; } + .highlight .cs { + color: #999999; + font-weight: bold; + font-style: italic; } + .highlight .gd { + color: #000000; + background-color: #ffdddd; } + .highlight .gd .x { + color: #000000; + background-color: #ffaaaa; } + .highlight .ge { + color: #000000; + font-style: italic; } + .highlight .gr { + color: #aa0000; } + .highlight .gh { + color: #999999; } + .highlight .gi { + color: #000000; + background-color: #ddffdd; } + .highlight .gi .x { + color: #000000; + background-color: #aaffaa; } + .highlight .go { + color: #888888; } + .highlight .gp { + color: #555555; } + .highlight .gs { + font-weight: bold; } + .highlight .gu { + color: #aaaaaa; } + .highlight .gt { + color: #aa0000; } + .highlight .kc { + color: #000000; + font-weight: bold; } + .highlight .kd { + color: #000000; + font-weight: bold; } + .highlight .kp { + color: #000000; + font-weight: bold; } + .highlight .kr { + color: #000000; + font-weight: bold; } + .highlight .kt { + color: #445588; } + .highlight .m { + color: #009999; } + .highlight .s { + color: #d14; } + .highlight .na { + color: #008080; } + .highlight .nb { + color: #0086B3; } + .highlight .nc { + color: #445588; + font-weight: bold; } + .highlight .no { + color: #008080; } + .highlight .ni { + color: #800080; } + .highlight .ne { + color: #990000; + font-weight: bold; } + .highlight .nf { + color: #990000; } + .highlight .nn { + color: #555555; } + .highlight .nt { + color: #000080; } + .highlight .nv { + color: #008080; } + .highlight .ow { + color: #000000; + font-weight: bold; } + .highlight .w { + color: #bbbbbb; } + .highlight .mf { + color: #009999; } + .highlight .mh { + color: #009999; } + .highlight .mi { + color: #009999; } + .highlight .mo { + color: #009999; } + .highlight .sb { + color: #d14; } + .highlight .sc { + color: #d14; } + .highlight .sd { + color: #d14; } + .highlight .s2 { + color: #d14; } + .highlight .se { + color: #d14; } + .highlight .sh { + color: #d14; } + .highlight .si { + color: #d14; } + .highlight .sx { + color: #d14; } + .highlight .sr { + color: #009926; } + .highlight .s1 { + color: #d14; } + .highlight .ss { + color: #990073; } + .highlight .bp { + color: #999999; } + .highlight .vc { + color: #008080; } + .highlight .vg { + color: #008080; } + .highlight .vi { + color: #008080; } + .highlight .il { + color: #009999; } diff --git a/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/css/jazzy.css b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/css/jazzy.css new file mode 100644 index 00000000..d6282826 --- /dev/null +++ b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/css/jazzy.css @@ -0,0 +1,337 @@ +html, body, div, span, h1, h3, h4, p, a, code, em, img, ul, li, table, tbody, tr, td { + background: transparent; + border: 0; + margin: 0; + outline: 0; + padding: 0; + vertical-align: baseline; } + +body { + background-color: #f2f2f2; + font-family: Helvetica, freesans, Arial, sans-serif; + font-size: 14px; + -webkit-font-smoothing: subpixel-antialiased; + word-wrap: break-word; } + +h1, h2, h3 { + margin-top: 0.8em; + margin-bottom: 0.3em; + font-weight: 100; + color: black; } + +h1 { + font-size: 2.5em; } + +h2 { + font-size: 2em; + border-bottom: 1px solid #e2e2e2; } + +h4 { + font-size: 13px; + line-height: 1.5; + margin-top: 21px; } + +h5 { + font-size: 1.1em; } + +h6 { + font-size: 1.1em; + color: #777; } + +.section-name { + color: gray; + display: block; + font-family: Helvetica; + font-size: 22px; + font-weight: 100; + margin-bottom: 15px; } + +pre, code { + font: 0.95em Menlo, monospace; + color: #777; + word-wrap: normal; } + +p code, li code { + background-color: #eee; + padding: 2px 4px; + border-radius: 4px; } + +a { + color: #0088cc; + text-decoration: none; } + +ul { + padding-left: 15px; } + +li { + line-height: 1.8em; } + +img { + max-width: 100%; } + +blockquote { + margin-left: 0; + padding: 0 10px; + border-left: 4px solid #ccc; } + +.content-wrapper { + margin: 0 auto; + width: 980px; } + +header { + font-size: 0.85em; + line-height: 26px; + background-color: #414141; + position: fixed; + width: 100%; + z-index: 1; } + header img { + padding-right: 6px; + vertical-align: -4px; + height: 16px; } + header a { + color: #fff; } + header p { + float: left; + color: #999; } + header .header-right { + float: right; + margin-left: 16px; } + +#breadcrumbs { + background-color: #f2f2f2; + height: 27px; + padding-top: 17px; + position: fixed; + width: 100%; + z-index: 1; + margin-top: 26px; } + #breadcrumbs #carat { + height: 10px; + margin: 0 5px; } + +.sidebar { + background-color: #f9f9f9; + border: 1px solid #e2e2e2; + overflow-y: auto; + overflow-x: hidden; + position: fixed; + top: 70px; + bottom: 0; + width: 230px; + word-wrap: normal; } + +.nav-groups { + list-style-type: none; + background: #fff; + padding-left: 0; } + +.nav-group-name { + border-bottom: 1px solid #e2e2e2; + font-size: 1.1em; + font-weight: 100; + padding: 15px 0 15px 20px; } + .nav-group-name > a { + color: #333; } + +.nav-group-tasks { + margin-top: 5px; } + +.nav-group-task { + font-size: 0.9em; + list-style-type: none; + white-space: nowrap; } + .nav-group-task a { + color: #888; } + +.main-content { + background-color: #fff; + border: 1px solid #e2e2e2; + margin-left: 246px; + position: absolute; + overflow: hidden; + padding-bottom: 60px; + top: 70px; + width: 734px; } + .main-content p, .main-content a, .main-content code, .main-content em, .main-content ul, .main-content table, .main-content blockquote { + margin-bottom: 1em; } + .main-content p { + line-height: 1.8em; } + .main-content section .section:first-child { + margin-top: 0; + padding-top: 0; } + .main-content section .task-group-section .task-group:first-of-type { + padding-top: 10px; } + .main-content section .task-group-section .task-group:first-of-type .section-name { + padding-top: 15px; } + .main-content section .heading:before { + content: ""; + display: block; + padding-top: 70px; + margin: -70px 0 0; } + +.section { + padding: 0 25px; } + +.highlight { + background-color: #eee; + padding: 10px 12px; + border: 1px solid #e2e2e2; + border-radius: 4px; + overflow-x: auto; } + +.declaration .highlight { + overflow-x: initial; + padding: 0 40px 40px 0; + margin-bottom: -25px; + background-color: transparent; + border: none; } + +.section-name { + margin: 0; + margin-left: 18px; } + +.task-group-section { + padding-left: 6px; + border-top: 1px solid #e2e2e2; } + +.task-group { + padding-top: 0px; } + +.task-name-container a[name]:before { + content: ""; + display: block; + padding-top: 70px; + margin: -70px 0 0; } + +.item { + padding-top: 8px; + width: 100%; + list-style-type: none; } + .item a[name]:before { + content: ""; + display: block; + padding-top: 70px; + margin: -70px 0 0; } + .item code { + background-color: transparent; + padding: 0; } + .item .token { + padding-left: 3px; + margin-left: 15px; + font-size: 11.9px; } + .item .declaration-note { + font-size: .85em; + color: gray; + font-style: italic; } + +.pointer-container { + border-bottom: 1px solid #e2e2e2; + left: -23px; + padding-bottom: 13px; + position: relative; + width: 110%; } + +.pointer { + background: #f9f9f9; + border-left: 1px solid #e2e2e2; + border-top: 1px solid #e2e2e2; + height: 12px; + left: 21px; + top: -7px; + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -o-transform: rotate(45deg); + transform: rotate(45deg); + position: absolute; + width: 12px; } + +.height-container { + display: none; + left: -25px; + padding: 0 25px; + position: relative; + width: 100%; + overflow: hidden; } + .height-container .section { + background: #f9f9f9; + border-bottom: 1px solid #e2e2e2; + left: -25px; + position: relative; + width: 100%; + padding-top: 10px; + padding-bottom: 5px; } + +.aside, .language { + padding: 6px 12px; + margin: 12px 0; + border-left: 5px solid #dddddd; + overflow-y: hidden; } + .aside .aside-title, .language .aside-title { + font-size: 9px; + letter-spacing: 2px; + text-transform: uppercase; + padding-bottom: 0; + margin: 0; + color: #aaa; + -webkit-user-select: none; } + .aside p:last-child, .language p:last-child { + margin-bottom: 0; } + +.language { + border-left: 5px solid #cde9f4; } + .language .aside-title { + color: #4b8afb; } + +.aside-warning { + border-left: 5px solid #ff6666; } + .aside-warning .aside-title { + color: #ff0000; } + +.graybox { + border-collapse: collapse; + width: 100%; } + .graybox p { + margin: 0; + word-break: break-word; + min-width: 50px; } + .graybox td { + border: 1px solid #e2e2e2; + padding: 5px 25px 5px 10px; + vertical-align: middle; } + .graybox tr td:first-of-type { + text-align: right; + padding: 7px; + vertical-align: top; + word-break: normal; + width: 40px; } + +.slightly-smaller { + font-size: 0.9em; } + +#footer { + position: absolute; + bottom: 10px; + margin-left: 25px; } + #footer p { + margin: 0; + color: #aaa; + font-size: 0.8em; } + +html.dash header, html.dash #breadcrumbs, html.dash .sidebar { + display: none; } +html.dash .main-content { + width: 980px; + margin-left: 0; + border: none; + width: 100%; + top: 0; + padding-bottom: 0; } +html.dash .height-container { + display: block; } +html.dash .item .token { + margin-left: 0; } +html.dash .content-wrapper { + width: auto; } +html.dash #footer { + position: static; } diff --git a/docs/docsets/.docset/Contents/Resources/Documents/img/carat.png b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/img/carat.png similarity index 100% rename from docs/docsets/.docset/Contents/Resources/Documents/img/carat.png rename to SirenExample/docs/docsets/.docset/Contents/Resources/Documents/img/carat.png diff --git a/docs/docsets/.docset/Contents/Resources/Documents/img/dash.png b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/img/dash.png similarity index 100% rename from docs/docsets/.docset/Contents/Resources/Documents/img/dash.png rename to SirenExample/docs/docsets/.docset/Contents/Resources/Documents/img/dash.png diff --git a/docs/docsets/.docset/Contents/Resources/Documents/img/gh.png b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/img/gh.png similarity index 100% rename from docs/docsets/.docset/Contents/Resources/Documents/img/gh.png rename to SirenExample/docs/docsets/.docset/Contents/Resources/Documents/img/gh.png diff --git a/docs/docsets/.docset/Contents/Resources/Documents/index.html b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/index.html similarity index 70% rename from docs/docsets/.docset/Contents/Resources/Documents/index.html rename to SirenExample/docs/docsets/.docset/Contents/Resources/Documents/index.html index 6b5c9d78..9e7400f5 100644 --- a/docs/docsets/.docset/Contents/Resources/Documents/index.html +++ b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/index.html @@ -44,7 +44,7 @@ +
    @@ -70,8 +87,8 @@

    Authors

    diff --git a/docs/docsets/.docset/Contents/Resources/Documents/js/jazzy.js b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/js/jazzy.js similarity index 100% rename from docs/docsets/.docset/Contents/Resources/Documents/js/jazzy.js rename to SirenExample/docs/docsets/.docset/Contents/Resources/Documents/js/jazzy.js diff --git a/docs/docsets/.docset/Contents/Resources/Documents/js/jquery.min.js b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/js/jquery.min.js similarity index 100% rename from docs/docsets/.docset/Contents/Resources/Documents/js/jquery.min.js rename to SirenExample/docs/docsets/.docset/Contents/Resources/Documents/js/jquery.min.js diff --git a/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/search.json b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/search.json new file mode 100644 index 00000000..9a5cabb9 --- /dev/null +++ b/SirenExample/docs/docsets/.docset/Contents/Resources/Documents/search.json @@ -0,0 +1 @@ +{"Structs/SirenAlertMessaging/Constants.html#/s:5Siren0A14AlertMessagingV9ConstantsV8nextTimeSSvZ":{"name":"nextTime","parent_name":"Constants"},"Structs/SirenAlertMessaging/Constants.html#/s:5Siren0A14AlertMessagingV9ConstantsV11skipVersionSSvZ":{"name":"skipVersion","parent_name":"Constants"},"Structs/SirenAlertMessaging/Constants.html#/s:5Siren0A14AlertMessagingV9ConstantsV13updateMessageSSvZ":{"name":"updateMessage","parent_name":"Constants"},"Structs/SirenAlertMessaging/Constants.html#/s:5Siren0A14AlertMessagingV9ConstantsV11updateTitleSSvZ":{"name":"updateTitle","parent_name":"Constants"},"Structs/SirenAlertMessaging/Constants.html#/s:5Siren0A14AlertMessagingV9ConstantsV9updateNowSSvZ":{"name":"updateNow","parent_name":"Constants"},"Structs/SirenAlertMessaging/Constants.html":{"name":"Constants","parent_name":"SirenAlertMessaging"},"Structs/SirenAlertMessaging.html#/s:5Siren0A14AlertMessagingVACSS11updateTitle_SS0D7MessageSS0d6ButtonF0SS08nextTimegF0SS011skipVersiongF0tcfc":{"name":"init(updateTitle:updateMessage:updateButtonMessage:nextTimeButtonMessage:skipVersionButtonMessage:)","abstract":"

    The public initializer

    ","parent_name":"SirenAlertMessaging"},"Structs/SirenError/Known.html#/s:5Siren0A5ErrorV5KnownO20appStoreAppIDFailureA2EmF":{"name":"appStoreAppIDFailure","parent_name":"Known"},"Structs/SirenError/Known.html#/s:5Siren0A5ErrorV5KnownO28appStoreDataRetrievalFailureAEs0B0_pSg010underlyingB0_tcAEmF":{"name":"appStoreDataRetrievalFailure","parent_name":"Known"},"Structs/SirenError/Known.html#/s:5Siren0A5ErrorV5KnownO26appStoreJSONParsingFailureAEs0B0_p010underlyingB0_tcAEmF":{"name":"appStoreJSONParsingFailure","parent_name":"Known"},"Structs/SirenError/Known.html#/s:5Siren0A5ErrorV5KnownO30appStoreOSVersionNumberFailureA2EmF":{"name":"appStoreOSVersionNumberFailure","parent_name":"Known"},"Structs/SirenError/Known.html#/s:5Siren0A5ErrorV5KnownO28appStoreOSVersionUnsupportedA2EmF":{"name":"appStoreOSVersionUnsupported","parent_name":"Known"},"Structs/SirenError/Known.html#/s:5Siren0A5ErrorV5KnownO27appStoreVersionArrayFailureA2EmF":{"name":"appStoreVersionArrayFailure","parent_name":"Known"},"Structs/SirenError/Known.html#/s:5Siren0A5ErrorV5KnownO12malformedURLA2EmF":{"name":"malformedURL","parent_name":"Known"},"Structs/SirenError/Known.html#/s:5Siren0A5ErrorV5KnownO17noUpdateAvailableA2EmF":{"name":"noUpdateAvailable","parent_name":"Known"},"Structs/SirenError/Known.html#/s:5Siren0A5ErrorV5KnownO22recentlyCheckedAlreadyA2EmF":{"name":"recentlyCheckedAlready","parent_name":"Known"},"Structs/SirenError/Known.html":{"name":"Known","parent_name":"SirenError"},"Structs/SirenError.html":{"name":"SirenError"},"Structs/SirenAlertMessaging.html":{"name":"SirenAlertMessaging","abstract":"

    Allows the overriding of all the UIAlertController and UIActionSheet Strings to which Siren defaults.

    "},"Protocols/SirenDelegate.html#/s:5Siren0A8DelegateP24sirenDidShowUpdateDialogyA2AC9AlertTypeO05alertI0_tF":{"name":"sirenDidShowUpdateDialog(alertType:)","abstract":"

    User presented with update dialog.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:5Siren0A8DelegateP26sirenUserDidLaunchAppStoreyyF":{"name":"sirenUserDidLaunchAppStore()","abstract":"

    User did click on button that launched App Store.app.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:5Siren0A8DelegateP23sirenUserDidSkipVersionyyF":{"name":"sirenUserDidSkipVersion()","abstract":"

    User did click on button that skips version update.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:5Siren0A8DelegateP18sirenUserDidCancelyyF":{"name":"sirenUserDidCancel()","abstract":"

    User did click on button that cancels update dialog.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:5Siren0A8DelegateP24sirenDidFailVersionCheckys5Error_p5error_tF":{"name":"sirenDidFailVersionCheck(error:)","abstract":"

    Siren failed to perform version check (may return system-level error).

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:5Siren0A8DelegateP36sirenDidDetectNewVersionWithoutAlertySS7message_AA10UpdateTypeO06updateL0tF":{"name":"sirenDidDetectNewVersionWithoutAlert(message:updateType:)","abstract":"

    Siren performed version check and did not display alert.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html#/s:5Siren0A8DelegateP27sirenLatestVersionInstalledyyF":{"name":"sirenLatestVersionInstalled()","abstract":"

    Siren performed version check and latest version is installed.

    ","parent_name":"SirenDelegate"},"Protocols/SirenDelegate.html":{"name":"SirenDelegate","abstract":"

    Delegate that handles all codepaths for Siren upon version check completion.

    "},"Enums/UpdateType.html#/s:5Siren10UpdateTypeO5majorA2CmF":{"name":"major","parent_name":"UpdateType"},"Enums/UpdateType.html#/s:5Siren10UpdateTypeO5minorA2CmF":{"name":"minor","parent_name":"UpdateType"},"Enums/UpdateType.html#/s:5Siren10UpdateTypeO5patchA2CmF":{"name":"patch","parent_name":"UpdateType"},"Enums/UpdateType.html#/s:5Siren10UpdateTypeO8revisionA2CmF":{"name":"revision","parent_name":"UpdateType"},"Enums/UpdateType.html#/s:5Siren10UpdateTypeO7unknownA2CmF":{"name":"unknown","parent_name":"UpdateType"},"Enums/UpdateType.html":{"name":"UpdateType","abstract":"

    MARK - Siren UpdateType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO6arabicA2DmF":{"name":"arabic","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO8armenianA2DmF":{"name":"armenian","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO6basqueA2DmF":{"name":"basque","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO17chineseSimplifiedA2DmF":{"name":"chineseSimplified","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO18chineseTraditionalA2DmF":{"name":"chineseTraditional","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO8croatianA2DmF":{"name":"croatian","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO5czechA2DmF":{"name":"czech","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO6danishA2DmF":{"name":"danish","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO5dutchA2DmF":{"name":"dutch","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO7englishA2DmF":{"name":"english","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO8estonianA2DmF":{"name":"estonian","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO7finnishA2DmF":{"name":"finnish","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO6frenchA2DmF":{"name":"french","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO6germanA2DmF":{"name":"german","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO5greekA2DmF":{"name":"greek","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO6hebrewA2DmF":{"name":"hebrew","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO9hungarianA2DmF":{"name":"hungarian","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO10indonesianA2DmF":{"name":"indonesian","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO7italianA2DmF":{"name":"italian","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO8japaneseA2DmF":{"name":"japanese","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO6koreanA2DmF":{"name":"korean","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO7latvianA2DmF":{"name":"latvian","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO10lithuanianA2DmF":{"name":"lithuanian","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO5malayA2DmF":{"name":"malay","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO9norwegianA2DmF":{"name":"norwegian","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO7persianA2DmF":{"name":"persian","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO18persianAfghanistanA2DmF":{"name":"persianAfghanistan","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO11persianIranA2DmF":{"name":"persianIran","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO6polishA2DmF":{"name":"polish","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO16portugueseBrazilA2DmF":{"name":"portugueseBrazil","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO18portuguesePortugalA2DmF":{"name":"portuguesePortugal","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO7russianA2DmF":{"name":"russian","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO15serbianCyrillicA2DmF":{"name":"serbianCyrillic","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO12serbianLatinA2DmF":{"name":"serbianLatin","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO9slovenianA2DmF":{"name":"slovenian","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO7spanishA2DmF":{"name":"spanish","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO7swedishA2DmF":{"name":"swedish","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO4thaiA2DmF":{"name":"thai","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO7turkishA2DmF":{"name":"turkish","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO4urduA2DmF":{"name":"urdu","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO9ukrainianA2DmF":{"name":"ukrainian","parent_name":"LanguageType"},"Classes/Siren/LanguageType.html#/s:5SirenAAC12LanguageTypeO10vietnameseA2DmF":{"name":"vietnamese","parent_name":"LanguageType"},"Classes/Siren/VersionCheckType.html#/s:5SirenAAC16VersionCheckTypeO11immediatelyA2DmF":{"name":"immediately","abstract":"

    Version check performed every time the app is launched.

    ","parent_name":"VersionCheckType"},"Classes/Siren/VersionCheckType.html#/s:5SirenAAC16VersionCheckTypeO5dailyA2DmF":{"name":"daily","abstract":"

    Version check performed once a day.

    ","parent_name":"VersionCheckType"},"Classes/Siren/VersionCheckType.html#/s:5SirenAAC16VersionCheckTypeO6weeklyA2DmF":{"name":"weekly","abstract":"

    Version check performed once a week.

    ","parent_name":"VersionCheckType"},"Classes/Siren/AlertType.html#/s:5SirenAAC9AlertTypeO5forceA2DmF":{"name":"force","abstract":"

    Forces user to update your app (1 button alert).

    ","parent_name":"AlertType"},"Classes/Siren/AlertType.html#/s:5SirenAAC9AlertTypeO6optionA2DmF":{"name":"option","abstract":"

    (DEFAULT) Presents user with option to update app now or at next launch (2 button alert).

    ","parent_name":"AlertType"},"Classes/Siren/AlertType.html#/s:5SirenAAC9AlertTypeO4skipA2DmF":{"name":"skip","abstract":"

    Presents user with option to update the app now, at next launch, or to skip this version all together (3 button alert).

    ","parent_name":"AlertType"},"Classes/Siren/AlertType.html#/s:5SirenAAC9AlertTypeO4noneA2DmF":{"name":"none","abstract":"

    Doesn’t show the alert, but instead returns a localized message","parent_name":"AlertType"},"Classes/Siren.html#/s:5SirenAAC0A11ErrorDomainSSv":{"name":"SirenErrorDomain","abstract":"

    The error domain for all errors created by Siren.

    ","parent_name":"Siren"},"Classes/Siren.html#/s:5SirenAAC8delegateAA0A8Delegate_pSgXwv":{"name":"delegate","abstract":"

    The SirenDelegate variable, which should be set if you’d like to be notified:

    ","parent_name":"Siren"},"Classes/Siren.html#/s:5SirenAAC12debugEnabledSbv":{"name":"debugEnabled","abstract":"

    The debug flag, which is disabled by default.","parent_name":"Siren"},"Classes/Siren.html#/s:5SirenAAC9alertTypeAB05AlertC0Ov":{"name":"alertType","abstract":"

    Determines the type of alert that should be shown.","parent_name":"Siren"},"Classes/Siren.html#/s:5SirenAAC20majorUpdateAlertTypeAB0dE0Ov":{"name":"majorUpdateAlertType","abstract":"

    Determines the type of alert that should be shown for major version updates: A.b.c","parent_name":"Siren"},"Classes/Siren.html#/s:5SirenAAC20minorUpdateAlertTypeAB0dE0Ov":{"name":"minorUpdateAlertType","abstract":"

    Determines the type of alert that should be shown for minor version updates: a.B.c","parent_name":"Siren"},"Classes/Siren.html#/s:5SirenAAC20patchUpdateAlertTypeAB0dE0Ov":{"name":"patchUpdateAlertType","abstract":"

    Determines the type of alert that should be shown for minor patch updates: a.b.C","parent_name":"Siren"},"Classes/Siren.html#/s:5SirenAAC23revisionUpdateAlertTypeAB0dE0Ov":{"name":"revisionUpdateAlertType","abstract":"

    Determines the type of alert that should be shown for revision updates: a.b.c.D","parent_name":"Siren"},"Classes/Siren.html#/s:5SirenAAC7appNameSSv":{"name":"appName","abstract":"

    The name of your app.","parent_name":"Siren"},"Classes/Siren.html#/s:5SirenAAC14alertMessagingAA0a5AlertC0Vv":{"name":"alertMessaging","abstract":"

    Overrides all the Strings to which Siren defaults.","parent_name":"Siren"},"Classes/Siren.html#/s:5SirenAAC11countryCodeSSSgv":{"name":"countryCode","abstract":"

    The region or country of an App Store in which your app is available.","parent_name":"Siren"},"Classes/Siren.html#/s:5SirenAAC25forceLanguageLocalizationAB0C4TypeOSgv":{"name":"forceLanguageLocalization","abstract":"

    Overrides the default localization of a user’s device when presenting the update message and button titles in the alert.","parent_name":"Siren"},"Classes/Siren.html#/s:5SirenAAC24alertControllerTintColorSo7UIColorCSgv":{"name":"alertControllerTintColor","abstract":"

    Overrides the tint color for UIAlertController.

    ","parent_name":"Siren"},"Classes/Siren.html#/s:5SirenAAC50showAlertAfterCurrentVersionHasBeenReleasedForDaysSiv":{"name":"showAlertAfterCurrentVersionHasBeenReleasedForDays","abstract":"

    When this is set, the alert will only show up if the current version has already been released for X days","parent_name":"Siren"},"Classes/Siren.html#/s:5SirenAAC22currentAppStoreVersionSSSgv":{"name":"currentAppStoreVersion","abstract":"

    The current version of your app that is available for download on the App Store

    ","parent_name":"Siren"},"Classes/Siren.html#/s:5SirenAAC6sharedABvZ":{"name":"shared","abstract":"

    The App’s Singleton

    ","parent_name":"Siren"},"Classes/Siren.html#/s:5SirenAAC12checkVersionyAB0C9CheckTypeO0bE0_tF":{"name":"checkVersion(checkType:)","abstract":"

    Checks the currently installed version of your app against the App Store.","parent_name":"Siren"},"Classes/Siren.html#/s:5SirenAAC14launchAppStoreyyF":{"name":"launchAppStore()","abstract":"

    Launches the AppStore in two situations:

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

    Determines the type of alert to present after a successful version check has been performed.

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

    Determines the frequency in which the the version check is performed and the user is prompted to update the app.

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

    Determines the available languages in which the update message and alert button titles should appear.

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

    The Siren Class. A singleton that is initialized using the shared constant.

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

    The following classes are available globally.

    "},"Enums.html":{"name":"Enumerations","abstract":"

    The following enumerations are available globally.

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

    The following protocols are available globally.

    "},"Structs.html":{"name":"Structures","abstract":"

    The following structures are available globally.

    "}} \ No newline at end of file diff --git a/SirenExample/docs/docsets/.docset/Contents/Resources/docSet.dsidx b/SirenExample/docs/docsets/.docset/Contents/Resources/docSet.dsidx new file mode 100644 index 0000000000000000000000000000000000000000..fb5123be74e06bdca9fa4e10d19bb86e609e7a25 GIT binary patch literal 36864 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
    orhVdDDNRuxWsGW!fQJgF$bb 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

    +_#;<&vfX&yju{VfHI=^=6= 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 V2ymNx2$%#x&qF8wfcOCi@js)^)&&3n literal 0 HcmV?d00001 diff --git a/SirenExample/docs/img/carat.png b/SirenExample/docs/img/carat.png new file mode 100755 index 0000000000000000000000000000000000000000..29d2f7fd4955fca6bc6fb740e0373a2c358c398e GIT binary patch literal 274 zcmeAS@N?(olHy`uVBq!ia0vp^0zfRo!3HEV4DF?Wlw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6JlqAi{-jv*Ddl5#RKJQ5NTUZgiPI4RUKGIKU?u8L&ndhX1t za+0CMVUnT(Gnb}ei=c~x==tMH^F1_tBocXwcoSWoO-SZY-o>!8%^=Bms)(~h;m_U( zXNixk28L}0LS5-jKyq@#2gyS|J&f#pGCLkTc<@2s1dqeyqJ*Rc0tSIETAgmODY;(s z2y|Mcp&2}7rpBprBBB~1qM1`N+}4SoxYVPqsXi&l`rxZp{(w0iSy$Nv5*Vy!RapG^ S^0y4=eg;ohKbLh*2~7a!Pg}VF literal 0 HcmV?d00001 diff --git a/SirenExample/docs/img/dash.png b/SirenExample/docs/img/dash.png new file mode 100755 index 0000000000000000000000000000000000000000..6f694c7a012b417908da3687a0a39aa182e91c74 GIT binary patch literal 1338 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 ShohtYzipXxh2)4xTk + + + Reference + + + + + + + + + +

    +
    +

    Docs (100% documented)

    +
    +
    +
    + +
    +
    + +
    +
    +
    + +

    Authors

    + +
    +
    + +
    +
    + + + diff --git a/SirenExample/docs/js/jazzy.js b/SirenExample/docs/js/jazzy.js new file mode 100755 index 00000000..3965b5fb --- /dev/null +++ b/SirenExample/docs/js/jazzy.js @@ -0,0 +1,46 @@ +window.jazzy = {'docset': false} +if (typeof window.dash != 'undefined') { + document.documentElement.className += ' dash' + window.jazzy.docset = true +} +if (navigator.userAgent.match(/xcode/i)) { + document.documentElement.className += ' xcode' + window.jazzy.docset = true +} + +// On doc load, toggle the URL hash discussion if present +$(document).ready(function() { + if (!window.jazzy.docset) { + var linkToHash = $('a[href="' + window.location.hash +'"]'); + linkToHash.trigger("click"); + } +}); + +// On token click, toggle its discussion and animate token.marginLeft +$(".token").click(function(event) { + if (window.jazzy.docset) { + return; + } + var link = $(this); + var animationDuration = 300; + var tokenOffset = "15px"; + var original = link.css('marginLeft') == tokenOffset; + link.animate({'margin-left':original ? "0px" : tokenOffset}, animationDuration); + $content = link.parent().parent().next(); + $content.slideToggle(animationDuration); + + // Keeps the document from jumping to the hash. + var href = $(this).attr('href'); + if (history.pushState) { + history.pushState({}, '', href); + } else { + location.hash = href; + } + event.preventDefault(); +}); + +// Dumb down quotes within code blocks that delimit strings instead of quotations +// https://github.com/realm/jazzy/issues/714 +$("code q").replaceWith(function () { + return ["\"", $(this).contents(), "\""]; +}); diff --git a/SirenExample/docs/js/jquery.min.js b/SirenExample/docs/js/jquery.min.js new file mode 100755 index 00000000..ab28a247 --- /dev/null +++ b/SirenExample/docs/js/jquery.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.11.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l="1.11.1",m=function(a,b){return new m.fn.init(a,b)},n=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,o=/^-ms-/,p=/-([\da-z])/gi,q=function(a,b){return b.toUpperCase()};m.fn=m.prototype={jquery:l,constructor:m,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=m.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return m.each(this,a,b)},map:function(a){return this.pushStack(m.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},m.extend=m.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||m.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(m.isPlainObject(c)||(b=m.isArray(c)))?(b?(b=!1,f=a&&m.isArray(a)?a:[]):f=a&&m.isPlainObject(a)?a:{},g[d]=m.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},m.extend({expando:"jQuery"+(l+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===m.type(a)},isArray:Array.isArray||function(a){return"array"===m.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return!m.isArray(a)&&a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==m.type(a)||a.nodeType||m.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(k.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&m.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(o,"ms-").replace(p,q)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=r(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(n,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(r(Object(a))?m.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=r(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),m.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||m.guid++,e):void 0},now:function(){return+new Date},support:k}),m.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function r(a){var b=a.length,c=m.type(a);return"function"===c||m.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var s=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="
    ",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);m.find=s,m.expr=s.selectors,m.expr[":"]=m.expr.pseudos,m.unique=s.uniqueSort,m.text=s.getText,m.isXMLDoc=s.isXML,m.contains=s.contains;var t=m.expr.match.needsContext,u=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,v=/^.[^:#\[\.,]*$/;function w(a,b,c){if(m.isFunction(b))return m.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return m.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(v.test(b))return m.filter(b,a,c);b=m.filter(b,a)}return m.grep(a,function(a){return m.inArray(a,b)>=0!==c})}m.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?m.find.matchesSelector(d,a)?[d]:[]:m.find.matches(a,m.grep(b,function(a){return 1===a.nodeType}))},m.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(m(a).filter(function(){for(b=0;e>b;b++)if(m.contains(d[b],this))return!0}));for(b=0;e>b;b++)m.find(a,d[b],c);return c=this.pushStack(e>1?m.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(w(this,a||[],!1))},not:function(a){return this.pushStack(w(this,a||[],!0))},is:function(a){return!!w(this,"string"==typeof a&&t.test(a)?m(a):a||[],!1).length}});var x,y=a.document,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=m.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||x).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof m?b[0]:b,m.merge(this,m.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:y,!0)),u.test(c[1])&&m.isPlainObject(b))for(c in b)m.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=y.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return x.find(a);this.length=1,this[0]=d}return this.context=y,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):m.isFunction(a)?"undefined"!=typeof x.ready?x.ready(a):a(m):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),m.makeArray(a,this))};A.prototype=m.fn,x=m(y);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};m.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!m(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),m.fn.extend({has:function(a){var b,c=m(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(m.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=t.test(a)||"string"!=typeof a?m(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&m.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?m.unique(f):f)},index:function(a){return a?"string"==typeof a?m.inArray(this[0],m(a)):m.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(m.unique(m.merge(this.get(),m(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}m.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return m.dir(a,"parentNode")},parentsUntil:function(a,b,c){return m.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return m.dir(a,"nextSibling")},prevAll:function(a){return m.dir(a,"previousSibling")},nextUntil:function(a,b,c){return m.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return m.dir(a,"previousSibling",c)},siblings:function(a){return m.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return m.sibling(a.firstChild)},contents:function(a){return m.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:m.merge([],a.childNodes)}},function(a,b){m.fn[a]=function(c,d){var e=m.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=m.filter(d,e)),this.length>1&&(C[a]||(e=m.unique(e)),B.test(a)&&(e=e.reverse())),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return m.each(a.match(E)||[],function(a,c){b[c]=!0}),b}m.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):m.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){m.each(b,function(b,c){var d=m.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&m.each(arguments,function(a,c){var d;while((d=m.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?m.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},m.extend({Deferred:function(a){var b=[["resolve","done",m.Callbacks("once memory"),"resolved"],["reject","fail",m.Callbacks("once memory"),"rejected"],["notify","progress",m.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return m.Deferred(function(c){m.each(b,function(b,f){var g=m.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&m.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?m.extend(a,d):d}},e={};return d.pipe=d.then,m.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&m.isFunction(a.promise)?e:0,g=1===f?a:m.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&m.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;m.fn.ready=function(a){return m.ready.promise().done(a),this},m.extend({isReady:!1,readyWait:1,holdReady:function(a){a?m.readyWait++:m.ready(!0)},ready:function(a){if(a===!0?!--m.readyWait:!m.isReady){if(!y.body)return setTimeout(m.ready);m.isReady=!0,a!==!0&&--m.readyWait>0||(H.resolveWith(y,[m]),m.fn.triggerHandler&&(m(y).triggerHandler("ready"),m(y).off("ready")))}}});function I(){y.addEventListener?(y.removeEventListener("DOMContentLoaded",J,!1),a.removeEventListener("load",J,!1)):(y.detachEvent("onreadystatechange",J),a.detachEvent("onload",J))}function J(){(y.addEventListener||"load"===event.type||"complete"===y.readyState)&&(I(),m.ready())}m.ready.promise=function(b){if(!H)if(H=m.Deferred(),"complete"===y.readyState)setTimeout(m.ready);else if(y.addEventListener)y.addEventListener("DOMContentLoaded",J,!1),a.addEventListener("load",J,!1);else{y.attachEvent("onreadystatechange",J),a.attachEvent("onload",J);var c=!1;try{c=null==a.frameElement&&y.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!m.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}I(),m.ready()}}()}return H.promise(b)};var K="undefined",L;for(L in m(k))break;k.ownLast="0"!==L,k.inlineBlockNeedsLayout=!1,m(function(){var a,b,c,d;c=y.getElementsByTagName("body")[0],c&&c.style&&(b=y.createElement("div"),d=y.createElement("div"),d.style.cssText="position:absolute;border:0;width:0;height:0;top:0;left:-9999px",c.appendChild(d).appendChild(b),typeof b.style.zoom!==K&&(b.style.cssText="display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1",k.inlineBlockNeedsLayout=a=3===b.offsetWidth,a&&(c.style.zoom=1)),c.removeChild(d))}),function(){var a=y.createElement("div");if(null==k.deleteExpando){k.deleteExpando=!0;try{delete a.test}catch(b){k.deleteExpando=!1}}a=null}(),m.acceptData=function(a){var b=m.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var M=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,N=/([A-Z])/g;function O(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(N,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:M.test(c)?m.parseJSON(c):c}catch(e){}m.data(a,b,c)}else c=void 0}return c}function P(a){var b;for(b in a)if(("data"!==b||!m.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function Q(a,b,d,e){if(m.acceptData(a)){var f,g,h=m.expando,i=a.nodeType,j=i?m.cache:a,k=i?a[h]:a[h]&&h; +if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||m.guid++:h),j[k]||(j[k]=i?{}:{toJSON:m.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=m.extend(j[k],b):j[k].data=m.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[m.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[m.camelCase(b)])):f=g,f}}function R(a,b,c){if(m.acceptData(a)){var d,e,f=a.nodeType,g=f?m.cache:a,h=f?a[m.expando]:m.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){m.isArray(b)?b=b.concat(m.map(b,m.camelCase)):b in d?b=[b]:(b=m.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!P(d):!m.isEmptyObject(d))return}(c||(delete g[h].data,P(g[h])))&&(f?m.cleanData([a],!0):k.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}m.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?m.cache[a[m.expando]]:a[m.expando],!!a&&!P(a)},data:function(a,b,c){return Q(a,b,c)},removeData:function(a,b){return R(a,b)},_data:function(a,b,c){return Q(a,b,c,!0)},_removeData:function(a,b){return R(a,b,!0)}}),m.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=m.data(f),1===f.nodeType&&!m._data(f,"parsedAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=m.camelCase(d.slice(5)),O(f,d,e[d])));m._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){m.data(this,a)}):arguments.length>1?this.each(function(){m.data(this,a,b)}):f?O(f,a,m.data(f,a)):void 0},removeData:function(a){return this.each(function(){m.removeData(this,a)})}}),m.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=m._data(a,b),c&&(!d||m.isArray(c)?d=m._data(a,b,m.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=m.queue(a,b),d=c.length,e=c.shift(),f=m._queueHooks(a,b),g=function(){m.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return m._data(a,c)||m._data(a,c,{empty:m.Callbacks("once memory").add(function(){m._removeData(a,b+"queue"),m._removeData(a,c)})})}}),m.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},W=/^(?:checkbox|radio)$/i;!function(){var a=y.createElement("input"),b=y.createElement("div"),c=y.createDocumentFragment();if(b.innerHTML="
    a",k.leadingWhitespace=3===b.firstChild.nodeType,k.tbody=!b.getElementsByTagName("tbody").length,k.htmlSerialize=!!b.getElementsByTagName("link").length,k.html5Clone="<:nav>"!==y.createElement("nav").cloneNode(!0).outerHTML,a.type="checkbox",a.checked=!0,c.appendChild(a),k.appendChecked=a.checked,b.innerHTML="",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,c.appendChild(b),b.innerHTML="",k.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,k.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){k.noCloneEvent=!1}),b.cloneNode(!0).click()),null==k.deleteExpando){k.deleteExpando=!0;try{delete b.test}catch(d){k.deleteExpando=!1}}}(),function(){var b,c,d=y.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(k[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),k[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var X=/^(?:input|select|textarea)$/i,Y=/^key/,Z=/^(?:mouse|pointer|contextmenu)|click/,$=/^(?:focusinfocus|focusoutblur)$/,_=/^([^.]*)(?:\.(.+)|)$/;function ab(){return!0}function bb(){return!1}function cb(){try{return y.activeElement}catch(a){}}m.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=m.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof m===K||a&&m.event.triggered===a.type?void 0:m.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(E)||[""],h=b.length;while(h--)f=_.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=m.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=m.event.special[o]||{},l=m.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&m.expr.match.needsContext.test(e),namespace:p.join(".")},i),(n=g[o])||(n=g[o]=[],n.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?n.splice(n.delegateCount++,0,l):n.push(l),m.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,n,o,p,q,r=m.hasData(a)&&m._data(a);if(r&&(k=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=_.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=m.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,n=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=n.length;while(f--)g=n[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(n.splice(f,1),g.selector&&n.delegateCount--,l.remove&&l.remove.call(a,g));i&&!n.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||m.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)m.event.remove(a,o+b[j],c,d,!0);m.isEmptyObject(k)&&(delete r.handle,m._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,n,o=[d||y],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||y,3!==d.nodeType&&8!==d.nodeType&&!$.test(p+m.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[m.expando]?b:new m.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:m.makeArray(c,[b]),k=m.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!m.isWindow(d)){for(i=k.delegateType||p,$.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||y)&&o.push(l.defaultView||l.parentWindow||a)}n=0;while((h=o[n++])&&!b.isPropagationStopped())b.type=n>1?i:k.bindType||p,f=(m._data(h,"events")||{})[b.type]&&m._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&m.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&m.acceptData(d)&&g&&d[p]&&!m.isWindow(d)){l=d[g],l&&(d[g]=null),m.event.triggered=p;try{d[p]()}catch(r){}m.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=m.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(m._data(this,"events")||{})[a.type]||[],k=m.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=m.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((m.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?m(c,this).index(i)>=0:m.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),hb=/^\s+/,ib=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,jb=/<([\w:]+)/,kb=/\s*$/g,rb={option:[1,""],legend:[1,"
    ","
    "],area:[1,"",""],param:[1,"",""],thead:[1,"","
    "],tr:[2,"","
    "],col:[2,"","
    "],td:[3,"","
    "],_default:k.htmlSerialize?[0,"",""]:[1,"X
    ","
    "]},sb=db(y),tb=sb.appendChild(y.createElement("div"));rb.optgroup=rb.option,rb.tbody=rb.tfoot=rb.colgroup=rb.caption=rb.thead,rb.th=rb.td;function ub(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==K?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==K?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||m.nodeName(d,b)?f.push(d):m.merge(f,ub(d,b));return void 0===b||b&&m.nodeName(a,b)?m.merge([a],f):f}function vb(a){W.test(a.type)&&(a.defaultChecked=a.checked)}function wb(a,b){return m.nodeName(a,"table")&&m.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function xb(a){return a.type=(null!==m.find.attr(a,"type"))+"/"+a.type,a}function yb(a){var b=pb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function zb(a,b){for(var c,d=0;null!=(c=a[d]);d++)m._data(c,"globalEval",!b||m._data(b[d],"globalEval"))}function Ab(a,b){if(1===b.nodeType&&m.hasData(a)){var c,d,e,f=m._data(a),g=m._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)m.event.add(b,c,h[c][d])}g.data&&(g.data=m.extend({},g.data))}}function Bb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!k.noCloneEvent&&b[m.expando]){e=m._data(b);for(d in e.events)m.removeEvent(b,d,e.handle);b.removeAttribute(m.expando)}"script"===c&&b.text!==a.text?(xb(b).text=a.text,yb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),k.html5Clone&&a.innerHTML&&!m.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&W.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}m.extend({clone:function(a,b,c){var d,e,f,g,h,i=m.contains(a.ownerDocument,a);if(k.html5Clone||m.isXMLDoc(a)||!gb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(tb.innerHTML=a.outerHTML,tb.removeChild(f=tb.firstChild)),!(k.noCloneEvent&&k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||m.isXMLDoc(a)))for(d=ub(f),h=ub(a),g=0;null!=(e=h[g]);++g)d[g]&&Bb(e,d[g]);if(b)if(c)for(h=h||ub(a),d=d||ub(f),g=0;null!=(e=h[g]);g++)Ab(e,d[g]);else Ab(a,f);return d=ub(f,"script"),d.length>0&&zb(d,!i&&ub(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,l,n=a.length,o=db(b),p=[],q=0;n>q;q++)if(f=a[q],f||0===f)if("object"===m.type(f))m.merge(p,f.nodeType?[f]:f);else if(lb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(jb.exec(f)||["",""])[1].toLowerCase(),l=rb[i]||rb._default,h.innerHTML=l[1]+f.replace(ib,"<$1>")+l[2],e=l[0];while(e--)h=h.lastChild;if(!k.leadingWhitespace&&hb.test(f)&&p.push(b.createTextNode(hb.exec(f)[0])),!k.tbody){f="table"!==i||kb.test(f)?""!==l[1]||kb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)m.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}m.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),k.appendChecked||m.grep(ub(p,"input"),vb),q=0;while(f=p[q++])if((!d||-1===m.inArray(f,d))&&(g=m.contains(f.ownerDocument,f),h=ub(o.appendChild(f),"script"),g&&zb(h),c)){e=0;while(f=h[e++])ob.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=m.expando,j=m.cache,l=k.deleteExpando,n=m.event.special;null!=(d=a[h]);h++)if((b||m.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)n[e]?m.event.remove(d,e):m.removeEvent(d,e,g.handle);j[f]&&(delete j[f],l?delete d[i]:typeof d.removeAttribute!==K?d.removeAttribute(i):d[i]=null,c.push(f))}}}),m.fn.extend({text:function(a){return V(this,function(a){return void 0===a?m.text(this):this.empty().append((this[0]&&this[0].ownerDocument||y).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=wb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?m.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||m.cleanData(ub(c)),c.parentNode&&(b&&m.contains(c.ownerDocument,c)&&zb(ub(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&m.cleanData(ub(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&m.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return m.clone(this,a,b)})},html:function(a){return V(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(fb,""):void 0;if(!("string"!=typeof a||mb.test(a)||!k.htmlSerialize&&gb.test(a)||!k.leadingWhitespace&&hb.test(a)||rb[(jb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(ib,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(m.cleanData(ub(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,m.cleanData(ub(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,n=this,o=l-1,p=a[0],q=m.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&nb.test(p))return this.each(function(c){var d=n.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(i=m.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=m.map(ub(i,"script"),xb),f=g.length;l>j;j++)d=i,j!==o&&(d=m.clone(d,!0,!0),f&&m.merge(g,ub(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,m.map(g,yb),j=0;f>j;j++)d=g[j],ob.test(d.type||"")&&!m._data(d,"globalEval")&&m.contains(h,d)&&(d.src?m._evalUrl&&m._evalUrl(d.src):m.globalEval((d.text||d.textContent||d.innerHTML||"").replace(qb,"")));i=c=null}return this}}),m.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){m.fn[a]=function(a){for(var c,d=0,e=[],g=m(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),m(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Cb,Db={};function Eb(b,c){var d,e=m(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:m.css(e[0],"display");return e.detach(),f}function Fb(a){var b=y,c=Db[a];return c||(c=Eb(a,b),"none"!==c&&c||(Cb=(Cb||m("