From a30935bcd5014222a58f78bd40eb81d9b5728aad Mon Sep 17 00:00:00 2001 From: Younho Park Date: Wed, 28 Jun 2017 20:03:44 +0900 Subject: [PATCH] Add .NET Push and Push Server Guide PS2: Reviewed PS7: Reviewed push_server.htm Change-Id: Ic45c2ed40d7701bac8b23ccd29a45c8e2311f204 Signed-off-by: Younho Park --- org.tizen.guides/html/dotnet/push.htm | 531 ++++++++ org.tizen.guides/html/dotnet/push_server.htm | 1275 ++++++++++++++++++++ .../html/images/push_state_transitions_cs.png | Bin 0 -> 101807 bytes 3 files changed, 1806 insertions(+) create mode 100644 org.tizen.guides/html/dotnet/push.htm create mode 100644 org.tizen.guides/html/dotnet/push_server.htm create mode 100644 org.tizen.guides/html/images/push_state_transitions_cs.png diff --git a/org.tizen.guides/html/dotnet/push.htm b/org.tizen.guides/html/dotnet/push.htm new file mode 100644 index 0000000..bd025f9 --- /dev/null +++ b/org.tizen.guides/html/dotnet/push.htm @@ -0,0 +1,531 @@ + + + + + + + + + + + + + Push + + + +
+
+

Mobile C# TV C#

+
+ +
+

Dependencies

+
    +
  • Tizen 4.0 Higher for Mobile and TV
  • +
+

Content

+ +

Related Info

+ +
+
+ +
+

Push

+ +

You can push events from an application server to your application on a Tizen device.

+ +

Once your application is successfully registered in the push server through the push service (daemon) on the device, your application server can send push messages to the application on that particular device.

+

If a push message arrives when the application is running, the message is automatically delivered to the application. If the application is not running, the push service makes a sound or vibrates and adds a ticker or a badge notification to notify the user. By touching this notification, the user can check the message. If the application server sends a message with a LAUNCH option, the push service forcibly launches the application and hands over the message to the application.

+

The main features of the Tizen.Messaging.Push namespace include:

+ + +

Figure: Push messaging service

+

Push messaging service

+ +

Service Architecture

+

The following figure illustrates the service architecture of the Tizen push messaging service.

+

Figure: Service architecture

+

Service architecture

+

The following steps illustrate a typical scenario for using the push messaging service on a Tizen device:

+
    +
  1. The application on the device registers for the push messaging service.
  2. +
  3. When an application is installed and launched, the device establishes a push session with the Tizen Server by sending a registration request to the Tizen push server through the push service. +

    The push session is managed by the Tizen server and device platform, so there is no need to create any code to manage it within the application.

  4. +
  5. If the registration request is approved, the application receives a registration ID through the push service. The registration ID is a unique key used to identify the application installed on that particular device and route the push message. +

    The application delivers the registration ID to the application server. This registration ID is used to identify the application installed on that particular device.

  6. +
  7. When the application server needs to send a push message to the application on the particular device, it calls the Tizen server's open API to send the message together with the registration ID. (For more information for server developers on sending push messages, see Sending Push Notifications.) +

    A text message of up to 1024 bytes can be sent in a push message. If the application needs to download a large amount of data, the application server sends a link to the data in the push message.

    +
  8. +
  9. When the Tizen push server receives the message and the registration ID, it checks which device has the application with the particular registration ID and then routes the message to that device.
  10. +
  11. When the push service receives the message and the registration ID, it sends the message to the destination application, which receives the push message.
  12. +
+ +

Prerequisites

+ +

To enable your application to use the push functionality:

+
    +
  1. +

    To use the Tizen.Messaging.Push namespace, the application has to request permission by adding the following privilege to the tizen-manifest.xml file:

    +
    +<privileges>
    +   <privilege>http://tizen.org/privilege/push</privilege>
    +</privileges>
    +
    +
  2. +
  3. +

    Make sure the following requirements are fulfilled:

    +
      +
    1. Internet access +

      To connect to the Tizen push server and receive notifications from it, the target device or emulator must be able to contact any IP address with the port 5223. If you are in an enterprise network, ensure that the proxy setting in your local network allows outgoing traffic destined for this port number.

    2. +
    3. Package ID +

      When you create a project in the Tizen Studio, you are given the package ID (randomly generated by the Tizen Studio or entered by yourself). The Tizen push server identifies your applications using the package ID.

    4. +
    5. Permission to Tizen push servers +

      To use the push messaging service, the application needs the permission to access the Tizen push server. Request the permission from the Tizen push service team using one of the following online request forms:

      + +

      When the team approves the request, you receive a push app ID corresponding to your package ID.

      +
    6. +
    +
  4. + +
  5. To use the methods and properties of the Tizen.Messaging.Push namespace, include it in your application: +
    +using Tizen.Messaging.Push;
    +
    +
  6. +
+ +
+ Note + The push service supports launching an application in the background. Remember that you can deliver application data to your application without an unwanted UI launch. +
+ +

Connecting to the Push Service

+ +

To manage push service connections:

+
    +
  1. Define event handlers: +
      +
    • EventHandlerStateChanged() is triggered when the connection state changes.
    • +
    • EventHandlerNotificationReceived() is triggered when the push notification is received from the push service.
    • +
    + +
    +public static void EventHandlerStateChanged(object sender, PushConnectionStateEventArgs e)
    +{
    +    /// State change events
    +};
    +
    +public static void EventHandlerNotificationReceived(object sender, PushMessageEventArgs e)
    +{
    +    /// Notification received events
    +};
    +
    +
  2. +
  3. Register the event handlers for the StateChanged and NotificationReceived events of the Tizen.Messaging.Push.PushClient class and connect to the push service with the PushServiceConnect() method: + +
    +try
    +{
    +    string pushAppId = "YOUR_PUSH_APP_ID";
    +
    +    PushClient.StateChanged += EventHandlerStateChanged;
    +    PushClient.NotificationReceived += EventHandlerNotificationReceived;
    +
    +    PushClient.PushServiceConnect(pushAppId);
    +    PushClient.GetUnreadNotifications();
    +}
    +catch (Exception e)
    +{
    +    Console.WriteLine("Exception occurred" + e.ToString());
    +}
    +
    + +

    After calling the PushServiceConnect() method, the application establishes a socket connection to the push service:

    +
      +
    • The YOUR_PUSH_APP_ID parameter is the push app ID received from the Tizen push server team when the access to the server was requested. Keep this push app ID confidential, otherwise your push notifications can be hijacked by malicious applications.
    • +
    • If the PushServiceConnect() method catches any exception, it means the connection to the service failed. This happens most likely when the push privilege is not added into the application manifest.
    • +
    + +

    If the connection with the push service succeeds, the application must request the unread notification messages sent during the disconnected state by using the GetUnreadNotification() method.

    + +

    Establish a connection to the push service when the application is launched and disconnect from the service when it terminates. The application can be resumed after being paused. To ensure that push notifications are handled fluently, the PushServiceConnect() method must be called when the application is resumed.

    +
  4. + + +
  5. Disconnect from the push service. +

    When the application terminates or no longer uses the push service, close the connection using the PushServiceDisconnect() method.

    + +

    The PushServiceDisconnect() method returns all the resources allocated for the connection.

    + +
    +PushClient.PushServiceDisconnect();
    +
    + +

    The connection is automatically closed when the application terminates. Hence, if the application uses the push service while being launched, it does not need this method.

    + +

    The application can also disconnect the service in the middle of the application operation. If you add a toggle switch to the application for switching the push service on and off, call this method when the service is switched off. Do not call this method inside any event handlers, however, since it can cause the application to crash.

    +

    The application can be paused by pressing the Home or Back key. For a proper push operation, the PushServiceDisconnect() method must be called when the application is paused.

    +
  6. + +
  7. Handle state transitions. +

    After the connection to the service is made, the application is notified whenever the connection state changes. This notification is conducted through the EventHandlerStateChanged() event handler. The following figure illustrates the possible states of the push service.

    + +

    Push service state transitions

    + +

    Once launched, the application is in the Initial state. When the application establishes a connection to the service using the PushServiceConnect() method, the state becomes either Unregistered or Registered:

    +
      +
    • If the application is currently registered to the push server, the service forces it to transit from the Initial state to the Registered state. In this case, the application can request deregistration from the push server using the PushServiceDeregister() method. If this request is approved by the push server, the state transits to Unregistered.
    • +
    • If the application is not currently registered to the push server, the state transits from the Initial state to the Unregistered state. In this case, the application can request registration to the push server using the PushServiceRegister() method. If this request is approved by the push server, the state transits to Registered.
    • +
    • When an error occurs, the state transits to Error.
    • +
    + +

    When the current state transits, the EventHandlerStateChanged() event handler is called and the new state is obtained. Determine the application actions based on the new state:

    + +
    +public static void EventHandlerStateChanged(object sender, PushConnectionStateEventArgs e)
    +{
    +    switch (e.state)
    +    {
    +        case PushConnectionStateEventArgs.PushState.Unregistered:
    +            Console.WriteLine("Arrived at STATE_UNREGISTERED");
    +            OnStateUnregistered();
    +            break;
    +        case PushConnectionStateEventArgs.PushState.Registered:
    +            Console.WriteLine("Arrived at STATE_REGISTERED");
    +            OnStateRegistered();
    +            break;
    +        case PushConnectionStateEventArgs.PushState.StateError:
    +            Console.WriteLine("Arrived at STATE_ERROR" + e.Error);
    +            OnStateError();
    +            break;
    +        default:
    +            Console.WriteLine("Unknown State");
    +            break;
    +    }
    +}
    +
    + +

    In the above example, the OnStateRegistered(), OnStateUnregistered(), and OnStateError() methods contain the actions for the Registered, Unregistered, and StateError states, respectively. The application does not need to handle the Initial state, because it is maintained internally, and this event handler is never invoked in that state. The e.Error is the error message from the push service when the state becomes StateError.

    +

    The registration state is subject to change. Consequently, make sure that the application connects to the push service whenever it is launched.

    +
  8. +
+ +

Registering with the Push Server

+ +

To receive push notifications, the application must send a registration request to the Tizen push server. When the server receives this request, it assigns a registration ID that is unique to the application on the particular device. When sending a notification from your application server, this registration ID is used as a destination address of the application. If the application no longer needs to receive push notifications, it needs to send a deregistration request to the server.

+

To register with the push server:

