From ecd44ed6af66d45a50e62401228430c54c60dd26 Mon Sep 17 00:00:00 2001 From: Zihe Jia Date: Mon, 13 Nov 2023 13:55:00 -0800 Subject: [PATCH] Update docs --- docs/Classes.html | 54 +- docs/Classes/Group.html | 223 +--- docs/Classes/Mixpanel.html | 255 +--- docs/Classes/MixpanelInstance.html | 1087 ++--------------- docs/Classes/People.html | 395 +----- docs/Extensions.html | 186 +-- docs/Extensions/Array.html | 40 +- docs/Extensions/Bool.html | 40 +- docs/Extensions/Date.html | 40 +- docs/Extensions/Dictionary.html | 40 +- docs/Extensions/Double.html | 40 +- docs/Extensions/Float.html | 40 +- docs/Extensions/Int.html | 40 +- docs/Extensions/NSArray.html | 40 +- docs/Extensions/NSNull.html | 40 +- docs/Extensions/NSNumber.html | 40 +- docs/Extensions/NSString.html | 40 +- docs/Extensions/Optional.html | 40 +- docs/Extensions/String.html | 40 +- docs/Extensions/UInt.html | 40 +- docs/Extensions/URL.html | 40 +- docs/Protocols.html | 30 +- docs/Protocols/MixpanelDelegate.html | 48 +- docs/Protocols/MixpanelType.html | 40 +- docs/Typealiases.html | 21 +- docs/badge.svg | 16 +- .../Contents/Resources/Documents/Classes.html | 54 +- .../Resources/Documents/Classes/Group.html | 223 +--- .../Resources/Documents/Classes/Mixpanel.html | 255 +--- .../Documents/Classes/MixpanelInstance.html | 1087 ++--------------- .../Resources/Documents/Classes/People.html | 395 +----- .../Resources/Documents/Extensions.html | 186 +-- .../Resources/Documents/Extensions/Array.html | 40 +- .../Resources/Documents/Extensions/Bool.html | 40 +- .../Resources/Documents/Extensions/Date.html | 40 +- .../Documents/Extensions/Dictionary.html | 40 +- .../Documents/Extensions/Double.html | 40 +- .../Resources/Documents/Extensions/Float.html | 40 +- .../Resources/Documents/Extensions/Int.html | 40 +- .../Documents/Extensions/NSArray.html | 40 +- .../Documents/Extensions/NSNull.html | 40 +- .../Documents/Extensions/NSNumber.html | 40 +- .../Documents/Extensions/NSString.html | 40 +- .../Documents/Extensions/Optional.html | 40 +- .../Documents/Extensions/String.html | 40 +- .../Resources/Documents/Extensions/UInt.html | 40 +- .../Resources/Documents/Extensions/URL.html | 40 +- .../Resources/Documents/Protocols.html | 30 +- .../Documents/Protocols/MixpanelDelegate.html | 48 +- .../Documents/Protocols/MixpanelType.html | 40 +- .../Resources/Documents/Typealiases.html | 21 +- .../Contents/Resources/Documents/index.html | 6 +- .../Contents/Resources/Documents/search.json | 2 +- .../Contents/Resources/docSet.dsidx | Bin 45056 -> 36864 bytes docs/docsets/Mixpanel.tgz | Bin 99021 -> 89930 bytes docs/index.html | 6 +- docs/search.json | 2 +- docs/undocumented.json | 143 +-- 58 files changed, 744 insertions(+), 5309 deletions(-) diff --git a/docs/Classes.html b/docs/Classes.html index 61ce6bf11..85428e555 100644 --- a/docs/Classes.html +++ b/docs/Classes.html @@ -17,7 +17,7 @@
-

Mixpanel 4.1.4 Docs (83% documented)

+

Mixpanel 4.2.0 Docs (0% documented)

GitHubView on GitHub

@@ -118,7 +118,7 @@ Type Aliases @@ -137,9 +137,9 @@

