diff --git a/.doc/Protocol.v0.(en).md b/.doc/Protocol.v0.(en).md index 8d3c0e1..b19f110 100644 --- a/.doc/Protocol.v0.(en).md +++ b/.doc/Protocol.v0.(en).md @@ -24,9 +24,11 @@ This field defines the type of the data packet and is an enumerated value. The s - Information Packet (`info`) - `0x00` - Error Packet (`error`) - `0x01` - Command Packet (`cmd`) - `0x02` -- Synchronous Response Packet (`resp`) - `0x03` -- Asynchronous Response Packet (`async-resp`) - `0x04` -- Subscription Status Packet (`status`) - `0x05` +- Command Response Packet (`cmd-resp`) - `0x03` +- Synchronous Response Packet (`resp`) - `0x04` +- Asynchronous Response Packet (`async-resp`) - `0x05` +- Subscription Normal Broadcast Packet (`status`) - `0x06` +- Subscription Interrupt Broadcast Packet (`interrupt`) - `0x07` ### FLAG1 (1 Byte) @@ -42,6 +44,22 @@ Similar to FLAG1, this field is reserved for future use to describe additional a The content of an information packet is plain text containing informational data. +The server sends an `info` packet to the client in two specific situations: + +- **On Connection**: When a client successfully connects to the server, the server sends a welcome `info` packet: + + ``` + Welcome to the CSM TCP Router Server + API: "list", "list api", "list states", "help" + type "bye" to close connection from Server side. + ``` + +- **On Disconnection**: When the connection is closed from the server side, the server sends a goodbye `info` packet: + + ``` + Good bye. + ``` + ### Error Packet (`error`) The content of an error packet is plain text describing an error, formatted as per the CSM Error format. @@ -89,6 +107,20 @@ The content of a command packet is a command in the CSM local command format. It > > When module `A` sends a `Status`, the client will automatically receive a `status` packet. +### Command Response Packet (`cmd-resp`) + +Except for synchronous messages (`-@`), all other command packets (`cmd`) receive a handshake response after being received and processed by the server: + +- **Normal case**: A `cmd-resp` packet is returned, indicating the command has been accepted and triggered for execution. +- **Error case**: An `error` packet is returned, indicating the command was not accepted or an error occurred during execution (e.g., the target module does not exist, execution failed, etc.). + +> [!NOTE] +> `cmd-resp` is a handshake acknowledgment of the command, indicating that the command has been accepted and execution has started. It does not contain business response data. +> Business response data is returned via `resp` or `async-resp` packets. +> +> Synchronous messages (`-@`) do not have a `cmd-resp` handshake; upon completion, they directly return `resp` or `error`. +> + ### Synchronous Response Packet (`resp`) After executing a synchronous command, the TCP router sends a response packet back to the client. @@ -102,3 +134,94 @@ After executing an asynchronous command, the TCP router sends a response packet When a client subscribes to the status of a CSM module, it will automatically receive this packet whenever the status changes. The packet format is: `Status Name >> Status Data <- Sending Module`. + +## Communication Flow + +### Synchronous Message Flow (`-@`) + +After the client sends a synchronous command, it **must wait** for the server to return a response: either a `resp` (synchronous response data) or an `error` (error message). Synchronous messages do not have a `cmd-resp` handshake packet. + +```mermaid +sequenceDiagram + participant C as Client + participant S as TCP-Router Server + + C->>S: cmd (synchronous message -@) + alt Command executed successfully + S-->>C: resp (synchronous response data) + else Command execution failed + S-->>C: error (error message) + end +``` + +### Asynchronous Message Flow (`->`) + +After the client sends an asynchronous command, the server first returns a confirmation packet: either `cmd-resp` (command accepted) or `error` (command not accepted or execution error). Upon receiving `cmd-resp`, the client **does not need to wait** for the business response and can continue sending other commands; after asynchronous processing is complete, the server returns an `async-resp` packet. + +```mermaid +sequenceDiagram + participant C as Client + participant S as TCP-Router Server + + C->>S: cmd (asynchronous message ->) + alt Command accepted + S-->>C: cmd-resp (command accepted) + Note over S: Processing asynchronously... + S-->>C: async-resp (asynchronous response data) + else Not accepted or execution error + S-->>C: error (error message) + end +``` + +### Asynchronous Without Return Flow (`->|`) + +After the client sends an asynchronous without return command, the server first returns a confirmation packet: either `cmd-resp` (command accepted) or `error` (command not accepted or execution error). Once the command is accepted, **no** business response packet will be returned after processing is complete. + +```mermaid +sequenceDiagram + participant C as Client + participant S as TCP-Router Server + + C->>S: cmd (asynchronous without return ->|) + alt Command accepted + S-->>C: cmd-resp (command accepted) + else Not accepted or execution error + S-->>C: error (error message) + end +``` + +### Subscribe/Unsubscribe Flow (`` / ``) + +After the client sends a subscribe or unsubscribe command, the server returns a `cmd-resp` handshake confirmation. Once subscribed, whenever the subscribed module emits a status, the client continuously receives `status` packets (normal broadcast) or `interrupt` packets (interrupt broadcast), until unsubscribed. + +> [!NOTE] +> Both `status` and `interrupt` subscription broadcast types are supported: +> - `status` (`0x06`): Normal broadcast, subscribes to regular status changes of the module +> - `interrupt` (`0x07`): Interrupt broadcast, subscribes to interrupt events triggered by the module +> + +```mermaid +sequenceDiagram + participant C as Client + participant S as TCP-Router Server + participant M as CSM Module + + C->>S: cmd ( subscribe) + alt Subscription successful + S-->>C: cmd-resp (subscription accepted) + Note over M,S: When module status changes... + M->>S: Normal status broadcast + S-->>C: status (status data) + M->>S: Interrupt broadcast + S-->>C: interrupt (interrupt data) + else Subscription failed + S-->>C: error (error message) + end + + C->>S: cmd ( unsubscribe) + alt Unsubscription successful + S-->>C: cmd-resp (unsubscription accepted) + else Unsubscription failed + S-->>C: error (error message) + end +``` diff --git a/.doc/Protocol.v0.(zh-cn).md b/.doc/Protocol.v0.(zh-cn).md index 7ef29b4..e4f5321 100644 --- a/.doc/Protocol.v0.(zh-cn).md +++ b/.doc/Protocol.v0.(zh-cn).md @@ -24,9 +24,11 @@ CSM-TCP-Router 中 TCP 数据包格式定义如下: - 信息数据包(info) - `0x00` - 错误数据包(error) - `0x01` - 指令数据包(cmd) - `0x02` -- 同步响应数据包(resp) - `0x03` -- 异步响应数据包(async-resp) - `0x04` -- 订阅返回数据包(status) - `0x05` +- 指令响应数据包(cmd-resp) - `0x03` +- 同步响应数据包(resp) - `0x04` +- 异步响应数据包(async-resp) - `0x05` +- 订阅普通广播返回数据包(status) - `0x06` +- 订阅中断广播返回数据包(interrupt) - `0x07` ### FLAG1类型(1字节) @@ -42,6 +44,22 @@ FLAG2用于描述数据包的属性, 保留字段。 info 数据包的数据内容为提示信息内容,纯文本格式。 +服务端会在以下两种情况下向客户端发送 `info` 数据包: + +- **连接时**:客户端成功连接到服务器后,服务端发送欢迎 `info` 数据包: + + ``` + Welcome to the CSM TCP Router Server + API: "list", "list api", "list states", "help" + type "bye" to close connection from Server side. + ``` + +- **断开连接时**:当连接从服务端侧关闭时,服务端发送告别 `info` 数据包: + + ``` + Good bye. + ``` + ### 错误数据包(error) error 数据包的数据内容为错误信息内容,为纯文本格式,文本格式定为 CSM Error 格式。 @@ -93,16 +111,121 @@ error 数据包的数据内容为错误信息内容,为纯文本格式,文 > 当 A 模块发出 Status 后,client 将自动收到 `status` 数据包 > +### 指令响应数据包(cmd-resp) + +除同步消息(-@)外,其他指令数据包(cmd)在被服务端接收并处理后,都会有一个握手返回: + +- **正常情况**:返回 `cmd-resp` 数据包,表示指令已被接受并触发执行。 +- **错误情况**:返回 `error` 数据包,表示指令未被接受或执行出现错误(如目标模块不存在、执行失败等)。 + +> [!NOTE] +> `cmd-resp` 是对指令的握手确认,表示指令已被接受并开始执行,不包含业务响应数据。 +> 业务响应数据由 `resp` 或 `async-resp` 数据包返回。 +> +> 同步消息(-@)没有 `cmd-resp` 握手,执行完成后直接返回 `resp` 或 `error`。 +> + ### 同步响应数据包(resp) 当执行完毕同步消息指令后,tcp-router 将 response 返回给 client. ### 异步响应数据包(async-resp) -当执行完毕同步消息指令后,tcp-router 将 response 返回给 client. 格式为:"`Response数据` <- `异步消息原文`" +当执行完毕异步消息指令后,tcp-router 将 response 返回给 client. 格式为:"`Response数据` <- `异步消息原文`" ### 订阅返回数据包(status) Client 订阅了CSM模块的状态,当状态发生时,client 会自动收到此数据包。 数据包格式为 "状态名 >> `状态数据` <- 发送模块" + +## 通信流程 + +### 同步消息流程 (`-@`) + +客户端发送同步指令后,**必须等待**服务端返回响应:要么收到 `resp`(同步业务响应数据),要么收到 `error`(错误信息)。同步消息没有 `cmd-resp` 握手包。 + +```mermaid +sequenceDiagram + participant C as Client + participant S as TCP-Router Server + + C->>S: cmd (同步消息 -@) + alt 指令执行成功 + S-->>C: resp (同步响应数据) + else 指令执行失败 + S-->>C: error (错误信息) + end +``` + +### 异步消息流程 (`->`) + +客户端发送异步指令后,服务端首先返回确认包:要么是 `cmd-resp`(指令已接受),要么是 `error`(指令未被接受或执行出现错误)。若收到 `cmd-resp`,客户端**无需等待**业务响应,可继续发送其他指令;服务端异步处理完毕后,返回 `async-resp` 数据包。 + +```mermaid +sequenceDiagram + participant C as Client + participant S as TCP-Router Server + + C->>S: cmd (异步消息 ->) + alt 指令已接受 + S-->>C: cmd-resp (指令已接受) + Note over S: 异步处理中... + S-->>C: async-resp (异步响应数据) + else 未被接受或执行出错 + S-->>C: error (错误信息) + end +``` + +### 异步无返回消息流程 (`->|`) + +客户端发送异步无返回指令后,服务端首先返回确认包:要么是 `cmd-resp`(指令已接受),要么是 `error`(指令未被接受或执行出现错误)。指令被接受后,业务处理完成后**不会**返回业务响应数据包。 + +```mermaid +sequenceDiagram + participant C as Client + participant S as TCP-Router Server + + C->>S: cmd (异步无返回消息 ->|) + alt 指令已接受 + S-->>C: cmd-resp (指令已接受) + else 未被接受或执行出错 + S-->>C: error (错误信息) + end +``` + +### 订阅/注销流程 (`` / ``) + +客户端发送订阅或注销指令后,服务端返回 `cmd-resp` 握手确认。订阅成功后,每当被订阅模块发出状态,客户端会持续收到 `status` 数据包(普通广播)或 `interrupt` 数据包(中断广播),直到取消订阅。 + +> [!NOTE] +> `status` 和 `interrupt` 两种订阅广播类型均受支持: +> - `status`(`0x06`):普通广播,订阅模块的常规状态变化 +> - `interrupt`(`0x07`):中断广播,订阅模块触发的中断事件 +> + +```mermaid +sequenceDiagram + participant C as Client + participant S as TCP-Router Server + participant M as CSM 模块 + + C->>S: cmd ( 订阅) + alt 订阅成功 + S-->>C: cmd-resp (订阅已接受) + Note over M,S: 模块状态变化时... + M->>S: 普通状态广播 + S-->>C: status (状态数据) + M->>S: 中断广播 + S-->>C: interrupt (中断数据) + else 订阅失败 + S-->>C: error (错误信息) + end + + C->>S: cmd ( 取消订阅) + alt 取消成功 + S-->>C: cmd-resp (取消订阅已接受) + else 取消失败 + S-->>C: error (错误信息) + end +``` diff --git a/CSM-TCP-Router.lvcsm b/CSM-TCP-Router.lvcsm index 4f05a76..e508b14 100644 --- a/CSM-TCP-Router.lvcsm +++ b/CSM-TCP-Router.lvcsm @@ -42,7 +42,7 @@ Item 26 = "DoSth: DoB" VIName = "HAL-DIO.vi" [CSMVI.HAL-DIO.vi] -Path = "/Server/CSM_Modules/HAL-DIO.vi" +Path = "/src/Server/CSM_Modules/HAL-DIO.vi" [CSMAPI.HAL-DIO.vi] Item 0 = "Turn On" @@ -126,8 +126,8 @@ Item 27 = "action: loop check" Item 28 = "action: end loop" [CSM Debug Console] -Response Timeout(s) = 30 -History Length = 50 +Response Timeout(s) = 30 +History Length = 50 Periodic Enable = TRUE Periodic threashold(#/s) = 0.500000 Periodic Check Peroid(s) = 3.000000 @@ -219,4 +219,13 @@ doc = "DIO Module with 8 Channels.%0AAPI:%0A1. TurnOn %3E%3E ChannelIndex %2F%2F doc = "Measurement Module.%0AAPI: %0A1. Sweep %3E%3E Start%3BStop%3BStep%3BInterval %2F%2F sweep current with specified parameters.%0A2. Measure %2F%2F Return voltage and current at the same time." [CSMModule.Measure2] -VIName = "MAL-TEST.vi" \ No newline at end of file +VIName = "MAL-TEST.vi" + +[CSMStatus.HAL-AI.vi] +Item 0 = "Error Occurred@Error Handler" + +[CSMStatus.HAL-DIO.vi] +Item 0 = "Error Occurred@Error Handler" + +[DebugConsole.historyView] +History Length = 50 \ No newline at end of file diff --git a/CSM-TCP-Router.vipb b/CSM-TCP-Router.vipb index d2a507a..2d09d86 100644 --- a/CSM-TCP-Router.vipb +++ b/CSM-TCP-Router.vipb @@ -1,7 +1,7 @@ - + NEVSTOP_lib_CSM_TCP_Router_Example - 2025.12.0.5 + 2026.1.0.5 false src vip @@ -74,7 +74,7 @@ NEVSTOP https://github.com/NEVSTOP-LAB/CSM-TCP-Router-App - + [add] #23 Export "Net Address" for bind server to network adapter. diff --git a/README(zh-cn).md b/README(zh-cn).md index d5ee298..484cbfc 100644 --- a/README(zh-cn).md +++ b/README(zh-cn).md @@ -2,13 +2,13 @@ [English](./README.md) | [中文](./README(zh-cn).md) -本仓库演示如何通过创建一个可复用的TCP通讯层 (CSM-TCP-Router),将本地程序变成一个TCP服务器,实现远程控制。通过这个案例,展示CSM框架的隐形总线的优点。 +本仓库演示如何构建一个可复用的TCP通讯层(CSM-TCP-Router),将本地程序变成可远程控制的TCP服务器,展示了CSM框架隐形总线机制的优势。 ## 功能介绍 ![framework](.doc/CSM-TCP-Router%201.svg) -- 本地所有可以发送的CSM消息,都可以使用CSM同步、异步消息格式,通过TCP连接发送给本地程序。 +- 所有本地可发送的CSM消息,均可通过TCP连接以CSM同步或异步格式转发给本地程序。 - 基于JKI-TCP-Server库,支持多个TCP客户端同时连接。 - [client] 提供一个标准的TCP客户端,可以连接到服务器,验证远程连接、消息发送等功能。 @@ -17,18 +17,20 @@ CSM-TCP-Router 中 TCP 数据包格式定义如下: ``` -| 数据长度(4B) | 版本(1B) | FLAG1(1B) | FLAG2(1B) | TYPE(1B) | 文本数据 | -╰─────────────────────────── 包头 ──────────────────────────╯╰──── 数据长度字范围 ────╯ +| 数据长度(4B) | 版本(1B) | TYPE(1B) | FLAG1(1B) | FLAG2(1B) | 文本数据 | +╰─────────────────────────── 包头 ──────────────────────────╯╰──── 数据长度范围 ─────╯ ``` -数据包类型用于描述数据包的内容,为枚举类型,目前支持的数据包类型有: +数据包类型字段为枚举值,用于描述数据包内容,目前支持以下类型: -- 信息数据包(info) - `0x00` -- 错误数据包(error) - `0x01` -- 指令数据包(cmd) - `0x02` -- 同步响应数据包(resp) - `0x03` -- 异步响应数据包(async-resp) - `0x04` -- 订阅返回数据包(status) - `0x05` +- 信息数据包(`info`) - `0x00`:服务端在客户端连接时(欢迎消息)和连接关闭时(告别消息)发送 +- 错误数据包(`error`) - `0x01` +- 指令数据包(`cmd`) - `0x02` +- 指令响应数据包(`cmd-resp`) - `0x03` +- 同步响应数据包(`resp`) - `0x04` +- 异步响应数据包(`async-resp`) - `0x05` +- 状态广播数据包(`status`) - `0x06` +- 中断广播数据包(`interrupt`) - `0x07` 详细的通讯协议定义, 见 [协议设计](.doc/Protocol.v0.(zh-cn).md) @@ -38,7 +40,7 @@ CSM-TCP-Router 中 TCP 数据包格式定义如下: ### 1. CSM 消息指令集 -由原有基于CSM开发的代码定义。由于CSM框架通过隐形的总线进行消息传递,所有的通讯可以不用侵入代码的方式实现。 +由现有基于CSM开发的代码定义。CSM框架通过隐形总线传递消息,无需侵入原有代码即可实现远程通讯。 例如,本程序中的AI CSM模块提供了: @@ -50,17 +52,17 @@ CSM-TCP-Router 中 TCP 数据包格式定义如下: ### 2. CSM-TCP-Router 指令集 -由TCP通讯层 (CSM-TCP-Router) 定义。CSM模块管理的功能,通过定义指令,可以实现远程控制。 +由CSM-TCP-Router通讯层定义,通过指令暴露CSM模块的管理功能,实现远程控制。 -- `List` - 列出所有的CSM模块 +- `List`: 列出所有CSM模块 - `List API`: 列出指定模块的所有API - `List State`: 列出指定模块的所有CSM状态 -- `Help` - 显示模块的帮助文件,存储在CSM VI的Documentation字段 +- `Help`: 显示模块的帮助文件(存储在CSM VI的Documentation字段) - `Refresh lvcsm`: 刷新缓存文件 ### [Client Only] 3. CSM-TCP-Router Client 指令集 -代码中提供一个标准的CSM-TCP-Router Client。它也内置了一些指令,这些指令如果基于指令集进行开发,无法使用。 +代码中内置了一个标准的CSM-TCP-Router客户端,包含一些专属内置指令,这些指令在基于指令集API进行二次开发时无法使用。 - `Bye`: 断开连接 - `Switch`:切换模块,便于输入时省略模块名,不带参数时切换回默认模式 diff --git a/README.md b/README.md index d7161ef..80c19d0 100644 --- a/README.md +++ b/README.md @@ -2,13 +2,13 @@ [English](./README.md) | [中文](./README(zh-cn).md) -This repository demonstrates how to create a reusable TCP communication layer (CSM-TCP-Router) to turn a local program into a TCP server for remote control. This example showcases the advantages of the CSM framework's invisible bus. +This repository demonstrates how to build a reusable TCP communication layer—CSM-TCP-Router—that turns a local program into a TCP server for remote control, showcasing the power of the CSM framework's invisible bus. ## Features ![framework](.doc/CSM-TCP-Router%201.svg) -- All CSM messages that can be sent locally can be transmitted to the local program via TCP connection using CSM synchronous and asynchronous message formats. +- Any CSM message that can be sent locally can also be transmitted to the local program over TCP, using CSM synchronous and asynchronous message formats. - Based on the JKI-TCP-Server library, it supports multiple TCP clients connecting simultaneously. - [client] Provides a standard TCP client that can connect to the server to verify remote connections and message sending. @@ -21,14 +21,16 @@ The TCP packet format used in the CSM-TCP-Router is defined as follows: ╰───────────────────────────────── Header ──────────────────────────────╯╰─── Data Length Range ──╯ ``` -This field defines the type of the data packet and is an enumerated value. The supported packet types are: +This field specifies the packet type as an enumerated value. Supported types are: -- Information Packet (`info`) - `0x00` +- Information Packet (`info`) - `0x00`: Sent by the server when a client connects (welcome message) and when the connection is closed (goodbye message) - Error Packet (`error`) - `0x01` - Command Packet (`cmd`) - `0x02` -- Synchronous Response Packet (`resp`) - `0x03` -- Asynchronous Response Packet (`async-resp`) - `0x04` -- Subscription Status Packet (`status`) - `0x05` +- Command Response Packet (`cmd-resp`) - `0x03` +- Synchronous Response Packet (`resp`) - `0x04` +- Asynchronous Response Packet (`async-resp`) - `0x05` +- Status Broadcast Packet (`status`) - `0x06` +- Interrupt Broadcast Packet (`interrupt`) - `0x07` For detailed communication protocol definitions, see [Protocol Design](.doc/Protocol.v0.(en).md). @@ -38,7 +40,7 @@ For detailed communication protocol definitions, see [Protocol Design](.doc/Prot ### 1. CSM Message Command Set -Defined by the original code developed based on CSM. Since the CSM framework transmits messages through an invisible bus, all communication can be implemented without intrusive code changes. +Defined by the existing CSM-based application code. Because the CSM framework uses an invisible bus for message passing, remote communication requires no intrusive changes to the existing code. For example, the AI CSM module in this program provides: @@ -50,7 +52,7 @@ These messages can be sent to the local program via TCP connection for remote co ### 2. CSM-TCP-Router Command Set -Defined by the TCP communication layer (CSM-TCP-Router). The functions managed by the CSM module can be remotely controlled by defining commands. +Defined by the CSM-TCP-Router layer. These commands expose the management functions of CSM modules for remote control. - `List`: List all CSM modules - `List API`: List all APIs of a specified module @@ -60,10 +62,10 @@ Defined by the TCP communication layer (CSM-TCP-Router). The functions managed b ### [Client Only] 3. CSM-TCP-Router Client Command Set -A standard CSM-TCP-Router Client is provided in the code. It also has some built-in commands that cannot be used if developed based on the command set. +The bundled standard CSM-TCP-Router Client includes additional built-in commands that are not available when building on the command set API. - `Bye`: Disconnect -- `Switch`: Switch modules to omit the module name when inputting commands; switches back to default mode if no parameter is provided +- `Switch`: Switch the active module to omit the module name when entering commands; omit the parameter to switch back to the default mode - TAB key: Automatically focus on the input dialog box ![CSM-TCP-Router Client Console](.doc/Client.png) diff --git a/src/ClientAPI Example/TCPRouter ClientAPI Example 4.vi b/src/ClientAPI Example/TCPRouter ClientAPI Example 4.vi index 9ef1b4f..9140fde 100644 Binary files a/src/ClientAPI Example/TCPRouter ClientAPI Example 4.vi and b/src/ClientAPI Example/TCPRouter ClientAPI Example 4.vi differ diff --git a/src/ClientAPI Example/TCPRouter ClientAPI Example 5.vi b/src/ClientAPI Example/TCPRouter ClientAPI Example 5.vi new file mode 100644 index 0000000..4ef0b43 Binary files /dev/null and b/src/ClientAPI Example/TCPRouter ClientAPI Example 5.vi differ diff --git a/src/ClientAPI Example/TCPRouter ClientAPI Example 6.vi b/src/ClientAPI Example/TCPRouter ClientAPI Example 6.vi new file mode 100644 index 0000000..10aa96a Binary files /dev/null and b/src/ClientAPI Example/TCPRouter ClientAPI Example 6.vi differ diff --git a/src/_addons/TCP-Router/CSM-TCP-Router.vi b/src/_addons/TCP-Router/CSM-TCP-Router.vi index 3540e76..4a4f930 100644 Binary files a/src/_addons/TCP-Router/CSM-TCP-Router.vi and b/src/_addons/TCP-Router/CSM-TCP-Router.vi differ diff --git a/src/_addons/TCP-Router/ClientAPI/Register Broadcast for Client.vi b/src/_addons/TCP-Router/ClientAPI/Register Broadcast for Client.vi index 83a9984..11fa272 100644 Binary files a/src/_addons/TCP-Router/ClientAPI/Register Broadcast for Client.vi and b/src/_addons/TCP-Router/ClientAPI/Register Broadcast for Client.vi differ diff --git a/src/_addons/TCP-Router/ClientAPI/TcpRouter-Client.lvclass b/src/_addons/TCP-Router/ClientAPI/TcpRouter-Client.lvclass index ed45de3..3f6b384 100644 --- a/src/_addons/TCP-Router/ClientAPI/TcpRouter-Client.lvclass +++ b/src/_addons/TCP-Router/ClientAPI/TcpRouter-Client.lvclass @@ -20,7 +20,7 @@ )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!6%0%.M>8.U:8)_$1I]4G&N:4Z1:7Y],UZB<75_$1I]4H6N27RU=TYY0#^/>7V&<(2T0AU+0&5T-DY.#DR/97VF0E:P=G6H=G^V<G1A1W^M<X)],UZB<75_$1I]6G&M0D%W.$1Y-D5Q0#^797Q_$1I],V5T-DY.#DR6-T)_$1I]4G&N:4Z#97.L:X*P>7ZE)%.P<'^S0#^/97VF0AU+0&:B<$YT-D9T/4QP6G&M0AU+0#^6-T)_$1I]1WRV=X2F=DY.#DR/97VF0E:J<'QA5'&U>'6S<DQP4G&N:4Y.#DR/>7V&<(2T0DA],UZV<56M>(-_$1I]64A_$1I]4G&N:4Z3<X=A-$QP4G&N:4Y.#DR797Q_-4=Q0#^797Q_$1I],V5Y0AU+0&5Y0AU+0%ZB<75_5G^X)$%],UZB<75_$1I]6G&M0DAV0#^797Q_$1I],V5Y0AU+0&5Y0AU+0%ZB<75_5G^X)$)],UZB<75_$1I]6G&M0D%X-$QP6G&M0AU+0#^6/$Y.#DR6/$Y.#DR/97VF0F*P>S!T0#^/97VF0AU+0&:B<$YY.4QP6G&M0AU+0#^6/$Y.#DR6/$Y.#DR/97VF0F*P>S!U0#^/97VF0AU+0&:B<$YR.T!],V:B<$Y.#DQP64A_$1I]64A_$1I]4G&N:4Z3<X=A.4QP4G&N:4Y.#DR797Q_/$5],V:B<$Y.#DQP64A_$1I]64A_$1I]4G&N:4Z3<X=A.DQP4G&N:4Y.#DR797Q_-4=Q0#^797Q_$1I],V5Y0AU+0&5Y0AU+0%ZB<75_5G^X)$=],UZB<75_$1I]6G&M0DAV0#^797Q_$1I],V5Y0AU+0#^$<(6T>'6S0AU+0%ER.DY.#DR/97VF0F>J:(2I0#^/97VF0AU+0&:B<$YR0#^797Q_$1I],UER.DY.#DR&6TY.#DR/97VF0EVP:'5],UZB<75_$1I]1WBP;7.F0E.P=(E],U.I<WFD:4Y.#DR$;'^J9W5_4X)],U.I<WFD:4Y.#DR$;'^J9W5_28BD<(6T;8:F)%^S0#^$;'^J9W5_$1I]1WBP;7.F0E*J>#"$<'6B=DQP1WBP;7.F0AU+0%.I<WFD:4Z/<X1A1W^Q?4QP1WBP;7.F0AU+0%.I<WFD:4Z/<X1A4X)],U.I<WFD:4Y.#DR$;'^J9W5_4G^S)%6Y9WRV=WFW:3"0=DQP1WBP;7.F0AU+0%.I<WFD:4Z/<X1A1GFU)%.M:7&S0#^$;'^J9W5_$1I]6G&M0D!],V:B<$Y.#DQP26=_$1I]25Q_$1I]4G&N:4Z4>(FM:4QP4G&N:4Y.#DR$;'^J9W5_5W^M;71],U.I<WFD:4Y.#DR$;'^J9W5_2'&T;$QP1WBP;7.F0AU+0%.I<WFD:4Z%<X1],U.I<WFD:4Y.#DR$;'^J9W5_2'&T;#"%<X1],U.I<WFD:4Y.#DR$;'^J9W5_2'&T;#"%<X1A2'^U0#^$;'^J9W5_$1I]6G&M0D!],V:B<$Y.#DQP25Q_$1I]25Q_$1I]4G&N:4Z';7RM)&*V<'5],UZB<75_$1I]1WBP;7.F0E6W:7YA4W2E0#^$;'^J9W5_$1I]1WBP;7.F0F>J<G2J<G=],U.I<WFD:4Y.#DR797Q_-$QP6G&M0AU+0#^&4$Y.#DR&4$Y.#DR/97VF0E6O:#"$98"T0#^/97VF0AU+0%.I<WFD:4Z%:7:B>7RU0#^$;'^J9W5_$1I]1WBP;7.F0E:M981],U.I<WFD:4Y.#DR797Q_-$QP6G&M0AU+0#^&4$Y.#DQP1WRV=X2F=DY.#A!!!!! true )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!6)0%.M>8.U:8)_$1I]4G&N:4Z1:7Y],UZB<75_$1I]4H6N27RU=TYY0#^/>7V&<(2T0AU+0&5T-DY.#DR/97VF0E:P=G6H=G^V<G1A1W^M<X)],UZB<75_$1I]6G&M0D-S.D-Z0#^797Q_$1I],V5T-DY.#DR6-T)_$1I]4G&N:4Z#97.L:X*P>7ZE)%.P<'^S0#^/97VF0AU+0&:B<$YR.D1U/$)V-$QP6G&M0AU+0#^6-T)_$1I]1WRV=X2F=DY.#DR/97VF0E:J<'QA5'&U>'6S<DQP4G&N:4Y.#DR/>7V&<(2T0DA],UZV<56M>(-_$1I]64A_$1I]4G&N:4Z3<X=A-$QP4G&N:4Y.#DR797Q_-D5V0#^797Q_$1I],V5Y0AU+0&5Y0AU+0%ZB<75_5G^X)$%],UZB<75_$1I]6G&M0D)V.4QP6G&M0AU+0#^6/$Y.#DR6/$Y.#DR/97VF0F*P>S!S0#^/97VF0AU+0&:B<$YS.45],V:B<$Y.#DQP64A_$1I]64A_$1I]4G&N:4Z3<X=A-TQP4G&N:4Y.#DR797Q_-D5V0#^797Q_$1I],V5Y0AU+0&5Y0AU+0%ZB<75_5G^X)$1],UZB<75_$1I]6G&M0D)V.4QP6G&M0AU+0#^6/$Y.#DR6/$Y.#DR/97VF0F*P>S!V0#^/97VF0AU+0&:B<$YS.45],V:B<$Y.#DQP64A_$1I]64A_$1I]4G&N:4Z3<X=A.DQP4G&N:4Y.#DR797Q_-D5V0#^797Q_$1I],V5Y0AU+0&5Y0AU+0%ZB<75_5G^X)$=],UZB<75_$1I]6G&M0D)V.4QP6G&M0AU+0#^6/$Y.#DQP1WRV=X2F=DY.#DR*-49_$1I]4G&N:4Z8;72U;$QP4G&N:4Y.#DR797Q_-DQP6G&M0AU+0#^*-49_$1I]26=_$1I]4G&N:4Z.<W2F0#^/97VF0AU+0%.I<WFD:4Z$<X"Z0#^$;'^J9W5_$1I]1WBP;7.F0E^S0#^$;'^J9W5_$1I]1WBP;7.F0E6Y9WRV=WFW:3"0=DQP1WBP;7.F0AU+0%.I<WFD:4Z#;81A1WRF98)],U.I<WFD:4Y.#DR$;'^J9W5_4G^U)%.P=(E],U.I<WFD:4Y.#DR$;'^J9W5_4G^U)%^S0#^$;'^J9W5_$1I]1WBP;7.F0EZP=C"&?'.M>8.J>G5A4X)],U.I<WFD:4Y.#DR$;'^J9W5_4G^U)%*J>#"$<'6B=DQP1WBP;7.F0AU+0&:B<$YQ0#^797Q_$1I],U680AU+0%6-0AU+0%ZB<75_5X2Z<'5],UZB<75_$1I]1WBP;7.F0F.P<'FE0#^$;'^J9W5_$1I]1WBP;7.F0E2B=WA],U.I<WFD:4Y.#DR$;'^J9W5_2'^U0#^$;'^J9W5_$1I]1WBP;7.F0E2B=WAA2'^U0#^$;'^J9W5_$1I]1WBP;7.F0E2B=WAA2'^U)%2P>$QP1WBP;7.F0AU+0&:B<$YQ0#^797Q_$1I],U6-0AU+0%6-0AU+0%ZB<75_2GFM<#"3>7RF0#^/97VF0AU+0%.I<WFD:4Z&>G6O)%^E:$QP1WBP;7.F0AU+0%.I<WFD:4Z8;7ZE;7ZH0#^$;'^J9W5_$1I]6G&M0D!],V:B<$Y.#DQP25Q_$1I]25Q_$1I]4G&N:4Z&<G1A1W&Q=TQP4G&N:4Y.#DR$;'^J9W5_2'6G986M>$QP1WBP;7.F0AU+0%.I<WFD:4Z'<'&U0#^$;'^J9W5_$1I]6G&M0D!],V:B<$Y.#DQP25Q_$1I],U.M>8.U:8)_$1I!!!!! - )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!$P^5F.31QU+!!.-6E.$4%*76Q!!.U1!!!3Z!!!!)!!!.S1!!!!S!!!!!B2$5UUN6%.1,6*P>82F=CZM>GRJ9BB59X"3<X6U:8)N1WRJ:7ZU,GRW9WRB=X-!!!!!!+!A!)!!!$!!!#A!"!!!!!!%!!-!0!#]!"^!A!)!!!!!!1!"!!<`````!!!!!!!!!!!!!!!!%[^.L2377%C4E:^+E&Q0WQ!!!!Q!!!!1!!!!!'X(1F:YV:"!H*I:%-I2EDX5(9T:DQ#S"/G!#:DM_%*_!!!!!!!!!!$ZE)Q,["$)2)^J@?3$$1II!1!!!0`````5(9T:DQ#S"/G!#:DM_%*_!!!!%*-,"K&2&A@HO7PQS'ZY;V]!!!!%!!!!!!!!!I9!!5R71U-!!!!'!!*735R#!!!!!&"53$!!!!!&!!%!!1!!!!!#!!*735.$!!!!!!%;2'6G,62$5#V3<X6U:8)A5E62,6*&5#ZD>'Q!5&2)-!!!!#%!!1!$!!!;2'6G,62$5#V3<X6U:8)A5E62,6*&5#ZD>'Q!!!!#!!(`!!!!!1!"!!!!!!!/!!!!!!!!!!!!!!!!!!!!!!!#6EF$1Q!!!!!!!2J%:79N6%.1,6*P>82F=C"165)N5V6#,G.U<!"16%AQ!!!!)1!"!!-!!"J%:79N6%.1,6*P>82F=C"165)N5V6#,G.U<!!!!!)!!P]!!!!"!!%!!!!!!!Y!!!!!!!!!!!!!!!!!!!!!!!*735.$!!!!!!!"(E2F:CV51V!N5G^V>'6S)&.U982V=S"%982B,G.U<!"16%AQ!!!!*1!"!!-!!"Z%:79N6%.1,6*P>82F=C"4>'&U>8-A2'&U93ZD>'Q!!!!#!!0`!!!!!1!"!!!!!!!/!!!!!!!!!!!!!!!!!!!)!!!#6EF$1Q!!!!!!!2V%:79N6%.1,6*P>82F=C""5VF/1SV326.1,G.U<&"53$!!!!!E!!%!!Q!!(52F:CV51V!N5G^V>'6S)%&475Z$,6*&5V!O9X2M!!!!!A!%`Q!!!!%!!1!!!!!!$A!!!!!!!!!!!!!!!!!!!!!!!F:*1U-!!!!!!3*%:79N6%.1,6*P>82F=C""=XFO9SV3:8.Q)%2B>'%O9X2M!&"53$!!!!!J!!%!!Q!!)E2F:CV51V!N5G^V>'6S)%&T?7ZD,6*F=X!A2'&U93ZD>'Q!!!!#!!8`!!!!!1!"!!!!!!!/!!!!!!!!!!!!!!!!!!!)!!!$!!!!!!!#!!9!!!!!!#1!!!!=?*RD9'>A<W#YQ!$%D!Z-$6R!&F-#E0?"A9%"!&R,"JY!!!!5!!!!%HC=9W"HY'0A1))-!!,<!%9!!!"<!!!".XC=9W$!"0_"!%AR-D!Q@103L'DC9"L'JC<!:3YOO[$CT%$-!H5H:UZ_=G*/2HZRS?&Q"I:8#>BU!<WV"UATA<2"D2#$3$%^!/)4["LYI@1&*$%!#/QPA1!!!!!-!!&73524!!!!!!!$!!!"B!!!!UBYH#NA:'$).,9Q/Q#EG9&9A;'")4E`*:78!=BHA)!X4!Q5AQ#I?6JIYI9($K="A2[`@!O9X_WCQN*=I],$6-LXPU3&)_!&3,$Z#-@B<I_=YYYW9#5=71R:$!(`!T/;D`#!>30JTW)!;B-"9;B/(D4T@629$!]U6#ITF!I@<T2BB,AC%+K9Z4""`5$X!=XA/0C1J8=C7+!42(;'-%I=>W(5%1/S?XE9!R(O2H.@7$@16VG-94$Z<L<D$BIA^H%(%1C6!;%K)&1"C.I")O)/9QP8N;`P\7)&UGR)9AZ1X!$%I(C&94U'2A;1BZG!M!.)``H``\].5)1*+K9)&1/R<U,:'EB[@E,&'"HMY7+TY8I19N&1-1=E^Y$M!.GU&UBL1.G(I?Q'K0N"9KR!1S:!W4R!>A'5,1RE<Y#SJ9"M!3B<%=D_!'7L1>E(I,'+4DP\O\ACBRUI8=03O"11*_=7'"DI66=([Z3'[W4[V/I5J5&1,1/$*%C_),E-BT1$!(3WF89!!!%:!!!"L(C==W"A9-AUND"T9'2A9!:C"99'BO4]F&1'*&$#S)!4B)=VPR(I,F&2[+Z2E?GM5?(J,&(B!.)MH39K`]X_G\]!+7I_QN&ZU0"!]U^'`CE(_6M8!96[X6E[8629?NV9/FF5_,@\MRA?3,0W9Q(,.Q(FOU'3(ES>0CIMX4QKP9&-H3)KX1&-BA?M!ZG!CEI4?^WZA!<Q^,K"+)ZO@S[AF"]83-KN'S4OQ1,5S^0NI],2']D3'1*5%M!#UAWSIF3:E*)$LZE[4D1@%9C,0YT<\S#Q^P7^8;$A11YC"S"79J!!CT%"M3)1``H``\]$6.\:X]5608R";K7!/$GXQ-"!L\I[7+=U8#@4JV;H+!W#;BE9!.V#8II!!!!!!!$T!!!"<(C==W"A9-AUND"D9'2A9!:C"99'BO4]F&1'*'$#S)!4B)=VPR(I,F&2[+Z2E?GM5?(J,&(B!.)MH39K9@`.8Y$5."`B;$X!X^I+:0;[MX3[K,$UOL&UMKDQ<X>H3?NU9_E'C8AQ>@KIM(4TK01'-H7+K(1\-(5[-A&F?(I^O)!S0.U_+BS^A6S>)3I=X1Z=H9Z=%$E7B"Q,2)[FUZ%&HZTBA?9D!H(RBS(O8`P[XC[1^Z#^[!$%75!2E"A4!SB-'"D_`0``XQ%K\_TPYII?0C#VEE#=8*"=JF>>(;R4'K[4[6/L5Z1'1<6!/1#,EUQ@!!!!!!YA!9!!!!!'-D!O-#YR!!!!!!!!$#!!A!!!!!1S-#YQ!!!!!!YA!9!!!!!'-D!O-#YR!!!!!!!!$#!!A!!!!!1S-#YQ!!!!!!YA!9!!!!!'-D!O-#YR!!!!!!!!&!%!!!$V6T7#?3;CD#ZT5EY'34G>!!!!$1!!!!!!!!!!!!!!!!!!!!!!!!#!````````````D-@``^N<```<R```WV```^T@```````(.IC0WN<<N]<7W9`;VNOXWTH9N``````ZOCU@^LLFP`?[;<`WOOW`_9INP```````````A!!!!9!$Q!'!$`!"A$`]!9$``Q'!``]"A0``!9$``Q'!``]"A0``!@````]!!!)!``````````````````````O\O\O\O\O\O\O\O\O\O\`\O\O\M!#\!,M!#\O\O\O`_\O\O\M,M,M,#\#\O\O\P`O\O\O\#\#\OQ!,O\O\O\`\O\O\OQOQOQM,O\O\O\O`_\O\O\M,OQ#\#\O\O\O\P`O\O\O\O\O\O\O\O\O\O\`\!!O\!,M,M,!!M!#Q!,O`_QOQM,M,#\#\#\#\M,M,P`M!#\#\#QOQOQOQ#\!!O\`\#\#QOQM,M,M,M,OQOQO`_QOQOQ#\M!O\#\!!M,M,P`O\O\O\O\O\O\O\O\O\O\`\O\!,M,OQM!#QOQM!#\O`_\M,M,#\M,#\M!M,M,O\P`O\#\OQO\#Q#\#Q#\#\O\`\OQOQM,OQM,OQOQOQO\O`_\OQ#\!!M,!!M,M,M,O\P`O\O\O\O\O\O\O\O\O\O\``````````````````````]!!!!!!!!!OQ!!!!!!!!$`!!!!!!!!P``\!!!!!!!!`Q!!!!!!P`O\P`M!!!!!!0]!!!!!P`O\O\O`_Q!!!!$`!!!!$`O\O\O\O\`Q!!!!`Q!!!!`\O\O\O\O`]!!!!0]!!!!0``O\O\O```!!!!$`!!!!$```_\O````Q!!!!`Q!!!!``````````]!!!!0]!!!!0``````````!!!!$`````````````````````]!!!1!````````````````````````````````````````````AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$``_$AY/$AY/$AQ!!!)/$!!#$AQ!!!)/$AY/$AY/$AY0``Y/$AY/$AY/$AQ#$AQ#$AQ#$!)/$!)/$AY/$AY/$A```AY/$AY/$AY/$!)/$!)/$AY-!!!#$AY/$AY/$AY/$``_$AY/$AY/$AY-!AY-!AY-!AQ#$AY/$AY/$AY/$AY0``Y/$AY/$AY/$AQ#$AY-!!)/$!)/$AY/$AY/$AY/$A```AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$``_$!!!!AY/$!!#$AQ#$AQ#$!!!!AQ!!!)-!!!#$AY0``Y-!AY-!AQ#$AQ#$!)/$!)/$!)/$!)/$AQ#$AQ#$A```AQ!!!)/$!)/$!)-!AY-!AY-!AY-!!)/$!!!!AY/$``_$!)/$!)-!AY-!AQ#$AQ#$AQ#$AQ#$AY-!AY-!AY0``Y-!AY-!AY-!!)/$AQ!!AY/$!)/$!!!!AQ#$AQ#$A```AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$``_$AY/$!!#$AQ#$AY-!AQ!!!)-!AY-!AQ!!!)/$AY0``Y/$AQ#$AQ#$!)/$AQ#$!)/$AQ!!AQ#$AQ#$AY/$A```AY/$!)/$AY-!AY/$!)-!!)/$!)-!!)/$!)/$AY/$``_$AY-!AY-!AQ#$AY-!AQ#$AY-!AY-!AY-!AY/$AY0``Y/$AY-!!)/$!!!!AQ#$!!!!AQ#$AQ#$AQ#$AY/$A```AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$`````````````````````````````````````````````Q!!!!!!!!!!!!!!!!!!76E!!!!!!!!!!!!!!!!!!0``!!!!!!!!!!!!!!!!7;WNL;V:!!!!!!!!!!!!!!!!``]!!!!!!!!!!!!!7;WNAY/$A[WN71!!!!!!!!!!!!$``Q!!!!!!!!!!7;WNAY/$AY/$AY/NL6E!!!!!!!!!!0``!!!!!!!!!+WNAY/$AY/$AY/$AY/$L;U!!!!!!!!!``]!!!!!!!!!L;W$AY/$AY/$AY/$AY02L1!!!!!!!!$``Q!!!!!!!!#NL;WNAY/$AY/$AY02U>'N!!!!!!!!!0``!!!!!!!!!+WNL;WNL9/$AY02U>(2U;U!!!!!!!!!``]!!!!!!!!!L;WNL;WNL;WNU>(2U>(2L1!!!!!!!!$``Q!!!!!!!!#NL;WNL;WNL>(2U>(2U>'N!!!!!!!!!0```````````````````````````````````````````Q!!!N)!!5:13&!!!!!&!!*52%.$!!!!!2J%:79N6%.1,6*P>82F=C"326%N5E61,G.U<!"16%AQ!!!!)1!"!!-!!"J%:79N6%.1,6*P>82F=C"326%N5E61,G.U<!!!!!)!!0]!!!!"!!%!!!!!!!]!!!!!!!!!!!!!!!!!!!!!!!!!!1!!!'N16%AQ!!!!!!!!!!!!!F2%1U-!!!!!!!%?2'6G,62$5#V3<X6U:8)A5X2B>(6T)%2B>'%O9X2M!&"53$!!!!!F!!%!!Q!!(E2F:CV51V!N5G^V>'6S)&.U982V=S"%982B,G.U<!!!!!)!!0]!!!!"!!%!!!!!!!]!!!!!!!!!!!!!!!!!!!A!!!!!!1!!!):16%AQ!!!!!!!!!!!!!F2%1U-!!!!!!!%;2'6G,62$5#V3<X6U:8)A5&6#,6.61CZD>'Q!5&2)-!!!!#%!!1!$!!!;2'6G,62$5#V3<X6U:8)A5&6#,6.61CZD>'Q!!!!#!!$`!!!!!1!"!!!!!!!0!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!!U5&2)-!!!!!!!!!!!!!*52%.$!!!!!!!"(52F:CV51V!N5G^V>'6S)%&475Z$,6*&5V!O9X2M5&2)-!!!!#1!!1!$!!!>2'6G,62$5#V3<X6U:8)A16.:4E-N5E645#ZD>'Q!!!!#!!$`!!!!!1!"!!!!!!!0!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!#;5&2)-!!!!!!!!!!!!!*52%.$!!!!!!%C2'6G,62$5#V3<X6U:8)A18.Z<G-N5G6T=#"%982B,G.U<!"16%AQ!!!!+1!"!!-!!#*%:79N6%.1,6*P>82F=C""=XFO9SV3:8.Q)%2B>'%O9X2M!!!!!A!!`Q!!!!%!!1!!!!!!$Q!!!!!!!!!!!!!!!!!!#!!!!!!#!!!$"Q!!!X^16%AQ!!!!!!!!!!!!!Q!!!!!!'!!!!!5!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%GI!!&\<?*TN8!VU'^76PG^'371\0X)3/T:*].C2H4`</%!A""/37%Z)=")HNC%`E%32F&B%E9)EZ[="1KFKGJ4@>0EJN)@3,ORBI;8>U!*>4EO*A<+CJ_&MA7WB;]BS3O&1OLMZ<4AUSOR^<T3;@YU9:"7W49\?U:(HPP@GX8O`>_`^ZAX!ZN=^.>Q:O#%$R0-H`.+6A@*AGA!-N<AB_[^J%$R^Z#^!*N?3$#RW^XH?Y-[1;2E9'UQXO>N]B_#`]7LRO(C1GUYO]\S.FY\WV'*HZ2G9E%L$0:5LP=-?\_04P)>'S>V/ADL0L?1-N^Z<>]J^;SK')U*K&GUL7]A:),Z[FSP6U/W0BF*?_GN:C\O7^6G7!9]P03\O(:[*0?,9T\%OS6.=/XF*\B+QSVFQ^/B22;B3%GJCUVC!-FQ\!,?+0*6(:K)P04XB(7ZG-O6-"M>:*9`DKTPT.4JX+K18H?2,?V!5Z@:F<ZH+SH+:R5TOR)E4+)>N6KY`!Z/^QUP>N?[XA\]:.7ZN[EEA1&,(I2VO'>LC&K]6EVQ.;;Z=4:8"*#;C0BI8%E]0@O`*Q*R5GNM+LOS)Z"!]R,4BEL824L6"FD&NF0E/?5"2RU-W[P#ZBBKG>U1'%MF18)BN&Q)2@S)B\)[(^`C4)3(I4`K.CLL%FS[\E#Y#(9Q:#5Q"&`ES\&9P?AQ?@PBB8!>M&>&&+$L&/ZS4G]2O*ZF<_+#S](25:1%PR18U@>3\ASZCYU*/NFU8N6W/:R<=T.LRL$V0M?:TU:IL0@K*;KRZ`AB9]Q6I:$@IL"EC*!L8Z\(-#S5BR:LR?C!():*(:A(+(&2<-]J%5/:[?WO_S'$.6&:HT8@@@<>'$J7R-'@.,E*E;R:0C[?J.4]CPE>_!6^FVCR:;"`KQZ=7K&73'BRD%[RG[T^'8P]\T/W8I!*7;UT+I!"B.%AW8,[E:]0KDJ:VH4X>2FX=[5O\ZXG(#@;?V7YV](!"T*"P^2X"O+Z(5'C_>^CP#,6#$3S#:6;[K-D!8:*HK-U</K",P@K6>8DHH+=WKZM0K,$U8@3Y;]PKF!H=YUP88KRVMRI9B4.9,E^<L,43\,W_>-V&XO&;:@+4R.`"O4BQ>P)@GEKC<L`/('X=0UC/RF.(ISA5T-"^;#XN>%@Y-]\C#>D!>-D,/PR'TI>]D^?NT#J2`!0TI[`9?N&11X6P2X@,ONA!R;'/3$A541I_)`LU:,B`JG$I=@G'[V<+@PI4[.5!)P=9G]RKD5&FZV+7@SZ:A`)WA-'-O/_C1H3YZ],`0Y:O/^TDPI?C;NS4:WW(?^TDK)\'$>#Y%24U=]HIRX#0/]<;U\4FETH=YX[IQ4VZIGL=YZYM0OZR4ZHB8B@]#+[WRD$O;4XOY@5!,U*8(JE@[X%0:<J1ZGJ<X/0_V9"\6.97^\C@ZJ2BB8ZH`E8]P@A=<'4IRW@2DU`[UGX-"&?,J]1\I5/$@PQ?JA64^&N=E,%/.:3N#S6W>_Z"JT%IB._,5*!@`/9<&J@@*QGJQ%_!'1A^(><AR__8X+-IY->`Q4HY]1?=AB^XO]L<RA5E<ROF1#"`5)<!YTC8EW36"A,Z,_;"Q,E&1/#9<"RGQ$T_*A0GE2H:E&T'0$\F'0-M])\`MCH?E4LCM]-\@N#)>WT'>HD(XWS#>[-VU2\`!'PP9OUDL$W;1TX_M"\VW(46K-@@5HT5YW]V14WSG%QF;[U2D,`.%/V.2;FGMDC0T/W';']KDN-MDZ-(^@A\D.(?6(GM0+D(XWG,?O*?]6&S.F((@'CU2Y0JL7UM;?E14]'PY';NP@YIG*ZC2$U/V4#D1.1<&9L(9XJPQ2N^UGCX:['`XA*@V>KNS2I^J<0<+OT[4LADBTE4,:#$@VK.(*@2B@*MR,`],--`56F$]\KB7J(%WJ=O9H-7QN(W=Z9O%A,_K/!0"%+\EY,]_`:9@*=`'9Z&B<XB?#AI<)`(>AF8L+!Z77B0/$;1C/R(M5AE&'Q6_B)B)>E@4GD%ED%B'!K%AS%BP&XQ2`=,WQ?C!@I8@S3=X#]E_G-$E;#Q,32MW\]<=TU=)IR#`3%B20=0GA/SK33EE70YFTA>P\7]@&VY2X_S*2!*"X9S!=0>R+,*?#QCR+4_5"\\WYX_%M&Z")6%+")+*+F5Z\\>%4_/WEGFG3BWIPL^3H]]'I\O9(^BM[$>Y=4DS="!5NA6CAY)?,`#LFA]J,FV`T;-([6\I4WXFN7Y.T9O(+-*F`A878O=N7]KQ0'-"DBE?^%!RU_IR7:R1ZNF/Q?/HZK&3T>$!O\.!Q,0'M+F""U30=R;ZG=+=-BT4_"!+8GA@-DRH$&?CM/A$DF-H/*9(O2Y5HS:)M=$-!&7Q/OK?'ENKA8(9^P8-7D"V@W"6AX$JM""V4$("DB=7?!9H9A.R!.[<7!)]R;[0S;X%[3?X<4HW<C*T)>SP-&@`_:.P-'"Q7_R+-9F2S[H@KZ%-;>?6(V`1@8^?66UA\@Q.IZTLH?Y1I61V4!;6M..]BX]7<OG[DO9\%JZ[7_ZC9`.]#>1O_>\B_>+%X^7[J$$$FW;>=C&8\QQ6#?NWA,A5A+\J*[WHA<:ABKE[?OO"&%55`7UF;`]8XKF/H4\,RW'4E<:<EBJ>'.G,?`EL+8R!+>'U.`+#0IB9I3E/A9.Q6!C%!^P#S79S]@CY2W)(9B@/1#AM,*8QJ,0,XSZGQ<Z\#*V)WY&UZS(<KLCA^!FPJTVD6QO]?_GPC%5E%JQV$?]K9:!,+BXD,=S`+_#;2?VW(+.R5Z!\QD97#TNV]8*&ON,.A96>XN6=A//>6KT7$;7/BBDFC[)OV8J1E2F=^D4;^D4">ZBHP5U_5<;5RW.OCV[CKF[WKHN[87J*T5%V%):.-)%65_D:/G0WJ3?0DJ(^<V6^<V&"13P;(XF0QS_-A9H(<,VF6^LE&6WF&>E2XE4L:%KEJFA/'(K%1+^Y00L&G6.A^SA=#-K?<$_)-*25Y/=2;T"02YXE+S4T"6@S*9^=J(HPV%H7=[=J%K\A417Z#2U!UH[EQ-*H:_-S`$J9(JU<>1\8+XKOAIK9":-,K31[68F9;F75$)DB0C8U63KP=.63GDK2KOM5@-.SM;EI,9(0)D;^**[WEKI\;M\_5=DQ&N>_G(BFX\38H/_A$<^#V/<`LE30M_E]-]78L<LXH6^H=+M^</F5&=W]5"A)%Z$:`S_<%F8$VY2[!]&>O\SRX@/JO&R/"I-"SC^Y=`Z!F[;\0=HB7B-V]HHVU(+-?Q>X%S8(Z>:85:XP`(#A&P]I8C3@L,,DU(8)^GA#[IQ7_MA&WK$LE@.CV3&2&W=8>4VG$(KKM7IK\'I52?/]VVJH$WK)+E+RZH$RM%2CB8>@1`8[E:^@$?&DE4;>>7LDT`_'%@&6FIM>*'PO'BYB\_IMY4(>>M%,;WV+LG\>4HF__JSSP0:O+JR99535[$G([#;F_H?J]64YLN[\4^IL8U<S-RKXAQO530@,J(GPV-CT@^DU48`E&0.0WSO_<%;T>_FVPS\[0>6?MX@9[XZ+<;;$T<YYTO-7L_X2&L`?IGU@F`2N8[`5[V`QVTLYZD7489"[OXY54JY4VX(OFS3(I]\S?^O>`>EL_L,=+>F1K-#Z6@L#!XOD$7BM<T!P9)2'GM(1A-G$*.I3WAM.:9`!)5_):P,EW)3'BRW>KF$1I0(S6`CC-X^L6K>7S6V4F!2'G-1!+:FZU)OVB-;:8E)$4N/Q78#+@2E_0)#G)SRTJE-MV&R!==Z:T,'/W5S*JAQ'2YNET'4N>.:/Y_V&SM&S9HW4-<E%7!SKJQQ'>5/G)QJTJG-'I>-2KU^ER%8(S7V?C<DYBS4M1DXS&`KG9R&)]:E8/K=S6DMF-F99MFEN0_>S@DLJH367C:D$7P8MT;I!)@0HMF9.A*-RH)H4-:F$JC-&:_#S6DJE-GYX#'4%=T,:/Q9/3;DPU2-2LD94-9VHS%G9[>$*C.CR73%`K;:D)E;*G.^@C:DUQAR'6?.#*.R>>'9D-V&9T+WF*4*W/K1S@#<6HUX`!UR':0S-2FL]D):[U;/S?A:/3;D^`]\E^&H;N0>@W=SH$H)Z0R-RP@&E`3D6$8HS5S'"\/V2@K+ZHEDS'3=8[,+ZPQ3649P+(JF]U+HF=U&ZJ8.+EU^?[;[HPW%?%I]I>@_\"&C-O;530.T3[4ZZK*LPM7JZFP..6_NU@RUN?:0I.^\^*KP'Q%G1SC2VON,J07'IGN^BF/N?]WV0M7+S;$?`I3;S<D7B-GI-4!:R\*-RJEX5,Y#&GH0%4VPSW4Y[D*XW:V-3_S0"FIII7(E-F[3;!H+:5BF`<`!?4!V2W3M."Z\_3B,3MAVP4;ISCXG"V9UQ#PKN6ADL55NLI8:3N+6I"^&_FP3E<$M'J[F8U-9HTX="[`CUN2!F`:Q8\XVY<[,<#**?<]>U^WXN+7H<[HR:&_$EZ.^-RS=\0-7]W2@Y[=YW>@E_'4@8-X*PKGKEXXH:Y_VM&F]$4:K4`9N=X[S,_=%B:XOQUEOT^F;NPA/FRH0_RW!0OU"[*8&:ITA=P/T@HN"1Y/9HH&?:8,7D]\9$P*AN1FD.%UO_8,M80-7VOZ84D?P.:TSIV05H'\O(9(4T8VGR>Z6E)$.?5YK8W&2\&W62_:+QSG`")[4EM@*>\JZA\(7GZ$(SH?[?:0^+<^XR._,N]-G6OPF:"D=,Z0CT<C6R-#HB=%$VFP*KA,4DII?&HS;U_*QP1.;('\YZ,1YX&B%7BS__#GA]#<(50AF%VJ]OAI1"_6T@O_,,]&VJ&),C)?+4IO4N5;1/[+DR5F0M5'/^*K$X'XWN$DJ-Q'Z)Q81YO1+%Z!\7].LE3BLA[T>FY-[MM%!><@J#('SK@B12[YS*=4B=$Z#H&RNA,L$W/X^_1BRMNE!>9>RH0M,)-4*&C05(3[!%#><\1HR)@&>6/S,'FK,\*-L,)MQ8)W1B&9,8RCZ#AMZ5*K-CVR8GIS,8&`MD)P=Y$$D)A@.-[Y[>:Z.IJI]'\8PA8OUWN]^-B57=GW*."]PE?94FJK(L=YUHT440!4N!]]@G'N?U'A_K.)];PU]^(W>ZL=8P]*#>J2)[`UFUHKY[&K`RKH7`]F=[`67&2<U>PJ2/DBM5G&J-&1(NMA6FN-9&D@$,'XG&L-/C_@:66BSGU60\Z,?PBZD3(TN*[WO1.R*>36B5FW:966>Q67A(_EKLW'VGO6;SB%=`66^,36I85N:5!AL2WMJ[TL8NKTL.(F,5MB*,77\AVL+DG,75PI`21)2>JR!8+/JJ43K5I?>=CWF&;<">LB+GTLM+N&<EO".9U+R!":L@7`9_6O3/-OX*-&<ZEH&_>"O7TFZWS3J7!$WI1O=-%EKGD4P.S4.3MXE@5-C13?HK:F]-!)VET_9V5Q7)-3MS&0`_.#13,3BV"+NO_NE`GB)*.JQH#8S/0FK*P^D4#4;Z,(SV5R/WC=3^?*L9BDGK.ZSW)>;E7MGM]7XR!V1I]VY7[UXBQ6WGY-NXJ&TF)**9<M$;8/S/^RMMDP-N.A>W$,A2Z'/;GLPM\4\25_'YX/PBG3??Q1C7A:DF(6-ZL0R]2S"U2',2E0MQ6MDA4(;^&W1]#$UWXE\.]<Y,EBY3(H^I05\U>QGXDZ<_U[U?N:7MX;O]E[U#PW\).F%.?^%'T=#\U1<<_<Z14A-!^:?T%UQ,S()E:WJD->91M"R\J@(S@>/N%K4%I)326K`%WWCP?@`J`AO0!<8KUI)X;C69(IU=(3I4P%U*/!+\2GC&H/\L5!^<#SQBC$<<?_K.9<(!$E+,;ESX8/!5W!#RO'8Z)`$[1!M&O@E7$S6<'RNWZ\N?WS'/U>[]%Z['*$"'UT%Y=_'M>D<-]]]A\VB;`9)[VC]2'#8V..7@M,I4-$Y-**U+66)07WVF_9#**R.G`2I)K_;41.,%2T0:FPBM^GGG5V&BJOHS???66;^SJ$0&?P22/Z=1Y:5A<?`R$[MO)["\\I+#7,G7$[HNR9"2[[*P)@70!6T/1WIT,"'Y;5&V%4+6X1,3Y,"?#BBL)NQXN*ES&RD;4*ELIFGS'6&T*#ZG5YTZ0833Y?6X(CO_AFGLJJ#W.,=&&(RH1A?'BCLM9;R*FP&YX93C_P@[)D96?M9O`,DVFG@+>S;_JH#L7F`">S;\B3X`"L=;E<=;B+AK6Z#,*/I%T',@MT_"NF`\B[P4XRB)XU5P3Q3#`AD`<&%]NC6!/^P">7`@&VY/H&W"T.1Z?O9_%P0#FSJM?Y6\E\0.T%W)RGI>H`4`;?BVX)PH"`KSEGGDE/->(HPKX08`"`Y>/1Q!!!!!!!%!!!"RA!!!!1!!!!!!!!!$!!"1E2)5!!!!!!!!Q!!!!1!!!!!!!!!9A!!!(*YH'.A9-A4E'$[RV$XFY&*Y#O1)@W8A6H1D`%X!Q/HH]"B)-UI)!E5FPX,Q#[I$2<70K,,Q1!&KGS-(*)=BQ5ZQ$)=,2I-````Z`B[Z"J=R2%@/&.FFDS("!!59BE!!!!!!!!%!!!!"Q!!$D!!!!!)!!!!)6^O;6^-98.U3WZP>WZ0>WZJ<G>-6E.M98.T1WRV=X2F=A!!!^AA!)!!!!!!!1!)!$$`````!!%!!!!!!\Q!!!!:!"2!-0````]+36!A172E=G6T=Q!!#U!'!!21<X*U!!!21!-!#E.P<GZF9X2545]!!"B!5!!$!!!!!1!##E.P<GZF9X2J<WY!!!Z!=!!&"V*&53V326!!>1$R!!!!!!!!!!-51V..,62$5#V3<X6U:8)O<(:M;7)96'.Q5G^V>'6S,5.M;76O>#ZM>G.M98.T'E2F:CV51V!N5G^V>'6S)&*&53V326!O9X2M!#2!5!!"!!176%.1,6*P>82F=C"$<'FF<H1A2'&U91!!%U"Q!#!!!1!&!!>326%N5E61!!Z!=!!&"F.516265Q!!%%!Q`````Q:T>'&U>8-!!!R!-0````]$98*H!""!-0````]'=W^V=G.F!!"F!0%!!!!!!!!!!R2$5UUN6%.1,6*P>82F=CZM>GRJ9BB59X"3<X6U:8)N1WRJ:7ZU,GRW9WRB=X-?2'6G,62$5#V3<X6U:8)A5X2B>(6T)%2B>'%O9X2M!"!!5!!$!!A!#1!+!":!=!!3!!%!#QN4>'&U>8.2>76V:1"X!0%!!!!!!!!!!R2$5UUN6%.1,6*P>82F=CZM>GRJ9BB59X"3<X6U:8)N1WRJ:7ZU,GRW9WRB=X-;2'6G,62$5#V3<X6U:8)A5&6#,6.61CZD>'Q!*E"1!!)!"Q!-&F2$5#V3<X6U:8)A1WRJ:7ZU)%2B>'%!!".!=!!A!!%!$1!(5&6#,6.61A!31(!!"1J"=XFO9SV3:8.Q!!!51(!!%A!"!!M*5G6T=&&V:86F!!R!)1:T>'&U>8-!!!N!!Q!%9W^E:1!!%E"1!!-!%1!3!!I&:8*S<X)!=Q$R!!!!!!!!!!-51V..,62$5#V3<X6U:8)O<(:M;7)96'.Q5G^V>'6S,5.M;76O>#ZM>G.M98.T)E2F:CV51V!N5G^V>'6S)%&T?7ZD,6*F=X!A2'&U93ZD>'Q!'E"1!!1!#!!*!!I!%Q>$<(6T>'6S!"2!=!!:!!%!&!F3:8.Q28:F<H1!@!$R!!!!!!!!!!-51V..,62$5#V3<X6U:8)O<(:M;7)96'.Q5G^V>'6S,5.M;76O>#ZM>G.M98.T(52F:CV51V!N5G^V>'6S)%&475Z$,6*&5V!O9X2M!#B!5!!$!!]!%!!6&F2$5#V3<X6U:8)A1WRJ:7ZU)%2B>'%!!">!=!!A!!%!&A!+16.:4E-N5E645!!!,E"1!!1!!Q!'!!Y!&R^$5UUN6%.1,6*P>82F=DJ59X"3<X6U:8)N1WRJ:7ZU!!%!'!!!!!!!!!!;4&:$<'&T=V"S;8:B>'6%982B6'&C4X*E:8)!!!"")!#!!!!!!!)!"1!(!!!-!%!!!@````]!!!!"!!%!!!!(!!!!!!!!!!%!!!!#!!!!!Q!!!!1!!!!&!!!!"A!!!!!!!!!<4&:$<'&T=V"S;8:B>'6%982B6'FN:8.U97VQ!!!!'3!!A!!!!!!"!!5!"Q!!!1!!Z"&'Y!!!!!!!!!!G4&:$<'&T=V"S;8:B>'6%982B4'&T>%&Q='RJ:725;7VF=X2B<8!!!!!:)!#!!!!!!!%!"1!(!!!"!!$E%5<A!!!!!!!!!"J-6E.M98.T5(*J>G&U:52B>'&5?8"F2'6T9Q!!"%-A!)!!!!!!!1!)!$$`````!!%!!!!!"#=!!!!;!"2!-0````]+36!A172E=G6T=Q!!#U!'!!21<X*U!!!21!-!#E.P<GZF9X2545]!!"B!5!!$!!!!!1!##E.P<GZF9X2J<WY!!!Z!=!!&"V*&53V326!!>1$R!!!!!!!!!!-51V..,62$5#V3<X6U:8)O<(:M;7)96'.Q5G^V>'6S,5.M;76O>#ZM>G.M98.T'E2F:CV51V!N5G^V>'6S)&*&53V326!O9X2M!#2!5!!"!!176%.1,6*P>82F=C"$<'FF<H1A2'&U91!!%U"Q!#!!!1!&!!>326%N5E61!!Z!=!!&"F.516265Q!!%%!Q`````Q:T>'&U>8-!!!R!-0````]$98*H!""!-0````]'=W^V=G.F!!"F!0%!!!!!!!!!!R2$5UUN6%.1,6*P>82F=CZM>GRJ9BB59X"3<X6U:8)N1WRJ:7ZU,GRW9WRB=X-?2'6G,62$5#V3<X6U:8)A5X2B>(6T)%2B>'%O9X2M!"!!5!!$!!A!#1!+!":!=!!3!!%!#QN4>'&U>8.2>76V:1"X!0%!!!!!!!!!!R2$5UUN6%.1,6*P>82F=CZM>GRJ9BB59X"3<X6U:8)N1WRJ:7ZU,GRW9WRB=X-;2'6G,62$5#V3<X6U:8)A5&6#,6.61CZD>'Q!*E"1!!)!"Q!-&F2$5#V3<X6U:8)A1WRJ:7ZU)%2B>'%!!".!=!!A!!%!$1!(5&6#,6.61A!31(!!"1J"=XFO9SV3:8.Q!!!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!"*!5!!$!"!!%1!+"76S=G^S!'M!]1!!!!!!!!!$&%.443V51V!N5G^V>'6S,GRW<'FC'&2D=&*P>82F=CV$<'FF<H1O<(:D<'&T=S*%:79N6%.1,6*P>82F=C""=XFO9SV3:8.Q)%2B>'%O9X2M!")!5!!%!!A!#1!+!")!&%"Q!")!!1!4#6*F=X"2>76V:1"T!0%!!!!!!!!!!R2$5UUN6%.1,6*P>82F=CZM>GRJ9BB59X"3<X6U:8)N1WRJ:7ZU,GRW9WRB=X-C2'6G,62$5#V3<X6U:8)A18.Z<G-N5G6T=#"%982B,G.U<!!;1&!!"!!)!!E!#A!3"U.M>8.U:8)!&%"Q!"E!!1!6#6*F=X"&>G6O>!"]!0%!!!!!!!!!!R2$5UUN6%.1,6*P>82F=CZM>GRJ9BB59X"3<X6U:8)N1WRJ:7ZU,GRW9WRB=X->2'6G,62$5#V3<X6U:8)A16.:4E-N5E645#ZD>'Q!+%"1!!-!$Q!5!"976%.1,6*P>82F=C"$<'FF<H1A2'&U91!!&U"Q!#!!!1!8!!J"5VF/1SV326.1!!!O1&!!"!!$!!9!$A!9(U.443V51V!N5G^V>'6S/F2D=&*P>82F=CV$<'FF<H1!!1!:!!!!!!!!!"Z-6E.M98.T5(*J>G&U:52B>'&%:GRU2'&U96.J?G5!!!!:)!#!!!!!!!%!"1!$!!!"!!!!!!!7!!!!!!!!!"J-6E.M98.T5(*J>G&U:52B>'&%:GRU2'&U91!!"%YA!)!!!!!!'A!51$$`````#EF1)%&E:(*F=X-!!!N!"A!%5'^S>!!!%5!$!!J$<WZO:7.U6%V0!!!91&!!!Q!!!!%!!AJ$<WZO:7.U;7^O!!!/1(!!"1>326%N5E61!(5!]1!!!!!!!!!$&%.443V51V!N5G^V>'6S,GRW<'FC'&2D=&*P>82F=CV$<'FF<H1O<(:D<'&T=RJ%:79N6%.1,6*P>82F=C"326%N5E61,G.U<!!E1&!!!1!%&F2$5#V3<X6U:8)A1WRJ:7ZU)%2B>'%!!".!=!!A!!%!"1!(5E62,6*&5!!/1(!!"1:46%&566-!!""!-0````]'=X2B>(6T!!!-1$$`````!W&S:Q!11$$`````"H.P>8*D:1!!:1$R!!!!!!!!!!-51V..,62$5#V3<X6U:8)O<(:M;7)96'.Q5G^V>'6S,5.M;76O>#ZM>G.M98.T(E2F:CV51V!N5G^V>'6S)&.U982V=S"%982B,G.U<!!1!&!!!Q!)!!E!#A!71(!!%A!"!!M,5X2B>(6T586F>75!>Q$R!!!!!!!!!!-51V..,62$5#V3<X6U:8)O<(:M;7)96'.Q5G^V>'6S,5.M;76O>#ZM>G.M98.T'E2F:CV51V!N5G^V>'6S)&"61CV465)O9X2M!#:!5!!#!!=!$":51V!N5G^V>'6S)%.M;76O>#"%982B!!!41(!!)!!"!!U!"V"61CV465)!%E"Q!!5+18.Z<G-N5G6T=!!!$%!B"H.U982V=Q!!#U!$!!2D<W2F!!!31&!!!Q!1!"%!#A6F=H*P=A"L!0%!!!!!!!!!!R2$5UUN6%.1,6*P>82F=CZM>GRJ9BB59X"3<X6U:8)N1WRJ:7ZU,GRW9WRB=X-C2'6G,62$5#V3<X6U:8)A18.Z<G-N5G6T=#"%982B,G.U<!!3!&!!"!!)!!E!#A!3!"2!=!!3!!%!%QF3:8.Q586F>75!=Q$R!!!!!!!!!!-51V..,62$5#V3<X6U:8)O<(:M;7)96'.Q5G^V>'6S,5.M;76O>#ZM>G.M98.T)E2F:CV51V!N5G^V>'6S)%&T?7ZD,6*F=X!A2'&U93ZD>'Q!'E"1!!1!#!!*!!I!%A>$<(6T>'6S!"2!=!!:!!%!&1F3:8.Q28:F<H1!@!$R!!!!!!!!!!-51V..,62$5#V3<X6U:8)O<(:M;7)96'.Q5G^V>'6S,5.M;76O>#ZM>G.M98.T(52F:CV51V!N5G^V>'6S)%&475Z$,6*&5V!O9X2M!#B!5!!$!!]!&!!7&F2$5#V3<X6U:8)A1WRJ:7ZU)%2B>'%!!">!=!!A!!%!&Q!+16.:4E-N5E645!!!,E"1!!1!!Q!'!!Y!'"^$5UUN6%.1,6*P>82F=DJ59X"3<X6U:8)N1WRJ:7ZU!!%!'1!!!!FM<W.B<'BP=X4$6Q!![G!!!!!!!!!!!!!!!!!!!!!!!!!!&%Z*,ER7,E&M<#Z4<X6S9W60<GRZ!!!!&3!!A!!!!!!"!!1!)1!"!!!"!!!!!!!!!!1!,!!6!!!!"!!!!_E!!!!I!!!!!A!!"!!!!!!6!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!TM!!!J^?*S^6FN4UU!5`EJ[I]633CF1!1.71+7)YB6P+;5I+&$;]O#$IT6*G9[R[?3#/PLA4`8"(S#`1%^WU[<=""FLTEQHOTF\TL@HW`.N!7QB*D52#*5+W^F3I1A6__#0E-S8.\+6@$&<UGV,.?;V0;X_<K1C.`EYG^@K;M/C;6GLGG:[2;VV?)NOQ(H:UJ#5CP!"\31M:<"=S66WSE"=7PB&4^#UKJ:N!HV],&3.8?_<<BOSCP0$GTA%L]S3C3N6K]IARF'%1/:(!#G#FS$!Q3DXWL:67]8(@V7:YMZSNLSTT.*/5W6[S%+J$A?_H'%$0H2LRS.3?]?BP';<Z)/%1UQE:XZOS.G3;D9>-C<<R%1F]J:VB8B)M-62^#%15!V$.`$_P$CH$O(UMHN9%]3/XW8H!BUHTE_MV`(C\*D>4*_7/N+XC_8!'#59=1;DM%>"]@7]--90QSC`WMR4MZ2Z"]WS?E@1DY%44UK3^UJEL3DG&-6145::%0[C<FD!!,%8S?O.BCJ<F9UNO!>A%%E-N?<L?A/QOS%"'3Y"*Y)@J'++Z$(MK52L+IS1WT)9>K=3C(A&!LZA`]@![P?`2ZQ]]M("OM$I4G'%[%W0OX3,?EVE;]3G5>_L7KKI/-!$:-3,!PB_9IQ'ADP%)C<1+Y5AV,2>B+6PAF[S_)3KVUD9H/+,G-359#MVWC1DDQ)%K?G9''6QB5)%13W*V^XAR%HDQQSV-;`K<.@V.=-M!N[`V`#G'ZI;A[/J-\D?XNA=C-^*N[TT6.4-`Z!LPNE<\?UOM,>2^K:U33>YG7>Q%\@;OV`E=OX(.+YCC^O#^5EB+%[2,O-/P=E%IY==R40W[(WP2`O/O4;8$FS<5_Y.^`$5M)_]0I]>K`>0/P1_^5>*FDIE/?.+ZV0E4I41UJ8FA\ISZQL"!TR'`F1B[!(^50X#?!PHQ+X3*E15K)P(G+X3Q7P:G'N(:\QPTZBR-@(B/58U%*V&GDAX\-ZQ[;<`'93/E1S*+7MP&4;/CRD(*>T&0;RA$?M5H^U+,-M[8J#F]:+C0#%S!B1XSH4/4SP\D]T&+&?#VGV1LC6X,EC:QR2NE`)/5`1B*`ZP,I+#01!!!!#$!!%!!A!$!!1!!!")!"%!!!!!!"%!]1$F!!!!7Q!2!!!!!!!2!0%!Z1!!!'Y!%1!!!!!!%1$R!/5!!!#"A!#!!)!!!"%!]1$F%EVJ9X*P=W^G>#":95BF;3"632*.;7.S<X.P:H1A77&):7EA65E347FD=G^T<W:U)&FB3'6J)&6*!4!!5F.31QU+!!.-6E.$4%*76Q!!.U1!!!3Z!!!!)!!!.S1!!!!!!!!!!!!!!#!!!!!U!!!%J!!!!"Z-35*/!!!!!!!!!8B-6F.3!!!!!!!!!9R36&.(!!!!!!!!!;"$1V.5!!!!!!!!!<2-38:J!!!!!!!!!=B$4UZ1!!!!!!!!!>R544AQ!!!!!1!!!@"%2E24!!!!!!!!!BB-372T!!!!!!!!!CR735.%!!!!!A!!!E"W:8*T!!!!"!!!!HR41V.3!!!!!!!!!O"(1V"3!!!!!!!!!P2*1U^/!!!!!!!!!QBJ9WQU!!!!!!!!!RRJ9WQY!!!!!!!!!T"-37:Q!!!!!!!!!U2'5%6Y!!!!!!!!!VB'5%BC!!!!!!!!!WR'5&.&!!!!!!!!!Y"75%21!!!!!!!!!Z2-37*E!!!!!!!!![B#2%6Y!!!!!!!!!\R#2%BC!!!!!!!!!^"#2&.&!!!!!!!!!_273624!!!!!!!!!`B%6%B1!!!!!!!!"!R.65F%!!!!!!!!"#")36.5!!!!!!!!"$271V21!!!!!!!!"%B'6%&#!!!!!!!!"&Q!!!!!`````Q!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$A!!!!!!!!!!0````]!!!!!!!!!X!!!!!!!!!!!`````Q!!!!!!!!$Q!!!!!!!!!!$`````!!!!!!!!!0A!!!!!!!!!!0````]!!!!!!!!$B!!!!!!!!!!!`````Q!!!!!!!!/-!!!!!!!!!!,`````!!!!!!!!!\1!!!!!!!!!!0````]!!!!!!!!$T!!!!!!!!!!!`````Q!!!!!!!!1M!!!!!!!!!!$`````!!!!!!!!"$Q!!!!!!!!!!@````]!!!!!!!!&R!!!!!!!!!!#`````Q!!!!!!!!<E!!!!!!!!!!4`````!!!!!!!!"^Q!!!!!!!!!"`````]!!!!!!!!(]!!!!!!!!!!)`````Q!!!!!!!!A!!!!!!!!!!!H`````!!!!!!!!#"1!!!!!!!!!#P````]!!!!!!!!)*!!!!!!!!!!!`````Q!!!!!!!!AY!!!!!!!!!!$`````!!!!!!!!#&!!!!!!!!!!!0````]!!!!!!!!):!!!!!!!!!!!`````Q!!!!!!!!DI!!!!!!!!!!$`````!!!!!!!!#OQ!!!!!!!!!!0````]!!!!!!!!/]!!!!!!!!!!!`````Q!!!!!!!"()!!!!!!!!!!$`````!!!!!!!!%?1!!!!!!!!!!0````]!!!!!!!!E6!!!!!!!!!!!`````Q!!!!!!!#2=!!!!!!!!!!$`````!!!!!!!!*'1!!!!!!!!!!0````]!!!!!!!!E>!!!!!!!!!!!`````Q!!!!!!!#2]!!!!!!!!!!$`````!!!!!!!!*/1!!!!!!!!!!0````]!!!!!!!!E\!!!!!!!!!!!`````Q!!!!!!!$-A!!!!!!!!!!$`````!!!!!!!!-SA!!!!!!!!!!0````]!!!!!!!!T-!!!!!!!!!!!`````Q!!!!!!!$.=!!!!!!!!!)$`````!!!!!!!!.JQ!!!!!&&2D=&*P>82F=CV$<'FF<H1O9X2M!!!!!! + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!$P.5F.31QU+!!.-6E.$4%*76Q!!.R1!!!3Z!!!!)!!!.P1!!!!S!!!!!B2$5UUN6%.1,6*P>82F=CZM>GRJ9BB59X"3<X6U:8)N1WRJ:7ZU,GRW9WRB=X-!!!!!!+!A!)!!!$!!!#A!"!!!!!!%!!-!0!#]!"^!A!)!!!!!!1!"!!<`````!!!!!!!!!!!!!!!!%[^.L2377%C4E:^+E&Q0WQ!!!!Q!!!!1!!!!!'X(1F:YV:"!H*I:%-I2EDX5(9T:DQ#S"/G!#:DM_%*_!!!!!!!!!!$ZE)Q,["$)2)^J@?3$$1II!1!!!0`````5(9T:DQ#S"/G!#:DM_%*_!!!!%*-,"K&2&A@HO7PQS'ZY;V]!!!!%!!!!!!!!!I9!!5R71U-!!!!'!!*735R#!!!!!&"53$!!!!!&!!%!!1!!!!!#!!*735.$!!!!!!%;2'6G,62$5#V3<X6U:8)A5E62,6*&5#ZD>'Q!5&2)-!!!!#%!!1!$!!!;2'6G,62$5#V3<X6U:8)A5E62,6*&5#ZD>'Q!!!!#!!(`!!!!!1!"!!!!!!!/!!!!!!!!!!!!!!!!!!!!!!!#6EF$1Q!!!!!!!2J%:79N6%.1,6*P>82F=C"165)N5V6#,G.U<!"16%AQ!!!!)1!"!!-!!"J%:79N6%.1,6*P>82F=C"165)N5V6#,G.U<!!!!!)!!P]!!!!"!!%!!!!!!!Y!!!!!!!!!!!!!!!!!!!!!!!*735.$!!!!!!!"(E2F:CV51V!N5G^V>'6S)&.U982V=S"%982B,G.U<!"16%AQ!!!!*1!"!!-!!"Z%:79N6%.1,6*P>82F=C"4>'&U>8-A2'&U93ZD>'Q!!!!#!!0`!!!!!1!"!!!!!!!/!!!!!!!!!!!!!!!!!!!)!!!#6EF$1Q!!!!!!!2V%:79N6%.1,6*P>82F=C""5VF/1SV326.1,G.U<&"53$!!!!!E!!%!!Q!!(52F:CV51V!N5G^V>'6S)%&475Z$,6*&5V!O9X2M!!!!!A!%`Q!!!!%!!1!!!!!!$A!!!!!!!!!!!!!!!!!!!!!!!F:*1U-!!!!!!3*%:79N6%.1,6*P>82F=C""=XFO9SV3:8.Q)%2B>'%O9X2M!&"53$!!!!!J!!%!!Q!!)E2F:CV51V!N5G^V>'6S)%&T?7ZD,6*F=X!A2'&U93ZD>'Q!!!!#!!8`!!!!!1!"!!!!!!!/!!!!!!!!!!!!!!!!!!!)!!!$!!!!!!!#!!9!!!!!!#1!!!!=?*RD9'>A<W#YQ!$%D!Z-$6R!&F-#E0?"A9%"!&R,"JY!!!!5!!!!%HC=9W"HY'0A1))-!!,<!%9!!!"<!!!".XC=9W$!"0_"!%AR-D!Q@103L'DC9"L'JC<!:3YOO[$CT%$-!H5H:UZ_=G*/2HZRS?&Q"I:8#>BU!<WV"UATA<2"D2#$3$%^!/)4["LYI@1&*$%!#/QPA1!!!!!-!!&73524!!!!!!!$!!!"B!!!!UBYH#NA:'$).,9Q/Q#EG9&9A;'")4E`*:78!=BHA)!X4!Q5AQ#I?6JIYI9($K="A2[`@!O9X_WCQN*=I],$6-LXPU3&)_!&3,$Z#-@B<I_=YYYW9#5=71R:$!(`!T/;D`#!>30JTW)!;B-"9;B/(D4T@629$!]U6#ITF!I@<T2BB,AC%+K9Z4""`5$X!=XA/0C1J8=C7+!42(;'-%I=>W(5%1/S?XE9!R(O2H.@7$@16VG-94$Z<L<D$BIA^H%(%1C6!;%K)&1"C.I")O)/9QP8N;`P\7)&UGR)9AZ1X!$%I(C&94U'2A;1BZG!M!.)``H``\].5)1*+K9)&1/R<U,:'EB[@E,&'"HMY7+TY8I19N&1-1=E^Y$M!.GU&UBL1.G(I?Q'K0N"9KR!1S:!W4R!>A'5,1RE<Y#SJ9"M!3B<%=D_!'7L1>E(I,'+4DP\O\ACBRUI8=03O"11*_=7'"DI66=([Z3'[W4[V/I5J5&1,1/$*%C_),E-BT1$!(3WF89!!!%:!!!"L(C==W"A9-AUND"T9'2A9!:C"99'BO4]F&1'*&$#S)!4B)=VPR(I,F&2[+Z2E?GM5?(J,&(B!.)MH39K`]X_G\]!+7I_QN&ZU0"!]U^'`CE(_6M8!96[X6E[8629?NV9/FF5_,@\MRA?3,0W9Q(,.Q(FOU'3(ES>0CIMX4QKP9&-H3)KX1&-BA?M!ZG!CEI4?^WZA!<Q^,K"+)ZO@S[AF"]83-KN'S4OQ1,5S^0NI],2']D3'1*5%M!#UAWSIF3:E*)$LZE[4D1@%9C,0YT<\S#Q^P7^8;$A11YC"S"79J!!CT%"M3)1``H``\]$6.\:X]5608R";K7!/$GXQ-"!L\I[7+=U8#@4JV;H+!W#;BE9!.V#8II!!!!!!!$T!!!"<(C==W"A9-AUND"D9'2A9!:C"99'BO4]F&1'*'$#S)!4B)=VPR(I,F&2[+Z2E?GM5?(J,&(B!.)MH39K9@`.8Y$5."`B;$X!X^I+:0;[MX3[K,$UOL&UMKDQ<X>H3?NU9_E'C8AQ>@KIM(4TK01'-H7+K(1\-(5[-A&F?(I^O)!S0.U_+BS^A6S>)3I=X1Z=H9Z=%$E7B"Q,2)[FUZ%&HZTBA?9D!H(RBS(O8`P[XC[1^Z#^[!$%75!2E"A4!SB-'"D_`0``XQ%K\_TPYII?0C#VEE#=8*"=JF>>(;R4'K[4[6/L5Z1'1<6!/1#,EUQ@!!!!!!YA!9!!!!!'-D!O-#YR!!!!!!!!$#!!A!!!!!1S-#YQ!!!!!!YA!9!!!!!'-D!O-#YR!!!!!!!!$#!!A!!!!!1S-#YQ!!!!!!YA!9!!!!!'-D!O-#YR!!!!!!!!&!%!!!$V6T7#?3;CD#ZT5EY'34G>!!!!$1!!!!!!!!!!!!!!!!!!!!!!!!#!````````````D-@``^N<```<R```WV```^T@```````(.IC0WN<<N]<7W9`;VNOXWTH9N``````ZOCU@^LLFP`?[;<`WOOW`_9INP```````````A!!!!9!$Q!'!$`!"A$`]!9$``Q'!``]"A0``!9$``Q'!``]"A0``!@````]!!!)!``````````````````````O\O\O\O\O\O\O\O\O\O\`\O\O\M!#\!,M!#\O\O\O`_\O\O\M,M,M,#\#\O\O\P`O\O\O\#\#\OQ!,O\O\O\`\O\O\OQOQOQM,O\O\O\O`_\O\O\M,OQ#\#\O\O\O\P`O\O\O\O\O\O\O\O\O\O\`\!!O\!,M,M,!!M!#Q!,O`_QOQM,M,#\#\#\#\M,M,P`M!#\#\#QOQOQOQ#\!!O\`\#\#QOQM,M,M,M,OQOQO`_QOQOQ#\M!O\#\!!M,M,P`O\O\O\O\O\O\O\O\O\O\`\O\!,M,OQM!#QOQM!#\O`_\M,M,#\M,#\M!M,M,O\P`O\#\OQO\#Q#\#Q#\#\O\`\OQOQM,OQM,OQOQOQO\O`_\OQ#\!!M,!!M,M,M,O\P`O\O\O\O\O\O\O\O\O\O\``````````````````````]!!!!!!!!!OQ!!!!!!!!$`!!!!!!!!P``\!!!!!!!!`Q!!!!!!P`O\P`M!!!!!!0]!!!!!P`O\O\O`_Q!!!!$`!!!!$`O\O\O\O\`Q!!!!`Q!!!!`\O\O\O\O`]!!!!0]!!!!0``O\O\O```!!!!$`!!!!$```_\O````Q!!!!`Q!!!!``````````]!!!!0]!!!!0``````````!!!!$`````````````````````]!!!1!````````````````````````````````````````````AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$``_$AY/$AY/$AQ!!!)/$!!#$AQ!!!)/$AY/$AY/$AY0``Y/$AY/$AY/$AQ#$AQ#$AQ#$!)/$!)/$AY/$AY/$A```AY/$AY/$AY/$!)/$!)/$AY-!!!#$AY/$AY/$AY/$``_$AY/$AY/$AY-!AY-!AY-!AQ#$AY/$AY/$AY/$AY0``Y/$AY/$AY/$AQ#$AY-!!)/$!)/$AY/$AY/$AY/$A```AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$``_$!!!!AY/$!!#$AQ#$AQ#$!!!!AQ!!!)-!!!#$AY0``Y-!AY-!AQ#$AQ#$!)/$!)/$!)/$!)/$AQ#$AQ#$A```AQ!!!)/$!)/$!)-!AY-!AY-!AY-!!)/$!!!!AY/$``_$!)/$!)-!AY-!AQ#$AQ#$AQ#$AQ#$AY-!AY-!AY0``Y-!AY-!AY-!!)/$AQ!!AY/$!)/$!!!!AQ#$AQ#$A```AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$``_$AY/$!!#$AQ#$AY-!AQ!!!)-!AY-!AQ!!!)/$AY0``Y/$AQ#$AQ#$!)/$AQ#$!)/$AQ!!AQ#$AQ#$AY/$A```AY/$!)/$AY-!AY/$!)-!!)/$!)-!!)/$!)/$AY/$``_$AY-!AY-!AQ#$AY-!AQ#$AY-!AY-!AY-!AY/$AY0``Y/$AY-!!)/$!!!!AQ#$!!!!AQ#$AQ#$AQ#$AY/$A```AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$AY/$`````````````````````````````````````````````Q!!!!!!!!!!!!!!!!!!76E!!!!!!!!!!!!!!!!!!0``!!!!!!!!!!!!!!!!7;WNL;V:!!!!!!!!!!!!!!!!``]!!!!!!!!!!!!!7;WNAY/$A[WN71!!!!!!!!!!!!$``Q!!!!!!!!!!7;WNAY/$AY/$AY/NL6E!!!!!!!!!!0``!!!!!!!!!+WNAY/$AY/$AY/$AY/$L;U!!!!!!!!!``]!!!!!!!!!L;W$AY/$AY/$AY/$AY02L1!!!!!!!!$``Q!!!!!!!!#NL;WNAY/$AY/$AY02U>'N!!!!!!!!!0``!!!!!!!!!+WNL;WNL9/$AY02U>(2U;U!!!!!!!!!``]!!!!!!!!!L;WNL;WNL;WNU>(2U>(2L1!!!!!!!!$``Q!!!!!!!!#NL;WNL;WNL>(2U>(2U>'N!!!!!!!!!0```````````````````````````````````````````Q!!!N)!!5:13&!!!!!&!!*52%.$!!!!!2J%:79N6%.1,6*P>82F=C"326%N5E61,G.U<!"16%AQ!!!!)1!"!!-!!"J%:79N6%.1,6*P>82F=C"326%N5E61,G.U<!!!!!)!!0]!!!!"!!%!!!!!!!]!!!!!!!!!!!!!!!!!!!!!!!!!!1!!!'N16%AQ!!!!!!!!!!!!!F2%1U-!!!!!!!%?2'6G,62$5#V3<X6U:8)A5X2B>(6T)%2B>'%O9X2M!&"53$!!!!!F!!%!!Q!!(E2F:CV51V!N5G^V>'6S)&.U982V=S"%982B,G.U<!!!!!)!!0]!!!!"!!%!!!!!!!]!!!!!!!!!!!!!!!!!!!A!!!!!!1!!!):16%AQ!!!!!!!!!!!!!F2%1U-!!!!!!!%;2'6G,62$5#V3<X6U:8)A5&6#,6.61CZD>'Q!5&2)-!!!!#%!!1!$!!!;2'6G,62$5#V3<X6U:8)A5&6#,6.61CZD>'Q!!!!#!!$`!!!!!1!"!!!!!!!0!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!!U5&2)-!!!!!!!!!!!!!*52%.$!!!!!!!"(52F:CV51V!N5G^V>'6S)%&475Z$,6*&5V!O9X2M5&2)-!!!!#1!!1!$!!!>2'6G,62$5#V3<X6U:8)A16.:4E-N5E645#ZD>'Q!!!!#!!$`!!!!!1!"!!!!!!!0!!!!!!!!!!!!!!!!!!!!!!!!!!%!!!#;5&2)-!!!!!!!!!!!!!*52%.$!!!!!!%C2'6G,62$5#V3<X6U:8)A18.Z<G-N5G6T=#"%982B,G.U<!"16%AQ!!!!+1!"!!-!!#*%:79N6%.1,6*P>82F=C""=XFO9SV3:8.Q)%2B>'%O9X2M!!!!!A!!`Q!!!!%!!1!!!!!!$Q!!!!!!!!!!!!!!!!!!#!!!!!!#!!!$"Q!!!X^16%AQ!!!!!!!!!!!!!Q!!!!!!'!!!!!5!!!!!!!!!!!!!!!!!!!!!!!!!!!!!%F=!!&\@?*TN8!VU'^76PG^'3?3@R,*D/X;4Y,%D/S'RH91%!M%E=3QH*/4(PZ#%1+*)3CSC3)YEZ[>JC*OK,L"E+=O'&,9=OD_FJQMN\1F>UCVHA7))L,;\9<>,NY7O)=PBJQ7[8>I.BU;?P7^'I`H8C%&79>PE["U>??Z\<^[^^XPXXG`?!.T]MKO''9><5U"=P]5P'V*1\%]3A.%7*[4`.9W!KZ`]$EBF,5H"+G?`[W6GH-R+1;E`W?2=Z,E>`BOPZM`RRZD:Z&L8;XDJ:&=N>F;=AL*%%E[6LX?0O>S0TH,@0EHKNBRGOU[1=7;,O_[#]U1CAC.#9BZNSVP)/""0P=/2;/DSBA-*.`WVK-6:+`2:F!+8*TEV[B[<CTXCW$]5OC2HG$<SAN1F9*@TY04JU\*1O3D5*%TD3J2BWA#9D?2-&JE+4X*WT$X7,-A5#T)YTE:J(%`>_$VU\F2)+TL>EX3B+-I>3N]SF:8E5KM%O@0HT[-=NGGZA225OM>7/WO>L`F`.GFK>_*R)%!3Z[!.\BT>Y?4X]X'GBD38<[,+%#1K5"_.SYGL&\`XJG"_)MHM"!=>E=%V/1DX#.JQ3.JI%\3R2N"'E?>W&]DKO->#(2\(;-0MDN"1,"[)=J(>H#`ED=7YQ7DQA$=?Y0T?O&?PK'M]S>JF>"(I9)+21"5YS(Y96#Z[""Z[[#&="WRFU25I/M-^FJ%LR^M:AHBGY@XSQN.2Z16=C1PI_;"P$VX%RO7-:,M/;LM-+VBQM^"/%^IFMD6@BN:=\N*/6'8.FU_!.6_"2H;LRJIB2,<$U3S7O5Q5EKU:LQ?S$U*::+Z%G7.+;U;:%-I=N<<GKX474'5VVHTPP@?KZ&!:ST07\#"%MG<_)H_27P-X_,>*%PZ%M'<21PN2(Z\E)GK6B0LU/NAAL0]5;@W`<'S`""7Q4G63/A6QEU'UY?,WXKW</FJ[/HO\^,KYWZ/M7?Q?)^B\7LO6Q-*3G#0>[OO=@FX`$)5O>Y^Z:;&GK%'887/GCZ)5H"1^1WH?U!Y<F+N@8I>XTLBKU\JZBQK,XXG8M\;I4J\!+?TM;L7<6=-EH-&;;>J]O:FGPY+4P]I^6CN0PJR`!R<BQ/H*PW=IC<K^4X#UK8]O/BJ,(9WCE$]&^[/VN.%>Y4=YCU>AK["$6N,B6T-_Z(GU<HV;C@SP+5,+*G`K2;-.V8U>83U^E3'+1RWB9#!=ZTR[^/F.-8^,Q>$F])T6L:@]^!TUK1#2?539T#;61;8H5J2^,GG$=D?!TIS9<_FRTY(`(Y-O+^RDPKX"07H76LD(0)LK;.Q+D>N!2D_(B(Y#\D(0#/V&WL,R$/YRXV0BHD22*?YRD_=@^ZAT2LCX!<Y$.ZFD'0.^,?\B^1"0)U[9S`S^&P>1:A0+X'3*?]Q0>,B(:3VRDXESIQQT^"M@Z>`C@QT<"02DU_D(RN0IRW`H,`!01)=+`>A$ZOCX0#>D(7UI[AH%"DM0I.0I&-)?N!3`SX7,SRY3B24A>QH-1?DJ-!=`^H!?Q9`^L(XQ9Y`9"4`G,I7X4@7*XD:*BE$WG!3"`YRT?:.M6%%A_`EM%$AP"QC=EI\$>*D((N>B(KF.B_13ZL%*WZBHAH@M&QXRDF12DR8?M3.[P".G<)6X\*=-]'[S+NJD(R4;EU,\4;%^H5%^^AYN[AH46;)??W@_59]^99"[:"5J*^XG#-<_K3\;I_&Q!VG62?9O8<28DO-U3/.E14XWS`JILVQ;+QPKM8><IBZ`F(_9O)ESZE/D0?V0\FQE*#U>`!5Y"S.K?`U\@X+'(P596--F/;,?J%!U'N&[#^\IYXK\L5&`P1XO5.ONQ2K>U>DN>/T[".S6Q:Q+%_2AP[^%DGPJ1LGWY6_?4L'0F>@1P'[UFC?2NN5LB$FTQ8$<QN5L/*]XT(F^PM"AH*._XRW*\P0'AZ%Q>T!9$@CZX>()0O\[>41H#RQ)2I:CI=-I&AI&`+V=@ST!R1?#-:690-,Z!\[A0]!&>X0?]'&O^V$92``C$18DB\H91'1IZ/>W"<B>BQ=RV]-BACAU%/!#>0_A/;!QF:AY=A4`%K8DNR98^Q4X$-2<@+'A<[]AI,O<3$A?D93YC.A@SG.`A_AP):S(HYM&1A&@H%JV(BI-?8(54CINC')HCN^P]%<$Q@!?Y3`#,'BX/0&IX$=5Z`9&QE-=XC_X,R).K'\>OQPD2`&?;-_N248/<9X,J[D#*@;MU*Y4WF>EY(B#"2S3P;C!YR_IR;:R1ZVFWQ?/*YX#J2(9$[?SA-"4OH"J0UI>2Q]TFXF;"AZJ\PNRI/031.G1YY@[?'E1PKB"$A/H?#9,=HS04V,E_$K5Q7<YC3*?[E;VY(D#^P5D;)':]&WV'M9-A9/KI=E#/"RJY*A=CQR&@6JN9!DT+LI`*L>F9M^/WP.=X%371$(?Y%^`^AL?Y.$)VY1IRC&&,B??F[/9#W=6XZ^4@(^7%>XA,<S'YVTG(CN2)&1F4-<Q^<BU"`_L8F0F(61[%G\[7W<CJ3HW0'JXK8NMA4DRJ]1/'?T1I6K(40D&=K.VYKJ>#5S#%S[JJ[WL1<+A"H([GCO"Z`F%07WF+`_(8KE-X@Z,A[%6+,M*%CL>'&H,[RFL;4T#+"(UZR+#PI=9);J/A!:`)/;,"H=&9I,,2[,"09A>C&]:!+#Q=F$%EE]P@$G<2NDU)H5B<PG4D)NOKPT$M)(`V\2P:(+*@T0UD1<UD:57PM&1XX!H'HQ2P^9R8EWR0`9H(>2CCV577Q;.Y,/Q7.KPAZ%MVB.P^-PO^O_C'T"#JT7L*'/:"6/-UA6_5*%OB"1WBTW^B$V>Y2ZDB:YKBWF0M\#HO39^221^\68X^"/R*S5%6%-2,G':IK>*EP1(C_3?0FCI_.[K_.[C!))8V<\S(TJ@G9+4$FD[SE^6S#IZSIO3I\S#VEA6+:BA-'<I%2S^Y.0L&E6.)]Q).URXS`JD#%>.$6)7M2HX?.R!UE\3D,H;*H8E_9`53>9+4F+FXE!;=H)3OI(%P@'BG-:0JK<9J$]ZO4<M(KN7>$U>CM%.UX-J:,I6?6CC&?4-##(_H^"5KNVD68*I/A64]BF+PE(?G'45>I%,5:N?5E^<%<5^>?``3A`Q:J?_F`OF(\88D#_A4@`)U+;@F]0HO24_B978\,KPJ\_4G\@F5D(5F5T=ZRO+UN!:P[^JX^#,6`A'!L[^_\T2P:@3]$A9^A>^F.\Q:HQ",YU0?/.=/+,JZ.0L)-59^I\=4*=@FXG4QPK=,T]XZ/2`Q,^00_HFR[$LG_GA#W:ANN:"FKG$LI@.+3;LK)ORCLI?U5>>-T$KGJ08K!P(_:9YTA&&E$1>RZEHD)-DZ#O[_T;OV<!WPKOC)Z%W4@8KQQ]`R&'R&2=,8?1W"QXP]">FFP#IHD;$:DFX.S_H@%>:4HEW(6=V,C_29QL5`).5]R,>_S2`A@_F6PN`;;Z^#]B-;^Y),F%D@V5AT@^VA44`.XH8`.@N;PYB9]W8KD2`5KHZ8[,@T^"K`J3ZZCMN.?^P]%<X[,8_F1*J`<Y#;@X_P'P^,_RK`;P'7J]K;.VA&[$?DB_ZA\?6>;TL2/FJO*/]=:?T.XV6@YKZ+"%;-V&_OY<19-<.#9V6/?Y6!K(20219-G#9?%N#9\7_`!%@H=VF34Y*$19\7WG4U'"R]N@99H.`LF4H4F'>:1J#9QI#Q+TU8-B#,;&2F)81M/)5(!;=1G_+,=["S3CVTW19D9I,/.5_ET(.,J.2:M"EO.2-RFSBH3WUCY8W;LEA77(.:&2/!*.2:9@*K,<":-SQTW45W'1S;KW:D!0]QW3WFMGY/M.EN/%?_9+7S6AR95T'3PN-RCK\4%;\+:02^E=GY`?<UJ7LG9T.1LN&;0US=(CMG9QV%]"EL,8$:&RLA]F9^T'9D05WG9TL<$):`KR-RJ[*9T)'#M2E"00.:.TS#7)S^NJE-E*G4%<A$ZL*K&!R'6OS-REX4B#4M8V#G)S<]M:EX*QX*G.(1:G-H4;:$+^BV8@L(R#4-4U<E\%Z+Z02-X&-2O`%-2F^`^_:D(Z$G_\[)Z.BTU%KMT-:D`(PUY^=V6QM-2EOT.<;N"8.*20):#QN5'8T]A*6.K`)?W6TG>X+ZJ8'F=UK64V\LL+?@9;`Q,_OV@[F%]2ET#_1ZB=5300.?>>]CVX.NRJLPFKF_>F+T<_/@O`3;LZO!JA-LE";LS_1VBPSLP5Z>L8O.N<[$$-GAXL\'374M>_!S;D2-2H0J*G-]8>2@C:=J4Z(^+QZE\%[5T1Y;85S,89Y\'OBB);?SXB"J#5IFS'7^8](CW&GBMB9LT`W]E';F*"K?KV1F6H->]RIA"?6;\&:8)N;8!ODF;1L14_S^.@%)W(J.@S->AVB7HI.Y3QOD6.\O+`?@!W87E33UHY\J;N`>5NP`WL^S<Y'/S@\ZNAYW?@/Z]G_RI^RMK`*^MG_";K4@4-6*`O7JI_V#,-YI4X:N]<_S<[-%_2WOA]HO4:D;_HC/VSL0_^X5(0?$^<HGT'#[YT0_M7MT`L"2I/T@A>T//M(GQQ9IVF3S:=2TD8P%.L$]OHG<NUJPZDGF"`U4=$JZH\D5X[2<+@]Y(J>M4?#5M0:4PH"$<J4@B%=:TC(5X[Q66`LD?2QSA^ON$\F^RP_,@Z"O&'I^4)3$"[730(FO*5=U:$C=-1="N@GG(;5^!L"JT%N$E>NU/*QKQUI(-YH&(\_9U$B=>N1_!5$7HSW!B"(J(._<`%P1*S5KQ(R^LT4YK2<$X*X;GBRUJNPE#.^RC"XGT5N4PI.1/\/('BR=LU"S&WCYL6)7'D^1HMI!X6EKQ\K<N-1YO4'`%->W7Z)C%-C'S&/<N*"81+\0:G.%#=X[[!OA?/=T)%1*TPU5*@)A2!H/[U*]?@Z._&?=F:&;Z&$5I6F"3S"7UB-L9804FS&B2QJ4-:&0F?9D)M=T8@'27[VG8'29]9:6ZUSTS:B::\^"GK`!E[JN4]Y-257ML^!GI]730-R5]X$4HO;DRNJ(PT7A?>XD480K44P6WA?N<Y%@6_D_>XZL\#10183_E#"N"\-O^:PM;PV<RBLP>[MQI,?4D^S"X=96&A;>.7"(6*98)JB]8)-2V7:7]1],'[WKL"E.IP?PP;_`FZ^3,T`IV:8)'KHOB)TK+\--;GO#+N13KML^#KX<L7;J6L+#)Z_6FN,]:OPVJ*=7$F;3_HJ\'\J[42Y3V,!4CVFNYU%9E]_%YC"DZ&!"'UH%,?I;CG.CN2BLV2,;9::M!NO5+=/_QLUFC2Y2:^18!&8KXVPT0Z<EBD4NS4"K]:*R77QT,*S]JJ"5E&H<1FFZQW3CC<6_QV*MVQT_95OE;#45^6-XJG!GMG\2D74*1AR(P/E!.\4*2+54&_J>H?.T+^UC51LDL.3'C><T?48_E3C62IL7]XE@?N%9C(`%H]1ZCP?=NC07J%WBW8]KXQ!JKMTXF:,O,-OPZPC(6EIYVVOOQ.::'>X_*,"\D$8<(?ASY!@74KMKLX05_]8P3G'&@W=,O'\1*_X$+E:D%HG-6F\DL8<YIZ)/"Q1(LT6%RC4$>]&#3>BQ-L<G3E'A=N^]OM(T>_*ZD4Q^EP6\U3L&^JKI6UAPR/N20MO3''CKH?C4:W!>[*.-`*]0QT$E,E8-W5[TR^'K<OFS-Z1RK8T`'%=ZWZJH'TP2#P8?`[Q(%7;PR/NQNLT`Z.`%R["IYI31B>KR:_=\',I5/X]2>A,X?IT2#X'>FO#?OD0M99AW7X@RMW[RQ!:#CU*\8/!66!'48".^DC=$C$%YIQ5CS@CD;W,>K@\,EUR#]5(\]3(!=6ITA8U9="3\/W**Z\!XL!V?I3V&#`BB%PK;3M^944OUT_-*&Z+&6*07`7FG1!*:\.)@$326=TG%J3@<X]WOX+@T3\6<%J3T'*60P?5P/J6OHQO8Y]G-J@JA+9%<\`>/KTYH!#_035CR-QX@5[P'Q&(@:,S)G;J/^8!-M==C3V?]S>;]\IOLNXPDQ:C_NI)YSZ-FMQU&C:,:JLSH35T=_VGS6P%&Q`,_@%#Z60-4$7&M>63LT.1]?U))#IIKT'(-L?FYH&,C53V<X6%`+KVD6`:M?MTHSDMGPG*QKZ:PQ@MGGU8O\QK\'J'\'LCI+F?2#W$S0.NX+XR9`1X30^T^LI^`(0<[KAJBC)_<WAA%IM`=Q0!,X;#YF_W,FS>/,ND+;DS>&4]CWM>LF3J=ZWTU`5!RG=E">8/"ZS`(8UJ]^,ZU1U:S=1ZC*!.\PPLH$8`"VYFXX1!!!!!"!!!!=9!!!!%!!!!!!!!!!Q!!5*%3&!!!!!!!!-!!!!%!!!!!!!!!')!!!"S?*RD9'$)%Z"A_M>1^Z?"3?!LE#(^FY&:U)`R.Q-$JZ`!93$.+#!*&*<^S]!OK!U7VD[CS]%!";JMD"S3()=&/=!S(#U;$0```_@Y?O1;8-52(TB4::9]BQ1!&'):!!!!!!!!"!!!!!=!!!YQ!!!!#!!!!#&@<GF@4'&T>%NO<X>O4X>O;7ZH4&:$<'&T=U.M>8.U:8)!!!09)!#!!!!!!!%!#!!Q`````Q!"!!!!!!/]!!!!'1!51$$`````#EF1)%&E:(*F=X-!!!N!"A!%5'^S>!!!%5!$!!J$<WZO:7.U6%V0!!!91&!!!Q!!!!%!!AJ$<WZO:7.U;7^O!!!/1(!!"1>326%N5E61!(5!]1!!!!!!!!!$&%.443V51V!N5G^V>'6S,GRW<'FC'&2D=&*P>82F=CV$<'FF<H1O<(:D<'&T=RJ%:79N6%.1,6*P>82F=C"326%N5E61,G.U<!!E1&!!!1!%&F2$5#V3<X6U:8)A1WRJ:7ZU)%2B>'%!!".!=!!A!!%!"1!(5E62,6*&5!!/1(!!"1:46%&566-!!""!-0````]'=X2B>(6T!!!-1$$`````!W&S:Q!11$$`````"H.P>8*D:1!!:1$R!!!!!!!!!!-51V..,62$5#V3<X6U:8)O<(:M;7)96'.Q5G^V>'6S,5.M;76O>#ZM>G.M98.T(E2F:CV51V!N5G^V>'6S)&.U982V=S"%982B,G.U<!!1!&!!!Q!)!!E!#A!71(!!%A!"!!M,5X2B>(6T586F>75!>Q$R!!!!!!!!!!-51V..,62$5#V3<X6U:8)O<(:M;7)96'.Q5G^V>'6S,5.M;76O>#ZM>G.M98.T'E2F:CV51V!N5G^V>'6S)&"61CV465)O9X2M!#:!5!!#!!=!$":51V!N5G^V>'6S)%.M;76O>#"%982B!!!41(!!)!!"!!U!"V"61CV465)!%E"Q!!5+18.Z<G-N5G6T=!!!&%"Q!")!!1!,#6*F=X"2>76V:1!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!"*!5!!$!"%!%A!+"76S=G^S!(-!]1!!!!!!!!!$&%.443V51V!N5G^V>'6S,GRW<'FC'&2D=&*P>82F=CV$<'FF<H1O<(:D<'&T=S*%:79N6%.1,6*P>82F=C""=XFO9SV3:8.Q)%2B>'%O9X2M!"J!5!!%!!A!#1!+!"-(1WRV=X2F=A!51(!!'1!"!"1*5G6T=%6W:7ZU!(Q!]1!!!!!!!!!$&%.443V51V!N5G^V>'6S,GRW<'FC'&2D=&*P>82F=CV$<'FF<H1O<(:D<'&T=RV%:79N6%.1,6*P>82F=C""5VF/1SV326.1,G.U<!!I1&!!!Q!0!"!!&2:51V!N5G^V>'6S)%.M;76O>#"%982B!!!81(!!)!!"!"9!#E&475Z$,6*&5V!!!#Z!5!!%!!-!"A!/!"=@1V..,62$5#V3<X6U:8)[6'.Q5G^V>'6S,5.M;76O>!!"!"A!!!!!!!!!'ER71WRB=X.1=GFW982F2'&U962B9E^S:'6S!!!!13!!A!!!!!!#!!5!"Q!!$!"!!!(`````!!!!!1!"!!!!"Q!!!!!!!!!"!!!!!A!!!!-!!!!%!!!!"1!!!!9!!!!!!!!!'UR71WRB=X.1=GFW982F2'&U962J<76T>'&N=!!!!"EA!)!!!!!!!1!&!!=!!!%!!/122O!!!!!!!!!!*ER71WRB=X.1=GFW982F2'&U95RB=X2"=("M;76E6'FN:8.U97VQ!!!!'3!!A!!!!!!"!!5!"Q!!!1!!Z"&'Y!!!!!!!!!!;4&:$<'&T=V"S;8:B>'6%982B6(FQ:52F=W-!!!2$)!#!!!!!!!%!#!!Q`````Q!"!!!!!!1H!!!!'A!51$$`````#EF1)%&E:(*F=X-!!!N!"A!%5'^S>!!!%5!$!!J$<WZO:7.U6%V0!!!91&!!!Q!!!!%!!AJ$<WZO:7.U;7^O!!!/1(!!"1>326%N5E61!(5!]1!!!!!!!!!$&%.443V51V!N5G^V>'6S,GRW<'FC'&2D=&*P>82F=CV$<'FF<H1O<(:D<'&T=RJ%:79N6%.1,6*P>82F=C"326%N5E61,G.U<!!E1&!!!1!%&F2$5#V3<X6U:8)A1WRJ:7ZU)%2B>'%!!".!=!!A!!%!"1!(5E62,6*&5!!/1(!!"1:46%&566-!!""!-0````]'=X2B>(6T!!!-1$$`````!W&S:Q!11$$`````"H.P>8*D:1!!:1$R!!!!!!!!!!-51V..,62$5#V3<X6U:8)O<(:M;7)96'.Q5G^V>'6S,5.M;76O>#ZM>G.M98.T(E2F:CV51V!N5G^V>'6S)&.U982V=S"%982B,G.U<!!1!&!!!Q!)!!E!#A!71(!!%A!"!!M,5X2B>(6T586F>75!>Q$R!!!!!!!!!!-51V..,62$5#V3<X6U:8)O<(:M;7)96'.Q5G^V>'6S,5.M;76O>#ZM>G.M98.T'E2F:CV51V!N5G^V>'6S)&"61CV465)O9X2M!#:!5!!#!!=!$":51V!N5G^V>'6S)%.M;76O>#"%982B!!!41(!!)!!"!!U!"V"61CV465)!%E"Q!!5+18.Z<G-N5G6T=!!!$%!B"H.U982V=Q!!#U!$!!2D<W2F!!!31&!!!Q!1!"%!#A6F=H*P=A"L!0%!!!!!!!!!!R2$5UUN6%.1,6*P>82F=CZM>GRJ9BB59X"3<X6U:8)N1WRJ:7ZU,GRW9WRB=X-C2'6G,62$5#V3<X6U:8)A18.Z<G-N5G6T=#"%982B,G.U<!!3!&!!"!!)!!E!#A!3!"2!=!!3!!%!%QF3:8.Q586F>75!=Q$R!!!!!!!!!!-51V..,62$5#V3<X6U:8)O<(:M;7)96'.Q5G^V>'6S,5.M;76O>#ZM>G.M98.T)E2F:CV51V!N5G^V>'6S)%&T?7ZD,6*F=X!A2'&U93ZD>'Q!'E"1!!1!#!!*!!I!%A>$<(6T>'6S!"2!=!!:!!%!&1F3:8.Q28:F<H1!@!$R!!!!!!!!!!-51V..,62$5#V3<X6U:8)O<(:M;7)96'.Q5G^V>'6S,5.M;76O>#ZM>G.M98.T(52F:CV51V!N5G^V>'6S)%&475Z$,6*&5V!O9X2M!#B!5!!$!!]!&!!7&F2$5#V3<X6U:8)A1WRJ:7ZU)%2B>'%!!">!=!!A!!%!&Q!+16.:4E-N5E645!!!,E"1!!1!!Q!'!!Y!'"^$5UUN6%.1,6*P>82F=DJ59X"3<X6U:8)N1WRJ:7ZU!!%!'1!!!!!!!!!?4&:$<'&T=V"S;8:B>'6%982B2':M>%2B>'&4;8JF!!!!'3!!A!!!!!!"!!5!!Q!!!1!!!!!!&A!!!!!!!!!;4&:$<'&T=V"S;8:B>'6%982B2':M>%2B>'%!!!2/)!#!!!!!!"I!&%!Q`````QJ*5#"":'2S:8.T!!!,1!9!"&"P=H1!!"&!!Q!+1W^O<G6D>&2.4Q!!'%"1!!-!!!!"!!)+1W^O<G6D>'FP<A!!$E"Q!!5(5E62,6*&5!"V!0%!!!!!!!!!!R2$5UUN6%.1,6*P>82F=CZM>GRJ9BB59X"3<X6U:8)N1WRJ:7ZU,GRW9WRB=X-;2'6G,62$5#V3<X6U:8)A5E62,6*&5#ZD>'Q!*%"1!!%!"":51V!N5G^V>'6S)%.M;76O>#"%982B!!!41(!!)!!"!!5!"V*&53V326!!$E"Q!!5'5V2"6&64!!!11$$`````"H.U982V=Q!!$%!Q`````Q.B=G=!%%!Q`````Q:T<X6S9W5!!'5!]1!!!!!!!!!$&%.443V51V!N5G^V>'6S,GRW<'FC'&2D=&*P>82F=CV$<'FF<H1O<(:D<'&T=RZ%:79N6%.1,6*P>82F=C"4>'&U>8-A2'&U93ZD>'Q!%!"1!!-!#!!*!!I!&E"Q!")!!1!,#V.U982V=V&V:86F!(=!]1!!!!!!!!!$&%.443V51V!N5G^V>'6S,GRW<'FC'&2D=&*P>82F=CV$<'FF<H1O<(:D<'&T=RJ%:79N6%.1,6*P>82F=C"165)N5V6#,G.U<!!G1&!!!A!(!!Q76%.1,6*P>82F=C"$<'FF<H1A2'&U91!!%U"Q!#!!!1!.!!>165)N5V6#!"*!=!!&#E&T?7ZD,6*F=X!!!!R!)1:T>'&U>8-!!!N!!Q!%9W^E:1!!%E"1!!-!%!!2!!I&:8*S<X)!;Q$R!!!!!!!!!!-51V..,62$5#V3<X6U:8)O<(:M;7)96'.Q5G^V>'6S,5.M;76O>#ZM>G.M98.T)E2F:CV51V!N5G^V>'6S)%&T?7ZD,6*F=X!A2'&U93ZD>'Q!%A"1!!1!#!!*!!I!%A!51(!!%A!"!"-*5G6T=&&V:86F!(-!]1!!!!!!!!!$&%.443V51V!N5G^V>'6S,GRW<'FC'&2D=&*P>82F=CV$<'FF<H1O<(:D<'&T=S*%:79N6%.1,6*P>82F=C""=XFO9SV3:8.Q)%2B>'%O9X2M!"J!5!!%!!A!#1!+!")(1WRV=X2F=A!51(!!'1!"!"5*5G6T=%6W:7ZU!(Q!]1!!!!!!!!!$&%.443V51V!N5G^V>'6S,GRW<'FC'&2D=&*P>82F=CV$<'FF<H1O<(:D<'&T=RV%:79N6%.1,6*P>82F=C""5VF/1SV326.1,G.U<!!I1&!!!Q!0!"1!&B:51V!N5G^V>'6S)%.M;76O>#"%982B!!!81(!!)!!"!"=!#E&475Z$,6*&5V!!!#Z!5!!%!!-!"A!/!"A@1V..,62$5#V3<X6U:8)[6'.Q5G^V>'6S,5.M;76O>!!"!"E!!!!*<'^D97RI<X.UQV=!!/JA!!!!!!!!!!!!!!!!!!!!!!!!!"2/33Z-6CZ"<'QO5W^V=G.F4WZM?1!!!"5A!)!!!!!!!1!%!#%!!1!!!1!!!!!!!!!%!#Q!&1!!!!1!!!0J!!!!+!!!!!)!!!1!!!!!&A!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-\!!!+@8C=P6:<5^.!&0Z+?K0&5EIJ5!%$6E#FC/)6<SGF+#B1WP,AA[-V3:G/M?HEADL[Y%`VQ2]APU"0>N/GX!1:;]Z-*\MZ?][XZ^PT<1&M)39V%1C6#NP:5K%)&@PADZ$-FT?SF8QR7^*N3T8GN4WN`G[E)D@Z/*P8[GL$IGF:KZJG?E7N>8C,<M"ZW>+1F)LQ!?UE,'7Q8-F6>MJ!8&LY25`1N+K7<1*^@#R5D6XPGWY<MILTQZMY"+`-EIEL6;P+)-:2B%$G2Q!JAJ=AQ-%I^^KW66P&RX^6G?,/=L;]M]T34F.F?MB#K1Y(PJRB!TZU;]=D5HP(I<RGG_3$B%.-*'>_<MD:EGIW(4)GW]2%*@+7>96Y3,$&5@1B%&!.1T@Q`LQYJQ\B^,*\7"0%DN^FZQ)>*]Z0L.@RYOS9X5S@FDL3NYPFQ"AF'(%'I\"(1@(VP$$'$]-IP^L-5\/5?1@.MHJ(U)_"%U^+EP>+:+UIZB4&5%V'72$_IGZ9Q!#R&]HLD99K7Z7.,<A(9""*$,8G[XI$M,MB!2EO!3?#([2CCO1R\+F%;SK-E.MS'(;H%IBY"1+_90`(Q/LXPU?=00,"Q<L![%ZBB/B.D\NUCXJ.:'P%JF(@KVKKK$D!!W4%CQ,Y@G+-"I)\R#)GU#O&).3U893F<Y*?MPC%KN>)W*TCCZD%F'!L.>IE)Y]#"+HJG"BF=)6#"%%NC>@>Y-2*Y]--N4'P[GT8^48$,!,?P^@QJBO;'I/DK4/YXN\9()D03<?M]V45T0_1+\\:'_XN,L#X5@;G>%EH?*FH="/XWLN@Z(,NRT3O)IP<AP6*)3B/E3\D$LX*"+/((-5T^OB^LU@\DLEWFQZ=GV0O$@@QV,#0P$[0(;PX4TLU0P6(3:9[*$HD3O>4Z%[%U.+6Z9/[-O=+Q1-]2PZ5)?A"`6$^QHA,Z]#NUC:%&+C,RZCNUM&LW:BL2W?],]_9=4(RY4F&^"#>2:IY._T/=/GG`RG%DJ%-C3FL,R5WDIM9RS8=R4WM9!XL&*`>#CT,/F[1J@'3IDQB-A)5.]JUTE]L_Y`-R3B8AN:N5+YF>SZ)G=-5<:0S$F0U)3@_<S[#ADU!!!!!:1!"!!)!!Q!%!!!!3!!0!!!!!!!0!.E!V!!!!&%!$Q!!!!!!$Q$:!.1!!!";!!]!!!!!!!]!W1$5!!!!9Y!!A!#!!!!0!.E!V!B4:7>P:3"631B4:7>P:3"631B4:7>P:3"631%Q!!!!5F.31QU+!!.-6E.$4%*76Q!!.R1!!!3Z!!!!)!!!.P1!!!!!!!!!!!!!!#!!!!!U!!!%J!!!!"Z-35*/!!!!!!!!!8B-6F.3!!!!!!!!!9R36&.(!!!!!!!!!;"$1V.5!!!!!!!!!<2-38:J!!!!!!!!!=B$4UZ1!!!!!!!!!>R544AQ!!!!!1!!!@"%2E24!!!!!!!!!BB-372T!!!!!!!!!CR735.%!!!!!A!!!E"W:8*T!!!!"!!!!HR41V.3!!!!!!!!!O"(1V"3!!!!!!!!!P2*1U^/!!!!!!!!!QBJ9WQU!!!!!!!!!RRJ9WQY!!!!!!!!!T"-37:Q!!!!!!!!!U2'5%6Y!!!!!!!!!VB'5%BC!!!!!!!!!WR'5&.&!!!!!!!!!Y"75%21!!!!!!!!!Z2-37*E!!!!!!!!![B#2%6Y!!!!!!!!!\R#2%BC!!!!!!!!!^"#2&.&!!!!!!!!!_273624!!!!!!!!!`B%6%B1!!!!!!!!"!R.65F%!!!!!!!!"#")36.5!!!!!!!!"$271V21!!!!!!!!"%B'6%&#!!!!!!!!"&Q!!!!!`````Q!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!$A!!!!!!!!!!0````]!!!!!!!!!X!!!!!!!!!!!`````Q!!!!!!!!$Q!!!!!!!!!!$`````!!!!!!!!!0A!!!!!!!!!!0````]!!!!!!!!$B!!!!!!!!!!!`````Q!!!!!!!!/-!!!!!!!!!!,`````!!!!!!!!!\1!!!!!!!!!!0````]!!!!!!!!$T!!!!!!!!!!!`````Q!!!!!!!!1M!!!!!!!!!!$`````!!!!!!!!"$Q!!!!!!!!!!@````]!!!!!!!!&R!!!!!!!!!!#`````Q!!!!!!!!<E!!!!!!!!!!4`````!!!!!!!!"^Q!!!!!!!!!"`````]!!!!!!!!(]!!!!!!!!!!)`````Q!!!!!!!!A!!!!!!!!!!!H`````!!!!!!!!#"1!!!!!!!!!#P````]!!!!!!!!)*!!!!!!!!!!!`````Q!!!!!!!!AY!!!!!!!!!!$`````!!!!!!!!#&!!!!!!!!!!!0````]!!!!!!!!):!!!!!!!!!!!`````Q!!!!!!!!DI!!!!!!!!!!$`````!!!!!!!!#OQ!!!!!!!!!!0````]!!!!!!!!/]!!!!!!!!!!!`````Q!!!!!!!"()!!!!!!!!!!$`````!!!!!!!!%?1!!!!!!!!!!0````]!!!!!!!!E1!!!!!!!!!!!`````Q!!!!!!!#2)!!!!!!!!!!$`````!!!!!!!!*&!!!!!!!!!!!0````]!!!!!!!!E9!!!!!!!!!!!`````Q!!!!!!!#2I!!!!!!!!!!$`````!!!!!!!!*.!!!!!!!!!!!0````]!!!!!!!!EW!!!!!!!!!!!`````Q!!!!!!!$--!!!!!!!!!!$`````!!!!!!!!-R1!!!!!!!!!!0````]!!!!!!!!T(!!!!!!!!!!!`````Q!!!!!!!$.)!!!!!!!!!)$`````!!!!!!!!.IA!!!!!&&2D=&*P>82F=CV$<'FF<H1O9X2M!!!!!! @@ -82,6 +82,15 @@ 1 1342714384 + + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!%I!!!!#Q!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!71&!!!Q!!!!%!!ABF=H*P=C"*4Q!!"!!!!"Z!-0````]55W6S>G6S)%FO=X2B<G.F)%ZB<75!!"J!=!!&%G.P<GZF9X2J<WYA351I:(6Q+1!!)%"1!!-!!!!"!!)4:8*S<X)A;7YA+'ZP)'6S=G^S+1!@1!-!'&*F=X"P<H.F)&2J<76P>81I.4!Q-'VT+1!!&%"Q!!5.9W^O<G6D>'FP<C"*2!"5!0!!$!!$!!1!"1!'!!1!"!!%!!1!"Q!)!!1!#1-!!(A!!!U)!!!!!!!!#1!!!!U,!!!!!!!!!!!!!!!!!!!!!!!!#A!!!!A!!!!!!!!!%!!!!!!"!!I!!!!! + -1 + 0 + true + 1 + 1 + 1115685392 + @@ -253,13 +262,13 @@ 1074541072 - )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!&Y!!!!$!!11$$`````"F.U982V=Q!!4%"Q!"Y!!#]51V..,62$5#V3<X6U:8)O<(:M;7)96'.Q5G^V>'6S,5.M;76O>#ZM>G.M98.T!".59X"3<X6U:8)N1WRJ:7ZU)'FO!!1!!!!71$$`````$5.443"/97VF+'2V=#E!%E!Q`````QB$5UUA4G&N:1!!$%!B"H.U982V=Q!!#U!$!!2D<W2F!!!11$$`````"H.P>8*D:1!!)%"1!!-!"1!'!!=4:8*S<X)A;7YA+'ZP)'6S=G^S+1!@1!-!'&*F=X"P<H.F)&2J<76P>81I.4!Q-'VT+1!!&E"1!!-!"1!'!!=*:8*S<X)A<X6U!'Q!]!!1!!!!!1!#!!)!!Q!#!!)!!A!#!!1!!A!)!!E!!A!#!!I$!!%)!!)1!!!!%!!!!!!!!!!!!!!!$1E!!!!!!!!!!!!!!!!!!!!!!!)1!!!!!!!!!!I!!!!)!!!!!!!!!!!!!!!.#Q!!!!%!#Q!!!!! + )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!(\!!!!$1!11$$`````"F.U982V=Q!!4%"Q!"Y!!#]51V..,62$5#V3<X6U:8)O<(:M;7)96'.Q5G^V>'6S,5.M;76O>#ZM>G.M98.T!".59X"3<X6U:8)N1WRJ:7ZU)'FO!!1!!!!71$$`````$5.443"/97VF+'2V=#E!%E!Q`````QB$5UUA4G&N:1!!$%!B"H.U982V=Q!!#U!$!!2D<W2F!!!11$$`````"H.P>8*D:1!!)%"1!!-!"1!'!!=4:8*S<X)A;7YA+'ZP)'6S=G^S+1!@1!-!'&*F=X"P<H.F)&2J<76P>81I.4!Q-'VT+1!!AQ$R!!!!!!!!!!)A1W^N<86O;7.B9GRF)&.U982F)%VB9WBJ<G5O<(:M;7)A1V..)#UA1H*P972D98.U)%VF=X.B:W5A6(FQ:3ZD>'Q!/5!7!!-'0%ZV<'Q_"F.U982V=QF*<H2F=H*V=(1!&&"S;7^S;82Z)#B/<S"$;'&O:W5J!!!71&!!!Q!&!!9!"QFF=H*P=C"P>81!<!$Q!"!!!!!"!!)!!A!$!!)!!A!#!!)!"!!#!!A!#1!+!!)!#Q-!!1A!!B!!!!!1!!!!!!!!!!!!!!!.#1!!!!!!!!!!!!!!!!!!!!!!!B!!!!!!!!!!#A!!!!A!!!!)!!!!!!!!!!U,!!!!!1!-!!!!!! -1 - 3 + 0 true 1 1 - 1074541072 + 1082401296 )!#!!!!!!!)!"1!&!!!-!%!!!@````]!!!!"!!%!!!'!!!!!$!!31$$`````#%.443"/97VF!!"-1(!!(A!!,R2$5UUN6%.1,6*P>82F=CZM>GRJ9BB59X"3<X6U:8)N1WRJ:7ZU,GRW9WRB=X-!%V2D=&*P>82F=CV$<'FF<H1A;7Y!"!!!!":!-0````].1V..)%ZB<75I:(6Q+1!91$$`````$V.P>8*D:3"$5UUA4G&N:1!-1#%'=X2B>(6T!!!,1!-!"'.P:'5!!""!-0````]'=W^V=G.F!!!A1&!!!Q!&!!9!"R.F=H*P=C"J<C!I<G]A:8*S<X)J!"^!!Q!95G6T='^O=W5A6'FN:7^V>#AV-$!Q<8-J!!!71&!!!Q!&!!9!"QFF=H*P=C"P>81!<!$Q!"!!!!!"!!)!!A!$!!1!!A!#!!)!!A!#!!A!#1!#!!)!#A-!!1A!!B!!!!!3!!!!!!!!!!!!!!!.!!!#%!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!#A!!!!A!!!!!!!!!!!!!!!U,!!!!!1!,!!!!!! diff --git a/src/_addons/TCP-Router/ClientAPI/_support/Status-Background-Thread.vi b/src/_addons/TCP-Router/ClientAPI/_support/Status-Background-Thread.vi index 06e282a..0dcb35a 100644 Binary files a/src/_addons/TCP-Router/ClientAPI/_support/Status-Background-Thread.vi and b/src/_addons/TCP-Router/ClientAPI/_support/Status-Background-Thread.vi differ diff --git a/src/_addons/TCP-Router/ClientAPI/_support/Status-Request-ServerInstance-Name.vi b/src/_addons/TCP-Router/ClientAPI/_support/Status-Request-ServerInstance-Name.vi new file mode 100644 index 0000000..c6f54c0 Binary files /dev/null and b/src/_addons/TCP-Router/ClientAPI/_support/Status-Request-ServerInstance-Name.vi differ diff --git a/src/_addons/TCP-Router/_support/Connection Handler Worker.vi b/src/_addons/TCP-Router/_support/Connection Handler Worker.vi index 2eae402..6b354c8 100644 Binary files a/src/_addons/TCP-Router/_support/Connection Handler Worker.vi and b/src/_addons/TCP-Router/_support/Connection Handler Worker.vi differ