+
    +
  1. Request registration. +

    After connecting to the push service, request registration using the PushServerRegister() method of the Tizen.Messaging.Push.PushClient class.

    + +
    +public static void OnStateUnregistered()
    +{
    +    Task<ServerResponse> tr = PushClient.PushServerRegister();
    +    tr.GetAwaiter().OnCompleted() =>
    +    {
    +        ServerResponse res = tr.Result;
    +    }
    +}
    +
    + +

    The OnStateUnregistered() method containing the PushServiceRegister() method is called when the state transits to Unregistered. This sample application is designed to send the registration request as soon as it is connected to the push service. If the application requires users to log in to the service, this registration request must be sent after the login process is complete.

    + +

    The registration request is non-blocking. If the push service successfully sends the request to the server and receives an approval, the res value is Success.

    + +

    When an error occurs in the middle of the registration process, the reason is returned. For example, if the push server is not responding, the ServerResponse res returns Timeout. In this case, the application does not need to request registration again because the push service keeps the previous request and sends it when the network becomes online.

    +
  2. + +
  3. Handle the transit to the Registered state. +

    The application transits to the Registered state in one of the following cases:

    +
      +
    • The registration request sent at the Unregistered state is approved.
    • +
    • The already-registered application at the Initial state is successfully connected to the push service.
    • +
    + +

    In both cases, the EventHandlerStateChanged() is called with the Registered value. The application calls the OnStateRegistered() method immediately, as shown in the state transitions. When defining the actions inside the method, keep the following points in mind:

    +
      +
    • If the application has already been registered, request the push service for any unread notifications that have arrived before the application is launched. +

      Request the unread notifications asynchronously. If there is such a notification, it can be received through the EventHandlerNotificationReceived() event handler after the OnStateRegistered() method returns.

    • +
    • If the application is newly registered, send the registration ID issued by the push server to your application server. +

      If the ID is new or updated, you need to send it to your application server. This ID is used as a destination address to the application on a particular device. If the application has already sent the ID, you can skip this step.

    • +
    + +
    +public static void OnStateRegistered()
    +{
    +    /// Request unread notifications to the push service
    +    /// EventHandlerNotificationReceived() is called if there are unread notifications
    +    PushClient.GetUnreadNotifications();
    +
    +    /// Get the registration ID
    +    string id = PushClient.GetRegistrationId();
    +
    +    /// Send registration ID to your application server if necessary
    +}
    +
    +
  4. + +
  5. Request deregistration. +

    When the application no longer wants to receive push notifications, use the following method to request deregistration:

    + +
    +Task<ServerResponse> tu = PushClient.PushServerUnregister();
    +tu.GetAwaiter().OnCompleted(() =>
    +{
    +    ServerResponse res = tu.Result;
    +}
    +
    + +
    + Note + The PushServiceUnregister() method is not used if the application is intended to receive push notifications continuously while it is installed on the device. When the application is uninstalled, the push service detects the event and deregisters the application automatically. +

    On the other hand, if the application wants to receive push notifications only when a user logs in, the PushServiceUnregister() method must be called whenever the user logs out.

    +
    +
  6. +
+ + +

Managing Security

+ +

When you send a notification with sensitive information, be aware of the chance that the notification gets hijacked by someone else. It is your responsibility to keep such sensitive information safe from malicious access. The following rules are strongly recommended:

+ +
    +
  • Keep the push application ID confidential. +

    If the application ID is exposed, hackers can try to hijack notifications using a fake application with the exposed ID.

  • +
  • Do not store the registration ID on the device. +

    The registration ID can be considered as the destination address for notifications. Without the ID, hackers cannot send fake notifications to your application.

  • +
  • Encrypt sensitive information. +

    When you send sensitive information, such as personal information and financial transactions, encrypt it and load it to the notification as a payload instead of the message field. When the notification arrives at the device, the application decrypts the payload and retrieves the sensitive information.

  • +
  • Do not hardcode the AppSecret in the source code. +

    The AppSecret is a key to accessing the push server for sending notifications. If notifications are sent from your application server, the application does not need to know the AppSecret at all. Keep the AppSecret on the server and do not load any related information in the application. If you want device-to-device notification delivery without your application server, the application needs the AppSecret to send a notification from a device. In this case, it is your responsibility to keep the AppSecret safe.

  • +
+ + +

Sending Push Notifications

+ +

Once the application successfully sends its registration ID to the application server, you are ready to send push notifications from the application server to the application on that particular device. This use case describes how to send a simple push notification to the device. For advanced features, see the Push Server guide for server developers.

+ +

The following example shows a sample push notification:

+
    +
  • URI: See the Push RQM (Request Manager) server URLs table.
  • +
  • Method: HTTP POST
  • +
  • Header: +
    +appID: 1234567890987654
    +appSecret: dYo/o/m11gmWmjs7+5f+2zLNVOc=
    +
    +
  • +
  • Body: +
    +{
    +    "regID": "0501a53f4affdcbb98197f188345ff30c04b-5001",
    +    "requestID": "01231-22EAX-223442",
    +    "message": "badgeOption=INCREASE&badgeNumber=1&action=ALERT&alertMessage=Hi",
    +    "appData": "{id:asdf&passwd:1234}", /* Optional, if the message field is not empty */
    +}
    +
    +
  • +
+ +

To send a notification:

+ +
    +
  1. Prepare the appID, appSecret, regID, and requestID: +
      +
    • The appID and appSecret values are given in the email message that you receive when requesting permission to use Tizen push servers.
    • +
    • The regID value is the one that the application server received from your application installed on a Tizen device. Depending on the regID value, the URI of the server to which your application server sends the notification varies.
    • +
    • The requestID value is used to identify the notification in the push server. When your application server sends notifications using the same requestID value, the last notification overwrites all the previous notifications that are not delivered yet.
    • +
    +
  2. + +
  3. Use the message field to describe how to process the notification. +

    The message field contains not only the message to show in the quick panel on the device, but also the behaviors that the device must take when receiving the notification. The message field is a string that consists of key-value pairs. The available pair options are given in the following table.

    + +

    Table: Message field key-value pairs

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    KeyValueDescription
    actionALERT: Store the message and alert the user. +

    SILENT: Store the message without alerting the user.

    +

    DISCARD: Discard the message, if the application is not up and running.

    +

    LAUNCH: Forcibly launch the application and deliver the notification.

    +

    BACKGROUNDLAUNCH: Launch the application in the background and deliver the notification.

    Action to be performed if the application is not running. If no action is defined, the default behavior is SILENT.
    alertMessageUp to 127 bytesAlert message shown to the user in the quick panel. If the action is not set as ALERT, this value is meaningless.
    badgeOptionINCREASE: Increase the badge number by the given value. +

    DECREASE: Decrease the badge number by the given value.

    +

    SET: Set badge number to the given value.

    Option for updating the icon badge number. If the action is set as DISCARD, the badgeOption is ignored. If the badge option is not included, the icon badge number remains unchanged.
    badgeNumber0-999-
    + +

    For example, to show a "Hi" message in the quick panel and increase the badge count by 1 when the notification arrives at the device, the message field of the notification must be the following:

    + +
    +"badgeOption=INCREASE&badgeNumber=1&action=ALERT&alertMessage=Hi"
    +
    + +

    If you want to deliver the notification directly to your application, the message field must be the following:

    +
    +"action=LAUNCH"
    +
    +

    When the push service on the target device receives a notification with this message, it launches your application and delivers the notification. For more information, see how to receive notifications when the application is not running.

    + +

    The message field takes effect only when the application is not running (more precisely, when the application is not connected to the push service). If a notification with the above message field arrives at the device where the application is running, the push service delivers the notification directly to the application. It does not show the "Hi" message in the quick panel or increase the badge count.

    +
  4. +
  5. Load your own data to the appData field as a string. +

    This use case focuses on how an application developer can construct a notification. For advanced features, see the Push Server guide for server developers.

    +
  6. +
+ +

Receiving Push Notifications

+ +

When a notification arrives at the device, its delivery mechanism depends on whether the application is running.

+ +

To handle incoming push notifications:

+ +
    +
  • Receive notifications when the application is running. +

    When a notification arrives to the application while it is running (more precisely, while the application is connected to the service), the EventHandlerNotificationReceived() event handler is called. You can handle the received notification in the event handler.

    +

    The following example shows how the application can retrieve the app data (payload), message, and timestamp from the received notification. When the EventHandlerNotificationReceived() event handler is called, you can retrieve the app data, message, and time stamp from e.AppData, e.Message, and e.ReceivedAt respectively.

    + +
    +public static void EventHandlerNotificationReceived(object sender, PushMessageEventArgs e)
    +{
    +    Console.WriteLine("Notification Data: " + e.AppData);
    +    Console.WriteLine("Notification Message: " + e.Message);
    +    Console.WriteLine("Notification Timestamp: " + e.ReceivedAt);
    +    Console.WriteLine("Notification RequestId: " + e.RequestId);
    +    Console.WriteLine("Notification Sender: " + e.Sender);
    +    Console.WriteLine("Notification SessionInfo: " + e.SessionInfo);
    +    Console.WriteLine("Notification Type: " + e.Type);
    +}
    +
    +
  • + +
  • Receive notifications when the application is not running. +

    If the notification arrives when the application is not running, it can be handled in 3 ways:

    +
      +
    • Forcibly launch the application and deliver the notification to it. +

      You need to set the action to LAUNCH in the message field when sending the notification from the application server. When the notification action arrives at the device, the push service forcibly launches the application and delivers the notification.

      +

      By the way, when the application is launched by the push service, you need to determine the reason for the application launch and react to it appropriately.

      + +

      The push service provides launch types when the application is launched by the service. Use the following code to figure out why the application is launched in both cases of receiving notification and changing registration state.

      +
        +
      1. Get the requested application control: +
        +public static Tizen.Applications.AppControl _appCtrl;
        +public static Tizen.Applications.AppControl.ExtraDataCollection _extraDataSet;
        +
        +_appCtrl = new AppControl();
        +_extraDataSet = _appCtrl.ExtraData;
        +
        +
      2. +
      3. Determine the reason for the application launch. If the reason for the launch is a notification, retrieve the latest push message. +
        +string GettedValue = "";
        +bool isGetted = _extraDataSet.TryGet("http://tizen.org/appcontrol/data/push/launch_type", out GettedValue);
        +
        +if (isGetted)
        +{
        +    if (GettedValue == "notification")
        +        /// Add your code here for when push messages arrive
        +    else if (GettedValue == "registration_change")
        +        /// Add your code here for when registration state is changed
        +}
        +
        +
      4. +
      +
    • + +
    • Store the notification at the push service database and request it later when the application is launched. +

      You need to set the action to ALERT or SILENT in the message field when sending the notification from the application server. When such a notification arrives at the device, the push service keeps the notification in the database and waits for the request from the application.

      +

      You can request for unread notifications from the push service. The request can be performed after connecting to the push server when the application is launched.

      +
      +PushClient.GetUnreadNotifications();
      +
      +

      The difference between the ALERT and SILENT actions is that the former shows an alert message in the quick panel and changes the badge count, while the latter does not. If the user clicks the alert message in the quick panel, the push service forcibly launches the application and delivers the notification through the app control.

    • + +
    • Discard the notification. +

      You need to set the action to DISCARD in the message field when sending the notification from the application server. When such a notification arrives at the device, the push service delivers the notification only when the application is up and running. Otherwise, the push service does not store the notification and discards it.

    • +
    +
  • +
+ + + +
+ +Go to top + + + + + + + \ No newline at end of file diff --git a/org.tizen.guides/html/dotnet/push_server.htm b/org.tizen.guides/html/dotnet/push_server.htm new file mode 100644 index 0000000..34f3684 --- /dev/null +++ b/org.tizen.guides/html/dotnet/push_server.htm @@ -0,0 +1,1275 @@ + + + + + + + + + + + + + Push Server + + + +
+
+

Mobile C# TV C#

+
+ +
+

Dependencies

+
    +
  • Tizen 4.0 Higher for Mobile and TV
  • +
+

Content

+ +

Related Info

+ +
+
+ +
+

Push Server

+ +

You can push events from an application server to your application on a Tizen device. If the message sending fails for any reason, an error code identifying the failure reason is returned. You can use the error code to determine how to handle the failure.

+ +

The main features of the Tizen.Messaging.Push namespace for server developers include:

+ + +

Sending Push Notifications

+ +

You can send notifications to your applications installed on Tizen devices. The basics of sending push notifications are covered in the Push guide. This use case covers more advanced information, such as sending multiple notifications in one request and sending multicast notifications.

+ +

To send push notifications:

+ +
    +
  1. Determine the RQM server. +

    The request manager (RQM) servers collect your push notifications before sending them to the applications. The RQM server must be chosen based on the first 2 digits of the registration ID.

    + +

    Table: Push RQM server URLs

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Prefix of the regIdRegionURL
    00US Easthttps://useast.push.samsungosp.com:8090/spp/pns/api/push
    02Asia Pacific Southeasthttps://apsoutheast.push.samsungosp.com:8090/spp/pns/api/push
    03EU Westhttps://euwest.push.samsungosp.com:8090/spp/pns/api/push
    04Asia Pacific Northeasthttps://apnortheast.push.samsungosp.com:8090/spp/pns/api/push
    05Koreahttps://apkorea.push.samsungosp.com:8090/spp/pns/api/push
    06Chinahttps://apchina.push.samsungosp.com.cn:8090/spp/pns/api/push
    50US Easthttps://useast.gateway.push.samsungosp.com:8090/spp/pns/api/push
    52Asia Pacific Southeasthttps://apsoutheast.gateway.push.samsungosp.com:8090/spp/pns/api/push
    53EU Westhttps://euwest.gateway.push.samsungosp.com:8090/spp/pns/api/push
    54Asia Pacific Northeasthttps://apnortheast.gateway.push.samsungosp.com:8090/spp/pns/api/push
    55Koreahttps://apkorea.gateway.push.samsungosp.com:8090/spp/pns/api/push
    56Chinahttps://apchina.gateway.push.samsungosp.com.cn:8090/spp/pns/api/push
    + +

    For example, if the registration ID of the application that you want to send a notification to begins with 04, the URL of the RQM server must be https://apnortheast.push.samsungosp.com:8090/spp/pns/api/push.

    +
  2. + +
  3. Determine the type of push notification. +

    You can determine the notification type. You can send a notification either to notify a user about urgent information or to deliver data to the application for update:

    +
      +
    • If you have an urgent message or data for the user, fill the message field with a proper action value: +
      +{
      +    "messages":
      +    [{
      +        /* Other content */
      +        "message": "action=ALERT&badgeOption=INCREASE&badgeNumber=1&alertMessage=Hi",
      +        "appData": "{id:asdf&passwd:1234}",
      +        /* Other content */
      +    ]}
      +}
      +
      +
    • +
    • If you have data to send to the application but no need to notify the user, use the action field on the same level as the message field, instead of within the message field, and do not include the message field itself. In this case, the notification is delivered with the best effort. +
      +{
      +    "messages":
      +    [{
      +        /* Other content */
      +        "action": "backgroundLaunch",
      +        "appData": "{id:asdf&passwd:1234}",
      +        /* Other content */
      +    ]}
      +}
      +
      +
    +
  4. + + +
  5. Create the notification message. +

    A message is one of the fields that constitute a notification. The message field contains not only the message to show in the quick panel on the device, but also the behaviors that the device must take when receiving the notification. The message field is a string that consists of key-value pairs. The available pair options are given in the following table.

    + +

    Table: Message field key-value pairs

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    KeyValueDescription
    actionALERT: Store the message and alert the user. +

    SILENT: Store the message without alerting the user.

    +

    DISCARD: Discard the message, if the application is not up and running.

    +

    LAUNCH: Forcibly launch the application and deliver the notification.

    +

    BACKGROUNDLAUNCH: Launch the application in the background and deliver the notification.

    Action to be performed if the application is not running. If no action is defined, the default behavior is SILENT.
    alertMessageUp to 127 bytesAlert message shown to the user in the quick panel. If the action is not set as ALERT, this value is meaningless.
    badgeOptionINCREASE: Increase the badge number by the given value. +

    DECREASE: Decrease the badge number by the given value.

    +

    SET: Set badge number to the given value.

    Option for updating the icon badge number. If the action is set as DISCARD, the badgeOption is ignored. If the badge option is not included, the icon badge number remains unchanged.
    badgeNumber0-999-
    + +

    For example, to show a "Hi" message in the quick panel and increase the badge count by 1 when the notification arrives at the device, the message field of the notification must be the following:

    + +
    +"badgeOption=INCREASE&badgeNumber=1&action=ALERT&alertMessage=Hi"
    +
    + +

    The message field takes effect only when the application is not running (more precisely, when the application is not connected to the push service). If a notification with the above message field arrives at the device where the application is running, the push service delivers the notification directly to the application. It does not show the "Hi" message in the quick panel or increase the badge count.

    + +

    When you send a notification to the device with the BACKGROUNDLAUNCH action value, the push service launches the application in the background (if it is not already running), and delivers the appData field to the application. The user cannot see that a notification is received, but they find out when they use the application the next time.

    + + + +
  6. + +
  7. Use the Rest APIs for sending push notifications. +
      +
    • Single request +

      With the created message field, you can construct a notification using a JSON query and send it to the RQM server using the POST method. The following list contains the details:

      +
        +
      • URI: URI of the RQM server chosen based on the first 2 digits of the registration ID
      • +
      • Method: POST
      • +
      • Data: JSON
      • +
      • Description: Request a notification push from the push server to the push service
      • +
      • Note: The total request message body must be less than the system default value, 200 kb. If not, "3035 – error of too long chuned message data" is returned. The system default value can be changed as needed.
      • +
      • Header + +

        There are 2 required fields: appID and appSecret.

        + +

        The fields are given when you register the application, and they are used for application authentication. If either is missing, the push server rejects the request and returns "3045 – error of application authentication" error. Put these 2 parameters on the request header.

        + +
      • +
      • Arguments +

        Table: Arguments

        + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
        KeyDescriptionAdditional information
        encodingEncoding defines how the regId is encoded. +

        For most cases, the push server issues the regId as a hex string by default, but if third-party providers state that they use the base64 encoding for the regId at the application registration time, the regId is base64-encoded.

        +

        If the regId is base64-encoded, use the "base64" value for this field. Otherwise, leave this field blank to allow the push server to handle the regId as a hex string.

        • Optional
        • +
        • Type: string
        • +
        • Default: NULL
        regIDDistinguish a recipient from other recipients by assigning a unique registration ID to each recipient.

        The registration ID is assigned when the application is installed on a device and marked to use an application service.

        +

        The current registration ID passing policy is as follows (it can change in the future):

        +
          +
        1. The preloaded push service connects to the push server and registers the application.
        2. +
        3. The push server returns the registration ID to the push service.
        4. +
        5. The push service passes the ID to the application.
        6. +
        7. The push server passes the registration ID to an application server. +

          In other applications, the application passes the registration ID to the application server.

          +
        8. +
        +
        • Required
        • +
        • Type: string
        requestIDAn application server needs to assign a request ID to each request. It enables you to distinguish one request from the others.
        • Required
        • +
        • Type: string
        senderInformation on the user who sends the notification. +
        • Optional
        • +
        • Type: string
        • +
        • Default: NULL
        actionThis message is delivered along with another urgent message, when the action value is "backgroundLaunch" and message field is NULL. +
        • Optional
        • +
        • Type: string
        • +
        • Default: NULL
        +
        messageThe message the sender wants to deliver. It can be a multibyte character. +

        The message goes from an application server through the push server and push service to the application, which can handle the message.

        +

        Maximum message length must be less than 2 kb. Make sure that if there is no message and appData, the push server rejects the message and returns an error.

        +
        • Conditionally mandatory +(if appData is NULL, this field is required)
        • +
        • Type: string
        • +
        • Default: NULL
        +
        appDataApplications can use this field to carry their own data. The handling of this data depends on the type defined with the type key. +

        Make sure that if there is no message and no appData, the push server rejects the message and returns an error.

        +
        • Conditionally mandatory (if message is NULL, this field is required)
        • +
        • Type: string
        • +
        • Default: NULL
        +
        reliableOptionThe push server guarantees reliable message delivery if the reliableOption is set. The possible options are: +
          +
        • NoReliable: Do not send any acknowledgment back to an application server and do not store the notification in the push server if the push service did not receive the notification.
        • +
        • Transport: Send an acknowledgment back to the application server when the push service receives the notification.
        • +
        +

        This is an optional field, and if it does not exist, the server applies its default value (Transport). An acknowledgment at this point does not mean a response to the notification request, but an acknowledgment that the push service has received the notification. When the push service receives the notification, the push server sends this acknowledgment to the application server in a JSON format through HTTP.

        +
        +
        • Optional
        • +
        • Type: string
        • +
        • Default: transport
        +
        sessionInfoConnection information for an application. Third-party applications can define this field by themselves. +
        • Optional
        • +
        • Type: string
        • +
        • Default: NULL
        +
        timeStampServer time in milliseconds when a notification request has been made. +
        • Optional
        • +
        • Type: long
        • +
        • Default: NULL
        +
        expiryDateTime period, in minutes, for storing the request in the push server if the delivery fails: +
          +
        • If the value set to 0, the push server stores the request for 1440 minutes (24 hours).
        • +
        • If the value is 1 - 2800, the push server stores the request for that number of minutes. +

          If the push server default setting is less than the defined value, the push server stores the request according to its own setting.

        • +
        • If the value is greater than 2880, the push server stores the request for 2880 minutes (48 hours).
        • +
        +

        This is an optional field, and if it does not exist, the server applies its default value (0). If reliableOption is set at NoReliable, this field is meaningless.

        +

        +
        +
        • Optional
        • +
        • Type: int
        • +
        • Default: 0
        +
        + +
      • +
      +

      The following examples illustrate the notification:

      +
        +
      • Example header: +
        +appID: 1234567890987654
        +appSecret: dYo/o/m11gmWmjs7+5f+2zLNVOc=
        +
      • + +
      • Example request: +
        +{
        +    "encoding": "base64" /* Optional */
        +    "regID": "ab123456",
        +    "requestID": "0000001",
        +    "sender": "oscal", /* Optional */
        +    "type": 0 /* Optional */
        +    "message": "badgeOption=INCREASE&badgeNumber=1&action=ALERT&alertMessage=Hi", /* Optional */
        +    "appData": "{id:asdf&passwd:1234}", /* Optional, (Opaque) */
        +    "sessionInfo": "002002", /* Optional */
        +    "timeStamp": 1234567890, /* Optional */
        +}
        +
        +
      • + +
      • Example response: +

        If the push server receives a notification request, the server returns a JSON string that contains the regID, requestID, status code, and status message. If the request contains a malformed JSON format, requests are not processed and are returned without the regID and requestID values. If the request is of the JSON format but has invalid data, no requests are processed and are considered as an error.

        +

        The response message only shows whether receiving the notification request was successful. The response message does not deal with whether the push service receives the notification. The order of the response message is the same as the request message order.

        +
          +
        • +

          The following example shows a response message when the request is successful:

          +
          +{
          +    "results":
          +    [{
          +        "regID": "ab123456",
          +        "requestID": "0000001",
          +        "statusCode": 1000,
          +        "statusMsg": "Success"
          +    }]
          +}
          +
          +
        • +
        • +

          The following example shows a response message when the request fails due to malformation:

          +
          +{
          +    "results":
          +    [{
          +        "regID": "",
          +        "requestID": "",
          +        "statusCode": 3023,
          +        "statusMsg": "error of json mapping exception"
          +    }]
          +}
          +
          +
        • +
        • +

          The following example shows a response message when the request fails due to abnormal data:

          +
          +{
          +    "results":
          +    [{
          +        "regID": "ab123456",
          +        "requestID": "0000001",
          +        "statusCode": 3008,
          +        "statusMsg": "error of not registered regID"
          +    }]
          +}
          +
          + + +
          +Note +In the above example, the 3008 error code means that the regID does not exist in the push server. It happens when your application of that particular regID was uninstalled or disabled by the user, and consequently the regID must be removed from your application server. When the application is reinstalled or enabled, it must repeat the registration process and send a new regID to your application server. +
          +
        • +
        +
      • +
      +
    • +
    • Multiple request +

      You can construct a multiple request in a Rest API call. Currently, this feature is not supported for the registration IDs starting with 5.

      +

      The following list contains the details:

      +
        +
      • URI: URI of the RQM server chosen based on the first 2 digits of the registration ID
      • +
      • Method: POST
      • +
      • Data: JSON
      • +
      • Description: Request a notification push from the push server to the push service
      • +
      • Argument: See the single request
      • +
      • Note: The total request message body must be less than the system default value, 200 kb. If not, "3035 – error of too long chuned message data" is returned. The system default value can be changed as needed.
      • +
      • Example header: +
        +appID: 1234567890987654
        +appSecret: dYo/o/m11gmWmjs7+5f+2zLNVOc=
        +
      • + +
      • Example request: +
        +{
        +    "messages":
        +    [{
        +        "encoding": "base64" /* Optional */
        +        "regID": "ab123456",
        +        "requestID": "0000001",
        +        "sender": "oscal", /* Optional */
        +        "type": 0 /* Optional */
        +        "message": "example", /* Optional */
        +        "appData": "{id:asdf&passwd:1234}", /* Optional, (Opaque) */
        +        "reliableOption": "Transport", /* Optional */
        +        "sessionInfo": "192.168.0.1-8080-12345567", /* Optional */
        +        "timeStamp": 1234567890, /* Optional */
        +    }
        +    {
        +        "encoding": "base64" /* Optional */
        +        "regID": "ab234567",
        +        "requestID": "0000002",
        +        "sender": "oscal", /* Optional */
        +        "type": 0 /* Optional */
        +        "message": "example", /* Optional */
        +        "appData": "{id:asdf&passwd:1234}", /* Optional, (Opaque) */
        +        "reliableOption": "Transport", /* Optional */
        +        "sessionInfo": "192.168.0.1-8080-12345567", /* Optional */
        +        "timeStamp": 1234567890, /* Optional */
        +    ]}
        +}
        +
        +
      • + +
      • Example response: +
          +
        • +

          The following example shows a response message when the request is successful:

          +
          +{
          +    "results":
          +    [{
          +        "regID": "ab123456",
          +        "requestID": "0000001",
          +        "statusCode": 1000,
          +        "statusMsg": "Success"
          +    }
          +    {
          +        "regID": "ab234567",
          +        "requestID": "0000002",
          +        "statusCode": 1000,
          +        "statusMsg": "Success"
          +    }]
          +}
          +
          +
        • +
        • +

          The following example shows a response message when the request fails due to malformation:

          +
          +{
          +    "results":
          +    [{
          +        "regID": "",
          +        "requestID": "",
          +        "statusCode": 3023,
          +        "statusMsg": "error of json mapping exception"
          +    }]
          +}
          +
          +
        • +
        • +

          The following example shows a response message when some parts of the multiple request have failed and the others have not:

          +
          +{
          +    "results":
          +    [{
          +        "regID": "ab123456",
          +        "requestID": "0000001",
          +        "statusCode": 1000,
          +        "statusMsg": "Success"
          +    }
          +    {
          +        "regID": "ab234567",
          +        "requestID": "0000002",
          +        "statusCode": 3008,
          +        "statusMsg": "error of not registered regID"+   }]
          +}
          +
          +
        • +
        +
      • +
      +
    • + +
    • Multicast +

      You can construct a multicast to send a push notification to multiple applications. Currently, this feature is not supported for the registration IDs starting with 5.

      +

      The following list contains the details:

      +
        +
      • URI: URI of the RQM server chosen based on the first 2 digits of the registration ID
      • +
      • Method: POST
      • +
      • Data: JSON
      • +
      • Description: Request a notification push from the push server to the push service
      • +
      • Argument: See the single request
      • +
      • Note: The total request message body must be less than the system default value, 200 kb. If not, "3035 – error of too long chuned message data" is returned. The system default value can be changed as needed.
      • +
      • Example header: +
        +appID: 1234567890987654
        +appSecret: dYo/o/m11gmWmjs7+5f+2zLNVOc=
        +
      • + +
      • Example request: +
        +{
        +    "messages":
        +    [{
        +        "encoding": "base64" /* Optional */
        +        "regID": ["ab123456", "ab234567", "ab345678"]
        +        "requestID": "0000001",
        +        "sender": "oscal", /* Optional */
        +        "type": 0 /* Optional */
        +        "message": "example", /* Optional */
        +        "appData": "{id:asdf&passwd:1234}", /* Optional */
        +        "sessionInfo": "192.168.0.1-8080-12345567", /* Optional */
        +        "timeStamp": 1234567890, /* Optional */
        +    ]}
        +}
        +
        +
      • + +
      • Example response: +
          +
        • +

          The following example shows a response message when the request is successful:

          +
          +{
          +    "results":
          +    [{
          +        "regID": "ab123456",
          +        "requestID": "0000001",
          +        "statusCode": 1000,
          +        "statusMsg": "Success"
          +    }
          +    {
          +        "regID": "ab234567",
          +        "requestID": "0000002",
          +        "statusCode": 1000,
          +        "statusMsg": "Success"
          +    }
          +    {
          +        "regID": "ab345678",
          +        "requestID": "0000002",
          +        "statusCode": 1000,
          +        "statusMsg": "Success"
          +    }]
          +}
          +
          +
        • +
        • +

          The following example shows a response message when the request fails due to malformation:

          +
          +{
          +    "results":
          +    [{
          +        "regID": "",
          +        "requestID": "",
          +        "statusCode": 3023,
          +        "statusMsg": "error of json mapping exception"
          +    }]
          +}
          +
          +
        • +
        • +

          The following example shows a response message when some parts of the multicast request have failed and the others have not:

          +
          +{
          +    "results":
          +    [{
          +        "regID": "ab123456",
          +        "requestID": "0000001",
          +        "statusCode": 1000,
          +        "statusMsg": "Success"
          +    }
          +    {
          +        "regID": "ab234567",
          +        "requestID": "0000001",
          +        "statusCode": 3008,
          +        "statusMsg": "error of not registered regID"
          +    }
          +    {
          +        "regID": "ab345678",
          +        "requestID": "0000001",
          +        "statusCode": 3013,
          +        "statusMsg": "error of impossible to enqueue"
          +    }]
          +}
          +
          +
        • +
        +
      • +
      +
    • +
    +
  8. +
+ + + +

Error Codes

+ +

If sending a push notification request fails for some reason, the response message contains an error code.

+ +

The following table lists all possible error codes for push notifications, helping you to identify the reason for the failure and take appropriate action.

+ +

Table: Push notification error codes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Status codeBasic status message
1000Success
1001Failed
1002Expired
3001Error of unknown reason
3002Internal server error
3003Error of no appId field
3004Error of no deviceToken field
3005Error of no regID field
3006Error of no requestID field
3007Error of at least either message or appData is needed
3008Error of not registered regID
3009Error of not registered appID
3010Error of malformed notification request data
3011Error of fatal problems with mapping of content
3012Error of insufficient field
3013Error of impossible enqueue
3014Error of notification to cancel is not in queue or already sent
3015Error of I/O produced by failed, interrupted I/O operation or unknown reason
3016Error of not supporting requested URI
3017Error of not supporting requested method
3018Error of notification data contains unreadable data or NULL
3019Error of containing abnormal data
3020Error of not supported reliability option
3021Error of bad padding exception
3022Error of json parse exception
3023Error of json mapping
3024Error of illegal blocksize
3025Error occurred while decoding regID
3026Error of no secret key field
3027Error of not authenticated application
3028Error of unsupported encoding type
3029Error of unparseable request type
3030Error of message length excess. message length is allowed up to 2kb
3031Error of unsupported connectionTerm
3032Error of not supporting chunked request body
3033Error of illegal expiry date
3034Error of illegal delay date
3035Error of too long chuned message data
3036Error of empty multiple request
3037Error of notification key generation
3038Error of create application
3039Error of delete application
3040Error of read application
3041Error of update application
3042Error of invalid timeStamp
3043Error of invalid type
3044Error of not registered application
3045Error of application authentication failed
3046Error of not allowed to use Push Server
+ + + +
+ +Go to top + + + + + + + \ No newline at end of file diff --git a/org.tizen.guides/html/images/push_state_transitions_cs.png b/org.tizen.guides/html/images/push_state_transitions_cs.png new file mode 100644 index 0000000000000000000000000000000000000000..133ba02d85657a32a396027ed5ded22b6caad329 GIT binary patch literal 101807 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�KJx=%QANNqvon5tK;SXE?Yv*=w805hYL>OzY`m(8#BUh#MfA^ zTm{YFSZ+kb#bMdxgUZKEUoH^NzK(ny{qaMj{%a%QIAtSUD&{RXRyVEvVLD7BC#a+a zHT!_Yc4mQfRqjcrB}H3XW8?Qc{zMA5v;XG&f`)fHp1iTPw4#I~L!>m0y!WqYE{4A_ zUW<80MdYiGtxvygQi9qc3m1N0mK(iKVSc~#v#GIsmk+j9Th{;@ZIzfw%F2HSCa06z zr%G_y{qHRLh1o_}Wa1AnnNV=DqaKH7l6}@5_VivXsQ0Lqy#wb1ELvl^cz73FfLyVkmH=C54k zEh?BI1REFM+G`D*?D5`eU`w#NW~P(+O>h*b6>4ceCHNC#Ox39$N#yq! zTUySS>?e_+bawO)92UabUIMSrk9mVT;zb7H*fX>!aEgke=HkL{_DqZJgB}yeK|I7W zf*xVTuMTM@kDnpxg{*MPGaJ5nsB|9MRc##nT@EA>KGTMiaUkV1Tjd!lY?srEkO3>L zEG?L_WRgXQ55^fWz@#mOB9By{mxT@2k{41cxB8!X-oNRSjhL!yv9yx4Rv5eoZ0&P< zC*IOj{u&AO%zL`M_OZ@C6<8iZm4)OUx z{;4)+wC2TapQijl-q;epAp<2^!?;HeSG?_nJD76K@hcHOwU$R#ANs_sx>aZ!2PL8+ zcq1y&RKpglhzooztK+1tI2bR&0>A?^bw*e>hGPqhA3S?ULU(u7$B&QTD*WqY; zFe_+NLR%^V_erUruWWsv1+6GZ(+>wWv$)s-s?ZD2i+NFzX9Cs-JLUAFIfk*476YYDW+Y9upAC`*~Jw#db)X=-CRD!nsfasdo}MgfHiT=5jc`%U3K4keJfY zcy|rSaP$I>^3kg>`C?YX73LhNar@3>=6^7o<7XF9GV5&bXiG-M+&D=;{q5bKj0ESBYp~^Iat*3FbA?p#S~Y zw+XV1R6L>3yELRxBOABzlhN23{VT1t*2{3|c zVnW%g&Rc05VPkAul$xpraAqGcp!vrFd>|N&tiUNhZLdpu2ot8sc!(owB;t4okBd*B zfa=afmI(;UZ@?Tg;=~fmDMC(^s_KE~V@7+(jT*R?eIDaGI`vs^O}Sy<6m8{ADtyXi z=`V(1Xs%IW3HL2XwxQhe&N}$!85PNfg+W-9%;RmELC#EUeH;7z8}(|ZELTSme!{_1 zdjTUzkTqsgr1+hY*0@EA*UCVgS`YmurDFE6#Tnhk1SHi8mGyy51uTiM&|cPDkx*WdEG1cRKZ;!r6DN|_f_ z=2g^G*%#Q;WypM{8wuVJUH~X=+3(+$78WzWo|tGjZ8Vo0e(vq8s(DKQrV8+m$k6N& zp*T1=ydRd$0B+0BH)3-9rs(KsgrHJ;PIJ7^7}OAB5Y64V%Ob-sA;qJkCmAQ2K^x-2 zt9j<;A7V;MGQu(v!A-yJ*V4N^>Wg*c!UTIiKS@XAu>!+PD@na8g@<Sr$kt}s><4%5!hCug@V(CB3~E3rc(3E-ctl9*ZpT`glmEzfYBI> zy+|m{7ax90ESD7}X~*Vb+yl_GT^FdhU{4UZr~jK<&YFVze#!r(yC_&uNn0DBw5(O@ zbpgI}7rn!dy93(zK&|qYugi0DKdFG~s+7XYq&5DUFFFU|F59_OHVd^4p|n|Ru-GCk z=uQWmmo(o5H&n#&EHdH3@v%&PY2Z2uJyb=+?w7gSxfM57X3@I8&q`Mbhc!`KQtOyV zb}G6Yb_C!x8J!02l9DJ$z1-cGrt>df;j?;uouuC5zl4fK6F)C#*~!*sVmn=vixbeU zO;6XjU2XtCVg0S{0AOMt;LRKYW6fLXnVH;f7i&(3lL4KzT^6&&kDGpf8y9t*92@|c zD=&aD|3`3r2bkWT$G=jypiM*L{0{+wznU{c`@Zip~|8J693XB=%TZQ&i9|KLDCI%$hjB zrI8w{zmMd!V_c)K>1BGB>)@$gjMTral@i9+9s)^A@;4t~2C(`vE~kBzM^Eo}kRplOVSB*bh3gStFt zPWt_&XhM_Ote=YiBU=0!L(r;!+&e5a^HVMd|7x-w*aXlSFAgPLT!&>0D6%=Hq4jfo zGOSnf7R~0_vg9URcQZuZd)C@gpdt17C=mbsblX=BLFWx{U zxpx?&l2H-b7dX-4vvCZN5FoLYn&GOcv0K?7`&iwn4zY->C``h@b^$an z03om`xc`;K%&a77&v=cAm2SYd2^>3R0M5bv3$-gu$?tjh72g{`skOVFLkaf%!$N-m zY!Oi#8#?PU_DyfBj#wq{rw zZ3tOC=k8C#IU2$w-mrKzb>QVEU2I;?{;ae#bQm4dS35rv7+hYx^vm=ew#wPv15S>fcbvy%(6Cfrs zjS;e4aCeRKo|(FmAc+eg0%~c9WT@3thLxy-5LRS4aVV8Xzu)p6e>L<0+zilme!lr; z&z^l3J!w9tRUE4>%OkplySKDPw1dRKmeW51S%U92EsgUfvjlZAU+Kz*RUAhq zO#4B;Y7L;im3A#;y<|9F6Ok+ zQW%)5f8+d;z+M8smey8ar+{<@ z3*v9yNNC!xLcDtIt~M$v$;pq~;Y)cdQ(2t10FKVZ1^40l<|c#7<$H5q-WUK8e*$dl z>(g%RP!s|5>luJ{Tdgx0(`OeT3U=SZw~{5kAJzhZnwEmfV|#$5}E|P7cCOhO);!dF4oKr1;#c4ogKU!cgCB z#>lPP_Ig)bR;TQi2;y}l3l=}kA%RXr=XLM%ggHw$g<_o{yD%US?zYbo*7uF zY@^s5IXWvVmQk(|1kvNNM+ID7w*Jeg+2=b!4z?%(Es8)oI)O7mL`=$G#e#mBELQR4(-_N6pMr{eYl~X)syYq`! zQ(IClhlx0eQ~vbJ*17e~OGQgZ0~HMbs449{>l?2c0`X-f^g_ZErjU{i!T{09@9FtD zKn1`$hx;5I1EB@Xx^UUgW0@Qtf={eya0pPz7-9H?T;eGpRaI3XExj6jLBPmGL0s{* z;75&Ck(Ht2;lZDv0c%S>7li@M4Gj%~2aG8|s0jvxH3XopYiNTW^Dl$`5uY5GfWT!S z5|5pQP(duRE)vvGF@No4+3H%Tj2f<5WVed>K;sp2#w`3@mD&s81@{d$5q@xKc~ zM{5XS1sDSOv#Ds+2D>oGRXJ*^jVjGr-nnagX+WgkK=$Gbx>qdD=H2g<;1Pb{|Kb~d zAX0bCNb)^jRXO3d+^4sylHcAohz@V;6;yzCHTaLm!9(ese+|T@@8rMc>DDxBM|-d;r2- zq1BA4*(6p7>C^SFVl}QYO0{z%551*9@}<=QJprzthkim1f_QRXzZO$)CM#luo%TirT?rb@AiMbm;a_1;ZT1sH-k#w5l4gtw z4<`^XH2mY;uxOOh<&pB)ZExUa=_)t74n3o^lPgA8I!B$AsVSNjK_--}(|HV;aebEQ z+>1@PPf%R{Jw;o=hn3ypa5xe!wZ56zc0D0M1UKoN-typoT8o4s0jrT5?cxb3Y3}tx zR*G!=6km|4fSB%by&cb( z%lSzD=!xtO7~1(SfCYBm_o@f}YOUE0l;jWwbF>aX*S1apB3rL52jDS*MGK)QL~x)Q z9zS=aWdO7H^6`2Z)cKhooqtD!0)XQEJt~X^Sfh}jr`MO4z?aWFUwx)KqX%nhe&B-; z*gWr!0KCgTp5b^*TSzUF>zO(Qnjv&CA_WSlV^G6i@8g$%Z&`~vV_^LZfO(*nPGHY7mtzVYB|}@5-NVz12mB$#X0XM>26e z%6M=RYzPVBH;bNy4Al`s@VuacOnKf6dp~vJdCzNO;{_=AzgUNfgf7F8uyLI=;0hlY z)9Zi3J&ed6`rL;y16Y6>UJlN@ddsaeF=h8*(V+*aV?Gdjt4|K{2p;ynjV_dd)&;3G zMFA2OheFdeWMj4OQh(9ppZ!IN8nTd%Ex_kJmQy2^k z+!tX8GEKfpEWF+;@^dwGdtA4QiVA6IX^|i0T)FA#9_K5p{R>M=!WY?vjjH1AXt=fmuEHClS zW-QxB{~G^>EohbUY4mg_(dnJst_6ge+0lPHuYd#>qsQtopCfAfAjp?+l5Z(82qu%h@uqxp` zcNIV*V(EbvCl*i|bP#k;b_VqD1o%-hY)FVsPYp7!hjjQCa|&pjpfb#foaly<|zXc(k{) zb&CGb;-;>Gf@J*3fQ4{Z{5>;X7I`52zmI3;LDUoKD_%p!$RRLz5}k|7Qn+~=z6;W_@$h&PFJP0@Mq|6lgCRt1LW|u@aF>J{+CXghg*EA zSEUtl&fJiUTW7*Ie6}G=bSVDGIQ&1&G)A`NjLTJ~D>P@KFbx+mqzkkci=`M!ks~BF zwn%=s)-L9iq1wr9a9B5u-J!fTlSD?fr7Nj!_Aa~|%+$2xQpuCmsJp++EM(Z&JWU2V^dx^Ufe~OKpWYf3g#e3QOxXX_%*xkmmu8vmT4HRxX_*?KDTc?t-afU zIFWOX8@KiQpREYKaSi}0QAt=rL=-Z_f9+=(TvOX6Ks0qsO}g4I?)tA^R3$)!x&qiU zQUU@_o0W!tr2`-=1`vcm_8;03+KH@4f(8xz*nuTz+xpW+*zXmCqw|k`3s@R-AY0>j{m&aeXX(HKY|&4$Gv356)lT zkD{w%R#^-~f>t~IM~m4ABbn<$A>{CQmWj=Ijmv(35Y(M?T{2(GPH%Z8v!#xCDq<%M zIrXpZ?*Vzo2++x-hPY}!rzK%o`!`l{h5P%HJE#U#8|tunBmMNu@5i2)%_;Md7aD|8 zw`ODUI(4Dg)bhgt%%Pue-SIghs#A7MZdgmYs+hNatD~yo zD1&HEjAy>i9zq-`7Us>Jj;H^U31B2BZ^|X%Sl_+OwI=-GFbl7=Xvb|2*I|cFxeHy9 zXa=?0cPb%nroZ?IAgY2!~!vG^m$wiyPR72!!8|c?v?+p{h^= ze%=0%ZywmrxP0o%hUM_S&-eb=F3Z*_qbFKMe?G^Hh2V>`z#an4D>OfI=bOAc>(K zZ}_~WtyxXSuGM;d21b;U7{k)$JWVBgI(M`%Ecvh?kkLIW;qn`*DETUfsW}X;Q@#|I z*pj|2XMDzD_hy>%skQ3PuU|~G#hY(5zk{O0-bM-3PcTn7S{!+8Xo0B^%dkp{Q*9ew zw!58K;=U(Ie3@}*$+ylPK%@IDm&*rW5|6BYFZ@jd(qxN(+s^YVSuum%H%G%s-@EU>Xs1i6u}OUR`*$km8VT)8lK&f|IDd@QJ$JBtLJsZnuF=0z z{^=EJgbLs1EmW-|L1$@RKT|goYZ8XuGpM9epgoy@x2|B zvTfx&?f|Q*h}dnjm`p~0Nu|>2#-jG4wL(cGW@UK;eTXzSQBlzpCpk!wt1Yn+iZH5r zeTwVBoN9I1*=BH3(OU$T0y}YRROHK;>{sv}- zzm)^;s5mAiVVM!19uis4Qj+3>h?)^wR#!T!-6}ze(jpDvrSOsdGqB=OxO&H^Wcp=( z`(p^uCd(noOG9+VF6d~lp49yP!!s1uvN{jvzJ->-h>|3{`@GTynw^%ho`zd#LrG>n z8dsDkq$lUxyjD+I7t75D)-Po@>}O9c_;9T*JN)ck9wtiX+;_Rx1drVC%#aC0O>3g| z%TgfasCQOqdYhXcg@Sz5wY8BWsEhp&W`K>4bwD7!-4_bLH~;J6eVzCB>MSxp0z?&iLct1)8Dl(^pSm*3t{mon6q^GQ z7dsg(`nZ{!ecKMYPl7&E?YkDVt42L%Ie5>`t`|KK0MEAXsV2*} zSAV|8pDICX#+{yTSATk6=2fWJhUaeKX`UfEhu<~eb}+j$bgDl@Z$k20sU?$Ov_6cS zkd!y+Q21n7IG;^-y^Q`Txl&Ui}>^o8Y0T`LNX?M zw^d2)=AJ5uJYzaG+S=nLX5oDt(o|p1!61e0gKiYml3ez;Ath47bW^&>he@)V1c99W z6nVtsSE%qVuGe#ncH3^H2ECok##K*J<1O3S1E&`!{k^Q9ig5kpfemp4-p^s0rYQ3o zgP2@@t5hD`?b%6b64b3vzUt~rCAq#CL-s%kzPDG%T`|epiY@c@_I4YslKAy1z!o9H z7pU9|-~t!8vhwaa7D(96s3|DOFpXZdS~y_gLLK7b;~fqsNiLSBr{j{6lCrYKQ?Fny zS1lg_$5ulD^jm3%U~=?zGu${&b+KJD*`A~!W`T@`u z?(XklGwnfFNQ>7t@OO}c=zwnYz?R#Og{i(+1&xrBH#53&=g{iR^T@Rb`-WvJxBY?C zV%L6HnfVU^r>K^EIjhdtI6p~p&Aa;2r^VebCAQuk{b!61nVt6c4!oWh;&b;;<2!?@ zG*Xz2GipC!UcS>O@kn69W_W$QW<)5C)VvH(zShzrHqRY`f<_AN05WG_RY+S)ivSjn z>lwbEDAF9VL%Zn&AwX0Bdb1ZRjpfC~#T6CE-=6_A{STlrB@cA5u!?Sg#iHoltE*lk z36$+_mj{>sN6|U(<<*CAJlo5*ZDXsJm#t;nw(VuxHkWPNu4O;x=@s<3&pCfwKYS0j zTI~&iuz9Y-UxbQ&Bi6y;VKPoNH8r4H;({0?mExTSET|8F#Q`<`FA2z(!u|Fs@I2XW z(vq4!W`P%RGDR}8sQoCXYz+}X@)-(J(+u$KNqhFRE^Wi7vklsM1PyK@2homPgf0SZ zpDS$@buA83=Nw5eNV*Q9Pj+CI`pQAdVPQSr*5*a7EFm_tSYxV%!wVh23hP5stV^n= z)^L4ZP3o%2LNRkYMEdFzK7no!`<1fcGB<4C3XK8kQ0GmM3Le^gH!+iKm>^wZBe;)| zq+Ii3yBR@MUCz~V<={J0nAk(rZ#6djr>yKYm*G%H{H?6o*Q(od@##D57NN6=rj5eA zwR)gDan^{$MS%$(S78CBev5wKh`5-%I3U4dJSpV_cIkU$RMh)?&L=y-o`nHnz6Lmi zK<|7sQ1&cx{XaQ^D#vRNsD!o_U}nC_a^30^Y;+6q`gmAY(7OSI4Zn$y18&zVZFlz< zU>5^6Hjll(uz&FZ4nnBV`){DPIoA^gAr9W+n*$^iL=^bR1Mqe2|KKeZbz=m?k@;fT z4WwE~MJa?OUE!5~GIfYX`1eX#JnS*6Ss$yOQJ&=a}<>F(lb8HoJz}eOv!09eHBeFe|{vYd{e#HuBV!y zq9)-bp{r?B{T1s!o71O%*&t;Xq-QpoC4mqcB~o>OiHZ4mlwlhZ8hZDmwijsD?gT1; zfm&ifW%>n7!GnMTPCL|!AmV$3$+*w2e-a!TH5;S+NxasUJ*I}4*gfK z(dWW7ow;gn9GIq(4FIC=*n^oP5HRYz{Go$XN@EWBpywu9vxVi_QLYg;nP7IX*<^Yn z2u&tnmi11N%+KVBr`2en}#Sne3|$B+^uqIX=U{e3~-lf^Z;rer`=9(s;&nt+zuc; zKq2DZ1MC2d1q5$=BLSdj7x?W+I$K(})U)Tgh|0Esp%D2`7Z*;^{~4*ks9^{8yl-Hj z0BHG$g9yX4{|?pp_4(%IY$lK3^ab3`iJ{_Ztb5-w+MaI@R}t}gZr5MNcLbsZ?#mu;qM(y$`G$Zv`%I*<1P7-uIV~?Q|H|N;oSj8g{si#O)~of9?eC}aB>;O8 zc)=AF6>~{|MH&26@Yq|KC_tkpIDo+_IQ$z`{&&=dtSo}BDJ(aD9J>Pz1=TMqY{iU4 zN=9aBVG*bE7Y85T3)olV1i`j-GN>UQkr>nod3lq=46X)(Mr}QS*h|qf+j#sDE z2ng7%-*!gVO=|eAYWWU!{z%6!&qfd7UlByY=AaXXJ*E-rkPaiV*GL<7LEJx~fiw#tzy*VH!fhQss%L*stv~ zLnG*__hdC)&^9g(j?;%%pd;UZ-X7)@esFtmum}K{k@Sr)LuzWR3t!34<&`^b#YRMU z0B1lH1Qio@ToNJT+TV=C*wjA%4n}M7P!J;c!wBEOVEb|o&zyKg!@U1SNe$}|(>~`_ zb^me??x)2Le_f3qh2hC#s<4ugVA^&+J1eB<2$5N3H%i}!ZV;fV7T|FC+)t$T`P-lzRVEKu+dETqPRG`yx~M z&`D4oj&)lBCBm4SSna&BJN|y;v~*U?1d%kES3dT$SKLp2f15f0ywE1^O@r~ZSM!|B zpl*rxE>*v+wj3jMrA-qHs99JbX=pbQ?khk|HQ(xVx3RH7ib2vp14@+wgZp|=U<<^f z(*dESST>{YLVg7}JlkWqeLXC1bKC8JForhTIXiyI? zJ~}usy4Y8RgbW5Ak5~}ELI@D>?`4Kr`AgE4m-icJFb6h93v+A8(;pHyjjR3CbQI2$ zYV&a3WChTTtn5LZh7loC4n)})7eq&?j&u@)QrP@R5qhAVVfje)yIqM zIFo1skIZ#y)Dtp&*LLrzlC#-xbB}#*mEDt+s|!Zx?*=y0PPd!hSDIBRlzgkCoSe-- z#9uWTUI10Fd0&W@5QuydA)2WJ!9J)GyLO_P&nxawjif26t-5W8HKBX)3Wd43j)VkQ zSsZVi%;g^*WuxcNHkU{evjj6w+b2%dg^e6Md;m6EvzR4kvo8n;`PIPz zM3eW_1y8}xXqWBwsIDVBH)}1fwm*IdjQpF*>NFlt5f>M~ zDHNG}dU}E$1SXH;z%c~?>r#j(AGXrj+h}e6ySpaF)>_a7Y*SlJmd9_`$UbkETvT%S z$ct!mkP7S^9DIB{Z_oHk796cJ<=6X3LuQOX)HrD|M|MPe*WFcV#{H?(? zO0UlG&fgEdtc`+UO`HvJW1rQ^5!b1MOz|@79jh(mS!|oe#!n|GZKB>-v!u5bMGKvk z>Gv394}q%ybdoJQUh~{HS(imR2g|0Z+B@wdr_|p4R8~y{f`&iO``YJ;&4A6~@pK;g z12wz+^@|DkD1Lxmj=GSCk^v2NE?Fq|Bax$GY}#NhkUBNyfqgMkW5wreXcuiqJiK%# z;a$O$qh7=Tr}EMr?Ps}rt8wan*u>CW(cc7qmIv!mL)!jLh?_%F{!D>TI37^@j8=EI~#o%Uq!8>@|oth@ru zOAqUf_C6)9U)oKM57mA;{%YTAjxiToNW}jRk{PokKrzu8G|V~)lniY?t$95$4;$K} zj*1-`T@n*dKA_txp;J~B^@YT$OV#a4iat`)Ml#Gy`s2^s!KYt~O^1)jaOQfAY0Bt| zn8WJ?3^0}8SZ`$jx8aS?knbTMM@L7%RCnFNkoF2FNk@kKya5OSn({BR3zd`bg$`^b zXYkWAvY}*-XPOV>P%{{i_m=GXjr&*IG(-?%L~dJBuXa27Ddv5|a79(^et!cfJjqPj zUWf#9wB<`6{Wr00mPQ={N0Zd%PkeWW99qcsQ>}es#*&j zI}!6XbcPq3Dq(RXwr@|p3A8F{vPn!#uY|uXn@z<3!H}ae#A<(Y&y46!SJ|*&p7Si% zZ+K*O1;i7z=TBPCf& zX|t;7nHy+?pXiK}hDY_7inmppF2a*>lOOu#IklQq2?3=-skxQRI0Hh2^bn)L>p_q|v(|$=xO1Nwu_}oN4Sq=H_*w0> zi;*3tVDcMw&i8lnz=PKov>BQZULc4&j`^wt4S>J)l^?^O4lCOFjVc-3giBUdHZvJ* zoseq?cish({O80SL;x*U%p?pQQo)c}rSS~ypVVe-sI2-PtHDr6o>B`!_64^=@$q-) z?ZjPkoWTc`s#jIAuMKp#3|-2ds8|LjugqKzcN7Udlkk9jtQ*S}9+avr`h}*`JGu-e z9j1*7R9>H}sa-bh?TmWkq^`uxdICAmK*Iz$sWT2)505cv78o>HaSZ)PVdG;WD!*%Q z;Xo;J0tiiUSyb7CIkS{+@aOokV$)8KI$h^p+9uA)P!s_dam-|Ow7;O#}Tra z#&unx4|FO-Scb7$7`8APhR(gj2hbiS~(nC)=NgzXZCC%w_D8yXA8 zN~xH_zjSs`wfZH`pH*uCuKpCX0VTIG63g#=sAk7WNO%U!`@+bFbtT}-ev6z9B51o_80<+oA>$~{* z)WJiPzg)SU?;UIe@N7*|xaKEX8<^E%A~K);cAvAuicT17MpkqQ`q2ogl0Ho1bk>%rgM*}PxD3KXd>$wlZ!eU6_J zW;Z7?Dcb?@O@FaS%)B;rq_vVW!_XeQfB|5VZWwxw?nfMU{H-3V6%s#OqHHP6Tt7ep zHVb95HSlV+8Tv`epjx#dNn^?FW+Qr#5cK>p1VU$$)_M`=^cJdWQ2ZR8dFzNj?9$sG zL^b80uQgDJI_4R%+X*C_GY}7QG#B+@aV=#5aN@BnHxt5TciDVlzgb_)I^nP^x=*!# ztRn^IM9WIIDe2BG%$achS)*ACh@s8zFr(1?&EC++NKZ0wuKd?)*qhAM*30+bYrK*` z36nsl`|zsL@i*H8bhVb#HBogg_URdiwn6c}lof2)LiRQ8t2^S_@n;!XJ6x$KR>{lI zEa8H3E;v}%v#$39%#M&&!te+g8fwb|ti81C*dQf^Tf7HlV#|9c@DNf&SINnM3*U#S zjVe=Dh^e5s(Tff6Ty-|5N(wi0vlo zUPnQQ-GqHKD(pXEFPtR(KY!v6{(+Bq5Z`+8M5{ay|ErY823dm1^ca(NPT0-Gf9E1= znSp~2b=jnVx^A`;Ah0AVG52xmP7Ze}$UZ1aDVywX*th!}tsef5+m7U=t|X6Ak_Db! zK{X*df1#8EW4T4QOXtjo{r%3^Gj#IN$2R0G4o8lN$xh>>eVU7srJ_7f&XWBP-wF}S zA2Edjwxp$Iaqa2tR@L)|@RrX;{O8zI; zwBQj%XawJ0AYp|u&CQujC;>us99i%Q%s>1dHAZjhO8Do!ogd+^$O!!eNTtLf>||9Q z->1d0E3B@m4H+71D^!W!za4A$0R4;H1i=$+Dt-Ay6+XUPTa4LK@53<#|e$? z9i`h_TU)@f+M(BP3Z6*)On%d<N|F;$xzL(y4(W*N;bNuZMG=a-~S!MqaodM)G zJxGrnOpLqykJQ*4hb5%x=7b?o(ON@E`-PSbiPVWRORNZ#io%t5pGjhmujDVW$mBCd zfpb-~9OD)NcFV%$-&V1!YuVMCtp(W}`pvff`D;5nFKuyqg@We7!MHRvcUn^Wak($^ zahIsfqx;Xlh&d}A^jltT!?z=0K^GelDdGYWsZx31akx%D$D=78JwmJA;7PG4$C^UcF~C8tU`@jKPIT|NJPzpmZ4*I0G7wvO|FvBeY(^cVP@ zC!s!Br`ISM?quXrU;}UAMZPSLY6S+07`WK@2PtGL{Tj^yxN{YN@-&0It^$Vv!1VwW zJ9_|G=Vu6C3?LBb3VOyLCE6GZ^jkX3;abJ(sy8gWZH#>=&=|{_1y&X)W*m5K;*WrO zpdM=&McA{ykBCejy;IWr9cU!u$!o%sy0TL!U$OF*O!7Eg5Qs$9K&F5+P=7L zo6i*;r{uKR&71r7-m4H66j#0X+N>T>OaT}PUKhdLv&+4`*A$ZioaNeU!U9@IO|-OC zx)k*u)tldd10iCx@C2ac7NGqjc>2p|kGM$~XV=u&jYKPyPP&ra9b;aoHnBqHWJB>l zJ_AwtSnbkLK6pD)l)T<=s90`QM$|bS?X0J#7bmDU1uD+(!8PHr0`XqJOK)WhNT*NG zYY>frZ!vezK~(D z^K{(Gds*2S2XB?`LIvm>)Fk7!gI#~ym*!PikV?p|Ba)7!KcDz6o55Jq`6#aHV_;(A zBB^5B&^#(SK<$)Gt%PDO*cIOWMwl3oyJ8 ziO$g`XAXp)m`}XDymnx5KyG_~J#Yewg|IM9t83VomDOuym8qO|+a}x~oIu26;ZeE$ zuU+pmH3aq{nIBMAX3(N;CE||kwBGS*I|kP~-|Sa;9(V=oB#TjDX7f)2EzB6-mdD@Z zSH%1&`+po4?IH=XTFIiGg%RD1^{2SVC$qzU!;s=@H141uSw@yl29ZFkA6y~`NUP#X zt3Fimc%hnbMb_|rHgJhEmMmdo=>k3LTE3KOGDlNkMUXJ;ADFa$JVfGMDdz726}HLTS2~4BquQkt+r24 zlFa%1H${@gO?~OnbIA*P9DD_)yut3l8#0yUHJH8Sq_ccg_z0u=1X7eCVyJdc&Y*=b ze;_Vnk)2R}YM#M{*N=f*+z}WBsSvDRt~e|Y`UOd8gVpkq#?#X|Td%>J2h#zq&8|F` zr$jjliZvz1_(o#PBl+3kUD+^6U>R~n@qb4O^Me`lw2-N`%I2^osL^^a-Wl)(F*17Q zEg=iP*AQH(xqtn(Cn?kSm%h33E1aVwLo`zV909dTZ4l#v4hu3*8G)@|rKje)vuu7F z^w~XXIn-NCFqh3qKS;_qH%sJVs(zS|fz( z*-?zKDT^wT%k4yo0(Xq=BH$y!y4e|vda6|~uet5Qx_6Xd{R!U^N)SFiUS_)#E{-d} zoB+Nlym>%2(urS5K0c#Ms|Ozkxq#f9gjHdf>4P<>g-;XBuK2T>tn=_+HI!fl91c58 zezwWeJXcTH7jduVeX(V*v(~$ftP5|8fu6FFrhUWY8=L^5GLi{3kx>S%RNyQ=dTM9y z?ZTE{QhUmy$w>CCOL_+MAW=fE%W2gXkbCBtk(xO9Iw3s~uo7JnMt(8!pik45Zvb#! zm;UfAQg~*fc(St0r0DHRd_U}Z!Ec>1bcfKS{_N0AWr!t;1Tiw5qZdgriEh%`Z8+Mr zjhAhf?0<_qvxKzc1q-yyJ)a+o8{uS)(X0No#v4-8g5L{M3V#(xN*>bj=%mq-LNL?A z(K)Gda}|(lv`+*X`zV2IGmBX!kYMra*P?W~EXi`@(q*Lf&QT8;F-cizUGy?`Ph7y< zgAS{0EJQiS0pwz^coc8N60TRj?J6G>LHJl1m!_scNice3WF(NL83b%$|^{S<_Xp79zYD|p)fPT z`a1kD=kes%`bR6qX3g-+~?QK zZkO2rJe4}L^|rw)5vr+e+DeQ3rtcJ)!5cokeDj-d5<;odjdZiAt`bL0*e=;!f{UYH zMjO^$)FMqS-9yIA*qK>bZx83gCC-n)xn~-*%D=3^>}Nf-1aE;A#5flF`KA|>cip9^ zlLO&_9|b)kywelofS(L==*5YQLq_hwVq;d6oW_x}N4RP4?a4uAIws<|+TSNH6m2mz z$g>b!rg$NGHDyeKCA>n*wnbBeIY#Xc9o1C{>Gs($m|H=gc2DPj^aFXpV+oStk1M_V zSs|RuiL-aw9|cOZPOMcmO@Js>3kW(NSPYu?xlaxr7|L5zxuAI+wJs3B+td-1U8Koo zqSrGSjvF7~)g~M`#MmehS;42$n?2J`AUKKUI(ZZMxGjOd;R(E5pNI6ut4py?ROmfG zlf=8!ckeU#pM>T2i%bx37*JsQgT9%cfLp6Djo@ZU)^JFeJhFhKuS?0cbu3d&vmSdt z7H5Z7S&C?MD9xXE@Y`e$58m9vk$DV~QG8lEr z`1wYf$5snFd(R@INw`@Es1j+;t5yEG;Bv&6!dG=zIVmk4Mou@2nPZsWkpBE&nhW46 zbtG|fJq{;ClnapYMqMS-yCLp6TeQjO*JqnA(K&GxzL$ambA5WXnr2;xT%W(ET;VOu z?4v6ybnm-Ld+Erx!BEjEp)K8!chB*c$oUg-KS`!xsM`O{0kie_k~<@9+h8V-V0HrZ zGuiHy9%`ii&5_vrr9NPy4@V}UEx(SZr@Ba?mKkhJq&RAi-i-*L6dbpffLkY3Dx%F@ zl8+p#qhj>$#(5^(N}=Vy1#&27e=`a@Ou{dt!Icc3s?u$wbGX}r=Mh`XHwcl@$0`H< zjX>T=>RGh{(dbHTxeDzo+yi%h${yW;AzrhweDa3F+12w30bzH23zC2Rt->q-rLHi1 z*GbKiF731hb^az2CtDTaP*rMQq;^kveNveK6-Vk#s53-Uw&@2! z@K1N4D+5Jw8Yk;CET2BzsE;@e5zOU8OpQ|^`Sjfm1(vj{B~rWMq+VDDEtxHR$}Af_ z2`Ti)^S}eWJp2%{!&LnQ0bHNNQX6?QZqfWQT(PY{%jA~{g?Aw&XjQHDI{a*hTh0?g zg`smyv@!nzwG@qUl_j#Sb~oFerd$&&gM>lJ$v&3o>w!q>P7D04&l^ZJq?ZI%Ek4;K zg4b^*r14=$8aq#o8E|V6c03AyEfAT5U4!?;Y$nM@d=S>^e7XU}Q{|k?$;Gn~Xq9P; zrt`{jCzUbojD&-BS7z=#GQmoYFf z^6e}~QYa8rg`VSklH%6BekdHYTeUF?I77-DVl9EzY#e4-t zdQqYEz>q&x{U8utcRR0Y`9Dd%x#@eCvCYlH^GAmAS+C2(8OW&tdePxJAn>N7qyTTu zWR4J#pi;4n$g`ZKmJ3I&eal@pb$GxiJ+^UCsqVQ8{ni%AvzKCwc>XU8^)$av5?l|3 z*c0o{*m7gT2l6ve-lg=xnRA}`&48BB4O&|k6q*PV!OdvB`Q$#coHaVPuV5@)w}(YF zpm5LkY=Oo}zxrAa$Puq;0KtF2SOD~`I+nU+XJ>P8aJ)NUbiri;ku0To=*2%W{}Zxb zrhPvv^ghlSrUff1D}zh{2n>K^*L6R{VE&B2p!>WD6`IK8VIv{g1+tKyfanWQJ5m^R z{tv1Q#2lb1cIqHYU=|?&oa8Rp{67ac%C8F%%^aaM^mlM!znJ{6AoIe#R{YQNfoFKq z)ET=ZJm9G*(w63Ans;tKthDT)If3$e55?!ES3l);K3D6~353!+@8_g}SpxA>Um*1V zNljqGs@LNS?vwQhxO#KF=GPN5_q6-ShM8UqoF#5H$^i#p+L`U<9x-n7lSvph| z_9F4rJhIkzoEZyBV}@qaqChK2?V zlq}KOMiA_`+@)K1m3tE)Is^o0@zw-vkw_4=p~6k>uvf)&u$G|Uy}y`z zU*O${B05u3m;YyG2i%ju_74o?m3;u8Fg-oJD0A8)U?LLl>2f?q>X8?-71z<(1k%l4 zk1aiihlln#g@xqUF=piN<}<(=^qYID-PsZ_U;%4DhsOi0@~5r$xmJZ*&C>Y;%(k`Ljrn=vcWaxffKNjXJtF*Rafr{XgJYrwJZ>Q_Kh_LZ!y*y$FEkD zkb34|7USV(R2r1IaYp>oO7F5tIYFckqP8;I^dPs0Uq2n07{g=*7rC8`m?M_L#YHXT zfXkik{bmrb8ADn}et;9WjT1w!5}5<3x&>&w09VRaLIUQoqP!gVpaCd4_?rMg&jua@ z_u=lYg1kHmK0d;x?_dOm{QYwR zfABNez0>D+cO;QFaNDKE6V$W|PeC1wJ~#b#xKNWvG~`yuM?^z#%m8R}SN6=m_=r>* zI;mn@yWT^)$~ey?!xo8@8#A=zjc_>#TC#CCPpE8?Nnbf#*C0`6txHp1y4i_XCBvuTS!XLg_ObhL z#jXfYGPe0oTYL#9Fe)Cl`B)qdFd7Vr{B>8$;^XGJ%h&b9MYU=^wiQHu1JS_Q zR-2>g(bUAt6p!QaR%GJE;B9aDZDX&rBLbP=NoF5oBrQ52;TB-R98YDsO9TFZ)KLrI zygZuBz`?;`e(`*|LQJe;0*~pxIi_mAA%aH$$&zyg0*t^{T)JqXMei9x2Rx%oz^SQL z1J#ougM#=fz6c=T0pb=aP+7A*GT};C?3FPJw{0mdF9K4>Z_RQP3_C)|luEG%lF^_L zLxdTZ0+f3Zp3F%tksa@uR`YfqYfF_8hF9g2)80Swnn)^6amV*Gj~A*>M2N}jb7>kK z^x9(WpktockkF-4hUMY6`UvYY{I0Q(?&k`8a{tEX<6i4b5o?W)GMqhNiGD(ebY7>~ z)k#HfUwOQnD~;1ci2w?JUN6pL*Zfobgh@Bk(G4zZL>!^#FVwe?E_KjDF288m?~;YOYT?g6fsh|y@8I=*bpqNUAhgiMhT9n5p~1Rh^T1Xfvu2F+ z_1`zRG{9H%t?{u(Iln*xnYrCkY-@$f{lb|)Zk<`2vtkaI z0*PoeUwbLpCapEoHM102zIk#5@g_PQX&zlPm2hQsYm~A@CZVW;T{GUZDy^W~1=0K9 z+oKN$R8dZD7FccM3J>ca86tx^n}c96n1X_rfFp?*=gaPN;7`G7KgU82frx{d5!8yY z++Yu_7veov-$4nDr{L~@iJ%#+n@S&rab2=Zf*njkf`j78NVu!4jLBRyP)CsUv1nES z%a=LW_h{k0=+aJ)`4B@j%xXTbEAbFb@-lsgVMj6I*?vJ|!*QZ!tgf|)#}}4v5sW>p zk-$;<h6)ke1zX5K*8{xf7JY$a5dYPIOv;dJxf9C6=9;5`Zk5E+qnPOd{Y>h`YoWqCPY^&8V+LrOtbRl`~m0N3lY*FW*D{=U{cfsKOh=$i0&2zRBchhU1V|Nbix9y^!S`%R1r z1`71zi#5 zM^imFubI`f4^soAoDO&XJ=L2-Ez|sK?TG0p$@W0=)2l&Xz^t+_pV{-*7^D7g1^80yU{k3#fL!rt%>Mx-lfo$k1NOKTg$^A`_8+Q z4}y@(vy0}YJBcqFvM$eQH$PP;Sb)oHJH~pE##8fuh!sPtQ zIo>KMCTz)vb&CTKXLCm$|gB2IGMMo=+-Iy@~vhwiZruWdZdz-wNbOuJr4|`uB(B{+9z4v zPVf87$q!SjD_(cQlDbbFacC!(yL0Zjntkf8M?6uD9LaH`-d0{&vn){!7pI z(23TVoB1aE_XFl#;F#E(aiS1i6G8L!T@Y7BrDl{tsSmBki|Wbjz+3{L%tz+43yN``4CbMDCdMf2M(nU_M+jZ(JP?{@SyN$tUwOA>eZ|e1;qtWGB z45Ft?ZTUL#VcVNV-!*N!8vY8eKeYx~r~PvQ|2mLOAb^r#lf&in@pl6!Vpdz*wCICU-Fej&VZrqpQ;tS zPP@RpTwdgpj+p|;%NznZ{dOc5>+x&m{hIUPURD5DQ+CP|mrzu_cG0X!vhrXtX3${q zC1RxWHtJEc)z4J>>>LE$8J~l>YQs&TjFVO0_NN?qO9M{ssrb zu;COo-Hw4}D4iQb-kz(S;NGr0{|-5u6=#e6EjAy%U!GRHbykKqdx%sfulSiKZKf9y zI%Jr(c+9Q?$4bkO_+91aFtLw;DUEoIt=EN34V|%8{Pve_%5#T>nH`W6FDgwOyakC| z`dq)Ypt3=)6JPi7yxd3*j^XEy44d;x`S$qD236gc&;xVp?tXv{Bvr*-}#rB<2ft9za+Mx)vFrTK=y)HbW_k3B=dj;fD_ ziMy;uRl8i(yjiq(ml-=8WuH|FWC6Xom;%!%r6jtMMiNG1<%yVvDdvN?LIu~dCE_Bj zj${#UNhvK&2Q??n+x=o=bm%_Tb0#5+tJc@(xo3>-y76;4@E&`_KH;;@dzQZ)A&TV9 zx;jKyE?6Y(c1D4v4xA$SZ-Bm$gXvKE+(L)X(oa&KPENf!ML*K*fvSPiW$PwV&5<`} zy-+8wnN85tbjQd0o>}BCUpao5R@n-8sdOl8<@|cUWAU9=ej=b-CR%kld4DvZ9wWtr~LKc@) z1N=fcXV={f2Y-{bSZG!?j2CG=0^*}>+wn-$$=%vdbW()gY=6^5D)9d^JsdNs5F>+e zF6U)i2qlM2AfG3oP1HrJuUPz<&vs-Z$mP9RmbKgBK(~nIjSc_8x4aCAmCeH3`)BZb zAg&=_&-VtQ_a&L_eMhkVSWy#Gwf>2KRvh(O4Yt~|iF~Vg1XW4PrgV&SbP-%dLYPdn zUNmyS8OUcy1z`*NCEg~Mf?C#BxyL?7E=&mgOP0}+2Z>m@{jOJ;CxRxk{Ys7wRcpSw zC*_4jAi*@|QKi8y6%n?fk+O!c0{a7TyB6!!n;GbY292s3EoshH2 zl@0EMKkwnDU@!XzLd*!oB0r)xZBal&%I}faXG^ zu^fpqn@u~Es$$_~8MfS?jc@RJje0uaH<0`(|F>{4@*SBdR;DvvHBCiRt7!Io;$TVX zH@VFu-1-B^jYU*~3KMOqkw^HMs@zK(-l@OH@ums%qto35kA*C-o$JZm{<&&$-Co5j z6D#*9fN4mW`db4=$zC74Zzf=X7#G~@qP{g5aCGFYoMp*E*z1wY@Tm^*x~^EnLV1v! z6(*_Mes1+dW4RuEb0IM6d*5#@?S*{F??%E>)~aibc}hoZ1%=vkp~1_EKVvibc__4y z<10t-2qo}WdWch;Vo@{!y-Kw+L$&>B<#13CdWe2w$ur=qco z6Y3IQ1rtzD9p)8eh}E-DL+IbF#f zcK^;&=(kiMLYQvP-n!GT1`;$g^+wDDp%I{9+mw>_cRu`2WOMMuy+FsMsD*=Wm-sJN zKNZd7ZGSq#_5Obrh|HF4G(m~sjJ`jD{WM{j=p7f{0Zra7d5{^`N zPEgF_)M<-vuz6c`zk&{>U)l8eE{w-j1AKKa&^ql-Y-C-v?Q+94=vMkBa3HHQ6Ih;B zl{mANoxj#Hobw!o5vr%lQ451A4Qi^WLM9$B`G>k5!Z37(YBZWZ?_cm%aR!@`EdoJp zav8`ttIeE~@~Q8W9lKi-tIDmj37f#%8Z@xP5^{4^83OJH>n^SowYX27s~zF-c>940MMdVGMf?@a;5t$| z?Jhq-m6n_cn>q(Zioi{ut+<^8DZ7Ykq;xD%qR@iCLD#@2S?hl%em5eBpYOxT2~@e0 z1aJH2N8|w+1$6kj;Z_nz*l6$zkeD!!Ej|o&43-B?JUjtcz7lJkg1)nQXv3pqOQZU!U3Vx$vIcPc>(qLPAKJcDj6Eu5c$SzBnne?@)w@9iN54dv-lT({d*lkC><8_!8Az^}vu5Fc z)~mA!Zy@!1a_WD?*abeTwRKCpv>?%Slb5uF+jmu)A}QN`x4&gTy+eL45k^Eg0^OtT zpO$ke?d~Iwbc@OAR+=qSwaeIuDf+5-qcj9^0di@Niu?h;9k^jgEKPJ`6zo#+_`kc% za%tY*>1Cjq4J?f*ic4J{;^~w=0t8$D9)*@WS;>;6-u>L=aYK0%92z`sq*<;hJ%ef! zv2oH;&>;Eb6YLq!P{Ezqw7=uh^aJdgFDGSJA=1zIVo+sLLoXQGeF(cf0)Z z6-*a0E8PM$%1dV{O)zZva9;+|uaRu%I^=FLFX~>*+^mu{QJ9%eK9h43lW)>CBrBdg zv%|F9`5hB%GnZ4=mu-^O%qD45u;__6Q+~tc-O58`MQ8%|kw`EFq7OR~(CKvnPxU(e z?;fk+m36f49(RLLW67R2zaF?-ZfBx(P~8i?}4Djl{_+BmFM&L_;*cY=L5;qD&K5D8)|>SoQc$v?#E ziv3zdtC89Awe9l6Km$Yuk|7b~Ssz{)yC_m8-+M=cv#Jy5%Zx(=NF?Fk2gEDGFZMAw z1c~{pL@7p75`ZG7hY9nF7$=;%vxeEL#1xwi$A3~LlCoVA$mi=3dBgey1`+{bJ=zlL z_>s-9rI$%2L0uAXooLPFwNkT86ahDyCnWf6onDbv`7NG%tab!ZtYeEq@UVZzISI~% z23kI9F}$fDAuf8H=o(5@kq26EZjIb>7-t@_QVlyi*7Yhl7-}pYQg)b%D=oOJ?7uYp zJH8v%M~w4)wl1f!PB8qL%}^bbJuy`L{Vq~j=ef#5NlxRiPul*+k@YF_h<7iAH%sj;CFA z^}PM{Lkd)zvP0%2N=#8xDB+A_}5nyC(EwzGKrWp zo;Ic{2)`oIrQbH^#Ua$M75Lm&UK)RQSVH$pRu5|Qc<>Vm@$HInd z9s)yV2?qz=mv(`YP+7f2_xruAhGk@R_p>{UWASG(8Fg3ltB}%QP&KUTX!Q$6m$&%R zfHM!yT&ouWep4)MGoGD-6l5inhjnUoOY|QFibv4dncXa2M@#SxoY_P~ZtkVq582~W zPw7M(-e=7&Ho5~xwi~{CiuUddPQe6m;NlsDN-KhFC2llc1F$hCo-yoP^66yqr+-b} zVR{R)EQUz!2sp=Q#7|}%m(d(kUa!BbDm~Xx=_oy~5IeFJ%YKIl$)-u?soD!(r)wWRfv3An^nACpAdT(FoAL}o-5MbDRN4BQG z>ektzH|CIb@CiOMaXDJ&EA3#@*~mIigDR1QfSE>Y_*R8$NHLb$KK2H_Bqro6b-08vpTCk& zR`^%!5A0t-PYUfL#kZ%QRkIchDj9Ox?Hn#X!p9_zn@7)ta2>juw#@YpRT83>DWCho z@Ljoi_J_5;v`$C!YKfGL>s#*6V|i@N&{I=5z#4ec)g3<~fLKKXo;NfuH8nezp z)Z*2DFaNR20+h)xYvv)LD~$ILiExd68t#a$)_+GQaZFY-jjN`_ntbGWAMG9NqN>?+ zxR7!uh_Yy;MoKK3#O&#fD^3N~|Eh!8uecMO|Bs~ej;H#4|2PhgO~~FAvRC%rvI}L8 zglyUSa6};_MI~E&NcPCydv93>+3UzShhzM1-`~GI9zDFhopayU^}1fy^VJ955JMLn zvsS51i^qb$7A`#J@9(6OZKf|5yPKrw$Z16W=|$+}3GBj_4!iMJ2&AQ^L!Yn{W0H1B z6udfn(CSX5pTYI&dH#5Vfo z-}G3&G#IvOka1VC>A5~G;F}K<5NN_zbrcOy3v&3RiE_G&PavK0hJC~b2#Y?H^i4MTTO zW>jeuT^&<;lD2Wvhj_p%j?4AeWco36Vg%WaV{W>AN~O0qNw5GW;F9J;;%kW&zF)}N_vSeRqd`SJp63rTDH?z^I| zyjg_y@QS6H@&>)<-z9X=oMqPUY~?df1);UJ^cXYTjV(P_2-|R=Go7sSe4|^CM5{eX z=a)0@mat=T{}osH)Fv9@1`L00rpKD|;!dXF(I{l*j_|^EA>};u3{q91$)@>lSbdJc zSH@*E)-997Ow8eYcq>JjG?)X%;>+ohT)w|%v9NY5U(H;cI^`_#WyiT#yJ(mEO%F*% zO}*~TZx>YhNXfKFqKY`9@!d~qQ`MjL$f~ZIMPZehK~T+PBXe_eLqm1~oNjDZB7NFM zeZsl`u{-|JvwKX{V8PSRL(^4I0wvh}Q=Y-E!Q|e5Mhug4B-I|f#?vQ!P;h!{)j8T! z5FnFPJ;cg4W(sExq^5lTUSfZg(^Fe4;T*1IAo*I<-~P2IvgqGJQAJMdctugHbG`3* z-il2~Zx{eEKhDQtLnnG6f^(84}JoON|Y^Hn+TE7ZQ{wpb|;mNtr```IpUU3$8 zQO|_=NK)EW(b2ajSagM~uF>8so6an7l-p0Z2-@8L=X4sn?#?}Y|6Q4!30UA_wBVd4 z(&F8p-Y16jb!mlRKyv&h&)-s5W?15+DAr07NbVZLN@6Z8<62Hq!;Rl;Zebw{90qsp zsRNj^4Q=DdQ|Z=m$}-ZJRwpq|F0O(fKfVrms<7byUpvCXSZOWr z`!#facb8ow^T|3=Nz?M6ypBIq1DY#v&#N32!!cj}1H%%ycGztS| zrMF3!z}$h_pMPd%*1!G+p8B`3t<9ggtV+$ewqwUT<07T!2UB8OXvOu5yX1hbE}ZIwdb1 z4M<3S-IH#;H!(iG6tr8ie0AV|baXVURv?}o_IVoLkQ%J%EtXoh0N|;U7z4{I?H*(n z9qf?9d%l^OFPYWV=(C*Q#($4$6nt#gM8^99dfl?9g~NlKO&Kpd~a^m_VT2; zN*S?8;d(dkFZNH&wVlPjkwt+!s^ZYTMYLSX`A(0Qju6Ail1pRD@%O{a%gvT8U}Gq? zY6?2rJD+pR^gUbxR2plIOJI{20NCkv3l&cC9O6y7W>Tcvre>LVYR}fz7V8bV2e87I z$0sJr2P$6@K78O8NYbiLNKA|YJXa8g%zPaIx%?S}^(u)Fk)Gj!jATN@NS0|A%&yt` z=RC3s-hbq3LwkhId}i_c^+b6hRDhwu&coudut;@3C;h^*PNV)^CHfP-Uj%Aof@@pb zqJr1k`Yiz~`b*cC;+^+@^G4^z&hru;o#=1}oK5H}taH|gGLar}+w4!LXa(lE#jGsR zK|S4pbL0GYQ$<<1sJQsfM4rM|EDaDiaQbce(gC<2%u1$dFuiY<7$FN1l!|=JtyAnm zn8I$?xz`*yyGdFKAuHr9S8JKW*7coK|58$BL4!=0=0$X*nstW=CSU$4g`bP#AVl1* z3+9zkAoyVCWe)zG=v?E7hx?nGC^+k-&1ja=|6_Es(8|^x_Z`Gs=H*qzS&RNzpg|NW;U!ow7ipf(_$4saJ^6 zCaxvo4Ez=>1w8OR58h)l35P%~w&8$=iE6nSy8B6In&->p7qv&nS7f2Go<|j@Z4Zpi zrm-s&Nil^1BukD!0#ZUx^5pZZRpGHHpjY&l!`7_*-3ttHObuoWAhQHzIiakb7?@S* z%(hR>cT9G3b4G2m_byvS(T*)Ejl>t75X$A6k=ElCMfYJ1ufiWcHkQaFy*CDL9c^!j zX>%&w4E0(c8UUpngAKn+>oi{ud1-87QZ(f}FApK|6EHU}7SX0Daat^s+o}z}#3Y8D zeWP+5W@q{2REK|i(AvC6BexG)i5;~10sp@HDj(wDdLTO+Iuk)4_nehPll(i!`@4;Y z`}?FznPRWTo5rDp-+`eD)r^v(v#PE>`O4sU2j8V5r~$%mq>QZ?V9D5Q$RY6PGU0Z@R>hTGZ9w7i*a(fT^+*nQafo0CFKCkuE7oX6zh79e za9q;p%2Ii|#y@Rt`Z70l-$~T|zmZ>~kE;pK2TuIPp*31mviOJEbrf;$npFRo6-$6& zz;IL;UJH-fu|xu@QsF= z`loeEGa%{!CMrEZY&3^rJP&rJiW8Y-qI2oEW&HLOapFM=3(fExiPm8ZsCV^Sg_2DuW+#>Ro8dNJKb>_5XuAC?``L;>oCchiQmkh zYWF+-BE4{e6>M%G$BFpA@KbOE&GWst8OBfu_tLsP`b zQTbmO9)J(7!*DvGp<0GYG)Y86B9j3$1&9bc3VK<<-Z`+Ixug8S+-zd1Tx$;yhQW@Q=i6F~a}%&G{gS8K@wud?rZ zP6I5zl02du2E%%u37kP;H&-Z8QPGF~WM4I&#wV|@mMn~Lfm!+QRfB-^cL%i`RQ;QV zNXbV1O#N)ZFT^x1_94SCt>R_psl#*Ds|uBG`l92>&nYSB?@(`EiM|hHok0R7%QiTh zHRfyF#oo=R>_8?q!qz_xy*^XukqTmjKy1r-r%eN^+Or|ACvU_7-(Y!hFBCzh7C` zD)e*;jSe_j2IPCgi`%QO>JVJXV^l2{Q>9r#Ssx8Zee?_Tz6=Ao?EWs0xClT6e)LXviRR>AKB6RU|Hx!vGBS*x zS?kt8UIc_ovAb;#90!nnMMsbp2LCUcrIr2WSm6eKlEpCly%*aZH@<86<{DMnbjCp7 zh(xr319$o6Uup}&487MiRs76QB_;B;l14AZt1Jg1V&V^dfb0jORKkJalPGd}G@o;d z;ZBloUNr@yR&nkm<^uM5k1_0|e7?xIxJpdqrv#XNK6kcxt0dUPFe=bjjnS-TLOBOFT0y`Ey1*?yz^rtQ-|Xdq4~6<`qD< zR}oxL7SYj&rBPduoT(1vBzhew+Sssdfv3HE@RstR9iT9a8!xg&02ul zlHrI;;hazwOP;w3aDmYAS(c;HC%CgTi;#b6UIrL$X1VuaU6PtQI-Qzd#oZXxA(JH3 zkMuN3VOL74$UOs6Zrc+mPoff`H^f*?Tg4+gam?70O^DBvCK{(6ml;l`a>qa!VB*x? zA+7)*QR&M{vX{V52#EprU2boCvI1=9y+!}!Tc0+8wi0DmPGtL;+x*R?qk_Nnww09` z&(}f24EsvZDUc#fA-;sVu_s9 zap3fosFO-t>qkKhd+Mc)foKQ%)x-WM?FKlC{b3pLy@S6e-?rypG-Bq83Cpf@>DDRZ zgGemr?Lu?MaJ`}j+ehU=#0V~SJB|(H9}W$EsLHfrZb;54IGEX-Mma7WG$}fFE>3rC z{L)+i`c@T3RoU!jx8<5Rp3tt%6hT_1a6zhy9Y^}A6$31~BD1mz3N3)236i&xjzHvr zXD*{-o9qqny^?UTFySbgvvq(=2|kg{m9zn}nYfR@=S^Y<0x>L|iHVA81ZhrLVUtXR zc6N3)Q&%lFs2ll9q)NaI#d%$wWT9}~bsa}qiGdy)_JO{loFXam6Q_Z=5S0@3sDxxJ zPlVzqPGLB3$)3xSL%%{UK28=-J$d5tyyD2Gn0-LD=6lijtko+NcR>1isCa3fL_ah# zH#osFvr44bWAmt``7$xlJTxs`ulAcE`*eYL)KUkgj;Bh-gN-aeA7P!ursH67`zG2j zo&-$8%wHKx$aN9h+kG!2v;L0hIHk_ldcfCLP+knx%r$0Xr8Xf|3`WF$E8G!*ZJ1H| z(FaKJFi_3{E@m7c%(G9DNE0?iTKaJDkh?^F`-@g{FT__T)OLpyvJw$mnS+Fo*R7ft zOQ`0a_rzotGU{A>p(F(6)E&T{X-lm0UAp?$4^A{1yuJhSQ29f16RQZ7%YCK-xc=38 ze#;HQQP7WGtOSMr6aj5_Io-oh{d+OEDrYHKNk?$(6}YW*f0nyAy|uN+gxeazJ)hl5 zw=6%`&g#=g9+9hVy|Und-OXYC5oYLe4>q{^XKo29Pv1Bme)FJuiLF0JNrZ4OZbi&< z4k=ErTei&3mldYTVgDX7NCu;@x#gzbq#64)!^szgCBs4*KE67&T!rPzhwfGxNgk^mR$b(dh+3SeOFz{@5uE_Bwb@- z*r$@u4Rcc+1s>NSgGF%?q8;}HZ?4u`!cWFD`dsrlc~(M-85g5DvEF$vK_A}Uc87ne zd0Xzqinn_>JM#pQ5m9{@UD7}#!9pZl^JH4# z=3GB*Y3o^fBoA`XmO;_7L$tL9juPg}%D=k0`oOh^nyYj?1R*LrG5Vd5OCr5=$%w(t z!7m+)I+D0ZsjS*jEl{kf;thiWV5R-dcNu@X`)!m;%vr@*Se`V8udSeYO7~hjC13v~ zC{@6k0YpT|@0D>PVj`i&u=937@VEFeF&0X;6zN=Dqn+yBaz1rv^3zPhVQeF;Qrt@S zWxauNL3m(`Jh7M^2PQ$(Tl{gPF2P*{b%btSi?!IiD~U#bG)`fe;^)IUq&nV<7!j|8 zhJs7z%dOr#L*0Xqb%ytgY_%7XG}btngR%6HFrwK~f(G59(XuO@wu4Kpy*G_jv9eoF zp3K|26#QIBHP-n^UcnK2QiT6?x*$T^&h`<5liUbsH$rD;7VCZC1qs%(;mB)SgO1P` zFZJy-*+?QU>KL##a_`=~w)62I4LyvP701UV?&nZ zTb|9(gOjzC+NB^DP@#H?AQZ*ev70j-$8ywUld1lI`ir!f^*&4*7H5O@HfKp7eonl> zOozp1ZD0VCW@E+jjqXDa%N)XRJvsbc%F1opaFExa1mWf7HKgaR0aC(oMct~FwzkSQ z*jD-`%FEV=#8Y~MQtPZ>(Ts0hD(p*MiI(pA#Pa+Q&S6IVXDTtkE z6*m$PqnHHEDvqD`>(`@mbhukHn;F4m^-yXiI=bgioyIlJo4Nb&p1B$gkf@!!GGl* z_i?V&zBjVpkFnDyApCF8+rCdKR0Tg8^F3g=YIIALXJ~XsmGjbc`E{IG!9Liow9m4F zU4nR?fX)2;{3MZ4R#zlQ@Q^eqL(qzmu2I4vc~CAyK_x1 z9hYK0K=C0;*R+G&ICdS^qI4tgs^ z3qCO#5rq)6kV2d&-3bNB`VW+^*5%y3yb$)I-;aK0g`gXKn|cDR>oc?jU*$eJvySXR zgx0;9!ncjaT$91&^i?^DW77j<&Tc^2yx!9C`j}JK&}*qj@Q^>PDXS9nTDkLO#QZU2 zFuU5tL3@~TFwkO{8_74+DwRpw&o&7q4|CNJsBDNQftf7}M8{!^FhJ3uV2kiR)}_2(+-4|;aPy*~Ev^Qoh9gKCwRXS!P(8DL!dF_OgUY;@OKf$;Yv(Vzx z@sbohsu27U;>Uwg!To95VXX$x;z&0xoiwbr+AfivdeHYe?E`?l6sLsZL|GtcW6y0n zqLq-pDQw}|tgiN&s9%;1tr)PI7SZ>XBrqfE!+S=FNV)VtR#U0BIFv+IUlqc`0A|Fd zHtqCJ+56N~TFtD&LISb%K@8Jd=wWXA@UiSqEye)WLaMy)1-YPJ773qPaxQtdG;{tk zARSY0vb#M{8&p?9SLqb&C-vcliF&_`M+>Ghv&r*_BfO^YPF<=P2w9RZhlt}gv~e^G z9s(w;iWEQ>!$QVL$%0wyK~7wAmR^!fq8HY8f6SR1+64VZI3Z+pb=9?p4t>Iuxw+Dq zC|2vf*!~b8){6e8wUur4kxnvw0qbTpUK=Kz#!$Q|@{L^2ymCp!HiS*`Gb#!RF^6$wudzSU`EkUm@UL4Z2>_&a-%Ys^{xyug80f=uxc151X zlrnB(Tg5M6$e)n}Ycd6d@6DDEQ(;l`foBt9Hp3e1rR|05H~4Jh48O_l{wRf|9Hpro z2a`L0|8(>8nu1%BA|a3kc@3ILoMZaeF)9eBF#Wq&8WHrZvIy3g|N7}&x5x8kNyTto zm3k|Vsb#VDBSVt7stEr5J!^)eusvr=!%lhA8p*srLpU8kK&g&;QU}QHvCV6jS&6Az zYR`{gT-g;{4~<(3i+v+Mg+s&hEb(h?`R?0wT6c#no8xeLAmSIF{?O8%_NOmLk9L^{ znF%;gO-=za)4zu0P_plv2H99V?{_191Rea|w3+(nLg09eK~&=^&m&^f`3&^C%eXQd3dEr!{KZlzRj=Lkkx`qZyEbEXm?g zypk2ha)>b|bNMcc0W{$@jF5T&Yp(q4ZTC%pY5#pKv}qVv7vp(^Nbw40wc;Z4(kCTj z_=By2y@ACVhsA)KLHeZK1^_`L+*|!XE+``4A8u>*y`CGeKY4xqtffBW9raQluYY~K zh4gapGc8>JB}+zh+L1avw$LTrk1pgakdPlEGvB)+U!od1`#w7scDXdsBCBHmV!7GF zPF4C@%Zl@X`K(-O$g=D=^;(0a+UIvovkS^|s4DRFQS`#$+Q7-3@do$iy7^%g!8p;6 z+prJOLkI;^8nP^k?GeCxM@+(K&RTAV;gp494_=rY6U?{ zXce^m0ND&6)pks0VPRqNPW3=kL*P1Q!>yEp{zAwh4amFAn8m}$1hk<6ZohJuxX03- z(3*kVeRwsrfwYS3@ruMFsY7o{MN)dxDsAg>JSleEMtRZZuS{R0@=~nd#PYJ|>7HDS0im z^~qn{&&#dqe9lY!m++b*|B1W(iBeYp#iE$h&$Zi)MfLlCzGfx};CgU$|Nhp7xfKMq z=o&`~E|VNUU7v0~=Ims$W#vTdvjl{&EZHo>tbmnN+tGMd1s2PMlhDaqMByaaiqolYGBj)5e2b!2opw{wD| zyRyk(tsID6tH~d3fJQmWQ0F%ZttWNo+kxYPq=CTWA^*`L!K;-n?ZMRgPZT>3~=I)L$Q&wRPMCm$$xoZDaV#B&?3}jWM!! zuwD8dX7AS>Z#VKJCfTYagL@{uVC^w;;KF7ya}Ro>DNvdV%QI(!g-lvvwh~gFsJcs< zV9_|`_IKwlqkgIj30;=z9df#Cy0bEZmYb_X71{GVB4{3dZhcOU9gtnUuVU7(l}uo!NtmM)Z^)}MItyl z@i_0_S7dGFRKEv9eV_6A6TnLUaj{gh;!ATgci(1dL8y42#}CwjNR8~@6`=4au%=G< zKSrEXH~e#%o9M#{b<#HCYk)_}zna=f1v(NZe2g^o?VmM{6^d-74@tY~LJVJjhTmKd zk8tNc8vE{KI=g2O#3=5n$Y3BeLn`^9_yE+JKD*PTO$nUp-y)koknr{O;6fd3JK=Tdd+2FSEl98A0^Z+UTK<>XdA zWD^6~f>aQD>UI^?fb@iZkC@x-dWT?^04Q4Oi&>w`;!e^pyk6Oa_^{X07ldCP^>EWl zWv!i)&^=LhY<;PeyMklb_sl93@Qe>UT27a4n$Chc^9k}EmYDFLEzY#L4V81xKUm{~ zdDN1KjhfyQBC|(x3oU%;l=_@G@%IG3+eLGyGk&-{p|_h)%c=9n`-F)*_yzymgvkfX z*lRHl{9=8YpJ=cQ$L!C%D#p`B65Lfxj$Zt%j5!Ij8ue}BgM#n9kp2F2$C$&{Gq39? z)u)QB;5sFLmnQNuR`gKig6$EODogu6fbs6wcyq$OfoOw|u1MllK-eSG;Oihwc9`qA zr+|g`-*>r5kD1=E6LgUAVLyp{5G%%p{g<%s4Q+yD8Py5V2t@@s%>|HZ|A45HGO5x* z5Loj8i|L>B&8c;g$s{)Cy;#NJEaD`5)lc7i4DN>5VWpG(i-;T9H>5N)sqOE7Jjy_} zqDmd*>`4i8gi{4Fq!SP0hDY*x=5yn9?|$=Wepml!Bb0(V`0~Bg9PF{u=9f`-f6;;F zwBNR!Avc3W^NhGGpzgh5=5qI8S!)P7{PK95i>5e>TOCbj`)(kV0S1!XNfu*b~I=lB<)n9EF?!LK+w)ZR~45knL}Q{`bEwM=LK(3E)UYv8WFKivjv z2)00TyL?R-%Vs^R5PC(dBPSAXKTQ<7Z0IFL2L{v_1E2Zf<#@-e!dUU*;o&#`JuPTI zh2CwgjIlVbB*BO1MM-0uf{v$YVp|iG%JO z8X~37`FVL6LOqnI>}n{7eDt^zpX-5;ijPlKObk>LG6h40ue9T#p^~_YgxOAIRI#lB zJorcwLlt`*Qfzuwg|JH?7~7oQlVDn%Ai?o)^ew%xC1U7t;siabszQlp(}lmM(Ry$2pww4e-QB zgHo)yV7p3=i2kFvTv^g(C!Fb$nh?pd0V)WXp{r|4Z6?wQ2`)&J;OMn6754o!tqi+d zW6hl^i?f$yVQdsd3%pj0)*Os$6)ftnZ#BV%X=Z7W47ZoQpmmhuQU8ze*^-w)f7hrg z$@01ewkwj(^&W3CDck3a4?iRXOh>Gm<{hGD2CI7>J6F9e7!jOjzo1;V=atp?0KJ|2`EXw@@M=oNb&5XV z2HPb;*!6pUA2v&(HJQf!)(0sX(td$BEY=|LUgogzs`?odThMc$yVx3Vd|9KmihV)* zTPjYJ%uAA|&;J9~zumW;(Ybv6U*G+PKgY^|Y*K|uCvu&=N{`PZL((z%Hpd3TOtKmt zqH`&rFthFJz^0|WTCT>Pt^DhlSJ8;uV?DEc!=~0SBh~K7mL+N3lWUuYR|^HinPj8( z=#t{%-Q|`W{qT#YXd-XT7HF=)zmWb_ z<>_Tkt9(iPovui`I8Y+d@=7SS@_h>GLr)x=%cRoG8JuWD*(s{Ag$cyLV<(}5G`tp zaRDp+%~#Df3emVNOb zr%%Ve(Jy8W1^$HC9n>R2X`fE;o=A5we0@IadwF5H1bw_Sn=G2PBG#5j_3aLsD7`oa z^!B!YZc+OH#-AbW>kKAEw^)@Ba7_UQ#=7c?>&tKqEIL7(AEJiJTt;4efvyM#wA_d- zXS{g!;N|hmaxK9Uv;eXdaB=~7_doPAm%t&QuW&_eDR0}3ds1ssd_{wl7e_w*Au@PG zd?3~qy!Ss8F5y3MP~(DfZL2*wDS}9}|KiKL>smy_l1Zsh^DfTGekx9cB6XdI>hZjau4|x#7rf@+vb- zyqqX9FyObOwWKzVhPtjf@o?}yOx}dOuj>C=75nvssAy?%yg#qPIsL7kR;eoD{nLS8 z#fHC8dw;@AhflZbp3{sMZ&_G`Ilt6>9O&ze_i{kHR-!8xj1@-V?V);Yct4CL^Not0 z7Eir}?hZ4+7KHio|kUtRbn!JS$hTc3uRe=z-dAQj|`8N05zg06u#y(yWP zvDPROi!Q)#{lWhR#T@D({tX1DAl8kaJ=;AElCL})+S|s=Vy2|m#)sH5T63h<-#$q6zkJ>8$QzIhix%LPsEsqrrBk-a#)7o$k@@jrr^{g5rM$bFyBkdYF0 z{lAB_>TL>4ZRdQOiti3tttU_Dej zf4a`8qfb0Hg!ZtpkzXwEDRQWU%iUFurD0ul?+2BHct&0Mw(0`sANRAe^Ni8^ZEN@% zWW#~~5SkMUZNF7}YL0*1dqAFmOHQsk9F)>J@;ZIV9`2#=vFs6DzV&j5Y|!q1Y5ds| zq56yIO)|eSXVyn(V{{1!7GUa*03g{i9n|pEo=?dPWEsxcxF2?%sGWF*q$3p$p zA2#4=#wC6Wl}jWh(=>5W4e>*b@pcC?SF6d2ul~>{eq9j9MUrv5fToaj;m=Q^{RF9$%*~Ai+#bQB0v2XX1^BRj*i2X^^ngj&C z?@>CWD6&>je{tqmOcdBl%=q_TyVb*0>uxG(r9WXD_49@K8Nm#pG#ky}q__4z2`cak zV?_q`CNY2WeA6(4OK_stfcxQ>OP|$Byr{2mVi|OsjS$k(JT?ZW0A{?ivy*O} ziix+~rQi@YB3G#EAD7-Y8i8jfTGP|?wD?^M0hdr_{P5NzDVvo)O)npvP~b+;-e{Jf z!~oujiGrfc|Iq5>Bmd3->_A^v_w?*c{x-Oe-a=bxExKgl%V#Ldr4u3+enKH@jJcyx zLM$Nr(5AERM3%A7Qs;$hleLl2 zWR6;#`%)v}y%E2?>{ipPH)}nKBi|%O&QF_0=+c?e{uAuqd&+AfRh{*Ebk7a$aL!31 z)>w;H0)br#Lc9O$m?)Y!joCHMTTsJIVxnEzN3;lI7B**_s@*VhcK}y&S zhyzMT(73HoEQerzcxW+xA_AOT?xqQ+H^{hOUEnr5>3L? zfQJfkku|#eJz6l|BV?DpIGOokFNWKBkax)X_#BLzs16L=rBk@De&48t#fedO17m2|n| zm$7e9iNmjrH?~XLn?n?*dmR#qAwliWH^%^@opn?24PTxJH)?;)8el{IwrHmi9lmO;odL4xtwrzW04alh6j9nepYz9Ox=i zt;4>wSf=$Ht6(i}AR1(w=OSJk(D2fne+6Y}`w96w)c?56v}xDOPen$K_G-6somL98Tjp%UC2Dc3wgZ z-Vh7L+yd3l92}0Ud}!Cp>fSQRKE(LSI~f9|@`f<#hI58%S9{(6HI}fWxiTwCw2j-REXzMBM>^-*zkT zrGLuE0C{G_Y%1y1K&H_BCeE(=jUE&mvaoaBuV4sXIq=M7q3$Ij-Ro4&FEq5EqCa{8o)?nX4 z?X>pY-`~Ibn0fg(cp0+<3hId&>+tX4*q+8GZcKVHm0*>sn$d0CEpLA$`Fz45nKsnG@9QY(9OdCHw}s&*YfLp{)lM zY7YK`KWn{!dR6tj!|tgJxs{N!iA`8Oe$?O-Ig-Qt2j{Eny!|;Y>Ps&5Z=~Z=fpH-y`Gp$7(l+Kqf zxNP?uu0gXJ?zy&^tK%~#&LCC~(ZOTYt?B|IEfNBB;ZDfbOjp>ZIu;w z!Q3XYi98@MP>B@w0C2-%DsK;4z>s9u1uiOrPLu2n>_hwuVw#*cVbhU3r+dc1!ST<% z&_3x}Q9OzTA%rY3sFzB~pS1mn6~0y2j;5SyJkiZv%4Fg-Q0c zK61*T7H+{?6>8;&p5Rrv1F~jFjUzCbDqM^uBB+qLTd(x>^$T6N@#(H*$DPD3&d=q5 z_wzECFY6k(&N>L615Mb`8;vcAt6SzeC(?tWFB1myRs)5KRWig!91l+FL3l3xgE)@y ze~wZQ9t5{Xwz^X_M!pzVecb=_H==z4il0%LKLQEoZ*et_XTycNE{1U)Ot256qL~YS zu8?Zb!X`0E9Q##-W*nPz2&F1Z3=^emCXr>A5IU#BYrT-1|aeElfXF& zgl6Ds@9FGB(qYla$-@8lh5SbTLvAoUEfL6!>x5ubwiJeOyN{5^hE9^$$zP*iNK(lD z_~L*!y4v|NR>z|rKl|b5Bo{49^`B`~_AX(Ds|w(VmFpwDBZUMrYv#y1%g^E2YHS=kVnIZyZ`bn>6o@;pObQCR4qAqnGp>t1bio* zidKA)cUL7Rt7F6xeoXsb=u0>8X3}Ie$i3*#JfrCDaEj@VtUW-73_o8_WzWOL#s)I$ zo5@^h>F>XCaw3l*nh?Gb@HkJ=SM4C5&z-j2XlC~madkUH_9V{9&AmfNwu16y-VO8v z@@z~i5SaF`Whh%D%YXfHA5NFDNd`v4j>x}GWIGyax=v03rW~QgybWd&OQGSIm4O=O z-!_!JqTOa4NV z1q54g;7{Z?t+1agG}J_{#IQ!H-||U4YuR{ti7O5VF)S=B%jd)XV1c3c14Yd5c{IMS|^h?ngl8!@W=! z0q^esH#s?(Q$K@*mmSBH+9&(ep z$N%U%#=?64QA<_Hh&gQK3Y;bbA)-Nl%bp8O+C z=o3|L`^sO@UsRUJcgEtN7D{T{;CPGmLCtyM-%yVNvt;;-hN~ zdzGGhCFDcx?}X}Y-NTQ%Xn`r0Qb(e!E%W-M09dw;f72r6Ni=}*L!W}0dNNxDs@iUd z2A=3Sz;bkoyS<`&BlP#|9UNXSCBDr%q*X?44t;|z-2l$;SsRqqGZulReJj}9(r*W% z6ixMGAEYZ84bT{V<)0?5eI2ZKav=KZwCmfe#Hp;rMk$Vonah&!$lrB_D;}#T5RW6`CQ_YKiJR8t0+jgcXWyDE{XNa9X^8 zo%C(jDu)bK;r_vyUt;i;a6vM)oZWl2FHN7DyB#XJh*g$G9rtCj^?ZFdixmhbhxzBP`Ap=&dI2pNu`#-{rPlq zKh|oZM0~mp&(+p#Hg^`d^5{Zl$iF@y3I+#wzr{X;uaCWH>>7K(8hUbPQZfZs1`ZQg zac79f*=v`GYB~(*pjnJ|?=}T>@E!>x*mnZ^7{9?03Hm)QwF@ks$G&P|TV`6xYFd;f zW*@7B@1IQ&7GLO?`$>ss$Y=1G5A5i)J*ynJkpVi{hLjff;3q4ZlSu!)FzD6$t= zVk+r#WFjLm5=J#+Rri(TT@|;3+VsQNcQo7*5W5#IZ2!Oy+%SVh^Yy;Gu5Ip%^&q?! zToy}B!5w;=RFV{#;Jj!8o({R-GoR*H{vfISnN=WOKa6W&cz6RG%l>dLng9oInj}xe zFtR6tWs^6Npd)}S63QwqZT=%ekmD6Usx_+&So_ZeLOXJ@@ZI!z*D6b{F)JK3=W_0} z#N-OkfV9PQ-47S{b3+NcoMpBc@@huLlchR+jVxUDoBkNdMgTO;Yv6{3e)ZFt&3<>A zd;ZKi^pihf0PDsLh>1q4n3qjw-$j&qm0)Fw`W-C1OMo7tcBY7h5kai1nYYE#twSdq zMi)<>M)-DnzE;q>n7CD+Nz7@~zXh`h#>|o?#Ikp?z8C&C`ol?Lj-#LExo-B%lOUbb zeIehW>j7c>v7ciMxuq}9U4M(s?VcPB&~tu}PV?>j=>C${0?mW9Yoqg;vAbLEZOJ%s z7<9OnwaRHVvP2>|E=l=`PL-Z+*uP7xbh+Tq;RdOKHTa4QWkbwNq;aIvEQ6{P5+w3Q zV%*#W1wK2I|CN;`Wk$Y_fI$DZ8v>RWyqhhc739@Nx92)?r6YaI_D}7r3HzwaKPlF z{Tp%(a~eY2mp?_n`Qck{OZMjubUum^;40jf``}6MB-Q;6&?Lrj>G}*xK9B& zRRN8F_>5ehA4|QAiHW&IMJq|DD6mSs#$6=2x>@iZVgCYf$H2wpwc2uhDro-?tfysx ziv99G%e+fG$fSHMj1yK09lse%42z-y_~kmE?I-ah&q)DVD1tm9auoZgl|EL@FXiY- zcax81>R zdowe$kdRA|-;M&^6>coMkPt;O$fKPhSGc4Q!PKDa8vg_4Z&Mct+7ulkS=nm7ZQTYSvp?i;Cne%n&{P50Tc zO;7H#QtUccu`SSv_Pl4D0qr{|JK=Sp9e^*b)-w=}mICAXrd(~{u>-fG4}ZLWp-Udr zzrz9e*5vkZPL>-3kL%2Vo8s@v%2@dejV;d}e!Dc1x0idBBL+0DRWbmExjqylUQdOG zZB)>M-GF-OLKFFHw%U1kOIcDV7<@ zx6~hQ_>{r;F*#f=f6MIkO7-8%w3M8*$@Vm(&E*X;{T5Z01AY|m)jygJ52D21Ty2o> zOuc{r=H~W86*4JG$(R_fW>l?VYj3<3PrNR0D)1;q@@{v{cO0B${N7y*)8-0xZ~2g{ z0%2Wf#h1U@j8I*38KU(3FxcP!@8l#38~Pgd*AMJnsg5kSN8{#j1BZEJt{1^U7%)%$ zyhb1p% z-B1deI}s_cOj@5_F>==;yDKJZ;1%>2TVB*Me|@^?qZx%lvOE&tsV-=2d8ImETx5m0NV_j+~p@=y}|F z5Hkb)f_fATD-07fh*kb3Nrb)T2n#@)nG!TL9+L@dgnTRbix7q#3y6CLePl|15wNO( zS9&K@@aW41mT62v(=A7ew9!&4m=ZFwnT}2xG#!n#Ke1!Z9 zz5Q6#*NJEiX{3rFDvUTT45Jc*ED2$mIOZ3c;~*RLySH^K^&WroHwe~Uf@z}Ot(LBv zODGBPWT!veLR%EcYAiaY;C%VzF$mM0kT?KXblDAiT@1S3(b~l1M1pF}loZcg?_e$J(hy8xvNKg+( zcF%TQGR&%^>(N~_ERjgllQ+yA95x+5WBw|(yVX0w`=7hKicrvRtsHLV8S=CEw$ ztr|w6o#;koDkc`)WzyFp_wul{`h1RuZkZ$^LQy4?8O|~z;>36H-iCdF3r&fyFrpQ_ z3jDAN>5osz|o3tdq;!t3kMT1ASEGravrCI~!ak>R& zN=5;3zHmj|e4*{?Dkt&7TPmc2gZ=*^rC)Up=XHhPx2=xIdQr4JAA6zVoc5mWRuA8Y z-!+EeutDRaO-r^)jHBjEw*t#vJB6PZ{9MG`K2&W=g)6f7qgWLyMoWk(EiM-?ptL+OVb3rvF`8z3m%gL9-7W<% zV-anHxH$IFey03CpN7Uj&VG~Ko{Fi&KgNzmG-xw;O@Yk%tbV2;oJ&)l{B9E-l4e+; zY2r!dW_Q$UEG**#-u1lw&O7|?w%k}*rV6ebG4 z-2G*LZo~Outo7NkVq8mBXmSWep@adl)g~842)?k7F~bllmf0Z$^IC+?RXG%dbGGCq z{A9I*mV3FpTN_?vZNUYB6D3bwZ7+_^${kBp#fvW!4Tk^DF>#@dA$ji44+$cy>>Zb6 zMs9gmZ3aV-u5Uf?p>d5Ku1(vP)8}&_A+8w^TeA=fC_`{6y^2I}J z?vk!5lxXpfm>PT;=FNas>QiwezI#&}`Zkc6-M<+Bn-jILRYL0!3P!M1h|+qNQOx7FZ_^|yA;o9*u z$5H@(LcZ*dJeKZw71A^K?EqA~A)$s!vQob(XUQ6Mg^X-yl8&nRI%Jk>%3UPVa%wp| zrv-iq!*t0pv*57(^7G=3x5#cFTaA-8c$pR-)J&BElL$=2N19xW)#y|D@^hovx{ZON-8O|o(9?QsHhX$ar8G`!p%+q zDzEMwvr<@p+!N<~`pemYJ8o=S%jWw-PqKS{RIsy{Qp4}3BTIZDg`-{9&!#7TX7>5{ z+hFrzI#ab(t(pyR^kV7%IOAyF1`i0~NZDHKssO=U$H$Gm!dvqJ*D*XmSqb_X zhX(sH)+|hC&E2laNtN(@pB&*=oNb>fC*8I>;#k`7G9COd5lRJD#9+?F;L!0t_A}8b z^KjFCJqOzgA)hNLX}X^0eF4CRHV|O^5(}QKWzkZax?KI;vGkwoEa$hh7J?32fIL-J zw=q$tbQ*JG_$>WyRwJcgjj^^cOb@{;#jr}fb4)YPp{okLAH9U&X5x|_k-DnlQmp|F zs^p3iS9>g2Supp!wmEL?o*p+dkke^#_i+57oT^=VPL?_%ImAUAdonp=i##mmNbYpR zNPsWNV>Ze&ow<~CaJKr^X!!>7$!jLj{x36@R@gGa)6kCK&~@83`(Um9T($b%>L)DL zT>T3BS_d3&k8~IV45wFkMl{5m1ed0YS*zFvgI4>MXB~X59nAD4k9p|WQNnnaIJ6r~ z&*m#t1LC@A%p(RJnPg;=q*{0A4Ys+{N(s8oCQMn0uCR`je z+OUXVrt@|ie2#C+0n&e?tg7!_I3%(-LWmnH9_YrISxTzHrDn@k{txc(6eeNvsVYX5 zcv5w+VL@9wuLhL8mT<-E*>v>>Ro%2sPuu=nD3JssQIB)kQ&6-9dK0^OB(cHh!~x$8 zl2huo>lZ!Hu3^ro>w%cT--DUA8QrC4F$m)eY|eGpuy1QGgzNUA)qYh#C1;5ph~uhA zav6rSS*N~!GhZ)$2>bO5CBxT%CrG=5!_LY23WQB9iclcl+-6 z?(8k&WY@7=j)mEIEt=4A)}#s5S!IM~3aU=XJ!TV1(Q$#`kj!C8v#dZTC?e~TQYYO` zVHhVrT8?rKoykyE_t=v;TT~10>ZrNoUhD~9M`-K#T#pkkO>uJH zk}ppvq9NkoXeKDk`nB~e1`x!azI!UNuY2tAzuo#M_63A-w>Y_q5|L=GOYm%R>4@>> zttBkCWx{#5SY>km+x@3_tTz6f)9_v#&^I~W=QZxBN{QK!kAdc|go(ypeCGn@6FRchFOhh@ z;1i)`r=)6B&YyYxz9Yoyy#2ineSyjmh?I>s3#MyYBaDAo_b5bJES$g_}$z1 zwV>W+%SR-fVfFR4-|TXudn4^itAXdh&{NmjC>DMnuTu0#J@VU5)U!CK_B=a=Qgu8? z3ikJWYslEexig^!2hZk=2~W^IzA=%NV{_2a;24PWxGxmA5xCZ zw&yi?i`y322G{y%3E$eV)0rRs7|;6K(djR+{zwHM?h{>58r0j|SbPp%1hx=}GOLHw zC)0c~Hi?6!#?s&>b>ut_C8w|9a!&j*j2^emwrl$nQIZU!w)6l;eX)V-gFEOhs6Zld zdg5(-+q|DNK)ZUsnU^RRF6yU9)#BOp5msKj{HhP7@j%+#UyPNWg#hXJ2|*S0OWiKE z=c&~7krwYg5yziU_91`C#DnEthBfXB0G#lXov2|=5V9_Hhsbc=Dx1`@bxw+&a=^on zLD#xXfNbne&{2Fp_aE1ekYgp_BS>~dMYfSv)ePUSW}w=on_*!zdm6ctkqNF+f^M7x zMx{a`Po<xG{fy+)QBXzjH@FkMWj+!b;v`xV$ihAqr8IIXxQP zx*q6XKtYx-pF)6Miof1us+{N(RT5EE$eh3yU+;<^} z2Qi(@oSeS5YpHQM<#BJbD-fS~y=^lU#rQ4V4Y#9vYB|jo{yqL?UuWB=Sr{t0;CSAKFE45%E*P2aof>%eO{L8+g=ey(}FXdEZq_<^1qwK zkhx|l?27>W-5^@1&B8wj6j)~u-BC7?pfaZIEvLQ4vE^iY0Iy5bTe`L6o+x7G;Qe=uTJza`Apq3@=Chjet?PTU~6YEfb##t5takZig!XgB49j6L1-bD zlFHb#e4qgE(s9@2Zd427+b2+vaHP zDeGj@Iklo{(e_V{B8!(7TOK?=y0&(SGS0|gISz|{+`SbMPDFz7cvgSFNCuI4JLCSk z0ySR@X>$7|SW5Pw_68|QS* z?5)ZzV*Wl6mn@HCD|s43#W()qss*wG9%&_X_auPS3QQdoTWsqom@Puf z=3g4=OeJkQVFI4z6o=HlYq7Ikez{rdtb6_P=t84gL(!S`BPzk(WlSQ-|$gg#i^R=KM{_w_>YM0wjW2q zh)?}iS*7zE^BS-}p+*q{4Cwp0#FXD>y*iM~m8rDut6US?Slz?L>OdHrWB54&Dx zw71O~9nO`j1o7M37ZMId%b*mTP_vqD4<-f5AW?JI&CF9(+wH-Wd|GCf*xx1o5R$H1EDq5HDV{8DR9%%Esmwk7CeV zvhF#n9)i=1*IInOs@6mKhLY807JOVlp(Dac*x|{)C*kXDl&Ziib#RHHt?AKBy#;H< z%9hzcHQL00?>%qKf!H`hy>vQV(vmfm6m{<55+YK|wCZR)w|6N}3hN$*pK-9@6zuVK zyLCA>!2I-LtGZ)R1mWHJ@NU`Koor zwTBm}f25+mZz#ymw$Gzi-?$zL32t7X>Uxv;C8sv)$B)OacB(WSj*D^BvDKGWEMv8c zBC--x%wc&KD-;`+8hKYk9aw~}4834aU5Ek=6h2zTwv9FEU3V`E)Fa4!?Q^t(6R=e) zlJ4jjH>ubBcShgUB*SJl??5qbIaJTC!6n=iO&^Pgeq&6h-|fZY;cdF)S63Gp@}J;l zS^TKH-0+T;oDL5B*}fArHQqnB^hm(`bzYxyy69{*`B;y?zh*bmdvgN69DQ}e#hEkP zdj%NM;Zrxc?d1I~_YFfh=!Hqq*O)5@m9AKn4f?9=h2l&s(VIqih5ihYxZ0T4kS8M9 z6EQ6EDuxI>X@g`98W=jO3@+YE@%XAr^t@V?SU=x+H>azUT)2M3iEphExZBw{n(hSM zZ}AQBxBc|A3EFzmo~(Q z@(bj6H<`Iba#+JS>JcynrD6O|w|92nc;6urjPbuU(AYY4vpsOm!{Wp7y3T8R-MI)XLTt@@ zSS8-;*}v%Y!)Yby^1iu2#)g8bzXLzDN+S8>avJgasdzzMJ^>b?yh61WrD5 zjoPvfgTy>-Ms=Yf8ojwPrwmL}e$C2B^4)oGky^S*Wf7C4#|!`IQhY*E`LTF%4dH`x$U=7gIh>ej_v zZS$DL8O7CELQ~qAb5*g?b?2C40oR^NZ#VrqlNuy+gTMpb_dBzZPGA&55g&z=JkBvq zRCB%1Qaph|9DBE}>FLdIo0@=bk;OvIW~0g*S;nhQG_or`DOJ_~s`%49MpeUJDdxgN zJ%yo%lgOMxz&{jM>5IQICWNu$m+;j=WF0I+L=lYomC1UIo7Ec8J=hsp1_XwfC$Byb zK77Dj_2P1j9f2DIYIj36lo(kigWG;!cML*fa3nb#We7Aae_#FI{(-$ud#$?GzIm4v z8o?3VJVS-S zy5Q>$qC$B|dtrEA|M=#cszHH_=cGdM9*;#4MHJz*PEVU~Ed2lUnBP3VK4!am>|wFF z@=Xf2Dc>S5<(EmHEEP;Gebu<~_Y`VI1iL#2NF=M}47vx7!YO%~)Knhbn zyknv`8W-Skl)`0v%*r;To4@@wz746oSz~V9L)!?nrFk}=x@W(*4g5F!7Ki(8F;Sjv z%VtyUQT~w=0E*<+BXyfmEabL@4^}ftYKfArik2^mBR+FakQKbTDHGqg{FhvXJi^ zQ)#C|1PDFr(1r4?UwcNU$%N3&Mu*8QZFw-NeWQh`u+0dZ9kLLwQ|#9L-%{Oq93IOv z+8RHte-_rX^+0dy6M_;{aWlZZLas=+FNhhO;E0MnbsYD8!4A+ws#K2pFn}@q>%H3F zqvK?`_Cpg^FV5oKkNuf-`G%C3e(>DB@oD11_qS5JRfK@hnwpVCbLX33cP5sW5|lJL zgCkX@K}3PHSUiLFxhNAs5Z=HCLX<18%zB}i>oQZPOI60pC`-fNGfodRgVi{ho8pq@ z7P`@Unu+$}pdKh0ij>j}0%)oyUECyQnSO*LE$IrHMD(dQ9p|5V2P>7Klb4OrU8Bwr z$KBM7w8cO5q0f!j-V$K;h&R*`Q>s8sZDfhl6RS|Ffsyb21o1t$S zn|T@=*IM}5w7cgAF$#76aq?Z_mvox^1E-p@0~%7JG^YllxJN80RndhS_T#lMs70CGrh;9AGMiG%zNk8ar7HePRaZ zG>z~?zfltz+t{}p9G(@%1)&u)hDNmKR-xJY`1KDO#zGfLEx%*F;JNzM%=BmxRZ5DS zc-fLpjCa*nQ9dap)QizPSp+=YZpFYJh2Jgpq5qhNB{ znJI%o4J)lsMASNpmRDkYiUx%TgU!o%w-I`6Asjgrx-e6}zN~HB8oCb~Lm_aoYDUU~`wV$ov_-0VPD`rC4EgW@)M6hyJ zo&~>>qG-Od>{MGSZ@v)M>QA1o(>jq+Bt5ew1`Zg`HAY6J@Wt#EsWj!^Ux4eXrtQyj z$Om|Q(~NbE(Qh9s2{d;ozR<5(ZZB4;q_Dr!rrPJ5WG@O+*AD1AN~ek$FskvjF<@jx zuca=7fni3l1W{&=9?XTx2JI#F5koX6t#A0hq2&{G)AE|8=&owqt!iE|XLL$Buq~8V z=wR4hpuR96_Lym)nTCugIV@FG2M0-Wc;=Prkgi|QXs^g~qTm2=6bUF?{e~>^Xf0K8 z;U81B>Iw2s8Dg2l;EB}GVMV4tK}-v;V98_)bQxkr8F?Cb{ekj!2O|g_I4E5Gy}J>X%@aWpK6`+~=x~VBw$Juqurjzt@%|>MaJalD~5q0gW6k<4nAOXXkp!?E%E z!xK&^nf)X(kg%>o=HxA~SJ~hqTw-+rk=U>BKD#mOj0;Um4z`~N3UxsY?uNff`p?Ox zydd4bK--65&c(9ei5S(Cx2S8R+OOwq7C4OdeV@qU?k0Oq(Nwo%vBngaM3*rzR)#t- zLL+Bg6gq2l%M-g~bv9yp2yLHW{=M2I4I<)Pa~v3Xdx9irY7Mg47PpMp%_kb>6mw*D zS7)xZu|EIia9|6{3)oBfRPY_$coBC=TO>i`JTN1W$FC7*r*$MFXZwr{9zp5~-OyQO zdN2(nlbNHHYn!uUD94xh7zc4U>RDRVM?(MGH!c10_@~U?sueoGvLsGC(U3K9iChOM zSekj6#=MDoLIRDmvxBnjXmBE`gDz@p3eC7KRgYKas!iDMxxC>k9ttNDqG91U*E0}v z{j6t5nhEp6A#}X`!~hPTeCXihX^fjQv21z9A4qc_tY)P(?!$`~O_H+I6Zw+FnTb=%;mWF4SLN$gfr8D%& zE-p?kxo-DAv4Jq|ceSI9B-Bc{!U@_c1_@~c^KPFa*Oe{fI=51n71c7PVg_Axy!IK- zk4kYh8ZB}76h%}t>MvN9D0gZU;)MjJ%&UyaZNjj5$GuZ`|F*ok1wkXGRn|)2n-t2bS63jd+IBi?)iPDI0qZ0Y zM({wgd!@#G*9Lg!ieL}Lbr?`utPSw;H{1~$VssevFq~?l%((Ptymq>-pT9sLJ6?*m z%iM0uNXqX+WT&T*SXCfPj_iTg1mdix=D9(Wtd9bk0B_#;+*rU_0cUuToGg?5Tp;aE zC*QU}fF|@t=C`kH!Ewr9KJ3zEkRom(p)gTR(Q)Zx+Ip$V?-NIPTWYDQbC#Ikg`A{@ zj&%ahunER29W`N^+gN2C+1q(YiI+8WDV{iUAUcWja46Qum z&xPTWY&h3m=0(_3LT*5W{^Q^(_ozc8-LvXyH8bka<}o}@s>2GqDNOJg={{Gmy)MHv zIxJI)tgT45XfreoGDd>$+Qc>rceh?1^RE?>FdCG1l(=Y{QLMAS{YT<{2_65LyF>cb zu*R&8ewU-L-icrZy*wwu&Xh=!C3M+HC5}~xz|6dkSjb3mzjPplDJ<)89u{Q1U9{V- z)6U*U9pcQJWE`Q_ek_;Z>+^mC#@IFTnue}wb>Ndzge-K8AoIddNONtBI!FJ~2oro{ zgF-cflJ(>{YPhK%C+p=$?L;0b(?+9?ikf|?8=NB^H6B0AufZc9&j!Z!Io3e58Ay`T z;or7)kX>WqOmsL5VRxNLcCbHsag*0teg5L)tz76aoyr_$i9{D<)GXpqfUEA%k7MFNBbUT>Fe0EU%+a=OOixYj-d z=6bV7#bME8j&%qcGJE-`{_!7szS~0$r*d7{V8!1??TlbW<^w_{TygRafqA1x z$L+!La5U$rJbO8dw{uKfo|n{p5vP z;6sqRazQHZ0lbuLPj8S{&BG(Mz(lld>Vu3^qLMZ_PTEn;gY0{;he9?J!kB_aXkOa% z;rj%Rdq-d8t5QNEEhb<7(+U9dU#tP$a)8AgfV}71R4iFq=6HL zhGAsjYXL|)=G*fxh#r#UtrTfn+W`_J_Eiot(0;S!7|eimt(sm(0;i9^_rKl9o>#NF z#~%nPC2Jz$dcRfX=1i!_R3_u}Gvm>rS4EnuW7C-WSxO&spN9m!B$;uMDU)eDtx-;|9Ua@}dDQj%@6DgEBNNY}5~+SDWyQ_h z{QSOG8yx^0BwN789l&LC*{<&F?>D&|E2PSVLZL{z?xO7iA11`in{PP~yp6@@I0KS4 z{SE-)0>ED%pPptWCI*QDK$Wq0lG&-L>bkmPjKue9$p(2tvxej5DRsNdzwRld$7w8# zygtv>4;t%f4_9jF?bW=8QNoq`A$mzQ-kH64l+hP|nKq@vGNKA?S?S19!(7Y31i(aRq9@=)gFII&TQr4hA;OB}6w$JTUx(M~NnHz<$hDzW%zeEAB}XHa zX#~Q}_l!FYta1si| zSW-oQ;u*wA&qb z_eP=({9nxA(BjfkQl4L4f}Tiq|N9Oe78C)%GTL=Dv+nbccF%uRf$MLpU!aTzf}#H# zeuspFBx`IlBc(Oir0_;ghVZi%8o-F5))OOHLzWha&*K@Csykg6VKJrZe#>ll)V zO)x?2$*K!D=eNAbUm|SZQPBi&K9j*m)8wKoRmmgen-*Y^b9%MN&KH*~6w_yObU+SL z{swJp$-6RUC92xS6?Nf7VE5aGSdU6bfS}V>YQfo`?bt8tx6vrXI3ZQDN^RfZgL|38t!PfA=sfMR83 zB`+@zI6T;)W|8~Gk%zKoRg*HbPV_>2jdPFe5`O-K{)xi21>>R+Wc~Z|PC5C<_P?)g zJ2+=L8jBwL&AZ3N7jntPK~Y~dbQ_m-#E^4Bf3=4dkiC>5GO~k*K}*C%{PRW z9tvO7pqr@ZRM~yCS((y06{pikN5$1U-&e`|VlrnrebLH9jpsdBEv1A@>8*z^L9*Fm zw!nX2w?`do+uJ#fg7o?N>MiJmIuGRg=YUiMkQj@_B@AW{0(o4lvH(z^)z8q-P;Th3 z001ctd`$~LjvQDy1G7hWv+lK)j!vi^B62?Fj9AZ08lCk$*jPPC{R{>;ibASLdUdO{CYPOdkXiK2}$y>4BJ)ks+XdVYz(13%jNOtx`~ z16sX;SlSiaTe&xGt5EuSvp6y8zJSxvEbtNJX#yT5n8?N?UZW0V$NNRl#nI5gPr;h* zK?JL!N?-{nCy>R2ysp&lKo)qjQjKm^Eh1>z6>y=fswMEPN=J}-HOzK(-cSSmxdwO} z)3fFNH`Ksee<0xoIB)t zH(2|oe%As;Aro9#_GwgtJmM$T`9>aPG_z>oMtrkSeQ-Nte>SiVbYxojhn6UDeIBAW zv)=hy+dsZ6Of^^L&5Vo^jEv;}vawT>4#k7VeeHlSI!=-rvs(K3KE_$C0mfZZRDS6_|4#n*Y$P%uWBz61<3~nD0!bGp28I!LH@8P1hy?sH(AA9@xI8?3 zoS@1BlqUOgK-%@c;A%3J;@}w&gQxu!I5(#henlNVV5lNVqFcg?Z>Z zDj0{v=507X;us^(AtzICSx`WK+D-!xs8r*HeIR2Qo+i6sH*UuZY7n@h^(3@ zM}r+@o?_u)CVL`W?J&zC2}|`^qv;eAEuUBS@KBlMa5s?5H@2=NWn0kIwPd*s9dP{4 z&tf=*y{5E^ASOrs6%k{vm?m5OhS*$j(9(r8%1=V zoq^&9A4mtbjsh9K3&{@PoE6STV+k7c)YPE;^H@w^VCdX;cY9yYs%{_+@7{s9nAJil zGD=BVnF=-`J?x%|w?l{BaB_KJJB;<<_hS-r5!UfC^0X?M_|TL%eEsJcSm}TE={+`0 zz4SUB_i-8eU-8eU)kA_~cu419( z?Lt^Z!|KwQa1);-Fw`%X8S2Oyx6TpteX%Toci{Q7+0OSlqNngF!Oe*#q-G8syEi8q zz%238BZH`dzROp)Sn^WOw`sDh!S=>X5Ht#w?H8XQ^U+MGRcwa4khh=&6-!A-v*J-8 z(Wq+HpH#(qRdoI&5V7|^otS$bu=g@4)v)8Ul$lJ8CF@hz(pCM^8Egmo*Qlryxnrb- zc?yo@9ZtXbr)0Nq<WDvEaJ+cT#q+Z#vtTRG!x%0O zB?R@L`Y{9EE`=OkB7mz{6fc-1=;sX}i4THi{~jD34xp|AXxzv1l}BEpnZp_SLmz{D zYR(J$PMyHkzgk_#e~b}cW)wzq3~sc4C7?dKDI;l}|i)%Kf}Yc`}|S-#H)J3f%p zpF`@&-f=Or#OFs1)Yq2Vn1vX&FWg=BqN?n zek+of*wkPd-Y6?D!r zx!VJ@K-k570L~`h^F9wqT))$|Lny&xP|5|e0)KlhfF%r2d4TUntR9i}3ny{Bf{P1x zPKYu`HJ0O2R27zK@aiCW`zdG(2O5~C*JjrBW^Q+O9f?F#l8NgikeAz#)R>J7yvgsq6r>&|{P_-HH#N=ot&|cOU*`g+JT@-jToy~~n+`{?8mfxWm|$GQ#z~>jAu2AI zrJW!rb2lOaLStj&bMZ8QhLw!LMf>ta321nLOni+FSIhy>KmX_Y0YD%jSOLIa9v~M4 z>m;S17#SP00KlmLe4(f3cuRHT*h}b7_gh}?L5!&CJ zg%p?{9)N(br+0!7=eRo596r;T6(Z@RiTGalJ%i6R+J$qLoFV%LW;LFaz$$ntHbXEu zo@tW=bNRG)i?m`N{YeZ=(*S)zfml{y{c$8Rl+P|GAn3<=jgmsbDlM~Ax8U+n z3$TBIUEZ#d#bQpptVY@+R#Hv$1WM}afQb(6%SSLYB7g_^;sOMVfvpX|D={P}6)>oX zG-WfNdImzEt+t@xjDZkXK8arHL0u~_Cb+(cF{aerL5yHvh2!A1&k)4v31&5b)BcB* z0pv|DjC-*X`#|P;=l*W23vkoDf4*H0QT{n~4GIdni6G@y!d)$ixd`+Xx|$f3ocTgJ zs`>K4_15b(ibm2gydbX_W&nyIa_q80eD-S^uT~3!QTF>|fdV?QAH<*_7`H=;^ z?dlvV`Ntn8!Q(1lYS4ScR7^2mrf|oYqzFsB-Q8P3w!N;We|`f7t<$o+|I&_EG?h?q z=73xSXmZ9lr*Z%`($K*eCp}QDRsiax{d5+`>FKGW7kvj9@JEaXnZ`E^h8d5{2$t|g z>Nl{F^@Q;7cmgu40RPJi0PQ$NSxje*lm+gf?Ng_SSy@%cloYyHg$0i%tj4kRe#I}G!J5f4=$Mj?h+lZEsU=!8z}YeB^qx@Fw?v<= zfB5>(R5t0TP)5*9t0WqNuHnavn-OGsX%c-2uZe=ZpNzDbh=SANX7$|3Pe>z;m8(8x zn-43lCxN_Kq!VWMrLu48twg6=M$H;4^EO?mPp5*ucJYb50yNLJb4$~8LzaCgMepk! zFRcWp3-$+Vt>4r=a=tM84$Qo4jrFwUY-17nolQdnx#7nSkn>~> z1phU~=3KhM6H-4Rl0PwiU&}HsNB7UF6o;#Z>Fs(PpXJ_gFqi6j=kVdB=0{|u( zp0jLsY{~_=>^WP6H%GSp2f!)@vy4((L;}8ISVoueC+O|~T`U_6Ig}_#BNTUQIzY0} z;sroE#U;Q-iTQqie;*KY^1B?#5l+v}hP&2iHWaqE_pjEjudGF_+Lg7-_8`r_(&xcA+vDCvc86<^#=>zG zt#Ut>=2rSV(-gJTb7U}1%?xE)l&Mv%91hiqBcybD1zeL>wh92Kg`k<;laqdqq?apU zLt%2ZPn%QK_w0j@7xr!NCP)c}Z9%%7)x8=E{?<_Fi{9=>rK!K)8rD(A?3=>nB~AQL z4D=e#-;-)AaBTTG228ehItbq6?j>`3D67v{%*8F*C~_nj&UxLANN+&I zwYa!AUnDuC78?-}NV*N6-2dAWtOLdHJ{^6Kpr5+~09>p#m~4BWGa#9uqQ*x>As{&u zLR=?18?N)a;N(&QcNHt>!7{*rIf=a3Ak5J>NHF-Cu~T^e^Pp&8# zee+*3W^z8<0~DCMX=ac9Cha(OvKGZbS%o{190^;I?=j<0O*uqgs<`aYxnd4BD;tFy zQR6NKh#D%4XgoMGl6_M_B*yO|;ZiDj*f#zQya{cTc>@M}U==Ex{)XCEeloFg6RNPd zy!j~D`Eh!2a3L`g+-GQ%NqfcapfGMI-NRL9$t8HZKQlXgcAE!uKmOj|l*`9-$%o~4 zdzLf2SQzXqA3Lh*z-}{DI7(kJU8sxx+ ze6i;Ok0*>{{EiyRu<7d@HjCC)(giyM+Oilux=McMi@Q5xcRt*~^QYs=;dZ@}P&KyK zR+cyG8Tff_52Z`mR^{Y{yn`&I%pMdcVDGt35QrbMmd-$6W_26x&n%}Yrov4t9r{zik2}26Pyua8a6ZHA@eAGn%zf~&72=K*_5`D zKDN*4{sn`U1YcLuwjP00Ju05PhZ$Xij*AZG;4)gg+Zh z3@xQA^gpE8zt4ameZ*KVwwPD9!JHE)OnM}0S0YX`p?|Ayy?9hjrEia4{b_l9_6Moj zv#Lv(bKJ3Ky=ard3ySrqvG?0A&Mzj}vJlWenu}Li*oa`V+45_NW5CS`*2^eEq@XT9 zqU-Q0o=cqe^uLY(mBp zB1FbU%}UMG($m+~spBnrPk?2oZ4Y~XJ&DqC%%7-5jtJgDH^QKcS|(qzM50i8%zVLO z@o-TP+q~WK@xS;}qbJ$rL3p?Y48E?wgF_zK=CmBm^|CohhpIV3$cZ)c6DVWLxh`aw z@0L$Hofb1?N`N6oTe^wcqzX;DHf2O;CR&|Ir8GxH_KHJu$PnW*)Tho(nLnU939RaH zo*m%ll<2E?zbf4Ye!l#Bu0Kgt$7(vtZbGNc%is;%v5Ae?g4GP+ zmZ(ugA-T-jrilr>B@z26Ptj{l?clYuyM|;cvw6T;KBD=;LF%y3AT;XMu$5q|=fqBE zw_N_gQQ>q4%Kq<@!yYQHSp8E>RCd=k>IJ!m& zl4fz*8^$s4MGK)NBP%Q~FV|_aZ?c$GuUe8QLZgw4#fM%X2ducoeE>-?WZ*w0?)UHC z$@@lZLquJ{nSwZQH z>!Z7VAB%K=Ki&Ce{5_T2qQsacM`25+KK5CRI;2)rjGfTq&BLRXQ|U7zwi<(!Q1dvM zty5=>T+@WuM?Ig>L}Mx|c9m&LC_ol{A+Vz3A|YU>svpwaj+cOGCh4<3S`&aBWRxs3 zJycy*vwpN*O}^2>bqc->4dX$5SNb(w>h~uf(WRLHKY~ZL9pRfUUQI)NH!bP6>x0xT zI<7oCW;46vU0LrKZBRhvQ}dEf@C=1%`Z-dtoI~LOUjMMhi96p~)+Uq1tagLP4W6U$ z89EEgaz>uDI=d3q9Lxi;PpB@9<~3!GL=a zEgh>?%VzZ^6#QWAW24xCaPSKc=C?7D0AJuk$;!f?Ytyd_?*QBS?s>CgQ`duyjy`Dd zRrm^5(joF7NOwp| zJ;dF--?;bpbvTCp(!)My?>*OCbImD;Yq$9$+#BtXsJa?riJ(L7{bqzRdd9>Sr$OZq zJGZ^HXSZis_)sM2%1$s~Fs7BPnX)y2wW3kW5+Rm%8Ue2wZY3!v&1|;Q5EiMcPAizH zbghB29P21$i)9ww4_#bIv*y?KwvJqs&TZ8UA{D>ftD&S^KW_-r@g#+oU)T==N39!H zBYV8J0?fvipZnH|{=f$bLttj0P-yUJFEaIIb~d>ID%hTpZ%s8dL)RmE!`CCEBU1ok z0=ZcnPUx;8^0b!-l~9n)U}Iy`S0ab;FZ@qFf`KqcqYx-;zQD%d5NRU!{GoPp?F9Bx z0LRhzsHCxx@Y&&55#LK#48#C`(RaW+7UW9kYiLY^^2og9-`>n-Rr5+%CsMCG&l~wf z*s(dYR8Kt(F`qAx@jjQ|1+Hzmib%{OkrtRu7QWS8bW@dj^O2@q7eUS0-JNfK=Ift1 zP{}Igzvdm=~&_nH4)%d^@`=JlAGnzHhJRoT_i>AhSJn% z7n&%Jc%80(RSg$xXkEmWS2Tqg6+>awFl6|!K_!8}h5iAj+jUl9UI<;#p<)N7;U0II z^;?hCxkyi4f)9!6CoMf&#gS^1531QselE6x*OP@}$di}3Ck-b~s_spizj$j<;;>n& zMjd80#7b2Phg|<@1+|+PQeE>bx7j0Y1A?^4qjkiD{vEAE5n6A;dK;09 zYG?r%flFP3jwms&4F*1p9R5{$P0h)FIjg}S0S~?o(2I^ROX6+vo3;WW!3asaZ|zIAU7x{kG!hxYO8MGRRYUip6f-HR>nIlam||< zC}Q9pDIVSrd;%|?aSOxpxi8MvX+9@d`+|Y*N@gg<8GY4FnppP&oQw?Lc4`(V!5Py( z#uVsUXbWGXCio~ZpM|`@iCo>;rr7#`9WAYIlJ|74CIn86=@gcQ&rMfE79E$CEds!I|>A~Q2{?cdvK^i{d%U4m?* z#-D1%rK zZv$gZTx1U)_py2N^KlR=oW4)9CBCKz`Kd@hT_DvUt!eLgfw5nfm7t?-tvRVRRki)m_}yOLcdPT_{n?h=&OJuB?u-F@?CpHT_uOO2z`&(mR=*Dymn+^oehzBp zubWJG7OOE^3(anb_{0ZTb^>M+{_IO)2@5^t=u9A(uwi$&c1?)E*ug@&Z>(|ACj8cF z4C~T z5@{>=)Vxn}wVl^GPD0R7J3}}3YejWw+JtNNp2zOdKSY~Bi!kLhyBYd=X_w@ov=PhC z376|^v4Zpcp=S-i?svh&AJax6>A4_0-yVB*Pv#Gi_Szi6{3b0%r6!h$zN!J1n+%Do ztKp~lmsQz*q@Zc|)5f<(In zQB7M3ljN>p8T@WEh#Encgd10u*zQkz6PDC#Q(tNzM_hrYjjtnH@iI%**Zwa2&6vWa zy2~GN|JI~rANFSN!^_+!mw&U?txAUN9P}859fijuP2!ABMy=Z${~ABBbWT=sy}%|M6IZB9FrZL^1S9{ehrhSG0Le>twBG%c=B!`&;c|&L1>yJBQ4oJ||3Rfz zSGL5_av%Lp@qw7%)^a$1%wP2a4b0t&HjQXxz1eN3-y-T}d)l(Rs6sEdYsWYx^ zscTeJRG?G30mlE4e>gAZNZxUqG#JKTM(=P7_3{*K^OAdh{%nFeWU^#aI~@W4dQy?0 zB42OxHSfS6$qT#$1#kR^!Kt^ayFzNwsLHE)pfqtT@W%qMG2c^g%r%ife#K|Ti zDgUdO=ur9~!j|Ap9LH|BC9hg4W7KOHr)kp2#__(l(S1m&*iO6w^UJL{`PxI=7aZ=oIllXsxG`tJ<_QtoqZE25?>iT8=^Fo1DoemMz``B;SKK^_EP;kY_LZ0 zF(f^&yxd_lg}M87!UafCS}X?94DPsYD=I1|3elC1y22+SUC06PaEy$=Pfu?Rx(|VO zmn0GaJ{5XZYnVL_4HS=e)QHmBFttyZH>m^_)XHAvSusqBt9Mx>b3BrVA0O`CAWA~D z*ON>-p#73Zffau~wK|5^Fr@uFB+bT3{t=9m3*neITf4=eD%Hs1PuFVWQ3NDwn>LAZ$%6fU>!%mI&~AlSO@U8F)sn(kpEWbxchIFTP(H1uQll4!=iw zP26yQk-sw6sg~RJ*_4LM<|F+_PwYvkx)tFs-aS%J_y9^nE*6p>1YJx0ZK_5q@9vL6 z*hL%goHIUGFDT^J#K!6!IPAR|IhvH_eO=u!n#>xCsUg{I`BUsw>**1YSGh=1cTTYM zWM3ZNSJg&G?hU#?%4U>+_vt=&pjVB($(s)fRw;V>dymDctLtg63EMuZ%uOl&PWb28 zE7d*y+aRl`gn_Awm!c(&=cnUIbYa>Qs+bQgZ*B%Lj#UMd0o`XsDpn%M+ayM82}P-E zW7w8c_Ne&lw>NDtNR(p8{zeKeznK0w}$4>NPnpxJ~EuX+GgMmlAZcux5fRKe(v|-m5 z4wH&?5BGXi&Yw2NLswwVj};Vd906}b$`=m98 z!%v`ii3U!iPLSIC_ov6;tSr}I$!QscOK@o?fzz;*VJ#roKSuw@pA}w0E805o;8Z^R zxAxG%&!uFZF5?D`>E7igoY=qNc@F7+%TZg>O83J-fXTwxeZ6r|`Yp0A+qq42ZftKa6v$TtKo0QZZt&wS2tav==j^%xHnXr~lNlgE%vTtHO7O+ydyFD2OAI0R zu1%jQO6|@M3iNj41xomNcJJ)T*N%XgCJBk?r2Vu>I!$Dv#7f`6rUunvH8^%SYVC5v z;gs;BXTxIt?o{p*&{aa4yC2w@nDzj$1Oh}+=V8E?hlPg&7W|)I;Dv5prgSlY7%x-Z zhJTE3^b=uxZ50q{ntmkJoxJpXCkB4BXSp*+00G}iZH+Dqc5M-7-*$bpk#R&LEb zOo@TPUs`p7y{(l&M3jK1^j>F$t8_3g<{)O2D1^MTky00|0eOFii^!zxmqR)h92?QlS?1-^z2Ak}K~K6!l3!jXJDOKN_%^d5u`01xP*XW=ABpm@9i zc>_RXz;_z-+~VywC0X%1tm@`vGpv6mS`0}NTl`tdlmiqd&+#5#o`U^X zVf6=RI=|k}-j^&U#?AWx(zmi5A#FIm;3n>jz#6|3t!5^s3qb{(} zuawi2#?_Sab0Ko(go-!pwzU?l)1n#FCmr&Ldf2>wZ@VMBJ3jg6-v#X;Oi6wlBzN)R zGCgo!rQ(-sx{Gxdr22&4?MK(=;8goYcY=G^AQ02hDT;mm@+7|WrQ8b9868Y(9W!~3 z>zwi^;qCFh@X*R4qgcD#q+Wqt>b+=+V?+$gX%HZV;o;ywYDU*QjI^{g*X+rkc7;A5 z5pV`g0f4c=R^Hgz+1cEDK}CfP%M=cprGlMnNcnUfPaIe7pO z)5Ro`@D_vY1wB1IS2i7%R8Z{#HONwn+va+IbbDJ{ft23~^Q3NK2lgrAI#z@FNjZO; zMUf3O|03`;Q5MH(SK24!$f3zdhUt(y$1S~hA48h+t{6u6Lh>Uk<@vv#)7#bFbA9bz z_miRAr1}~bD56n_NHLFqV1dXSp7-ph&G0&_Cn9IJA16Jcv$Kvf zw7BmHAADJwx~CCSQzE>Fc;8Gp=1cphRt{V?!~*l5{#@b>T^eb8hTCC&TADpzl$Kii zH8L^+4EGh9ud$z>{6GM91*4|MO(L2dvD-j?9xOtQe? z;^l>&_G4ckEr!dcD4n4IMRFDBCr{I_`JGC5hJ=UrO9p=FlGkL>Z>e5d@UDa&u$Q2H zYat(k8eP5R@oQ*85qJ0SPQGUMflM|1i>vw5l39KPz3;P;&*+{f!zIs~;_ zi=3}wAH9^PgO!7R7^mkwzDRRI6K2*t)H(VbrhJ7*iM0ar#p~B@r5^G5;}@5%#Ud3V z$Qr&SiVdt}^5yw?xpv8i!otE@gBLI-;cyIU*-ZDvg8ckmBgr&CF(T=@1~Z7G@e_2g z*SIsXvIq$Y+ge+}9cechM^MZ353dQupk&wiTSCSG|LE+4kp*eIg`z-xbP*k%(w3`e)eWjtEg5PeWub&l+%gdU_%JC=LX!PnZwh zr;i|KV|!zxKyn9{m>8u!sWjUH4GnF4V&XZA8zkJy3F|N%`RVH~T(1UGsfK#=t{|U; zKSU0GZNi9+deg?x0!3N+Cz_O^yckB0`R1hmuP|ziRR71NXlE&L8W9oFp~vZbS)~bW z>`-DOk~Lm#9TYOkE>-aGas;8cc{4Lha}ZWYOLia60%ksZF`H@kb%yE~VWwjv8imWz zoT>(9BC$CW-U&$4nIc}nzfeB~p4qkgD(9vKnsnLk>Jmtd^<7f4h6Fj655w-crEE z!r`y#aAM((Pj<`u=w`mfQM{ZKhxcx%LoD)aaBG1EXRDxz3J48O;})3Q2Xbr#6t1&9 z#<$>%MLOYp+m^zE2L}fywOxB{9|Y#pH#YJV59TYH0WS|EZ8G$rQ5%ka@T+PG=$0cQ z5L%6~mO!)Su1_qoK5*HGh(XU#kV&0P!&hBeR(R|JmQYJtl)-7@uzG zaHKwuw=CLaI#Ix2AF$gaSRZO@Yxe-j4V2J9AUp@;(u5=S{F|JdJn4Rtz=s#tm!jLQ zqOZlyV)ppP)7}L2|5E*%%vZKr&wi0X?OZ2H!Iw&E31q1m8W|Nlspd*N2iyq^0KNYg zen+G!7zY#1>sjfoKwMpJ*bmYx&B3F*Pea@o?(1ia$!fOL&kNCPxE52ddc{&tT>J%Eh2>9!*?NYOX-y3h0XQW09H~8p6X-hCk$B zb_6`{jMUzs62uK#Ug2%`7OLoBj%>G zym@;sWfDe7AMT)-$ZM*x?{wUKv#u=Pv#4}^9|fXe(km2%Xl+X_ zGA!&{-77Hi%XnKD=8z_xOZ>)SceJ)f40Z+*Tp>BSrkz%gT?yzBuK_`n#ijFKoxSc^;v!GUK68ElDrF`^S<@?q@X!M^gNcsMR!Br7#Z6YXU5)_L^E<4&&RdPju!}muXp_ z)7=h4Z)e$~H+P`qb#J_x_Ee9mvg`3mxfE*&lyPkMjM@Jj)^%`xR2&~4H#?yc@l>Q5 zgztFzrus%X;Kh)8XHxN6~{decyl*&i9)*nUZ zT36MY0)->h%_4UTmcFJ%TI@!Rr9ig~1Xpw_xgatyO0j>{z1!-)uM9kc_a`ldNl!A% z=G*saI?vBAZhaLekQp~;C>(t+u;|jZU{dlLIqfcL>6W7Dk88cdQY?!TLA}_vJYxOB zz1J?0|1jHiE0~`59L(xhb5v(H_U;Yv`UyfGhAwC)$g!&zDN>WQ^Q_RrZdXw^KIOK> zhh85p)VMe~sjB!#+VX+{tS5j4kg+KPfQPZ=tC&k~A z8m>s+wKEG~7Ak_r9DrX*KlE%!JAQcgsTr7zJBK3cRg125aL?{f6%u^kzSpBUk8Nh; zILJ?UEYWjHFlv2_86KL}eMJ5vnCpIXaj&|HPMc0i(R4b}xQ!d+U-;>KkN5l%>iSS5 zNive$?Y^!2nc+3KIpkgDK$haA6{YdX=H~N!6}Zn|!c<3N+5M`_tg1R5yVD^0ziYX_ z=*vqEpHOu_xvEO!+pQP+WrCrLz!z`6G4f3?*$Fwx7dFlE(Qho7s`L*;U+PDp4$B6i z*6zM__1_dTP4ierbbsKf5a2G<9|^wA*uej8anaf!$m20O@1FP}xckLwQ%-d-?g=9u zT>^#Zuf@g89p4d1iFFo`?*Q3i?U^VT>;YmN6-+<(_jKJ*|@kkJA2NFi;!Qi z13d={2LJ(qkt$vu9=lLZA1at%hM_M}71|&WOC7E--PCf3nqI>-J zoSvMd`gMsL`-DpRS>OyW^LJ5OP@2@r*0y#nw1>t|zkYY^|C*pG=i$KbgOP3chV1Lu zX@bnn%(rNPt3%00OW4*|)@0rk->;Vm@!y}l_xp&T-(#AuS2fRMetMyxdT085xxaM! z4n>35Gsy>zo&@fjI;l+Xz59Qc2V9$E6bo4f>G#oU<3e;H_w8o4c;jD)WBXNh$!oS2 zz6~!l-GiRSsS_MXdr(l|AD_@6AzEelgj8^MrMt*SFY&e1C~(}o^2%!FvQD%6;B1Z? z(k*F81gU~CuA`#WTXmUk>!1qQRDWtMF~j`H$^1DbBy_bnqWN;SVKKs9mQy^RPk3Ay zx4K@no%rM}DVrY#mnrPl9XiJ)#TA|wnc>tWxvpsXl1^=5bJjB*gZ~}OgUGnuot>9> zbXfH?p~^5rl3oWoii(PEZrt^G9pi$#)?{ znws~kKFxRCC%3yfAUL!rB;G>*Y{R$*9qT_7K0a+FFR4f+o6?^9wqqo)y>2kBbGU{D z@{JdXbBLX+6FbTSvj9(?u-F>(GJe%ttE{89#o*VYgeug5ZU@+)Ss589H48OzE$2T; z!&D~*>8vv+uSvw`j%!+=0pv%v4{}rJutRqN=vpv&twMq4v>|i|rPin^Dk#YqgBlrA z*Tfn$Vc&3M*GFmaOg-gYMwOGd}MY(NOqyA{CL6J-p5jk{l0(WpiA{RjukW~z*k{{LGJv#ARY z@yZt!_}TI%1sbk zaP5OEr7M=y8T9%@kcY<)l>9v>0s;awG&C{eKYnD2dUIGwT?59=)6I>9#|lM_FW}}B zsDkFtll2@tmt;Ay_|7sm+jv_;f(s@k+{%8sYMH=y!1Pdr|EZj}k5h41&lPq*@U$}5 z#3KI0ToVk#FT!^Rh)WRD7IuZ`NK5(A%=g>N>`$NE!MqfxJznCiUFafg&|tJBB_&CM zWaMR0ax{7!tS!XY3+sjuiSJrc82>8U0;>K8y`zxMB#>f_Cd-P5eKk?-hxGmy?pBL< zh%3Ru+MI-kZ0#NK|D5BFs~vU)5>tgj`NWy|zHc$I#(AE}wYQ_%Qa{H;gJ;UxG54%m6l)m2B4v&H zRKiDRtjoz*w*32@bYpgkr+=+maA8m&9-i|#CKShq`yt1GGK=y4%sQ?y-9*`36^u znQZ`v8k_MPNb&Y$wn1oFzE0Y%xo=z<;`7ZoD%Jc`eJ4+$f}e$6rnShL0~XqrVA=u^ zQ9ug8#7xZsCR~sN8m{D5>!iOMWZV*84hJ4v*8>`c9 zyX_VrCIjiyhQy5scId=6;YgTa3_UbX_h9LsV}eV1Xojl3ex+bqnVL!>TA&pcZk3J3 zI)%xDztrSMT2@Mp+ShEAZ)d)=0-Rkjy5IoAZhg9Ly)R|Z=9`^C8JWIgu=RH?rX-W% z+e2kNSqsd5Yr{+=io=8gF?dF1W@}qp-%9kyziVq?>QUK-K4aCH1hEp!0D20p`lB?w0jB!3XRbG|cZZ-Qs2f>6FUET66C zl(Z)xhIKMG!3?2#jZwQO-To|-ZRsBv7+6{&Lkl5X#{m;fGi_dumX@2)Yx|jaO5#w^ zs|EA{*kOMF=gq|i*hS1!iOyDQAhKEu#8(`p6&DYL)S7ExtfjmHrR`QI49_D-ON6e4 zV?S<4uD>~kfjuSfS!P|fP1R$ZbKiAgNXps#JvUBsbA*Zd6w2O+u!K`iKUAs~GHjk7 z3|u%ag;g7w2eqMLXfqS8isLcj_`F%PfO|IQjY`G&>4K5paT-+1uaV?&gN~ zt|J(?xWXzC2btN*t{|5*1EnTla;VV(F*gu{XxNi|vf3@V2nBN-q0-2(_1D}x;Pie3 zQW+TuF)?!5+z?kQt1WOe#H5x}P{Y_v9X4jmV_Kvu&P$um1Qu74iZASre$`3tLc&Uw zM}3HIhvVtLD!AxUWe6ww2YA~zhK9YU(7VGL^GR6`PJ>!%Mn+^fAl{+YfJ~x{XYp5n z{Wv{rH?cjIUTBGcfIy9IxM9~0F1ye|O`)%FlO(@!-@<*`69ZQ};>l{8SNwc<^mJxE zB{;M}BJQde;M}izfzp-R;U|*@Zz*}}O7PQz;A+4NajWyKA7FV2KR&}bQa2~@qXs;2 zQSCK%DH1lN>J_P-H5faq>AWIM;E}Cg0reH&yRf)f;(SbNuX}~2VPh8Cy*W9nkw=F^ z6s$BgKT4Dv^-e8qYV|&eWXezk@%g0`EhQTU_1ZcsFDB9Voado_w@O2u%O%1j@S)PH zEh}S&kSFeKZ+o4tN%LW5vopQLVM56Jmj9dP^VhGK@1qK@0Q})JtdFSg-;n18mmZ z{Uy04mkvx?5V(GACbNBS&#m#jKosiaSJD2CkgQN#7+)}OMaXWnh6gmGW^1Ct!o7iV zCo(SJ){Phq-JJp8yA;y^o6B%I8kCw5V|)Rsx^vG*uQq&2e=vq9&)rTfiJB~%vCM}- z#h(dv4p_vw;Arf-xxBc5N7SZ+BUY;&S^FX@Zl+-_b+tbiy)qZVW;vAL3&7vw{e}7` zK49ALLz>9M*Z zC3i*X4VrWXuJ$?WuAYH74oTCzwbwH8T96FAwQW-|ORCZyXv_R_eCi3JjSiFR9}KWI zcCrQ;TSq_`6AkBIlkj?|T4vQT$|SGxkG zyO_{8WDr+Mgb7=cT!r%9u90Zq`3-`JnRQZSIy~~@Yvths z(y#zUMh747?V-59e20L6J6Rc-HNu{Ne(GpM?NFccf^9@J zqQZ>eVskqcWg_mtz{Gt0tUL20z;On3>rvoFpa^G3pM4f0$??$a2G2Ld9z;2h-E8g(*v`OuXKP6MnZ1Gti;@7ykqdUvZDJ(?@k3|YjLvpSbvb- z)!9st>X5Y|q=uSHV`DhLKA#CJW=<9zO!F+M-;KwZJyb>?ymNR+o1JPSRUnxaESL@X zl;g6sf+K6#=;ATfDTC1!SQu(N6J{~y24N@?0I7mEZCM*ijf6!WlaJ_+V?k^Wq^3wj zJrR7|+`yX$wm}`Bt4%`76L2j=^kRW#T!=KlYNAYd`2J6ifkOXkx$`m1G&k7H5d5T~ z|C_@Sc=ww+MDeH3?20iPv4|OKE?pwxX_#DCpNT2@9rYUBm9m7F5^hpmrGV0-p`jr@9(`N{L*Qkg1!l5PwjD|Yh(Lvr!$1IiLpXB{ zR3W$ocqN0#+KqeyCR#XR2xtT`8E3eLup^zU{P{ycVqP5T%oOWzJ|Jb2Mitp(-FMtO z#2J$6*!r1UNl)#IUt*nMqXRVY8#%!iq{i6rU^VZ)GKL5nfSZgv;57j1a6HuK?)aMA zG+&?VTFkZE?#$%?bj|ydoWC@l5xHlF?Gz=BI9jf-2SYY*OL%W@uNef8goFeH`LRD% zh&i@X8 z&CyIDa%nc2B*0l`5~>LJKxyo3ymq?YFZk|vL=cMaCEsP|>FFt$LDwLvdM+O}>|ukp z%TPoG_(MT37Fze(ocw2sJN56^*b+I0bmruh{drmreC|zz<29iyA^+|MI!uKTRs;tu zX<64+Kl$j6R+5X^UkHXzq%(Vw3KUW6+P~x+RIfezD=|7W;|Q(Va^k;)TZSRlufn>P>|GLgtS|0~DmB%E}b}*^OW_<#iTczU`PRq6U?QKp#u$=*r47 zk6>bAQi{!r_+H(_1RR;azrR!Afb*f6ECOwAR5{=yp#&=Dx241yz(l3*BONgbKjt&k zV(*b%V+lf2D4JtwG)mMOvrcCb_?tw^*Wa-4t%w5_SCCi5r)}1CR7;J0y>V}K1VO+O zE#%|s3sA(COSQvU_Z!I4VZq|TL~y~;$#WA}!SvIK;7f7CL@Gsn%7H7DbVmFOPy2qk zXx!qJ8N~2~qc`mfvgX8IH|E=MrP*2qQjw-l3#sbCv%7F>56?{q4Dc1`Jc1@S@wo(> zMeQxH-@-*g?C*)jpzHkt6c*IpV1CC)3vnfS64K$zo8f)B)@x?FUee(THM{9PA7!29 zHha%U?(^LIgFDf7gaaYY0BJkTmlI&PDi>scOM6<|LR7Tf@81E9=x8V^Hb2bD_4PI5 zI-uoz@Iawv15gfdZipkk!7Qa)Mily3>S1K`I|i2)V0-xPh@c<994bUc!$V(RA1q)8 zmroCLjS~Vz`)X9J7kb+oP$shFbf3|>BAH}jciaj!4v4}K!{$!RmiRTIervYrLA$-$ zkV$iEp`HipM64~Wm=hwKZvZDc0grOVwgkU7mxIHU`-zpHyetWA2Yv^B&+=^3_S+Q3K$GO;+yH> zThWY_HPehM>c4GXhj=H2xMha0uG}|7l|Wb94UE2U)`3o?9}*p@<^nyvx{B%xfl>AO z`Lxy>p68X4Fbc{B8G>g=u~NF1N{66&40!mr00aiWBFWCvlP~2O@F{iJKZN&bN69cbF(H-Dl?I^Xt{rv^ejkB;1H@&HH$Dqk( zp7uUO8x|r|>zSK8fv~f!baTRmh$1wQT&yTd0!INSlK~g7v06r;;p?!CbB?#J!HlRi zn18XbTM1cy*Z4Iyaq4?ayze&8G6Xpex7o1DnzN_p!GB%an;Q6e{rG{Jos*OE0SeO< z)#Uu{-Pe>9xohN)K*p5;n(4qR5GN|5volai3dV3WPm`6kf>PWs#KYVV02x1Ex5sxJ z{z-aKHVOmwAE1C?ENWL}Wo0#mQjpaUx^jR4PgQRuX-JZy?Y9mM%0h*tzrU);AXL@x z4nAN+kxm+kWprky4s3K#n}z=lsi*@zRxl$mc#h1@)`Pbx^a|Mi046Y>G6L-<+_M-3Q!3gzFztcnkl;&P?zpBj8Qr%X zk(yOUzQz3Z*oXV3{1O*yd})3&orZMro{&i5FUMt_CQp^2xN1EVJ%P#gt)e7|L84gL zO|E;~vwl&9tFamW+a2f#UwhOeV85Bz`>(qYR8w3cZxRJyhQ!$Wb#`=QW8osD91b$^{4_~@nz{&k%Fl#w z+<_*B6?H7}mNKw)3yt}9^E-3|`Z9;q&%(mYX>ufPmzBa_n(WD5o})pr{&OlOIwJtK*x>It4%H%jFx@e%s<7m|%g>f?RxkYbiuj4h( z8iIWuF61q~GscfYY!lCr$DRzi_b51ITEt}#_%-c;WHGpbfB5n+QW!;W$&BXGS|jKh zpwB8rk8&m?_g)!}Qv90-tS2E20W3=>7Oe7M4xD09h&jtvBr)7&ra8_3s$hN}kqz&J zVlKkEVI&Uyy~g{K_lCI~`lS|stvSyAEcwsQIx}3QsR%~AdOO8#bJDZk%W1S5eXzRu zuNCR7TjT`wB@Rv~^mN)TJ!QPnGGp zYre@RZuH$g)OVIYN3?mlIR|M~*IxW%Q-YQK&7UAGj}Rk*it>WO5<8iW;w1*PDCfvc zI$Vr7|E6>qjy#Ni3Pbh>I#eNqoAXBoKNJ-1N@IB6xNkafC3uP$)45%G&)vxb7Yz$K@lotcT!u8cj2qn0VK^Q|dZj$L z=ua?G(NWveG=mxkmNehaGcQy5*c7A?N#MqAN6Zm*KIy!8ZeP9&x#NpMyISiWxc`I+ zEf_L{zNb3=X&V;*Z~)pdbj3uVY(}>yjy|yMGSpBnU-Y~GLi&qX0%?|XA zqUwd@A(+uSxGt`_lW+8)kK!-j@jiT~q7WV1ymtE#&MuY)jT~H_V42^u5>Xps;4rZF zo2QYHn~(zPjV9Ro?=jf7sbZu>M*iEs9_FQSKNCT{D7y28>4slP^dhU9sJDE1%fMf| z03oFb`jlcT zta^FMebv{hW#V9ULhp*|(A=B=r}pqXabS5_D^s;_woW$(ZRG>f4<3Q-*Y=OC+?IcA z`#%U(^xRY;mEyKC9@#brf9^7_7-RmtsywwCeAhM~SJkPS?nTvYH-M3D9R#w3RmNHL zQx759IMbcV6?*$RM~L3{aZD`65iz7;V2?YX%H1VE7o8*}lcvg2ve7zB3bqSg@Gkrn zx)`nxlw}WSPpqX9@1OA6d<+CsepjGmQ?1XFt? zza(uQvD+B^$a_!JMkVHRKGfNG)Um-+X8c1!c%)}Uzrs8T3X!fl?K*YBk^U-Qr1@hJ z{tcyujdEmpqj3;tv(UNnr-rA;89mknRib~nM?yY#ab+LK!uuu}iwPA|NxxI(>JpZ# z4B3wfeND-|9oDTixE~hITXglf340Y&8uZMke}@&-|8YTIC~33oAk?H)lIkc_md(n! zn{vyty)9}_cAb-R(zY<}H!4(08zCdz%MQ43+>| zH}_%_cKZ=tqu!`cn~7g5vOG`DPqOCHK}%0#;8rqQAffi^Nb*ku6u;S&QRJG}JI85v zv*CDe@C!2uqV={r=IfiopAJ`M;o>dUCDQh)+h=5bs)!p&LE#ZXbF>9W&zs{nvLdDx zc6%=N`J8wMMWwZIbmHp_-p?7kl1*`Qgd<)vv53;^>0o;sh$3hGzQf4e`E45}ds25X zJZV(dV;OyYHIf%jB%`(((*f+hkD<*cw$@wtI|NE`qu=maWs0@>8;k2%3*S?g#wr&^ zQGQe$J69RiI#=14yC^vMmXpxxL4EM+S4{V>zha#Oi~$K%CoV52+P-j*nC*)>RF@38 zKSc&X?`0;lTiZKp(rpbE<1=ihEpxIdF*7M~OrLy4S2@{AH&I~~_7;7D%r|y2 zS}dH1w=R1(H_b&cqjxa=_DlTkPR2LUnj5LI`eU+_QTY1Hfq+>XG)CA2ec|s?u!IDI zFmF+wkSWXO`bB@-mpR_g1>P<4xD`Q(c0FUyk@lvOym9rMGGCTcrpQi^Ii$5k@;dhl z1*6%tA+UOEXdlaQc4Iq;2;P4)}3$ zKZBAN@gnL-GT9Hs7n_<}{i!^zSF|BH-yaE`3vF7|Gmfq6dc3dB6XW$=3`uZ~nnf-2 zt#ou$E#&ic3T8+6vOhhDsq`~=Qhq;w72_lE{ITp(+%Lz-j0HiyP1|iLrzTVdTB##J z&Pfr6Qysmus;cG6n3?pq($Y$-(g%um6jpzTdGr2TYaIxA2=={E_$}hnTzf_)=r}Lc zU@b1su_rQ4_@;UN!v0WVx%kAOT{DeCdj~r1dD?8+wBWtln#}91_Ex>shgW>Z((G6TWr{~v!rCBJ@x Yu`^=z#9n(N0Rw(1y;75_mN5(aKbA+u82|tP literal 0 HcmV?d00001 -- 2.7.4