Classes

  • - + - Group + Group
    @@ -152,23 +152,15 @@

    Classes

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class Group
    - -
    -
  • - + - Mixpanel + Mixpanel
    @@ -180,23 +172,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class Mixpanel
    - -
    -
  • - + - MixpanelInstance + MixpanelInstance
    @@ -208,23 +192,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class MixpanelInstance : CustomDebugStringConvertible, FlushDelegate, AEDelegate
    - -
    -
  • - + - People + People
    @@ -237,14 +213,6 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class People
    - -
    -
  • @@ -253,7 +221,7 @@

    Declaration

    diff --git a/docs/Classes/Group.html b/docs/Classes/Group.html index 89c7448cd..f267f6f73 100644 --- a/docs/Classes/Group.html +++ b/docs/Classes/Group.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,13 +128,6 @@

    Group

    -
    -
    - -
    open class Group
    - -
    -

    Access to the Mixpanel Groups API, available through the getGroup function from the main Mixpanel instance.

    @@ -154,9 +147,9 @@

    Group
  • @@ -172,42 +165,15 @@

    Group value is overwritten. Other existing properties will not be affected.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func set(properties: Properties)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    properties dictionary

    -
    -
    -
  • @@ -221,54 +187,15 @@

    Parameters

    MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func set(property: String, to: MixpanelType)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - property - - -
    -

    property name

    -
    -
    - - to - - -
    -

    property value

    -
    -
    -
  • - + - setOnce(properties:) + setOnce(properties:)
    @@ -284,42 +211,15 @@

    Parameters

    data about dates representing the first time something happened.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func setOnce(properties: Properties)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    properties dictionary

    -
    -
    -
  • - + - unset(property:) + unset(property:)
    @@ -332,42 +232,15 @@

    Parameters

    For properties that don’t exist there will be no effect.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func unset(property: String)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - property - - -
    -

    name of the property to unset

    -
    -
    -
  • - + - remove(key:value:) + remove(key:value:)
    @@ -381,42 +254,15 @@

    Parameters

    MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func remove(key: String, value: MixpanelType)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    mapping of list property names to values to remove

    -
    -
    -
  • - + - union(key:values:) + union(key:values:)
    @@ -429,42 +275,15 @@

    Parameters

    Property values must be array objects.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func union(key: String, values: [MixpanelType])
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    mapping of list property names to lists to union

    -
    -
    -
  • - + - deleteGroup() + deleteGroup()
    @@ -475,14 +294,6 @@

    Parameters

    Delete group’s record from Mixpanel Groups.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func deleteGroup()
    - -
    -
  • @@ -491,7 +302,7 @@

    Declaration

    diff --git a/docs/Classes/Mixpanel.html b/docs/Classes/Mixpanel.html index 771aecec7..42089c2e4 100644 --- a/docs/Classes/Mixpanel.html +++ b/docs/Classes/Mixpanel.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,13 +128,6 @@

    Mixpanel

    -
    -
    - -
    open class Mixpanel
    - -
    -

    The primary class for integrating Mixpanel with your app.

    @@ -144,9 +137,9 @@

    Mixpanel

  • @@ -167,131 +160,6 @@

    Mixpanel

  • -
    -

    Declaration

    -
    -

    Swift

    -
    @discardableResult
    -open class func initialize(token apiToken: String,
    -                           trackAutomaticEvents: Bool,
    -                           flushInterval: Double = 60,
    -                           instanceName: String? = nil,
    -                           optOutTrackingByDefault: Bool = false,
    -                           useUniqueDistinctId: Bool = false,
    -                           superProperties: Properties? = nil,
    -                           serverURL: String? = nil) -> MixpanelInstance
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - token - - -
    -

    your project token

    -
    -
    - - trackAutomaticEvents - - -
    -

    Whether or not to collect common mobile events

    -
    -
    - - flushInterval - - -
    -

    Optional. Interval to run background flushing

    -
    -
    - - instanceName - - -
    -

    Optional. The name you want to uniquely identify the Mixpanel Instance. -It is useful when you want more than one Mixpanel instance under the same project token.

    -
    -
    - - optOutTrackingByDefault - - -
    -

    Optional. Whether or not to be opted out from tracking by default

    -
    -
    - - useUniqueDistinctId - - -
    -

    Optional. whether or not to use the unique device identifier as the distinct_id

    -
    -
    - - superProperties - - -
    -

    Optional. Super properties dictionary to register during initialization

    -
    -
    - - serverURL - - -
    -

    Optional. Mixpanel cluster URL

    -
    -
    -
    -
    -

    Return Value

    -

    returns a mixpanel instance if needed to keep throughout the project. -You can always get the instance by calling getInstance(name)

    -
    @@ -327,9 +195,9 @@

    Return Value

  • @@ -340,46 +208,15 @@

    Return Value

    Gets the mixpanel instance with the given name

    -
    -

    Declaration

    -
    -

    Swift

    -
    open class func getInstance(name: String) -> MixpanelInstance?
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - name - - -
    -

    the instance name

    -
    -
    -
    -
    -

    Return Value

    -

    returns the mixpanel instance

    -
  • @@ -392,27 +229,15 @@

    Return Value

    If not specified explicitly, the main instance is always the last instance added

    -
    -

    Declaration

    -
    -

    Swift

    -
    open class func mainInstance() -> MixpanelInstance
    - -
    -
    -
    -

    Return Value

    -

    returns the main Mixpanel instance

    -
  • @@ -423,42 +248,15 @@

    Return Value

    Sets the main instance based on the instance name

    -
    -

    Declaration

    -
    -

    Swift

    -
    open class func setMainInstance(name: String)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - name - - -
    -

    the instance name

    -
    -
    -
  • @@ -469,33 +267,6 @@

    Parameters

    Removes an unneeded Mixpanel instance based on its name

    -
    -

    Declaration

    -
    -

    Swift

    -
    open class func removeInstance(name: String)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - name - - -
    -

    the instance name

    -
    -
    -
  • @@ -504,7 +275,7 @@

    Parameters

    diff --git a/docs/Classes/MixpanelInstance.html b/docs/Classes/MixpanelInstance.html index 7f331b36c..ff5c9dbe2 100644 --- a/docs/Classes/MixpanelInstance.html +++ b/docs/Classes/MixpanelInstance.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,13 +128,6 @@

    MixpanelInstance

    -
    -
    - -
    open class MixpanelInstance : CustomDebugStringConvertible, FlushDelegate, AEDelegate
    - -
    -

    The class that represents the Mixpanel Instance

    @@ -144,9 +137,9 @@

    MixpanelInstance

  • - + - apiToken + apiToken
    @@ -157,23 +150,15 @@

    MixpanelInstance

    apiToken string that identifies the project to track data to

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var apiToken: String
    - -
    -
  • - + - delegate + delegate
    @@ -184,23 +169,15 @@

    Declaration

    The a MixpanelDelegate object that gives control over Mixpanel network activity.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open weak var delegate: MixpanelDelegate?
    - -
    -
  • @@ -211,23 +188,15 @@

    Declaration

    distinctId string that uniquely identifies the current user.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var distinctId: String
    - -
    -
  • @@ -238,23 +207,15 @@

    Declaration

    anonymousId string that uniquely identifies the device.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var anonymousId: String?
    - -
    -
  • - + - userId + userId
    @@ -265,23 +226,15 @@

    Declaration

    userId string that identify is called with.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var userId: String?
    - -
    -
  • @@ -293,23 +246,15 @@

    Declaration

    already exists in persistence

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var hadPersistedDistinctId: Bool?
    - -
    -
  • - + - alias + alias
    @@ -320,23 +265,15 @@

    Declaration

    alias string that uniquely identifies the current user.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var alias: String?
    - -
    -
  • - + - people + people
    @@ -347,23 +284,15 @@

    Declaration

    Accessor to the Mixpanel People API object.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var people: People!
    - -
    -
  • @@ -375,23 +304,15 @@

    Declaration

    data to the Mixpanel servers. Defaults to true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var showNetworkActivityIndicator: Bool
    - -
    -
  • @@ -402,23 +323,15 @@

    Declaration

    This allows enabling or disabling collecting common mobile events,

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var trackAutomaticEventsEnabled: Bool
    - -
    -
  • @@ -431,23 +344,15 @@

    Declaration

    to upload queued data to the Mixpanel server.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var flushInterval: Double { get set }
    - -
    -
  • @@ -459,23 +364,15 @@

    Declaration

    enters the background. Defaults to true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var flushOnBackground: Bool { get set }
    - -
    -
  • @@ -488,13 +385,26 @@

    Declaration

    Defaults to true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var useIPAddressForGeoLocation: Bool { get set }
    + +
    +
  • +
  • +
    + + + + flushBatchSize + +
    +
    +
    +
    +
    +
    +

    The flushBatchSize property determines the number of events sent in a single network request to the Mixpanel server. +By configuring this value, you can optimize network usage and manage the frequency of communication between the client +and the server. The maximum size is 50; any value over 50 will default to 50.

    -
    @@ -502,9 +412,9 @@

    Declaration

  • @@ -517,23 +427,15 @@

    Declaration

    https://api.mixpanel.com.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var serverURL: String { get set }
    - -
    -
  • @@ -543,23 +445,15 @@

    Declaration

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var debugDescription: String { get }
    - -
    -
  • @@ -576,23 +470,15 @@

    Declaration

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var loggingEnabled: Bool { get set }
    - -
    -
  • - + - name + name
    @@ -603,23 +489,15 @@

    Declaration

    A unique identifier for this MixpanelInstance

    -
    -

    Declaration

    -
    -

    Swift

    -
    public let name: String
    - -
    -
  • @@ -627,16 +505,9 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open var minimumSessionDuration: UInt64 { get set }
    +

    The minimum session duration (ms) that is tracked in automatic events. +The default value is 10000 (10 seconds).

    -
    @@ -644,9 +515,9 @@

    Declaration

  • @@ -658,14 +529,6 @@

    Declaration

    The default value is UINT64_MAX (no maximum session duration).

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var maximumSessionDuration: UInt64 { get set }
    - -
    -
  • @@ -685,9 +548,9 @@

    Identity
  • @@ -718,67 +581,15 @@

    Identity mixpanelInstance.identify(mixpanelInstance.distinctId).

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func identify(distinctId: String, usePeople: Bool = true, completion: (() -> Void)? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - distinctId - - -
    -

    string that uniquely identifies the current user

    -
    -
    - - usePeople - - -
    -

    boolean that controls whether or not to set the people distinctId to the event distinctId. -This should only be set to false if you wish to prevent people profile updates for that user.

    -
    -
    - - completion - - -
    -

    an optional completion handler for when the identify has completed.

    -
    -
    -
  • @@ -799,92 +610,15 @@

    Parameters

    mixpanelInstance.createAlias("Newer ID", distinctId: mixpanelInstance.distinctId)

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func createAlias(_ alias: String, distinctId: String, usePeople: Bool = true, andIdentify: Bool = true, completion: (() -> Void)? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - -
    - - alias - - -
    -

    A unique identifier that you want to use as an identifier for this user.

    -
    -
    - - distinctId - - -
    -

    The current user identifier.

    -
    -
    - - usePeople - - -
    -

    boolean that controls whether or not to set the people distinctId to the event distinctId.

    -
    -
    - - andIdentify - - -
    -

    an optional boolean that controls whether or not to call ‘identify’ with your current -user identifier(not alias). Default to true for keeping your signup funnels working correctly in most cases.

    -
    -
    - - completion - - -
    -

    an optional completion handler for when the createAlias has completed. -This should only be set to false if you wish to prevent people profile updates for that user.

    -
    -
    -
  • @@ -896,33 +630,6 @@

    Parameters

    Useful if your app’s user logs out.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func reset(completion: (() -> Void)? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - completion - - -
    -

    an optional completion handler for when the reset has completed.

    -
    -
    -
  • @@ -942,9 +649,9 @@

    Persistence
  • @@ -952,16 +659,7 @@

    Persistence
    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func archive()
    - -
    +

    @@ -982,9 +680,9 @@

    Flush
  • @@ -995,50 +693,11 @@

    Flush

    Uploads queued data to the Mixpanel server.

    By default, queued data is flushed to the Mixpanel servers every minute (the -default for flushInterval), and on background (since -flushOnBackground is on by default). You only need to call this +default for flushInterval), and on background (since +flushOnBackground is on by default). You only need to call this method manually if you want to force a flush at a particular moment.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func flush(performFullFlush: Bool = false, completion: (() -> Void)? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - performFullFlush - - -
    -

    A optional boolean value indicating whether a full flush should be performed. If true, a full flush will be triggered, sending all events to the server. Default to false, a partial flush will be executed for reducing memory footprint.

    -
    -
    - - completion - - -
    -

    an optional completion handler for when the flush has completed.

    -
    -
    -
  • @@ -1058,9 +717,9 @@

    Track
  • @@ -1077,54 +736,15 @@

    Track If the event is being timed, the timer will stop and be added as a property.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func track(event: String?, properties: Properties? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - event - - -
    -

    event name

    -
    -
    - - properties - - -
    -

    properties dictionary

    -
    -
    -
  • @@ -1141,66 +761,15 @@

    Parameters

    If the event is being timed, the timer will stop and be added as a property.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func trackWithGroups(event: String?, properties: Properties? = nil, groups: Properties?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - event - - -
    -

    event name

    -
    -
    - - properties - - -
    -

    properties dictionary

    -
    -
    - - groups - - -
    -

    groups dictionary

    -
    -
    -
  • @@ -1208,16 +777,7 @@

    Parameters

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func getGroup(groupKey: String, groupID: MixpanelType) -> Group
    - -
    +
    @@ -1225,9 +785,9 @@

    Declaration

  • @@ -1256,42 +816,15 @@

    Declaration

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func time(event: String)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - event - - -
    -

    the event name to be timed

    -
    -
    -
  • @@ -1302,42 +835,15 @@

    Parameters

    Retrieves the time elapsed for the named event since time(event:) was called.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func eventElapsedTime(event: String) -> Double
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - event - - -
    -

    the name of the event to be tracked that was passed to time(event:)

    -
    -
    -
  • @@ -1348,23 +854,15 @@

    Parameters

    Clears all current event timers.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func clearTimedEvents()
    - -
    -
  • @@ -1375,42 +873,15 @@

    Declaration

    Clears the event timer for the named event.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func clearTimedEvent(event: String)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - event - - -
    -

    the name of the event to clear the timer for

    -
    -
    -
  • @@ -1421,27 +892,15 @@

    Parameters

    Returns the currently set super properties.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func currentSuperProperties() -> [String : Any]
    - -
    -
    -
    -

    Return Value

    -

    the current super properties

    -
  • @@ -1452,23 +911,15 @@

    Return Value

    Clears all currently set super properties.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func clearSuperProperties()
    - -
    -
  • @@ -1485,42 +936,15 @@

    Declaration

    MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func registerSuperProperties(_ properties: Properties)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    properties dictionary

    -
    -
    -
  • @@ -1535,55 +959,15 @@

    Parameters

    MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func registerSuperPropertiesOnce(_ properties: Properties,
    -                                      defaultValue: MixpanelType? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - properties - - -
    -

    properties dictionary

    -
    -
    - - defaultValue - - -
    -

    Optional. overwrite existing properties that have this value

    -
    -
    -
  • @@ -1602,42 +986,15 @@

    Parameters

    registered.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func unregisterSuperProperty(_ propertyName: String)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - propertyName - - -
    -

    array of property name strings to remove

    -
    -
    -
  • @@ -1648,54 +1005,15 @@

    Parameters

    Convenience method to set a single group the user belongs to.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func setGroup(groupKey: String, groupID: MixpanelType)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - groupKey - - -
    -

    The property name associated with this group type (must already have been set up).

    -
    -
    - - groupID - - -
    -

    The group the user belongs to.

    -
    -
    -
  • @@ -1706,54 +1024,15 @@

    Parameters

    Set the groups this user belongs to.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func setGroup(groupKey: String, groupIDs: [MixpanelType])
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - groupKey - - -
    -

    The property name associated with this group type (must already have been set up).

    -
    -
    - - groupIDs - - -
    -

    The list of groups the user belongs to.

    -
    -
    -
  • @@ -1764,54 +1043,15 @@

    Parameters

    Add a group to this user’s membership for a particular group key

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func addGroup(groupKey: String, groupID: MixpanelType)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - groupKey - - -
    -

    The property name associated with this group type (must already have been set up).

    -
    -
    - - groupID - - -
    -

    The new group the user belongs to.

    -
    -
    -
  • @@ -1822,54 +1062,15 @@

    Parameters

    Remove a group from this user’s membership for a particular group key

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func removeGroup(groupKey: String, groupID: MixpanelType)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - groupKey - - -
    -

    The property name associated with this group type (must already have been set up).

    -
    -
    - - groupID - - -
    -

    The group value to remove.

    -
    -
    -
  • @@ -1883,23 +1084,15 @@

    Parameters

    to be sent back to the Mixpanel server.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func optOutTracking()
    - -
    -
  • @@ -1915,55 +1108,15 @@

    Declaration

    This method will internally track an opt in event to your project.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func optInTracking(distinctId: String? = nil, properties: Properties? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - distintId - - -
    -

    an optional string to use as the distinct ID for events

    -
    -
    - - properties - - -
    -

    an optional properties dictionary that could be passed to add properties to the opt-in event -that is sent to Mixpanel

    -
    -
    -
  • @@ -1974,18 +1127,6 @@

    Parameters

    Returns if the current user has opted out tracking.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func hasOptedOutTracking() -> Bool
    - -
    -
    -
    -

    Return Value

    -

    the current super opted out tracking status

    -
  • @@ -1994,7 +1135,7 @@

    Return Value

    diff --git a/docs/Classes/People.html b/docs/Classes/People.html index 180f4ffa1..52246f6e0 100644 --- a/docs/Classes/People.html +++ b/docs/Classes/People.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,13 +128,6 @@

    People

    -
    -
    - -
    open class People
    - -
    -

    Access to the Mixpanel People API, available as an accessible variable from the main Mixpanel instance.

    @@ -145,9 +138,9 @@

    People

  • @@ -162,14 +155,6 @@

    People

    current time for all $set, $append, and $add operations

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var ignoreTime: Bool
    - -
    -
  • @@ -189,9 +174,9 @@

    People
  • @@ -215,42 +200,15 @@

    People

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func set(properties: Properties)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    properties dictionary

    -
    -
    -
  • @@ -264,54 +222,15 @@

    Parameters

    MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func set(property: String, to: MixpanelType)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - property - - -
    -

    property name

    -
    -
    - - to - - -
    -

    property value

    -
    -
    -
  • @@ -328,42 +247,15 @@

    Parameters

    representing the first time something happened.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func setOnce(properties: Properties)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    properties dictionary

    -
    -
    -
  • @@ -378,42 +270,15 @@

    Parameters

    that don’t exist there will be no effect.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func unset(properties: [String])
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    properties array

    -
    -
    -
  • @@ -428,42 +293,15 @@

    Parameters

    will be set to the increment amount. Property values must be number objects.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func increment(properties: Properties)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    properties array

    -
    -
    -
  • @@ -475,54 +313,15 @@

    Parameters

    amount.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func increment(property: String, by: Double)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - property - - -
    -

    property name

    -
    -
    - - by - - -
    -

    amount to increment by

    -
    -
    -
  • @@ -536,42 +335,15 @@

    Parameters

    MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func append(properties: Properties)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    mapping of list property names to values to append

    -
    -
    -
  • @@ -585,42 +357,15 @@

    Parameters

    MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func remove(properties: Properties)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    mapping of list property names to values to remove

    -
    -
    -
  • @@ -633,42 +378,15 @@

    Parameters

    Property values must be array objects.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func union(properties: Properties)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    mapping of list property names to lists to union

    -
    -
    -
  • @@ -684,54 +402,15 @@

    Parameters

    revenue analytics to see which products are generating the most revenue.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func trackCharge(amount: Double, properties: Properties? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - amount - - -
    -

    amount of revenue received

    -
    -
    - - properties - - -
    -

    Optional. properties dictionary

    -
    -
    -
  • @@ -742,23 +421,15 @@

    Parameters

    Delete current user’s revenue history.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func clearCharges()
    - -
    -
  • @@ -769,14 +440,6 @@

    Declaration

    Delete current user’s record from Mixpanel People.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func deleteUser()
    - -
    -
  • @@ -785,7 +448,7 @@

    Declaration

    diff --git a/docs/Extensions.html b/docs/Extensions.html index b11903113..42ac11323 100644 --- a/docs/Extensions.html +++ b/docs/Extensions.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -137,9 +137,9 @@

    Extensions

  • - + - Optional + Optional
    @@ -150,23 +150,15 @@

    Extensions

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension Optional: MixpanelType
    - -
    -
  • - + - String + String
    @@ -177,23 +169,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension String: MixpanelType
    - -
    -
  • - + - NSString + NSString
    @@ -204,23 +188,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension NSString: MixpanelType
    - -
    -
  • - + - NSNumber + NSNumber
    @@ -231,23 +207,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension NSNumber: MixpanelType
    - -
    -
  • - + - Int + Int
    @@ -258,23 +226,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension Int: MixpanelType
    - -
    -
  • - + - UInt + UInt
    @@ -285,23 +245,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension UInt: MixpanelType
    - -
    -
  • - + - Double + Double
    @@ -312,23 +264,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension Double: MixpanelType
    - -
    -
  • - + - Float + Float
    @@ -339,23 +283,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension Float: MixpanelType
    - -
    -
  • - + - Bool + Bool
    @@ -366,23 +302,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension Bool: MixpanelType
    - -
    -
  • - + - Date + Date
    @@ -393,23 +321,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension Date: MixpanelType
    - -
    -
  • - + - URL + URL
    @@ -420,23 +340,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension URL: MixpanelType
    - -
    -
  • - + - NSNull + NSNull
    @@ -447,23 +359,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension NSNull: MixpanelType
    - -
    -
  • - + - Array + Array
    @@ -474,23 +378,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension Array: MixpanelType
    - -
    -
  • - + - NSArray + NSArray
    @@ -501,23 +397,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension NSArray: MixpanelType
    - -
    -
  • @@ -528,14 +416,6 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension Dictionary: MixpanelType
    - -
    -
  • @@ -544,7 +424,7 @@

    Declaration

    diff --git a/docs/Extensions/Array.html b/docs/Extensions/Array.html index c424ed45c..9bfaaf489 100644 --- a/docs/Extensions/Array.html +++ b/docs/Extensions/Array.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,13 +128,6 @@

    Array

    -
    -
    - -
    extension Array: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    Array

  • @@ -156,23 +149,15 @@

    Array

    Checks if this object has nested object types that Mixpanel supports.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -180,16 +165,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -199,7 +175,7 @@

    Declaration

    diff --git a/docs/Extensions/Bool.html b/docs/Extensions/Bool.html index bed08c985..3c4333f82 100644 --- a/docs/Extensions/Bool.html +++ b/docs/Extensions/Bool.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,13 +128,6 @@

    Bool

    -
    -
    - -
    extension Bool: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    Bool

  • @@ -157,23 +150,15 @@

    Bool

    Will always return true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -181,16 +166,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -200,7 +176,7 @@

    Declaration

    diff --git a/docs/Extensions/Date.html b/docs/Extensions/Date.html index 35ad55bda..26bb102a4 100644 --- a/docs/Extensions/Date.html +++ b/docs/Extensions/Date.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,13 +128,6 @@

    Date

    -
    -
    - -
    extension Date: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    Date

  • @@ -157,23 +150,15 @@

    Date

    Will always return true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -181,16 +166,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -200,7 +176,7 @@

    Declaration

  • diff --git a/docs/Extensions/Dictionary.html b/docs/Extensions/Dictionary.html index 19606adb4..7bd271e7e 100644 --- a/docs/Extensions/Dictionary.html +++ b/docs/Extensions/Dictionary.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,13 +128,6 @@

    Dictionary

    -
    -
    - -
    extension Dictionary: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    Dictionary

  • @@ -156,23 +149,15 @@

    Dictionary

    Checks if this object has nested object types that Mixpanel supports.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -180,16 +165,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -199,7 +175,7 @@

    Declaration

    diff --git a/docs/Extensions/Double.html b/docs/Extensions/Double.html index 6a935632a..83e731283 100644 --- a/docs/Extensions/Double.html +++ b/docs/Extensions/Double.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,13 +128,6 @@

    Double

    -
    -
    - -
    extension Double: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    Double

  • @@ -157,23 +150,15 @@

    Double

    Will always return true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -181,16 +166,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -200,7 +176,7 @@

    Declaration

    diff --git a/docs/Extensions/Float.html b/docs/Extensions/Float.html index 15dddb9b7..6d3852839 100644 --- a/docs/Extensions/Float.html +++ b/docs/Extensions/Float.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,13 +128,6 @@

    Float

    -
    -
    - -
    extension Float: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    Float

  • @@ -157,23 +150,15 @@

    Float

    Will always return true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -181,16 +166,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -200,7 +176,7 @@

    Declaration

  • diff --git a/docs/Extensions/Int.html b/docs/Extensions/Int.html index b4c463e40..ed32e1223 100644 --- a/docs/Extensions/Int.html +++ b/docs/Extensions/Int.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,13 +128,6 @@

    Int

    -
    -
    - -
    extension Int: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    Int

  • @@ -157,23 +150,15 @@

    Int

    Will always return true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -181,16 +166,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -200,7 +176,7 @@

    Declaration

    diff --git a/docs/Extensions/NSArray.html b/docs/Extensions/NSArray.html index c89156fa3..054c400b3 100644 --- a/docs/Extensions/NSArray.html +++ b/docs/Extensions/NSArray.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,13 +128,6 @@

    NSArray

    -
    -
    - -
    extension NSArray: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    NSArray

  • @@ -156,23 +149,15 @@

    NSArray

    Checks if this object has nested object types that Mixpanel supports.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -180,16 +165,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -199,7 +175,7 @@

    Declaration

    diff --git a/docs/Extensions/NSNull.html b/docs/Extensions/NSNull.html index 383041cdb..8543537d0 100644 --- a/docs/Extensions/NSNull.html +++ b/docs/Extensions/NSNull.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,13 +128,6 @@

    NSNull

    -
    -
    - -
    extension NSNull: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    NSNull

  • @@ -157,23 +150,15 @@

    NSNull

    Will always return true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -181,16 +166,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -200,7 +176,7 @@

    Declaration

  • diff --git a/docs/Extensions/NSNumber.html b/docs/Extensions/NSNumber.html index 07e520d07..fc17886fe 100644 --- a/docs/Extensions/NSNumber.html +++ b/docs/Extensions/NSNumber.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,13 +128,6 @@

    NSNumber

    -
    -
    - -
    extension NSNumber: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    NSNumber

  • @@ -157,23 +150,15 @@

    NSNumber

    Will always return true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -181,16 +166,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -200,7 +176,7 @@

    Declaration

    diff --git a/docs/Extensions/NSString.html b/docs/Extensions/NSString.html index 706bb0f14..3c77aaa5a 100644 --- a/docs/Extensions/NSString.html +++ b/docs/Extensions/NSString.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,13 +128,6 @@

    NSString

    -
    -
    - -
    extension NSString: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    NSString

  • @@ -157,23 +150,15 @@

    NSString

    Will always return true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -181,16 +166,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -200,7 +176,7 @@

    Declaration

    diff --git a/docs/Extensions/Optional.html b/docs/Extensions/Optional.html index b4466f558..c1551ec22 100644 --- a/docs/Extensions/Optional.html +++ b/docs/Extensions/Optional.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,13 +128,6 @@

    Optional

    -
    -
    - -
    extension Optional: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    Optional

  • @@ -156,23 +149,15 @@

    Optional

    Checks if this object has nested object types that Mixpanel supports.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -180,16 +165,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -199,7 +175,7 @@

    Declaration

  • diff --git a/docs/Extensions/String.html b/docs/Extensions/String.html index 5ed7da230..9d28e60f7 100644 --- a/docs/Extensions/String.html +++ b/docs/Extensions/String.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,13 +128,6 @@

    String

    -
    -
    - -
    extension String: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    String

  • @@ -157,23 +150,15 @@

    String

    Will always return true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -181,16 +166,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -200,7 +176,7 @@

    Declaration

    diff --git a/docs/Extensions/UInt.html b/docs/Extensions/UInt.html index f59731591..3b2cca183 100644 --- a/docs/Extensions/UInt.html +++ b/docs/Extensions/UInt.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,13 +128,6 @@

    UInt

    -
    -
    - -
    extension UInt: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    UInt

  • @@ -157,23 +150,15 @@

    UInt

    Will always return true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -181,16 +166,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -200,7 +176,7 @@

    Declaration

    diff --git a/docs/Extensions/URL.html b/docs/Extensions/URL.html index 5d3157c46..62228c8e1 100644 --- a/docs/Extensions/URL.html +++ b/docs/Extensions/URL.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,13 +128,6 @@

    URL

    -
    -
    - -
    extension URL: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    URL

  • @@ -157,23 +150,15 @@

    URL

    Will always return true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -181,16 +166,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -200,7 +176,7 @@

    Declaration

  • diff --git a/docs/Protocols.html b/docs/Protocols.html index 373e4332c..d7b639106 100644 --- a/docs/Protocols.html +++ b/docs/Protocols.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -137,9 +137,9 @@

    Protocols

  • @@ -151,23 +151,15 @@

    Protocols

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol MixpanelDelegate : AnyObject
    - -
    -
  • @@ -181,14 +173,6 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol MixpanelType
    - -
    -
  • @@ -197,7 +181,7 @@

    Declaration

    diff --git a/docs/Protocols/MixpanelDelegate.html b/docs/Protocols/MixpanelDelegate.html index f50d7e067..1e5a63360 100644 --- a/docs/Protocols/MixpanelDelegate.html +++ b/docs/Protocols/MixpanelDelegate.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,13 +128,6 @@

    MixpanelDelegate

    -
    -
    - -
    public protocol MixpanelDelegate : AnyObject
    - -
    -

    Delegate protocol for controlling the Mixpanel API’s network behavior.

    @@ -144,9 +137,9 @@

    MixpanelDelegate

  • @@ -157,37 +150,6 @@

    MixpanelDelegate

    Asks the delegate if data should be uploaded to the server.

    -
    -

    Declaration

    -
    -

    Swift

    -
    func mixpanelWillFlush(_ mixpanel: MixpanelInstance) -> Bool
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - mixpanel - - -
    -

    The mixpanel instance

    -
    -
    -
    -
    -

    Return Value

    -

    return true to upload now or false to defer until later

    -
  • @@ -196,7 +158,7 @@

    Return Value

    diff --git a/docs/Protocols/MixpanelType.html b/docs/Protocols/MixpanelType.html index a0b6be0d6..718924b0b 100644 --- a/docs/Protocols/MixpanelType.html +++ b/docs/Protocols/MixpanelType.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,13 +128,6 @@

    MixpanelType

    -
    -
    - -
    public protocol MixpanelType
    - -
    -

    Property keys must be String objects and the supported value types need to conform to MixpanelType. MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull. Numbers are not NaN or infinity

    @@ -146,9 +139,9 @@

    MixpanelType

  • @@ -159,23 +152,15 @@

    MixpanelType

    Checks if this object has nested object types that Mixpanel supports.

    -
    -

    Declaration

    -
    -

    Swift

    -
    func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -183,16 +168,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -202,7 +178,7 @@

    Declaration

    diff --git a/docs/Typealiases.html b/docs/Typealiases.html index a7610cf37..7fe5a64ad 100644 --- a/docs/Typealiases.html +++ b/docs/Typealiases.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -137,9 +137,9 @@

    Type Aliases

  • @@ -147,16 +147,7 @@

    Type Aliases

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias Properties = [String : MixpanelType]
    - -
    +
    @@ -166,7 +157,7 @@

    Declaration

    diff --git a/docs/badge.svg b/docs/badge.svg index d799a27b4..a5d7e554e 100644 --- a/docs/badge.svg +++ b/docs/badge.svg @@ -1,15 +1,15 @@ - + - + - - + + @@ -18,11 +18,11 @@ documentation - - 83% + + 0% - - 83% + + 0% diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes.html index 61ce6bf11..85428e555 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -137,9 +137,9 @@

    Classes

  • - + - Group + Group
    @@ -152,23 +152,15 @@

    Classes

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class Group
    - -
    -
  • - + - Mixpanel + Mixpanel
    @@ -180,23 +172,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class Mixpanel
    - -
    -
  • @@ -208,23 +192,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class MixpanelInstance : CustomDebugStringConvertible, FlushDelegate, AEDelegate
    - -
    -
  • - + - People + People
    @@ -237,14 +213,6 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    open class People
    - -
    -
  • @@ -253,7 +221,7 @@

    Declaration

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/Group.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/Group.html index 89c7448cd..f267f6f73 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/Group.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/Group.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,13 +128,6 @@

    Group

    -
    -
    - -
    open class Group
    - -
    -

    Access to the Mixpanel Groups API, available through the getGroup function from the main Mixpanel instance.

    @@ -154,9 +147,9 @@

    Group
  • @@ -172,42 +165,15 @@

    Group value is overwritten. Other existing properties will not be affected.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func set(properties: Properties)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    properties dictionary

    -
    -
    -
  • @@ -221,54 +187,15 @@

    Parameters

    MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func set(property: String, to: MixpanelType)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - property - - -
    -

    property name

    -
    -
    - - to - - -
    -

    property value

    -
    -
    -
  • @@ -284,42 +211,15 @@

    Parameters

    data about dates representing the first time something happened.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func setOnce(properties: Properties)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    properties dictionary

    -
    -
    -
  • @@ -332,42 +232,15 @@

    Parameters

    For properties that don’t exist there will be no effect.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func unset(property: String)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - property - - -
    -

    name of the property to unset

    -
    -
    -
  • @@ -381,42 +254,15 @@

    Parameters

    MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func remove(key: String, value: MixpanelType)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    mapping of list property names to values to remove

    -
    -
    -
  • @@ -429,42 +275,15 @@

    Parameters

    Property values must be array objects.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func union(key: String, values: [MixpanelType])
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    mapping of list property names to lists to union

    -
    -
    -
  • @@ -475,14 +294,6 @@

    Parameters

    Delete group’s record from Mixpanel Groups.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func deleteGroup()
    - -
    -
  • @@ -491,7 +302,7 @@

    Declaration

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/Mixpanel.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/Mixpanel.html index 771aecec7..42089c2e4 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/Mixpanel.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/Mixpanel.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,13 +128,6 @@

    Mixpanel

    -
    -
    - -
    open class Mixpanel
    - -
    -

    The primary class for integrating Mixpanel with your app.

    @@ -144,9 +137,9 @@

    Mixpanel

  • @@ -167,131 +160,6 @@

    Mixpanel

  • -
    -

    Declaration

    -
    -

    Swift

    -
    @discardableResult
    -open class func initialize(token apiToken: String,
    -                           trackAutomaticEvents: Bool,
    -                           flushInterval: Double = 60,
    -                           instanceName: String? = nil,
    -                           optOutTrackingByDefault: Bool = false,
    -                           useUniqueDistinctId: Bool = false,
    -                           superProperties: Properties? = nil,
    -                           serverURL: String? = nil) -> MixpanelInstance
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - token - - -
    -

    your project token

    -
    -
    - - trackAutomaticEvents - - -
    -

    Whether or not to collect common mobile events

    -
    -
    - - flushInterval - - -
    -

    Optional. Interval to run background flushing

    -
    -
    - - instanceName - - -
    -

    Optional. The name you want to uniquely identify the Mixpanel Instance. -It is useful when you want more than one Mixpanel instance under the same project token.

    -
    -
    - - optOutTrackingByDefault - - -
    -

    Optional. Whether or not to be opted out from tracking by default

    -
    -
    - - useUniqueDistinctId - - -
    -

    Optional. whether or not to use the unique device identifier as the distinct_id

    -
    -
    - - superProperties - - -
    -

    Optional. Super properties dictionary to register during initialization

    -
    -
    - - serverURL - - -
    -

    Optional. Mixpanel cluster URL

    -
    -
    -
    -
    -

    Return Value

    -

    returns a mixpanel instance if needed to keep throughout the project. -You can always get the instance by calling getInstance(name)

    -
    @@ -327,9 +195,9 @@

    Return Value

  • @@ -340,46 +208,15 @@

    Return Value

    Gets the mixpanel instance with the given name

    -
    -

    Declaration

    -
    -

    Swift

    -
    open class func getInstance(name: String) -> MixpanelInstance?
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - name - - -
    -

    the instance name

    -
    -
    -
    -
    -

    Return Value

    -

    returns the mixpanel instance

    -
  • @@ -392,27 +229,15 @@

    Return Value

    If not specified explicitly, the main instance is always the last instance added

    -
    -

    Declaration

    -
    -

    Swift

    -
    open class func mainInstance() -> MixpanelInstance
    - -
    -
    -
    -

    Return Value

    -

    returns the main Mixpanel instance

    -
  • @@ -423,42 +248,15 @@

    Return Value

    Sets the main instance based on the instance name

    -
    -

    Declaration

    -
    -

    Swift

    -
    open class func setMainInstance(name: String)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - name - - -
    -

    the instance name

    -
    -
    -
  • @@ -469,33 +267,6 @@

    Parameters

    Removes an unneeded Mixpanel instance based on its name

    -
    -

    Declaration

    -
    -

    Swift

    -
    open class func removeInstance(name: String)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - name - - -
    -

    the instance name

    -
    -
    -
  • @@ -504,7 +275,7 @@

    Parameters

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/MixpanelInstance.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/MixpanelInstance.html index 7f331b36c..ff5c9dbe2 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/MixpanelInstance.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/MixpanelInstance.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,13 +128,6 @@

    MixpanelInstance

    -
    -
    - -
    open class MixpanelInstance : CustomDebugStringConvertible, FlushDelegate, AEDelegate
    - -
    -

    The class that represents the Mixpanel Instance

    @@ -144,9 +137,9 @@

    MixpanelInstance

  • - + - apiToken + apiToken
    @@ -157,23 +150,15 @@

    MixpanelInstance

    apiToken string that identifies the project to track data to

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var apiToken: String
    - -
    -
  • - + - delegate + delegate
    @@ -184,23 +169,15 @@

    Declaration

    The a MixpanelDelegate object that gives control over Mixpanel network activity.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open weak var delegate: MixpanelDelegate?
    - -
    -
  • @@ -211,23 +188,15 @@

    Declaration

    distinctId string that uniquely identifies the current user.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var distinctId: String
    - -
    -
  • @@ -238,23 +207,15 @@

    Declaration

    anonymousId string that uniquely identifies the device.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var anonymousId: String?
    - -
    -
  • - + - userId + userId
    @@ -265,23 +226,15 @@

    Declaration

    userId string that identify is called with.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var userId: String?
    - -
    -
  • @@ -293,23 +246,15 @@

    Declaration

    already exists in persistence

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var hadPersistedDistinctId: Bool?
    - -
    -
  • - + - alias + alias
    @@ -320,23 +265,15 @@

    Declaration

    alias string that uniquely identifies the current user.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var alias: String?
    - -
    -
  • - + - people + people
    @@ -347,23 +284,15 @@

    Declaration

    Accessor to the Mixpanel People API object.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var people: People!
    - -
    -
  • @@ -375,23 +304,15 @@

    Declaration

    data to the Mixpanel servers. Defaults to true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var showNetworkActivityIndicator: Bool
    - -
    -
  • @@ -402,23 +323,15 @@

    Declaration

    This allows enabling or disabling collecting common mobile events,

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var trackAutomaticEventsEnabled: Bool
    - -
    -
  • @@ -431,23 +344,15 @@

    Declaration

    to upload queued data to the Mixpanel server.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var flushInterval: Double { get set }
    - -
    -
  • @@ -459,23 +364,15 @@

    Declaration

    enters the background. Defaults to true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var flushOnBackground: Bool { get set }
    - -
    -
  • @@ -488,13 +385,26 @@

    Declaration

    Defaults to true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var useIPAddressForGeoLocation: Bool { get set }
    + +
    +
  • +
  • +
    + + + + flushBatchSize + +
    +
    +
    +
    +
    +
    +

    The flushBatchSize property determines the number of events sent in a single network request to the Mixpanel server. +By configuring this value, you can optimize network usage and manage the frequency of communication between the client +and the server. The maximum size is 50; any value over 50 will default to 50.

    -
    @@ -502,9 +412,9 @@

    Declaration

  • @@ -517,23 +427,15 @@

    Declaration

    https://api.mixpanel.com.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var serverURL: String { get set }
    - -
    -
  • @@ -543,23 +445,15 @@

    Declaration

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var debugDescription: String { get }
    - -
    -
  • @@ -576,23 +470,15 @@

    Declaration

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var loggingEnabled: Bool { get set }
    - -
    -
  • - + - name + name
    @@ -603,23 +489,15 @@

    Declaration

    A unique identifier for this MixpanelInstance

    -
    -

    Declaration

    -
    -

    Swift

    -
    public let name: String
    - -
    -
  • @@ -627,16 +505,9 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    open var minimumSessionDuration: UInt64 { get set }
    +

    The minimum session duration (ms) that is tracked in automatic events. +The default value is 10000 (10 seconds).

    -
    @@ -644,9 +515,9 @@

    Declaration

  • @@ -658,14 +529,6 @@

    Declaration

    The default value is UINT64_MAX (no maximum session duration).

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var maximumSessionDuration: UInt64 { get set }
    - -
    -
  • @@ -685,9 +548,9 @@

    Identity
  • @@ -718,67 +581,15 @@

    Identity mixpanelInstance.identify(mixpanelInstance.distinctId).

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func identify(distinctId: String, usePeople: Bool = true, completion: (() -> Void)? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - distinctId - - -
    -

    string that uniquely identifies the current user

    -
    -
    - - usePeople - - -
    -

    boolean that controls whether or not to set the people distinctId to the event distinctId. -This should only be set to false if you wish to prevent people profile updates for that user.

    -
    -
    - - completion - - -
    -

    an optional completion handler for when the identify has completed.

    -
    -
    -
  • @@ -799,92 +610,15 @@

    Parameters

    mixpanelInstance.createAlias("Newer ID", distinctId: mixpanelInstance.distinctId)

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func createAlias(_ alias: String, distinctId: String, usePeople: Bool = true, andIdentify: Bool = true, completion: (() -> Void)? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - - - - - - - - - -
    - - alias - - -
    -

    A unique identifier that you want to use as an identifier for this user.

    -
    -
    - - distinctId - - -
    -

    The current user identifier.

    -
    -
    - - usePeople - - -
    -

    boolean that controls whether or not to set the people distinctId to the event distinctId.

    -
    -
    - - andIdentify - - -
    -

    an optional boolean that controls whether or not to call ‘identify’ with your current -user identifier(not alias). Default to true for keeping your signup funnels working correctly in most cases.

    -
    -
    - - completion - - -
    -

    an optional completion handler for when the createAlias has completed. -This should only be set to false if you wish to prevent people profile updates for that user.

    -
    -
    -
  • @@ -896,33 +630,6 @@

    Parameters

    Useful if your app’s user logs out.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func reset(completion: (() -> Void)? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - completion - - -
    -

    an optional completion handler for when the reset has completed.

    -
    -
    -
  • @@ -942,9 +649,9 @@

    Persistence
  • @@ -952,16 +659,7 @@

    Persistence
    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func archive()
    - -
    +

    @@ -982,9 +680,9 @@

    Flush
  • @@ -995,50 +693,11 @@

    Flush

    Uploads queued data to the Mixpanel server.

    By default, queued data is flushed to the Mixpanel servers every minute (the -default for flushInterval), and on background (since -flushOnBackground is on by default). You only need to call this +default for flushInterval), and on background (since +flushOnBackground is on by default). You only need to call this method manually if you want to force a flush at a particular moment.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func flush(performFullFlush: Bool = false, completion: (() -> Void)? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - performFullFlush - - -
    -

    A optional boolean value indicating whether a full flush should be performed. If true, a full flush will be triggered, sending all events to the server. Default to false, a partial flush will be executed for reducing memory footprint.

    -
    -
    - - completion - - -
    -

    an optional completion handler for when the flush has completed.

    -
    -
    -
  • @@ -1058,9 +717,9 @@

    Track
  • @@ -1077,54 +736,15 @@

    Track If the event is being timed, the timer will stop and be added as a property.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func track(event: String?, properties: Properties? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - event - - -
    -

    event name

    -
    -
    - - properties - - -
    -

    properties dictionary

    -
    -
    -
  • @@ -1141,66 +761,15 @@

    Parameters

    If the event is being timed, the timer will stop and be added as a property.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func trackWithGroups(event: String?, properties: Properties? = nil, groups: Properties?)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - - - - - -
    - - event - - -
    -

    event name

    -
    -
    - - properties - - -
    -

    properties dictionary

    -
    -
    - - groups - - -
    -

    groups dictionary

    -
    -
    -
  • @@ -1208,16 +777,7 @@

    Parameters

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func getGroup(groupKey: String, groupID: MixpanelType) -> Group
    - -
    +
    @@ -1225,9 +785,9 @@

    Declaration

  • @@ -1256,42 +816,15 @@

    Declaration

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func time(event: String)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - event - - -
    -

    the event name to be timed

    -
    -
    -
  • @@ -1302,42 +835,15 @@

    Parameters

    Retrieves the time elapsed for the named event since time(event:) was called.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func eventElapsedTime(event: String) -> Double
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - event - - -
    -

    the name of the event to be tracked that was passed to time(event:)

    -
    -
    -
  • @@ -1348,23 +854,15 @@

    Parameters

    Clears all current event timers.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func clearTimedEvents()
    - -
    -
  • @@ -1375,42 +873,15 @@

    Declaration

    Clears the event timer for the named event.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func clearTimedEvent(event: String)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - event - - -
    -

    the name of the event to clear the timer for

    -
    -
    -
  • @@ -1421,27 +892,15 @@

    Parameters

    Returns the currently set super properties.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func currentSuperProperties() -> [String : Any]
    - -
    -
    -
    -

    Return Value

    -

    the current super properties

    -
  • @@ -1452,23 +911,15 @@

    Return Value

    Clears all currently set super properties.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func clearSuperProperties()
    - -
    -
  • @@ -1485,42 +936,15 @@

    Declaration

    MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func registerSuperProperties(_ properties: Properties)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    properties dictionary

    -
    -
    -
  • @@ -1535,55 +959,15 @@

    Parameters

    MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func registerSuperPropertiesOnce(_ properties: Properties,
    -                                      defaultValue: MixpanelType? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - properties - - -
    -

    properties dictionary

    -
    -
    - - defaultValue - - -
    -

    Optional. overwrite existing properties that have this value

    -
    -
    -
  • @@ -1602,42 +986,15 @@

    Parameters

    registered.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func unregisterSuperProperty(_ propertyName: String)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - propertyName - - -
    -

    array of property name strings to remove

    -
    -
    -
  • @@ -1648,54 +1005,15 @@

    Parameters

    Convenience method to set a single group the user belongs to.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func setGroup(groupKey: String, groupID: MixpanelType)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - groupKey - - -
    -

    The property name associated with this group type (must already have been set up).

    -
    -
    - - groupID - - -
    -

    The group the user belongs to.

    -
    -
    -
  • @@ -1706,54 +1024,15 @@

    Parameters

    Set the groups this user belongs to.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func setGroup(groupKey: String, groupIDs: [MixpanelType])
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - groupKey - - -
    -

    The property name associated with this group type (must already have been set up).

    -
    -
    - - groupIDs - - -
    -

    The list of groups the user belongs to.

    -
    -
    -
  • @@ -1764,54 +1043,15 @@

    Parameters

    Add a group to this user’s membership for a particular group key

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func addGroup(groupKey: String, groupID: MixpanelType)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - groupKey - - -
    -

    The property name associated with this group type (must already have been set up).

    -
    -
    - - groupID - - -
    -

    The new group the user belongs to.

    -
    -
    -
  • @@ -1822,54 +1062,15 @@

    Parameters

    Remove a group from this user’s membership for a particular group key

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func removeGroup(groupKey: String, groupID: MixpanelType)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - groupKey - - -
    -

    The property name associated with this group type (must already have been set up).

    -
    -
    - - groupID - - -
    -

    The group value to remove.

    -
    -
    -
  • @@ -1883,23 +1084,15 @@

    Parameters

    to be sent back to the Mixpanel server.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func optOutTracking()
    - -
    -
  • @@ -1915,55 +1108,15 @@

    Declaration

    This method will internally track an opt in event to your project.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func optInTracking(distinctId: String? = nil, properties: Properties? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - distintId - - -
    -

    an optional string to use as the distinct ID for events

    -
    -
    - - properties - - -
    -

    an optional properties dictionary that could be passed to add properties to the opt-in event -that is sent to Mixpanel

    -
    -
    -
  • @@ -1974,18 +1127,6 @@

    Parameters

    Returns if the current user has opted out tracking.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func hasOptedOutTracking() -> Bool
    - -
    -
    -
    -

    Return Value

    -

    the current super opted out tracking status

    -
  • @@ -1994,7 +1135,7 @@

    Return Value

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/People.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/People.html index 180f4ffa1..52246f6e0 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/People.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Classes/People.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,13 +128,6 @@

    People

    -
    -
    - -
    open class People
    - -
    -

    Access to the Mixpanel People API, available as an accessible variable from the main Mixpanel instance.

    @@ -145,9 +138,9 @@

    People

  • @@ -162,14 +155,6 @@

    People

    current time for all $set, $append, and $add operations

    -
    -

    Declaration

    -
    -

    Swift

    -
    open var ignoreTime: Bool
    - -
    -
  • @@ -189,9 +174,9 @@

    People
  • @@ -215,42 +200,15 @@

    People

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func set(properties: Properties)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    properties dictionary

    -
    -
    -
  • @@ -264,54 +222,15 @@

    Parameters

    MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func set(property: String, to: MixpanelType)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - property - - -
    -

    property name

    -
    -
    - - to - - -
    -

    property value

    -
    -
    -
  • @@ -328,42 +247,15 @@

    Parameters

    representing the first time something happened.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func setOnce(properties: Properties)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    properties dictionary

    -
    -
    -
  • @@ -378,42 +270,15 @@

    Parameters

    that don’t exist there will be no effect.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func unset(properties: [String])
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    properties array

    -
    -
    -
  • @@ -428,42 +293,15 @@

    Parameters

    will be set to the increment amount. Property values must be number objects.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func increment(properties: Properties)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    properties array

    -
    -
    -
  • @@ -475,54 +313,15 @@

    Parameters

    amount.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func increment(property: String, by: Double)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - property - - -
    -

    property name

    -
    -
    - - by - - -
    -

    amount to increment by

    -
    -
    -
  • @@ -536,42 +335,15 @@

    Parameters

    MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func append(properties: Properties)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    mapping of list property names to values to append

    -
    -
    -
  • @@ -585,42 +357,15 @@

    Parameters

    MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func remove(properties: Properties)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    mapping of list property names to values to remove

    -
    -
    -
  • @@ -633,42 +378,15 @@

    Parameters

    Property values must be array objects.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func union(properties: Properties)
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - properties - - -
    -

    mapping of list property names to lists to union

    -
    -
    -
  • @@ -684,54 +402,15 @@

    Parameters

    revenue analytics to see which products are generating the most revenue.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func trackCharge(amount: Double, properties: Properties? = nil)
    - -
    -
    -
    -

    Parameters

    - - - - - - - - - - - -
    - - amount - - -
    -

    amount of revenue received

    -
    -
    - - properties - - -
    -

    Optional. properties dictionary

    -
    -
    -
  • @@ -742,23 +421,15 @@

    Parameters

    Delete current user’s revenue history.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func clearCharges()
    - -
    -
  • @@ -769,14 +440,6 @@

    Declaration

    Delete current user’s record from Mixpanel People.

    -
    -

    Declaration

    -
    -

    Swift

    -
    open func deleteUser()
    - -
    -
  • @@ -785,7 +448,7 @@

    Declaration

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions.html index b11903113..42ac11323 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -137,9 +137,9 @@

    Extensions

  • - + - Optional + Optional
    @@ -150,23 +150,15 @@

    Extensions

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension Optional: MixpanelType
    - -
    -
  • - + - String + String
    @@ -177,23 +169,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension String: MixpanelType
    - -
    -
  • - + - NSString + NSString
    @@ -204,23 +188,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension NSString: MixpanelType
    - -
    -
  • - + - NSNumber + NSNumber
    @@ -231,23 +207,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension NSNumber: MixpanelType
    - -
    -
  • - + - Int + Int
    @@ -258,23 +226,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension Int: MixpanelType
    - -
    -
  • - + - UInt + UInt
    @@ -285,23 +245,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension UInt: MixpanelType
    - -
    -
  • - + - Double + Double
    @@ -312,23 +264,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension Double: MixpanelType
    - -
    -
  • - + - Float + Float
    @@ -339,23 +283,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension Float: MixpanelType
    - -
    -
  • - + - Bool + Bool
    @@ -366,23 +302,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension Bool: MixpanelType
    - -
    -
  • - + - Date + Date
    @@ -393,23 +321,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension Date: MixpanelType
    - -
    -
  • - + - URL + URL
    @@ -420,23 +340,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension URL: MixpanelType
    - -
    -
  • - + - NSNull + NSNull
    @@ -447,23 +359,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension NSNull: MixpanelType
    - -
    -
  • - + - Array + Array
    @@ -474,23 +378,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension Array: MixpanelType
    - -
    -
  • - + - NSArray + NSArray
    @@ -501,23 +397,15 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension NSArray: MixpanelType
    - -
    -
  • @@ -528,14 +416,6 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    extension Dictionary: MixpanelType
    - -
    -
  • @@ -544,7 +424,7 @@

    Declaration

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Array.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Array.html index c424ed45c..9bfaaf489 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Array.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Array.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,13 +128,6 @@

    Array

    -
    -
    - -
    extension Array: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    Array

  • @@ -156,23 +149,15 @@

    Array

    Checks if this object has nested object types that Mixpanel supports.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -180,16 +165,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -199,7 +175,7 @@

    Declaration

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Bool.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Bool.html index bed08c985..3c4333f82 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Bool.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Bool.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,13 +128,6 @@

    Bool

    -
    -
    - -
    extension Bool: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    Bool

  • @@ -157,23 +150,15 @@

    Bool

    Will always return true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -181,16 +166,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -200,7 +176,7 @@

    Declaration

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Date.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Date.html index 35ad55bda..26bb102a4 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Date.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Date.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,13 +128,6 @@

    Date

    -
    -
    - -
    extension Date: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    Date

  • @@ -157,23 +150,15 @@

    Date

    Will always return true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -181,16 +166,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -200,7 +176,7 @@

    Declaration

  • diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Dictionary.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Dictionary.html index 19606adb4..7bd271e7e 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Dictionary.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Dictionary.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,13 +128,6 @@

    Dictionary

    -
    -
    - -
    extension Dictionary: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    Dictionary

  • @@ -156,23 +149,15 @@

    Dictionary

    Checks if this object has nested object types that Mixpanel supports.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -180,16 +165,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -199,7 +175,7 @@

    Declaration

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Double.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Double.html index 6a935632a..83e731283 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Double.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Double.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,13 +128,6 @@

    Double

    -
    -
    - -
    extension Double: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    Double

  • @@ -157,23 +150,15 @@

    Double

    Will always return true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -181,16 +166,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -200,7 +176,7 @@

    Declaration

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Float.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Float.html index 15dddb9b7..6d3852839 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Float.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Float.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,13 +128,6 @@

    Float

    -
    -
    - -
    extension Float: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    Float

  • @@ -157,23 +150,15 @@

    Float

    Will always return true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -181,16 +166,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -200,7 +176,7 @@

    Declaration

  • diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Int.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Int.html index b4c463e40..ed32e1223 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Int.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Int.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,13 +128,6 @@

    Int

    -
    -
    - -
    extension Int: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    Int

  • @@ -157,23 +150,15 @@

    Int

    Will always return true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -181,16 +166,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -200,7 +176,7 @@

    Declaration

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSArray.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSArray.html index c89156fa3..054c400b3 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSArray.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSArray.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,13 +128,6 @@

    NSArray

    -
    -
    - -
    extension NSArray: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    NSArray

  • @@ -156,23 +149,15 @@

    NSArray

    Checks if this object has nested object types that Mixpanel supports.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -180,16 +165,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -199,7 +175,7 @@

    Declaration

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSNull.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSNull.html index 383041cdb..8543537d0 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSNull.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSNull.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,13 +128,6 @@

    NSNull

    -
    -
    - -
    extension NSNull: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    NSNull

  • @@ -157,23 +150,15 @@

    NSNull

    Will always return true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -181,16 +166,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -200,7 +176,7 @@

    Declaration

  • diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSNumber.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSNumber.html index 07e520d07..fc17886fe 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSNumber.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSNumber.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,13 +128,6 @@

    NSNumber

    -
    -
    - -
    extension NSNumber: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    NSNumber

  • @@ -157,23 +150,15 @@

    NSNumber

    Will always return true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -181,16 +166,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -200,7 +176,7 @@

    Declaration

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSString.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSString.html index 706bb0f14..3c77aaa5a 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSString.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/NSString.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,13 +128,6 @@

    NSString

    -
    -
    - -
    extension NSString: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    NSString

  • @@ -157,23 +150,15 @@

    NSString

    Will always return true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -181,16 +166,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -200,7 +176,7 @@

    Declaration

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Optional.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Optional.html index b4466f558..c1551ec22 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Optional.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/Optional.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,13 +128,6 @@

    Optional

    -
    -
    - -
    extension Optional: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    Optional

  • @@ -156,23 +149,15 @@

    Optional

    Checks if this object has nested object types that Mixpanel supports.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -180,16 +165,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -199,7 +175,7 @@

    Declaration

  • diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/String.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/String.html index 5ed7da230..9d28e60f7 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/String.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/String.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,13 +128,6 @@

    String

    -
    -
    - -
    extension String: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    String

  • @@ -157,23 +150,15 @@

    String

    Will always return true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -181,16 +166,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -200,7 +176,7 @@

    Declaration

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/UInt.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/UInt.html index f59731591..3b2cca183 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/UInt.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/UInt.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,13 +128,6 @@

    UInt

    -
    -
    - -
    extension UInt: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    UInt

  • @@ -157,23 +150,15 @@

    UInt

    Will always return true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -181,16 +166,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -200,7 +176,7 @@

    Declaration

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/URL.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/URL.html index 5d3157c46..62228c8e1 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/URL.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Extensions/URL.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -128,13 +128,6 @@

    URL

    -
    -
    - -
    extension URL: MixpanelType
    - -
    -
    @@ -143,9 +136,9 @@

    URL

  • @@ -157,23 +150,15 @@

    URL

    Will always return true.

    -
    -

    Declaration

    -
    -

    Swift

    -
    public func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -181,16 +166,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -200,7 +176,7 @@

    Declaration

  • diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols.html index 373e4332c..d7b639106 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -137,9 +137,9 @@

    Protocols

  • @@ -151,23 +151,15 @@

    Protocols

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol MixpanelDelegate : AnyObject
    - -
    -
  • @@ -181,14 +173,6 @@

    Declaration

    See more
    -
    -

    Declaration

    -
    -

    Swift

    -
    public protocol MixpanelType
    - -
    -
  • @@ -197,7 +181,7 @@

    Declaration

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols/MixpanelDelegate.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols/MixpanelDelegate.html index f50d7e067..1e5a63360 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols/MixpanelDelegate.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols/MixpanelDelegate.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,13 +128,6 @@

    MixpanelDelegate

    -
    -
    - -
    public protocol MixpanelDelegate : AnyObject
    - -
    -

    Delegate protocol for controlling the Mixpanel API’s network behavior.

    @@ -144,9 +137,9 @@

    MixpanelDelegate

  • @@ -157,37 +150,6 @@

    MixpanelDelegate

    Asks the delegate if data should be uploaded to the server.

    -
    -

    Declaration

    -
    -

    Swift

    -
    func mixpanelWillFlush(_ mixpanel: MixpanelInstance) -> Bool
    - -
    -
    -
    -

    Parameters

    - - - - - - - -
    - - mixpanel - - -
    -

    The mixpanel instance

    -
    -
    -
    -
    -

    Return Value

    -

    return true to upload now or false to defer until later

    -
  • @@ -196,7 +158,7 @@

    Return Value

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols/MixpanelType.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols/MixpanelType.html index a0b6be0d6..718924b0b 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols/MixpanelType.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Protocols/MixpanelType.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases @@ -128,13 +128,6 @@

    MixpanelType

    -
    -
    - -
    public protocol MixpanelType
    - -
    -

    Property keys must be String objects and the supported value types need to conform to MixpanelType. MixpanelType can be either String, Int, UInt, Double, Float, Bool, [MixpanelType], [String: MixpanelType], Date, URL, or NSNull. Numbers are not NaN or infinity

    @@ -146,9 +139,9 @@

    MixpanelType

  • @@ -159,23 +152,15 @@

    MixpanelType

    Checks if this object has nested object types that Mixpanel supports.

    -
    -

    Declaration

    -
    -

    Swift

    -
    func isValidNestedTypeAndValue() -> Bool
    - -
    -
  • @@ -183,16 +168,7 @@

    Declaration

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    func equals(rhs: MixpanelType) -> Bool
    - -
    +
    @@ -202,7 +178,7 @@

    Declaration

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Typealiases.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Typealiases.html index a7610cf37..7fe5a64ad 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Typealiases.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/Typealiases.html @@ -17,7 +17,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -118,7 +118,7 @@ Type Aliases
  • @@ -137,9 +137,9 @@

    Type Aliases

  • @@ -147,16 +147,7 @@

    Type Aliases

    -

    Undocumented

    - -
    -
    -

    Declaration

    -
    -

    Swift

    -
    public typealias Properties = [String : MixpanelType]
    - -
    +
    @@ -166,7 +157,7 @@

    Declaration

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/index.html b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/index.html index 506800859..1256e0723 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/index.html +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/index.html @@ -16,7 +16,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -117,7 +117,7 @@ Type Aliases
  • @@ -288,7 +288,7 @@

    I want to know more!

    diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/search.json b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/search.json index 6e08390ae..504b86544 100644 --- a/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/search.json +++ b/docs/docsets/Mixpanel.docset/Contents/Resources/Documents/search.json @@ -1 +1 @@ -{"Typealiases.html#/s:8Mixpanel10Propertiesa":{"name":"Properties","abstract":"

    Undocumented

    "},"Protocols/MixpanelType.html#/s:8Mixpanel0A4TypeP013isValidNestedB8AndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"MixpanelType"},"Protocols/MixpanelType.html#/s:8Mixpanel0A4TypeP6equals3rhsSbAaB_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"MixpanelType"},"Protocols/MixpanelDelegate.html#/s:8Mixpanel0A8DelegateP17mixpanelWillFlushySbAA0A8InstanceCF":{"name":"mixpanelWillFlush(_:)","abstract":"

    Asks the delegate if data should be uploaded to the server.

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

    Delegate protocol for controlling the Mixpanel API’s network behavior.

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

    Property keys must be String objects and the supported value types need to conform to MixpanelType."},"Extensions/Dictionary.html#/s:SD8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Dictionary"},"Extensions/Dictionary.html#/s:SD8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Dictionary"},"Extensions/NSArray.html#/s:So7NSArrayC8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"NSArray"},"Extensions/NSArray.html#/s:So7NSArrayC8MixpanelE6equals3rhsSbAC0B4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"NSArray"},"Extensions/Array.html#/s:Sa8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Array"},"Extensions/Array.html#/s:Sa8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Array"},"Extensions/NSNull.html#/s:So6NSNullC8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSNull"},"Extensions/NSNull.html#/s:So6NSNullC8MixpanelE6equals3rhsSbAC0B4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"NSNull"},"Extensions/URL.html#/s:10Foundation3URLV8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"URL"},"Extensions/URL.html#/s:10Foundation3URLV8MixpanelE6equals3rhsSbAD0C4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"URL"},"Extensions/Date.html#/s:10Foundation4DateV8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Date"},"Extensions/Date.html#/s:10Foundation4DateV8MixpanelE6equals3rhsSbAD0C4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Date"},"Extensions/Bool.html#/s:Sb8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Bool"},"Extensions/Bool.html#/s:Sb8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Bool"},"Extensions/Float.html#/s:Sf8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Float"},"Extensions/Float.html#/s:Sf8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Float"},"Extensions/Double.html#/s:Sd8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Double"},"Extensions/Double.html#/s:Sd8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Double"},"Extensions/UInt.html#/s:Su8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"UInt"},"Extensions/UInt.html#/s:Su8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"UInt"},"Extensions/Int.html#/s:Si8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Int"},"Extensions/Int.html#/s:Si8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Int"},"Extensions/NSNumber.html#/s:So8NSNumberC8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSNumber"},"Extensions/NSNumber.html#/s:So8NSNumberC8MixpanelE6equals3rhsSbAC0B4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"NSNumber"},"Extensions/NSString.html#/s:So8NSStringC8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSString"},"Extensions/NSString.html#/s:So8NSStringC8MixpanelE6equals3rhsSbAC0B4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"NSString"},"Extensions/String.html#/s:SS8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"String"},"Extensions/String.html#/s:SS8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"String"},"Extensions/Optional.html#/s:Sq8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Optional"},"Extensions/Optional.html#/s:Sq8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Optional"},"Extensions/Optional.html":{"name":"Optional"},"Extensions/String.html":{"name":"String"},"Extensions/NSString.html":{"name":"NSString"},"Extensions/NSNumber.html":{"name":"NSNumber"},"Extensions/Int.html":{"name":"Int"},"Extensions/UInt.html":{"name":"UInt"},"Extensions/Double.html":{"name":"Double"},"Extensions/Float.html":{"name":"Float"},"Extensions/Bool.html":{"name":"Bool"},"Extensions/Date.html":{"name":"Date"},"Extensions/URL.html":{"name":"URL"},"Extensions/NSNull.html":{"name":"NSNull"},"Extensions/Array.html":{"name":"Array"},"Extensions/NSArray.html":{"name":"NSArray"},"Extensions/Dictionary.html":{"name":"Dictionary"},"Classes/People.html#/s:8Mixpanel6PeopleC10ignoreTimeSbvp":{"name":"ignoreTime","abstract":"

    controls the $ignore_time property in any subsequent MixpanelPeople operation.","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC3set10propertiesySDySSAA0A4Type_pG_tF":{"name":"set(properties:)","abstract":"

    Set properties on the current user in Mixpanel People.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC3set8property2toySS_AA0A4Type_ptF":{"name":"set(property:to:)","abstract":"

    Convenience method for setting a single property in Mixpanel People.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC7setOnce10propertiesySDySSAA0A4Type_pG_tF":{"name":"setOnce(properties:)","abstract":"

    Set properties on the current user in Mixpanel People, but doesn’t overwrite if","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC5unset10propertiesySaySSG_tF":{"name":"unset(properties:)","abstract":"

    Remove a list of properties and their values from the current user’s profile","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC9increment10propertiesySDySSAA0A4Type_pG_tF":{"name":"increment(properties:)","abstract":"

    Increment the given numeric properties by the given values.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC9increment8property2byySS_SdtF":{"name":"increment(property:by:)","abstract":"

    Convenience method for incrementing a single numeric property by the specified","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC6append10propertiesySDySSAA0A4Type_pG_tF":{"name":"append(properties:)","abstract":"

    Append values to list properties.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC6remove10propertiesySDySSAA0A4Type_pG_tF":{"name":"remove(properties:)","abstract":"

    Removes list properties.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC5union10propertiesySDySSAA0A4Type_pG_tF":{"name":"union(properties:)","abstract":"

    Union list properties.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC11trackCharge6amount10propertiesySd_SDySSAA0A4Type_pGSgtF":{"name":"trackCharge(amount:properties:)","abstract":"

    Track money spent by the current user for revenue analytics and associate","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC12clearChargesyyF":{"name":"clearCharges()","abstract":"

    Delete current user’s revenue history.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC10deleteUseryyF":{"name":"deleteUser()","abstract":"

    Delete current user’s record from Mixpanel People.

    ","parent_name":"People"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8apiTokenSSvp":{"name":"apiToken","abstract":"

    apiToken string that identifies the project to track data to

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8delegateAA0A8Delegate_pSgvp":{"name":"delegate","abstract":"

    The a MixpanelDelegate object that gives control over Mixpanel network activity.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC10distinctIdSSvp":{"name":"distinctId","abstract":"

    distinctId string that uniquely identifies the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC11anonymousIdSSSgvp":{"name":"anonymousId","abstract":"

    anonymousId string that uniquely identifies the device.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC6userIdSSSgvp":{"name":"userId","abstract":"

    userId string that identify is called with.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC22hadPersistedDistinctIdSbSgvp":{"name":"hadPersistedDistinctId","abstract":"

    hadPersistedDistinctId is a boolean value which specifies that the stored distinct_id","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC5aliasSSSgvp":{"name":"alias","abstract":"

    alias string that uniquely identifies the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC6peopleAA6PeopleCSgvp":{"name":"people","abstract":"

    Accessor to the Mixpanel People API object.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC28showNetworkActivityIndicatorSbvp":{"name":"showNetworkActivityIndicator","abstract":"

    Controls whether to show spinning network activity indicator when flushing","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC27trackAutomaticEventsEnabledSbvp":{"name":"trackAutomaticEventsEnabled","abstract":"

    This allows enabling or disabling collecting common mobile events,

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC13flushIntervalSdvp":{"name":"flushInterval","abstract":"

    Flush timer’s interval.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC17flushOnBackgroundSbvp":{"name":"flushOnBackground","abstract":"

    Control whether the library should flush data to Mixpanel when the app","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC26useIPAddressForGeoLocationSbvp":{"name":"useIPAddressForGeoLocation","abstract":"

    Controls whether to automatically send the client IP Address as part of","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC9serverURLSSvp":{"name":"serverURL","abstract":"

    The base URL used for Mixpanel API requests.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp":{"name":"debugDescription","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC14loggingEnabledSbvp":{"name":"loggingEnabled","abstract":"

    This allows enabling or disabling of all Mixpanel logs at run time.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC4nameSSvp":{"name":"name","abstract":"

    A unique identifier for this MixpanelInstance

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC22minimumSessionDurations6UInt64Vvp":{"name":"minimumSessionDuration","abstract":"

    Undocumented

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC22maximumSessionDurations6UInt64Vvp":{"name":"maximumSessionDuration","abstract":"

    The maximum session duration (ms) that is tracked in automatic events.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8identify10distinctId9usePeople10completionySS_SbyycSgtF":{"name":"identify(distinctId:usePeople:completion:)","abstract":"

    Sets the distinct ID of the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC11createAlias_10distinctId9usePeople11andIdentify10completionySS_SSS2byycSgtF":{"name":"createAlias(_:distinctId:usePeople:andIdentify:completion:)","abstract":"

    The alias method creates an alias which Mixpanel will use to remap one id to another.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC5reset10completionyyycSg_tF":{"name":"reset(completion:)","abstract":"

    Clears all stored properties including the distinct Id.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC7archiveyyF":{"name":"archive()","abstract":"

    Undocumented

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC5flush16performFullFlush10completionySb_yycSgtF":{"name":"flush(performFullFlush:completion:)","abstract":"

    Uploads queued data to the Mixpanel server.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC5track5event10propertiesySSSg_SDySSAA0A4Type_pGSgtF":{"name":"track(event:properties:)","abstract":"

    Tracks an event with properties.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC15trackWithGroups5event10properties6groupsySSSg_SDySSAA0A4Type_pGSgAKtF":{"name":"trackWithGroups(event:properties:groups:)","abstract":"

    Tracks an event with properties and to specific groups.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8getGroup8groupKey0E2IDAA0D0CSS_AA0A4Type_ptF":{"name":"getGroup(groupKey:groupID:)","abstract":"

    Undocumented

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC4time5eventySS_tF":{"name":"time(event:)","abstract":"

    Starts a timer that will be stopped and added as a property when a","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC16eventElapsedTime0C0SdSS_tF":{"name":"eventElapsedTime(event:)","abstract":"

    Retrieves the time elapsed for the named event since time(event:) was called.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC16clearTimedEventsyyF":{"name":"clearTimedEvents()","abstract":"

    Clears all current event timers.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC15clearTimedEvent5eventySS_tF":{"name":"clearTimedEvent(event:)","abstract":"

    Clears the event timer for the named event.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC22currentSuperPropertiesSDySSypGyF":{"name":"currentSuperProperties()","abstract":"

    Returns the currently set super properties.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC20clearSuperPropertiesyyF":{"name":"clearSuperProperties()","abstract":"

    Clears all currently set super properties.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC23registerSuperPropertiesyySDySSAA0A4Type_pGF":{"name":"registerSuperProperties(_:)","abstract":"

    Registers super properties, overwriting ones that have already been set.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC27registerSuperPropertiesOnce_12defaultValueySDySSAA0A4Type_pG_AaF_pSgtF":{"name":"registerSuperPropertiesOnce(_:defaultValue:)","abstract":"

    Registers super properties without overwriting ones that have already been set,","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC23unregisterSuperPropertyyySSF":{"name":"unregisterSuperProperty(_:)","abstract":"

    Removes a previously registered super property.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8setGroup8groupKey0E2IDySS_AA0A4Type_ptF":{"name":"setGroup(groupKey:groupID:)","abstract":"

    Convenience method to set a single group the user belongs to.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8setGroup8groupKey0E3IDsySS_SayAA0A4Type_pGtF":{"name":"setGroup(groupKey:groupIDs:)","abstract":"

    Set the groups this user belongs to.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8addGroup8groupKey0E2IDySS_AA0A4Type_ptF":{"name":"addGroup(groupKey:groupID:)","abstract":"

    Add a group to this user’s membership for a particular group key

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC11removeGroup8groupKey0E2IDySS_AA0A4Type_ptF":{"name":"removeGroup(groupKey:groupID:)","abstract":"

    Remove a group from this user’s membership for a particular group key

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC14optOutTrackingyyF":{"name":"optOutTracking()","abstract":"

    Opt out tracking.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC13optInTracking10distinctId10propertiesySSSg_SDySSAA0A4Type_pGSgtF":{"name":"optInTracking(distinctId:properties:)","abstract":"

    Opt in tracking.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC19hasOptedOutTrackingSbyF":{"name":"hasOptedOutTracking()","abstract":"

    Returns if the current user has opted out tracking.

    ","parent_name":"MixpanelInstance"},"Classes/Mixpanel.html#/s:8MixpanelAAC10initialize5token20trackAutomaticEvents13flushInterval12instanceName23optOutTrackingByDefault19useUniqueDistinctId15superProperties9serverURLAA0A8InstanceCSS_SbSdSSSgS2bSDySSAA0A4Type_pGSgANtFZ":{"name":"initialize(token:trackAutomaticEvents:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)","abstract":"

    Initializes an instance of the API with the given project token.

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/initialize(token:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)":{"name":"initialize(token:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)","abstract":"

    Initializes an instance of the API with the given project token (MAC OS ONLY).

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/s:8MixpanelAAC11getInstance4nameAA0aC0CSgSS_tFZ":{"name":"getInstance(name:)","abstract":"

    Gets the mixpanel instance with the given name

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/s:8MixpanelAAC12mainInstanceAA0aC0CyFZ":{"name":"mainInstance()","abstract":"

    Returns the main instance that was initialized.

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/s:8MixpanelAAC15setMainInstance4nameySS_tFZ":{"name":"setMainInstance(name:)","abstract":"

    Sets the main instance based on the instance name

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/s:8MixpanelAAC14removeInstance4nameySS_tFZ":{"name":"removeInstance(name:)","abstract":"

    Removes an unneeded Mixpanel instance based on its name

    ","parent_name":"Mixpanel"},"Classes/Group.html#/s:8Mixpanel5GroupC3set10propertiesySDySSAA0A4Type_pG_tF":{"name":"set(properties:)","abstract":"

    Sets properties on this group.

    ","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC3set8property2toySS_AA0A4Type_ptF":{"name":"set(property:to:)","abstract":"

    Convenience method for setting a single property in Mixpanel Groups.

    ","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC7setOnce10propertiesySDySSAA0A4Type_pG_tF":{"name":"setOnce(properties:)","abstract":"

    Sets properties on the current Mixpanel Group, but doesn’t overwrite if","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC5unset8propertyySS_tF":{"name":"unset(property:)","abstract":"

    Remove a property and its value from a group’s profile in Mixpanel Groups.

    ","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC6remove3key5valueySS_AA0A4Type_ptF":{"name":"remove(key:value:)","abstract":"

    Removes list properties.

    ","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC5union3key6valuesySS_SayAA0A4Type_pGtF":{"name":"union(key:values:)","abstract":"

    Union list properties.

    ","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC06deleteB0yyF":{"name":"deleteGroup()","abstract":"

    Delete group’s record from Mixpanel Groups.

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

    Access to the Mixpanel Groups API, available through the getGroup function from"},"Classes/Mixpanel.html":{"name":"Mixpanel","abstract":"

    The primary class for integrating Mixpanel with your app.

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

    The class that represents the Mixpanel Instance

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

    Access to the Mixpanel People API, available as an accessible variable from"},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

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

    The following extensions are available globally.

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

    The following protocols are available globally.

    "},"Typealiases.html":{"name":"Type Aliases","abstract":"

    The following type aliases are available globally.

    "}} \ No newline at end of file +{"Typealiases.html#/Properties":{"name":"Properties"},"Protocols/MixpanelType.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"MixpanelType"},"Protocols/MixpanelType.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"MixpanelType"},"Protocols/MixpanelDelegate.html#/mixpanelWillFlush(_:)":{"name":"mixpanelWillFlush(_:)","abstract":"

    Asks the delegate if data should be uploaded to the server.

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

    Delegate protocol for controlling the Mixpanel API’s network behavior.

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

    Property keys must be String objects and the supported value types need to conform to MixpanelType."},"Extensions/Dictionary.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Dictionary"},"Extensions/Dictionary.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Dictionary"},"Extensions/NSArray.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"NSArray"},"Extensions/NSArray.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"NSArray"},"Extensions/Array.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Array"},"Extensions/Array.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Array"},"Extensions/NSNull.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSNull"},"Extensions/NSNull.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"NSNull"},"Extensions/URL.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"URL"},"Extensions/URL.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"URL"},"Extensions/Date.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Date"},"Extensions/Date.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Date"},"Extensions/Bool.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Bool"},"Extensions/Bool.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Bool"},"Extensions/Float.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Float"},"Extensions/Float.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Float"},"Extensions/Double.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Double"},"Extensions/Double.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Double"},"Extensions/UInt.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"UInt"},"Extensions/UInt.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"UInt"},"Extensions/Int.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Int"},"Extensions/Int.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Int"},"Extensions/NSNumber.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSNumber"},"Extensions/NSNumber.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"NSNumber"},"Extensions/NSString.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSString"},"Extensions/NSString.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"NSString"},"Extensions/String.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"String"},"Extensions/String.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"String"},"Extensions/Optional.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Optional"},"Extensions/Optional.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Optional"},"Extensions/Optional.html":{"name":"Optional"},"Extensions/String.html":{"name":"String"},"Extensions/NSString.html":{"name":"NSString"},"Extensions/NSNumber.html":{"name":"NSNumber"},"Extensions/Int.html":{"name":"Int"},"Extensions/UInt.html":{"name":"UInt"},"Extensions/Double.html":{"name":"Double"},"Extensions/Float.html":{"name":"Float"},"Extensions/Bool.html":{"name":"Bool"},"Extensions/Date.html":{"name":"Date"},"Extensions/URL.html":{"name":"URL"},"Extensions/NSNull.html":{"name":"NSNull"},"Extensions/Array.html":{"name":"Array"},"Extensions/NSArray.html":{"name":"NSArray"},"Extensions/Dictionary.html":{"name":"Dictionary"},"Classes/People.html#/ignoreTime":{"name":"ignoreTime","abstract":"

    controls the $ignore_time property in any subsequent MixpanelPeople operation.","parent_name":"People"},"Classes/People.html#/set(properties:)":{"name":"set(properties:)","abstract":"

    Set properties on the current user in Mixpanel People.

    ","parent_name":"People"},"Classes/People.html#/set(property:to:)":{"name":"set(property:to:)","abstract":"

    Convenience method for setting a single property in Mixpanel People.

    ","parent_name":"People"},"Classes/People.html#/setOnce(properties:)":{"name":"setOnce(properties:)","abstract":"

    Set properties on the current user in Mixpanel People, but doesn’t overwrite if","parent_name":"People"},"Classes/People.html#/unset(properties:)":{"name":"unset(properties:)","abstract":"

    Remove a list of properties and their values from the current user’s profile","parent_name":"People"},"Classes/People.html#/increment(properties:)":{"name":"increment(properties:)","abstract":"

    Increment the given numeric properties by the given values.

    ","parent_name":"People"},"Classes/People.html#/increment(property:by:)":{"name":"increment(property:by:)","abstract":"

    Convenience method for incrementing a single numeric property by the specified","parent_name":"People"},"Classes/People.html#/append(properties:)":{"name":"append(properties:)","abstract":"

    Append values to list properties.

    ","parent_name":"People"},"Classes/People.html#/remove(properties:)":{"name":"remove(properties:)","abstract":"

    Removes list properties.

    ","parent_name":"People"},"Classes/People.html#/union(properties:)":{"name":"union(properties:)","abstract":"

    Union list properties.

    ","parent_name":"People"},"Classes/People.html#/trackCharge(amount:properties:)":{"name":"trackCharge(amount:properties:)","abstract":"

    Track money spent by the current user for revenue analytics and associate","parent_name":"People"},"Classes/People.html#/clearCharges()":{"name":"clearCharges()","abstract":"

    Delete current user’s revenue history.

    ","parent_name":"People"},"Classes/People.html#/deleteUser()":{"name":"deleteUser()","abstract":"

    Delete current user’s record from Mixpanel People.

    ","parent_name":"People"},"Classes/MixpanelInstance.html#/apiToken":{"name":"apiToken","abstract":"

    apiToken string that identifies the project to track data to

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/delegate":{"name":"delegate","abstract":"

    The a MixpanelDelegate object that gives control over Mixpanel network activity.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/distinctId":{"name":"distinctId","abstract":"

    distinctId string that uniquely identifies the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/anonymousId":{"name":"anonymousId","abstract":"

    anonymousId string that uniquely identifies the device.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/userId":{"name":"userId","abstract":"

    userId string that identify is called with.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/hadPersistedDistinctId":{"name":"hadPersistedDistinctId","abstract":"

    hadPersistedDistinctId is a boolean value which specifies that the stored distinct_id","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/alias":{"name":"alias","abstract":"

    alias string that uniquely identifies the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/people":{"name":"people","abstract":"

    Accessor to the Mixpanel People API object.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/showNetworkActivityIndicator":{"name":"showNetworkActivityIndicator","abstract":"

    Controls whether to show spinning network activity indicator when flushing","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/trackAutomaticEventsEnabled":{"name":"trackAutomaticEventsEnabled","abstract":"

    This allows enabling or disabling collecting common mobile events,

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/flushInterval":{"name":"flushInterval","abstract":"

    Flush timer’s interval.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/flushOnBackground":{"name":"flushOnBackground","abstract":"

    Control whether the library should flush data to Mixpanel when the app","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/useIPAddressForGeoLocation":{"name":"useIPAddressForGeoLocation","abstract":"

    Controls whether to automatically send the client IP Address as part of","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/flushBatchSize":{"name":"flushBatchSize","abstract":"

    The flushBatchSize property determines the number of events sent in a single network request to the Mixpanel server.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/serverURL":{"name":"serverURL","abstract":"

    The base URL used for Mixpanel API requests.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/debugDescription":{"name":"debugDescription","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/loggingEnabled":{"name":"loggingEnabled","abstract":"

    This allows enabling or disabling of all Mixpanel logs at run time.

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

    A unique identifier for this MixpanelInstance

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/minimumSessionDuration":{"name":"minimumSessionDuration","abstract":"

    The minimum session duration (ms) that is tracked in automatic events.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/maximumSessionDuration":{"name":"maximumSessionDuration","abstract":"

    The maximum session duration (ms) that is tracked in automatic events.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/identify(distinctId:usePeople:completion:)":{"name":"identify(distinctId:usePeople:completion:)","abstract":"

    Sets the distinct ID of the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/createAlias(_:distinctId:usePeople:andIdentify:completion:)":{"name":"createAlias(_:distinctId:usePeople:andIdentify:completion:)","abstract":"

    The alias method creates an alias which Mixpanel will use to remap one id to another.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/reset(completion:)":{"name":"reset(completion:)","abstract":"

    Clears all stored properties including the distinct Id.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/archive()":{"name":"archive()","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/flush(performFullFlush:completion:)":{"name":"flush(performFullFlush:completion:)","abstract":"

    Uploads queued data to the Mixpanel server.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/track(event:properties:)":{"name":"track(event:properties:)","abstract":"

    Tracks an event with properties.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/trackWithGroups(event:properties:groups:)":{"name":"trackWithGroups(event:properties:groups:)","abstract":"

    Tracks an event with properties and to specific groups.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/getGroup(groupKey:groupID:)":{"name":"getGroup(groupKey:groupID:)","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/time(event:)":{"name":"time(event:)","abstract":"

    Starts a timer that will be stopped and added as a property when a","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/eventElapsedTime(event:)":{"name":"eventElapsedTime(event:)","abstract":"

    Retrieves the time elapsed for the named event since time(event:) was called.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/clearTimedEvents()":{"name":"clearTimedEvents()","abstract":"

    Clears all current event timers.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/clearTimedEvent(event:)":{"name":"clearTimedEvent(event:)","abstract":"

    Clears the event timer for the named event.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/currentSuperProperties()":{"name":"currentSuperProperties()","abstract":"

    Returns the currently set super properties.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/clearSuperProperties()":{"name":"clearSuperProperties()","abstract":"

    Clears all currently set super properties.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/registerSuperProperties(_:)":{"name":"registerSuperProperties(_:)","abstract":"

    Registers super properties, overwriting ones that have already been set.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/registerSuperPropertiesOnce(_:defaultValue:)":{"name":"registerSuperPropertiesOnce(_:defaultValue:)","abstract":"

    Registers super properties without overwriting ones that have already been set,","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/unregisterSuperProperty(_:)":{"name":"unregisterSuperProperty(_:)","abstract":"

    Removes a previously registered super property.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/setGroup(groupKey:groupID:)":{"name":"setGroup(groupKey:groupID:)","abstract":"

    Convenience method to set a single group the user belongs to.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/setGroup(groupKey:groupIDs:)":{"name":"setGroup(groupKey:groupIDs:)","abstract":"

    Set the groups this user belongs to.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/addGroup(groupKey:groupID:)":{"name":"addGroup(groupKey:groupID:)","abstract":"

    Add a group to this user’s membership for a particular group key

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/removeGroup(groupKey:groupID:)":{"name":"removeGroup(groupKey:groupID:)","abstract":"

    Remove a group from this user’s membership for a particular group key

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/optOutTracking()":{"name":"optOutTracking()","abstract":"

    Opt out tracking.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/optInTracking(distinctId:properties:)":{"name":"optInTracking(distinctId:properties:)","abstract":"

    Opt in tracking.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/hasOptedOutTracking()":{"name":"hasOptedOutTracking()","abstract":"

    Returns if the current user has opted out tracking.

    ","parent_name":"MixpanelInstance"},"Classes/Mixpanel.html#/initialize(token:trackAutomaticEvents:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)":{"name":"initialize(token:trackAutomaticEvents:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)","abstract":"

    Initializes an instance of the API with the given project token.

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/initialize(token:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)":{"name":"initialize(token:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)","abstract":"

    Initializes an instance of the API with the given project token (MAC OS ONLY).

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/getInstance(name:)":{"name":"getInstance(name:)","abstract":"

    Gets the mixpanel instance with the given name

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/mainInstance()":{"name":"mainInstance()","abstract":"

    Returns the main instance that was initialized.

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/setMainInstance(name:)":{"name":"setMainInstance(name:)","abstract":"

    Sets the main instance based on the instance name

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/removeInstance(name:)":{"name":"removeInstance(name:)","abstract":"

    Removes an unneeded Mixpanel instance based on its name

    ","parent_name":"Mixpanel"},"Classes/Group.html#/set(properties:)":{"name":"set(properties:)","abstract":"

    Sets properties on this group.

    ","parent_name":"Group"},"Classes/Group.html#/set(property:to:)":{"name":"set(property:to:)","abstract":"

    Convenience method for setting a single property in Mixpanel Groups.

    ","parent_name":"Group"},"Classes/Group.html#/setOnce(properties:)":{"name":"setOnce(properties:)","abstract":"

    Sets properties on the current Mixpanel Group, but doesn’t overwrite if","parent_name":"Group"},"Classes/Group.html#/unset(property:)":{"name":"unset(property:)","abstract":"

    Remove a property and its value from a group’s profile in Mixpanel Groups.

    ","parent_name":"Group"},"Classes/Group.html#/remove(key:value:)":{"name":"remove(key:value:)","abstract":"

    Removes list properties.

    ","parent_name":"Group"},"Classes/Group.html#/union(key:values:)":{"name":"union(key:values:)","abstract":"

    Union list properties.

    ","parent_name":"Group"},"Classes/Group.html#/deleteGroup()":{"name":"deleteGroup()","abstract":"

    Delete group’s record from Mixpanel Groups.

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

    Access to the Mixpanel Groups API, available through the getGroup function from"},"Classes/Mixpanel.html":{"name":"Mixpanel","abstract":"

    The primary class for integrating Mixpanel with your app.

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

    The class that represents the Mixpanel Instance

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

    Access to the Mixpanel People API, available as an accessible variable from"},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

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

    The following extensions are available globally.

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

    The following protocols are available globally.

    "},"Typealiases.html":{"name":"Type Aliases","abstract":"

    The following type aliases are available globally.

    "}} \ No newline at end of file diff --git a/docs/docsets/Mixpanel.docset/Contents/Resources/docSet.dsidx b/docs/docsets/Mixpanel.docset/Contents/Resources/docSet.dsidx index 391f9a6e1ea42c74153cc78158e2064988e3c5d6..c81e1343c93f4cf380995a0ed90526d679c58200 100644 GIT binary patch literal 36864 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 Ki6>E^ocUivNzP^f literal 45056 zcmeHQYit`=cAgP6Lx~j0coj#>$XrR0WlNTAilivXa-4*EP*H44vMF1(^H3;pMA4>5 znjFfaAMuX1+aFsjQ1rEnHbu86iY9G$kxfycKiX}JqG=aFQ8YlZ0a~O$AJ}#`f3_&L zEt=MHB$GbCsD@}u1mU~4qIbH01dy>sq8ugl1Va|xd7-%4k9qI`dVdV->9>V^J( zilX-6pB?^5KW%W)F8u+&X~lK5%YEwPy2k;Zwz*DHuCKs<=8q`>Qv#+0ObM70FePA0 zz?6U~0aF5|1WXB-5_s$-aIMYS;~u01CXtG9d(qV9b~>BmqS?*uMZ95|y*M9Qo$tT2 zw0PmteE;Io-29b(u~q-_Qoo{Q|8Oe0!yWJE3mN!76Xmx@c-q=C2(-O?bR)?r+A1#F ziU6yjnRD|>dc%nrz^%?N%wOzZxwv>fbn$Bc+4-x-`w^ypb^gk#h*i8qKyo?4fXpqf zAED%JuK#xZSiF4f2g2;2DFIUgrUXn0m=Z80U`oK0fGGh}0;U8^378TvC14r}>@`Y(WJw0-s`A<8t1GY&xGgxy|n+2fexJsq=}w zOf<}Vz zH}lbCZaBN0lh{*1MfhwY6<2^wEk(q83b+Z8NC1dLHbS#wGesWP`Eb9j{bMRfeVKB7 z=K4p2=_D}RDZGUZ9Xt%XpuyqGd(#&nF2mY~2Gz*1r^d5W0Eu5h@^Vuwy;#&*quS_+9 zoEI_+h4AaQ*wbzyATqp~*x_RHyU>ea4*zdX=Dr}|xI{Eah@#B-@cMPu=N1OFxJ?S# zH=%*dfq-9IWBc5Ki^im*#ICG>8XLyRA{C&!CY-Yh7WaNPy_w~rJV#!{;q~cQBF86E zoBU#II-lcKxO67TO-EC)#TbY*u~nGfOz*%gd|R6ouulQJ?i(uspOS%nJ_WLGtOSk2 z5Q#+m8->DVB+iE~ftFz@>M-N(3D9DviG(CEiMPnhdUu%d^i0ZcxvH7;c9Vv;pJ94> zd^CBXRjtS!(xh;XIqJ^QF%AU6k=xqWtkhQZb{7|=u?g|fnK2lVz1o(5rToqYmnHB> zGLnWRK)hGm67Yo$Txt4@RvN=aO=p#H#t>rA2qKitMhgl?CYK`QR&9LP))1sqA7nAb zmjDu_64s zfOLW^veB$U=yNrZ@7PB2qXy(bi^%=}F<{nIZR`qK>(gU>pXfx!z78Z6t$x z>8ZKmAM2S&d^a<*%bxHErvYgrAD`oLo7qGL=R?hiIsepbKF6nb=8!^hpPNqY;*JJh zk`*7QPc>;2*m8s!ao-o$=GpCNHeSB@F%+4fti;8qL1@os*nnF&K}RzgE)|ok5ZG2} z*FYo66CwrQSVrEN707-@VT&w)7CLFx{AmoA=@_xAEd z&I`B6tK~h)9PA6ymq7W;pUM}|Oj;C38W#sRenO5vN6!@s@^rWQ6JIo21FoEq7kN$aza^ z`f*V@;!-TPkS}sx#Uec#U;0|^_P@7J*}iYf*qDz0v=*#g>^IoM%)887`}f+DmVc*zmwthIk6Lc~{k9AA-_UzN z%<`KR41DvJDS>hc)MDRAIvh2rat|4R4{F;&K2ggSQeFdy36+LLi}b;#1G#>=hSGOPR)|eAW-QF#+iXzv-3LQ9;gdf($xf0 zVXqlL^(GPOU|mopbx*()CY%A-!5swasS8Z8U=TEgRcCO)g6Hv~~(=ouhd z?;v8JK16BBLM-KbtF`?Mun*io?C!d-^*zVUF91=94_S>n^1dH}l+F$%U6wJAtRc1O)2|bg9;Ek#=Nc-+_XZ zRZA!|>l-U|I!HS0AFI@BUqIDupI_N;f1paoedzDg_S_fLbp4dvbz*5sw)8AI0yiQt zv=6`?SY}E^;-Muzd@Z?ew+cD;{y@3-Rb77gk}gTMI2|5*e|D~;*W3-F01xaA`pYv? zRBfZ6oft+2?J1c`DY^z;Ssa!aAD-UDhy>^oEmQ-ha|y}NdOo$n40!I*iFhiV< z1_TKkN-h~Au3*N?&qg+OGvmS#8+8i_I#G0k50~6M3O{+tL9G>|^nOY6w){O)`hcb+ z7^O2v;TG3=!X-EO>P>bMm-_8!4t5J%Ora;VUZeUtFF;NlAsTo)Sus5k@ z{Wp_k1aZ!vZsDjdNH7MvlW57iGbA*Xe-La5EEU23G{8ehERJjVb4-lpT^$bnTxCTsePY@>c*P!No z>3c51VqI%cji?3;MxBJgKHX6i!5@I3!pW{?OEpj#D`Bgz9<~h73>X?`849BElKZ8`p!~B8LqSwtdP)kpONOZQ zyGl_0jdqp-XVk(@F%N$&Q8eix$+Vb7Z$JS>D!ZW-*+nb9$ugn^$aKdHB*_&t8-CSN zZ4k?02*X+Fqo;OTPppTlFIxUS%nCwn|RW$J5t(FTzsb z`h0#Tx|i6=??kv9)`QIDvn1!SI6w{N0Q&uvspckdt35G(c{g+KVi6t!2oC_hB2@+a zg$pco&?DH@b6c0n$y>XtULLLD_1dA)7SS$;(F`UjWaOrdD z%~njviRzS5rpa?Gg|6u`M{;va`YL;-V`o_kUDFTNGc8arfr^KTQYqBglG*8>)FF*x z71|bAYThH9$!(`^Ephysa8ZuZph}0Y(`k|?{c_OiHcxSTBCfDMN z2SmjD*Nr)r!rWa&zHM`SR7l-@ZI-15Afde!;A|2?QQ3p4YI}yIFabSQ%oT5rx?cYI z)eu4ImXe>FM3TrL6H70^hT44xdEmKAFhY{Ey!HTd=~>7xzxX^uLDIT1>%4A?+MIQv z>p7M>>lT)Yk`Z&+hog}24W)4zdH*Qw#cS@kPeE=%B&UwY$JQ%kVesLdGb{xG+tGXq zwn&qDKcda=2ME&?*<@Y$^ZfN2u5Mb;5@lG$x=bL z;DrXuQ0&{pM42p-P~%jXnp+dFS%REC1yhyk*^P2k3@h3bLD=X*QMm%A0pTHxAxq2S zV3vCBm6B$(y4HvpZNiN|00jF&CAWthg_JMK(&~@<844;DYAjS3_AwOH0}yYKOjEv4 zCe0rkBO%_JiX{$vNl+S`pfV}>qEw-BW#>s@RtC;oUfk9v)ill+msglEYc@b;tppijELp z1sBiCE+*}b7^jf~bX`eR`p((50>XNYVHK*mHQ_Q>19|g}M(y1V)IT(yZ8MNYnfBHt zQ{9v(gHXv}17p~lw41($kXw-tkQ(L_p8)zxNr`R*9&S|EU2dKC8HSkqDnUrS^B zznA)X%H?IG01qA`&eq98n8=SYS9&D$+x(mWo7I(V0p| zw%&=6Za{>p(jL3e{MNk+VXV*&3lp0xg(goWZ14a)wib_I+aO|#ROxv0Vyi;9lErf~ zN`j-KBzWK218}RIx_kF^mcnCqE1!?soJR8-p1QlcP6E#X!f@$;+?JHa>Yciqc#Z7m z1~s@3;?&*USBZdq+Ctry@TgP%yZ#DETJGgrRBAkqgp?;23$~ZVH%F>FZ?)c&=&JP| zDBlY8?1KLqORc;2tz>Vwmf*L^!jLOUSz%zuvFN_Z^}!d^z=(2D+Sn5!4(P_prgrEo ztQ?N3WNxezYUN$koJwEc8YXtJykk{+1pRsP3QJ)HJ;{cAYzpWvuR*#ixGYXw~c;A`bU*=YYCuuoI2Uv^D6|H>JM z>i=JL1iQZ5b+_wk*O>i3>>t>_ZU2g$gC^#WDFIUgrUXn0m=Z80U`oK0fGL5WU>fS6!Snn_W9Mb7o)9Vq4QSjTGX#x3d+$3=| zmpB2Wa6|*aWS#V@ScbTf4*)ag6|wsUK!O?)$|Nt$|L?XsDA(6rPdN9ThpZns-gX>@ zjQ@cB9s7VSX?1k|Pv;jq4_ONxZ+6W71gm?KbyEVS1WXB-68Qfsfg6~`Jw!i@E#$2$ zn6+vFEX8J}6!mi~Z)A-{P-Mt1y5O`*S*y%@pXu@*>&EgR>Vs|uO67q1)pm|Af;!)`9Vi(E> zPcwNWPl044>E{(T5bwVFI(}DDFa5w$Bwi6LES|YT>m7^(z8yS(?SUP-vzSG-?yW(s z8@;VH+w7AZepklZ8bM!HOs%3P5fBA z^fS~)M-x$rH|5crcvznHc;3xSXT9!r?@Y~(S;s|slK5yDiPf27Gvv*!;X^6?bx3&>zG88F74PM~*?E&ty6Y_J?F8Agif&ABuWI9C%1?JShtFCEE@vmXr zRLW1$Hrid}n3k{}3tYaWrezuR&)0W=VDL|1Ku~Rxa$u z7eQW*NjnpvamPi%*Pp)#9`U}q{=SA+f4&RuO(7+y=unmehl0H&!l}BpuJ9wqOk>t~ z`2^(f*I9Wu6ohdN?#2ap&Eum?_|BhaXJ$OD)Fx3+EtP}^yomy44W0`kf-Lca^}gQXczOeIK(s;<$d$lklpxfy`X!I**nzJhYi z**$GE!RBIXPk(ejR86{ zXR)83qU#Zji1g8dt(&85sGf_~-Zbo63{qeiqK$tR4BEJhgt9g3rNYua^Y7a;`f|9l zzoU5c=dNuC_SQ-)n12$FRtqoLFlo_gRYmLW#Qm;YLaPb*sbYIw<;(2bI^=Gwf>t-U zX{h!?`XU>SZ-0Pne0~uc6AZc&Y6vw zdFU(w_kjcaq?<2zwqX6S@z;3VV)$HaogVx1%r>v%%$TA5N=KxUW8_*7ieN}TuA6jL z4&R35E-h6*c~8OrtK9$U`4y>Hl2w9RxVVEU81cFKRVLI!_@)wgYZQ>IaVnP-2OTG-2F3Hr zVv-UsBuhegYFfcDig_sGYj;2S9;HhsJXHi(+0*?>j9RPpySWst;#AMpd)|_ntGrX+ z)aWTXysDzmbgQkjd-q#9l7B?^-)wGr*Ogz>6kPo~HR_;6VCVDeXkfGor&r@mX=n(r zr;}G*UiVq))@`gC-11=b_4xd{8oyds`Ek|Bxq@H&tKv)f=HnM>3+^vJjmI+fww2#i zKTEAOm+GpMavF#&di6RNQf8Jxilg{T=X*QTB1k`2_!^y=!CKmvlJV;Y<<%Ecuj#Ti)h}Mp*u8ab8P6;IW)yhN5h3HJVBevX@&GvK(>G5r`)_>aq5_3 zIb**eV7B`P*O<$PKLY`LK1Bv3y+UAf?ixDQuA56u%W3T+z6*z1?d98a7V1G5e$U$L zHjO%rfRxaN=IxVM2Di@8f7BpTj7G$ed0L~%rRv|UpzA_y*xPa&i!<|I(TPd1wK!Cll3xE5@Iy?QyCB&ROe?#jpu$%gtU;J#oh}?03vgqzE{?C-hfh*Et64N?EkPFvtep}U4KW4cs`aqMR|fMr z43||s=BHt&;XvBfTq)?N(n{w>IaUrP3|m@r^V2a!KCP%0QBYOYs@Zyvx7zQ3)pEm& zO<*?a`8d|i^xU#7=gKJ{vVsU`FwStkwIpfKo4J6%H!!fHm7p$VTo%?6z6Wi&Z}KF( zBgM1o4I^u&jy|dDuZ0L-)S!r;bMemRSv=fCtN0j=xBB7Rm2l_krXM7W>`pH)W8Jpa zXnU+jS-$xEDr)5A+^p?v7=lr4qj7~`?eu86$;1WKV3WtiP(2N%w`&F9de=&Z#om$12YE0i!QUiDOf7;JUoifWk8a@ZJf<~gKH(k3@6d+vbsYEv`LOpczg zv$l#}Ra2%Eaxe`HjIzla{%wkK$I$y;WXr!QpUK-?GbPBrm@ZcJhq+ zJDe=ZN`r&0=4pyFRaCWJncL0AU6!BqL@|o@+iQvzFasE)Q}@tdSNCgp&@?3-BmD^j%HUV5+uPl;Q3C8*Lj z_oBH%S?OnWRr$fVMe63EMNsu=byE`Wth-QDfzzt;<)R?zEY#37JGFGCQ?2}Ph;H0etx-bwlf%$ zx*13rCbPKEBDSM;bC2K5zA7zohp=YG!#ABftr|P0y^&RmZ_#TPv6%#Zc2XftfAPqN z426{-xWP-dHD8BdM=3f2K@~34Nf4f@eyB-mo|%8VmUFgDMrUHj%*6Y-o=Xli0DB z<4Ox_)P}1Bf=Hf&sy(qq;N zcg|3i39MEZokj(93?_G#EJ^0G!fKFH?;vaBX5v%M;7jp<Qz;19RSud39gQ)L10T0>K?%9&x69bs=1SvrIH#j`__S>h~zP^53l zIHPhCHHf>arP`#{Rq4oZO6>tp#kr?3Wl3Mv*O94vqw~C@?x5>tliG5TQ7W}mI$Fmm zu!v>#*KOznrxYjivQM>7Y0vOAxpVC5WtDx+uhG51U38{znNP2&?tSGlUY)R_clL#Q z>!#J0!+XVFjbHbrJ!1jI{vsv4y&#>|4JJ%o!{N;mu^A_=So$ebDNk+-!*_NXHTeEEj#flp` z{*`ouYtB6;3ekOoZWmyR0|YCaIJXkhd;JnHb7;@4A{4(E?e4ZoS99f#X$xk37vRN- zfM%BK(y~Rjw%5+C7+f~w&{W;gz>9dag^@S2=xpj>Ah8B-kabdt%j>+}%IRqf_+<}w z%tmJKeB{gxABli@D@#DJNN?B9=$RqKX*V$MqO;G*<&@`=?!=FfWxf+z&@I1{JLCMu zCx4;Kagcj*0{O>w*zU}3716F);S?bxa4@V$hkY zmzaigrje_O(w;8e;;pK+0QX^FW?5CBp%!ZUVI{`fAlPxsFof~*^a@#rm0VN7yG|4f zpN=B)PzqKglJP6f?rL*e#o@9`u(i~vVosA1!65n%4lNDA!8tor4eL}r^mz{tC!{}D3KOsl)5iRSkdLS!4l8O_3<)j%)o#mzNX4~s>51owxKlW zgl|vYy`H%(J8L8n&yGrK_Hmoyd4;q(4h=ihRTh7cwu3G#*scYt33VhKHm6*8JV&>7 z#@&*AzsiB3yj;bxc}Z*lSaDc)EC#7d}srhivWX1V;G!ZNL=^&|cfG z#-JgE2fh3dOnFXSD%L1e_oBS~-08Xbtia0)+ImSY)yS*I8anu>n(7W2vTyJ1SNwQ= z=|2a%^;LQoDpYsXzGQ6LvENm9RFpQnFI*t& zMYt_Luv%?jXIfOz7tv$d7_CjsvB)}aTQ~&8Y3L^S|Hf8C4JoUl|9274fU_bx_hNk7 z!q2O!2+B>-p+f{1ks(Pl49Jl(cHIUHiP*rM040`uhfYehgj#ph@0Np&lW}nWGls|% z;W2KyONf3TF6x(+lX*Nn*kr%5C=-dTYL6-9>d%?+{VsNXe?p$bVJa|zWJt>Lgp;uFsE{e+ z5c@+;;Dh}QK$i*9@oicK9Ei2t=Txf&T)ZfS8LQ;3e8$;yDv|_o|C%>wgm-{Q)qLRG zT%*gVuVXYw@kwtO((9H>&rX=xoEAgH-4(BN-OXhR>Da|p&Zgr@SRg0--%(hNMaMdB zy2_t9)Z^3-BFf{3OmO$@6jQ$X`Y>Lu<}DbNIo^oT@mmwvu0t8F%h~+Z1XtY!3TFP) zFGL0+DziR7>CW;=AfN}eHjTU9HfC{On?Zc%KGA*;lECy^vh%;Tn6 zd$pQZ?@vcy5$_)B)j4@i(Yip0j~Qi}V{NI!yoGj~ zec|{LvoC17dm^Q@SF353HnOGHd+R{VB8$c`cc$)#9bkuEnh&Ws90BJ%L%nT*J+0`} zQR?Mv&?l)+khAAcoWS)5pta|X!&C|9=4WkHL03btg{S#4FEiKn^Jp}3^a{6k)v>pr z?wj*jarN<8_tFo>`}^b4zGh3y@;{D6nav&;`v2tzHX6pkYRsS3dYmN=8-Ibr+EUed zSSTLW-y_W1)j3S1YM+j7*#WNV_N;QXExtVG=hs}#=IEAspm0ywd12@1n%?lN`hRu0 zSOTp1VRh5kzil(jy)cdH%Fl;F%>me%k~C+`($Rb~bYPZ=(0rnr%d2yAylmmPiEdKQ z@~sjqQ}$Wnf&Src_mSAl0585Lat{h+yral%r2}DWhwGWSUCze()T>Yx1$J*>W;b(Zu zWSxn62{6uZE4S#Y_IkYJpSLR=YBDR|E-Qa!^=du}E$Q00v*BBPwvB%LTGRM(F!dkW ztge@HGRjEqS%Cd(8}EbW*ZX2&2_B&?bijg`%5 zv9*ibTA$-p$G;fIb1-cU-7h(%)j}I2&mOzc&K6oX4b98lq!P#TvS#YKk`O->`pJv{ z)oNC>WGB%Ejqex1x=z&jhP7t|gXz=tGEz0zm~#!-2I81Ie7}k#*_cYgv!kt1*3GD! zl`$;~nPp!JY`0l~tz_W})$~^9wbO2O3aHD3!F?~R`U;iM1|3&BAMzx!wm}-R2zPbu zF0ufe?IXf{b_4~_9kIlIawJo5TzP0R>tF3eoT9n2D+DmA&ozjsq;onNknOO)M z*t5HaipsvqVR89{e^kvzu$Jne;KlJxO4GqWRps+Ey~xp{8@8=!28Ko4h4mtsMN*8# zc*z-tGZOU8PQ@LxkgnC(2INAo|15dq`o3HTK?*)$Y>1`g#EtIzEALIikuIuXHH#zN z&Yu=@o!oBF^(B#LQ4=F0Y&d}8&5~sd2U&)l@U;npA}=?63)HDi7Q;wvRW}=_Vx7N& z4+!y>B17`A1cee)GEoWb6szQE8r$uW5o#xF6;Mx4ChP>vxR)zVoha#BA?@|sh2)eB zS`mZzNhL>kGXyr)kX_4QQ=#95zmV6KSfF~#6!P%j5D0zxr&f#1$pA<}3U)6kD`sc4 zs=CU-ZFn>u)*ct{Z27ZJO)K+BN+TlqdHJxR&6^fu1d5#h1y0>Z_9fp1Lc31YxDC|g zE2{!+(PGF&V_$SAJ7ngW7JI`AfZiB$luuRptqTiRCcarS8IJ(VC?Xo%iRq}xoza;H zCT8p`KnGD;pP1mw0{lD}c|2X5f8wXH`s)-$M-`G8f*rdQmF-FQ1i5#ue&SYMoh3o9 z#l@-QSB1gp5@Vdk6qId9MzNboP7F0;LALJZ)#V$3DXUC-q8(Yz5=>;XFwBeJn}Q@Z zYrlOWh61ehO{P&mlts$)u!yN=!iZ(zcNJU|uN1i7%=%F32-0Fqq z#qWZGvEFyrOiu9hnH&Z%-aL=v?SCn}akBUas;`Ie$3USJ%e<)mwJ6U#sPZ)HKZ%o| zO2K=?`W48NL84Sj@cg4J7GZ@Fk%oVw%!8_ms~TR1>R1MrOLOX9r##GqYb>CI^B3f? ziL1C%$kxwWZRgoHN|0PHTIJ^5-ukbxNEn4P|TyfV`~cCaVwM znRMoDIBg6OjQ+Y8Z)&(IJ0Zl3-Q*4(fxqGO{61rV{~ek^^~{AT}f=e^3iT{<}^mx_~zV zBa*bRsXSdEznEw}8hu59yff496{1}-=LsZHs4-Ye0MtsX3IlXfMn(ie9$`x-5$Ng? z`h=D`R}|ktY~hL=nY~B=VimG7-7Fc=C`U)~TWc3LOgb*^5qW^OYStAy9j-tGG9QV3 zcy8D_5!`MIu6wkd1B{df=DbR9aRHg-K9Q}HFukPDVmuw?pt z(89BEH-;`LpVI!8P*QweN!drkcek8S-m}J@Q;ElkXK>Ex=p&q}4VPbh3X0CX;=++1 zF?o`1YC3R}_9tmxXez$GU0z+?%FZy$I-Vs8cufsX5^GW2Ju+O-T<46Ku9gmPPi z1;K|Y0w$6P25Hb(k$6q4KfV`6e$>3SOG>pRp_XCP|h%H{k)DpnR-ebbhjEo zVBlam!7Y$|vSN1WsZqMBbU|v8Sg>MLzAA7}`-R+Hv^&M)?x-Tn?lY8eK6=Eeyd&d+ zMs1w21eTVlad=^pi7U*JFeO$1412{_a(UV{-4TJaFsCqKz^Y|}tL&XJqCE5DC8EiZ zaxN(MqL7r6M6eZ12O2!nva1!c1t5|*biJqu?4iy31lo;=CAxY7d0I7c=`tkR|kusGWyV52aiJTXR=FD+EmWKRmE;(|yZTseZs z9V4)HfRufz2=zH;f>HGpo7Nx#MbljvB1VUvDltAY6 z1&>xN@w~vG;9>DYL6LW)5L!&1Ur!B>Q*6Xj1Lw^uWv11;lg|%4B7Ae8ivBn6fq1T+ zs~3obo$Ik~-_BCOYFfo+Tt#LFjakwPV)M8bRpAYaalA3g0Bszw_53|1VM`JPw0VJ$ zNx;;&YDBom^HBe{wFFyr&b}o}s5a$b<8SCF1-m=VOr>2SV2#e5z%F_Z9MqW^(_hJ3 zcN}VS+f6sO1Z|ATbVZpQR1+rRZ^0=Il_x+HPrrTa6!P^XZA`$!`oGb_Kzah&LnHEM zTl$3!NT6}zW%7(_Q$rV!5?BcTJiH4|DoZY~oP(GQD}CY9S&mO{GyohO)w}T z9m{?pDzT?V<0yB{OnL|ZF-}r!fHs2NJ(E`L&{--$2wVOZqgf1x+7X0Y6i{gW24~{a2Ud%Z5vYZfQPNjvP%)kMXk9Vs+OnUq*t#UH4mxL3_?Z7AeNB z7+`gvDz8jmrV-jA$(A*#rM6Kx0JpWrZ>m^xxs1wJrb1g(1eaO*g+rMXQRTjeK1j*e`n#N39lzcMC;yFwMEDw z^NyunXRWsqq^K{nrmeMw+7IDLI&h6L3Fv7UOpw+cVF47ODm*@0rKrYMTHVUYA2Zl` zi#1d*n&^!e7yOdYe zrUr$p+?<|I7n!-oHO>QNCPE^_bW&-g$YcG+DOMb+_V7+ap)Bp}G4px~BY>&?Y<3jS-qHPpvikGP{~3)8zEP5F>}o zY9=MTqoadO+Q@?26@*9OCcJWFe!V^9B1oRZ zxhRPTS%QHcxPiJM;3a)2!d(kPemL%$dLlRJKg7A>pSy)xo34;P5S=;?3!g~UVxJBy zRz?UIoh{&+E<0z1raLYpXS4rFt8DCGfzxro*ovjW)RQ+autVvlT{HpUC@I5eOtmy zh)(Vco54}f3vuO?l&sPqQjDY3?`SSa<%%&t>-@2~aPs)}iQjumV7TVBjPP(yRSIz) z&07mCCP6_WodpmLb$j_5j_GDv$~1~Yvn*tbVk{9mCLguoWrFptakK(|3W|@83ZRL3 zRO3-K+7d(U_(+5t@T^#lr%7r%}R`UTX;elW@RTr14v|e*!yDE zqu}6eG3O3Y7^S3-C3eXn$C5425`iZ&nEqHb0c8l_<2K zUoL{vqdYEvDd46uAB#cNKruT+YByXd)0YrRJ7$6@udp3>!}L~!VV=7=P1L_AX4uhA z+X#}fKFM+1k#fbssRS-^97wbG0Hc2+{;OAQusAd{^w0W}G;&zZ(~5{^^MW4AU8FX* zfQ$i;5d~~f225H>f^mA(5i}!q(SmDuP)gKxqrPn>_N__nYD_i1YSR9=N)-JWSAFi0 z_>5L^4Fh$7i}HGLp%NY=bhiepwEX8-vj*t|Lp3|89K}86-#=Q(eWT%!ps{$5K`7?b zOi6tNX_8DztB`z;*sRH7 zf-dHz$#S_DPDJEM7%Zyi)^}jwZa@%+G+T;8}v4zz^u; zCKgGR5$E^EV)0lWj?y&fhFt-2+zh-0SwN+g!qvSGfw6hf7^;es<~M%e3b)`3qu`2m z(2w>62*5?iwVGl3za{zZiQ`cwYsnl4F;ch|sWqJW706A6Gw?2rA)1sfMS`<-E)HgJ zAj*Ni#YgO9T{6;*u6azUBX1Gz`ZH{69q zld)>~Lo%G~7ta%&6Hv&{GY&nK)2^Y*yf@KKk6?8x+zq`UFJt*IN#2^WK5(v6A|AS; zh(9JKuwtVQ<&38JRIII=ZHvzN!Q`%7ga}r!LgS4KxU{RKgLKZ;MT_Y5_<~GGg0WEB z_U>Lh&X=T(Z9QljlE)Wp;_NfoD6n`qNXfS+30?HEy)G6g4ZNO2m#gPMReg9b!OI)C ziA)`d!rq2>LTrqb=ih|oxVOq|+n1clpFK?5qoWS1nR8DyjpSl19fi3`{(7S7$Nii!!-&XstnwdmbxV_ zf->hm$>fewm@~d;-`kp#cw;o-f}A%8&Ft|!3gRqg^WvO_asEAIYq*m~plE!|MCLPi zQdOx%t&D?`oKo}XgzU4aX%UEhI?uH^Wq4!R+Cn(r!l+irH5p}PoP{!{d+0bB4E{V) zP>C3}s8L_kIEw1INTO@#oJekl)lOe0m^##_)&QL~NltgoqNcMMio!IvMQ|ixvVBK3 zRi@)z1uit^qSk__%L>}8-zLPhH5ZLi2%?5&qly9l5NNd2mnw`d;|9JA<5o75YUts? zZaccr;&d8ggbEDKX*y%v^Jb2W{~#?x)QE5RwVY%QIz^|(S6<>&Npj@Yn;(f@KzFpzOgnxEax zIy^U9e;}7G+2*GX6A7!id^k5~Mq}AFpf0z(Q)W(?EHjtar5I_E4pI$und&R8zi?cj z@LR>;%%)vV8K_9o25`z#2eZp&&GD(vJ8rCz5hlk&+KxLR9QaXIDz#7DVH9i8!kW-D)wg!;p_tX=k~ral3RT$)uZPeWwb-&tlgt zG83AL-B7C-M8(2VqC)ke6&FO(mzuSQEs1|?$>g!JNvQgzF;CrZ(+wS%YB;-6bAZuC zPFum8d_*#bAuq@d^BiTRcnz}}riF|$*sxHSf~yw>Yq>yUY+b|NNS%gTv+pqd&e)9< z{c9RQHGoXJ55*}TZzjr_l>oObLc=1zCB4GLNa#Y>3`vKnus>{L(ZfWYu$!!0f;H-x z3EolIehimvG-M4~sd`u9hfXextwsMIbjcBY+PDi``HCATag8LbjQ{a4kX-S+U;Z3{ z6Ef>2ZqJM({{c%>Ohh-COlA|s}hPWOJ8L*t~oa2l2f7z0{|o$ z&rozVKeft?Cyt9PKJ$Rv0$3U~hE%)Rl@%vR4zD#&3|ZdQR@iK4Q4Vq#08}Ky1N`K}88{1^bMIHf$Mr``g$`BRuui$(ZYa%abn>qa!RMZ5#5^DC2uo6B@+2HJIG=2sS>oI!wT9y)sNslYj)c0X zBD2h{l2rG5IqCWAlkBPl*WDvq5;(ClS8pBpz`_c-D7}m%0uwZ_uN60oEg38Y_@Xi=Ll`T+YI1#sD7JUWUyzIC)W-QK zZ@=!BBRQxP5@X5@Ir4lgV_{|y9p-^oY>=Sb+HA405^9#vl20O0$pOp4zha~Jq@HPE zCY~kKC1&LXrW7B=8JJek9k&APF+BXDZs)}lO^=1P95c>B>N2ccZF=E(AS zcS5l#xXE!+2dM1hEGj_+IQYbAiZaDl#1thgl-^{oi^$kM^WbAUWK`5!D4ojAya#z1 z*oAr}hXkcdR6Ht>!HP?`UyrVzPCgh47Fjwk+8vIk-+fxmFD}8C)UB?|u6J_7l;r#s z%|8|B+26yb?0qkQ}GHea;1XvMbC`>dSe`ohx?ZZ0Ujn?&B=;C%h)pN|V& zLDF#eg(l>Sj)KpD@UQ)3M+=2rH=Sbmr-~mbp9iHD5*5TQU}>~%R`3l&5>ZwrA8Eqn z)Bdh^`vB0~5I0Je`HT1{%PAw^;*9`e0wtvhJ4(OglykA&JW+Cbg|X`bw-!e=ai7cf zZH=xOW$v>7gPvQ2YK#KzBfXS0_^L?b)A}8Ba zMjQ!Z|ElUfF2nc~qw)3h>M9X|JI>3Io{eGto4!$>ji7?b@k^^;3hbni389$v7czNA zv8jaPJS%o}cQr z%oD?jej?gCk>kqcb0&f2F1^jNlzcq@lsP9Bs|cnUafuUxjOX9fHCVTR1{nrjl#RR(!{A|n1sozSSqq%jFa_Yf*y=!g`s^Z*7Jeg zmuTyx6VHQXi(fMEsl`Q0F%b)H`y3vuuqc3{q0U-!T6Gwk;3Se{SxKdvqnHc)oFqvL z>=rE6L&>uTp7)AC@V(8oExDe~4M` zICJ#)GGM}KnRKJMpcoa5L%T)u$}cE8iIwtzlIEkF?d&tzEg*|8#wrZk;gwsJhiB34dKN``30 zXylZZ0Chk;&5Ci@yjzcJ90hURGmmZs9|(dY0|~P^%V6q?8f$+B)|@=)+4qA7Eh)-a zce=6|0>W+oW|CQe7Q?6T)OaxchK%{TGD&_5Rmz#_dKKUp8$$a%gbFuJ0Hs3ygIt|= zhAzb(M|d$;64M2Z4W28B2_PD!(Oh-WfxwtIuYkYtskc+ERbA-}9H!B^ z=>tediIF)N_JNW!f%%MyBe^uYTUfYn6+&IsQwMKDJV?c2I41~ecY=lqJsFo}@5tAV zW>?{LV&S@*CPb2UDo!^3A;t8rAF0JZX0y*>j@fd-C*4BKT#Q?(#uZfLed@{JTJ5@p zH40wlMhfSpJkX?JxfFbPM%bFM(XL8q0nIt-1h`C3eLcbSBL|#c$??Sod4i}|8d&wH zjX?9*AeyRS;&Q2EURCFA=APZpp;FF8ElHG{6==e z6GlTMCL>PxEKs&%=!Bfq+=(lVL`xt!u7X@Y-fTelL3?3Me1Ngo?q|^;!={Qx{63tg zfKf#bkX?c!E9yn$V;#X5&J)~;o6Wx7Y}u`+g5`?9Q^;kB4p2sFzCA$+%5OR(2H%&# zjhpV*JL!-%tIbsnBkmAylnIVho8*F^AG#w6Ocn?gn_IMnJ9}L@l~=dDM|;OXa6cjm zkuS3fHj@nV8~h!VGoXE@O!|-rnwTMxYmzR@Mj*mmS$d$6OmDvO1J9(S?m#L>2KT2i z)5vkwS;1ghjn4HRbQF1O^Voc&5U6Pw$c9@;RzXz{+}9ph!Y63NVX-_9LC?>2eQ7y7 zV@QQMyO15+m1k73(2+cKwxY=4!bruzS;%BLs3V{PyP4&@qI(=zX5uszRmBU12cGUJ z3MXOr1SovASH+oigE-glqT3sDs$>@J?bsgi|Wpl$O!PGJegKL_p`om`=9SE zNw2H>ozstk7{mVNN%Tk(2cLIOZ(YzoQ%>l^KU+~a-y<>phLV^E|GrWL{mm=&Iff;b z{N8&B=;M$537i#zocPg=tEzMR{WJf!0hAQ&km~&%=(E6tjT66-6;I)GH@ugFh!O-- zn|bu9>^NZ2qC3q%23&d9nHs-?h+!Cuc#^3QpVo@F3krv7kvygQRH~+bW1jzSLEAXR z@?GS4R)(=yCXD0-ScHd_i%PchtF1=w->{;t|AzgI?YrRpIaXPRoO8GG1EDUlWe($I zGt>sGvQjy!QDmJXgN*VCmLebtum=VcRFmCt)h{1urf-s2x{lnfY;|Ebdd}H?$8bZF z0eVmO@sl5he_4QZB~=KBz%BqY;GLkp_@&qwSi{JQkK0qRZYDt?_bW^Y5gJ>j0)`f| zk8@@7kIpt3;j9F;r~hFl3^w`74Z-vO2NuAZ{#2nK?m&v3SjI|GIQO%MsVOKI%DG{ra*OBM=Xl<#7@C{)LE62oL^* zWi6;3-~vPWTg*6e!QE#$`YgpeyGCCV(xw6Ly3aJ=BCg%mjB*>8!zHA1ydJ;XFXP7%=gHn6rh-yt5$fm0RAS)QWJ7 zuzc7B82p!pXUHA9ZKJnpDxA6IjRD^cDYWNHOwkI<`IUcivqF6`^K+HxQ?)LP(Y%Ym zs6~q75xome9XiQHHR{(xP8^3tzzzw0Hpb#6`v4I73{^&C=&HhMyuYPU5LJ{wmWoKe zS5x}!7V!y4O3?GXuDSq;I;t)`9LmbevA(oq>adHh z<2vm$a2pz2Ex~tfhH`7`u6I?$$n)Xv*`fHDkFTAO*4L^==qiLDN z4TOF*(=@rKWS5$EQ@vql?*#Jx??)$QDy?;MPrnFj;MQ31?7wsbbvLxro=MfdD)z{U z055iVm`Z96DRskB>qY(4ZQZ_0_A@NKLFrzl_UFZ0u7{FeJm{GA&v(&}%cp;Bi>Tev zOroX1?3`vX<1kyrqeb#y%Z)Q8Dk79R;gp3$Gernpk+@2I@QcM zjj`Ek62K_clF5Jfa9){Eu03Zy%UZHXmnl!eg}@1EQ3!J^^|n~+k5c?w6sF@B;GuI(S z!o{B8;$#9rv#`i8vHal#lKs~}BpD4Q(W$}bhy`57AH|n)jWkw@lkJ2b_!wlo-Sa%WZdRKhr;bjz=R>6~bBICDg~oBt{=PnM}mu zX?FG#1g7*W8;miCYyW?_TE73}Hrl4R+otE`DM5)#j5#ylnfdH%mTU!9h4;#|AlTWqdD)Mf4G$5ut4S_(U!V6*ZtE`79q$%Ear&Hkg-hay*3-s2f+Pt=SSeap+ zbSQ~oonS$Et+;|vO$6kiEMU%!Bzzs4#Yl)dDZsgM5DhFaM;*O!1)Ixw=Wd9?51XJV zU&7X<%uiuK*6gr;|-JPD7mWW9)x!Ov| z@FxnMwsSo%7AbZ=orjle=Z)=MSWEUeD!U?#V`Yb*JcheLt@LjY9pjA?_-=-}&Wb2s z=tVpUrN#-=r7#!G(V8o0U&t|x=!>8JP*WkQA;0y3==&x8RN!d}e@c3?LS!+Tgh#gGsP#&6t6_+h$HyihqaIt(6+v?uCu5DCC8lO%*@Bt+V~ z@r(*$Bi*S?sI6H&I_r9|FyM7fAsWlX3zQApMi$TJVa-gIyoZ#o|4i2nyvF~T&Srl4 zRvKyl1RJb8HPD9?SpGOH1T@L9UzP}OUd(F+At_x51vQ=13I$cl1Vn!SzuER|M`<~t zNNBx(lR}X&4EEo`e{6VDkY}}7Y^(^5?G!mI6#R6r7BPPYivW#bnbV~iiVA1D!!>$o z9Fjvg@>!)rIQkcw@t-oy`-iZ^p`W#zJGr?Z6sx;iitj#WJ@L06HEyEWzNw|RG8m!W zTtU)EVtc{EmoBhvKZ(Msm$<*55p#?V^TTJ7K7JIAk#q5XKLMx=_ixB~dk>S<$Dwf2pVgoZqOP=P`??d{(;xq$TWwxqe^-mMf6d@o~ABfiD$7 z!r)($ej$1z;9>3j4{`)#g!vFJk4s*jMcE5*g8G)bJ>62NcU{KCSTYa+2uwm0OBUBC zz`_m*MG*1iHpo|Cg#}?xMiawQODVQf{Um!xEj(IA=EDdzS@c0dgBgeLNkqAa6 zh~UHNSPy^~bhA8o}!@d!DCeUIQK=H4P+T{u5MR)I!;^!VSI@U7UN5Z z2p61>fONL5J3JJG`G8SE-t)hFO1%3?IiX4V!KT&W!0I^k-*>|K>FV0@CHpSJ(^S3} zAvY^Fa1M6qZYbR#KrXq5cve0NfFTfM2aeqaDCJQ1k#A^_v7MsLX zC=TobK^BLY*JLV}3Z4;1)db_xmn#tGah=4~FNV|~1tR6&XBovR0XE2BDq#I-Jl zG*~qv_`Z|DnPUY#bxFK-LQUL&^_g9w)R2%4mwDg0r6* zFA5UEkgG&S&w?q+mP9OosV;)+cO+a{p%W?jzlB^GLQ5f)Lp(AzN~CWwti#w=Y5 zAw1|Rm5$KCQ1mPEp0Lxd20I4to-okeaPyUr#|Kz2@`q}wrT8x*J4xPfKmt|*d2ZuG z4Cn-jJ{d;HaM1DCRWvgOS+r4=KE*u|89~T!aKdjS6hsx4{{PL090~)lnIa*X#l!x? zPS_^v;yM&oX|zH@ZOoqFlCl-|B4$-=FyZAH95vxJktV+6(iTZ;P`(=W(0j;_0!}aa zV--nd8kIBH$|4i-Frft&DnfpgUng0NMT2J^s#mzNw2t)3>LiHz%G%Lr2>#~p266jo z{O>NF-`LH~{VB-u`6=RC1BHCKv90Vwi0v<3&>srlcVPYe$=tO0%Xzuyj{j+mEEyMN z`kBHdNr^Qj6cP?@?HZPAVZ;+bm;DB_1R0u(gHM2!_tQ0@#nySXT%pRSxaWCBj^@mFd9m;D5(3mfPZLS{O<2y+L}g`JC74 z^QWbEBCgGVzxid_fk1$#`DMl1_j~QV*2mEc>D%{lK~pDp=P{whV&#{>^IW((qFxwIpLex zS$nQlSD4=?yDN~pEmy6574`z=8}GAkxrRTN{+7t(5|S_Q{$_uc^=ZfcKhoYZD6XjK z79J$H6Wk?`pn(uvgFC_9-Q8h;;7$nckl^m_?(XjH&MHDHr5~s!4o~p*d_PLRKoEFfM~~C%UM&&S58ShG z1r@qGUu2ShWF;j`xEh`4Wr=LJAvfBZLE&cqJmyI8!pwi;!J~Q?4SWB5-yf3vvE{@% zfPkmPj@SF%xsk(gV_yDl3_b^nxQImndna&{_v38g8aYTTrp*-z4^uwm6iZS3fiye# z5mxveug-bp#D=8HgD1$p{CwRO@6ZY?S5Yyra_;ov`NKatyFzD5>lDCf-*`Tf4BavT|})=e4r3rqIpE(3xqpK8ARbfE!Hk$sYQs`YPh?yjqk!Y0%6KJfQ0*ibMiiQ;sHh_lLfPu}=Z>Cbp*wS?~ zGh^O4N4a%wJX)9QKQn4BSf(ZDU%*MO9=W3u3nW@(;a#2Dy0~p{%R#$^b$t}`?rA$C z@%O*aA!&1ECf}8f$KS&YrFbqH7FaE$3fT9&VbruhBx4}Ehb*AU-D_5@_wDk<`sCx} z0#N&P`h24%p+Re0dqvafAUubx~f+(0d>cq(=I zNvbVcW>J&wzyb8ViFnxXmaf>V(`&x88bSSWI-&e1Ky`udg<~m>B zF}>*a`Ykg0^QVNG?YW?K$kUWtrn!Kzmj(OtunRNksjd%%#O-z3cgwYeXVH1*rTuoe zLwC^;0-Utd@{u>W>;~avHLg8(ydGseq*Y|0UR^U1g__&2GaNC9MyFZf!eqLx-#i*R$&NRRX>e+$4=aZ^=b_g&7{3m&JGryFbhb9unw`OAAVl)w;GWps`gdMgZu^phT3>cs zQM1AEmeYeB0k7lqOD74A?25dt`)2uy8!eMFI<>Mf-Iv4bA98~Gne)p!70Vs@ICPUh*DV)V}I@JGLpsU9as}4{>fiCB! zyO!G7nt<;{ONG~7JVyjbcqz9t2d&N|Nf8F0CyTX zJo_H`s01LcHwWdfgI^)O`>FdUy1u6y{KKsUS9)kSEi3Y*O?v|1t(-J6_hI15Z5*9x zOY-Ww)U6_$2ma44FV7r&m-XchtsZRwezFmrX9)fs&QQ>9OI8=Ycg+X&vmLHhMxaSO z>(a)9p}Y3ufpw4L*V!)%HekcY?*m2)s_lFEXDfP6JqHWkTRUpHJ{b#;clFgZPhc~7 zpYwfmy$3;+y-jKP4eh$-Paa@Wug3g-u?wTNsIRn^gc;)@YhUXU`D9L`n^S`c?pyy9 z=UW7)m@6q1&*#?qDG=Jg{mQIcIDa)+aMH^3SzYJ5j%rwQGI)^-F`CG~=$}}ve@*m) z-1={LKO+@iW$Ib4g13rIS5~vuwtuI-HQk{jxwC7$=ynqTJufeRfuyWD&eeVW8p0k_ zl6GP#H&^P)O%nAr;cGVut)1uZV=y>=KyA)ix6UcQZ|m*2Zp2)|2b5e=s^Y3DLl@b?vi5$6soNR? zNnt3LinisKk2~HA@}$6teSfzz@Manq)Ysv)cqg9qxS^tA=c~WlNagy_!ry3N<>&d> zx8Ir2gU-9)Sa7jN1kT-IdYD(BishuTy)p0Tbjx} zjIgydl$tzUe7v_~eX7d0bHbNZ?6mbD=AvuIOhjHI+U~Xy0kRn^?B#2AOV?@gylPj? z13niv*&9uFc6twIv}FUHOfs3rAhYu-BEn1`Z~JM-g(x>6Mda`rw&waXAxAN*EU2g%{I`@ZJ*;(K~SK+WBu4f}D zv@O^4sjMlPf*WM3GN{jOa^0|LZ_4*dKaREh{5zuHYIG)Mp~Y2|&3iZBRJ!}>prYw0 zF0+66C0O@qD3PAD^`h>Fd=qKg`P~C}B)`t*?m^f6u&BeXiS>D^pQ@oHP2i{-#;$9ljRG!ziT3-yRbRGiK(#V|E}{L5^X<6w9(#lGrUxyy2WPpOt=}g{EgF-uzn7gGc_X$5sAw3COOkeV^sWb87Vd;w9Lfe=g(*8`+AM_7gwndz{dXjuJM-x zf%_L80gn-S0WXNxI6pWO_%hvl+@)vjv4Z`uRMBp+vtq~jlJFqlElSn% z2tKCOX{>X(1GGz3kX51g67i#Z(J5>B*6?g+;7uF);?mIS!Pp#EEhpd?;Jv_2K8(PT zCm7g1`E*hNW;$$aIfBsxK7$V)5GsKD7-^5mXOB569kdn2SDGkdUWpx zn2V;n6pq!k7bOVt%z+wkYqg;QTvEPnC2-Y6CO}BIX8XF8bBtZ#-Tcxs2RSN!J_BhD z*foHknwKAR9@ZPcn`^EogZ*k{9pHzv#Eujos0seXtX%VS%ci5{3+VKM>{WMrcE}BM zqiwc_2cPBhiU+*kV)ik8t+*ia*&pA})O)ozJWR+hu4sP*6Ipttx8<$Kx3a!odGTJP z*RNfj7hg5--vd>ba>;;(Jw-g?oO=mv5>owyg@FyOl$4WsQ? z_u9vvBFco!Fl%$(^t-*@CPf&vka`_i9FOnhyFbi)Ov3xa>4?fkGt3% zKK55#iFpD(2h9_0H$hpD$>%(I4uPk-u#Po|^!ZDCjQ4fHS9v)y$ZkJG!`%DPY2$e$ z27CZ1Z@$wypt-0lt80Coh0kg`J2;uov3NlrnG|K}DItHIpswb}izGhiXnEU?PTxR! zoN^%vJ9NjOhEZ>+1bD~uwDcF%AfXhZYrcyN(bPdMJI8Sz0bMV4o3$p%`s#z0ITO}b^#(LOM_4Vr(BBOl zf!FXZSZTi-mCEY z3GpUauz~>q35-rhoxUu{f;y>V=inaX;?^bq1+ta+__to^0oF6*zk*;xIvk(@lKj^b z0DUI;UWhyh@^tlVcnvX&H?OPshyP>rSUdk4c8vOkK{nnKY(r?lkX34}BVxd?ln@Bg z3(1n}A6XdFpo0KkG1+nR4i|~r{93&XS)r(?d*RN zYE@vM$xaG-WcLKbt?uRZKVcL2oYe>pJJ}e#L(h$?SlAE=5ADg~1l{c1_3d7AV4BvY z^)ASJzy8Pkb@0F7Uk5AxI(S0c4t{e`Lr)-+Av7(k@o8qr{fV0~EKQGMSqk;T_I^k0 zKW`jvusH-AZkQKTN+Ehn@AqNy5Fi~L8E?^Y#My(u?_)y*t{_BD5FxhfJ4l)Y=HK7} zeOud;K@ghmQrGxLNEjsRKSmlZ`M+Tj!RIT;8@K+2C(W4t1Tv8KmWD8hKt^Oz1;^V@ zadOLM6)3?FX{+ASbcTO_g$;qcrSBP{R9~?Ams48?sStt5by?8ciAwl2#ArVr0e}Ui z{~pROh-w2Lpd?B89YBpl{+ICI0r}gduD^PrVmSd=@PgX_3F5z$`hNfr2J@FvXn!g7 zcla-*b^yk6ej?DZ5`NCCy6wKQScuseHh+S#!eAT!Cq7}YW4m zL(cD=AwV}Tyeml34&5+>nI#Jr5DNh00RWQR*HM7aNguGF1-}8V-%|D-TAyjcQeG0} zjnL#Q0BShDUcfJu&;JWz@%`Q=p&>vfj^ghyImeJHJDgxjp#%m15n6(FXYXX1S_ptN zrE2*xj@<8mA{9>#_{ViASDcKutoiRlQ9V2X^_n3ad3kSPeIt4jWMkKAq4!0;6(YfY z4Tkm$BgUK%xB?x#9Xt-**wKtx3WRNBJ-+_ObQt^nHw30YVRv+VV(q<<2Z7&Ip?d?+ zS@Z7d8M^|=O~9;2MsxK{FQQeHBhm^^nh(|B(xA}=Zr{=BLQERN?;uu@x?BeD9l#wW zEq{6B@W!L0WO+(}1gzh8SU+l#r+z^42v!(0`FFtISr-odImxW9fEvy3e={cqm;Ap# zg1D0vhQ_u*LPMwB>+L@^k08TPAS0Q5OKnCI`Pl)V?FiuF=jlf?f zjRTb&RC%PlA-xas|1lq6Wd0kDpd>$nW#cH?f!i+=vegN9uOkuE4zJh?{{kd#TBHr> z?UCmN0Tp13_KZ{9AHzbj+#g4raeTmfb}l1GRBm91U@D}8XL9a;sLcbZV9kPsiX{j1 z5Ce(>cQfG0OJw5g0a$4NigXW!@}V!o?MgQ)6?;uV#6Jn(g)C8Pp3z^uV0Q@o$0VVA z{%^?qMSuH&Lp1m=(FER@J%5pvS{SyF<^K9ljyQ&r0Pp{4z!u;?MA`yS6Z-|iFkI2i zLn@YWZ~Wq3Kpo6{5TJOc_;HL#(ry@ z(Ox}Z0|owL{(AIZ@UKS~e?58$dusyo=FtZ8(T{%$`gcv?OX^*y_$L5YcY2ysrf;cx zd=9I~dVEgWqT_~iR8I`Sh_Qen(XQJN<^dILFi`)0mXkOL*^t;e7esb9^q<20Wf2(o z#X|K(67;q@ye%;Q%o~gT8~$YxRyYB#^Hb&0%kJSwY zFOU{)2{5Eu`>o_EK1z!TpoZ@J2rc+C8sr2?8~Xn@)iNIRGz%sEPN#ojv_KvAA2E{n zzhWc-z(N$HgnARBU5NZc_&y?438aH>a&8V&;syc_4QBcqtG%^psWn%Ot6!;Sm(CvE zvy^)XJVkF$o!AoQxn4>#1@L*jAM?ke7E6H*nlFXrNqPSi2*nBut`vmiAjl$V*Y6khGN0vC(Ga%YNOG7SsG^EQC`)``Xf8x zNO1>#TWlzqk_iGCA(u>}0^+hFN;#I)%>%)Vv^+5^METH-|fL zi2+zh%|9p2c|VEhFn~JCzxxdZjc2%BQH)bv|5O?Iip-IXaFMmM8+92Ffi{-EKJcv; zR{J<`rp_-l8PR0hK#lYdeq{2v!H!9Icw`8S4T_EH<{wSb8^WT>1DzWgxV;Jnw1{}J<%H4Y}<3}wgGCpDBRh~$aEJIRL`A;F|=4MRt&$h zVBSxDh92NmA`T^{-{v4x9Kej8?liX%1;wze*5cQ}9APN&O*2Y-I*#OJ&@$V6$d@g< zd5r0iqmloMZaV!TUkAuk=Xdzdu6f$F(36c?!}Ap zBOi~$dJx=cvP6jdN$RhU?E5JOf<@i39&8dk=}a_VLxk{BG%QMkFW-O2bYpSmv<%!y zhHvXa-Tq`099 zJ}s>Pqh$RJV~kLLoYPwYu6Ej5bk+A`&nT<5EpI>X3?hv*I*DQ0MpG4uTU3ll;yU?< z;W8F8l*jV8_xJ=hGHEao-zSp{n@Q6vn0sxOd+)+lXe#v`XyssO<+As=oQze9{EO&? zJE^-+Xmp@UM}^euH)Etjjq1Bezz*y0wgbHp<1k1e*LJA9vn0H8&6fV%=1{Wow}RHX7*OZ6e@-HNiwH z-))E+FccCjfEc)zFMBwV9D;+^Yn~WCh(Zs@?hK~pprzmJFxRlR{V^9J#&}JEyU*tX zHQr>iEfTAvEn|nKYcF)jhWy(x=a?dhBpQE`kPvPB+B)#9M!H3LsT@ba-6t@>1!qG< z>8+redukJ1RNq#Me@8vJLl829ID&zO=j0xP?p2`U+A`CJRGAXNkR6mLM3*f0Yi8~X z+gi3xwkj!~t|?QUwpy%rqU> zsM?hb^Qw7XKQE1U+v()=EVSKD#xzV!$y-e-^dwl_zVDpKO7U5Ie?~`*PFH2SvJ287 zOpA_7J|k(i^FGol45zS!24+I$ajVPo6?OSms-+KD-Ns z^A3*UdB-`ovw7wq1^=+Tn6hWLJO=^o$9&X`%(7uhH#*}aHf?>rmAzjDLzCY(X&nT1j0n= zTMS?b5vT+OBn48My(8$bNY?j9lVr!bZ83)Nw1=Y6f@yQIHZc7evxVpwo)&vPNlGr% zvnXsV2i$cY@+@s!6ocd{d|u)?rU`ZuzH$TC4E{ z=RWP7atgdNLWi+tShdAE0C%m9{zPUJ%RM^;myL_kSjS=UXVFT^Os6z;=ogAzoB$h4 z@E7veCEC}fF?AgAG-^!dm`XR-uHG*w$hyy_=yu;HvfC)h+|It=N4ESTdzq6x_K#f( z6+$Sk?(?^Hn2zl6+xJ(nr=wEDMQ?z#o+u2GipdesRDb-;Le2up4tmGbDnTpii{#0? zsaHA3z+e~;ONNc>K>lJFh;ulEuN+z(htR`V4UH1qhhIt)@ntA^u-|BuvYMGGH`E|A zf{|fZ4B&?ojEC7`WjDz00DAOpxp;KAdc5kr+F8BYQKCI9pNd_pVss~Fawo}IQ-V1s zp&ftH(K$G?@me`u!M!TcQc}UqSxqMbuX?T?1mm_8$Z@WmmQzvi{OWP3=RCE^vvH-Z zrQeXZZgS}{JUOGS4@$p|x9J)~BPfUe`fgz#dz^86EMnm7h&g&?DsAUpv`Ob6cXjw` zXVRa9!t3+9%SVThp6~86<9)XrXtcLCy} z#deGPvbFX7tcOHyVeIG(>XluvDI>=zuSaOD<&M>5>ufU9zl!Bm>rndm^|4d#RqJSO zyEhU0@UHXmF-MBwzK|K|4N={EtKYN@5kqjDBE;f zar_iS+^0{(HO$h1GK{r&nt^A?mBzWK)Qd-eu#N3qT%~WHI$|%jT!`$o6WB+6c#!#o zq&zg`<0{FZS*>Fu>`|~WE1x`cWiE&;<+gP`2jMuGIuJfn-+i1D@*&%VgVX74Ld`1| z8m(evbD-aB7ZST_Jy9QQvGTsiMAe;l`MfKNunmK8eOeQGnQPFlo-PwkIl=Y4DJ@(3 z)*beB6;*)Nmd`Es?6GO5J8=h_n6bJB#l?I4q*>I`rp*Xi7FLjA;EL-J4_3$*VAF(8 zvzy^Z>ZwDS7hgxL6eY~Fz`57e#X>>FH*%iV(7-ZneRj#SrsFRtp42QFI0gs5BF0r| zL)SHdB6`$|K?e1w1QpK(4pr~|;l(GyU(m}gY2?D{VzHMIt{E&~chS9GANLy>f`c7D z2QXE_qpjIM`xq#1$P?z~m^PR~E&RoU9P4MSf*-WsPn@`y75O%mwJ2M_FFvPx?;4^A zbGBzq9i4~g%O#e@xo}g_8tUGM``rMCjr)V4$on5)@9ginzF$0Qo+7~^I25iF7vr6g zj<~H{!Pc~SWN8r*5h@sI1SIr^TLZQF$-9c^7ub{{w`0O~WwWfjPx8gj)S-X4tBz7e zLfhfQ(@cjvaPR+6<{2e2rb@$o8|KxjI4<4tue!ZHx#d2=fIc=zP;;0>I)+}R4Y+(GtYnk*L)wJgHRdtsQ&0w=kXMm2uL5H0JF zc#==rrAu+8=em55F3*wj8*N(M_U2Ts0`J(0(BG+Zk~SZRRm2|Yph=Ham0cXgzA$4` zR#kjP5QZJ;`a~OVE^DobHD9wS-_;oXBiRcLpDSv^ltNd0#-y4bR5uzCi{bs&?&gs3 zwT~jAWa6=&u0;M2h1p|@5$!QGnr!N+C89MO+ZO_8nkR5odk>fKX?m!xRnw^8*&m6Y zGlxhl+QF;7%Y+yId`|n*JtLa$h?|w~Tg~J7G5r!1^I7k@d2)K@F^ptnf6l-sL66O# zRv{%g;kSJy;-%ck;OGP{Vz1QMi^)8aM3&ne8?FKJ_?){>pwm=&66WaQJ1b&y|5KBg z@jn!;>3*25VqS4ioXR!7v^0mqley68=mNrTdVbaKMAWL6A-0T{yvtdruOq7Xy1mI- z`)zQ1T_Bea`%30T=CxW8g7eEKzTXF$sc_W49DhQLmAJbhq_J@P`sVAF7On@k%*t-> zFsCUki-9-KFizr44h(WMd+bojK)DP`vI@&=T1}!_N}lJTbk9Rweh5MR>o*qaSz>{v z*QQw4r)ZDPvIHFEno*e8sW5Tc(Eu0E%(6fEH!Dy5R-L|~Refy(t-f3DG0q*O5DcQp z_4+aKpO=qFoLo1!ZraBV16Xc!d44HaNRJq6(>)~6y2xnESRV$lDtahBWoKd+Vtdoh z@#<~T>HBwnw7!Jz2t(+CEK#g^g=BuLfcgNsj1s?D6(WxllB<)lIaCihq%yI$gjdwLLfVg`!;hjaJrwWyOLS@Sc)jJ6X&OWhKu;89 zcFh_b_M$PLAM<}F39=hFB$ul)hmlydkDkEIYu5N;o>I@7NU0g56irFK$Lq8XylTQF zbSCY|W>`LU_Bx8-)Igisl2?>RlpDF=zqbd|b^M9YLj580aQ=H{g&F1U4AiSlCf_KF zI?aQ^@ioc3&1|$c1wZ#AMY~c|^KOujtiC^Ph@XeuiZJqJYir`W&Qo!(Lm`Q8s~#xv z4nrHTu~`>X2z%0#6&EcgA`6*C-wTAeh=u=bX}BdHTH|Jt>F%D;l%VOg;d6H<`dWnA zTexifuv#p*hh?U_{ay+p^*cZOMhsn?FFZv?+*-@wnzU#aqCARl)_2oqi`N%3UhH0> zF$8+ZmE`%}RP}694Nw&W6d&N8!#j$CFBro70+tA}`g|tl~z30uZErT7NQkDC__d9{0 z?VMbog4ktdy}t@RkivZ%J(!L`V+6;4@KftaaM4TmcTobvu5RQJ(H8pM&*>1>&rew$ zY|f|cbfwzmELU0}DjAE2)n@5IUJLlFFv5nIair!O`y$#d3#6HA0r;I7hf6b8eNLS3 zhFZM-yXO<~W>$PT-O9qqsyuZ~`F0Z}aVey`qQ&+tAKxnUVs||?;q3Ku(-QSO)yyhw3w_#}09vlepFV#A7E9mN z%?iV~_K6L=v{(?iZ}fC%j`-soG+mgrX+W|g&nhampTO!Xus>ZhO& zTw%Mc?O6a<>Q603ij{!zAa~nrxwCnTQP1C(flxa(jm35&+yj*cBQgw$N>Ocf$L8$z z@if4@-^?|oBRYMt(`@aVgTr#2wU|Rh(R6Y84aCG!$SZfHuLP>GT;~MOU0p*!(o>%i zQ)3-Zzw;%r5%1Jq66%k6{W+du1Hn~%OGSF|rt?;`PIb?fObP=^8o#I3S!Bh=+SL*{ z*KK>SEB^?Oy8R54ZKw@1eObs3+l~)ab?ciCXJ)O;Q8+jy36@X_Cm1{Df@RV*WAJE4 zw^PRL$}QaD9?RrrE01^o^1{BVaEAz<)Q{eYK|}KPVy*q^l{BkKQAgBYn|_l_b7Kt^ zP+$;|^~MFvT^&>V)k>PG{!NNM3Bc6B z*IvWXb@sP5>LD6o`=^I&2sP1`Y6VkMjv}!oBMYGvZ;P{tzr-j;bur9w>hZ)* zmPo`1o!;&UMjo4l4d|rghk1?67D+%hIdXmZx8v%TxQ`THk`!;@)BJUaTU}-=wpJO1 z81Ft~9S*HVuNWDRW&LOB*!QCjaM#ktKKQw}Eo`t9o4^C!;wtA&Z1}|rG z^&|6u)W!AD^AVQ7OgJH%dyL*P|<(FlwQ zdBJ<6;4+g^dxt$F_$X70bW3qt^w^~-KDQj{EixdAQb0-)5n`mQz@|10)yB%`gFkkA zI2x8eu=5TMJVi+m^7y4E_UcBUXj$^TfEOWLrTNc(e&dSbxnW+>$9v}Mv$vjITM)I1 zZ;=A<@N1-Q{ZiJ4hmn(f8K#;fFjiS)*Mx(2y*8uvSVozXC||LGLq^^G0#bL-3tI8o zZrx4J1%%Sdqphv1LauLOJ&F&qy1r5b{YfaOA>Tw8*fQko<5l0$x{J{E=k~5k^Ao0s_q?mKKB#77dPSVAI+YsGHb==}gdGIReJs6_@J@0Zi?!>0WGV1l#@ z{fJA}XUCi-T`q-+@_4{}l&qH!q>rkj z{HyK+^g%x|9FzZ_i6Cuiy9Y8{m-t8|cbj4y?*{$89*)~K3fj0o0|eDBssTI#yoVy+_&Cu1;6w=sq1$(`L6``$M1%vA2jH+8TChSq0niD>_pVN zCsBZzjGm8M>JkI$$VYxI*(euUgFFwh(4b0-CIwqPl85L@D+La(-gGLj z+0Y#=Pjunv!BqRp879JJ`6+xRH_x;Hre6tRWZ~6e3qC3l^NM2>eT@h;<$S3+k%SRb zDgI^-sk6an6|?CLoHu6i)7A)%2u!%&a(}auJjaWJjd|^=!z~C@LJ|_`CKC!9W68vu zI@xLiYhl)j$!eHbQM^o_oCoi|rnMK~NL+BkI&>IlJCJ78tOfX6*fj(Xge#Nla-2m% za)t!*k?w^Ufby4`B1nc=10TQ4so|;)rr!^_g9I550Vq?df$>jJGIA zQv*#5&F|yq4|Mqa3NPyd0wO;{wDN-d0mod;ph%K}`m+m+-aYg8;YUQOn3g$b_rOAO zKC=};R}?c65$}|sym$$M3|Ij&Y{BpVt5|&CEa3!8f6qt#24;S}-u+c`4#At@LUM}r zSiPRWW~(0u1hXjC zeUqzTts65}*)5C6cf`e@2mfKivqxZ)Z1mV~D8hwE$AZP60$}pS#;MYD)Z)E?RsSip z$cGH!@!!lZc4>Ca1FNthjV`gt8r0t=B6qkeNOBHZQ_{2L?!6ksB3=$I(?0dfYTL`c z6_M)pIfdmSW=u6B=aCnO;tcG5yxy(2byH=TGhi41uzhAo3O zo?JYK{5>d>Vx?5Avkhf<$d1RJT+oDmeS6=QuLqGjCW@H0!Y^-t%eVXDbiSueOh2*n z0U^KEcE*%9x|l`W1!K$3>cmisd!k!Y6`7=Jl5G?^DwoWCuuK<;+fmx7x#vy&R|M#=-%8CR`TbnM$tm9L@8^g2B(Mg!J_cc-dtI!&w*QEa=xU=ac#6$R&^e~QNCVXv+UhcLXK+18q{HYfk?NTR zHwWGJbu!pd4DK4$SqQmhgqrypQ6*hAFUaf!pfY#=T!AW~Hf!8`RR_ILsi$P$Q(Q-8kJ9Gzz;U@ayFtc&qmF*elX?9iLsjvChbm7O~f<7gWE(A zVQ@eTA+xW%L4Ae3aL57vaZd7I#9%?J$`aG<_Wqu-ic;@Jb+%U>gLla;m3PFqQOJf~ zsdBmNF>tVnd%f#>&&cz;ua1T(JTiM~)J588~jq0=} z4a#JabNaI^%L)jm0Or2~eG+>EL?Uo^wqP)S@ytcF;9D&z6yq#m!t&B^j=F2Nd?#%6 zMV_g^+YTDP8M5%PC-2$JYLqMk)C6CY^^&8IiRegabxTEhUdyDWPf14p&_4)7V_i3m zDwao-Y_m=)t(Pu6IT%q}^!)-TUmAPxC%Hs1)BP<_EdT*8a4gjSYyTVmeM zN)5O~rb{Y~Y%s}vPdn{?2&LfC3y4ZZwg zYvtK2ol7q);g6Wl;}eMToWk!&;}JLUB4an5!R6!9fBf0X@12Lm7=xmfjMWwqdbXYC ziwANa8EsTZmg;El$&30VLUFz91ss}mN*Wf`x@w*DljYNWNTx``xZ&CH)c5)a@`Lo1 z0_K9(Qpxj&qp*gyVU&r=ZezPrXhs(m{lVs42s4H zI}c95zK{6J}}dvCIhPn(}C46vhB#0ERsDQM57iR9-VIed$W z86V`VN($b@G`sJ2GqtOA^0ttu)XosG6!Fqn%E;ELwid>%9pA;tg)wi7g)5Fd)aHh_ zBoKuit*oF__}2RFOR7(vAT|3!k~r8k)gF3Of8xjMeUyySqaPLPChHPm+h0% z*2IgW=#e?RBdbhqV0et(0%i3|@hfy?iKxznBl3Ksn;nRfq%Raz)xxco+73O_X}2tg zp8G?!r$}@!ZKbULtDVFHFXznc`v6{*Sp**^Gwvu!m0H*r>;yD?=sVYursp^$*p zs7KBcpZUUnJrtg2xvo4^Tz4}q>XaMuLFz!(L~{DeLiGgi*Xpa>I-t%GH2YMmRImn#>X^pKu;H?$y!jL*V&As8tYo4kDnAyg8`9(d4Kh&r};(Kcs0`_P3Je+U*5pJwn~C z&(IZOBO&a(a&tXDv85Np3*g>lZ4kF{fjRf>oyO9RWv})Puh>#wChVe3$wF!#e;sFf zw~B&_T$MY5x!+!8V2yF60*^BeM}-t4ru*Jhz3+T8-R5b=zk*M$X)^1!`|^E^54XSZ zsMyi0Y`R4vlu4{;@&VuG{A8V31M0U>>d=Uv3S5!-o0%UBm>Giho_Z#B7hO;rkEHUf zymhHdGHb#2Od(D@62g|77gxT-5zoWKeFiiLw<7BFofVTC`^RMp`eX-rIppG@cVJ9_vj;jPGQI;V_mX(vsy6 z8!lnz{QiN`hvS|^Jd(wsDm2me=LzpF!V-56MU=x$EydB1zeF`ROjDO09Z8pZ)@b{K z9O$Q;iVvgK@2I?H|FX2gv5HBNg;l&&Vbf>v#mX84`Jgil`b1c-t|`>GG+O2sro%~u zP!;-As&X2&@h;iWd{;vIpK7D0@F@^~;tqTbWYe=Uk5KjB4_{uBC|G!5Y-_9Hg)L|U zxW}Z*09MDMj=1gbKffyaDVtwBy=;2&(A3qf<)EjSouqBA!dh0T7X8NtXv6t_#r!nfs0ha2pT!h7ZkKNBH zfbUzyVWnuVx%3MMsDq4DD{n)!bQCL-p9YsOD5gS`2*q11Q^^0j}UD!u!mUC zR!6|eqmJ>1g0I@YmVl8c9Xb%l%DB5x8e&gHc7#f+OBuFP zZD#V%Gr9$DVpKL}dRh)n?|b6Kq%W$Jb&SlsHAi|j+gs7vE(0VuF}YS*PhuHJNkQu- z<=>ackNHl|KVri37vFSyB4LTRBKOhG(}xRReie$>*(jZ%K~`^AV26*(Y8&RtPr?rT zMZ!87s*W(`uw2rokD^J-A+v7!2hsf%=H6?*{|tyJjzx|~>Dqi)U{DrhLaYwVmy;u* zmcwb^c`&Y4}w;n#UBlH6*sAa0jtzSoZ1PZ{UU0qRBa;GC+un(Q>yP(awRW6D8Fmv ziBkONxJ`)LrpY!}({nI8$u+j>04|j&d^Xhl(8gD28v8-2|8vwuEsV`0}vEEX|Rt7769myV}FqU1y^~cyFPROzTKkHDs#( zox39c$k3?Clc!~KVWASNG4jNR5ErF&Zzb=<@{>s69j)SQNwG`i-$wR2st=`S{*1qO zm2!$*raMspOsvP09un}_kXgUuA3wgI*U8ST;>(&?!M_B`H)<@8TViDpjnSd5z{BHx zKHLp0sI!p33RKT&`C$5!2Mvf6VL%zx%^ve}8b&L12aqJxTSuH6LYnZZj!Nv>c3(-- zsWErNd01I}&t6=H{SkJi&jPw8bI922`CKt75kCiRWj=c}BIa!Wew4E<0p2`izmCB^ z+ced>H!$Cy!_FH!{NycL^Dg7chk0|Kisw^bpKSIMEu+^M8AZ6hMHNz_t(QQYs@{ zBB;4n*h2>xe|00```%2#hV*3a2Vjxm{5=H2GCVd((+LWk2|=ex*lEdL!)wC!e0l#l z7acBx>2ZE?o-Et@n#k^bWY7w)s*>0Im}>C(T=sWCF6Y~LD~Z&7GRDPw318V0uGmw` z)7xYR*6OWUTc!4k^t36kF}n~sZJ;~)SO(}bT%{I|?O|jeSefebALonA zXb$2vLx@t(+}N~UZ|I*1`nF7YRb$ku|NL3!J(Uc!i^DzR$-iI=Ql#*f{M}8+4&!On zRL}5kDoa*zf>*+{n$9^i6E_%9fbq*c<6|xZ5XOiP1UD(u3m`dPP-&*-c6LhLH8P#E z@Y6#@shqX%mrzExNu3}x4^P((MK!@vYDQm^`^h)w*On!W^T6FPK8!ljYVCcVvm^N> z*wr1p6_B#%;$F(S+!`(s{K%8wAzhxWbus_j#&-MSaj#}wTJFPx%KN7SVTgAi-~Rza zK)k=1*~@{g2;ulu6ZJUtX^LTl(!eDW!vDW4rl}y3gu~6Mim}IP<>Hk*sdhB<4=34z zzBBQ-Ov#6C$uZZ!b*#*i;ejX;ZnQxG?!HLXj6D{~0B-K%6_A)(ycZ8&sQyPZ8FK-{ z%E>M)RTmF#oTVBEhd#Z#%KBa$ML#WKlR&(s$u3|uoov(@OXu zPENa>&U$^snVL+B&f#TN5$EF~B+?JZ3cOLNFFB5tuWQ?LrAEZQ*?W{RAYY`gP2&4z z!FSC)Rl@@Q0I4eS@oirflA(V4U0Pgb+wZV) z8QuI_iO;fS+xG9jdlfMb{@`f35507_Fbc=%ITJziOHRbT3u z_?>9bFTVLo`x|~)rYl6a`xK~cu&xAx{xmXU4JAvjJPc)j{!Df{i{_dLT6h?-J7p-A z&0%cGR-2{rL~->W(!7cFZ|}^7Vi+)+OmxFs6WR%G0Je?x0SVSdoLl1f)T_VUe&(Hu zmkNfsB0}U!Jf%cthBTDdH%O2G=zl2{&Ts_i-o|Qa2G4y%EZxg)BszLNTUOm0(QKO>oeu`=6hR;f&Kh)6fDHi@p_V!!jgV@@UdKVmLQLCS< zV+G=;)G+c->8`Cza!e|zm3iejQ{+UqtSvni#haPLUxAFI+^Js(@l3Ak$&vaaIhu&M zK;%lFzV}7phfVqY&5boQu+@I_tbU9=*)J-fww>@ff2i-pI^iEf$E)kX^ViPvXzVD$ z+aZ3=hyzKMC26dfS>V_B^TSQP8jpAUH#t$CyZN^{*3ppYeD1c^38(U~Q~zL7G{-4( z*7+i7VlA|nKq##*ymIR)ZHC-H@_Lb9ZYq`+u);h-*6ccKdLm=3;T3ff&%ne_?ujs? zeEuU{Ky>p@{oJbZri%O&qIoxyxU=s9?d);kbsTqQj-WqYfsBB-&gGKshdTls)m(S8y`#;Xk$r@S5iX*BK4cKGEOY)5 zV@WXIC`TwkA^_sXlUH`K^T1|Xr=tPiSS%L1&|L{2cPGnl$U#pZ13OI(+7vh5Td*-# zY5gK?()Wk?cJ74cyW@caKcnEE*mdD^^>_XEzqKL5gIF;^{0ZFi;=}g=>I)78a-ygXDNa%B+3vyAnc2D`37Trd zHy|PQf>Sp`Sc{7fQq=%x9B*?8VTF*D<9r+hvvD4459&Oc{rA~7UyD5g;`rnatGN5S z1FquHWH`OnTI|eKZud6Lx?t;=9YA7aFA#8cSh$=?}q zlw!kGI_mGyPx3|udJzE`b-+N8r2fGLg`YAvfQ|?Z@gSsg8jjd6_;vTqKRcz`=1((CfAbA+hkr4AzHsC&^*6zHL!lQ#CnCzvypu#g1g*r;1jGEp;2Fnwpulj za@}turEipybyv#j1fA7CJJgfWh@wO;7$S}NgtEqjr4JC}IO817)~=VGYXnn^Tx0_Z zMs#+W3-uuSnEj&iuIR?WJ@dwHaj}q8P+eTq*&z!wS@O*2mV0?3S#$>)A1kXetaBIE zPa&(41vBWZG4W(AkrNLBy7caTEnY-E1V}mZotw>dw{&Ez{MvofAK--c;qvjL*J(tK z`Es45)!!d&M+1yNJA9&tWPC2Mc0xe!Nt5IXve(oYP8wG&55oDsDgsIh_|Nz*%7 z%s@Y_p1wKUMsHSQdYES~7yN=Ax6zSKt=CQF`?JZJ93|Tb2FtKmX0Gl(7Ehg2$jLl- zUEa{+cW@A)zn_*(Q(n`LFSCm#SRk=(kE{2S<~o{MYaG{2uL?S(1gBMA-;{N>Vw1m$ z39s+UQisq9|BYsKFecMTSW0G1zn)&wbU4*-P(Y=J`#Vb{xmw-auQ^#Ar+nXP{}ZqD z;2_VK`?FuuFc}dAx<(K=oM~+%C^#;0$+Keu(W)OA^a(NZn<{jJv%9OIuN7ARZxR5| zniX3d)ivY_UvI9@GYC*;0m3IDyTQ`)PUuvlNm3<32J3@^@rI_=WMal^yA$8n<-x&{ zxK_szbc)z^ zVVc0p{U|A?%cszX-J>+M3E)7_rHqBxp5kS;zCE<8VF4q>qsh){uqE(~Id6F)zSR zE*BbcVH5vE`Ap8*UOJ zl8qKA1wT_oox@Zoxpgd2^udOsb|5SYk-g{T>fXyel6KtN2&EA)3b>Tc_*JGjbM5N|X@H&RU7M3!6o|Vz)vxLimuwNGunfCB&P3 z=EU_?c{gwd*ZO{A3iT>q4Jp`l9cXjQ%ggo9-4`HPeU`fV&zUy=M8~1FBu5A4clW|g zbuY6s`D;EjkMix#-YRraTx9Ad6TaL8LfUd@Bu+HHqF27NP{&t@>RjRT54JyFm#fV> z`(XR#h}!x!y-l~-@;Z&`WtHDFNBMM#t3#l~0NH0%ddcA8r%-&kCxv2o(Khj}>`Xez z4^M?a=%Sk>*`!8N_SZlqo%*K%zVx#MT_E#-1dV&XCiqL1h;>Xq_}U>z=sejVt|rhN z8g!i?;q65SBmMa8>5=^%P#;Cf9XyxMlF_KwQ`@%dq1f%fCh^ig(6;=PHf<{m8JC3m z8U%!k=O>Cr2MHuRPHAxRlW<+Rj_1$p%Ts#3tjf)eRI^Xc7ft1T&;X0*M){{(l{)^g zTlKW5boJ`vfp31%(~sxJh(8(x3kP}Mx~Yq;IAwo^!hQ<8eHqO;ln)`M_sZ`%8%U*O zT0mMjU*IWDe=}-QBnQLQ=`qtdWGM`HCuF}N++gMxrobFHFRy<=OYAuNVnSyKk?WetXC)DN|RqD z#Ki*IQ9n7rh8CAD%I%ic*qjBGI!IsxO6ctHs<~c&TV>jWxs1je&_qjmeQe@9FCoc- zc*`P%c7myEgsq59yKv3L-N>#)kLbWm+9XiV5Wc}ep5ub(H?$c_E9*q98?{UjQOyZ*pRan-ziMaWin{S|Y zEFF3ZRu`;ktt3_pq~(x4L4akNi1iDIpt>5L0<|luZR+YrX9POfcOD`BnT3i`n+?Uf zkK!;hr;#gaW{B4$!lb-_5KyJVc7nU;@DeJ-l>cxLJAOXnKZHJzM4~SjL9EV3%zQ*n zlha}qUIel;tRinuISVxcr)OAxyWgYi!Db1E@xT@5U#a@a9QOUy=$`Fpn1@5qioAYZ z<(HRPrCp?QajrD+I-=0@$gu^|HB}I|5(oe{%>3sLbBSxpE^{#0&|0!de(*sA>_{l@7&o z7_gQ=g*QZxFwGU}pKzhDvwL1{3Pj1hz^UBa92|_`z^I?JFDOC!l}dpsdd5O;a1&*3i{4>+wE7OD%NZw)vOfmWYUbpvRk=gw^Aq%SkD;3Ls=K%7qS^aGdvV-bji_16YTXRmJtpnE(az^eMX+ZnvYh98hh6q=Xle`%MRGCKG~5 z0SLHT$uFa7TM`AG(s*v#iwXpFTCK{v!k!9KV7|Ii4(>d2jUeges(on`e0&mj)>vo- zW1&rCHq@%kR%1W~11f>>v}+f#VVJbF1L@?6fMfu$H|Tblb}_%9(UB8!7$bnMK?))S zvS{gyGon9kpf-yhHqbOcJgWzmAJRatRnfMC@WH0LdEqoTM8UKzZw@PaQZ!hWhi-{m z!7yI#*`h_0ZfV<+Qqd9;nxi)Gr#0C?QC50v;WPOLVoyrSQ-T26Y1HDT| z5QemagSBhSf{beU@;5id!3jdQNE!ugP>R@;92;hxtUX6^CRue9Ew@?Is->R@c(EI6 zn~yxwp=2e#1z~+jN3db(l%;Red5#_ANTn7Zn#{H-Vm((L8Nm*jp@c=z7B=BJ(qWWz zxz0DcwznGH0-PeWv>5|Ri#xRo>jR)5Ubp*D?(CMX<*;r}n|FR?ydpOs^J}KX0Vf_k z9z6_Og!Xs`A^;w;g3yRD2JIS$vXLgoc5&TNw51acKwdz!=Vlundgmz_AN{=lhR|Er zICbCrG~4@*Dcx0hV}1+AC21Yt6gnI*WNvMI7qcwJMWI)cZQnFTh#z1oj+{@QZqBu7 ztzr<4ADDm~FoeW_5!hdMbfb|}W8z@aMS=z(vu%`7N)QRmArs|zfJakEU9K69|2Mr* z7stC+7CvCoY4F3p*onSHZ9m&Bzfbw*KF{cUXPZJ6*2QxE2n?dmG`54#z=I*SWc5l8 zWt^s&Mq#Y-Ou>&svEoOMn;vmIpOPO7cFx&d!?j`X-ST zHILgZaXK(!xC^zos6G1#_t2NWz~ID26pQt1)n9Qe)ewaw<&O|LQsFGW-taUbjq?eH zuG4dt^g&~~4-W1!c;t=rYugJao9d7ygz9{%ovmr1wT^V~9MY>*jCSJ?@%wz7{w#*%HTnZ7--Rc;BsFmm7`?kCLWZ>#tT>ljdvu z;?4M$cya#dn#y$*>Noq*{P+n!*sM~&z0I>b{0*p^Dv%3tW%{k2>)*dgW%^@EbapNK zO9r;iX%IiQKe@Z|;(~6tAKRZ?dP9tJlU1))&I2>y7$7l7S@C20lfMu=;H*PaY8`|; z*m7bU=njzMXeE}|fi_l^yZzyhc~=j8A%HL6zX&^J$DB^vm)8@TyEggB1tr*(hY!DaApO$&xlwzd>1jIm6eta z>QR*b29p0>&)C*W9cK*Zj0((dv6SyrS@b1m`>LxGd~k8G&!37-!21{$C3a~H1>mh0 z!o79ae9?~eoc_C$2QPA0-#!lz0$swf4BEhiKFQObFZO%~m zN#@643T$IAv_{LEDFa5!M#0C_g@D0p9fEJKhRZX(r}b_ebOfdA{P~MdUVrjtzMV{>EeaNI z7Wn-!)%d`5DEigcu1W+lV0ciupM?ETc#RuAEodqxxe+AGgi#9vHk1eu?4QW@R*Cl_ z^ZXwf#6vMb+m}&r92~)Qnkho3rQe;F*bnJQY*btAv`u>R7ep&@2utf?5*yOD*Q?vp zm)W4WVX7Jb#t)zEi=4ySD5)YVYPP^=Wq(ai_NQtcz!K&w(ED{QSUi;}4GDE1CYb)+ z@4rl1A126q-Ed!Jq_o?K;+#=-#$RNi)rD8dWvJtV0TWm`I~#UdAB&shVsfHZ3G4Z; zlIw8AQueFu_T=c$cBvXR=z!Qs zeUXLQ8H&ys26Vxe>tU9>&5$1$u`hiqPohu@IAypHF5E+F;!1mNjf)TC>QrD8J&b(5`tQ4XTF%&MGnLAj-pb)4>*8 z3|-keiqFwwYeZvx9>2~wVFE^ey|mYWtADgSb@M840sinGaHUC%bSiae8C>jCK+G7XA@ zH~?>t9Psi^+5_G(tEA(e8z1UX*tNryxw|IxCw_sr=}Phg1ZRyTg5WJDDwD{+gsg5k zTUak?U{WGuAV9P-Hi4?mR6!8G*_W*1;J}D;gt3lh8*^pC07Ius)@_M_e_+f_`I#l{ zt{o|T=05UzG#p4c5|M7X-SRXP+qAh8EV~nSRuuSLY|pj9IwzZsdi3InRylOfQ>W~&-6DiuU>T8PLg;yu_7sFWB?f^5 z4B!`8hb!@>_wNt!SG%5`F`|r<_==8E2RPpX-^s`s~=ib>&!r>S$(2kk;scHO&lhLU1>XPF4r=<3N7S{J;3!y4HzXWR)IO^#hF+eSl}L2PosS=qE718Mrq5439B zoaZ*k#^aFQZj2kz-HCQ9@|e@(ftlfqMUn+Wk42*-ouOr?3NMCw8>S%A(3*MT#ooM-0J0N zlJiC0Bqhh>XdS2JK!C(MBYui5^m)2KK(>vIbJuHy z<6irnZ<}beaUQ>7X{|iFbHejChvf~_R2*vPc_agTUS1Owm#xmkF_L!etE{I4vy^V4 zZB}xL^n>((#)}o10^6SnvMRS#5m`V7i6ZRbR6`49h}BNL@|L2=v^CZi8QW;~t@!1K zY>)~!gV9Y&R+{gaK8A$>Ggc|A?6Ssak(nUn*wYB{O@EkRXKPT$T@(i4_lGz6+id-5 z`IZ-}4yny=HL^+R_ba0VmAD-BA*aUUxP{kw@dH1Ucu3#MLtE~Yn(vZSVWfAurj%9g zH@R}YLQDipgr>7}90akG>-;lMT=n3^ViMhCo2Aa?n?TCv;lQ@qq{~z!3UcJ$bf(u# z+J;}R_K;lGH5@mR;6~>(jMHP{GZ44^O`!&i%C=7#CUU) zt`I6NKAxVJ)rt_paiG?Fn>VQ|r`k6&W`9un^zEe1|3Ev^%7jX$5Sm}C%e%Pd0CT$M zINda*>C7F0JI?=@^7#G(c*&#CHa@|&)?%ULdH?j$yCMmw4Y7eKZwR1Ip5Y?o*z_0+ zJm@1k-3ku&NkF{^1X&;cr>@Gy;Gb*>kFx#FtWFY`)h85dx>_HKQitK{=)(vTa{1^@ zq$Axq!mq};|0VBkxuF}3BNTnME>li5v+Mag_Z>0WU5VNselcBJ=Vvn&1m(Eo-kz`X zn!fQjo1eY*}sZ7^l@I&EYq7hi|dS_5NSa;AhOp~d!(OGQ~9c` zBDqcJEZz_l6`jJrx`ozjUi{3vr@zClHU49PLpp#68puKT@VugxsC3Wj@(82r&c6@Igjg3BMX5csO~m8!d92wO%nr z@@eK9XcuCBPLTO299YLq#64IewjE#jnV_ie*%1!`0k#abM2Ah5^DJFNhvVo-{fO6- z$&va8&Co)lgGq1mIzP|XIkA7iRlZtfMWD>>qrqgSKBtfA4kb$V>?U2}HbJ)Y3&J`- z@W#Z!N5{v3vw%PO6i;HJX|$n#s~MwSA_+obuIA4claQ#N<0u*vh5Dh6#}UO%i?;th zbUCxS4i$CBj_=CLz=prK(wITQij>Z3Gm3=LY^qru9+(13g5kk2uwwrdYn?81Ij_-Ij8& zN4NSTEywly)iZmBC|1X(>_A98INQfRmsyVJtAQNYVBGYfzOhihn3R*vq@E!733gp= z+I{}-4(u>R4B;`+w7qK!0jUc_p=k*tFBXmcAb{ehLY$Q-`foIn0yyUM~cy5xqM5jdDm7_C@o?ggqRa14>9SA3Ajk!T!={jFa7N z_uo86cE_~vZ&_={#yLKndX7qj1}+iQ9!lUQ!ec(eVC)%fR5jlFKv%ZXD2^dh%z~33 zF4)r2MhA)?(jvcR}8o{PECdUM@AUgYcbH+mR&TxV}TugW{~`|PU9i{JRE z#hox@uJY91DC<3(gS3#}s`ho#>xVU3#(=0W@FOPRn+jLR#>To2yi; zsR*x@cl_&*SDdX7zsmAjOo#QA2!~6)K?lrF#E#^{j?(DAI?tM9a-u@fk^GT`6UmR3 zM`a^_VU}Uz&q9GeGLE^E3h*)va3Ck=v3BB1w1<@r5J3nXBK&N1Avs){+1pf(&@7MF za9?TVcF3?995VJ{W+E-bX<2Yg=>drzWtQ1PM^EGGI zfPQSYMoDYSj-VXeT){~}mc4++UYswzqvq;wx7FRp@bQg|yj^oQ>zFgr+2KoYM~mP& z#!_{iu65u?B+q^FIR{%yKIhb`5HJVE4YluYY)vEA{r+I*^+`7I<4O<}#rR&12MXleH8kmfiC3h`d$)D>rtI8@ibN zU5|-iiB{eQ2TnPxW>`;>K@w!sztA@h3F2-w?MgJ!y_l;@`ezyirW&D3#$o~zFwP}c z*_2i2Q7=N2Cg$rX*jcxo2_lFg_c2( z04q9SICyBkiH~;!F!6XJyGUQ^j!mctqk=#g`4j!rEUYFjoqm{}caBItF6oen>UUVX zO;oxm~H6>RhL<}bg)g}oSx>ywv3~4-Vn{cu&~xJUw}Kz z=2q4D%qnZz%p?c)m)~t*A2ICYP)c>u80&TfGStf6yTo{D7~^+DH>~6*$384O z7i-a8taOWQs-Dy+5i0aX-%4h<7F05gb0t=mR{Xo)*x|SD32Ha}oI=p@fwOkmTZ}-EenL1V{!|$~5g0yOM#1?Aq#Q2jbi!tZjX<(*QSEz4F0+f6Q*Z#&cCFadsaWw{9SyP01V2@>>?lO>RHSg-Nz3FdFaNhW}hyB>yw zbKdeo+SYp|NJ%j`@R5Vc9ve4gVEj7jj-BcEyVxQSZvy;oobhqvi%!!9uj!0?TPVeR z={DLU`^@C(JKReBcZYwO2r*I8-aO@>-@b~Do;m&z z0e>5ytBbcuk55&0Gayt1DE%{2@DHOSP9$j~u_q-e<`(fPw}?`SWDta*j@lT?A2`vp zO1f(w;JOyFG5X6xk<}qTRfUMtb@Pc~Qa`H@yKhf9!)oq9i03#HeQhJ6ylF+Zb~R3(O^~I< z+{a_6Ni$f}EfOkirC|gCj`}#v4>f;F)TgK;ae21m*qF2vo+)TZD5b&m24DYXA*o8} zYFpCm-B-cW09gnVgp$q8eO#WV#*j{|MzsMi+z_nDv1*5~Mmhm!F;cx8Yv3hcJ{3E#&%VwyHN3^i)Ef6B|0INfjU`Iek>{-im1Bd)YkMb5kcTNb znS{+zTgbvYJ#1N?x@!Vy%4yFI>Ea_^*@pghk|QD(`5OKb3nVB$AvTy$Uzj7wa<|fn zI;Ki>H?`b|sap5@KTNn1Og6%nP7NFq-rl*Q&Vo z$j?J>2CT8rFJuCC?d@*qR18qf!Bud;eHx^8HtTF}%(QCiy2ek%;CFOP^mf7Yw%z(h zw*I6wYMzDfzp*M?L{VJ3IX_LYx%Sl(ksGkdJc`l4vKd`2S13fLNmIy?`YHL5mSCX} z^|Dwfp8_vM)PvNWxu^Md~ z6@m!LAfaQDP7CBtr(e0YBu37vB;SS0!Of5C31nS}hgEPE89A+KMa<_GM_q>nyNyQ7 z__(}gTi~qbqiy5uI&{V3GI4C}&i=EQVcQ6CT!O%Gy8rvN?sUUE$>n+TVn0TtOWF{5nux+3Wx|t8*Cv;^gnee58*G9~(Na!d@_ zqQ$b^bXhZ>b1;}Wi(>x;lYE)BcP5&F(A*%lhG~1>*?Q(v(eZ=1cVprPM#Pdf$Pvw% z>{~iFGnBNvM-s(rwmof}oaA&Fmlqea%F@KiaolRjbpP#JPHAEuu#&=eV?MRph*Lao zix=^56-(k9ja?;3m`2Q*FztP!e{pInc=DC&6}>f!q1vDBEpZ)kMVdJOZ3SUyLHE;1 zBBjeAHr)Br=8KfjV!7Y*pQ#M(9gxC#yGBMZt@u{QCRqkR4J;*7GsH3(#c;Ee=(%uB zk$1hox?0JX^l>{UV&fIndPFzhxe>0eb&Nt6qVQ=n1?T4mF}%o&yuJ#=umO}NOe8Jn zq=)i8NfoXt$!N%{<|GD8wNO)*R=-zi)a83}nwm8)8Zuu;bz@X4PYNOK&1iZ-!*ll1 z24RNF)+W@_a#0yh-lqN@9=3enM@;?q%++*GQl$JNck0yRj7%O3jkHJnI#g8 z!86;02yN6!6ir98NF}HV??B{{#6!c5x7(JsVdY0+*~#9Says`fDXpioRJ4Z8JTC&6*V_Wmwakt{G95 z$eO}DAk#~k$TYd2T}rf)n`O*+88NObIi6;x2p zUX*u5OqDd9tGMv{8!qDU>!R0^v^aL8=8)QYdJzT3qj$;An;?*7zgiCLu-G0hHRCX}h>@A6702@OB+|*rht6wvW*HmcHaKe#ked%# zAmLRL7Xam4^9g}Nc^CiZ@iFaE-Neu6hZXRDbbPF@S~>tk4BNIU)#?x`rW!cICn|J0)5=(EE)< zM@#~fBr7oKpS~#)HaMah9HLSZ-$>YdA|>H$u79iWkx@qSbrLi|+nHpqq89nbKTL(B z?M>2nHR_^CbhLG(J^q5d%BLQAgz`tV@n`($UUj!>L&y9J2|(MA_T}I0jmx(LXxUv{ z+_0Z3#cYoLJj0);7vn$i5;@tJ8APc=Bx+Rrp-%tdg=v7XW+Drr)y^GPQ`VR}QSE`4 z4LvYhnw-axpKYGeIQ`%ff_K^aYCj0hivG;(Ph z(IJMo36r204QT$K4=a*1q-GG&OecwF`qoT8mSg}AUAreS_;taOdKX}ooU&}XYam-6 z?o2~$o0?-FVVlmQtm`I)gag|Hd|k~MJ4#v^9|S5wY;}m!E9R-KxC`KNOR^uT`}F_ z4T@Uz?Umzm7G`etfkmXoTOKhS z1^}>Zm<@1@brv21e18O&u@&umBD0L+P1{}xS*7P(A(y((oC}Uwj;3>pY@? zFB!)+#LyCZrj@w?09>DOFAjzq1jDq*tEGe*>{^`+v<*vwrt|Up_R`^%^iCl|XO^zM zDc1LJPD|f@$p-|>l&#m=y-GiQtBo7zlk$#U6(}#)`q!q;zDkj~`T~X>pK6;`<8JYC zC4t0UehlP^1!4{&Q{9s5aR`ZOoXFEO$62fsYNwL4=Jf#ng8R)J$4d! z!Hge~S^j@nae17aoDMC0R3()S=Vpu5|HVECzunn~+z=YpqXTYXj;lwx-TJp?Zasy1 zq6xwh>8ue^qlN2S3ntvXqOxoHXZHB+Is*>#!QJIZ;k3iUIgwp=XSUIJ(7eA9G-HEl zIQ%Q-W)nBS48Z$%j8fbv48Zm_T&dVo;C>pEd!uUJ!r2qw0B{g zU^moo&c{Gt-9ocH#v|jYFgh{hpn9pH(H=za5<=T#)6?Mk2DZ?#_WmddO=W z#bKZlOV(bHEND`NGiqoh3lGW+9MYh|h&Gs#>^fRKOe-yFzhO!f-VJ5;{q< z&KQOU@L2Dc{oZl5ObQ9z_YmogxLPt8gt0Za@4f*>j@`vF3HUt1*NhGlMpm`GA1SEE zXk`tg>Be$uRS2p&FsrxQcj=7n)FgOvvW#*8$hNFUW(#a$W*>W^> zrj~d)fLmbH4KsMbt(k2T3MA8W+1}1(P-6(yvGXWXEplt+d>x9>JAaG5lzC-U45fmY+LNgRVycIJ@|yt<$u_rPGN)B|iR|3BCVQQZ zS*?Ry$CRO8c+Q^XOXhe5-LUYbZdC zwsX~zZ-;D)vP#0MWaV@W4KpkdU|1rF5n%@5d>0F?jlCML6d}S#(iyE(-xh(mQ0l}c z^G&MRv-m^htU}^s*`)F|<67cWn*E#E6-8uZ67*=5hcYQ+BrSmCfx-1`;}_1eMeHF1 z#kM5<E||rn?_xT(m>TsrYCxM%TZk=diByvIf)FZW}oZv3O8e! zln!Q$rscF#a$^#LBe&!@2mcV`U<(1>CpIUM$@1-em4peYUYnP&v3AP2gQ(ACVzQL_} zgh;;IEe)ASL!`3QU_gUKNI98Ch`$V#ZCX})#%VPBb^tj!2U5wtg(RE$;yly)zZ^=Z8>ZL6@-XVLZpWC{UfR;_v3pqT5 z(ch&P^4rEh#ThWN8Ct&Rr7`ynhQS1I6l!ZQ)o-)lP{;0VC!Uo5TGkoIvd352YW$?v z4eC&nAIr}{D)*p=%&MWJHEvEMABAw)%6nu}4Qtg0RVj{34-yOHMn8saURzfo@9%Lm zKH&h*k{b4ZZ5)%6DN?gLy){uB4kuk}2WJfjtBC#NmlIMr(aw#4mcSvlG#M6!= zm3j>Za&|=P%aYq4zxuLoq@)U#{Xh%dHAb>wqyXC-Ft$nffIL5Z@y%D?qRA?fra!C7 z>ofkGNe}}5qqo=VAabI?nzlp{MR1^%y!EH|uhUC#N@2ilRasS)6{ib96xNY|CCb9! zRY61=9dw#X`~(hOGhrSJCnLiUAL#`a-Wfg0n}RN8LAiY$ew{a3kF(9M)5~m22!^ij3%Zh6vGd!b8lc~@`^&6|Ty4)Mh;^Q|$*Y^b zTQ?0*AIq*?0Nnx4^_5JVcg{C^j26eioEE1?12slnfWXKB=#xdD8i|sljl1BGMxda- zq`Tt|{iEruYyOo*wyTC)g37^!+(B%*>tvAEf$>Q`^eTZ=b4Isa+)S&v30b>HvI3dD zzW?qOg2@qQ$oVSAK@yAy-U#JXfC(-LwEzhUTWnO}!O#i=JN)|lCadVCW;^q5*J)m8 z3&p_=AOcE610W4mD9`KbCbLhD%G54Ls zh@)`0MFS1+hn;ZPg447KfQZO4eL4fj56h)QGm$9nB4af=j3NPfo=-ZK3u~+eM|n+@ zz2UaO8T@7}2we#dXp*z04Sy|fmnPf9=*EV|rsel1=la6A!YV(yqu3#I#8X9Nu*(2S zdB8;CMz&w4U$p|6myHVER6s9;t>b~J#c)-LtZXp+*Mv;|HJNvb{No~AP1b-BhPR1F{TxU!lq}4*{VV^y4!O@=J zJT=?QMq!n}VL@zB!kp84gO_RT_lbF2;~zM;!Z5*jaJrS@kVt1nJd=q-;ca#zDmPup z)Y)PBYx?#qYZ@9`eRx6ioc36?x!wzjn{CCJ@I3?rkz?dpjL_T_tsn7G#X?e8TP)~g zHbrtsn15%xuNu}EC+G6lwTN0G>T!Im)@j{*Rj%@joQQI`7c?om;ksjuA2!uGHjOYb zAJ8!fh@k(HD5rHSRv70*({70~!he&xDJ$IUhvNzNiHLiA!Q-yq-sLM!&icWTV4QOu zKw?=EXC&E>I89_#g2LmJEA*Jw_r+4@a0Ug!=>`!lp5T?~x1+a{ySuvyE#>uuhAj8m zYWf7JEfGKF``4dM{wq+R8{vq|-h$sXl7K|Wts7iefg~@G68sF*TReL`U9Z&>OQES> zYYy`1R6vQY@oRdU>O?X-Gj{47Z63Wjr$2AbkEBa_#NQ)nkDlfL zK+sEtudB46Syv4Tztx4EZil2>8m}6kfhKAAbg~H~WQD}`#ksY}Lcx9zds+-PTt zdx#2U+S~1|x^5q-`FkfY$h{_(=zAgN`ECQz@F2be+JpEcm$IhFf&8ZN$|@}X4WoNmqp z-h4pxCoMK=lHVKglD&!GgwRWu0qxu(3HQG8!aOwdXNzcu1W4IH)tyISG(urCn&?xo z;lfltS+D)s428|Un%%_K5al}w*3p~01CP?BB&DmngIf#~5&f%D+*>-Y^iIK>uF6;0 zSNXLhO5H0~zhdvWYh5qNObhMq4sQ^<)L%ufjW1v}f2|>+=V_8fcd&h$<6mYoyf{Y$ zIp;Vp0|q*DeVUrfgM;NESL7g(h_7Zs0$?<6Z5)W#k-9x3B#?w5ea}C)TYZN_uqd^( z+ZT;;@c%eCItuVDOX!-z>#Vsdi8^g`!n<2rB2}oSy_1u$ePH4x+D{DyfpJx(<5`t- z%aqrI`;nb-kWd5TUdeUJlTrFX{wS}Jgx`A(-|DxjZmcjSi0oFw38=e*1 zX`LIfO#x}?98*t!kQgpU97xFW|Fti{CqHu}B`2~@puMfMJGYno`OiZ20S&od6s`n*}nu)S}tdXzF zB10gkYNkf-nKzMXtmg5n<$VCOJY&N zfk19W&pkL1|-9P5P6ujaHuIef;4IhVO*n)RVCXf6cxv0%`BCI6W607 zJ4Y;HFsj-V%{2%X0O`R2XJKX>RYgbwWccqqnx50df5Y8}u^_5QRPwNxq-m3nOBCPH zMv`J5wye!O2ldDSX&2E$ndG{~lv6k5(T>A%r0Bs~qL(9?`oTdvloBeoa6{?U z&M0SVwAQl1U1ZVNJ6_|hWUbDIDtvg&{sdQ5d*BNbxfV}UtWB|RtbT?FAOT79^ zqQWIPER%swztMW0cIjGg8PmnIOqK=|jA1FZkkx_?Pde8bL5ARcWF4k~D6F~rZ9 zVH0-CDS(%|odTOKl*;KI-3o-300%2;7pzL{Z`iSbL4tO9J>M`8l!(biNR)p%$->uc z+f*mH6TKFx|HL7|X@HTpZG)c(UO51jKx)5Kbvi?}d=Yc3f;EFRBKSk?vb0cCV*?zZ z=E^C$r+Y1<%?F;T3CTA}in!epY>HJycy6(hmYUYg#CeJy#ed=yItfBevW1YkJh>o> z97lns(v(<(-EQZ%qw#m3u=H`W1GLu!?|G#1S=b>9=t_7!bn3sPE8kKA61k;E2P7N1 z&-Z+f8{d4UZ~p{AoSzAHBYX(4YrvNn2&fr{Q!%*?VvPi)w7E9ph(iRY<9Tv+HKwQX z1mIEYTMD!sZK8tjJ8~0K3ua0AoMwmu!n6UiRfK5GPtFqrMdunE4XxE%FOu55nwM&= zUN55fts6@19=F?CrHi&v@OR-I^Yd~8c=uvHlbca*Q_N20&D>8M7y$8ZZ=YxpPb2+3aF$gvLpkJQU3aFb>_C*iYG0 zifBjf*<^d)=ijbp>`qj~x^}YmYGYQz5y75VA?=ATPIPZER|2!!sTRw3BI`<1FQHGe zKK30|-d&a6Ad_c*`5XZT-`t@D!hvC1Yhn#@2C}>}9hn(X>OHH2=rH>|JdT{Sou-=a zdE{mGH7%=VSP{q(8nwy4q&n6D1<81f5%x;k6!bRFt621FX%H6TRpAArD;)4H-sS0F zzYjeN^yqQd2J6VsIP@a|7#NHA=1}iY$R4VC zF5NW5lJBia9*#M5!^yK}AJUJHcItzstJ|VZ2s-WwRH`}|jXoegEx4m4eO_g>PEDS! zYuEvQ(5QR9y= z<|0VUS*(`}n~5hn>#S_f35e?YuB=uF^g>??VcUijbqgzw7upukzqPQ=jjFyNK};+nqWT9;lmj^>)46Fv zLoU{3y5b*9H}NlKz4@1BxcN78vrLRFuhQaD(v2%EVPNvDGQx*g6JcCB5R**krdbmn zD_xTiLTJiW<&bE2@o6(RMTi(OR87=cl3~R1Fj{)ZZ=wO~E~h3{nLV86MOxj*ZSgLC zUNY z3sp))q++~VqJP;rBOPZkO74m2L}M<2seI{5X{0N=p5}qODMORCWj_g(xd*}}i#Xan z5h01F@I57+RsTvAt>$p1N1}cJ$^voW*E$i;9sHvyS&Y zD5=b)l^wbX+Ww)%vJ{+0IT?9QW@X6w7nV!)7gZv~fHrIwvqjSVK3b_0TaNiytI%5m z50d&3e2uK@!Ku{!7*TZKN9BDCb!Q~jRu5XmADar#n5dgLSZZCcX!mc7YPfG)`$r@8>CDoJhsQYh#S#B| z#Iso2WP?D2j@Sy|CfJ`)htSkW@?UUG0-Wz{5CdBOXco}F!9W-cE#7CXP4<7QwQ2j* zx|INb#nBo%7?}m{rf14yLrm%6n`I?BwNnD0AFm(;$?KJu@N1sDzurw} zDFMZ>Dnnwq65bU#690t~5WY;nZ1Ndpx_ zKppr5z#d(@c$WmH0Je`$kK~X05GZ6u|D|zw1*;3x<}uvFFdN=C?widQaX9Gn9*W2U zNE*&gL$jR0p)q{#c}87T_jy`FW-q$!m)0^~n|=)-I(YIXFF7k6T^5AO!aVs}j6;a6 zoXwj~56IaV(FF74t;GIqRLMJA+MIf4L>sio`0VgHt1hYT0`zaojz#~6y?5`9+c*+O z^S3_*h{KgIB4$X+vb`A!;+6G?naGkXDRy=#Mn7-{Bw-B)41f_ui@e8iq`VwUiI~lM z^L}^}Z=O~nD^haKPxeY@_fv5A0r(YeRrLeiKm#+BWp8p%#ujJL=&r7=uCA`GuC8Vx zlw=P#7m&tOC7@{Kh?^iv7zD8jtxq0gcg|txAZ|U!g*UF#+0%rJ&*Wb1XvU*vY6#n# zvTI*YpE?WEraN)a&)QcsykIoaob81}$ZSOr@J(@$DD;s$EC~$lWr-)8= zyP&*J(X->AtyI8mK1L>LNhDyA(7+(Lp%>G2fMmc{t|g4{dSG~~B=y*>&&wiOKq^kNcC}c* zIIMUSW;8nD?6iR2?5U0cY*xnnEDP37dGH5+t|#<0hPPznxu-?CUSK+H(1WOVq1J2> zc^23eQi`=N%Jn5X@LU#GMNT#>9*D_|MP^0@wIO*$1Sz1i1~NoUKKMgC9hVtbrbV;? z(>0B57nfqHjZr<8>0ZGA$N^Ck&&4kW|H6=Rk#fy|5sKYRG4$i$>Y0Ls*3? z^xV}k6{WLS>5TM4P*p1^Y}V`Raj>BW0G3zI;bx`eW!sfk)UkBV{pyLxRGj6CJS_`q zl`N>S7MXCUdq2rT5o7Iun&13ro(E9(SH@_~aFaDi1KjIH-^nSI45ArM1P@9Bn_V}W z?lxm}XxDh;xeb&#uJNuoP9W-O@ZcjYy40SQA|@d49e zc{kRcL&85oaUPRnnj#p|B6n`-eSBIr)tX%P*F@6ajint6P>*>16$ z+iF%ft+nlJH*@>SAMdFc=S+Uly$HqQ;uxNwY-3s!4ESMlY>wOO7K-EwEG)?Ts`#<-n7T!$)GdB=-4bWkEl~QyR|1Q1odw*~x@fiMJM0Gm#gpFbS8s)V z<3f)8LKOKgfR$lnW$0MUI&HC2zZN?!Y+Vf22rhiD;GJan1Hkih6+o|^tvK-%L?&=i zH!n{(Z6*q#Q>R7ObyA6l;R(Rm^U3+%@ngr2pTB%~Vs30b_dH6m z$5!I#@|yW5FEf)C3}bA;Psf4Tp_DG_@5;rNUc!{=Y#q42hRg4w8W4!p8$VAUi?bJb z2o%PU%!3%_C;LJp5;GdQA!_SOQKx+dw+r;}JQS}OQeX1JbZo52pXlZg@{%BjI8Qqt zDoiBkOX4YKjLynqtKMNMdz@F~Ez={5XX0JPYuzDJ2VEn)Pho6+G*+)t`BfQhpNgD> zHpXGgaK#8K1VR&=p+g%<^rCuq`um$Difg`6324c=-j)>3$4Tr5qJ@t2cvMA;_;7b9-t4}e66CXnRKhneN8vvD8!lmHl&@asg z*%lTm;80^GEcyL+@)_SZ@`Sa|Qo1#O;?iU`1oR&F7@WoseQZ^#X+{) zr?NwWC5}WZYcXoS*8YjfC+qts_D@*nR>KsgFV~vswi=e-ZCg>g1k)MLOB5b0ijyhp zMA!+-%$4pHTDSM{Mk~`Z2?le80heZ&=*XRwA_=wR;_o6t{aKN-P;I ze^Cr`iBgsR#`0u^cxN`=sVLB`>2+ohWC5Vptj#2fJtuNMu~B2{d)C%bQ9o_8VU-3x^i^W+IYz0i};s9PynNtoJ$Tb z;yY{FG9-(5{RGEak1sWA&iVG3(||vGR1xaZDSFRMr(FEq^7Tz;3hwJ9KsMR?djyv*+s=Kj!@S`77r) z&O7I8=l7i-J3oECasK@IPoEz>zdkp<=vwyq^P_w0YJ9?^&}?AW3OqP}Lng-DeBvKa z$w^Wc9=Q^(YYeD_MIy0ArQ(!(FZ3gpMLgwmF&9;qNAX$BXZxg>${)E=nKCe-U3{H8 zbVVa0m;uENe95&lRXRC{8$M2AW9X`|p0EqkW4DEE8?A(%M!;(sX!h(R72q#46hdQ8 z7;gzR1l2{53$_g-Jh8^$M`hKtc7-mbHAZek!ir95Zwpp!0b>lSHE+Uglq~|)j2IOU z6y3w|Vv-{;eq@7{Yz|pRT#Lo>G1Q_^p*8QYON}flWT;`Is_o1E3N{_S^mHB)0AAtl zQjRE>3S5Ap8j{q6Dj9$%03OUCY1|8n2;$5*Qo>3~OBs|w?ZXf61j0*V2}@q0Xjv_U zg_EHQ?P04sTE${X*CH5*X{`*3g0Eq2DMxw3&~b9anp&Rg$0S+~9;r)8u>9NUlVN-0 zZ>&R>!^DbJcHrD7!zB_D@1HfG?m>KP?iUctTQg*A0rk%oiSh zO##BdN%>lWL2cvF3X2^;&8cc!8zY=3J+aU=Ri!$i!b~(#-OcS_9%$WCc?o~G)~X-E zA}d^84%#8Ks;t+!W35{%6^8A3#zJJ9#Bomx6CdV9c*u-(77`fNjwlgMMyuv=O?k=| zFZmD0-(m`c86bX0HdazYZ?urKfCD!q^2V`N8M_6ipeBhMs(B;4StW(k zGt}a6w>fJ@9)+!VCm@HE6hmrp)T(9lqmju>qCwMBwcuEaqcrW9$3eNsQ*d?jW5KmB zm~t5P1m6~M5*f@wb7)3Zz~GUTqa=j}b!a)iKT5Y4_;WWSze_xvA&)df-)E4NkdA#| z)h!2e)n#i-TBr*VbDq3lDd*x0jf2ofRm{ALQH7sj1&`XdWfBiRk35z#OO=os!^z8{ zK#;Wh@P;ijHfYnmQ=(fcD@Z;CQ^sl3DPe}EeH00f-c{>I81uNAxut4wVdbCAt6Kcf z{f$6Rhjy)F^f_O4(3yr~Ir(%Am$MV%W7ircvSEv)Al*ffkEP9dd=?1mTZ%zK8L{IcvU$2YY3z97vSzMERkFy}P=)3VI>- zZIBb^JP~^PLW5Rl=(Sno23Qm2m=r)3ScCv3Nt2;+BuQYdDrR6cHpP!(4hmh#U_6Iz z$ULI~7VESq7FC`V&$5g@u=FMvt@5%B&_MKIDMJrmx!Nw_$$`yYoCA1v1LucJIoV$`@~A92xLq{t3{3%EHV#l5dqSi&b$c2U>MN`5+1f;jS83A;O1zn)zEjhxLzh>@xN1_gs*K`_@ z+)+#OUp~9!x1&|a-NlR1%-JHm50>VS$)PC0=g#-r7kHd2ghl3Im`!MULI*l?JN(u~ zyg9AgHnn|dl<`pb$>_P^`tcEv9|jR7Ivx)fO-@Yw)1xucE9^dJ0x@u;5a$fjwoY0) zLI>azbM=DGehgDpoOT9OMWCu{vnC96RZYgY#=_+X?uk1_)^DM1scd5b4%g|7LgM~3WX!pFY zELvn1oPDJB-c$hTB@6Qf$b>d60oacqulX|_mw8-5F7+{=mETHf+2Ve~+K!3BQMDL4vfPvqS> z8gzhwqYhPNnzsc*i>g>CUy2=)!|Z~%uPS2-mW^x|B?h=r?B-E^_g>cZW3;ty&<+LC z@?ts}90yZffX9u_K)>0!^4*}(YX1=yFf`YavNkZ=VICrWxRq*ljvc1Vd#)Dt?(stu zp$1)$(a0D&HYZD|HAuG2c)MG*_0-sRWi1vXFrfSJN_t76&v33Ff}trm3iMilD*C{m zrCasN))_hqI;hIOzn6x@R$*8UN1N3A%?9{*r#=-YzUO@lOfo@E?_851Pv&nY+Zv2|8rB z!r*IK5TphEBKc@`<4`>RD+M3cjDw7Y3?&bGLEc>Nx8@;AS(neTmq#a*1qBq8~o z@YaZgfusqogP3y)evF}KX~~3|an-trr+`BMc$HzxB! zs%T0vUf!cMr0D2mYKv(Anfldacvh4*^sB0#w->r}-!~|I{FkFBd)1r9-TXKxmDCe? zaaGt7&{hy~=S^Kcw4>H=D+s<{Ry44qJ9(3w7<3JA#mC8~YkHNkYj>M;SRm>y=1nYO zPtH^pV~QrHx}7zCkRw;rPw=7+G=yFXj5%Q3v|@POn&~FFjHa~*t&{R5uYI+D_0|5>&-SnWxqtI}{hNR6Z+>sPn0 ze{uWzm$t9}2R!^{`^IbAH@>`m;|JR}{{?%*!tDo;*{m=e2`2Sx2=J)$IZ}&HEZolzIf$_g@ zU;p9u^`CCvxLV)7@r9kcKiRqWxqKBzv5KSZcdx&D(sUH!oyw%-2j)~zpY z-TpElzuCWbt$*$F{cFGOU;9h{<`4Qe-|25|ZohtG`;Fgkzwsv^)H~bPzqx(=KN)$h zL6dgw{&eTw)qG9Iu%=_d{V&$Tmj2f7`$Ih5pSS_HW+lZ+?CIOJCi7{f+I{ukYOb z+0MOd`I?SnO~)6u{`kYK+uz^1{e%A1FZHkfj(Ye<{hNR8Z~oi%^)CauU)jF??VYz? zt?#^bb?5HSckX>Y59nhE=wplTey{%SPagdI!7m=X{ovNt+ke=)^~Tn1fDM>^xqtJ= z{hN3Do8Q=e{VRwQbnEpu0QQaT>zmux-`c+M`RyBD+P-m<_~jQn_r8#?<2kJ3xuti1 z`tHvje*fVQ{`CD)}Oyv-}>|G{m%lWU{C<%-|1ibV*lC?>-}p#>0kR9e7)Jf z_RIdYU-hs379Rf4zjh10ZuhU<>0blV{vKDI z|6}Lgm-48698vrD%kTca{_d>@U#LI$%7fqj_wTpf{$u~zm-;t<*1!4J{^qy)zq`A0 z_m?~OzML=o2`v1Hi|_vN-9J5e^8ql+V=HtZD0TX_VpicU;p{`^r7nUlyK!UZ?yq+4y`HZQFB+dc z(Rufs`g^Y;u3!3}A8oyTd+YWew{HJw>-HU}^7ex8K>i_0_H0f2nW11B3mC z{i{FjUj>@~rho0P{hM$0H(%>-eoqd-&uw4-{Py+h+t+VyU;hTMHL%B<+t+`!efE1%?tkvwdn1p}NyO)5_x{)J z|L(od)!+NlgD+!$-G1=S*4uZs-nk0s0nhxkfA!z`SHID}`5*nw&-FJ!@_cst`s>@* zp%Z{xZ*5=yGcm>2cJBUq=ic>v6{oO@Q_=subN^=j{x|ObzJC9Y?|r5I-q-%?hyV4X z2VZ+|^T974{OaLX>JM)`{Pn}%Y`uMV>(oBgZb?%(`XfAd;@^9Lwk zV3?sOeHCN{6aH^)U;pj)b&%e7*r)^YeP`$HZ+Gr}H4pv;1pmTk`d7cxzxh^w^Yi`9 zAA+#ox%<1Fdtb}vJ%f4A#P5B*{@%AAezpE^^S?p-{&nltPqy9xQTWbxx8C{w);mAw zzxHPT>UTjDz%25g{mn1*H-CiE2Imqkc)zoKzkO)~#2!Zhdp>onHdz-)-IbCdqCPkH6_}eyP9t6O!6D zNN(NOdFvX1eS7EL*YjXMiC{n3yZ`O_{qNm>r+)wLdvDg?`@?_z=D&XXVDrJ(AAY_5 z@S9t=KD%}6TU)n&y7kWQp|U@1{rRWB4Zpw%@#b&)n_up4{&f3|KY%FOxqEBp-oNE* zcoA!O@zT~UK>24|@7x6te+3~2((D%?*Wl|<{hPn*Z@%8&{8|5Z_h6nuj=KJK9S72l z@4;Z%x%2HGIxl^Zs z2s8elcJ6&M58_h@;!~IZ=OS2Gj94jy>7>ka(<(jk0s0 zIS~1Bczp{Gu4XQ)BCf`?RbkTEG}eje09bzSS+u}_`5aPrjAV;9c-%jsj#Jx>m@tWA;4Ea(*DAj6xn zu~G|~$PF;G!n5I=nc8$9M`Y7afa_RSnP14PXBevzFbbnd5JHBtEJXM+QMU% zP>M+C1K6VAQH~$k`)rMWfpcIC7!+bJaGny@fLX|*U(ZXMWRN<@&da1PXK6I^>Y`T> zyhgEWn6Ow7iS}s@lFa)q6LV+N+_@vOZC7BEv7a>Nn)y(v_9Z}=W~Y2C3)x1xU)3m* zhiRes=+!AtSsaY>XEDx2t}};{7&#KM-A1L30Y-jCX*{bWdJm6YoIgMBpx;FvIJ=5{ z-KK*WHOPfg3+y4X+W9G+d0eRsguzjQRf~FI#SxgH-O-TjT6Sm`HV-$1L0be?RIG?I z=$7^<4hTUj^gEvj*6`jw&1I|bs$ggPD0)cx^Enl9|1*#b2 zdolSW!ol;#`4az(esy`T(gPEaijnoIU9^Z!!cW~WWW(Iv1S*)3X;+`?ljIIq>CQzt ztT3^b!-Qf;SF$X6{QGI#I7pT;~PX9vv0P&DNtPj;3Gf95sjw%9mi z;Mlz-cG$KlzQ+X$qnEe*XMnTpE`ow#azXghmo|%)DH7B65mBJ2e)+2q$c*v8o;`MQCNYLY={z&IPjR`XgGhHBF$RsGmy&q8UEpNQsOYP-CJy%kuj1V=&ip^IwQ?EFFU2P%t~$+7bV-l0{&rQ``o9)|~V zWHT!UwW1hON+8DZ^U0O{?gk}W+BA~=6pLntkK+ERIL8I=oot_#Rh$R?z%!nv) zfcv6Y$BP&l$FxtV#UrJNt?1ob?bry25D#mZ2(B(crEEM<`XICxSee0SeS(E|)ez%p z&S>dskh6M%V!eze;1B`o!a(_{W!$*JC5`|A- z0Lx$oCs~Smo%T6S02M%`b7ra+K(PvKK_6>#-Ib9wfSxn#REk1PHiMUY&H=;GsB(lf zP}#4H|B6DPlvRh6Wcj9;`bBBiz-}wyoE5Ev!A)j0MB|D8W$rsvR7s_3mcAs-%JkaG zp#VHQg3jvvuI$(`b~}FP4)Lic4DYxVZ^-I~c0>|h(rIt`y#8y98Rp%0%UA{p4jGrrck|XB$he2hlr`FsZgkRyDdsG#n$em zv0c+Isx}Kvf`m{X{N6q2gg3s3n3>)`?o;RJQ^-61ZYQmX(>$EDUc#gS}_X$L26ML zBv~@6KAW!%O*2==;3@D`omc3W*nRL?JQ`z>N|Fm59157ZVuVqN0{&=q4>fVx1V8J? z$~LP}Lb6)Tlo+n|RhfTS6e>9?uM;brm4D@s9LBX`>D;cZL)m((g|?M81LEV6Su9^E zR#=G1fpOE)B|nRJ#nfC^D4A}i)VV?t7q+>}jwL|baQdHadOK-S4JqqrVg$C z4-R!!+`-gZTKeWfg96$)k{kR~;|4!vtAG-7|8Dky4DR!}(5JaY-a_>fk9Q8wRV@Yd zb?kiQDwe}#nJU4;a^nP>iJRKq0#B?8v@Mi`LGbf4v`88Vn@wD(;MkRQybmov*khC> zS21Ff%y_{Fwh}j(+FnrR$FpI#6`X*PmbV5}<{Oeys1+D32ZMSjYrWo0>Oyn?2IaQB zVrLnvD|CW6dU3uomhpdUk({#@Da|R^k%nWwQq85BKFd$rJq!*ZAltF>?T_l1VI6~fW8m)e1~z)@M{Y>h42 zQMs0tHx5b|rFGE_YvlWtE5TjC&R~YJ<4IJyftR`wj*i`0@?%(1;+C^jSFo)P=csiL zG?RfvmMra=3d305j#h{ajfZno<&39PsIMf#@U*dw3z9*LxqUY32SFu>(g zVP|nv-ugXgHa!f>|6_auRi9PWH^XT@ia|l{$%-o<%Ju{eVIp#N06jQbZo72U=r|xR z@Z5V4){~a9>+RXd85nX7UL4w6Bgp!T7FvF&CMF&Y~#@azU+z zEDKRLJ?<}uc)1mKMRQJWXXVy{yoSNJP|#3dJt5 zH)RE1Vi(00%dN7TV-3a7$p{HX_w=ac@I^ggZ%hR{0dBV%i?UZ$g;CJVaO;{{64UD; zy(lYohJq;->ZFpfcvn{V97bzfh~i~K;Z(e{b8#^7O86v*)58mCHVRA|<(Uhh$sFvv zRv}o3Itp_;?2ga0Hsibb>iY8=C?!KSX!xD<6Tup{)3nmKlRYg5sh>U3DSdd%SF0Th zJ<5X2?%t*AVz8FD6mUyk6Om=WmjypAEx2tKjkYAtE%ZP!Ckrc=4^TV*av>+bV=ZfW zhMR^mnIrYfF4P%D_6{dgiAPtd_g2&p_d+D(-<>^GX9nI$k7Il{y;PPA#np6*+p9z4 zj$`cN#!AmI?l5Mttkr&F%JGJwU}DC>5CI@}3J^;X+>_+VMg>rDdt<&eoQbG+F*@Iv z#Yh{)5Z3Hx2$JFxJ$xG1);^ zRPn+9lj3Ud!!FrXUlB`}u4Ei8-$*-T?FXRPJ(SA;^#U1o&@y*chRZg)6v~ix#Nu3K zL$^H8)KEJ~U|R6mCT_!Tw<&uEP>UV0Pe=D5xmm^n&!e&wcNh4k4^;kzdKU}*0(P{CK@FjWnUGR+|~p{s;(HwOMuUZb~` z@fc)8Q_koUfGC9OvqKPpp_vjY)9Fogy)0sI*1`~IL)#;!)!oT)+r{) zVJbbz^A4)D3KC7crZs7C<*jdkXYoZDpq>LHv6MJ4Rm95e;(nvkp9t^~6UUW4GsqBV5pqfsW&d@k^TBqq#i{Geo( z_jnYgC3%M#>*hWgY7`CX6W7WS?1S#4$I?H!QRuT3zwE5xS);1$=JCO&t-{#Qr?WE8 zA1)sRB?}X0*`DVRx-4ZD@TGJXoGkAuG>fCpuw8l9gVjo(6emS7HHe#aaaSN=P7dyx zhC=54|C@;X>Yi*pz|@gaJ2W6)s<8}Bmpl??37~Is4=Eysagr;aK@`~}H)`1S%u)U* z>o&BX-*%#FW5y=XvF9vb)zw}USDeRkGjHyw7uKN*RMj}( zpzX60rt`%n7qOg8hqm4ML&-Q+qS0x~cv;RoxLH^{Ik6h^$Pjtd%|qcYH*QL%H^b0m z>V`fV%TXsu8=6o{1fobN zmi~7~D8u}a_n*qo9;LHUQ3V?`)hNPIsnsAdt8aQn&=7LO?`Uaa4QLr1h?pEBK&5&Bd##!pMS;q& zzU;W8@r(`wjpAN_9yJ_>)p9CE9-P<23fE^%X7#}`mv?zKiy7vEl4deHvK-$OADUU3 ziv>m$N&`+5K;C#uNaiGfSq2CV{E!ht0x6n_Rk z*=l`Q&e*kqPS9jTjz^$_kw61UGSoQ54~u7kvBl^PTYo;ux}-jsUGO9Gk9i2HJR@V2 zQX^-^r2wVu?0|$*C11`2tpJbwJU$M{d$|&Mo1D4^57@lZYsFdQ>NVW}Q7_v~wG2Fb z9wx_fi%y<0*y9scpXBbzZkesF=2865_$sKxwM#x3T&nmMPnNDKf!QuAU+&~F5L>UF zrEJ1p$gY#t5m9uI<1!An06Z;0G%dNf(#vNA$##D$wHBW)hTf4$rae~aQ;*C~lZy!A$O=vI&@ND2oq<1l{R1cT(Ff8Mrp1t7L zUpZX=*NOT^>vLnH<4|{!Qi;5yfacKkJPWq83vVuo85XUGS*0vQ^yUr2(#}OrR$;l>2_wkm z+hMwi+r<82fsH)2i#R}MrA_b%Xm%I12rapHCC6TM9VgMtuz)cRI#Oahpl*83k73>$ zWOk3bXSl+uAtVy{rG?VIs+p8a*CQF{HqvNu5iu+{50U010ztv5j(37kzy_*#9Hlea z9&r_tgNSg1DU2Eocv^*)_Mx=!$WXfM1z^M#e^Ix|$h7h{i2Fm?RV~aiBX4FIw2PZ- zle&ppXl|7WE4U=14`q^xpQctO8xD~HY?lik{Lo5{)s4z57bQ}^FI&6IUNs+Z7~ue_ zPq*+)2HOpf4KTzmlpNeiZucpBF?f}d30;0_kzY(-zCTg4k>W`ec3w+CL`yF{xHXzp zqns=}OaUmec9=RtEr~&gvPXV)#xUGigtQNj!aWHI-!6G3lpuosjY>bLUJ(ye= zd=`|tSW-hso*N=oNJO%U<{9RCp(R!uhHYK(<0P2r@^gdiHJxBs@!Pl_0mydEwI(Nq z$;{fv^B2)Ug^RWPpgEEuevEC?2{6X!SM3F*wEdtY{rjraksVl9C_BWhx{o9DN=}_H z=vMhG#aJe}3WLw7g6a8EU=Le!PI3-cE#J@2O_15uXVp`onEXU2&VpT-AtsdtmQd64E1MLO@JP*>IzzLZz%yplDaG8q3lN-hikqS~;wWM`5c%6bzElKCH9XUp!-&1K z{vN~YUjNB*wCcIlf!@`v>U!nRgMeYa9UM@dE|)0pgUm?5p?V$zh87;QdZ;ji&q(YC z^1Xq_Qj-`6-*W)U0O7Wz_g}gmZd*rC(O1BBn7iE=0?g zWpse4WC0;hzIIqB)lO#5GMtWLP=@eiF$_>0yW;R2e#KT8!q9J>RD>_jlrY{I<@P+$ zc%@rq>(zRPYcNcAWv$g-z2ByO@QrySPa1A{|0HDv{7vz<%)?VFS-Hd!X5|uK_%SP{ zJWi$2o=gNNBd3O2v0Oe7Cb!=Xss3tY-R0;X-Z|M!5z<`C2{OQnFSAssaY2b)O5b_k zCC&J5{Vu8XC>!2vO*Jr(irft`?~LQe+yfkg@;=Dpx=TvQ77nCUwxdwoyvHpCmZ)un zolX6eBAhXAOTJN(7|!~vh$l5gebe#BO#!r_jGh%y1~mlR-#Ur z2DVOs_ZNwUTaO^qgyHRc6w~&%@#PYaPhwB5nC>H?NLHn9?PWh+47>GtX10QS_3Di5 zhMw|#kqiM=9#E#$30Ls4A9U}Wu;{;jrbW!4Oot79h1x`m1t!l9_2I7sN82AlmT zIsHy`CXg#kY-0w4n``A6=3OIZ5?&f+zzxHrRx(|IhEHx5askQCiV(65hDR ztb}vs=13XyJ7a? z7e(yen}e=fLtjj7qunsYDK!+DMTOPf&DlBTTG?p%osJ{-I$aR0m4jKSL>m(e67Q6m742e*M93uW_8={|hrQTDQ? z4GyRv&BX(Iuyj3?sMheuM!wzpI{ZBokGJdb(C&jV9HTN!H=SVkTf9g`9I%2H4S2Si z*<+lVLW9c&n=p7xY=d2?2CJo>t!|j9_YJoLsWEU_Cl98VEyJf-_IxL5UEH0EbSB9S z(-qz)?4wWYBd)h(`3nETNCZX~cR$4J=P|szlWzaQr*r+RnOCN~D+6rR=Y3Rk8GZp`y2> zD0WnTQ&RAVvh}W&JEAR{b5caPII_iOAY1e?if+_c@%w_znIC*oI;tSrfePe;%u_6! z$y2p_n6M2In|`0lkjSzZK?z|z6d;k=fDxDDWneC3S&D_Z;4dqykdx;uf{+u&5I|(! zA{aT<3`Gu^y9g+oriOx)WiNtK=QtJE1#HsHf<|LCZxK>qb{qt*P{4R$Grto@mpkH~ zR996B^f4%Ic-52zJxh>rZeEYjGp2$wbp;~_O>m&DdFYvXD_I_?k>rGjWT2d`qG#(! z_Q+{5dbT+0`@DjqXUyFPm)Cyu%%{j)Ie&Ygkc%g@7X`Ukv@1w`vD}KlrZVlW z2%6f;wl+g{^VDc@zQ>OqQJyg+Ps3=-6_8{&#Dx*?H<8QyVn znEwL3f&DaFd!_avt~R6~(1Uun^ZQcwx2&hyA~G$no^iYtXv+IBk9e< zI^LPAav{pZocSb$5>|?Pi)0)03JybAuC(=IJ`QF+3TBR~gZfZkiD+G@zseu^D)mDt z!Itof8MG|qz^>2~OP?Z^;>}}0l0_4EL>$FR%S1``<}neHfbAYhu1jj@@w5u5AdL;r z2dT0!r$N9sC-oILzesT)I$Uqn(BWy-MrUa(sJfl7(hOasY>S`>rENf4s67K(m+9MD z1G8i)|A%l#GmAchzZ&(5(Y>!KJdZZnC=QX2Th|yu#W2kF`GDL5WqrO$8f9{>fPW)x z9KcLsRi?3$NcZj~Il`)MUJap+s!GI>ZU(5~X&Efv&>U!#Ni!U+Z` zSh{Y*^G+A_8~&!LyfFr)Dk54i8fn-T-ae+qnQm~>M~n6fNmQ~Ot+5Pxk(cC?7_!Zn z!rj|i9wJ@orueS;K(V^!JZeO8IYEVWMNw&)D^4|WRgO{WG%-@KV&Tt?hMuz&KPzK8 z_O5BxKTQ{o<#vTb&IkX9&v2B-3{k8(A#q<{4V$-;M)?)Jh? zeYWFwFY=zH+kWIF#d6J(UFcgjngo{^@7Xio1dkt;;>2Stfd~%6Jx)r`Ip8PPL+sR= zMZZ@Z`_s;J6CDz@I>s!!<}}7eYqTX}vhw1GdK!0r^$Hrn<)B5xYm_&MmDOh{<;HKo zfO5=E8Y5&6_9$ZaEtXveO+c!~PM92H+vIwEipZ@djc+jK=fI2YUNyjsbQP#H9!Mn0#$V|r!h}Zto*cEq zg`y+P3-iH36bBC5;STIURT`+O)LEsDiH(P<=)`7=635J3sG1a&+!YvlC`&Buqmjql zN#_0t+no=iH%cJLjK&q5mZR8V4E4v|U5^^sfbWc*8mu`D>-MZNLFVu|V(v%sOsHO| z$XP?X(Yhp1jx5D?lMJoWat+v?kok(e$Pgc913;zrP=p@dQ(KXV11U{V9*NXt@f~C_ zqV?dRFvM(~%S-Y4t2H=T!e9|*E#5^RjSSyOfY^(8L8R&_3<*qWEL*V%@-j_O+{B7S zsw-Q}SH=+O3huY>{PkpOm`7avGN&$`|$Jr z`Gz6FqX8oKWQXQOC!4uVlq_dBl|qk~?RLj-!{PDaGL>h&@NY+81(G0udjl#?b` zioYo>Nh3vR{j~Cs1(Y_&C&7f7#0>!5mKkBI|X(KylS(G^tQE?AX<=8iW&7;On!TiN0u&J6a{I3gu##b9+t{A zQLf4%wK7?12qoK$RGD5kT(5q(67dn@V=!t~1ewVAuOw6Di74rVn!U-E6izF>Y&yiW z9HdJT9l9<(R+iu96C@fG&k{gXz%?|VM=0PZDUN_FWx(Pe8aT@`&hg`NkV0{gjec8s z%4UzbAogaz$@0U_QK#+F$!=E=H+v87=mMLCZX+%B799uApMGCm#o!WYT8AIG)9xt1 z6ZVpR=3dJhSQh!19f(&No$-NQeHJlZyWmVD;_)~UM52rj0P)f}E#Z4BhvV3n;h>Wm zpWi4$b9l}q5|^ENBS#uPqC{YcaW*6g8kqgg2Ok!A`* zS~V55mAfk088Z1?BIZkkvh-dbHJ!kdxj309AD-F6i*6e{v8)Udl!a$L6`us9#z7>F z_byX*?hLPHr!$P^>`DjGSv;x?*B&%qkYYjzRF-~TJ;|3ZZT9xh*Nx8RqNVe_u+zrW z<8ic1v$P}l3=ghWw}fyZXo3(Kp@|N3QWul(YcU(2-b?G{`^vyE}e{?D`z}rh_ zKc>5Y<$dmYwT!|{RhQSetNl35*_mhAjpmh;8o12R0IT6Yno5ML{6{%Ai@TA>_+!aE zmQ(`o93yh^=7F{j4d&G$CyWSi8a+!B;O-cjq;*Tcjnh$BXrD zoe{EQhL4S>vMqXLcY9Z@`~bWncHKW^;TQ&>KA5c@!CheY%oTi4=LSwWv>=;AyQV z*o<{6y&6Z(yd8n;%dO~QAELrtCzo@$0DqGOx1lm-(`#vD2K(Xeh#X9hMmIVVbr%55 zR3VL(r53oOK+mX?TWcBnN5MeW!kG-@IWk${;%`i62JV4-RCz7j z?)HL->vLpQo(&f>4>0WJS|l#B5KebdH&CM(kd2bxGC=llenk_xEa+BV_8L<_K0fQW zE-uD+?fKbs4e!(7EkPq?v|=#E#L(WT+W~ojTdqYjh`3X^$)>y zJg3lRohdGVJB)=vO}UE7a1pz%g=r-;?;+D2?g~A$g4qjWG3@<(2~4wVr36zNZ{$P9 zNyBuUiBZ6;o6M zu}N9J?h)h*n4Mwd%D(vg%O)PSD)z zoH=I_l=XE=;=$Y~E!Pob6%YWRlPQl_=aEN^84@PGd^y89J|!2TT5xWk~GK17sGU^H{SpScN`WP zon_YNPe9Hi(aIVH7q!md3u~s^YGC@=(?>s5KLM+05SI0sHtS#Mz6lvYd=5KY8W^=EhfSV%qCd z-I(tQ_4YCr82?-VYCP_JuuEoy_~pWmB{pz{gtcsF5HcUx5+HQpI3TkZ1AbaGIeB&` zOwu~4BP;bV4VKw`GYjEm`_Nt{LsM%Ei{Q;-q7019I^qC%tT7cSc-qS^A>*ZSn&TN5 znJ!>HIjfWaXIZHZtK-iH9jzt>P_e=d73pz|Y|38?Ccw?OcK4O^aY45>13eEa6(BVwNVJOsnh-K~b%9MWny$KIV3`aN*H}d-Tn-`YsKUSs{&X`Q7`68C;K(&$9A8pKEZ;(iz_!LQT8JIFE~WVcynEch8?gp>xTpUaM@ z(uKy&M^Qo~nlPGSizN(ZUJ1kGNV6Jt+ATkBH))JCNVRN;#KyTZhi6XAoc!28oA5@h zvFxv8?b9V>_MsDxQA-jBd4HD69~gym`6eQ31NTGzEK@!Ymq3uUdQF0z%n{SAv_-XD zzGgB?U4W=!iswl zdo!Hkkn9(d*-`u~UV8Q-_>32Pt8c)kRH6#zcHoZt!o(hghmAxwAS z#lSinbz;|=@1@pq4`#k(+3$3Mm~LF`Mycf|);wDt)UExECmSC{$l02~Ia0IsPwbzt zPT{S$v2_wtL16lw05kqS9kzg=MT50({D~1|*+Bk`p0b-uDY1uct3l&g+{FpvDWSDD zR>GB_6L#qeXeU7FySyC4E{jF_QWUq3lU~2{LYM z@LeC>4lQ#$uEDlo$p{M}a*lUnk%~4ufaiwZ#8h}t*x#nYu`$+>T`!&u=iI~#X1jA! zP%E8Pl4q8ZS}lbaUcx8C+7xcdB6i|%=ZMFTekObN*j>6HN>2k_2NqggC9#$+;r*b( z@%b3L<%(!vg$XfqI|#&mq5(@udMhhYoI)v#0B%LpJiG~u;kU6NRy|17on$`??i-%-JPZ{w!4ldAS&mN~pC!LgIg|?0rBs8=2T3cLNpN1jnl(_8h${AqLD&a6x4l z_0W!97neOnaw6Cb7eq?xhux%@0jd|3Q7lhmO*v?}x->j0YMPWaWsD%Q8)VtYNRC`{ z#o`jz;s^lt>w3sCX>3t5t4(c~)-^TkMp#VfIkML^LNjdZa#2XC2}zj{n;z8c3naQg za)&VH<1u|sfoY>AmqKhRangD`)_AHm?$DPINYDG}60C9-oyjr!>CY!lm*H|Qx)^kG z*ie%|HsH)>+b%ygp89C0^wRb9D;u)paFR>_G!bNj5W&)a<&eg65 z{LSN)buU43(#jgMN31)=65%T_D`oZJOeYnHG}9kaKAL6?Gksc(f~Ey4fi0L9W)4A0JMgsOEOOsP1E< zdJPJ}=_rH&^>W3J{WOYe>+6x{b%{8gLlX>8%gbYmEH>3@h%Iw()^|H|Zi`LiULuiW z@<63Z$fsl91)N&YWZ#R%CZ%qYXdRZ}<&DptPtMop#>U~jP=i%Q7W1Xwx(F26P;xcm zU@-)ZC=S}kdH#}#vRFhE$Z<}Lqn{gL3$XX>QB`Zl#_+MLahTHmq?aK#{>aKnMZ0O) zW2DQIk=u(0G+~x!obytxwOHxQg2;9} zm@Zjzsbif3nAWntX0?0_oB)Dg9zewrn`>pVZD_?R zU1*71Q*w~PSURS80rC=|H;A+}`bR=V4d*KO5xSGVKx@3PNe-Oj7=tk!^Cq=6Br7CSLKk)Zk|wYaL4PxC*e&|ZnybyijAKkF1pt2p z@PT1ntR{6QODpN=rhsgTpu*w89o3=uU^*4!e4|WTSgORAghZ?$!wWC>oj;+Zp zky6_TyzWM(Sd`JCuwq4)VXf435lEg=RU#6 z)H_ZQkO9{T3W#U8DNPp!k__{jHXdZM%+f?H6)D$3C8$3dX!}U$|ke zg)v<68SEo-E80<7B7qC+?4lYYAG%(gEeYi6fG-T(9{lS-r}YkY_w4B$Or~m)7ti+Q z;AJ=qntOE6pYB1kn$aPDxh# zgtkJ`I9sp@5;?H8FtdFckREq7wsVsnA%ynxj zhip)SS(VTgU^X&~eqQejyeqW7>35noU5G9o$RF7ax~;Hj!(Vvg({G=C;}WT9qua1M z-+@$6sUbrLfBGFPmUgII3cu->?MA%>f58_Pr%E{l{+p`D6_@x4digSg7hVdwL6Sgz zyvlH)*I`fagW$3!f((VyP!yt{RAfG6>4aw|T7;kQ*9O(oyF#J~^0f$)OYoDxyb^FQ zEe58AKan!{3u?w}tYQEYd-m+7{UD5bbC3-l==T~tz~~qg@7Ct_**HeV_YKRIgG+!wSgpT^dOl9a2L*XA(OMP8+#er*ka zpOtuU-d^Wl$jx|ddk;|~9$0RbuXzRpd>%?H|#9QmgRtRw&L1B>-8U7taH$cSUPYhYtG33R1 zh=2TUx=sUpo&MmzsJD)2Vm$~M&_k55wFq}U>(%uX@QJ#ZdRlfOJe>2!J018wH4O1* zGHD{zQ#2>Lk?XrXw?jK9!YcfvnEql+PCR*g?gT6fTzk#-yo7X{1ccfr(P^AnoW_)E zc55(NR$zRrxltnxk`!v4jy?1)r*m3Ps1)V zFSvfzvM~?jX0s;~N-A%5)W%XFzzC3uyo*(>;|Rqlk3yRjI6FjvE`04r%bz5UXvi4u zQ}U{hy+2542I&OQXMPB1k++lwvx|-yBUF5V;pbrx7N>{A!1vnFm#17uqO!iOKpg3b z-x9ott>K-c>Z7bTRW3I7eSY95rdoaA#2Z49Fs=%D7~~n;N3S$TW_$mx&41WfU=ieE z3?R;Go&*M?0fKDzpaJ?KLSO|EKXnJ|XFfF)2mt1e{cMsPUpes}3loBpoh z-yl#(ystZ%u|K)SfE89T4cb%A5pJ^(At5ID6~U*i0Ds%P=hdCBJ2V> zV`}5+EdGVyKv%`TafDbd1_*MI05AD%`kT;S)RXKb_9te4=|#9qf9W@@=IAf4A;f*oEn@nQqKYNk;-U4JBT;u@bE~Wcj7NT>f6{JAwx5v2?zTIZS*Dy$qeg;OW?F2zZlK$Fq!IR8%(%_0Ws2rhSevh7^C23Qq0>O%>jrwYouQ>+LS@$y9$6F ztOTdC$yErMle2U3-$7(0tv4OJRP+M`SA2#}KYl z8muOTs{+=u;!Q1cMPa*lU2WTLHbJx)FL0zYn9RcpWGpp8MGL5fov&I`jg%@nDoIN| zFj6hIrxh#KdrfrF}wa%Fg4r!p*i(4Cy5bUSP5Zp<5*)1WkL<*WSVuG+UBr9kOX%`nUjv6%cn9? z4_4?r8*U$T4n|WQAd9F1qzvvJEWxX#gT1LGL9w>y&n}S+3Y;TI}6|7wU4y zUGX&JW?OSEj1q-iSLAPZnbU@eys*K@!iAo*?CB{8eK{Mn+0XU$wOSLh=P0k_U2_Yd zyyZ;(v2Ixr-LlNOWkHo}vBnKtYbx4LP#g?#68{z&c>De@7nk_F_pPU2X2!vBw z5-Kgp=9nbkQ*6?iQYMJR)O$jD(g9`|*fz>y8#GO-wwa*oke6)4>ICc-c_tmu*KFNU z;5$jfiP``FB4?FnNC^q2(nDS_mDcNW;xhHY98Tkm*oysVDwMuxI(tvY{LnY2FA#_* zH^;Z_^xPo1n~s2vbA=b0#tiOI^ISD^XQ6DRaaHt7U`x_2M&k+E>~)|&E9WTK?qT8u z+9S)5isf)1e<~$q8J=5s*Fm!QDe+TxV(I9R(bpEC>5+euA7lD)i##b5g9qzb;8V+c6G|tR)8E2&? zR9d!z$J1A9QkHj6N+q~sMxOfYh_*;-oH_QwCuhzaJDRb_GN8MBu#@YOWr6i2PrRCi zHb%3T=2ZG^%tHrX+z_x90oLL{fy>mQqOn}|)@B#y+*PkQW@j(Yxi5ID4d&AC?gkSE13=3O4M$L+C8?g=kDop6@urBbMrK%lEHc}wi1gma?i%5!c=0|)JK;)fFK-)UVxHx@ZL4=3yh^ODUBqv$L6w*n+H10 zA3Q4vG%pBr+CAr;ot>ZKo0!URt8?xp+_k(odv0z@w#PXQi;7cowQ2mzOFWN$>J(S& zvU|y$sWnfNS1o(kKs4}365CypfP6+6KgS{<4KT&0)^ciYY~;G3f>9rxPw|g3Y?h!} z0qjh!>)hii%GHvJSEq}sDb5yWyfaFbm{?;3fOp5eYuhhvcFDs7}+HuM|g0k^t&v<6gIR%v(*dilj8Qd~}SX<3K z>b=a*+hLo|$P-@9QQRXuu0AtxhuvqrLhEKyul6bED8i|%1|Bm>)oyf6E;=w3fXdZQ`Q1eAsmS|$mjVT1` zz2cr^YUL}+LgXY{ zcR;tuR0H5@T?9SC8sXFgd~TV)!jDKdka8ijN9wgw6#(9GO%%5L*ktJKpVM08| z&TR02BJ%7;(B{WBtRuY`wR4Mu!!;tE;NNSH$vVdDz1g{C29*PPMF7J5sghq=Q!-P8 zG=6l%Xb07bnIl@W6LW4Gz9#2Da4hLcoYSst=#U}9LX|d{NVFJ7!KlsL6YuN#TGHb#GkP#kU>CBHu za9m70#4@x+{EYHEIWZx^W)>p&jj?h%+zuQuRP}V7MjOs6yfL*bCVTzIxrD;EL;QoEoh3h zcYLorV8S(nU@kirTEuByYeH~vVp`B^q8S{TluwgQ@vEe9K-3~JAh9I7b^=N{T#?R7 zGS1~rDXXm#ZInDri+F6NfeFUE$-F_^a2%zJhf#b_qg^!D2rg5YvIxbgKkYl{pbqJ7 z$I}_v>B*%TS-N4dS6Ip6qG~Cx5{GyivTfA1N(UFpwRUlMVe*7AdCZfmK|zTHJkp#k z5*Gv|P~t7jWqOO}wP#mQdBiUd_n_b#Phn{x5cH{hWsbpGGd63Dud_UT1m*^$+G|Yn z?y4&H+H4op?74Efp?1?f3e5yO^&#kXJ_=W6>-^i{ZOAdK*NXf;q0%JE@ zS(J(&j$yALM><{)_s8&L1s$&#N3~>w%K8P0d0`2WiM@`is)LcVS2jvD<($B%k)4&( zxy-tTEecsvvM3N{y2nMjgM2hm)9q*)m=KFbsTQFEr?#hsl5t7ky`T$ce~uX}*4HON zP0P;*5ntXZnbx3%YX{p?YofE3-AnEwjJBoOHM9%0m>I}u9^xV^Gg@>Z5qF&^VuWen zU7j;cMaYhqaW|>COc2~l-ts=j5wqpkWNqJSZCpO@b0+J2-W}uL`<&i*2|M9w$J*Fx z&AqhGTfjdn?jk#OL{a9Q$>7O-mulni<#vQV`+~bz+rSCU>ueMa)oB%fmN{^#rtG4l zRWUw?aphPmQCBdf?6gglY;w5dD-JFFjX)S9Ehwt@mE5wgfVaL(EKt%FG-+xS66?)! zIioKxb@g|ngh-k%ne_V|=6Ja~iR;2%H(3f7QW?)nxi*L$z>`*(!db!0N37DU&wLh8 zT@!MrOd|tHif$UHiSZa)8``{StVbGLWHcr@n+C=?+|6e~FX&Kjs}>H3>@+32Vp<#+ zB{~T|G%Ya;o8%VP~`&62FbU_wGZ(j(3O~+=;11fH`eQ1HSUi$%4?NO*Bi2 z;!C3W3;O<|SY-13HR%um0_`~8GL@xdfMAc^Z%#Uly^s8ma}k73o;rC97Ey)t6UPo8 zojLh2avv@UI_&Lt^P33Xl~bqB&73-U_(XHk6&ni8{cg4q(|mG6DV4=YD)R_t69f4I zgEpH=lato;nroBRlVzhv4-a}NdyUy^C6RpnY|*$ZizK0uWEdDgBb1+-@?4@rN{hzG&7M&rY&Q%g5jZ1h z`76N@7%<`rtAtx5v)aqTxTxHv1((yQbgBkzXNq1aNE%K>ugshSYlgW9Rsb#H z4wYpMQRA(O2nWSn=zz&RR0SpZ5XTP3)BW+-q&%fxl2Kq(tCf;fhP8y+Ff6BoXIsjM z5-f*lX{U4dF3i{r*bxZACnF^AH_@u8kPVoxDbU=gY1}DNORuDMX`kf$)WJOQYJIdx2o7J$LE|skY zu~iujOJRhIT`e}0jIfA=my{REEkkK{orCwh^;U}BpMYNlrTtbbSV@nDi(z_3AJara zH=b%of|A%P+>sdxdL(KG?8FQmKXc+k2cFrpCqDSpKT~X|e4p@0Q4CF|oaL8ubjlH1 z4I`U_0hM?*{IT`q<1@!j9QADa%Dp;w?9B6?jem15jvbvjcj4&F*>i_a9yta;)yG`c zXHT6vd(N}zEBEU3nPX><5diTkmjMRyaecQ&-8UDc!lPCo2b^N7@D<}Mr&fTBqIbiP zs!hUdY%vyhY7~cPK*dO{npSa2eWskp9SV_S%IPt4`;`iGHZ8$S>!o4o@hoYqkEMQM zfnn=KX4MoM*#{G-VV2N62M5)evoe6CF|4H#or3%1lydNc4RanAJ3qk6`WS^Sl=$fW z5ii!I13Np_v^_5_D@47j8u(EoJ z@Pt4xvkQT&KX#C@jLTZaLlt8^J)P1K2iL5b4tF{Su_V-0xd&DGOu2~H{W9Z z9sIni*lcB5&rJKWH<7DPjqZjCg-MVqr>)VN3M=uHw>)X8pv#In@Qb0ODYR1sSLX`s zg5cr_s;6v*<5b2b)Hz(O_%vVHP8CbjbX!rB ziLhchlp7Vra9B;Xg9X3WNthy!$`$q)LK@GynM);NG-6+?Gp#}fyLe(y#wmhd);T~*KN-Yp#Vuu zUEazr=T;-T7M1Mbc$IWxCdj1GQ-;80985uZ#Rf|uui1gr<}OzDMva>QTnh(ej`tRX zJCG5%4LQ$-RXkg|^d63P8D|lsnQqGDpgTFif|MsG{gW8= zOo|Dp3-2tY$}9}>WX%Uw7of*sYnNgo&+=*j8ZR6|b`9qE;Y83sIQ|3Y_{S@yi&mZw zfYoX9^D(nH+fe-nZ~ue08E@-u{kC|tJ#n!gAORY{o;~cl;V-wR*-vySx7m$-S#H2E ziqm9zIcoPhAW+$(mpT~F3(wTxPj=;^TeMi9YnbzQeIxE}?|*&Sf8~|6-CX|q5xN@n znWvsAyZ?3K$*1-|mAn7-z*A2>`H%ZwKa9`#xb<=DQhxbs(i|UO4AZ6FJUZWv$ARBj zW_|ty1R(L{Z#z~yS}wP(*|A%VO143=_=PJ_yyAh#qz8xdl{?k zZCVR{CkZy52p24e4@aK2?I%mth-dAE6$_2s_Fi^fwQ%y4-oD3Jd{KjW%rB=c(^a#4$e_lrvMV~_Eyje0ihEB`dq{%0>h5s#HAmrn*|DSYS|CIe}eFU zIZn|H?Cd(HF>47rrruh@GgmH}l)BKkH4BE|VvyoQf%RrsUJv$)l2Y%C{!kiK-E!Z?Q;1`l5gKf=dfLcCrrdC zBQ`e5vY=U?2!fS_Za5R;)Iyhd>*e0^3YkJ8dP#lFD_+9;Z9UG-ewxNWM@ZT$dl1k8 z0kKA&9A{HM4MZafFPtkIuC*5^f&f?tTC``x@@uRHRbnnd0wNuS9fI$pOp&5N#QWKr(h^S4jN!|-5U<8QOEY1-6+j^(Jtx7tP2Iomglh@ z6KWZ6PwDXFtjkgVgnush6!bXAavWJCckPQnuFE#Mw{iw1n4=Ez7)YiiV6gyw-z?{X zYw`O%YL<71S53tm45q_hH&Rqo8DGdUE-zpqBd>J)wdXO47*r%+VrOv4xm=%z_Fmju zb9oU`PEU178|BlLd=-P{&}8x)pEp>eYc&|L|J#%LEfIjr} zfdggw-~MNwfd^gxd-}jLPya*z`!GHSM~c^K;E?Elix>iw!G$2k1>nJP_MYV>c^(HH&rZ^{PLM1GL2A42jRrpP)di)GKRT2pP*FRmrs|N;<(-aj`pZD@tNh=OlQY(pD z1O(SPY$Ibi?80Kl#zkciA38YBGM1O(t0QxPvQoIr+-*%r03SQ1!7<%6mh6mENx6gL zqSFt~N9{EZ%D0%(G(L_;l>$6GKAxAyQukmxyd;2gJ*mDL`*@3rE%HFFl|xX8EQT^3QknXkg3xe$j<68telp4J@QAL2nB`0sv@O4r zdiKY{^ts-=J$~rLFj&ROo+TiPI!X#1bfjb!$g~i}%T^pAsabDBEi}PX<&puSu2u{R zhTWB3sthvQqG0q(5k%#La08v1l_Y1i(VP)b?>;W*M`k{oNG18a=`lx5w@tROa>dcnP;JT5vh+*Zm>v` zVx8Go5QVi81Ek~Xq8qa%1-+av`D9H}Tib)&%RXck&@G+7qP3EZ9Xb9zR*>DHziXYr zd5yxZ+qE>E5_4|3^@~_oc`Ln8uWzY0Z+HSsU-m&f?A7vj$3yKr0#f z*Ngs?FFpsFmaQL)Xdcli`uo7EV>JC^k|;#QKX0$$=dc-*4db7;*l|DJ1 z9BWwZ(S4l7HD0j5GeR%bEAi8hJhBX7UVm< zJrs}CC0LG)jSD>3U)MjpTXMEe!xd;v0uqDmI>X$?3p^W)7vz{kV}QM$;nWmvQ)O!O=4)jQ#u~m}Ui_af!^+4B+t;82R+Uc1vBuxYT-JrPY^$Xn+VwcyJBbyJZLkqbRw~kR#!7 zr^x2RFc_ENb)_tcxvtzZdLv-;8C@UB01nJObSuQ;;&6`OzD=`Vi{xp*@Zwg4o$)vz z6DL0C7JAr%?xz|Roj7|e1EdAMt~sSOv1rO;^xr|aLZ>rNv-{HCEWVSq9Clf%SZPUw zsi)pDywtWb?%M3(*)WcE#$!GYeONFYN=djqIw+QfGqGaEY9d+Utcw$6kQDH3##xG| zv^-!ld=o_|EfzdirYQjhnW0)_fq8AHw*~K;WXq0vP3qMbC>y?bG2ocJWA=*Kv!j>i z&)Dm??DeY`e}3RtzhnIpvmEOWj*aO%!lE5=<{D_n8aro=zvsE|JzUk;SA`|w3RHK` z7BEK*!7*AwG|qNM2{u?q038y565>PyUTA0sAe(Y_?PZ402}*_03+#t?QKLu(80X?<^=%{9BJ(!t&Ha{O)}_M*ffH70;h9&d#eSGMISQ{ zvnM3d^;^AlGG`CMNck$c;)kM(Cg_eV4j_hbnrVAl#25-1Q=ucA}yJsGF<{k`|I z$it%Km(4#y12JqV;{*djurbq5ZphA~h>>?{#xPPiy#mqCj$WYHF4h4iYMxS02IKKy zd}90FO1(P9+(Tlk+1}mu;KluWE}|6w`H%np=Rf|3U5$q0)8Pb1(T7d__Lix+VVLaS z76nm~_p!7d3~e9Z>dHb;i#eazPchMg%`ooO=5LmHq>_;;WxyTO}`LW+x-=)ZpW?a^zba5Xp z?!(1>xVR4&_t9CyF7Cs{eYm&}7x&@fJ`UWli~DHpjEnnlaUZ*f_w^ zd8YG7>7B9M%bvfv=rixi3nLG+t$TEs;!zb!zkcPVA$>uIx1K(NtevvB7?Dpuij?@b zITrUXy$e@6tZEIgTOD*YNO$7c;fW*mJOv(1wDgUb_}i48%Lb+QEIiLc*zojT$VaEH+ZpI4&=Iw?D^P2b}o#!dH zxSq^o$7rY+eg?f{-()=Rvv1HY76*MA?Kjwlo~i8aAKC8DqpHP_J!~bTl7&dqdoxGa z!fD=$S=h^T-_}<-le@cX@+GU1d765E`&dw_oiqV~@)=;F7I^f4C!!}!E7`EX%`d+w zxl#Id9j(iVh)%t_Ou)`@E)tF%ZIlcrP?=71S)~7!&9scW~BxBDW;cXU>QI|>m+<(lPKtkGN1|IsIJp6hh4*v zkzm#h)=&Yp0GNGmKBuJo+apuf*wZ)&4Vq{PPI+ULG~-in;t8ihkr8}DV-mwghh4-M zPv*eJexVo;$VAS`IH86JP%DkH=yhbnML+OH5;EpNW4SlfBW<}0|glDk~WzDsk06N1Qt#zpg zqKQjofoR`UCE>f|L-3an;l79)6{rgsFqLZxQ1Ete3^FA}BZ;F8a;~1ycarHIv`e-K zsqjD<(32=Mbxr2bBJxtSPGo#uM8p97B#Oi}hCK?w^=1h=D8V$~@Z|t?SP=#e@lB zfp(1MKoJw5WkkRZ(BNlKuGAC4RPcyQ#JE=(k)}jxChUE}M%BZke4(Z!@rKE1RQd{H zUS{`c$bJUaP(JsFy97ze@QAN5!RgdKI8GR+y^ka3-8o47l&;4(3`sYFcVvBlTpe}x%iEvH%-Mb9*B$@5E%QOsK%h7L(Xl(3hrl9+FBUl`|VlW3h%;U1H&HZJg7#)~$2 z=nL_vok7jRBAqSKr{&bf9Q=k(FDe*Fld4#D%chL!VO4h6j4#MGga>FOdXu^8jxZ&c ziBh3P&rgadP_8;;iV6z!2zo9$hG|b_&sZkCRj?sZ4cg+WG0eIe_v!^w2T>3vV{U0I4zS;j8F~}wVbIJeqTkE@&{I3y} z^&nmDzj{%Z`)`ldUGBeXpIq)gm;2A<{&TtiT<$-Y`_JY6yM=~b?!VT~xZHm(_uuX* z`@FgT%>~yM#6UG)so2M(rUT1T3_B#J6)4l&7%-zjJU*_4>erldY~8VwHm*_0Nl`(SVcO#~<4 zJKA#r;Z6;&f4QZAa82ml2ZY;%?(}dM75;@%iij&CMWpj+H3`*GMfc%qwr<%Nr)DXa zE%02Nnu}9&acXzqccb{PMjz$&HnzrpjZa6XCnG!l>tr-O8@u?g+xXom{;RtFE)>j# zf|;RURs7gDDr^^Cxd1U2AhzFH-=zStU0AKh>te-RteA@xbFpGBR;;szU96ak6?3s- zE>_INiXFIN7c17<85b+&V#Rh(+2@TFt8W<^!p88{Hi9G^gtTK`W`~iLFz!O=*B2FP zq|TP%L-57ex0Nr$N+s6<}S_i zK7>K;{C<8BbVnK*q$7?FiKCoWOGXrN_-nzVO;uQ!$)Ft}?4c&bNxWGlMb;rD7%&|v zbg3+r^ST!;1pF#&NFZTBbyR>LahWhI^ z=NC0g4);I#{%uNGm!!3%b;8jIlh#R-lf(Dj_?|73>sP|?b}sF17jY2!9thR$vW9GF z#L-5#*@V!rnt`&!DHZ{(8dBvLua|_$2em1TV-yxuBP-}eav`uz%;r&%Ep_&dDv617 zVA+s8=X0-!a*;VQbvIJ(Luz#Bb6(`h%F9Flrz<=!{VB%Gn%(VKwzT00t<$59P+lyX zF^=;~q5UatLgYi4$Oisgt)Tm>WQN%{I4w%w5zJ14AzpNW>jyi)&Pc?9>WHF4qWBqS zmeMhm_g98;qKCb=I;9=0fc}CvFpoqonY>72cocal=Or{smVx&w>$DgimR5z19+1+v z^5O#CZ+cLmSVxH$FxV0mXc}mjWlnJINr$iFA3?OBYfappxT-;R^w_;NSSo{n{!utf zy>x?GAzo1~h)mIkrVUaBu{hvF598fZVNICng>oujd!eo8GZ$~pgCK<+?9WO1d!D>V zd>I_q-I+~G6OOhHywmcO-i=ZS3x8ZNy z*#d2_jv71mJQJ8von(=)RA)&HI5fY4F$#GWQ&0?Qpkh~sM4RJrk?J7&T{6qt zw8-9%8_LxdE(&Rr4`nLGK2axTXiL_h%tEI$%p&s^oOD}IUGY!SXsM;x-(atB=UBv{ z;NNTp^|%zwf~oX$7CF%k_Kxn~_!zE=6^!6FO8a^?dJ2umELFni?o2A&f#41}svZ`yU#qFY`=xo@#6zPYx#kW^W@Zhb(p_SX|hqf=2!^x4{9=_kRV)2}dOe9@u%2mLQ0J|bUhtS&)I!YD` z&=I;e{o7z2GT*ATA9OV|Nor{UivcxqmKHIYFa@KxTE+}5jQ%@_lUzkZmYIaaC(4I( z?}t}O&UIQC%=;%-8}&QU3z5W6Ds)43nUO8DFEmlShX<4NqYw*I9uOEQ?=VR}bdyd8 zLGuO47iL*OSMucIuD7?(|HHPx%ACc+UQbT6Blv9uPrMQ?lrJoB8aNwnrjvduk7Kk?#cw`h0WqyL>f-y(!S_Z`arP z?idf-b)&DU|5ab=tD>-u%0S&|k#XTvJoS?m{10cY!+SiMnxtDi%693|Xxv@$ahS{Y zD9lu@0=syQ`}vmW38{qOJ)5&sIEIY5^$lfB8XSc=+T2=x!w9XN&m=U3RBs@1DLJe_Ss@&l7We(V=Ns( z>Cs9t&rg$#EH>!ClA&RQ4#|K6uq$dwT$%_IC$1ds(Gda6Hsu!AWi4O`h_1H?!a3#Z z%_S_HfjPV8WJxK={DzydMrH?%LaA%335Zj$B8f zALi2aE@^86WQYKb*GpsBjHYGf1)R=Hs&`5D6`?B_jaz`armW zG;Jcd$$G4VDjCxP+~b-9>Kx%UD=V0$fCmry+ZG#|P`6|%CT27;l?$<|rVZ92srIFm zQ4h+sb{n^?It8FKNCV1Rcl3VRs8|4QU8toyh>~IVf%JzR>W0}Rr+?f|)+CDOl=tt7 z6(g=I-iyfR(m4|)32~4FSoF$U15-llCApx*#59M!m%vs+VjUuBAt?zo1m(g)60Q`& z#zz1O)8i5o5_N|W`q`<`s(v-Aa z5tRHo0hUBj+L;d^fnAeZU8=jcIeNgZg}i`wf@#(lWDL#9|@LjQxy(zP0+}ucJ z0=W}*vfZQFX)1eTrV;sytz~$-Pk6;UysuM3bPV&$cf-0Xe2gLzZ_dF)^*h14wvA*b z*P_Z_HNO&ZqM#|@HDf;)QAAU6m>qXZTW%|T`1`sk>Nndz>=)|%sGa8eRz29nDw|(R z77R4QrW^E>D00q@(DbhCd1%9Hw_7$|)^)!U?p}{mSJv@9IpbkGh>pf&M_GvX$K9+= zE3~&cCf6`=V#9jQ9t;_7i^;jL5}X}o(gLdkvz5o8I@*9)^0|%&_j34iO;;Qgk(aVn zg63eSkqgH54sHK8mt>;)oseYPMzT|qQRS~%lF=d15uE@{%gt|x;>&D+WR%g0lUd!H ze{s6S5gUa9lh<`Q<-=Ziw+tOiCGs9C5(3hm>IDHEO$io@eAqmLG60b2m>k(f%y0s- zY=LZ6*hORzq&gBdVxQ36yX?z`ec+pnt%?i}Pt{ScNV=9W9g`@$#Gz-xQwcAA%}Obe z#B}+rk#>M?A?le=YJfbXqd?J6pMg~DvrGD~xJ9qe=tjFf!`lq|>@OyazrwSqIAxXh zcm-h}L&W-c+$isB!-Gq*j@r`sBFJJ6DwgeLntC%-yy!JJLNc} z?~3<49S<>N=v2u+dT5gEqlVz&RWm%ouCZ(MKhan9 zfsp++3h>1EVuhJngr)J@lwOHOdKraH!SZVZmltIT`w)Xxfmxc+Ax5NW63GekB>6C8 z&!p>2UXH9c;~@CCSr(B}y1;}h;fV=KjqfQ(LP3|gu#N}}R*stJGMGX&m<2uZteKZ)w1>`Oew=FC6v={7U-xBf&B*=3T~1b3%qdvTr((V5T?+zF6^)ZfVOA zPH^m_s}mx0AhLLO=xR|1?daq%PHM{aUS@ej^(b?w|B0yIxyWdS?7fz4 zqlSZON{$$ANDL`opkI0oVc&Ne;nLQI)13|=Da2%FHDc&f4(IDMq$sl_=7xEbshdw{ zm?#=ZsWhFwt%Jc0x>{5`y2EqSS`z!5($$w|rJ%j_kYer3^&-}r5>P`e>HdS_x$cW}dtjsfYBQ%*_^{xN+?Ib$FdP26rK}2*56|&rqav8v zY}xU_TjYb}G?Engr?A6*uZSbOg2Rf`)tR*TuZ2g4Cg!RRttWDUmcAx6UlPZnnm&Ck zEUJi`_{FAE9jv_#$9oRIdsfL67w6UdDol!uawsc>$>vC#k{g`MWIF)&WJ7^%Yie^FtEnUdPVI44`4lo?4$8alzw zisK!7*)m+y!LJqLt3xFm@$58z;a23}^wZdkBca>aW@;*;ot>kj>Zfk#C|T#Pi~OBD zwdnA;xC+=&NQV^idYxl>w(_3jwtxVYSu&|s5S9>fm=_1m(&~UV*|kWrtFCy}xhs1j zs({YGRMO`5Tp}%~4ebngmk^)sqT9q_P2g3T4 z2Hv0*vk(dQr6AN4EOTKO>p-T*4P+>XNHZ=Yj(S9{#^H%HK&pJ$x(m%bMC6l?$#RPa z;5z(A_Ew&H%M)rqCOq149AFm*SbEuOT-?LR-bUz-t`Fe17}oE_U@-dz&7Z z+| z7I|1S<E8Zc-%>K$Z0RoES-lAJWii9v!UoifR>yzye*0~+f6u8n`{zIY`=9^#A9ghw zj!%aZ97P|tFWXzD=7wRie_Ov`4Fqm;<<^yjqPTyGBqz|=@!jz(2{x2nDqjH#{o7aa zQ&=_(5l`qtV0DQ-=S4 z^ze-SKbnYV{GFXX9I^4~+2r(W41b@n(d6vWX!LJvbl9PbUy%W-L05hYm;7&`*IEvW z&F5R-h_NvJ|1acs{Ja0d{x8w%fNiJ$9{U|*&w%9-8)8Iw>>~Du^x^HB=YJZ!2z?%B zd~l)f7nrh_7w@3Jaqswd>{-f#kkqKMr7RyB&0Tx27{%#ibUYcIKAt>&gf)j6<=D_? ze+OdqlPCeu_n*M;@#ClPW)5gO$ns6Zr!369DD4{ngFK?5}HepFG*K+3~;7Y_@l^`vF`8 zEz{Sqbn|%tza|jFkDmg?gI^sA-?olB22sI3kLuP+Et}@9Rw~?oC_#Wz(gfmDCdBh_ zO6pK-#C}Y_dMO(Z&*)b#CD3L!ZZ3+-Og67ozR!Gr@NZ0+AKI{TkE-jNS50qT)t-^l z)3dXN#adP1HzJ@-;lcQ{RwDK)a2~@y^-{BHsfRzF)JyqI9p7urah3Bncf+Qq$D>hW zDPEz?{ii;jH&v~biua+DIIm$qQ)jRC8F+GiV{Ec(&gfT1rujbDv|8>}s><}5OH~)V z8GmOx5jgXA7YTM3nd~mYcNbaiE)wo8@^N>ODtCGEWb&|HYP=gzRR;j&zfRb*Mg^r> z>Z;148&Uacu~(@o5;c|zqZTCk-1>Ugzfa!((OzKxy&wLz@Bb!~@!7b#{~J9zb^E{D z_}$w656volhDH{=-|VW-Fq?OuEywWh3H*E7XX`%m`jqsl&-kj(!quYB3aAx@eU^I^ z*pLedc?$mu=3DBjQ#3=y02i&4q{gCyH1vT4+R958VJsh#B9FqD%cr#$1QZZKPgi(Q zK~3}6dB!GA>U(`xPUiI^T-m%&nXYB@@)Oi6xtu%sY2 znMXLc=mvVvB*MxCO}!v2vMIflon=3iFb#^sueGhhW8X($Iscds0t|GZNCxbxphHHH zq!O5}8OBQ>rJO((k=f87;`7{?yGUpO74&&55ds*Gq>+z<>oCZdv=;v^7yzy--qXlU zG7{h`%mgY~b0P|zmMHG~!b-3dN|)}4Sxb(&WgSWy8R8)Y-rhM#xzM>aDuywQQ)6W2 zr%4nIOgecqk`q&c2_%@UrG23;5F%lGM>!=pevB$6ToZHnvu!){`t0C^84O7#OY6%E9ArgD?*GM}Q{~NcKUkb%`peX!fCKwJr|^ zC+dq{u!mw?8mMRE<^B15Zhc?N?{f^(n=(XK&Fa{F-vc6-L(>yGQd3%`$@?$f* z9md|(K)RO;ew0Zo;sC=#n`mERQ;oHaDga9fwNu2l$i607q?sFXQsi*>zsX3gXtntt zYLswta#HOmUW${|bP~PHcELK&c%oQF%hX*jL*Qm42Jt1XL9Md{x!P52$iyrL1Ig)H zu}!SWR#dadb8`ByN=x1hsuVdlQP4s_x!`IgCla?TER=}%=;Tx{iq(Hmvh5dM^@Y#? z?02Y++iy@Wx8Fz&-F{gSmvwDMh}>E)W$9)CT`jH7>Xmjjorfu4gTD-;z;0HkyH72C zFW+s0TVC%pXm}@^OXh@m6=@>)rlyc?ny9Ox^(N1n*IxriiGrjo(+(@#r&3dP@1B^X zx;|TJ=TVJC5AYT6hQ=wid%kW)3Z=)@QNYmfwnH|Q!#cHE@HI=b-Zp5Is)33E%O;vt zl?J3e^=8BiHlEn}UL)^lP^&9~ii8(+0~F@S6B;wC^vSFc#vyJUD>~~bc8UJewD}m& zU>gV5viDXRd&Abr+L7D3%VRaA4P;T36iP|3<>5n1^%eyiHZPNkJ9*sZ&oQ?KD!3Jz++(f4782$|DLkx0>DcRShL=}+Ve_=T7g}X7`j{5vE{KP zf|V-VteJ=jAUF+pbQn%dt!?Fu6(X)~)D?^&Ib-(KQxK*wfhP8}?mgw69#;kjH<;*7 z+vIy8AC0`72FgdaLrLJ>QRY*-rQ%F6Q zb`aH%nhmzL@lrf}i&$%6&pl%&D21e4rm>;<4j$R2Qo;dDrUL^=axdpcr)L3QJfJeG zTIfn?3gCGh@vM*IpV^ z_AB`uaJ<0;9h~*60yg+w7~!^bYj5WBhww9}K|!xBakZ)D?`FGO#x$RoJ|M{UXURvi zn^27IS(q~QSCzg+hgDU3FQxH-3{P|vWSt0!qOg1t;8`j76u?|9^wy1uL2hIV!vEmE zCGl46rz@bOh*uj+p}oe9G*N@BYS=n;tB=~+0UlDH0%?3RxzDLq@-x~fMVmpk!uu*3 z4Af8L3Bi3460k)Vw>X%l5tA1wl|ygT70{NItWmUWI#-8T`6?P>XpJ--_gVSIG`O1Y zEmNv3ifoW|Ql&`thI*r3TAFOy>G}Dv8{a~A*2iah0x6Rl4@I<}$Jl)ne+cwkUbJtcm zD;5i$8A{uyBT9q6fu(9bF0Gb3`+)8odQmk|l1+Hv^GLGXE#~+=+CV3zf!Lkemd~0V z*(x?FlWdBE=5qy8ExM`e#K0fhJZ6wvF njr;YlHm#r7;g(gY^yYIrI=P?wxu5&FpY{9y9@luC0Qv|3VG!Go literal 99021 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 diff --git a/docs/index.html b/docs/index.html index 506800859..1256e0723 100644 --- a/docs/index.html +++ b/docs/index.html @@ -16,7 +16,7 @@
    -

    Mixpanel 4.1.4 Docs (83% documented)

    +

    Mixpanel 4.2.0 Docs (0% documented)

    GitHubView on GitHub

    @@ -117,7 +117,7 @@ Type Aliases @@ -288,7 +288,7 @@

    I want to know more!

    diff --git a/docs/search.json b/docs/search.json index 6e08390ae..504b86544 100644 --- a/docs/search.json +++ b/docs/search.json @@ -1 +1 @@ -{"Typealiases.html#/s:8Mixpanel10Propertiesa":{"name":"Properties","abstract":"

    Undocumented

    "},"Protocols/MixpanelType.html#/s:8Mixpanel0A4TypeP013isValidNestedB8AndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"MixpanelType"},"Protocols/MixpanelType.html#/s:8Mixpanel0A4TypeP6equals3rhsSbAaB_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"MixpanelType"},"Protocols/MixpanelDelegate.html#/s:8Mixpanel0A8DelegateP17mixpanelWillFlushySbAA0A8InstanceCF":{"name":"mixpanelWillFlush(_:)","abstract":"

    Asks the delegate if data should be uploaded to the server.

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

    Delegate protocol for controlling the Mixpanel API’s network behavior.

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

    Property keys must be String objects and the supported value types need to conform to MixpanelType."},"Extensions/Dictionary.html#/s:SD8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Dictionary"},"Extensions/Dictionary.html#/s:SD8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Dictionary"},"Extensions/NSArray.html#/s:So7NSArrayC8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"NSArray"},"Extensions/NSArray.html#/s:So7NSArrayC8MixpanelE6equals3rhsSbAC0B4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"NSArray"},"Extensions/Array.html#/s:Sa8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Array"},"Extensions/Array.html#/s:Sa8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Array"},"Extensions/NSNull.html#/s:So6NSNullC8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSNull"},"Extensions/NSNull.html#/s:So6NSNullC8MixpanelE6equals3rhsSbAC0B4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"NSNull"},"Extensions/URL.html#/s:10Foundation3URLV8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"URL"},"Extensions/URL.html#/s:10Foundation3URLV8MixpanelE6equals3rhsSbAD0C4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"URL"},"Extensions/Date.html#/s:10Foundation4DateV8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Date"},"Extensions/Date.html#/s:10Foundation4DateV8MixpanelE6equals3rhsSbAD0C4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Date"},"Extensions/Bool.html#/s:Sb8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Bool"},"Extensions/Bool.html#/s:Sb8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Bool"},"Extensions/Float.html#/s:Sf8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Float"},"Extensions/Float.html#/s:Sf8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Float"},"Extensions/Double.html#/s:Sd8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Double"},"Extensions/Double.html#/s:Sd8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Double"},"Extensions/UInt.html#/s:Su8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"UInt"},"Extensions/UInt.html#/s:Su8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"UInt"},"Extensions/Int.html#/s:Si8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Int"},"Extensions/Int.html#/s:Si8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Int"},"Extensions/NSNumber.html#/s:So8NSNumberC8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSNumber"},"Extensions/NSNumber.html#/s:So8NSNumberC8MixpanelE6equals3rhsSbAC0B4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"NSNumber"},"Extensions/NSString.html#/s:So8NSStringC8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSString"},"Extensions/NSString.html#/s:So8NSStringC8MixpanelE6equals3rhsSbAC0B4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"NSString"},"Extensions/String.html#/s:SS8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"String"},"Extensions/String.html#/s:SS8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"String"},"Extensions/Optional.html#/s:Sq8MixpanelE25isValidNestedTypeAndValueSbyF":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Optional"},"Extensions/Optional.html#/s:Sq8MixpanelE6equals3rhsSbAA0A4Type_p_tF":{"name":"equals(rhs:)","abstract":"

    Undocumented

    ","parent_name":"Optional"},"Extensions/Optional.html":{"name":"Optional"},"Extensions/String.html":{"name":"String"},"Extensions/NSString.html":{"name":"NSString"},"Extensions/NSNumber.html":{"name":"NSNumber"},"Extensions/Int.html":{"name":"Int"},"Extensions/UInt.html":{"name":"UInt"},"Extensions/Double.html":{"name":"Double"},"Extensions/Float.html":{"name":"Float"},"Extensions/Bool.html":{"name":"Bool"},"Extensions/Date.html":{"name":"Date"},"Extensions/URL.html":{"name":"URL"},"Extensions/NSNull.html":{"name":"NSNull"},"Extensions/Array.html":{"name":"Array"},"Extensions/NSArray.html":{"name":"NSArray"},"Extensions/Dictionary.html":{"name":"Dictionary"},"Classes/People.html#/s:8Mixpanel6PeopleC10ignoreTimeSbvp":{"name":"ignoreTime","abstract":"

    controls the $ignore_time property in any subsequent MixpanelPeople operation.","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC3set10propertiesySDySSAA0A4Type_pG_tF":{"name":"set(properties:)","abstract":"

    Set properties on the current user in Mixpanel People.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC3set8property2toySS_AA0A4Type_ptF":{"name":"set(property:to:)","abstract":"

    Convenience method for setting a single property in Mixpanel People.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC7setOnce10propertiesySDySSAA0A4Type_pG_tF":{"name":"setOnce(properties:)","abstract":"

    Set properties on the current user in Mixpanel People, but doesn’t overwrite if","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC5unset10propertiesySaySSG_tF":{"name":"unset(properties:)","abstract":"

    Remove a list of properties and their values from the current user’s profile","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC9increment10propertiesySDySSAA0A4Type_pG_tF":{"name":"increment(properties:)","abstract":"

    Increment the given numeric properties by the given values.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC9increment8property2byySS_SdtF":{"name":"increment(property:by:)","abstract":"

    Convenience method for incrementing a single numeric property by the specified","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC6append10propertiesySDySSAA0A4Type_pG_tF":{"name":"append(properties:)","abstract":"

    Append values to list properties.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC6remove10propertiesySDySSAA0A4Type_pG_tF":{"name":"remove(properties:)","abstract":"

    Removes list properties.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC5union10propertiesySDySSAA0A4Type_pG_tF":{"name":"union(properties:)","abstract":"

    Union list properties.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC11trackCharge6amount10propertiesySd_SDySSAA0A4Type_pGSgtF":{"name":"trackCharge(amount:properties:)","abstract":"

    Track money spent by the current user for revenue analytics and associate","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC12clearChargesyyF":{"name":"clearCharges()","abstract":"

    Delete current user’s revenue history.

    ","parent_name":"People"},"Classes/People.html#/s:8Mixpanel6PeopleC10deleteUseryyF":{"name":"deleteUser()","abstract":"

    Delete current user’s record from Mixpanel People.

    ","parent_name":"People"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8apiTokenSSvp":{"name":"apiToken","abstract":"

    apiToken string that identifies the project to track data to

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8delegateAA0A8Delegate_pSgvp":{"name":"delegate","abstract":"

    The a MixpanelDelegate object that gives control over Mixpanel network activity.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC10distinctIdSSvp":{"name":"distinctId","abstract":"

    distinctId string that uniquely identifies the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC11anonymousIdSSSgvp":{"name":"anonymousId","abstract":"

    anonymousId string that uniquely identifies the device.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC6userIdSSSgvp":{"name":"userId","abstract":"

    userId string that identify is called with.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC22hadPersistedDistinctIdSbSgvp":{"name":"hadPersistedDistinctId","abstract":"

    hadPersistedDistinctId is a boolean value which specifies that the stored distinct_id","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC5aliasSSSgvp":{"name":"alias","abstract":"

    alias string that uniquely identifies the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC6peopleAA6PeopleCSgvp":{"name":"people","abstract":"

    Accessor to the Mixpanel People API object.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC28showNetworkActivityIndicatorSbvp":{"name":"showNetworkActivityIndicator","abstract":"

    Controls whether to show spinning network activity indicator when flushing","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC27trackAutomaticEventsEnabledSbvp":{"name":"trackAutomaticEventsEnabled","abstract":"

    This allows enabling or disabling collecting common mobile events,

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC13flushIntervalSdvp":{"name":"flushInterval","abstract":"

    Flush timer’s interval.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC17flushOnBackgroundSbvp":{"name":"flushOnBackground","abstract":"

    Control whether the library should flush data to Mixpanel when the app","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC26useIPAddressForGeoLocationSbvp":{"name":"useIPAddressForGeoLocation","abstract":"

    Controls whether to automatically send the client IP Address as part of","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC9serverURLSSvp":{"name":"serverURL","abstract":"

    The base URL used for Mixpanel API requests.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:s28CustomDebugStringConvertibleP16debugDescriptionSSvp":{"name":"debugDescription","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC14loggingEnabledSbvp":{"name":"loggingEnabled","abstract":"

    This allows enabling or disabling of all Mixpanel logs at run time.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC4nameSSvp":{"name":"name","abstract":"

    A unique identifier for this MixpanelInstance

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC22minimumSessionDurations6UInt64Vvp":{"name":"minimumSessionDuration","abstract":"

    Undocumented

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC22maximumSessionDurations6UInt64Vvp":{"name":"maximumSessionDuration","abstract":"

    The maximum session duration (ms) that is tracked in automatic events.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8identify10distinctId9usePeople10completionySS_SbyycSgtF":{"name":"identify(distinctId:usePeople:completion:)","abstract":"

    Sets the distinct ID of the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC11createAlias_10distinctId9usePeople11andIdentify10completionySS_SSS2byycSgtF":{"name":"createAlias(_:distinctId:usePeople:andIdentify:completion:)","abstract":"

    The alias method creates an alias which Mixpanel will use to remap one id to another.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC5reset10completionyyycSg_tF":{"name":"reset(completion:)","abstract":"

    Clears all stored properties including the distinct Id.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC7archiveyyF":{"name":"archive()","abstract":"

    Undocumented

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC5flush16performFullFlush10completionySb_yycSgtF":{"name":"flush(performFullFlush:completion:)","abstract":"

    Uploads queued data to the Mixpanel server.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC5track5event10propertiesySSSg_SDySSAA0A4Type_pGSgtF":{"name":"track(event:properties:)","abstract":"

    Tracks an event with properties.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC15trackWithGroups5event10properties6groupsySSSg_SDySSAA0A4Type_pGSgAKtF":{"name":"trackWithGroups(event:properties:groups:)","abstract":"

    Tracks an event with properties and to specific groups.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8getGroup8groupKey0E2IDAA0D0CSS_AA0A4Type_ptF":{"name":"getGroup(groupKey:groupID:)","abstract":"

    Undocumented

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC4time5eventySS_tF":{"name":"time(event:)","abstract":"

    Starts a timer that will be stopped and added as a property when a","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC16eventElapsedTime0C0SdSS_tF":{"name":"eventElapsedTime(event:)","abstract":"

    Retrieves the time elapsed for the named event since time(event:) was called.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC16clearTimedEventsyyF":{"name":"clearTimedEvents()","abstract":"

    Clears all current event timers.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC15clearTimedEvent5eventySS_tF":{"name":"clearTimedEvent(event:)","abstract":"

    Clears the event timer for the named event.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC22currentSuperPropertiesSDySSypGyF":{"name":"currentSuperProperties()","abstract":"

    Returns the currently set super properties.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC20clearSuperPropertiesyyF":{"name":"clearSuperProperties()","abstract":"

    Clears all currently set super properties.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC23registerSuperPropertiesyySDySSAA0A4Type_pGF":{"name":"registerSuperProperties(_:)","abstract":"

    Registers super properties, overwriting ones that have already been set.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC27registerSuperPropertiesOnce_12defaultValueySDySSAA0A4Type_pG_AaF_pSgtF":{"name":"registerSuperPropertiesOnce(_:defaultValue:)","abstract":"

    Registers super properties without overwriting ones that have already been set,","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC23unregisterSuperPropertyyySSF":{"name":"unregisterSuperProperty(_:)","abstract":"

    Removes a previously registered super property.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8setGroup8groupKey0E2IDySS_AA0A4Type_ptF":{"name":"setGroup(groupKey:groupID:)","abstract":"

    Convenience method to set a single group the user belongs to.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8setGroup8groupKey0E3IDsySS_SayAA0A4Type_pGtF":{"name":"setGroup(groupKey:groupIDs:)","abstract":"

    Set the groups this user belongs to.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC8addGroup8groupKey0E2IDySS_AA0A4Type_ptF":{"name":"addGroup(groupKey:groupID:)","abstract":"

    Add a group to this user’s membership for a particular group key

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC11removeGroup8groupKey0E2IDySS_AA0A4Type_ptF":{"name":"removeGroup(groupKey:groupID:)","abstract":"

    Remove a group from this user’s membership for a particular group key

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC14optOutTrackingyyF":{"name":"optOutTracking()","abstract":"

    Opt out tracking.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC13optInTracking10distinctId10propertiesySSSg_SDySSAA0A4Type_pGSgtF":{"name":"optInTracking(distinctId:properties:)","abstract":"

    Opt in tracking.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/s:8Mixpanel0A8InstanceC19hasOptedOutTrackingSbyF":{"name":"hasOptedOutTracking()","abstract":"

    Returns if the current user has opted out tracking.

    ","parent_name":"MixpanelInstance"},"Classes/Mixpanel.html#/s:8MixpanelAAC10initialize5token20trackAutomaticEvents13flushInterval12instanceName23optOutTrackingByDefault19useUniqueDistinctId15superProperties9serverURLAA0A8InstanceCSS_SbSdSSSgS2bSDySSAA0A4Type_pGSgANtFZ":{"name":"initialize(token:trackAutomaticEvents:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)","abstract":"

    Initializes an instance of the API with the given project token.

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/initialize(token:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)":{"name":"initialize(token:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)","abstract":"

    Initializes an instance of the API with the given project token (MAC OS ONLY).

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/s:8MixpanelAAC11getInstance4nameAA0aC0CSgSS_tFZ":{"name":"getInstance(name:)","abstract":"

    Gets the mixpanel instance with the given name

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/s:8MixpanelAAC12mainInstanceAA0aC0CyFZ":{"name":"mainInstance()","abstract":"

    Returns the main instance that was initialized.

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/s:8MixpanelAAC15setMainInstance4nameySS_tFZ":{"name":"setMainInstance(name:)","abstract":"

    Sets the main instance based on the instance name

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/s:8MixpanelAAC14removeInstance4nameySS_tFZ":{"name":"removeInstance(name:)","abstract":"

    Removes an unneeded Mixpanel instance based on its name

    ","parent_name":"Mixpanel"},"Classes/Group.html#/s:8Mixpanel5GroupC3set10propertiesySDySSAA0A4Type_pG_tF":{"name":"set(properties:)","abstract":"

    Sets properties on this group.

    ","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC3set8property2toySS_AA0A4Type_ptF":{"name":"set(property:to:)","abstract":"

    Convenience method for setting a single property in Mixpanel Groups.

    ","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC7setOnce10propertiesySDySSAA0A4Type_pG_tF":{"name":"setOnce(properties:)","abstract":"

    Sets properties on the current Mixpanel Group, but doesn’t overwrite if","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC5unset8propertyySS_tF":{"name":"unset(property:)","abstract":"

    Remove a property and its value from a group’s profile in Mixpanel Groups.

    ","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC6remove3key5valueySS_AA0A4Type_ptF":{"name":"remove(key:value:)","abstract":"

    Removes list properties.

    ","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC5union3key6valuesySS_SayAA0A4Type_pGtF":{"name":"union(key:values:)","abstract":"

    Union list properties.

    ","parent_name":"Group"},"Classes/Group.html#/s:8Mixpanel5GroupC06deleteB0yyF":{"name":"deleteGroup()","abstract":"

    Delete group’s record from Mixpanel Groups.

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

    Access to the Mixpanel Groups API, available through the getGroup function from"},"Classes/Mixpanel.html":{"name":"Mixpanel","abstract":"

    The primary class for integrating Mixpanel with your app.

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

    The class that represents the Mixpanel Instance

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

    Access to the Mixpanel People API, available as an accessible variable from"},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

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

    The following extensions are available globally.

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

    The following protocols are available globally.

    "},"Typealiases.html":{"name":"Type Aliases","abstract":"

    The following type aliases are available globally.

    "}} \ No newline at end of file +{"Typealiases.html#/Properties":{"name":"Properties"},"Protocols/MixpanelType.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"MixpanelType"},"Protocols/MixpanelType.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"MixpanelType"},"Protocols/MixpanelDelegate.html#/mixpanelWillFlush(_:)":{"name":"mixpanelWillFlush(_:)","abstract":"

    Asks the delegate if data should be uploaded to the server.

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

    Delegate protocol for controlling the Mixpanel API’s network behavior.

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

    Property keys must be String objects and the supported value types need to conform to MixpanelType."},"Extensions/Dictionary.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Dictionary"},"Extensions/Dictionary.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Dictionary"},"Extensions/NSArray.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"NSArray"},"Extensions/NSArray.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"NSArray"},"Extensions/Array.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Array"},"Extensions/Array.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Array"},"Extensions/NSNull.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSNull"},"Extensions/NSNull.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"NSNull"},"Extensions/URL.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"URL"},"Extensions/URL.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"URL"},"Extensions/Date.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Date"},"Extensions/Date.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Date"},"Extensions/Bool.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Bool"},"Extensions/Bool.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Bool"},"Extensions/Float.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Float"},"Extensions/Float.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Float"},"Extensions/Double.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Double"},"Extensions/Double.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Double"},"Extensions/UInt.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"UInt"},"Extensions/UInt.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"UInt"},"Extensions/Int.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"Int"},"Extensions/Int.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Int"},"Extensions/NSNumber.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSNumber"},"Extensions/NSNumber.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"NSNumber"},"Extensions/NSString.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"NSString"},"Extensions/NSString.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"NSString"},"Extensions/String.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.","parent_name":"String"},"Extensions/String.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"String"},"Extensions/Optional.html#/isValidNestedTypeAndValue()":{"name":"isValidNestedTypeAndValue()","abstract":"

    Checks if this object has nested object types that Mixpanel supports.

    ","parent_name":"Optional"},"Extensions/Optional.html#/equals(rhs:)":{"name":"equals(rhs:)","parent_name":"Optional"},"Extensions/Optional.html":{"name":"Optional"},"Extensions/String.html":{"name":"String"},"Extensions/NSString.html":{"name":"NSString"},"Extensions/NSNumber.html":{"name":"NSNumber"},"Extensions/Int.html":{"name":"Int"},"Extensions/UInt.html":{"name":"UInt"},"Extensions/Double.html":{"name":"Double"},"Extensions/Float.html":{"name":"Float"},"Extensions/Bool.html":{"name":"Bool"},"Extensions/Date.html":{"name":"Date"},"Extensions/URL.html":{"name":"URL"},"Extensions/NSNull.html":{"name":"NSNull"},"Extensions/Array.html":{"name":"Array"},"Extensions/NSArray.html":{"name":"NSArray"},"Extensions/Dictionary.html":{"name":"Dictionary"},"Classes/People.html#/ignoreTime":{"name":"ignoreTime","abstract":"

    controls the $ignore_time property in any subsequent MixpanelPeople operation.","parent_name":"People"},"Classes/People.html#/set(properties:)":{"name":"set(properties:)","abstract":"

    Set properties on the current user in Mixpanel People.

    ","parent_name":"People"},"Classes/People.html#/set(property:to:)":{"name":"set(property:to:)","abstract":"

    Convenience method for setting a single property in Mixpanel People.

    ","parent_name":"People"},"Classes/People.html#/setOnce(properties:)":{"name":"setOnce(properties:)","abstract":"

    Set properties on the current user in Mixpanel People, but doesn’t overwrite if","parent_name":"People"},"Classes/People.html#/unset(properties:)":{"name":"unset(properties:)","abstract":"

    Remove a list of properties and their values from the current user’s profile","parent_name":"People"},"Classes/People.html#/increment(properties:)":{"name":"increment(properties:)","abstract":"

    Increment the given numeric properties by the given values.

    ","parent_name":"People"},"Classes/People.html#/increment(property:by:)":{"name":"increment(property:by:)","abstract":"

    Convenience method for incrementing a single numeric property by the specified","parent_name":"People"},"Classes/People.html#/append(properties:)":{"name":"append(properties:)","abstract":"

    Append values to list properties.

    ","parent_name":"People"},"Classes/People.html#/remove(properties:)":{"name":"remove(properties:)","abstract":"

    Removes list properties.

    ","parent_name":"People"},"Classes/People.html#/union(properties:)":{"name":"union(properties:)","abstract":"

    Union list properties.

    ","parent_name":"People"},"Classes/People.html#/trackCharge(amount:properties:)":{"name":"trackCharge(amount:properties:)","abstract":"

    Track money spent by the current user for revenue analytics and associate","parent_name":"People"},"Classes/People.html#/clearCharges()":{"name":"clearCharges()","abstract":"

    Delete current user’s revenue history.

    ","parent_name":"People"},"Classes/People.html#/deleteUser()":{"name":"deleteUser()","abstract":"

    Delete current user’s record from Mixpanel People.

    ","parent_name":"People"},"Classes/MixpanelInstance.html#/apiToken":{"name":"apiToken","abstract":"

    apiToken string that identifies the project to track data to

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/delegate":{"name":"delegate","abstract":"

    The a MixpanelDelegate object that gives control over Mixpanel network activity.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/distinctId":{"name":"distinctId","abstract":"

    distinctId string that uniquely identifies the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/anonymousId":{"name":"anonymousId","abstract":"

    anonymousId string that uniquely identifies the device.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/userId":{"name":"userId","abstract":"

    userId string that identify is called with.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/hadPersistedDistinctId":{"name":"hadPersistedDistinctId","abstract":"

    hadPersistedDistinctId is a boolean value which specifies that the stored distinct_id","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/alias":{"name":"alias","abstract":"

    alias string that uniquely identifies the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/people":{"name":"people","abstract":"

    Accessor to the Mixpanel People API object.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/showNetworkActivityIndicator":{"name":"showNetworkActivityIndicator","abstract":"

    Controls whether to show spinning network activity indicator when flushing","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/trackAutomaticEventsEnabled":{"name":"trackAutomaticEventsEnabled","abstract":"

    This allows enabling or disabling collecting common mobile events,

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/flushInterval":{"name":"flushInterval","abstract":"

    Flush timer’s interval.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/flushOnBackground":{"name":"flushOnBackground","abstract":"

    Control whether the library should flush data to Mixpanel when the app","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/useIPAddressForGeoLocation":{"name":"useIPAddressForGeoLocation","abstract":"

    Controls whether to automatically send the client IP Address as part of","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/flushBatchSize":{"name":"flushBatchSize","abstract":"

    The flushBatchSize property determines the number of events sent in a single network request to the Mixpanel server.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/serverURL":{"name":"serverURL","abstract":"

    The base URL used for Mixpanel API requests.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/debugDescription":{"name":"debugDescription","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/loggingEnabled":{"name":"loggingEnabled","abstract":"

    This allows enabling or disabling of all Mixpanel logs at run time.

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

    A unique identifier for this MixpanelInstance

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/minimumSessionDuration":{"name":"minimumSessionDuration","abstract":"

    The minimum session duration (ms) that is tracked in automatic events.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/maximumSessionDuration":{"name":"maximumSessionDuration","abstract":"

    The maximum session duration (ms) that is tracked in automatic events.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/identify(distinctId:usePeople:completion:)":{"name":"identify(distinctId:usePeople:completion:)","abstract":"

    Sets the distinct ID of the current user.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/createAlias(_:distinctId:usePeople:andIdentify:completion:)":{"name":"createAlias(_:distinctId:usePeople:andIdentify:completion:)","abstract":"

    The alias method creates an alias which Mixpanel will use to remap one id to another.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/reset(completion:)":{"name":"reset(completion:)","abstract":"

    Clears all stored properties including the distinct Id.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/archive()":{"name":"archive()","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/flush(performFullFlush:completion:)":{"name":"flush(performFullFlush:completion:)","abstract":"

    Uploads queued data to the Mixpanel server.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/track(event:properties:)":{"name":"track(event:properties:)","abstract":"

    Tracks an event with properties.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/trackWithGroups(event:properties:groups:)":{"name":"trackWithGroups(event:properties:groups:)","abstract":"

    Tracks an event with properties and to specific groups.","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/getGroup(groupKey:groupID:)":{"name":"getGroup(groupKey:groupID:)","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/time(event:)":{"name":"time(event:)","abstract":"

    Starts a timer that will be stopped and added as a property when a","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/eventElapsedTime(event:)":{"name":"eventElapsedTime(event:)","abstract":"

    Retrieves the time elapsed for the named event since time(event:) was called.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/clearTimedEvents()":{"name":"clearTimedEvents()","abstract":"

    Clears all current event timers.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/clearTimedEvent(event:)":{"name":"clearTimedEvent(event:)","abstract":"

    Clears the event timer for the named event.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/currentSuperProperties()":{"name":"currentSuperProperties()","abstract":"

    Returns the currently set super properties.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/clearSuperProperties()":{"name":"clearSuperProperties()","abstract":"

    Clears all currently set super properties.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/registerSuperProperties(_:)":{"name":"registerSuperProperties(_:)","abstract":"

    Registers super properties, overwriting ones that have already been set.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/registerSuperPropertiesOnce(_:defaultValue:)":{"name":"registerSuperPropertiesOnce(_:defaultValue:)","abstract":"

    Registers super properties without overwriting ones that have already been set,","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/unregisterSuperProperty(_:)":{"name":"unregisterSuperProperty(_:)","abstract":"

    Removes a previously registered super property.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/setGroup(groupKey:groupID:)":{"name":"setGroup(groupKey:groupID:)","abstract":"

    Convenience method to set a single group the user belongs to.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/setGroup(groupKey:groupIDs:)":{"name":"setGroup(groupKey:groupIDs:)","abstract":"

    Set the groups this user belongs to.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/addGroup(groupKey:groupID:)":{"name":"addGroup(groupKey:groupID:)","abstract":"

    Add a group to this user’s membership for a particular group key

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/removeGroup(groupKey:groupID:)":{"name":"removeGroup(groupKey:groupID:)","abstract":"

    Remove a group from this user’s membership for a particular group key

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/optOutTracking()":{"name":"optOutTracking()","abstract":"

    Opt out tracking.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/optInTracking(distinctId:properties:)":{"name":"optInTracking(distinctId:properties:)","abstract":"

    Opt in tracking.

    ","parent_name":"MixpanelInstance"},"Classes/MixpanelInstance.html#/hasOptedOutTracking()":{"name":"hasOptedOutTracking()","abstract":"

    Returns if the current user has opted out tracking.

    ","parent_name":"MixpanelInstance"},"Classes/Mixpanel.html#/initialize(token:trackAutomaticEvents:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)":{"name":"initialize(token:trackAutomaticEvents:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)","abstract":"

    Initializes an instance of the API with the given project token.

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/initialize(token:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)":{"name":"initialize(token:flushInterval:instanceName:optOutTrackingByDefault:useUniqueDistinctId:superProperties:serverURL:)","abstract":"

    Initializes an instance of the API with the given project token (MAC OS ONLY).

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/getInstance(name:)":{"name":"getInstance(name:)","abstract":"

    Gets the mixpanel instance with the given name

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/mainInstance()":{"name":"mainInstance()","abstract":"

    Returns the main instance that was initialized.

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/setMainInstance(name:)":{"name":"setMainInstance(name:)","abstract":"

    Sets the main instance based on the instance name

    ","parent_name":"Mixpanel"},"Classes/Mixpanel.html#/removeInstance(name:)":{"name":"removeInstance(name:)","abstract":"

    Removes an unneeded Mixpanel instance based on its name

    ","parent_name":"Mixpanel"},"Classes/Group.html#/set(properties:)":{"name":"set(properties:)","abstract":"

    Sets properties on this group.

    ","parent_name":"Group"},"Classes/Group.html#/set(property:to:)":{"name":"set(property:to:)","abstract":"

    Convenience method for setting a single property in Mixpanel Groups.

    ","parent_name":"Group"},"Classes/Group.html#/setOnce(properties:)":{"name":"setOnce(properties:)","abstract":"

    Sets properties on the current Mixpanel Group, but doesn’t overwrite if","parent_name":"Group"},"Classes/Group.html#/unset(property:)":{"name":"unset(property:)","abstract":"

    Remove a property and its value from a group’s profile in Mixpanel Groups.

    ","parent_name":"Group"},"Classes/Group.html#/remove(key:value:)":{"name":"remove(key:value:)","abstract":"

    Removes list properties.

    ","parent_name":"Group"},"Classes/Group.html#/union(key:values:)":{"name":"union(key:values:)","abstract":"

    Union list properties.

    ","parent_name":"Group"},"Classes/Group.html#/deleteGroup()":{"name":"deleteGroup()","abstract":"

    Delete group’s record from Mixpanel Groups.

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

    Access to the Mixpanel Groups API, available through the getGroup function from"},"Classes/Mixpanel.html":{"name":"Mixpanel","abstract":"

    The primary class for integrating Mixpanel with your app.

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

    The class that represents the Mixpanel Instance

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

    Access to the Mixpanel People API, available as an accessible variable from"},"Classes.html":{"name":"Classes","abstract":"

    The following classes are available globally.

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

    The following extensions are available globally.

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

    The following protocols are available globally.

    "},"Typealiases.html":{"name":"Type Aliases","abstract":"

    The following type aliases are available globally.

    "}} \ No newline at end of file diff --git a/docs/undocumented.json b/docs/undocumented.json index 79ef330c7..f6c7d87ec 100644 --- a/docs/undocumented.json +++ b/docs/undocumented.json @@ -1,145 +1,6 @@ { "warnings": [ - { - "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelInstance.swift", - "line": 38, - "symbol": "Properties", - "symbol_kind": "source.lang.swift.decl.typealias", - "warning": "undocumented" - }, - { - "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelInstance.swift", - "line": 175, - "symbol": "MixpanelInstance.minimumSessionDuration", - "symbol_kind": "source.lang.swift.decl.var.instance", - "warning": "undocumented" - }, - { - "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelInstance.swift", - "line": 830, - "symbol": "MixpanelInstance.archive()", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelInstance.swift", - "line": 1082, - "symbol": "MixpanelInstance.getGroup(groupKey:groupID:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", - "line": 20, - "symbol": "MixpanelType.equals(rhs:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", - "line": 38, - "symbol": "Optional.equals(rhs:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", - "line": 72, - "symbol": "String.equals(rhs:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", - "line": 87, - "symbol": "NSString.equals(rhs:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", - "line": 104, - "symbol": "NSNumber.equals(rhs:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", - "line": 119, - "symbol": "Int.equals(rhs:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", - "line": 134, - "symbol": "UInt.equals(rhs:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", - "line": 150, - "symbol": "Double.equals(rhs:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", - "line": 166, - "symbol": "Float.equals(rhs:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", - "line": 180, - "symbol": "Bool.equals(rhs:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", - "line": 195, - "symbol": "Date.equals(rhs:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", - "line": 210, - "symbol": "URL.equals(rhs:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", - "line": 225, - "symbol": "NSNull.equals(rhs:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", - "line": 246, - "symbol": "Array.equals(rhs:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", - "line": 283, - "symbol": "NSArray.equals(rhs:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - }, - { - "file": "/Users/jaredmcfarland/Developer/mixpanel-swift/Sources/MixpanelType.swift", - "line": 320, - "symbol": "Dictionary.equals(rhs:)", - "symbol_kind": "source.lang.swift.decl.function.method.instance", - "warning": "undocumented" - } + ], - "source_directory": "/Users/jaredmcfarland/Developer/mixpanel-swift" + "source_directory": "/Users/zihejia/Documents/Projects/Develop/mixpanel-swift" } \ No newline at end of file