From 04fce195698c7007cee013126e90d6fa6b5b576c Mon Sep 17 00:00:00 2001 From: singagan <53442471+singagan@users.noreply.github.com> Date: Thu, 25 Apr 2024 19:00:36 +0200 Subject: [PATCH] Updated documentation for all convolution-based designs (#1399) Co-authored-by: Joseph Melber Co-authored-by: Kristof Denolf --- programming_examples/ml/bottleneck/README.md | 103 +++++++----------- .../ml/bottleneck/bottleneck_pipeline.png | Bin 0 -> 79590 bytes .../ml/bottleneck/requirements.txt | 1 - programming_examples/ml/conv2d/README.md | 71 ++++++++---- programming_examples/ml/conv2d/act_layout.png | Bin 0 -> 45710 bytes .../ml/conv2d/requirements.txt | 1 - .../ml/conv2d_fused_relu/README.md | 69 ++++-------- .../ml/conv2d_fused_relu/requirements.txt | 1 - programming_examples/ml/resnet/README.md | 100 ++++++----------- .../ml/resnet/layers_conv2_x/requirements.txt | 1 - .../layers_conv2_x/resnet_conv2x_pipeline.png | Bin 0 -> 180088 bytes programming_guide/section-6/README.md | 2 +- 12 files changed, 140 insertions(+), 209 deletions(-) create mode 100644 programming_examples/ml/bottleneck/bottleneck_pipeline.png delete mode 100644 programming_examples/ml/bottleneck/requirements.txt create mode 100644 programming_examples/ml/conv2d/act_layout.png delete mode 100644 programming_examples/ml/conv2d/requirements.txt delete mode 100644 programming_examples/ml/conv2d_fused_relu/requirements.txt delete mode 100755 programming_examples/ml/resnet/layers_conv2_x/requirements.txt create mode 100644 programming_examples/ml/resnet/layers_conv2_x/resnet_conv2x_pipeline.png diff --git a/programming_examples/ml/bottleneck/README.md b/programming_examples/ml/bottleneck/README.md index 40a69e8576..b1a2229537 100644 --- a/programming_examples/ml/bottleneck/README.md +++ b/programming_examples/ml/bottleneck/README.md @@ -8,15 +8,15 @@ // //===----------------------------------------------------------------------===//--> -# The Bottleneck Block +# Bottleneck Block ## Introduction -The bottleneck block is a key component in deep neural network architectures, such as ResNet. It is designed to help address the challenge of training very deep networks by reducing the computational cost while maintaining or improving performance. This README provides an overview of the process and considerations for accelerating a single bottleneck block. +The bottleneck block is a key component in deep neural network architectures like ResNet. It is designed to help address the challenge of training deep networks by reducing computational costs while maintaining or improving performance. This README provides an overview of the process and considerations for accelerating a bottleneck block on a single NPU column using four AI Engine (AIE) cores. ## Bottleneck Block Overview The components and functionality of a standard bottleneck block: -* Identity Mapping: The core idea behind bottleneck blocks is the concept of identity mapping. Traditional neural network layers aim to learn a mapping from input to output. In contrast, a bottleneck block learns a residual mapping, which is the difference between the input and the output. The original input is then added back to this residual mapping to obtain the final output. Mathematically, this can be represented as `output = input+ residual.` +* Identity Mapping: The core idea behind bottleneck blocks is the concept of identity mapping. Traditional neural network layers aim to learn how to map from input to output. In contrast, a bottleneck block learns a residual mapping, which is the difference between the input and the output. The original input is then added to this residual mapping to obtain the final output. Mathematically, this can be represented as `output = input+ residual.` * Convolutional Layers: Bottleneck blocks typically consist of one or more convolutional layers. These layers are responsible for learning features from the input data. Convolutional layers apply filters/kernels to the input feature maps to extract relevant patterns and features. The number of filters, kernel size, and other parameters can vary based on the specific architecture and requirements. @@ -24,87 +24,58 @@ The components and functionality of a standard bottleneck block: * Batch Normalization: Batch normalization is often employed after convolutional layers to stabilize and accelerate the training process. It normalizes the activations of each layer, making optimization more robust and efficient. -* Skip Connection (Identity Shortcut): This is the hallmark of bottleneck blocks. The skip connection directly passes the input from one layer to a later layer without any modification. It provides an alternative, shorter path for gradient flow during training. If the input and output dimensions of the bottleneck block are the same, the skip connection directly adds the input to the output. If the dimensions differ, the skip connection might include a 1x1 convolutional layer to adjust the dimensions accordingly. +* Skip Connection (Identity Shortcut): This is the hallmark of bottleneck blocks. The skip connection directly passes the input from one layer to a later layer without modification. It provides an alternative, shorter path for gradient flow during training. If the input and output dimensions of the bottleneck block are the same, the skip connection directly adds the input to the output. If the dimensions differ, the skip connection might include a 1x1 convolutional layer to adjust the dimensions accordingly. * Final Output: The final output of the bottleneck block is obtained by adding the input to the output of the convolutional layers (including any adjustments made to match dimensions via the skip connection).

- - - block + + + block -

Bottleneck block has a 1x1 convolution layer for dimension reduction, a 3x3 convolution layer, and a 1x1 convolution layer for dimension restoration. -

+

Bottleneck block has a 1x1 convolution layer for dimension reduction, a 3x3 convolution layer, and a 1x1 convolution layer for dimension restoration. +

-## Acceleration Techniques -1. Depth-First Implementation: Spatial architectures provide coarse-grained flexibility that allows for tailoring of the dataflow to optimize data movement. By tailoring the dataflow, we implement depth-first schedule for a bottleneck block routing the output of one convolutional operation on an AIE core directly to another convolutional operation on a separate AIE core, all without the need to transfer intermediate results off-chip. This approach effectively minimizes the memory footprint associated with intermediate data, mitigating the overhead of costly off-chip accesses leading to increase in the overall performance. +## Source Files Overview -2. Data Layout: Optimize activation and weight layout to enhance memory access patterns and enables effective utilization of AIE parallel processing units, ultimately improving the performance of 2D convolution operations. - -3. Kernel Optimzation: To optimize convolution operations on AIE, we vectorize the code using AIE vector intrinsics. We load 8 elements of the input channel into vector registers using vector load intrinsic. We apply the convolution operation on this loaded data, utilizing for enhanced computational efficiency. To ensure accurate convolution results, particularly at the edges of feature maps, we implement zero-padding to handle boundary conditions. This comprehensive approach optimizes convolution processing on AIE, facilitating efficient and accurate feature extraction in neural network applications. Input is 4x8 matrix corresponding to 4 element of row and 8 input channels. - -4. Quantization: We use int8 precision for activationa and weights. At int8 precision, AIE offers the highest compute density with 256 MAC/cycle. - -5. Layer Fused: We perform two levels of fusion. First, we fuse ReLU in convolution using SRS capabilities of AIE. Second, we fuse BatchNorm into convolution weights. - - - -## Data Layout -We need to ensure that the data layout is compatible with efficient SIMD processing and rearrange the input data into a format where contiguous elements represent consecutive X-dimension values for each channel. For more efficient processing, we adopt a channels-last memory ordering, denoted as NYCXC8, to ensure that channels become the densest dimension. Operating on 8 elements simultaneously, we process 8 channels with the same width at once. Subsequently, we traverse the entire width dimension, handling the remaining channels in batches of 8. This process continues row-wise, resulting in our final data layout pattern: NYCXC8. This optimized layout enhances memory access patterns and enables effective utilization of parallel processing units, ultimately improving the performance of 2D convolution operations. This transformation ensures that data can be efficiently loaded into SIMD registers and processed in parallel. - -YCXC8 Input/Output Data Layout: - -In the YCXC8 (with N=1) data layout, the data is organized in memory as follows: - -* Y: Represents the output feature map dimension. -* C: Denotes the number of channels. -* X: Represents the input feature map dimension. -* C8: Indicates that 8 elements of the input channel are processed together. - -OIYXI8O8 Weight Layout: - -We align the weight layout as specified: O,I,Y,X,I8,O8, to match the input image processing. We first load the weight tensor, organizing it to match this layout, where dimensions represent: output channels, input channels, kernel height, kernel width, input channel groups of 8, and output channel groups of 8. By aligning the weight layout in this manner, we enable seamless integration with the input data layout, maximizing parallelism and minimizing memory access overhead. - -In the OIYXI8O8 data layout, the data is organized in memory as follows: - -* O: Denotes the number of output channels. -* I: Denotes the number of input channels. -* Y: Represents the kernel height. -* X: Represents the kernel weight. -* I8: Indicates that 8 elements of the input channel are processed together. -* O8: Indicates that 8 elements of the output channel are processed together. +``` +. ++-- aie2.py # A Python script that defines the AIE array structural design using MLIR-AIE operations. ++-- bottleneck_block.png # Figure describing the layers in the bottleneck block after fusing ReLU and batch norm into the convolution layer. ++-- bottleneck_pipeline.png # Figure describing our implementation bottleneck block on a single NPU Column. ++-- Makefile # Contains instructions for building and compiling software projects. ++-- README.md # This file. ++-- run.lit # For LLVM Integrated Tester (LIT) of the design. ++-- test.py # Python code testbench for the design example. +``` -## Fusing Convolution and Batch Normalization +## NPU Implementation -We assume the BatchNorm layer is fused into Convoluion Layer. Fusing BatchNorm into convolution involves incorporating the normalization step directly into the convolution operation. This is achieved by modifying the weights of the convolutional filters to include the scaling and shifting factors. Specifically, the weights are adjusted such that the convolution operation performs the normalization, scaling, and shifting in a single step. +We map a bottleneck block on a single column of NPU in depth-first manner where the output of one convolutional operation on an AIE core is sent directly to another convolutional operation on a separate AIE core, all without the need to transfer intermediate results off-chip. +In our bottleneck pipeline implementation, every adjacent ReLU operation is fused into the convolution operation using the approach described in [conv2d_fused_relu](../conv2d_fused_relu). Fusing adjacent convolution and batch norm layers is another inference-time optimization, which involves updating the weight and bias of the convolution layer. The remaining layers of the bottleneck block are mapped onto a single column of NPU with one `Shim Tile (0,0)` and one `Mem Tile (0,1)`, along with four AIE computer tiles spanning from (0,2) to (0,5), as illustrated in the figure below. -## Fusing ReLU +

+ +

Depth-first implementation of bottleneck block pipeline on a single column of NPU. +

+

-Fusing ReLU into the convolution operation can further optimize the implementation by reducing memory bandwidth requirements and computational overhead. ReLU activation function introduces non-linearity by setting negative values to zero and leaving positive values unchanged. Utilize SIMD instructions to efficiently compute ReLU activation in parallel with convolution. After performing the convolution operation, apply ReLU activation function at vector register level. -We use `aie::set_rounding()` and `aie::set_saturation()` to set the rounding and saturation modes for the computed results in the accumulator. Seeting round mode `postitive_inf` rounds halfway towards positive infinity while setting saturation to `aie::saturation_mode::saturate` saturation rounds an uint8 range (0, 255). +The data movement within this pipeline is orchestrated using the ObjectFifo (OF) primitive. Initially, input activation is brought into the array via the `Shim Tile (0,0)`. We broadcast the data to both `AIE (0,2)` and `AIE (0,4)` via `Mem Tile (0,1)` to perform the very first convolution and skip addition operation in the bottleneck block, respectively. Since `AIE (0,4)` must await additional data from other kernels before proceeding with its execution, buffering the data for tile (0,4) within the `Mem Tile (0,1)` is imperative to prevent any stalls in the broadcast process. Due to the data's size, direct buffering in the smaller L1 memory module of `AIE (0,4)` is impractical. Therefore, we require two OFs: one for broadcasting to tile (0,2) and the Mem tile and another for data movement between the Mem tile and tile (0,4). These two OFs are interconnected to indicate that data from the first OF should be implicitly copied to the second OF through the Mem tile's DMA. -``` -::aie::set_saturation( - aie::saturation_mode::saturate); // Needed to saturate properly to uint8 -::aie::set_rounding( - aie::rounding_mode::positive_inf); // Needed to saturate properly to uint8 -``` -After convolution and ReLU fusion, the output data is generate in YCXC8 layout. Ensure that the output data layout is compatible with subsequent layers or processing steps in the neural network architecture. +Starting from the `AIE (0,2)`, data is processed by each compute tile, with the intermediate activations being forwarded to the subsequent tile. `AIE (0,2)` handles 1x1 convolution with fused ReLU operation. Based on our hand analysis, we partition the 3x3 convolution across two cores, `AIE (0,3)` and `AIE (0,5)`, to balance computation and accommodate weight distribution across two cores effectively. Therefore, the feature map from the 1x1 convolution is broadcasted to `AIE (0,3)` and `AIE (0,5)` to ensure all required input channels are available for generating output feature maps in the subsequent 3x3 convolution. We split the output feature map processing across these cores, with each core computing half of the total output channels. The outputs from `AIE (0,3)` and `AIE (0,5)` are then merged in `AIE (0,4)` to perform the final 1x1 convolution. This final convolution operation also integrates skip addition, utilizing the initial input to the bottleneck block and the output of the 1x1 convolution. The final ReLU activation is applied to obtain the final output feature map. This output feature map is transmitted from the `AIE (0,4)` back to the output via the `Shim Tile (0,0)`. Although not shown in the figure, weights are transferred separately using a `Shim Tile (0,0)` channel into `Mem Tile (0,1)`, which distributes them across appropriate AIE cores in parallel, leveraging the large number of MemTile channels. +We use the following architectural techniques to implement our bottleneck pipeline: -### Benefits of ReLU Fusion: +1. Depth-First Implementation: Spatial architectures provide coarse-grained flexibility that allows for tailoring of the data flow to optimize data movement. By tailoring the dataflow, we implement a depth-first schedule for a bottleneck block where the output of one convolutional operation on an AIE core is sent directly to another convolutional operation on a separate AIE core, all without the need to transfer intermediate results off-chip. This approach effectively minimizes the memory footprint associated with intermediate data, mitigating the overhead of costly off-chip accesses and increasing the overall performance. -1. Reduced Memory Bandwidth: -By fusing ReLU into the convolution operation, unnecessary memory accesses and data transfers associated with separate ReLU computation are eliminated, leading to reduced memory bandwidth requirements. +2. Data Layout: Optimize activation and weight layout to enhance memory access patterns and enable effective utilization of AIE parallel processing units, ultimately improving the performance of 2D convolution operations. Please refer to our [conv2d](../conv2d) design for details on the data layout. -2. Improved Performance: -Fusing ReLU reduces the number of instructions executed per element, resulting in improved computational efficiency and overall performance of the convolution operation. +3. Kernel Optimization: Please refer to our [conv2d](../conv2d) design for details on vectorizing convolution 2D. -3. Simplified Code Structure: -Fusing ReLU into the convolution kernel simplifies the code structure and reduces the overhead associated with separate activation function calls, leading to cleaner and more maintainable code. +4. Quantization: We use int8 precision for activation and weights. At int8 precision, AIE offers the highest compute density with 256 MAC/cycle. -4. Enhanced Resource Utilization: -By combining convolution and ReLU operations, computational resources such as CPU cores or SIMD units are utilized more efficiently, maximizing throughput and achieving better resource utilization. +5. Layer Fused: Initially, we employ AIE's SRS capabilities to fuse ReLU directly into the convolution operation. This integration optimizes performance by eliminating separate ReLU computations, streamlining the convolution process. Please refer to our [conv2d_fused_relu](../conv2d_fused_relu) design for details on fusing ReLU into the convolution layer. ## Compilation To compile the design: diff --git a/programming_examples/ml/bottleneck/bottleneck_pipeline.png b/programming_examples/ml/bottleneck/bottleneck_pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..e91b231be5c1ce94e7cb2adeb68d623a2b47dbcc GIT binary patch literal 79590 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

(-SwV&Stf_|p|6%2U9JcuQfKQC0jC2Zs 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 literal 0 HcmV?d00001 diff --git a/programming_examples/ml/bottleneck/requirements.txt b/programming_examples/ml/bottleneck/requirements.txt deleted file mode 100644 index 08ed5eeb4b..0000000000 --- a/programming_examples/ml/bottleneck/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -torch \ No newline at end of file diff --git a/programming_examples/ml/conv2d/README.md b/programming_examples/ml/conv2d/README.md index b2d93f066d..9ea0d96c72 100644 --- a/programming_examples/ml/conv2d/README.md +++ b/programming_examples/ml/conv2d/README.md @@ -10,43 +10,68 @@ # Convolution 2D ## Introduction -Convolution is a crucial part of various machine learning and computer vision tasks, such as image recognition, object detection, and image segmentation. This README provides instructions for implementing convolution on AI Engine. +Convolution is a crucial part of various machine learning and computer vision tasks, such as image recognition, object detection, and image segmentation. This README provides instructions for implementing convolution on a single AI Engine (AIE) core with 8-bit precision. -At its core, it is a mathematical operation that combines an input image and a filter to produce an output image. The input data is represented as a multi-dimensional matrix, such as an image with height, width, and channels (e.g., RGB channels). The filter is also represented as a multi-dimensional matrix with filter height, width, input and output channels (the same number of channels as the input data). The filter is systematically applied to different regions of the input data. At each step, the filter is element-wise multiplied with the overlapping region of the input data. The element-wise products are summed up to produce a single value, which represents the result of the convolution operation for that region. This process is repeated for all possible regions of the input data, producing an output matrix called the feature map. +At its core, it is a mathematical operation that combines an input tensor and a filter to produce an output tensor. The input tensor is a multi-dimensional matrix with input weight, height, and channel. The filter is also represented as a multi-dimensional matrix with filter height, width, input, and output channels (the same number of channels as the input tensor). The filter is systematically applied to different regions of the input data. At each step, the filter is element-wise multiplied by the overlapping region of the input tensor. The element-wise products are summed up to produce a single value, representing the result of the convolution operation for that region. This process is repeated for all possible regions of the input tensor, producing an output tensor called the feature map. -The process of applying the filter to different regions of the input data is often visualized as a sliding window moving across the input data. The size of the sliding window corresponds to the size of the filter, and it moves with a certain stride (the number of pixels it moves at each step). The convolution operation consists of seven nested loops, iterating over the input height, input lenght, input channel, output channel, filter height, filter length, and the batch size, each loop corresponding to different aspect of the operation. This systematic process extracts features from the input image, yielding the output feature map, illustrating the computational intricacies of convolution. +The process of applying the filter to different regions of the input tensor is often visualized as a sliding window moving across the input data. The size of the sliding window corresponds to the size of the filter, and it moves with a certain stride (the number of pixels it moves at each step). The convolution operation consists of seven nested loops, iterating over the input height, input length, input channel, output channel, filter height, filter length, and batch size, each loop corresponding to a different aspect of the operation. This systematic process extracts features from the input tensor, yielding the output feature map and illustrating the computational intricacies of convolution. In this design, we vectorize a two-dimensional convolution with 1x1 filter size. -## Acceleration Techniques -1. Kernel Optimzation: To optimize convolution operations on AIE, we vectorize the code using AIE vector intrinsics. We load 8 elements of the input channel into vector registers using vector load intrinsic. We apply the convolution operation on this loaded data, utilizing for enhanced computational efficiency. To ensure accurate convolution results, particularly at the edges of feature maps, we implement zero-padding to handle boundary conditions. This comprehensive approach optimizes convolution processing on AIE, facilitating efficient and accurate feature extraction in neural network applications. Input is 4x8 matrix corresponding to 4 element of row and 8 input channels. -2. Quantization: We use int8 precision for activationa and weights. At int8 precision, AIE offers the highest compute density with 256 MAC/cycle. +## Source Files Overview -3. Data Layout: Optimize activation and weight layout to enhance memory access patterns and enables effective utilization of AIE parallel processing units, ultimately improving the performance of 2D convolution operations. +``` +. ++-- act_layout.png # Figure describing input/output data layout. ++-- aie2.py # A Python script that defines the AIE array structural design using MLIR-AIE operations. ++-- Makefile # Contains instructions for building and compiling software projects. ++-- README.md # This file. ++-- run.lit # For LLVM Integrated Tester (LIT) of the design. ++-- test.py # Python code testbench for the design example. +``` + +## NPU Implementation +1. Kernel Optimization: To optimize convolution operations on AIE, we vectorize the code using AIE vector intrinsics. We load 8 elements of the input channel into vector registers using vector load intrinsic. We perform the convolution operation using vector MAC/MUL on this loaded data. We implement zero-padding to handle boundary conditions to ensure accurate convolution results, particularly at the edges of feature maps. This comprehensive approach optimizes convolution processing on AIE, facilitating efficient and accurate feature extraction in neural network applications. Input is a 4x8 matrix corresponding to 4 elements of a row and 8 input channels. + +2. Quantization: We use `int8` precision for activation and weights. At `int8` precision, AIE offers the highest compute density with 256 MAC/cycle. + +3. Data Layout: We optimize activation and weight layout to enhance memory access patterns and enable effective utilization of AIE parallel processing units, ultimately improving the performance of 2D convolution operations. ## Data Layout -We need to ensure that the data layout is compatible with efficient SIMD processing and rearrange the input data into a format where contiguous elements represent consecutive X-dimension values for each channel. For more efficient processing, we adopt a channels-last memory ordering, denoted as NYCXC8, to ensure that channels become the densest dimension. Operating on 8 elements simultaneously, we process 8 channels with the same width at once. Subsequently, we traverse the entire width dimension, handling the remaining channels in batches of 8. This process continues row-wise, resulting in our final data layout pattern: NYCXC8. This optimized layout enhances memory access patterns and enables effective utilization of parallel processing units, ultimately improving the performance of 2D convolution operations. This transformation ensures that data can be efficiently loaded into SIMD registers and processed in parallel. +We must ensure that the data layout is compatible with efficient SIMD processing and rearrange the input data into a format where contiguous elements represent consecutive X-dimension values for each channel. We adopt a channels-last memory ordering, denoted as Y{C/8}X{C8}, to exploit output channel parallelism by ensuring channels become the densest dimension. Operating on 8 elements simultaneously, we process 8 channels simultaneously with the same width. Subsequently, we traverse the entire width dimension, handling the remaining channels in batches of 8. This process continues row-wise, resulting in our final data layout pattern: Y{C/8}X{C8}. This optimized layout enhances memory access patterns and enables effective utilization of parallel processing units, ultimately improving the performance of 2D convolution operations. This transformation ensures that data can be efficiently loaded into SIMD registers and processed in parallel. + +The below figure shows our channel parallel data layout (Y{C/8}X{C8}) for a tensor dimension 8x8x16: + +

+ + + block + +

Channel parallel data layout for activations. An AIE core processes 8 channels in parallel per vector operation. +

+

+ + +In the Y{C/8}X{C8} (with N=1) data layout, the data is organized in memory as follows: -YCXC8 Input/Output Data Layout: +* C8: Indicates that 8 elements of the input channel are processed together. +* X: Represents the input feature map dimension. +* C/8: Denotes the remaining number of channels. +* Y: Represents the output feature map dimension. -In the YCXC8 (with N=1) data layout, the data is organized in memory as follows:: -* Y: Represents the output feature map dimension. -* C: Denotes the number of channels. -* X: Represents the input feature map dimension. -* C8: Indicates that 8 elements of the input channel are processed together. +{O/8}{I/8}YX{I8}{O8} Weight Layout: -OIYXI8O8 Weight Layout: +We align the weight layout as specified: O/8, I/8, Y, X, I8, O8, to match the input tensor processing. We first load the weight tensor and organize it to match this layout, where dimensions represent output channels, input channels, kernel height, kernel width, input channel groups of 8, and output channel groups of 8. By aligning the weight layout in this manner, we enable seamless integration with the input data layout, maximizing parallelism and minimizing memory access overhead. -We align the weight layout as specified: O,I,Y,X,I8,O8, to match the input image processing. We first load the weight tensor, organizing it to match this layout, where dimensions represent: output channels, input channels, kernel height, kernel width, input channel groups of 8, and output channel groups of 8. By aligning the weight layout in this manner, we enable seamless integration with the input data layout, maximizing parallelism and minimizing memory access overhead. +In the {O/8}{I/8}YX{I8}{O8} data layout, the data is organized in memory as follows: -In the OIYXI8O8 data layout, the data is organized in memory as follows: +* O8: Indicates that 8 elements of the output channel are processed together. +* I8: Indicates that 8 elements of the input channel are processed together. +* X: Represents the kernel weight. +* Y: Represents the kernel height. +* I/8: Denotes the remaining number of input channels. +* O/8: Denotes the remaining number of output channels. -* O: Denotes the number of output channels. -* I: Denotes the number of input channels. -* Y: Represents the kernel height. -* X: Represents the kernel weight. -* I8: Indicates that 8 elements of the input channel are processed together. -* O8: Indicates that 8 elements of the output channel are processed together. ## Compilation To compile the design: diff --git a/programming_examples/ml/conv2d/act_layout.png b/programming_examples/ml/conv2d/act_layout.png new file mode 100644 index 0000000000000000000000000000000000000000..7630e06ea0c3210992ff72eae1689de99b3d8afb GIT binary patch literal 45710 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 with Fused ReLU ## Introduction -Convolution is a crucial part of various machine learning and computer vision tasks, such as image recognition, object detection, and image segmentation. ReLU (Rectified Linear Unit ) is one of the most commonly used activation functions due to its simplicity and effectiveness. This README provides instructions for implementing convolution with ReLU activation function on AI Engine. +In [conv2d](../conv2d), we describe how to implement a two-dimensional convolution kernel on AIE. While [relu](../relu) describes the implementation of the Rectified Linear Unit (ReLU) activation function on AIE. This README provides instructions for fusing convolution with the ReLU activation function on a single AI Engine (AIE) core -At its core, convolution is a mathematical operation that combines an input image and a filter to produce an output image. The input data is represented as a multi-dimensional matrix, such as an image with height, width, and channels (e.g., RGB channels). The filter is also represented as a multi-dimensional matrix with filter height, width, input and output channels (the same number of channels as the input data). The filter is systematically applied to different regions of the input data. At each step, the filter is element-wise multiplied with the overlapping region of the input data. The element-wise products are summed up to produce a single value, which represents the result of the convolution operation for that region. This process is repeated for all possible regions of the input data, producing an output matrix called the feature map. -The process of applying the filter to different regions of the input data is often visualized as a sliding window moving across the input data. The size of the sliding window corresponds to the size of the filter, and it moves with a certain stride (the number of pixels it moves at each step). The convolution operation consists of seven nested loops, iterating over the input height, input lenght, input channel, output channel, filter height, filter length, and the batch size, each loop corresponding to different aspect of the operation. This systematic process extracts features from the input image, yielding the output feature map, illustrating the computational intricacies of convolution. +## Source Files Overview -## Acceleration Techniques -1. Kernel Optimzation: To optimize convolution operations on AIE, we vectorize the code using AIE vector intrinsics. We load 8 elements of the input channel into vector registers using vector load intrinsic. We apply the convolution operation on this loaded data, utilizing for enhanced computational efficiency. To ensure accurate convolution results, particularly at the edges of feature maps, we implement zero-padding to handle boundary conditions. This comprehensive approach optimizes convolution processing on AIE, facilitating efficient and accurate feature extraction in neural network applications. Input is 4x8 matrix corresponding to 4 element of row and 8 input channels. - -2. Quantization: We use int8 precision for activationa and weights. At int8 precision, AIE offers the highest compute density with 256 MAC/cycle. - -3. Layer Fused: We perform two levels of fusion. First, we fuse ReLU in convolution using SRS capabilities of AIE. Second, we fuse BatchNorm into convolution weights. - -4. Data Layout: Optimize activation and weight layout to enhance memory access patterns and enables effective utilization of AIE parallel processing units, ultimately improving the performance of 2D convolution operations. - -## Data Layout -We need to ensure that the data layout is compatible with efficient SIMD processing and rearrange the input data into a format where contiguous elements represent consecutive X-dimension values for each channel. For more efficient processing, we adopt a channels-last memory ordering, denoted as NYCXC8, to ensure that channels become the densest dimension. Operating on 8 elements simultaneously, we process 8 channels with the same width at once. Subsequently, we traverse the entire width dimension, handling the remaining channels in batches of 8. This process continues row-wise, resulting in our final data layout pattern: NYCXC8. This optimized layout enhances memory access patterns and enables effective utilization of parallel processing units, ultimately improving the performance of 2D convolution operations. This transformation ensures that data can be efficiently loaded into SIMD registers and processed in parallel. - -YCXC8 Input/Output Data Layout: - -In the YCXC8 (with N=1) data layout, the data is organized in memory as follows: - -* Y: Represents the output feature map dimension. -* C: Denotes the number of channels. -* X: Represents the input feature map dimension. -* C8: Indicates that 8 elements of the input channel are processed together. - -OIYXI8O8 Weight Layout: - -We align the weight layout as specified: O,I,Y,X,I8,O8, to match the input image processing. We first load the weight tensor, organizing it to match this layout, where dimensions represent: output channels, input channels, kernel height, kernel width, input channel groups of 8, and output channel groups of 8. By aligning the weight layout in this manner, we enable seamless integration with the input data layout, maximizing parallelism and minimizing memory access overhead. - -In the OIYXI8O8 data layout, the data is organized in memory as follows: +``` +. ++-- aie2.py # A Python script that defines the AIE array structural design using MLIR-AIE operations. ++-- Makefile # Contains instructions for building and compiling software projects. ++-- README.md # This file. ++-- run.lit # For LLVM Integrated Tester (LIT) of the design. ++-- test.py # Python code testbench for the design example. +``` -* O: Denotes the number of output channels. -* I: Denotes the number of input channels. -* Y: Represents the kernel height. -* X: Represents the kernel weight. -* I8: Indicates that 8 elements of the input channel are processed together. -* O8: Indicates that 8 elements of the output channel are processed together. +## Fusing ReLU +Fusing ReLU into the convolution operation can optimize the performance by reducing unnecessary data movement, leading to lower external memory bandwidth requirements and computational overhead. The ReLU activation function introduces non-linearity by setting negative values to zero and leaving positive values unchanged. For fixed-point arithmetic, we can utilize the Shift-Round-Saturate (SRS) capability of AIE to apply an appropriate transformation involving shifting out lower-order bits, rounding, and saturation using the SRS family of intrinsics. Using SRS intrinsics, we can efficiently implement ReLU activation while the data is in the accumulation registers. Such an implementation completely eliminates any need for data movement by fusing at the vector register level. +After performing the convolution operation, we use `aie::set_rounding()` and `aie::set_saturation()` to set the rounding and saturation modes for the computed results in the accumulator. Setting round mode `postitive_inf` rounds halfway towards positive infinity while setting saturation to `aie::saturation_mode::saturate` saturation rounds an uint8 range (0, 255). -## Fusing ReLU -Fusing ReLU into the convolution operation can further optimize the implementation by reducing memory bandwidth requirements and computational overhead. ReLU activation function introduces non-linearity by setting negative values to zero and leaving positive values unchanged. Utilize SIMD instructions to efficiently compute ReLU activation in parallel with convolution. After performing the convolution operation, apply ReLU activation function at vector register level. -We use `aie::set_rounding()` and `aie::set_saturation()` to set the rounding and saturation modes for the computed results in the accumulator. Seeting round mode `postitive_inf` rounds halfway towards positive infinity while setting saturation to `aie::saturation_mode::saturate` saturation rounds an uint8 range (0, 255). ``` -::aie::set_saturation( - aie::saturation_mode::saturate); // Needed to saturate properly to uint8 ::aie::set_rounding( - aie::rounding_mode::positive_inf); // Needed to saturate properly to uint8 + aie::rounding_mode::positive_inf); # Needed to rounding properly to uint8 +::aie::set_saturation( + aie::saturation_mode::saturate); # Needed to saturate properly to uint8 ``` -After convolution and ReLU fusion, the output data is generate in YCXC8 layout. Ensure that the output data layout is compatible with subsequent layers or processing steps in the neural network architecture. +The output data is generated in Y{C/8}X{C8} layout. Please refer to our [conv2d](../conv2d) design for details on the data layout. -### Benefits of ReLU Fusion: +### Benefits of Fusing Convolutiona and ReLU : 1. Reduced Memory Bandwidth: -By fusing ReLU into the convolution operation, unnecessary memory accesses and data transfers associated with separate ReLU computation are eliminated, leading to reduced memory bandwidth requirements. +Fusing ReLU into the convolution operation eliminates unnecessary memory accesses and data transfers associated with separate ReLU computations, leading to reduced memory bandwidth requirements. 2. Improved Performance: Fusing ReLU reduces the number of instructions executed per element, resulting in improved computational efficiency and overall performance of the convolution operation. -3. Simplified Code Structure: -Fusing ReLU into the convolution kernel simplifies the code structure and reduces the overhead associated with separate activation function calls, leading to cleaner and more maintainable code. +3. Enhanced Resource Utilization: +Combining convolution and ReLU operations allows computational resources to be utilized more efficiently, maximizing throughput and achieving better resource utilization. -4. Enhanced Resource Utilization: -By combining convolution and ReLU operations, computational resources such as CPU cores or SIMD units are utilized more efficiently, maximizing throughput and achieving better resource utilization. ## Compilation To compile the design: diff --git a/programming_examples/ml/conv2d_fused_relu/requirements.txt b/programming_examples/ml/conv2d_fused_relu/requirements.txt deleted file mode 100644 index 08ed5eeb4b..0000000000 --- a/programming_examples/ml/conv2d_fused_relu/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -torch \ No newline at end of file diff --git a/programming_examples/ml/resnet/README.md b/programming_examples/ml/resnet/README.md index de4cc92535..5bb146b006 100755 --- a/programming_examples/ml/resnet/README.md +++ b/programming_examples/ml/resnet/README.md @@ -8,93 +8,59 @@ // //===----------------------------------------------------------------------===//--> -# ResNet with Offloaded Conv2_x Bottleneck Blocks +# ResNet with Offloaded Conv2_x Layers ## Introduction -ResNet [[1]](#1) is a convolutional neural network architecture that has gained significant popularity for various computer vision tasks, including image classification, object detection, and image segmentation. It is renowned for its depth and efficiency in training very deep networks. - -This README focuses on a specific optimization technique applied to ResNet, specifically targeting the offloading of the conv2_x part of the bottleneck blocks. By offloading computations to dedicated hardware accelerators or specialized processors, we aim to improve the overall efficiency and speed of the network, especially when deploying it on resource-constrained devices or in scenarios where real-time processing is critical. - +ResNet [[1]](#1) is a convolutional neural network architecture that has gained significant popularity for various computer vision tasks, including image classification, object detection, and image segmentation. It is renowned for its depth and efficiency in training very deep networks. This README focuses on our implementation of the conv2_x layers of the ResNet architecture using three columns of NPU. ## ResNet Architecture Overview -ResNet consists of several key components: +ResNet consists of the following key components: -1. Input Layer: Accepts input image data with dimensions typically set to 224x224x3 (width, height, RGB channels). +1. Input Layer: This layer accepts input image data with dimensions typically set to 224x224x3 (width, height, and RGB channels). 2. Convolutional Layers: The initial layers perform convolution operations to extract basic features from the input image. 3. Bottleneck Blocks: - * ResNet is composed of multiple bottleneck blocks grouped into different stages (conv2_x, conv3_x, conv4_x, conv5_x). - * Each bottleneck block contains convolutional layers and shortcut connections that facilitate the learning of residual mappings. - * The conv2_x stage is particularly targeted for offloading computations in this optimization. + * ResNet is composed of multiple bottleneck blocks grouped into different stages (conv2_x, conv3_x, conv4_x, conv5_x). + * Each bottleneck block contains convolutional layers and shortcut connections that facilitate the learning of residual mappings. + * The conv2_x stage is particularly targeted for offloading computations in this optimization. 4. Pooling Layers: Max pooling layers reduce the spatial dimensions of the feature maps. 5. Fully Connected Layer: Produces the final output predictions, typically followed by a softmax activation for classification tasks. +## Source Files Overview -## Offloading Conv2_x Bottleneck Blocks -The conv2_x stage of ResNet comprises a series of bottleneck blocks, each containing convolutional layers responsible for learning more complex features from the input data. By offloading the computations within these blocks to AI Engine, we aim to: - -* Reduce the computational burden on the main processing unit (e.g., CPU or GPU). -* Improve overall inference speed and efficiency, especially in scenarios where real-time processing is crucial. -* Enable deployment on resource-constrained devices with limited computational resources. - -## Usage and Deployment -To leverage the optimized ResNet with offloaded conv2_x bottleneck blocks: -* [IRON Programming](https://github.com/Xilinx/mlir-aie/tree/gagan_asplos_resnet/programming_examples/ml/resnet/layers_conv2_x): Demonstrates the IRON flow for offloading conv2_x to AIE. - - -## Acceleration Techniques -1. Depth-First/Layer-Fused Implementation: Spatial architectures provide coarse-grained flexibility that allows for tailoring of the dataflow to optimize data movement. By tailoring the dataflow, we implement depth-first schedule for a bottleneck block routing the output of one convolutional operation on an AIE core directly to another convolutional operation on a separate AIE core, all without the need to transfer intermediate results off-chip. This approach effectively minimizes the memory footprint associated with intermediate data, mitigating the overhead of costly off-chip accesses leading to increase in the overall performance. - - -2. Data Layout: Optimize activation and weight layout to enhance memory access patterns and enables effective utilization of AIE parallel processing units, ultimately improving the performance of 2D convolution operations. - -3. Kernel Optimzation: To optimize convolution operations on AIE, we vectorize the code using AIE vector intrinsics. We load 8 elements of the input channel into vector registers using vector load intrinsic. We apply the convolution operation on this loaded data, utilizing for enhanced computational efficiency. To ensure accurate convolution results, particularly at the edges of feature maps, we implement zero-padding to handle boundary conditions. This comprehensive approach optimizes convolution processing on AIE, facilitating efficient and accurate feature extraction in neural network applications. Input is 4x8 matrix corresponding to 4 element of row and 8 input channels. - -4. Quantization: We use int8 precision for activationa and weights. At int8 precision, AIE offers the highest compute density with 256 MAC/cycle. - -5. Layer Fused: We perform two levels of fusion. First, we fuse ReLU in convolution using SRS capabilities of AIE. Second, we fuse BatchNorm into convolution weights. - - -## Data Layout -We need to ensure that the data layout is compatible with efficient SIMD processing and rearrange the input data into a format where contiguous elements represent consecutive X-dimension values for each channel. For more efficient processing, we adopt a channels-last memory ordering, denoted as NYCXC8, to ensure that channels become the densest dimension. Operating on 8 elements simultaneously, we process 8 channels with the same width at once. Subsequently, we traverse the entire width dimension, handling the remaining channels in batches of 8. This process continues row-wise, resulting in our final data layout pattern: NYCXC8. This optimized layout enhances memory access patterns and enables effective utilization of parallel processing units, ultimately improving the performance of 2D convolution operations. This transformation ensures that data can be efficiently loaded into SIMD registers and processed in parallel. - -YCXC8 Input/Output Data Layout: - -In the YCXC8 (with N=1) data layout, the data is organized in memory as follows: - -* Y: Represents the output feature map dimension. -* C: Denotes the number of channels. -* X: Represents the input feature map dimension. -* C8: Indicates that 8 elements of the input channel are processed together. +``` +. ++-- layers_conv2_x # Implementation of ResNet conv2_x layers on NPU +| +-- aie2.py # A Python script that defines the AIE array structural design using MLIR-AIE operations. +| +-- Makefile # Contains instructions for building and compiling software projects. +| +-- resnet_conv2x_pipeline.png # Figure describing our implementation of conv2_x layers on NPU. +| +-- run.lit # For LLVM Integrated Tester (LIT) of the design. +| +-- test.py # Python code testbench for the design example. ++-- README.md # This file. -OIYXI8O8 Weight Layout: +``` -We align the weight layout as specified: O,I,Y,X,I8,O8, to match the input image processing. We first load the weight tensor, organizing it to match this layout, where dimensions represent: output channels, input channels, kernel height, kernel width, input channel groups of 8, and output channel groups of 8. By aligning the weight layout in this manner, we enable seamless integration with the input data layout, maximizing parallelism and minimizing memory access overhead. +## NPU Implementation +The conv2_x stage of ResNet comprises a series of bottleneck blocks, each containing convolutional, batch norm, and ReLU layers responsible for learning more complex features from the input data. By offloading the computations within these blocks to AI Engine, we aim to: -In the OIYXI8O8 data layout, the data is organized in memory as follows: +* Reduce the computational burden on the main processing unit (e.g., CPU or GPU). +* Improve overall inference speed and efficiency. -* O: Denotes the number of output channels. -* I: Denotes the number of input channels. -* Y: Represents the kernel height. -* X: Represents the kernel weight. -* I8: Indicates that 8 elements of the input channel are processed together. -* O8: Indicates that 8 elements of the output channel are processed together. +The below figures shows our implementation of the conv2_x layers of the ResNet architecture using three columns of NPU. +

+ + + block + +

ResNet conv2_x stage's bottleneck blocks are stacked depth-first to avoid unnecessary off-chip data movement. +

+

-## Fusing Convolution and Batch Normalization +Similar to our [bottleneck design](../../bottleneck), we implement conv2_x layers depth-first. Our implementation connects the output of one bottleneck block on an NPU column to another on a separate column, all without the necessity of transferring intermediate results off-chip. Compared to [bottleneck design](../../bottleneck), the first bottleneck block in the conv2_x stage requires an additional 1x1 convolution on the `AIE (0,4)` tile to handle channel mismatch for the skip addition between the input from the skip path and the input from the non-skip path. This mismatch arises because the initial input activation transferred from the skip path possesses fewer input channels compared to the output on the non-skip path. To overcome this issue, an additional 1x1 convolution is introduced in the skip path that the increases the number of channels. -We assume the BatchNorm layer is fused into Convoluion Layer. Fusing BatchNorm into convolution involves incorporating the normalization step directly into the convolution operation. This is achieved by modifying the weights of the convolutional filters to include the scaling and shifting factors. Specifically, the weights are adjusted such that the convolution operation performs the normalization, scaling, and shifting in a single step. +After the initial processing in the first bottleneck block, the output is sent directly to the second bottleneck block on a separate NPU column. The output activation is broadcasted to both `AIE (1,5)` and `AIE (1,3)` via `Mem Tile (1,1)`. The second bottleneck's processing proceeds as described in [bottleneck design](../../bottleneck). Similarly, the subsequent bottleneck block requires the output from the second bottleneck, avoiding any need to send intermediate activations off-chip. Upon processing in the third bottleneck block, the final output is transmitted from tile `AIE (2,4)` back to the output via `Shim tile (2,0)`, completing the seamless flow of computation within the NPU architecture. Thus, our depth-first implementation avoids any unnecessary off-chip data movement for intermediate tensors. -## Fusing ReLU -Fusing ReLU into the convolution operation can further optimize the implementation by reducing memory bandwidth requirements and computational overhead. ReLU activation function introduces non-linearity by setting negative values to zero and leaving positive values unchanged. Utilize SIMD instructions to efficiently compute ReLU activation in parallel with convolution. After performing the convolution operation, apply ReLU activation function at vector register level. -We use `aie::set_rounding()` and `aie::set_saturation()` to set the rounding and saturation modes for the computed results in the accumulator. Seeting round mode `postitive_inf` rounds halfway towards positive infinity while setting saturation to `aie::saturation_mode::saturate` saturation rounds an uint8 range (0, 255). -``` -::aie::set_saturation( - aie::saturation_mode::saturate); // Needed to saturate properly to uint8 -::aie::set_rounding( - aie::rounding_mode::positive_inf); // Needed to saturate properly to uint8 -``` -After convolution and ReLU fusion, the output data is generate in YCXC8 layout. Ensure that the output data layout is compatible with subsequent layers or processing steps in the neural network architecture. ## Compilation To compile the design: diff --git a/programming_examples/ml/resnet/layers_conv2_x/requirements.txt b/programming_examples/ml/resnet/layers_conv2_x/requirements.txt deleted file mode 100755 index 08ed5eeb4b..0000000000 --- a/programming_examples/ml/resnet/layers_conv2_x/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -torch \ No newline at end of file diff --git a/programming_examples/ml/resnet/layers_conv2_x/resnet_conv2x_pipeline.png b/programming_examples/ml/resnet/layers_conv2_x/resnet_conv2x_pipeline.png new file mode 100644 index 0000000000000000000000000000000000000000..8e311edd7ca249ef2f9948d950334d54506d527f GIT binary patch literal 180088 zcmaf)byOV9w)SDL!QE}p5L|=1OK=FmHAt{Pa2*^54;ly-2p%A~yOSWnT|;np`#SGA z_pH0tcW>@rz1GY?ckQZr>e;`&J5pU$9utiW4GseP0|y6zQF9lo^wIjkqf^Bnkxb%K4lz8Gh|BA{dA-BAm8eXSwRjda!wm*N*S!Xju zSBd%E>bX<@Nc-!I){bdvBHNq$&EW- zGK$Q)!;;d|70F-N=Lov~Qg?Lxdd(^*__~N@RQ%~aP@6)AEMoQcV(%xunuw%^hQ^P( zq3(__Omew6(aSWot;UDTg`L7||GfHTZ)KdwH$CgUFxm7tN?~1g;rKDgXX)oIE-ql1 zo0Wj4as$>H9xMYG42E7{zL&C9TG5v0bJRLxB`Ap}et+C8MH4q$Wr2c8ArQYiRVrT@ zT&cN(S#X=L_`&AaNcv=}kH<%WceJgyyQN<)o8z4z?2x}GkAyl7rwX3<*$7Y93Ne~y zk%`V8QW0-%h~Ldts_k$JTOKV(+jXA$M}10Rk3#}?;s_*kB6Z;NPxTa{-n>vI-Kq5D zBosv6$#IAq@C%i~Oc%6+xoUZw^~&dPk*}KF9h|=9^SzxOOMYei{HtVErD)(fsSK}F zVu-Poo!R;;V=vhn7W0lk_;qR`P!4NK$?4Uy4~HoX^r%gkLiH^mM@_=)aXUKzZGYUu z($Hhcjo1I)^JFeZGPozZqG^|Td|4Oikl$@rJE(P#)H;*q7JQ4g-h9;ddAi)d!0qji z)W57)NEa?J_5fh>^SW#*z!MXscpDrmD=FFZMBtuprJ6*&U#NGw8tx~~r%D3nOyzn`Cy*5d{@^>j zzpSh*q5&2~mitLBG3>5mftX%+2(8^PJ`u86juwCYcIImVFvas$3lcQ!t=;<&+xKvw!mXm7etRqdt~Ue3$s+^=HUt3cJzn zz5QatJE`6hOeT&s7%XrJu?!c7l$3O`&Ce&-*SN}D7Ac4{AF^BJab%p!bTF11T&dD< zF>SB|Oz~G|>iAA|4`A2nPLkhvlS9ZQrPlqk10KBuyEGC*DuvRxEW#Y8Ax_woLiCfv za@d9lYp-kVbe_@7S6RqQ21z0L?i8fzHpJCf#`kdSGnzu-8A^8tqk~sXVQ}1Mp~S{G zGGFErva>l9-g|^^LOtc1l9CAG>gC&mtk77wbNqD?&?zdlfna%LrckTnNsAsbO9)9j z#CDTk5OGfKRl>o^3f+=8%RIe8aA!L9y?n2BL3VCdqn6C9W0*4j)AI~W_Uu2W;Qt^m zm7<_9MRUczAc|0Zl8`bCoUVxvdXF#PN>&Cu`IGV4X(NGjzaXr+EjZMp@)eRDiyNVpKO%r}hqRM+hvgejz_V*SDa1Jh!MFMvdFRv-;X-7)z92GCkOm)&vCsZ9rj}K z=D}e__1dAIF>7F`MZ`&q*BDoFq#~gr6j%;1mq=ADPAg*L*xL39*hJ)GCKm%HIMwPt z%1<_%R~-o05p`M)dhyuv2oKns)nt0J9emt}ZFi2hzcQR`wuX|M&~Z8tw)(r!2E16m zEV>M{1s%`4Wl`Jsj<0(!_%}h@gqWt$r!ec`m_yu+DA%X!olLxc=Y|(a1|zEyU{i@G zJltO3BR&Ti+(-^}qJi>xSkWbZlu-4li9ggRysCclGPV5OdJk&uP;xG_OgI*$60jRu zj}t<(%c5mrM5uU#@Gf^<=o|!DHIT-N#$RObJk!W3S})03&nJ|(w1?W>V>1Ox9+jSikeTJnY?PuDX!yxb1snCjywg#M%k>XI+uv1c9;@|vwITG2Dybkl)tPm1G zCJnr*uS3Z8<8pxaaK@WdR|>eCvku}_RZ$_BhWx&p@G4dmCfxG=`RKHw6ney7Zv2XKW?93j=G`C6G zspOzNb%d>bh%}Swn%t*^rT7ciPuQaQMVj@eSHP#O_c+K zJ0y0Yt3k=2eY~8Imi=$TGWwe+LFg$+6XqZ^b0)joAU9bXNm1_^BM-qNlrFq*Kd6Y~ z%-2smPPUlvQw$N>is0ZeX|LP~q~}Y3F?yE!j3*RCp!71nP@V0LtONCGx;ea5q~HQU zOnzy#5u*!7W`m>so_4@&s-GlZs7ypc?(yMjh1OsZ+W~2cd9t)Wj+z+d^PqduRoE%X zkgX}=>C6-@+=R3r%m+f{cRudou*xFlJ=6J__yq-cHc-1%H-=F)lgS@NFj}aSyBoX~ z`<6a3wn;iNMtXnj+4#)vOa(_7q=u%opTOSH59z+{ClA*6n)r>IM_1SWUsg|OCM{et4j(bhysIGlnYV` zb0K0@2~oP0)QRl=nKO+@ib9T#2sV$;0>^(k6|1a`_y2a<$HcGTd;o7VfRC7|1PP80 z4Mp0;IGwTylnLi1L{p!{4DW12FM{TNmGi!)eT%Raf7PE0Wz(;5W`tU^vtr;t$f2q9 zkQL7jOz2Dp6d_cJY`G26pUd96=BR0f*2_KM5#N6ZLUSo9`;eFzEoCM^33i(b>v<(x zukBI_qmV;`$0HKRd+PGuOpvE~clqh*;V3`~8mnHe7RWPCicXl=@ao{X1ii(YWbHtp z3;Bbd4&FwVdY`l+2KDA2fAiYXGejCUwharZVLz@dnx9UnQE{QA60`;{@#BHwILCg$<;t(YE$|JZPjKt$C zpF`Xbj{Enx4Jf`zRuX1tc_&vZ0mQRP0hYdB^|efCBy`&IGAG(UNi zy*0=?dyL2w$4YF+zBa^_m5%%5a40z0O%8ur`S$VIeTtbE?SWuETZjsRGER}3RY1>* zSvIJEXCA|ni!*ecOh!zkZdCMY5iO*NK2j3xRk5b5CC9=6U|Na%2PX899AGYxN`>IZ z;L|m#H5AZL|U z#(4D*SxKz+(;=4i6m`3xF+@dJ_dw2}jD#CYt7olo<1W;#NEtZ1F>Cju2w4yl&|UDN z4D27m*Gb&8v8i~H<^qT))z!K;=5>iR?ZFQnT`Jc3L<11O8vC3T@p8uZ77qhKw(B zZn*nuwUZV5K+6F?9!JT%s9-9v7e2z*0S>m}fA_MecY8FOV;+BW7}E*pKZ zlVyt+Gk(C|=nD?%AL(6_N1q^$lD*z&It>mrC&_1KWr{a0p^^OdJ%eA3qNe~8=iPA= z5@|F-uVr9Fur-TVa2`HDpnxMR0@9_;cl7vh7urO06*%$gg0rs{a=eOy4nvO5SGO*K z-UZu-4r%MNuL@BJFdnh}91dRfJz%UPOcV8~6R^Q5G2O)0q+r(aJRG{C7W389bLn`i z%Z5NOsm>*h%8DvYv5CU)?Q*Q~vwWN;kpG7`gwaRl&i5Tbnk0vmtV-&{)Q5s{Qr%H) z@UMAGiD=|wDR2=*kHZVV^YSUwFHqIhyW556=z`UWYWN?aA-bYTTdf(qwzLDDh?CWj zdt4jp8ex&B+$+9*d(ILv0v)_L6 zD%K)Y2rwmYO4=}?gOUG(>Hd!)m%;;b`YQSz35B4D_r#DhdawGoGwhPz6oc^5 z)_|l#DAEMSOfxjH20|yvsZ3bxP0jS;T?d&xql8=#PWPIKcML+FR^K&jjAXXs3f=OLW=Q2D!&;A7 zyP$8xSMF}B{v%lG0;tK+Xe^1c1_+_rJF zNdR_)|HKrGDRvz-T`A{f#sILq0R^Ybc9s?atlN1xA z$FMs7Yrf?IjbmYE;p7(~PUhdhO-BmYQx@+o3QocF`j?WXN(Q!e;b*xRJY7QW9L~^> z1WL;Bt_lch#yXVy%3cx#LB~^Cm9*m5!|R;f_Is}o=${`tOb$<{eha8R}M=yVbo!K7!#`WZY#5>oscvFi1#ouawNO`huS8TGN| zC?Lr+(JM{!`kl?O@txIIfch_r1wEFAK!>q`|L<3z1{kw*GNUC@a zcr{R(LMl8M+bkQ;E^81TDcGs+FRsuO9iY8+vOF#fpiqf-@3{VC@$0MI4hwatPgb#G zl5knGN3B;>y*)i+0||621Q^EOk7dF+YIIJ{M#X>jQwOkOb=Z&PKy~WZd`Y2!kU*}p zo9*nM7445ol?%222@SnlzrzWSU02s+3F=QGEON=}lz>B-Uni}#8Yc4om2S<%$5(5} zRpu+V_JAau^F!>;zG*APz%xOZgfj4G@Xw=n1b{t1Rx+sq*k?-Wt9hOqlYj?Vz{?i`#1gSKNPwi$<7hc4 zBSRT5|J+7C2en&6TKf7*07k|BWAS+3PP5Lp`3VEbv09CVuWyU3Rko4JrU2$a;1bS$cmGe{1+pJKTo*(_vZaUP}^TXwAwD zP~=HUNns=+!NC-cBLo&qKGX9}Nsd$K9YiF$dy9m$e3Izae_KFK_6lP%Ya6Uak3Up{l_^lYm*PD zGQBznZIHkO3$wiK8sofFNOwdt=tt70 ze{FvpRPeR1b?4n&liOZTtW1l6nHd&zNee)+b!jFfsA{f6$s>KP2+gJvGHRcMbViCR zS@6!VJfNI|?V8eb!0Q?W*@19c7A#TA{F>vh;Uz+hl; z&2D>)N%{b)3%;i0c;U)%Zv){$k7LskLFpxH)_@U+ zMYk;H?bpVz+sgyx56{%TI`3qO`XJ(B^acRHE99drvuHwt^=MWI5~;&++Ucx)rbKYy zZ7aY_0<-{n)*C`T%EHH~TA4Oe=U`AZ0F_nZ$<{b74)5(g-}$)%z_GG1RbU!9e+j$q zGby0y>6_9ZTTlh`I}*ot1697HYtqr3!=+}}XwI(+{aWTL@_)9CeOzFLE0JONnaZRG zOJJz1cu}Mzk;TdPsr7myJzz=|-)t;lQe95CV=%9xvo}as*1K#er5+%G?f_&+G~)-z zu&SB`t9KU>#s%CQo9M}!4)*%OR9D-9F!HN-U`sPYI_SAP(14pAqr$trWi?JZ4uZnX z1s^o1L)MR9h=Oz+tEIf-Wz#0J+~;k7uo0cp(en^!e~n-;4DTj2_TFJw zI_PU4KCIZbC|kzIcW%*p`H@!<#}phtp&qa%i^a^xXIcS$iv#&yQ%4{M{XslO2Cwo$ zqRe~^2|5T*#B1sR;zmKl!HNt1MuK8e`~rW13^Zf5Xo?3yDmd>6Ya(IBos~A-Yb=D5 zjNyXsMP($Mm+=36bouxnI1QV?wL&T`y^ujpfXh}Y%a=~rVK$YAPsA)y-4SP;GJtGVZkdon zl5+Fk7f_uQF8h{0-~_t7JO4fYqx>k__cXGSO#=Z&qaH9IOL{{(*}!H{M=+EEScQpa zaUvIDrxG84bTfvG-_a1>UT`hQuNRYlQGLzT-lE?U;RE(Q?HGEouC93S1T`ATt4@m{ z|A*xgvQGcsKpZ_{pRwu}q0E?Z$3(Vfy-Y|SWtvoDCu!0QxVeia<9QS9IlbPYJUOV< z5l&iS+lr*BHgmfDkLe4+2R;6HZF(2#K@(w8xiFr6%xj&Xi$6;mb`$pE_%Qq?ie-!2 z{q4H5xTqNdR33V>T%4NOU;5;0|Qat|Sv? ze+>Dvd+C#j+&;iPuq5?BKGZzsDWKz_5#gp41r_yPGPPuyZc%W&*Q*LgBb~-Nl)|g6 zj0&XHAfEssa437)P9V1=tz|@cufm}?fjG=PX@CX1nfxLrF@!ix7_^Xa_fG$g7E+(_ znOfQi`y0uF^1@TD%{x9XI9#MBAy%ahC8Q11w)eBTU?~hGtD+z-c2UZj(-EH02w%fu z?}CrAw=H%C$Q$IlWE3B_n4N7X>pDxvfx=PKMyzm=TDDlzvZu(GePQI0vN>WCUm5}v z_2ax1Y20?Vy=j;5Jo6d!f!D2}Sb!7(r3fSSr@hy-K&&XT z+x-+78}z~4)uI9%{|HY|Xkfc5QKJp}sBtHVKdEi@0nyFT%q+K(rK>t$^^=hQ_t!vw z0`IN|k3GqU#TsM?UJb7X0%Gbn+p7B<^`Tl)P9pBgbpqy~T<4|&shFOuZ^`O>;&p^~ynFvv=^kR1k zA7yP#cB>PG`dm-0h~;GcvwX>*gZ9;uN4BG}iw;#je;uU{z6(0nWLG8X82W0kgRQzQ za4LF(O*IgEI27m=%gi-{s*sc0Fd89w^#v3}9N$0k;Vaf|ptW!C#LGeAoYhkc5p*{j z;1n_4@=`3jh%Nxc+ps7W=kTb$XyZX*vxj}8ty1G0Nb=aHl8 zmTBgZTUM@Ba&Zf2rOeXg+^~IRB~UAxnhYqpuRI_jD^(jTq|gXyI7F?ZS7yKXeiPWkpPzBTA5U(n{&G zb-Xd(97rIvSF$weqj{%3Uy`e{WzH(GhJ{3D&vc#?a`+L^k7z?NYg4y5dNZ%{_18k9*WP+f8Px-$=LD@T@C3qN4N=vcjS-11 zt6=!9grw@&!=cix2)ms1(14S88tERI(m%N<&fFg}Gw@S%icBhd zV+GGXUd)&bQ_hFpbu)sPS;~Giqcg=kQ%O@_dvDQFwsuT?Q0J9SoRkLnc_9K5oq~zi zi-Qu2q+W&t4Hd_w-B9||O15|%5)SYV0_z|LA*CWO&<|n~tre|N{!~|Q!wz`bcxtIV zH)hfBcO6SpuS^a`$Ufkx6sh}DOopDZxK;;Y|)L@&?@2=qR=qc0&Hjt1D2kL<&nBIKzKn%Bo}G97mW z`J5oC$YYu?V%i9uqGlX{*HrL$dw|-QqjL_>m-%jZv`m`uk=vQaD?@^7p4~NpsKP}h z%)l1}Slh#x)`xN(Etd)FG5_8u))H=p6$D3&p`=T#S*iZ_a&Q5N7;Yi5yK-+&n)O zmL|Z8-7Nh73BL>+hYTc}GoeR@2$8j}qWcYqs!*LQh#;thM2WqK;zZ3GR>BY9;Rao1 zh9yD?Cxh1Jb5GlDCE+@k(=g?vT)HD%OLQjkG{Wai+h zJZLaU&#<*S1WWk)ey&&vCJ~@09dzC25nn!ix=UqO;AQVyy4JucRmUgH>3W&t_E5G%4Ge42+$x_AATBwJB2uq~_ z-YD8+XR=>bg3!A^C8BxJ4wnSk!~<7^TRsFbBXc{i1I* z#=5im=)GK6tBEfNXS1*Z6c81-?^}(U-Gj!;H9m)V!gq-mi(Gzj(F^U55m==jzzU-KelLloxynIBj0A(D~+MaXY zlS>Sw@-lEC&sz4!t|S#Y`E@WANjlXCo@u{DWibqY>+HfeKyz&;Z4|8-h;i;zq`%4) z9*TKBSE5rI^^T!juf-NuMS+g@w7$mqM%Hg9!aFn0+@bws_D! zcqgG61aPJBJ1#OsZS3)&jZ#x&GJ9N@jx(~bD6=x- z-=}Q0cWn-Wuu|a}yLyKYTeyzx6>l*hUAie+FXOlF^x)s`pIpjNzgox9O@_#cdAky| zy7#!kp$9>tw6wHj@hE;p-4KIDX*~%yS`&l+X>VeTY{Ui-VW0tGWiKkT-js)SD_jVX zwtm|2x)mBT8xsf@5|R6RLQX>?!F8C(_*=B&DEGYfz*BksGOc}asGTzM{qwaYw4ic; zl{96QyO6iKH;bHhY*HB{o^Thi@rVW2)7Kqz6%xYVp-;vIpVxdScqp4MXkDE+=qQ@gF&DLnZo_v}e1i7^Wxt)DQA1%Xak3jc2P9F}@ zyGgFd6BJrFOMw9w6D*@|YNKl(|AcA@r_%gKkO#|su!5XEUV3E4awgIlam(G>C#<8O zi63e{CLXRtYF09zoK3m2i1lpFw^p6iu2x5Z9%+ckA9E|R5TpDZ5K|%=NIhdUN2)BG zYaMPl9GI1LNCFzncKF9ZtO|qfqfaS?+Y8OKh=kQK5P7a7mz*G7^sAEkJ8cC<+S-P=mjYg%khm+aFtD`6rR=Pz4{Kb*PpP zx|tzLp#W{i(uHgd^nd&c2)qhMf6cqD&bAyy4#Mn`1^Xaw+Adl2$Nr&VVSauMz`Zze zSFN=<$G3g{>3qf!0{$7~{d|ye7kCyG_-6-`9}S8B&;oKOK%(c{0|G)34(@-X@t7h4 zJ-+_R(kp^V9S zcdiLlsAnC?^KkwPjNY0@UwINQUE8y(ZU5W|>eR^p_RvrTNg%sau(kbKSdP>>Q zD9I4!fK-IZ9IV)wIf6|swusD!=1WNby2pa$cs6{V(o5uKhIUsk3K4Hwyk_5vFOJ5i zj%DT_&ib!_?8g9OzjQSD`Y8q{zNfMowZ3GTEAO!iSEQ~2jlgX=o{df}8o~$@^+5lO z&hBDw+n=nv^ZO;a7dvI4b7&xLL0;*Rgh?OXQ0K;=Yry$0!L0+HAr&32IISy(9XsD0 zzbCI?2JuvpI2zT?{}x?f2>|Oi?e|$LDLewWA>;jUBn6|foB}>V{RX`mfIJ63$SR8B z8jC!yn9U*4y52?;j%HX5<8(D_q|<7l(YK5lq5r<<=HoOd;$XaN`un9mPgu!5`hYU? zfYH{l#US7M!`;=4QBR_s=G<4PqY2M#M6-x5X}xahpu*#u`e3105z!CoVpPg<`jJ2X z`=sM|{@D~FzkKE8IygZP&_x8gqItULIFBKxDv1ktK(WayNr16{QB_m5V)>yjNTw(FQiG0*+w(!nliZ?<+HWOe2JS5AFY(q1@|5DOa;duR_F zsE2bNO5whG|Cl8qiiPDT>&_b~;{gSk|$C>Hs*J|?jsWXL?i2lSUhtKjP-paJdcGgk# zTc^~NKmOg%F9DNiNLYG2wBwyexQ2U+qN##Me!!I(iwlN;yb-xRyoR@j%UD#3>*)*; znUHc~5y96_m`3-ls9^afkT}S8khZ@4;pl-y^XvOU*4WLeO^3U)-1ueMzMcQPvT=l~ zUXIcoqkYv@w^d=9IBSA<<1N==iI@g?L8|^Ec2X=f+>jo(SDza;Xhwz8Mw@fB)B==( zO{&os_9nS{H=f&PaM>Vj8)+^}JDmsWY})t1_d(SOtMg{>{5xL#QA|}x}kX8|=lfH_hHN3(MkyR!KU}sw{arqqd=w>n3WpoKl({vGZk&w7+RVQ3H{Y2ix zTWxy(IK9ajS|J0`Jb?)!&Y1Ub9=mTZR?XQ2?dhFVwW#13%Nyl6K~P!9M8tSU-mu3R zF}w$gfjo#GsA0E@MpRfMs>nzP(?o=D(BQ9al!-ucE;*W=j;u;CsjzfuaTF~S*Ndjp zvtR07ejOMvh=Z%Wa~-r9-lYT=Cw8fPC6P`1`A;_f=Y5z*x*U(Tpie8I>GYTFqs~~- zfzQFmx^J{hH&t37Q3p*rS;PjOB#0pRxlvkK_~#ytvo{3-I1gb*@9^Lcpm_=0DTWvD zuQoaRDDb;QT>eYopsTbw9;%U)E3kBWEJyK;W*(3#V%qHb4;&`MebvjN6t)CaA;c0j z*LQZeAn`!B5kLhpT*hl(6RaDr_cL)GiNN@`KxB1h(t?9z5U~M;1M6Lz5b`8acjh|&j~|u( zH~J^889xq&Fnj8ZR3H5>8vS~#MZ%c`ze;w_Rt(b)JJtdFvZ_O|Vo} zcU_LGtzv_qIAO9wSFPd) z9W!Loa1R$(D^EEE!zoedDQs@{92?q&$xW*@vR>mP*AgSt*k3C!$yM2`=hp6=i>-y-D+- zfO@vPe$ecQwMbtuMl|ev^eVz+s(ssG==3&)Il;8>lac$Yt>G{%k08&J>=glp)kKRL z&l@8Bn)j{M*c`@f!+VeRzmS%M_-Uh}o=Ng5y9f$}Ho1ug6LENmh|_5lJ2Cbp#1m(s z8@Qm`{36#Xa#5*S@c7zCDf|-(>Ti*f>kQ-j(n;Tb)VT5yxtNW6Xz)A!#r46JI8#MV z;B=X>EXyla;sAs8>6S<97kaykq?Xm6mdz$_BpP7P0SWoGT^dDml4nLMxNoHql<0e! zDVSf#i**IXA>e#!F1`&75)b`+tFh!BDuf8@0KvD=@=O>0>Zt`QLN>NL3k9e;APEdm zjCIdlY!)r+K}@rn`px@ClE5mw=GAb4YBN@TyieRx)f6w|}i|mbU$9?5amt zvfeR7mRLCC)*h{YJJFatM|DD|Yh^nr1&;mcPSHh=P5yS<2T3w>R`coX{ySEe9$x=V z2G1vPpIt3}Eb>*uOw<`9m1f`Y=C`HJ^bwynevLZWoP1-;YBJaJV^11@BsY6_q+|>> zRN6_kqqE#ym6VChH`)mv816vkYZAtqTCcVA+a2p8^;d0W;OIu;ztNASoY{tk|5>)*l z&mN#OeeD0xGSDffxHt0*r!SF7`ul#K9L9SVAcEt&Y_IgYh@wnFlvc?c3X{{{{m5te zriwRk-K-(?T8EmB=he*6)T8rj!sHcOcbdAc*P*|DbPZ^k%p~e4R6M?HT_zMP@W58o z8yu~PlE={lnqw-JSo^4RMnUk(^t|5CiD^G%|?gC%Y36x_|#6W&4BHg zCjZm@Su%@~fC}q=J^@BOo7ggIO(uQeMCPUwX9P2y#mmx=9=^83!L^#+2`r9~`Af|D zPsnX0AxkkF=iBO(Z*4f3K5UV=*6X=0m#0R&KZ^5O7~sURBWq?eE-?*DbZSe%xs*Xx z2I(o^yWhouvECHEHjI^ESL0T8nKLm@-xlb!H*-CFIBeUHdM@I+OOVQJ47>`1R!Uzb z=yAnPtVrP_O%~qW(k)Ct%Til$#L0|X#t`9L0_70#yw?UiXlh8W`k;(Arueo1-=~d zGf8kTMi@wdK*6+H_@fdtol~(fa_)Yl%Axxk^4;YPT7w&#k1o{Zz`h@lGOWpVlTCCC0LrVxQYZRW*jN^4dwGlGLS$V`CC2)EU zha9xsqJyv2H#Vd$n*}I-6&%hdDVigQ8ZVKBZ8rZJ;d0hNWVnfAO38}07hW@32>+;$ zj$P8;mL*%^&pYZYn@<@mUWXIrL_~|Kv#wW4>#ozIZYY!Rz_Hk0e#?o)r#U=jj*jIP zyzM;IRv1#F&lN9y*l|WKGXE-My$fcfxUNpO+w!_0DW9{Cm^O*9Q#Xc7k!%>@tmX>d zjKXf$T=>BGUF|Vmkq7)|`Vei@IFgB^6c^#C9+#WNXavEzRA4U_iBpfS<#wpsW6G*YYdn=LKoxdSP@@S&@?QsT}RpB6M~-;#|jBk#QNkX+a-EQvNs zF!=T@msb&cJ5|zQ86>ECj=>V{ZpTD9*maFh*-$^rog+ zc37%6eO2;`mRuj^fSE4FotS&3!)^A&EFmz}Q7@j}Qg{mn5~K{7d6bxWVk{((xKGhS zqSINi`~#-gv38Rq6wRLI2Z2-y4c%j{WjJ2ZoZrv&1Y2A{QH`FwGkmI%da$^7@~OBm zg#TS-B-vA&3&_KbvtEbD@jjSQ>;$g0alO(pl!0qR$;|b(yGArN_@HK*ppy|6{1Q1m z_;9dWHuz%c^A&f*w{z0PRNcw@R9$O(-qI4>?6^X?N4_(t3 zey=v3r|A;7(?%lX(q8hqr;*gX+4rQ44!&UhR#(?Kx`Z!iZ{1tT|Jz5C*!Afg`K5)e zs2}mL;bx~p8PSWd(gbZtbOB%J3qQ^~?}n1dbb9xnd(17fRm4^OTqPxu-F|mX{X-w) zAtdx%18XbB0YQh?Z>&SfIJxYlK9dcALc$LwE&r<*pi0*aHD`esuSyAcQYe*N6fw>P7V~@rZ94#U-Vm$F6yG zd#W#o)wOZt(RwPQYQB|nYEu~^emB(CM3G<*x3BZ}-dYLco5b0d0Xpdcy13-jvoXM% zWs$)Jzj=%&RtqtBt1dQ{w#Uc=>wF)6kFv``M(>e-73S9 z!01+z^2Q`*Vt-ZzhL7*nCy$ay=ygwzM)^jyn{VQdN|B~h>x2OF23zl8f;wp%KyxUq zo!tvH(4uf*m$XPTCxelubCHz${^|X}T;Yr3GFyZqgF?AS;*YMJnDC6Shw#(o?{_vQ zdA&)3*2qx$l+Mk{qgn3P`@-(0L&PST5*6)Yvix+6;Sc>YBNT>S#3)g$b#_&=D$zAw zT#EZ3qXVLKBYQrx2I?RPvPQJ&FzQt$k~#NR9qekmS?5<+Hd3={fvnRdE#-_bgmDxE zcuUA`ZsB6kF4xvtAGC;erCS-%5Z6%mc_U~Xr8T6Za8q|iS~xb}C2i0w`y&g4_(bm% z^G$U*qhWFQYr%bkJH%6Fw%5^1DND^B*bTjUkUjgpRtX#qPg9Z)-ERVmKZFBQ+=hCJ z@#Ly419zmb0Sp0f%oWEpAG&jwEY6d9p|dw%PovhlfFr>^kp6JGiSPSu+&RXn<|J+QLPCveo<;jU9Nx+>{nYnoHs7Kui1>FbBU~HUi#N{N)hx&DNWn7YO}gb=g`n9H z;<39%?ntF@-H+=Jwiz_9-bP}kJ@td&3|aB$2Pv8}Mt=V-Pk0*N)}xE{LK%%}Ri!*F zT0Gz-vA1ilne|IOQHoVLz7uySBub}1t08S?Ptv|uZ^H55C6J*(BD@S*B0q_AynbEG zT!&s|b*ZP>k6Rj!u(-z7^l3__%BU|fli>E2z08`Ua~hAxZ5PgZ*tqvAeEW5z_3v!# zLKxz{FvV)DqD*+di29FZx`~5lhI99o-U7#dKTCv>gIIMv5JJ0sGXR4^&sD}~D%fd8 z0r2M-Gpk>g6qk7X%P&Gws0ZAZ@4vs8TXzzH`cFNTW z!#{7QO`)^z3Yb4R`oz#o_A!5(#iFm$M=?<_Kj4X&>b@iwFG@&Zy)3AhMNJ>B*puH& zWh2xvzi>X**HzP@h-?lvno|az%k$538N4LOuobr=M7C=K6ao@?GbVJ@oOjNEMXcC* z#mBpiR;{ou{-*6E0u|*pD*?5twd!4nCc7?fuL|BPd#my*i`IUFYHxugp-Uu8540qVYYxHlLh6e^fNLXh`S6 z{U~6E*m^tO;)2L^hfUrsPNB7v(EAu~pn{jZkEDMjUzZB*$6fbJ#};Xap1u$iS$H5- zUb_VSMtjaf#E}lUY@-f4Bb-Mfeobuh{{SFC-@eC_8Sh5H#?#k2XbIw3(*{ttPK|XeeCi=XtbBBIrMwN96q6Q5@eL|@-M7N&0#yy^>kDDHy#QK85;H-pk8C82C3V5Y zAEMabccW1F?(yZ>s$K(oiCJ$C2!*O}83Kerq!PtU5C^D(`FNX1BZ`?I_OYYb>@uyY z*xMaJS~$XOj=&@_lf;$`X(ow{!RpUMD3AnkNg2`cqG+laUuvvkK}@wVCzk%VCRLQ6 zW#wXOpHfV%Dwj~tYK4>%Tjp2Eww{Qg%{j4jMXdtA@-gdTEm?f`C7tP!x9575y)P44 zuWk^a#Qu`RmtWh5)-PWxN^2!STvk#>rCCK3Q#C$7$oPJng6%o9Z_GN8K|;{(P6-i^sjKd-Qc{j480e#5S+h>ycEVi4y#QuX>RIiTXy^O;>0+B`(tNor8 z#GyMnv_!G5i|L_TLr2N<4yj`Waj3VNb>%agD3)R*e+g&nYJ4(hCW&33?3^UEZcRA2 zj>9_ym?Soim;A!;=A_F&5X4(^W9Z$zNwhZ0K?dcNMA5>o=@b)Xyl%lr2^H}@8&Y&{ z4RZIY+6B};wb-YkUAHogvWuf=!I>E@uiuj&L$mfL(6B~%lpIr$lwOe;M?W2nr+XTo z(EZ%og854nGf7PJzcF{xFYhf7&|5(egAh&sYA+RR$rkr0JyAl9-snP6AwHO(d^|9I zqi&Z3xtnrsZAxseKh`|;<2{e8a^Ntfv&*DKhw>@&hXYjYx`q^;6jLD`EFyB39;Is6 zH`4vwQyKI=_eW9e??F|*l-G)Dd?kt1?-DD<5$al!T|^mQ@1qkd(}|*qiVo&egXh|Z zywW|`W2rR1gwp5jp_HDrDE^d+y8=ow3hCIa-Bjg@dK6#Z|6K$A62*2RiH%rp*o`1Q zmVSb!zWX=*@asPm8yijAcO9o6X5UGtH4B|ZK`XvH&B`-Uh+?(hvj?$Ry~nzI4v%?& z3N|>l;3JHDw^>&j^K;fCh@Txlk=nFvZ~o0V$FM=bOrn@c;;?CU*9B#g*uO?(lGr$Y z-jc-HhnN)>6Tcmcr-wIJ7L}+JQ${CB9L(^z({kvd8imFy7vPkc#Zh$gsx*p=CVI0? zmQX$)D~hJY8FBRK{zL-tjku+LKHb&mgja-jX&KS^OR7@OYDF}*MUKmwP2N$7KG~m0 z)7oa~lF@JPPNH}AB+--2b4^nuYl-5I#*d<&H{59m{YWQ?Rf5=x1L|^D9H&FC{3F^T zIx&Vo)*x!#-GVB2t!}7|f{~~srW zTvm^&_G{=J;ayrrJBKc#N@rB1TEm*VtlqItc2eg215|Hx8(lIQq*wYEd#UE&W~M5V zeI<$`nIu-fN8sgMcVuhRyKT{dJla2Q1C?YIl^aW`7u2R2gPNLtKeI9ng|Q^RhpP2! zNLBjOuTV8fVpr}_lWGlVW=hrdtS5}BXCjFtwi`jbedjT{?v4-X*zsISPL8MCT*o`( zE&V#tvm<+((zhZZlm2&pM2na2a#q#Ogd7vZ;nSnFM6uED^iZ#%_Dm9#mkHufZ?(Xc z&n%B(x!W!r#tkcpUGy&|iTxXRkwOxqpCGX9#@FzMB-TE}tRRR%q~5eTO;l$}>ufr+ zN|7KvL4Gz%E}>64WcpfF-RodwQB)R1iP6TbAU5R0((24ux}jcvIieRN@kL9jiu?T3 zHJws5_7bbJV(IBEm1$poG>vJVOP6_J8?iP!mhM=a>XzI^4f-srB2?Euc1@=^9o6-M zBk?r)-^z4<;}djq{e07~T$ve1L)SZ0ot@H(Y39tC6n}b8kNHO`NxV8^BR%%QDBASt zN`a9T1Tl!zy`vnei@J}VPD!oP1nCL#6KcK&x!cv0z zy!dz_RlB|+Rk^%A6>Q68aMm*BVxfqwUY_@ zSR$e$?{25;Uk{1z96cp5Y&&+3SV@&SRHZr(v@|qEj3m+$#YVR%+kqsOlR;14AMzd0 z4j#mL`9*YI-#6*Np)7jz-t%bapzgG0!+yGY(EFmhtonHbRjcB^QeEwP**OK2QaSW3 zXN-&&HO=A`yQu%*kIG#Z4#a}dddhyE(7HXrW`ZMp5ZKf20%u{3ey4|e?Z%FKj^26u zEoU*AAP)5w3w-&^Ac~nJ4t%?ren%#W{ev`8NaAt|kP#zj`0(Lg1Lw`w1NC4nD+po~ z{*ld<>DOcNH0ktg>QS{w)F-bbiq2W=AYT`qbzE103x3L%-Se<;C@G7gxg9eoTEhc< zb|8V)WXI7nEpkZx2ufTia=+=4LA5kK$!GpmO_cNdE*bRYp#`fF_6IJ8%y_w-xJaA2_Ab&vu z>&2V{i8Nt*B^uu31l?56JdzmqQi5~Cb4d>KdH_&3Wv}5oR@pF^+y6Gx#LH7D$MFA3xN{LQ+u>)xbQ`W+R z1Y)<=(B`BLCMa>C$Za^e6UA05?~}ZJ;384ZMz3|ItX~gN@)=brzG1SX9>t}UK5s8& ze6x@Al$@ox#li|8u1;bFg8BID-Qqe}O~j5dcl74Lg;tss9v0_#QAPY3Df2Ro?x zO^qq7cU`Z)dp%v?Em0haB(Zkk(yFnP_2WT0`r!_$az%YX63c+H7>gXP)aHaOAle6u zr-mn@V;}7lRwt*tbOy!MN-TE;7CF-A?hz_@9O@_o_9q}kYu(kHDtD_5(JIeq~R`(Jl@?7s7zW$JhP2efq69-8;wAnMeydeM?;SnptS*g10v~S+p|zc`3n9lg6W;cO&`J->2`GwX zg!|%!cA=XI;?U}Ep;DUl>(M>A9^ALhJO(4iDm;c`@R8JH9 zoodm@c@8zGs|Xd680C{hF~$*y1cXt-*c+0#_hWsX3Suj_#_xG_H6@*%Ms*)6KY2a+ z-gd(FZk5c1QW7fT+~vo_fo`y-sC-rpNII=2UoXi?>Plj( z=50-d5)qNm)L}zYv_DT+XCO}~N8{=xiN7OX5WpbOWI$P2nFLj zB*^~#u&7_{ds|R)7kyifqcgTs*1|(nd-!RT+|ltpVs@wmm#2wPB$C7dIjF9TXxF{V zh0R3cx6c$~Lq_%=N9fpxJE;ECZ7Hsfoxp?bj_OIWPI0#e#Vb*TC+O>~Dy&XQwv`1OB9*|F$ic4&!WZ^n{0 z=QWsJZh!LgG#Rv;%>;N=-?mk>kFj?-p*Rm!7(U zF1xT5O?~fg8voia)bGl6^wO9<<(lioDZkL`@BU5WM_(@T4A-!m?S%TAWSfa_?Uf`* zV(CvD?sI)rfW?Q@g>Rn>M9H;8v8Q(#ZJ9j17X+dXM(@FP6E2WqlGtb$(oYv@B(aKu zw?vl_l32USxwOY|{~E}})qkhQ(eRBahP;Qjort0PH>A+vLdVwj4ynbME7O|)4!VNKanu_R$9Zm&eM4kVUSE+fA;cPG)idy?phX1R1_?E?DqcpN>j zN&k>6kkdF+4@7d;|CGdYI%d+KHL1?~Ay24|d)F$YLG|;Tq%tfj?p&8jJ5Iz<%gV*n zKBbsI_JT}aaArDHjVq(S(&K2v#uOUWELR+S=PEwjmq@SetVA=~XHl#Fh-oz~L~WNY zt0GA0xt%fv!EHsTMDdpIKXPk35lSSnb{s8Qv`8$zfH1~Os5@I1qa?BFL5%xZu{9p~ zo>-ef2VdG`$a}bO?+K9>Tj>#rr==1UkWeg&e*2%D1Bk5LrN;ybyzhy%PJiPX1DjCl zg>{_jM^(9u>p|G2f4P@x-hL{joKuTVtWKwcFK^cEdLZD$p?c9#w0)36NenV<-&5+UHW! z54xKLd-lI^+CF)UbXP`eDwUl$5ByW5vYkTbfm)j^oPZ z?=3N5Y2m!gTwPc^WzIq`ujb^Tf`DDr#Oiwt6U3p?yF$Ah{@6}1NgUd3Yp8Tg5*vca zWunP*=Fp_svpr6#{ku!(U#%sK^@uJbByk{YCV=MmN8;(Je=7^MY^OAb)r70~>QDkb z`=3%*B~SO{#n9+~lWAj4EWO(@Pn z6XHNQ1PI&ytJ0`zl_Gkzb+*_Yk85vRlS;|4Wt34AC5YBbY8F!6gc9LB42y^2GNK;; zDU(5@@6C^<2REgN{GcYDe0nxji7W4Y{PdP&`u1>wAh{>B%BI57D0*;HWuc7zvU3L2 zO(=C*aOn9QtN6gi;`LpX=>7ItPW7_-`Kqi~8nQ0cp^iQ?gN!@Jdf(TFtxu&DnX%-_ zb|O?sVztI90qjbpZ-gX%f9GfP)Hx@&3R$%^9%TpN0^$V+ctNe~E~IJ}X;ktQ3c$l} zZV?1l{U_T{=8p%3LJ|Zm2<6lZ>JV%sBw+=0@1Dn2Q?>q$1bK@n+?PjtN3N!%HfdD% z;nRiH1g_ox%sSz>T9REXh*l7~P(H>a#|n!FD1LX`=1?Ys`~%So@(uYxO$_z2)&mx* z&Lh*d3W6Bw>A0GSbo8Sgl>OUbVRHdxw6x&R^Ep;Af*KjN6!pinb*h)u&tWkDs{x^o zeywvk3k~l_i~B2#+D=3oNvuAXtQ<>F&+mR)~)akhTach~Pjw z_*p|ad~D_}(HE=T(1>Cx#Rzr0JWLYG-+~=ER90LjY*4V`3H5S(qhzZ4a4V4?)c$)P zU*lMqnAp+L|I0`$B7iK$7dpmlV)GQSg8aN^uW+wbpM^6N$-vqI#kC{4^N-mk7`!0OvS~e z^vS%HH2Q@FbZ(DRY4igZ(goMP`q8{>GZ8Zr7Sn)mHGn*Gi#)V1SDdm6K!4S~u}>rd=y!P1O!VGR0n-ilrs*k;0v zmcg^AfHG&zpycy=Q(S%5{kwSo9?JdwCratlkD`-x7Tf(SPS%_cD0B75$b zAdEdN*X?0)zZ{FFM>kg%r0*k5%X|AS%ZQ`9H>A+rjZV;#j5u1J=}>Wi1O^#=--Z<0 zlOIE$cXFt^u2@!us>PSm2koebFg{>M0f!vYb+73`-1HW5_5djiR25 z9Nw>gc25_+!cYW{-I^@a%=HsX>E%}0)TEL_!7IsVz1|KCUf!y4t$tqt=08)P1?R@KBGjUPolZ@5$Uif|x_Wx?I4^o@|j zs?7xQv`YDiyrriuwzp#;@_#f|kW*xz%qT$4j!jn`RQe_NM7sQqf5Mn#-_|H3edRK~y zixz50SU^C{40UGh5iNyn1VY+KfI!oRP$z?U!_Mb<@!FYO# zW0YM4yineoTl#@x!6d0=8Xf;^x40CfF8Y7w4+rV^tXzyekC6121zn!vvKIGB@MXHRogn6*X5*B#&JhVzI1i?pH8?fuZ0+gOLj@biC z+HN3UcWOwxlf?b|T~3Rat|z;wh|!+;1;y0y!by}`Ig#eQKZxqpcE31!Uf(xp`>x}( zbisX8yJq=aV%Od_gO;z}OS7ikLj4DSD7qok#`9+m7Q`|R!kaq&8oKuLBC zU($Q8^r!QCHlwc=Y@~Zfeolk>ccy0^y~OM;9JKtjwi8yXiRE{^x7J_o0AiBZefKHL zJ3%==e@~UV^`e;St`7swU%!fuJpB-*Tz)N8`QKeGGnFK6jfbD6q%+U9r0=SS*jcsf zLp~48?27tBrDT}_w*Wiz3ccJ#lMh4L5H3y+_ALj126e;kh!DqTtZ$}}Kl zkq171<@9WNaeFfD%a5jWs~6G>r{xGsi1+p;(Hpyx=*O<OSi5`bt<3Tjf^9O(RBGThmZ2xZL^*ChYA{A z#URXq=d`xjl%P2n&%Y6;f3*=caX690YAv;dv9zXerDk~Sg;DhB8z)Z+w^I2i%X#>X zEkgO5&^TFm^5TEJfF;AhNt>z4W%Y#0Q3gm^=a(e@Fa$Juo{xkaeA-f!!n|bZyhRM zkiT^vZY4;zf?c_^Z}eJm2w=jgl?Azm`@=e;N}u|oY*0kQ&s8d)-Sv4WGk4wZAiV31 zYVGu!g$nw}J6i=|4m|5U(Z($SZ`QanVmlEIBr#r4p~gqJ^7}SI&;?3GEZYzE5K{SD zb4WAcEv$FAV@Xai?Ye83P@hA6?>w}wj41u9y~270iwdPV#e(pKD!=~N_CghmgB`K> zP-jF-;rlHuWAB&`=l}p907*naRM3Z$PERE$%9GEmPPOl8p+AmSrqjX6o5eW7cnX!V zgmS=>7%J!5_n#)dKg3WjD5c}`_E6^c`^8wUKenA^wk;A1Rh8eSb36KW?$^3l8tH>( zjcu#)aWxq%SGSd;th#+r^8Iw)DtheM?*ySc>6t6(f?my?>RxSuU?Z_<%VApe^9ZU| zrIPdGzn1Q#n}&WY6vlT9=qd4^~+3ep&=7l#Mp^?viM|Eqb(!$S%l=DRn3LqxlG#F}P6yL~>NTbzMpBsU;nkY#>MtMvAq=HRr zDLN&M(yqIOijN+q_-3aWExzUHGC!V1SzpYgv>R`u)N5{bdB2<=zM}MLuTb)Zms7PN zCl8R*UU2N?XXwPD->CY1k5i?d7g$n$)tfjF3m2$_Jh#M?4V|Y7%l>F574frUM$z)6 zODHL+5_Rm{g&H<$OdUI)NzGgM*Uw9ei|N;2exjDGT2uW7r+9+a_MdCj#6}L}1t?4s z+n{SWRcWnT)2uOLY*3@XR)I-kV|Z)T#kfkHxU1e>R;!3*iD9?!@{US0@1R3<2-R)% zxKi4k7ehHEQNojVM3WPgTM{J*QINvd)+wNRi6!(;PAvVI9w+{GU*i)rpng6{()Qaf z8B{agaWI|qK7OfH4)v;5NXLt!>6#TM{fa@-jyo+!*i7ifvBGFtni)&yRWGWbcD`<9 znkefh9Wtp|a(U0+Md@*L|Hc$S6o38yRuXURP7*}1J9~}w*|BunT8AR0VNwY-Nh+a) zXrkjqQFN>*nhq62i$nSzZJI0YCkbz)hsqfQ^@{(L)NN9Vg_2ood10)#c%MpD6MIqw zhU-=_If=nbBLel19>ywS=UjC@?OeUh`6nw?#PTL(MWw>;6l4?vs@s^fcq%%WN2Mo9 z#CG`VH#erzyb^Jk8%W{Q3u;qr%|t5PnJc`5@we(XG@`W2>X9UErP2|3N+PSy@Rn4m zV^xBZa?iu7oF1vkU8_^=yIQ!kV?g@64H=Z&xq1b%RT4|WSM`*WlX&&MAeS0W?kEo8 zJM`MWZY=={w&l>ir`HKA9Eapp68D7qxFoZXijNhF`_%YfQ}Mqfypdk0oXg6bUb6|! zQUsZ&wY>0tlo-Flh?>~xGdf~~;X@aVm%yBqcUZ9O`*^WJf2*>NW(_^tnrpQevw#imiI`&@Lnn_E?hN6DSJ^bl``D z4|(`xod;X$dw-kL<;vw^WE^?wgBBFa^ekOX1}9H=geFayMcq0#qFHYbF#W#4&hUfT zD`@l!^F=X0+_r61hj#Bxr$a|`sA0V-G=J7$@!6E=f6;{3f2HP4Yf#_I+EP|_J}qCf zM<|HlB|P`NK{Ws8&BA&@62h`>m)|sH09QvLV7pyZgGpOqA_fh5ESGl}2W5yel{mo}W9SoJQt2j8~ zHY(b?%VU0q%czr3^(GGFJi?#8h-#?UKRbRRwQ1{ke+c&&`Oy8eX`|yD4K+?_*oZE@ z;!5gu?)g;NMSpi!_eFpGN#nsn;R;@;7_d2&in$przn*P>Q zYIjCQ>e}tBaEF?%zU;zsbujXM%p`HxH~Yyik8Vs7`_!6D5*vq2k_vdZLgA&ZkmAck zhE<2vxhg5F80H>KAdsZ+7Y4CM)b~}B$~d*u?-)A{QuV=pDwFe;1ss`Qa4|&ktDsV6@DW&4Zhqr(ATK-kY0My zzgSCZ1wuuv)*n8;Sw9~nkfc!4f>=##nJNy&N^IenoPfl_L2a;5kO7hl2hzcw0Rd90 ztf)+Q`^peLsZXpCd8PDn90UiyUMP?&ol%Xd4`{5bxHQr}N8j5nl*sTYg@3U&@-}7C zf#)|;qu0AoSwV^LjYa7B2t&09GB{)Ye#-jspxfKaZSf%8GQQX=4&9Rha=A*M29(mH z#z~c^k;<5mMpYBL8c*Rs601KiDA_S!94v##ln%f^|yaz7s;_54#dI;Hiz3y_$DAl)xn!h2oIM=t{BTpt_hU z<;h>8-745)3FXXLa*SXtAuVA*6sMk7o6>OjWMbg9r5YJWD6i~iMkZcH+aZwYTulc1 zU)zfoFW+S=s|hWxI5_UZ*(+$->OHh_-9F0AEu=Hr)~B1UIfJgh%0b2y6c*Fii9gZ2 z@79UW5l{dl4gS@ro=i9lZ{i!j39QmmPrifA{bn7Fo4k-#{xn=%S6os`4?Ou5ZT#mD zjURnEb!zY4yF8Hnz|4DT)x=gSH(ixo-4SWj0ziEat2O3jN@#5zDOZ|zg7TOBO_{Ub zr{Y5gL^Wb-*A?pAq%J+Etf-I*xBf#%Cp<~Do_&=PPHSDEs-;;OwD0z7DJrQF)tUGX z#n!BCW>Z$kD}VJeIx_At@pn(k-y_eB6y$fMvoE0P_dl**u96bkbHl~rvuZ;hq~r@O zv#k75O&my)SXRcDzNkK5@Uva4CcgaqGkR~@n>2XnJ#@jvy(uaxigxeXNeh3NPxHTX z?Aobbqb7}hdK@)w($uT|@Wc1t($v=`(UiB|r3RAp)>=*&`9Ah!F>17)a)*b%YI=9~iz>s(8XOf6U?s7C zokEht{^i0~O9TR?B6fv1^uOS2UGcW?5za3qVI2WG2_peAHO63CBl*cR_(Ci7kT*U@ zIg$2}O_k}l*Vblf>mPkxyI~eII0MX<>;tK+fo30-36}_1^EcC?hH>^^mt5O#gpaQ09UI zLOG3qN*cr*)WJA73&b@72iAe4E6yksUb857RALN8$43h#CkQN90KgO0Ii`zB#b;0* z>yg!d*VBs(q?+3uE~ewJzep$k zTu4bByHSmii({-ykYJu$NMkAKcH8 z-y_cma@?v=53md7qMp&dsJ_RvY1f{fePN3 z&Zf`j&Z4=qXHxAtb!qCf_r3BgetPs{w0+xFdjI1&f_&DC-+oz0lO{Y*L+-jysFwBO z_JKFjv7<+9LCpJdfSp++F|hSlP4B65GD++LAts4EbshJghm(@niW7XjK~Ghlf#_00 zPSgXfBKD^I;hq*`_00W=wBTrbIYl%`V5px5)X$>^I)~?lOTDM(`uGT`wF&t>?#hI2@A z%hlvO+?2$6ZQ<_4Ggwv=;oN6@ExVn^lC+$-ao7NQ;W2&k#f~KL;$J_Y{)0w~E)hv2 zv9Du*ud9easFB2K3Dq54awnJkT#jcbh@m95Dqu0O_Xfv-g)wPWsK%)A6yK!0M?5|& zSihPMKm8z88}<+-pMR-HUsg~+c`FxFS$-ZRpVwRbtu!Z_N^`R*wsyUfMJ_9&veFWY ziqW?o^0sa{^S`9@>8}daG7hh+`Q!vjY}?UgHv5O(AV_fd5yO{QFN%*Gq62r`BtEJ$ z`8|rOudn{}wyb*TRm+KBlEg;)qWT_VCqLrvzWI{gp86W0PAyJrNrw*|5{lxuILG1f z2M_G05%&zGyu1@M{ll45y}Gh1v8;^t?A}Gtj>5-SC4xaP59r^QuIzg)-8NW%Q3Clt z|ICxLWbxnh!OXdontJjeY_(maMZ@Rc{^*iyHlt4lDi76i!pNeXnIy5SqxP&T?RT%Q zSTITK0y!p$eeF_?>r^Fis5~%S)d&MNSY=dKGqql-@{1(cDq{b7LU>(`gXi|-MN`d$ zGOC|YVpPZ((v?(wiS^WvR@qIUZ$r(Cdj=xZddT}pf*R#WYL)8rvt^Rl`WAuDa^db= zu}wd&c49ydm$SZBM3USJBuOk^0M+{8{zk%RIyEot0er43kZ=u;B_pliUm81(C22WP zvu#~k{*B}CUTp-EB$i{q=vI2Y^6S}6NRrsDe#HLubiUdM0$R%ny)zh$;)P4i~Eu!1&3;x+a$0m(+s)?b>O}X;=auydVNgUs-CFTAypK=y{ zCrDaEy*Fo4O!e}I`Qq>SYnIdT*Pa*N!N@oD|JXYZ@F=RTkN;Cifh6>9u%Sqk9$tkP zQLHFM0SiS?5D_pzkgixj5h0*hC>8`uM6te#^+oZONEHM{5G3>#AiXEwcW#_zve`1T zGqXE0Irn*dB)hkq`#<;Y&iv-=xpxdk_@ym;o=@@7Lpb*Ey$EgC1T}8%FJQ4e9Y<+y z4)Ql|Kyms>M0Wfa!kRY2;i0z*JLNVOpFEEIZNG@K8zQ^@8)Z4!<^9%gh=z;LAKL7* zp&lB_A+hwCsdWwca=qiqL{Dpx>e~qtfA;Z*cx~w`xc9zMNO@V`?*H#uI39MR^()Db>X6xeL&;bsM)UVc6YwAUe9bh*EY{ z($i1lz9Dyl@*}_a>T5s}pw~aZWGe$#e3XI;oxXn!A1&5?9^5pk?M}hs4s{ydCoBNds4q zc;VbJNPhW0wmq~?%bMV}$`y!je?IzNPZ%dzpyqo+xz*)0{Q-$-97-3F_se=@eZJa} z#v%NY%TRmVRD?Ea>WCzkqIancMIOhE7>CFX2?(kdAs}=1H=hfeDOCmacl!CthuPPe zI177ycOu+ypxYlaKLUFpyA?`I5u`j z1^7$R&!?Z6?iindbM0|caAMk6RKNZ<)ExP+YTMK_a6Y__u2qy?qbM22$n|I^NW5nC zdwA=O7hR(UzW?T{ z3Ly89@ektk=~H-pWs1iX6$DH>b?J)fk3Z$ot>1q2B^EE5kDk|EkMR>8RpNTn*Ky8E z>@Dcfh)800BDs1%q6QcW1tVMQ|m9TZ*Bzw1&NJ_7IRiw zej_Gcf$`Nr9-_Lb5T}UDAG+x zC3eugsB!B+1XZi%cr9=9&p17IChE_91>qMphjc(2RiHE#p^Y!V$r5JxwoX0gsC82t+-pKy;bDUk0j5?E_Mr6mXI63oS6ztxK=pNT2`nukrsN>?} zN07PZ9WiE;H$E1rFpiELA|i_^KXF+6MJPFO4EZ~@i1|i#z8ZBVJ)zVjpX(hOaII)- zw)N;~Et0)>&t{+5+_bZkDk3M__wI22xA`@ffL7% z;f_IfW8hu)Anm{bOiFx69B}vATkqn){(VRs`vCe6xD!K%-|u#PP@0NOqVGzmR>m8XQUdQp3LojfI-Kj$w0EOx~LT-m~q*o}u65^Gz!42jG2^8|+_ zg}p&y&PS|mEmrl`a!BkdTG&dE*i*!?<1^a{gfk?r>N`N+`Aa#8=`h6qd{};3w7eLR zlbB$WKOnI*59c&U^tv>@{P3ZGA6locYq>W+DquB8ESE-UbPh)n`*A^4v7r_&SuY+o zP%#sf^K^|SeRmiQiOY(L#G${g@&#vp^bRuKc@5D$Zb0=L`{2ZsF^-iJd(TM3^sRV^ zrj(MRcG65l{i_F#-haDDGZEG#9u1OT7j30{!V>6Jx)ig&{0L`XUo5KAxJAd0ic}U- zx{H|pcMBLy2k+IL{;a4cfbfHNJL*uxF+pRBK9<{0={5*nOQp%GFDk%qr8X+9CyyjH z!+Mm1Vd+=9u7a~@es+Sy@4fvN=s)?Kwr<&kd2^l;k-`Lm?-@GWkqcN#BjL)=_dPI1 zL>)_gK9~F=nqTHQtqP@^pz_*V?;$j_V!rMT|67l_v!6g@WR!r|#jl#ybp&wJqDK42eBmBsr@pzZrLzZh|4Pwza6VHRU7ToDqua z>l7j+KqtN{wN*_$t3zVvC;<8y8-2Mt|HP6Zv6@v8n7U%sI*xxJ8^>|j_OIC)&a*ucd#tezgu~+P9g_$6+(t93h zKNt;(PtBQ%qWybN^Zths(Y_0U!pkFrOLMYO@cVY0e(o`mn>hOFYjI}D0z`Gc4!J*m zE9%slI$Pu!mP*l~12{h6K9MUp_U`*}c<{~QEfG1qcqM{k;*gj6BTmnM0&#;!p+=uU zik4gcj;%QL)T9b^Db+<#L?nt&97By;2OzT3RXF)rqKFQz(fbaOa^lo8(@>PQAJuQ{ zi|n-@qxyBd5mL84GTwa+^`Cti;TK;f=6LGa83H8J`xKpA`{C(`y1J(#+kB~%x%w?+ zyuU&;4J0I1x)$ZvF|FFP#naEu_hs6qYa<<8M-jsmIV_c9M~`66laGmm>ALsmiH9dV zijdGyJp1%4r2hO9US7Te>%RLMzis~&kx|jOxpyBC5lrRjS<|t3<1bjeAcT`SJ%Hlczt9u2-o~&0;#S|1n6OlbBvI zQ@RPI`@x;I42j(+!;o0pcC2cU*w>B7kXYL~)3bHb?=|qhvtf9?MK-$ED%7*M&~4!QaDJ-_q;#XTOMZE0>5=4s|A% z=TD`y5>l!6L^7&f(FUbi88|YcKcc($Ld<|6I5uvm0K^1fso#jUosjp-k0QFb&ZAEX zuoou!oEK8Fwg9}8gP5Q&{daWqo#OC30=&8Fz7pd|Iff|* zG36qzHD(gdygX0jFs76kSzoLXCe%)xAyQTx894yq%`Qg0Cl`7%&FA+635m6=MVhdk zATa@70>1=d3C7AxeqJ8tKQ{-Pe%XM*!$ydx;xQxd6^Gfq^TDTxii&dS|0f@thOL`7 ziuXvXTD5AUAU_{x&ZOhanKLLZF2YT>+=fAS55d_pXYkOd;Ua3eeuIW+*6c#;-u*i= z&YctO$0bd~wY_fid7YW9;m+T-W5(q3DQlFR?PGKrEpNZLbrodgPFIG+Zj@n2tZge+ z6-X@I6p&iJoapKf5>tQD2MOmS*0vUvv_4)CjN3NHiKTMxQj`y%eA|X|ug#7f39v2I=98lmk%yKq>X7 z&oStphsr-gww^y|DnKiVhqb5zsaw)8Xyhtky}u$iwOpT(oziy)Me$NJu~DV0umHI~ zeUIGKA5nDhZjXxoM@mv9b zrSuZi?s(D&5p5jRr5lbte6NV?rKser|9mLw(qVYjZ|EaZSa>TXXVY0q@x&(e3R4Y}~$Nc?KNI4dPyBp<}I8yAV;0S$hwrQN; zm@q|q)DC+|{=mgci}f<&fCh&zrT(#W@X;FTpU<`1121 zny&s%i&^@#Eh_^`ODllW(yUAr9ZnNbx#9)}fXHzSpybqX0f}qgKVCp#dcCZ;2*HuA zBQRYVS#)3@vcCKXv3HF?NL;N-RmutqaQgYjQSGvph`D2kc%RZsP%dK1gG}iyrv}Qm*S&6-ca2rSdf_og(jiqa@v6bZi)nmoF-hUb9O1 z=y)|evo9Jq)GfqQ&9fDo{bx=HhWr{U0PMPivx?hM#j{00SaCQKKb#3iNKhFL=7r$h zb{V)hs>EYIhw?*k`<7U=jVZ>GR+)6(1&$R2W5NC?TvojV_sd}QXD6%SslCy7^r9Tx z(Xc?3eSxan`G4mxM9mC|wd&*P!J$0*k;Z8>ttBEZ5ByE!={NTy^ZOH(rXJoj3b8je zLiL0?2ntn~AUiwtG)}&J{t3R+c}PqcVy|zA8rRfENDbfe0heSI;oN6Okh}FP=t&Ai z1vi<~7U4}i-y{+EJv{kWlw=m6>2p^iBraT-RaQ`njIWL%N=gwF z>h95v)|I2Iy&P&?GyDd;IcurQhGvGu%4S+#%iTPjBXG>JmyB5Vw7w5Ly3M6*G1t}? z`-vXD_)^M>%aHl)ab&GODfR)a|5|s(Bc^A4kKNf}FVO^#J+ljWe`JceO5n+P;_^sb zUo;MM8)y6Fr;C$qc7(+5tl5UCPk(_vH?_nIv->J`!LHrMar51;Av!u7zpt;DtJPa4 z>1T8C^6Nk2>vex3G&C6d)6U@Q_ebHfOX_-SYT5UtbQ4N`-t6lnrF#=;k2;?Nq0B}l zTmS$d07*naRJLFFcZbn=iPhSsq`nlnTl2p0;?O%T9rR1?nj<#g8Fv#1!k5=Vy$!c1c}WGw$8klhJu4Rh`c-& zAvMEMd@>(7ThE9nU@DDfwnD_EHB?EHvnd_t{&Q5M0tjmyg_3iHpj^7SJIa5GSZlxq zh`Y71sy?YQMfo0`y-UC>ilQvdFMs$#u&mCoi#+z1`QH;b{lycN6ON{dJPxwezxsAg1$rF6n3bA#OE^daO0iJaqL8wIN<#)afLtxG>kLAtazZv`Ie3#^<7> z3>f)a4CwVInrGvty6016P~wW4HpU?;1o*JSIkzb(%;X=2#OJ+n%k8&f=jI*a1+(Q+ zEh{QT{+=ul=#nCf35+&=qK)cEV#kcjfP%CfZPgw|D-B0}n` ztguu>R8k+c23~-;TNe$f2ot(=;YG85*&PZi};Ctoos z9-&$H{)=Ld%2Sd80YRdD*$o9{_udc;c+ju=>;T?`AcT#CiEexTfE$0xnM;cMV1l>x%8Wj-v0da!|eP`y|wg zQ=SUI==Gpy|MBf-i|+iDk616;<=-8aizX(BHt;%e7#!sb=HkCp6Gmw*Pk~aEqlt~u z*UtS)QN+?5l|CS0NNl22A^!kS>OlETP}0DGNE|T0L^HC6DGZ5~`NRs}sICeUQ`(0^dBK>sKU$=YP?~Py{bLb$et#4s&?_lF>bDsDni-1aZ8FiO zM&*O(2piwGBL@3(L-1M0bEpwoCZdEXTKKL;`AE93JepG~+cQH2Kz=Yj55t>i%a^Qd zb!e|8rJ9iEM0EZsOjU>^CMD(H1@yOBekM=0oOo#ua(+p7IK0{=HBf(SbA;9^Ps`v- zks=PIwiK;ffBa>LXs#|Ync8Q5a~!8v{*AcajRho@3Pl#@|C#AA;`z)62XXGxBNghD z<`m;#(pC{sS+jpr(J!UdAaF(ijS8jPh`YHFLSn;wnZB-V8|Dtkr*_*7aETQXiD-`0&*26?|T2_(h1h#&c>2SBr!m+#H#?L;OOZ;gl;76juH~ z_3X!oadyq2@`o_JT}S%cVK0ff$_{{ZcU^8}NG#72Nb_|y$3X-8A@!H7NP3_<5+CTM z>*rOVI@_}SFwUII#r;XERYBqdhtA@_!84fo>{_Is%T=6iVnxbkJT~_$Ja}(cOc~$P zG3^2Oy@ie24q?q3!_c9v^$tk&=07QlnCdBsT=UkSKi`+{Yb!?No}N1cd7C$&(W~zv zq_%z2nJ8Hk1-rJ3gY~3hRH_LjwrHs%e{gZFs(o7IkmLDcZQON|4-)x&H z(nvU$?@otf>Yt2#bx>X3vL+DR?Et~uH4xmL;O=$^1oz+?f(H%mL4zNH26s(xcXtWy zFq{1Dn|t5Xo0|CxiYoSA-Tk$FtJm679GC0F7d9$c#ySxeq;p&tk3_hLjs_~o8BFNC z@inqOzWl_M^#hVj_@lb1eUIAm5tO7N4I)N5wbH1E`ysg{qTsYPT?_~nlsvhX5!mZ3 zX6)px32y|qaP?izO{%wL<~ddetWmX}a8%hxI!r$?uH1#0?r{8Tja|-02^OqWc}zVg zhF9agc6e44X)H$uYwfHNB?`v3JcJ@+^XB;ur+YBO84%4)tqPv)abyWR;{J~C;3laH zYLZEOC#f<>rkd`gawBRS3mBAc`Cf`|^bAjm+1SiW+M~DyG9iKC0MUP1l5Ctj{D4j% zaWApgsNI;1xTwa}+^ljJK1)QD>y^wOP47X|m~C)||Kr&mIjXQ;vfF&;JXbv;)y&0T z=BQ~y_0c$SEr{eQK0gLGQQ5y~fle!^y8`_t*Y)*9V=13j!_@-6;lOy6WM-EPr=#Xc z&#t=*6SGgFpu<7(%2BUN z>UQ1M2{l5IN<$hnRlw?3`}TdaZ^t)yL@TQ~+E&4++7T!h(T zOgi^RcUgZ^^!?$K$gnyR&6*lxO_*-jhyrje0$%)5hFhnf&BX5OTSBSBs9OTN`g!m0 zoHy^p)p{c0A9`MxLu3G87XZN49=6OAEx{4PEiU?HQ03}R14zve0AWP>r5iLAd1`&Y z44a2~LL7y=nt~iS(~aW7;iru@iOSR^Lo(=Jw_A*E%MR~ ze`wLA#OIJAR3kNFxOR9v{f#xZ{}4W{)=eSC_#^u)>%EVsLVy_~Y=F%QC?-taIxM>f zpL9@6Opo>K`aQohiFbsSt5IdaPa0l!ue{vFu34CRXO!`O*<-g(TTu#Gx4Ai9(`{FLKpj=-d*hcvIQxKpbRmwW_CmSww@z#o)( z=%QO`y7;L{Ud6=AyycX5Ow}v~79cUH|FFVvK?uPOIxny<5^ zMn6D7Lht>d*@oz-P+)k_o5HuokNWza)w)m0^zj3R=Oc0dAggHU@yLSkHKZEzj2_G+ z4o-`C&^81T6DyO%Q)N2lSm7&7?DdbC^R=HIApB{0nt5R~&yMp*O%)oCJ6kra;2+&Y z=VL4L5ke&`$=~B+by!oI{=tOi3ntXh0x4oOD2c$8?Fyxe4=WQtHf%))XERrQpMj~dnz1M7Zq$`BeaRu z?qVwcF)HQ;MIywJ7q(MN*A=Jg^Hlh(po)pUooI}yR)X}7&vcto3QNRQLgusa7#i+a zcWlF=+4J!P4uanj-IHD2V)u9&BNGEo4zKSNbX;39x?LV|j|L(;NoI>W)Jp%f)4B=& z9Z!q0qYipP<_x{m3ARFE>%p=+hxJ2K){Hr`6uX*USekF5Or%9oR_{Rab?)|&qH1-_ zy&G&_jId_bLP|s!wHwTaQ54trPsEnB4W&ZU!uN4AaR4?dNgBTATy+j7b7U;gr-th0 zg(p^cvv`M7u5wP3O7+g0efQHeob+DBmij@au=r`T5sNZj$EvE!D1MtUhVlyb=P%Uo ztv%{|!7d{Q@~}J0;{TFuRBFf!U@Zu^F*}iaXgZMM_2k!o zXzD4rWM?_mb3M`X`@OV3tVv0)l{DeX++ARrR%J5s|;!d;8EKPqlkLsfw<6iFu<7i6QVs@`q0L zwHQJWR9(Fj{qOECBBf>uKBOUB!!DAf-ZuDQ*Yy^kO)rKA_h1(dyXRQqQ|zZ1oQDjZ zmX$5;ikqu{)4Z1A74#M8WDCRIqsdouuEVtYk=>?lKRF+i&UcpXrRNTtqs)AV^Rq3h zCwQm{_*7Ru{Z36)IuxK5s=N6mV}$!CkJ)6kf0`q&Qe$VnZmSof z&dxJ*#woJr3lpQ#1|Rxrn~qBe5j$t_CI%1lG_T&=A3q(jAB-KSvNS(%W}&w>HJo!& z&fiQVcD2}1ZQ|qRJ$@VrD<%zm>wqqicekTn?_p;moT(z<(k7^;fcD_6$N%1++wVGOC@t zzc6rv(~Qc4(W9tY0o*)0vzN)}^BJ9x3*@M@yTmt*GkE^W$juY6!!Q=zIIOvPof0B;!kA zs-Ip+X-$!H?3tF-;9U4@X1mf=Ov~LZAjF zcm@iy-4nWI+d>w;yz|4_(!UOr$NXrnc)ePWN?FhNNZhvPa)dce-g$J!#>CpSLZv3v zmT*E~j)^d%x|y%GYtg+txRM#3=iM+V`>epZ8h0yP z=3VX`PHH(Sfjc;$fRWJ*+FRu>(Y8?$1ba=(IOeBkvn-gf4P2@a0;%Q~RJdV5Jo$ow z6k5|+Q@jv$TV1upeE3I^lP*ZrNqE-{qK~}!sm*g&bMiFblak*)_eEPl?Z!z)hPc6) z9Vx%j94uL@@UI1K?31=83!*~7$KZaMjE7CThPwL#L^Rc;E2%Lk+7fDnZtITE;f1Ol zxVP>IV&G3b2EWP!T++fVjs(_2V}!Zt#~908{QmsT(Fyk8uH-ixq?-Miw+`KFO*YM7 zE-Woq{1*+}*4R(`GwSc5iqc27;r=FvJD_0bk!neQjjKKw!q8M2S%aF86*w-=JWCc# zHvBnK13QRtJ94oNHn_4x_p=P!FjnYX0Y3ajp`z0+f&S-YeRBq!)93To{*GmYSqo$= z`!lFaQjz;KycuL)CW1RGaaH$a4aLUVaX|{j%>C#E=2LNq&5q>ABL+!PHV3$jcH7rp z*yM$QG{6W6P(_G?$7QnIK0TpJDop`&Gw&N01j>cpZ(cj|hz`Uw&ev*^c5+&AVOK)6 zKG{&^um%j5uL^Sd=e(rzlf#atF!xS~MXmh8q3S<|7}3v@r8Ou%h&0OEsT{9E_@^+5 zNg~Dnkl>OGy(;L=2|7&s)iQ1d`y(!09=$rD zFg5nDiildv8Ot`Q2FH3@ND7Z>PQJ)!fzBCI{dldP3EX3Z9F8KRtIA;cJT5`(MXm<) zXsR-D1J9i5f~enwWP`_h6D&aC&3(94$`}rvgwpe1HaV~F;gp5kfxwonsKUy(cO8($ z=Xc~)K3PcIvI1hElTle06tu#VuYjx8k!7OIO{SYGPcIvVC=YZC9Ab>lx@IF^D3QWv~*lU-*@#jP@IAw-X zKQ-)ml3yG5Ge)$GiMIv4-w-kgDh<8sK)(&Deu}LfV{a{`rinkE^;eH!)S2dG3nvpU zm0NcTf4q)e8j>8;TN{-q%kdB8MUxoTcjsC&aVul;jYys%fy2rQv5Dqudb;T6m(5mPctGEVeq?nTwqc|TBqoE;X&KD z{6JZ8GDbXvhx&)sF8F!`XuAim>rEyqLm`*-R4}3wrXC67U=uPMnIbKyZVXqM^_s+z znksSgz4@pKrIZ(Xw^PJfk=JGI1a02;?Za&4yn&25m>Wix zgzJ>t3<+=-DA2s%v7~&*h7^3utBHj@@sQb;p0K^Bc|fInIaTJ}<6WGODkXD1cs+h9 zSQTSAq6Xs|krUG(2(Mbcp#crncFF0t@I1CJJ)yCR9xm2T@S)>dQMkpf%G+r?t7R*Q zO}R^!(a?L1i<9$sQECWtrS|@0G;|q+Fx67;%DxV!5_)&Lr`@)(exqmU>G{f-2LI^Y zyCF=?oL z!WC->eE2NI-xxQV$fv$VL1IbF7PrgYLzu(`(#qyF+$i4;U18iWLRIEsl`{A8cUq z*z#WAN%M|%K<&(|uW>`6KQW9I9R?cqMp(y|?GGLc(x*0l& zB>K>sC#vAE@JkscB5I)P zz(-%`&Zk`EKa(#aO(iO5c18sX$?f-aV6aY{FT9-B+v7dnFK$UjWMpDG&mh+*m4dIm zrWt_{suN(Bs+Kw%zSJ%g$h&1JUgD{542IHSh6842*xu~P%b#S&-V$NkEXl_&p9%Hk z%q}q29N!O<%iF+Kan6o&z7stP&eW>hb)p!`(J93*n_HeC?jEk5GDCyc6Emg^&lHg% zhWrV%56nW3amayz4MT`B*dm}XpEIGRb}d&6&`A?KdK_@sS!E0F4j~c^%(dh!7G<3M)=t{qf&%7sBMh{gJoT;Z|DlrHhQPg;jasAci1M?9YDZWWG*W$tHA7}=?+oMTBho=;n9(`aYPW6Aqr=$0VQ?Jv6BCiMFZkZ!YI6nQd-WwMmWJqsg#Cy7(A1?~ODh z4z7(9wetnQ1uE6a{wqpAH&?uX$}i7|#M=(WTA=X^qzu~%owRyns4x=kpGr1$c7D?@ z?2p@W75~2UJnPMQpxe{v467M$P}#AIeea;R(U`fH^bt)hzMCFh-i~0ID|^1yQi-*< z*RJzbo<#pWmAdR`i5bza3@$@K=F?i(JBvZ>rmZ8NDC(r^D#ztKStFk(frJU=-L=;) z7Zf5H(ag?3v1p6&`R$v~IOsZY^oRl6ke*)NZcVS3aysInOHa5js%o0JrSaW;KLh=* zH6j|VhM=z2Cr0go6fYxvrq?4sqXB7w*&PiF*~6hTft8RKQK>Nt`o8MH_Y88?TeHA) z=ebWird0N&eH;FAH-6^ch(xu$)?CE<_*v5(V-@vBf3kZt=@(sJx&v+os%i4qMOU3l z2cN&BgbGHXh&YbzQ=He#aC+$oGXXn5Q;u*EdrOi^Vy0P9Ii1)$i(QoOd=x~eUCFu~ zXM>}MXG~EeG?}^KGz|-qcb!%&%RFpLK1~|{7hv#ofzK-7;Ws>GVBAk*cwtTR=CqWKozU1BP%*Z|o3bQ_-T* zhu8v{CsS=?g4$$&TC=*0Ry|+c^(oKd0JZ=TSl@%BFrIh1MqD{ZzrX#S9*E38P8C1v zh1%_*7mjHd>Rp1WaUF+^<%+?bR_vbCq34b?u;CKOX zE^nT4bzfoGV%*N?S;pmhdKB$6?Ys7{EX9q@ zvsHP-Co5t1Hj^Chkj(u!Bv`bIX)Yp2lSW3u5I~b{hU8WGpjWJ%hsYnf8zM-Lxi+nr z#^rhS%_fZi9-v66V6Zmo&L}s|Kx#+EfHX4gG0pOA`T|i|0KoN$YOAU7?T%Lw{Dl9= zHDRXhB@XVpj#a-y+WV*^vBp+eLe>W&-rhC6?zSYxCg(0bT~gbRLvy{qs|ov|s9LxVl65a6@QTuc*9;-!X3#J;Nh3Qqg2uA!q<@i!K~ywl z(A%Mn2CB+sZ}KOpHTm#=%>r=J3ZKb}I@{fE%+F6Ss(7K%Pj%wmrK<}A_9AFbAi*yA{(y<{cLF8!ye
EmDO{|Fcl zFe{7D&s>pY?CoQLs`&l$%z`UvtedaQ^V-O(9(p666#29YIw3lhiJST&L+DbUpiYy% zj3SfVFnx-ksB-Y5TFSV_e*6uY!qI!w=cUh#Zk=kn6AuXkO_ zxn9-;5Gy5beQ<)J>yBYKc#Tu^ZFFDx?U7K2>AuWK?a?qd;MpzPNO&mO9PC=Gg)whw z*qMbzc(i?Fe;3pE;A%>7hV&%%I45f5>fT2;_#b+p{^W*06oPG7j5U#%3+3LhYwcJw z^s(1EgE$n%=FNJ)NNK#U4d^npvUqB(bJNl|YJrsi^Vk4W$Bn=D4boqt-ve4WP3a;u zD@-p5IATn=PIeBqAxRmzA%d_l`T>jYa9=)X`rGnYj9WBylFjZhOsr{@vc7~SmA0t- zr>>f;(4G}jj|<4634^nWLu?@s3=_jx84>oylgOGaFEbpDS^`b?r^v>-oDWE5Rv8#V zp5l9XdJ<~i@W;>2Av-`)_Bq+LwgqTv5mD9UjDECY6C};kMg4>e$FTrDvz_2N@R5sg zb>EBGZ56`!wOR+Ji<;_DpAj~6M=9(5+=yD#P$%y1#7^*=B#h?L!#55pDSDU$q<$;1 zlhKhJXaq?k)G9O6@o3g3Gz8d9x4R~?Wk;NeFJf=T^3sU%NMxPiO)&G41ivx%Dy0cD zE!iP{ON_|N{5%eMMO}DHko0Oi-Nlf&pTSdgd>K#k!+gS>@Ba~6DzSgKlG89@mjYK z&9V)SSTjF2bB1&Y%a!U=X?>s0kwQ z=66*ZkH}#M!F2IlH7Y$cdAa6WX=6x$CmN+QO;N+A_O|}9C%|lx@Zh;(MlhoV`@mHcY+IYfrWwKg*4wXTdsTYvBo&Kp*o=>D(Duex%*a8Y=ITsF*K;3k-z#bZBGFO~| zhQ9W5b8O)ZYMZc$V~TCu{Ss?jH&>--0XUwk;JN9}Xx%s8{#nJYz$9gVza?Z!hv>Vp zPH~m0+>)pmxbN-KLs9HQr!!6A8}_T5`1ml>V$boL`?#Ba1*tR_nhlU6!X|xV%DZ0y z-+GBm+Yz(cAs4qKVWHme3RBaDC2+meAtc|b64X=1rDYvw6E|q+6$mAzHL76&YX(tN zDb`iL;{KHu{5grm?hVtkBJd~Y@~BU)gDl^5)CZFBBsK>3u`vt9`9g|$Wl$z;NQk7V zI5;>~O=g{N7`)kYcyRv!IX&&GDxazEocyv9Z=o>FXpd^|F~|*}4klHrGqKiLw(Po6 zeDX>1SMuflVlOI&!6x@lejiP*HlOG22$9>hA0j6%Ei|%xgsy_qgn@p2 zYvr7tKVq|oA>vo%K31=F4m(oX=$;xi4K3x`{&K{{*1JH}_9gc)TvG+DR1hH!F6)i2 zz?u7_9!1n=1G&405S*alhDTZyY!p&XowXsUuFW)Mhslo-BFsYmVU-m0 z92=eby5hWGA*+$t*)k^e0>kLYrm0fRy3PH3C<*Y^fhdf=my9!GeY>wBO?!%-{AdH? z7N-_Wus}B+6+Pp$hKbIx9aSFLE9mf7k8p?fbPP)}&a;|{9aTkPeU0TrxjlwQfBIQA z9?~3U7j}wWe~VsTM7N^BQggc~=@g9JX*yxZd52DabLnm=eal=B7d!sWLx1PVV+B2Q zI{aW2xFtDxIU7OGXVvb6_gXQu;^Pr!%;#u)@^2EiK8HGjB!WBktw@IRR92nu+ls(d zc~4JSUwO#sqzJW}a#;{5@2h2henvtLJ$gbba<}~`(EM7Y?Xft~urL0Tf~DWF-`auw zv9r#hgClbcBJF*~^VKGsyJ*UM3SaQ&w6_Gi-Ws*n*co4EqugI(m+D?69sna|71^$w z_I2qqb1m1#NcJgn7laDK3Eb)lw@lF z4m@=6Vw=hEqt!umh%uT^w)yi(DZ@Lr>XNqBUPUTUmQt`iYwZf-AECZs1vG$jNc@FC7 zZA>7=Tym-#feW_rl?EpZ!M zNy>}u3T1c$T57K2kbt{wr1HLqc0+~*MvPPVV8-W8-Z>~4l;gt~YvgCoO|+H6#0Bi0TFiRWLO36vz&aXWX8aC z{PK#N^-RL_9WYvX_Op0NKuw=vFy%?fr`=~pNNpamKs04rqFv{%%`D4s{*~BTv;=W& z1&TdzQq8A@wREDe#SC1#P>1tuPe2;-YGF8NWuKyB{W3G1n-Nd!X^!QYS$h#$yQT%k zIY8lS!2vm=p6HLPTr61og^HGdj@k|IXtDZ-g-<5Rjc|93dUowdGT2S0v=U%DGJw=d zJow;>o8~O?LuEShe3+EyczZR-tJmon*hG3zMPMposjDh}8 z5dZdf1J+m!K>bSp8n`COEi0(xp*!|+j}|ZV!Zs-MmoYFxPg_c?CL@_f&7vVtFdO~m zqOm9?sP|U97tq?cJkSpQnA&bhN~GfVU6LQhFdlwB@~rgGR@X(dYLjK3o$x!I%uC1~ zw+_XhqnU!e?PZLe^(47Pjw;R;%`Z|x2}(SaEEUvHeS=?-rwF~*^x2C8yH(C6`V3kA zd0W=hu61L23z>H%Prh=m7()tHeQ&Y2It;xqXv^bKOCyD%DvOCVz!!iGt*`|6ZNQ&cClqN;hxnRvP8BCuBeSMV% zeP30Y_*lC}J}%Zep@exFqVfjcEB+87>t^+j2mCUQjcVdg2Y8LstZkLD-&GQ4^rs9Z z0<(S!&g;l+R+ZKc9%!fHzYvuJ7q!6QIv1=Li3d88u-cU}-#!(y_`ZHTsm4vnU~GfF zG4CT=e>VSF(J_I?vq!cW*H=*nY?>wI#!95u;!R0x=x>xP2N5fl$G_>+R^|(0p_(?x zp$wP9X=-QDe)@P>{e}kLt+fIqG(X2D-n$#hGVXN+$J3=Exf7GeAezgg3l*sWpPx!5Ac(l%b30>qUNwxS z1awF@_bDd;+vxYQWkw>U#3n_47V~&r?Z%@IWqGb0kpS6MbX>Ixq@> z!1>wUI;O?5O=E3U7U?HJHTy`;{@m-bD|L4V@4j2#JoP%+4LHX5l-|k+o(8X->#t`v zU$dqphA=F?iMP-E?7vpkj2PzNudJVMDVOnWk^nmpdfo}g&+lIbOn6qxdY6_Q(>b)R zT|X8DT=2Ccklrb~kcNZU^I(7zY`Y*bTi_sFkmV0rppH4v2IYlMm3Fh#Fs`D8M@3+w zzNhA}dcR`{F1Kl)iuzePL*33CV{`#qTQhH7aP{OhOIf}p3b1ca5OriIrt+$i_oWw} zcHNbFFa>6sq21OWlPdxZ4Zn_hYwmpu*E?!xmYHyh1+dPC;cJsnDSIN@gZaCq2uZYOrS;p zg%kPIjFTWg=BdUt?Bz!T%Q~EOzgzE_3{k}R5zZ8faTq3|6OP*L3XgWZT z=oK2>)cirr-SB-sS@wj*pI0X|{$&*1MFtgDiXP;+m;w zlm6roa^if>(1Qoa`rq(z*yQ&#=(5)oyf|)++yK)pEuqdS3O@TPf{s@`@11jVW; zQq$7%lUM0hM9vwPK{2iR!x3QL8@otI1DI32Xa$eG(R0UA>0YG*708q{8RIjmZCX|=wm(ci@ z3{I^^?)Gexvlatc^q8I=kcxoAnw$C|`ukd*n$4+k)8!YAVihTEYY?uw*N>~m6u4HB z!Bm%1M{k>^3m+w)<%(f9&uciz3q64{rmp1n!|kB!y56*^Xlr4?2+STTCZ`dRzKm{N z0tiw8cvJa76LJzKkmzM!lS4~vX0zmblGEnoNZ z-YDKi<~hlS?EBl*A*1txD4$F$0<`zv4qzO5GDUnYzvjR8b!(VlQ(2K)t{J@tc*Q~7 zj|ky=E+hS29}{)^YIUG5k^8Aai)%~U9xqFUFQ;8lv;siv;(#AYf8XB`-r{4P(5k#T z-@PJ;rl{iZOUQNJh5w}=x3W3lfcNU-#=cM2?vUd5>2x=TwA%w;8W;E04)-0N>gBNX z*VseQ$)$)qxBQN^F$TAttTq$I-l9jm@2iaf;~@$Jjq5|++%i*H;dOVa`mV z;Gac8kIeI4OrKb^N&;SAM^_(d1#~;7Z-uG=d*d_JMKID2;$4jIIH<3V8GyICM>T|8 zf*eD-r?as}0zf8klZ?RWopLa3*+{HT6F{%q%&6F598-EGNZx!W8A`sh2TSmj!MC_3vbMt65UH|&HXs5VI`p6s0JOTBDxl4oSZ@=!vNE8#Ve+nAbZZsk z3B{Ph*#7fMzXSQZD&Tk@YBSUoRqQ^b^v+;eYZ1@9EqzHX`>*RFL4UG=UmuHVO{suN zhLuGEd_?GsQ5KL0T1^*V@&?|J+6)}6R#-OC*MT+%ZcMl;`^x0Fef-w*9kThp3yW5} zAn-@-7`9n#Epip$SM-E4{^%h<>nT8JvFR6rz-Va!D@bhl`xG--TUrMQOIg4hAPP0j zgy)7ai12n8dpf~Q?4HLsd(hF+GU8;}RKd`y1OGHY+_?>bfmQ+10hHv7_lwhl%w@|A zC5{6@kRLDpd?*ysZE;2_0p|1!vNMHCU;qv_a8eh#XLeLF0m5PrP7}?%seBRkfC#|g zpX3)|3u*#4fSp%X*8dQe=zkQ}t@5jY<@WK%Csd8P?S>>iK=HOpZ4k|}0Ff6PDA%G9 zMglf4{XcB*kJbXZ|E)E*@~@?@4)W8EO$d#Z>GfR9yVE2w*SwQ#;FepDj7|KKgfM1Ep*Di^ZfJMFi9~bqX zrUVv6XR^H~^hB&tcifQl|BJAHq;vca=_<;;7HQyUEZ`_?*dUu9MBAkPf8hTQTIT-* z3hn8Eg%7DbDceWB=2>fid{xM!mz5g%Hf#C$)TiSB!`l7a}l48zghX# zGLYBW$zHS=ItU-r0cf%PKeYG)K5hG^dLplbkx@cU6A_&*Wm_61a%})%cbDy$IxQB9 zl#a;#rVvQ(4VRk#T*xMV(t$lLv>BgHVcToU16EG=eq@3|sK#bja*xTyY|H{d&)f4vNTp%a<@#Vy}t0{fLS;ridT zMPW)V{2cuo~Mp?JS-z(sE({g@HDOl_n=D^ADYFR`6fLyv65C>b* z3x(nGvw-8T(b;tETVJhq9XMXPe?$$xm@u&_)xI}ZXhH*S@vtY|x`n{(1CTCLV&j~) z;I%@pgpmDOL#X=%Qpp2W{MI^gW=j@)ndTHZh|DX4$P|vA6l9EacL(DW^(T~=5=Zn3 zIi{%wU$rj_S;CA;u*dfY%<+o{2Ti>|1n2+o4WZ2{+XR1j*pM;UdWi3{gP#oewYI+jL2hb zCH7_{2;p>#t<7X+#Xs*pQ5)QUIiqhR71EvLPN5tC8hxRn6wgv~IlAQ38v;#R_!ir> zATT8_;=W^5O{D^?sgO-*mgF+z3m=-;rVWeVo3^(X#Mxzgwxrf zu506ibA5baCU0QaAIHf`-3iwpMaT2OV$~LWhwo6@rB$eqjT1^#BM*MS48E*MfsS)V z&0EZL`=`zv_f-(!xpmr_06+O4L%!eR0J;<YHw1!f7f z$jJeVp@$tdq7OQ%Y4iCWe|cQ3c3q4GA*KLtoRSAhffftRg5ZbcMbF^`<&+LcZzAS2 zB1-Z@7(hxU@`H8CRQ2tLkw?W6ii_8i12tf(u{+6?1 zLf+unD4yJ{V0rAg{l$pVuA@SGjg&e6UnckH=;~@}B`^k#8UFuRP55HPr2d zL%Iu{5s12wVI_fr06NZaMr_JRWtX4VeOo2qu{{#VXjw1Iy#GQ`<@Nh;SsYz!)5V5RiqZUoTeSMfNt9@MVtE0ru@cQNA zC*TX*ArY>)%g6<(tPCt4CktMkvf3}|Y_ea;n93evBzmH1wJ##~D?7cdFR;xNfa?!M zLPBCz2>_9c{87{m$ZYSbhG7JpxlD~+xIwAKgxi*4^-pK8>{3mA=OF<)!t~sWz7VDn z1RHB#eBSOE=^*NJ_oRpvRHacpdZq6ZUvxoHB*(ph@7wJ!gu(l9akI_dJoedqIBc}E z>vg3SodPR!Ii^SRH55qhw zZHh|07;R4xaU((q{Fo;T!6;IOc_qTmZgZ6-gfo4#Whf`(bdJk_a^wYmD0UM4dCFA0ECmJ_}mwdsUKZM(JjMJU`1Lw&rM3&;I*8fvMG`BUP2 zd-rZNh+v|gjdsN)#=^JxBT&+&i$4f6y{LctW!bmB-FQC$OT3h$Wy@@TU3Cg?c&sbK zWws;>Hp7$ySo%z|?N28_$=pi%ZI`yN)U1rG(#d0aaanN`+hVG%wPs++e2519%%Az4 z>^`=(XV%=1VihA(m>!L~qq(5gi6XPk95DjtE;LIXFzlWCN%W@E263#%d@Kbp>L10{ z+TOq1!eKVc4xNjHtuA>+q+Uc=K?TeL{sRo4T{Qs0T!{RyS1*`R{JYYszboy*L)nRT z+9b8$wUxqXtn(cGt{I&`;Ti&yU0_1Ca;8wj1O%X_5a^Q*L|KKe{7zS8viG95pOMgU z*eghgB8Sqrr9y{TyT0o?NGZ5-)jizO-HoIK_Jv~fg+0gMCMAEX{*WiFfot^cUFSzR zx!su-0n+^$jIL}?_`TFro%4%{oAXsMpEkSnFybWil03nl(&u|)pSxe2AqPYMcYtIJ zOv(M%EWp3PQY^KvoK5AqCZ2CU&-9B{G~8ajCVa zegkp1TUthY&{#pW6WEB5NRMQL-+EJsO^QdG8!SIGNUSnDrQ@n%WGNd)$mvr8tcGr` z0qd{b3t#Ay;>C{M7i|W=B;;k?zuHU$v?&q{6s!WjwidgzPBXj&UgMU|e9@mZ2K3MU zr|LC%RiZg?In=Q7Rpw0F_bO#y zV;7_BfS1|6(tZPwCXz3t$;R~Gr=*AhkGJ>(v+#mSEr77A@~Q+zRw`5H^m$*cCzuDt zjZ!QhT6ou{ST7o2=y(daTtO5b9A`vcHDy!N9kJ_Z&af>mr8 z-60(R?n(i=g8%z*vdEKYCrEo&$oKc-0ELsdIEMpNpq)oVcHr({-E4NmKl z%|b4;74{Ro8YP_ns*_&ApO2cTpV)>v!ryKK&`SVF<(sIUURuPw!PFOISq$0!x|;Hd z-0w9zdbI zu`NT^GlWCCnp9zkrq)?+{~G(gkfOYEb7= z_}Ag-R-CUj^h~e#FZAfg6&_ms;$`1bBu-@?w{M)cc79-zSzWiN?HST|{>tV~x%Ktv z#&ZJtbpBE(ZDZI^dwt$MIiij8&H3q;dy`XNxm~OuH-Z^$Wk;M@s>e=Zlap%oJb~ag zNtyB^5lU7wTK%=Xp;-7rNHaxlN}Dm~JV&8izM5@sC(S`z^QMgI3UV8_mLLbvV0pZ7 zFlb3(fK?psuk)@q2XuJtiSIt1*fUPO#!eq3u|@ssj(hZ;|mF_Qi%SOSPrzo32gxDy%se zN5uxM16?-2PT$Rg>doMoU)rpphQXF^0Q#D~03r&de@2Lr`lv0SYPC2{4kAC&XzG3^#;msofa^yS6<$`2FQqs4L%gE9F zA9o%H1x=Fv3HY~n(DHG9toS0nSFy)@v9GE;HWB8W{MJQ10{SlM0rz?=Z-Cyo#lgl; zPFTHuh2VH`VTGHRuxe{TJ8b@esttl!U~c{$3lvN-V;ob1L+2>B(HmB#mDTUJLFRAL zZWd#@_2u>Ma$Pwz!%O$2a+NrmA0SU zjapWymp?c0r2ANu0?r25Tjanb1B*-*>X+6XeB!eZ{2o|n?^9}5FN zOlW~9mOema8ySZ@%Mqb7ez5d*fjF*hKzTXDrpY*BG_v-cI9Kfee<`w&gXbl{&X)8&5RdGtbb|KfpC$wC}<&}hu4rh!Uy zP0C+y6XE~S9{$~kqkJWvho`+i)za>D>(*GePgv&4)(-UJ3+X9>V&Cm3ExHcWj*FL@ zUx7N_9quce^(-bGkYtsNNTrv(nE1IIq8s+7ut@PjR&&U)6p0D3Kc!Z-gdF)l2EUdF zjqp0Cv+IKJx%}yI8TkhEb%Yc_Bff8_uXOqC`~SP_PA?IBG0?UZ3`Z?%8!FgcLHjs; zuP;ez%2;b7mG?0cp4a1sSt(<<7cOcY!fl@KaZ-V>474Jbhi*uXZecR>Yt`!~k5(VL zq1`HfHIbMV`B0-*d<|f){pw5>L%aybNozod-rls)3YvX5FdaLA1MZE!UAU&;rWLPJ zE>lq@Rm|Xe@}m}hGl6VT9aR>f45YLxIc}G?Z(y*q2L{EPu&BBv`!0?m4+K7nA4Ia@ zLETi%7}ar{NXNxB^4jTt3&%x(n;q?GXK6~oF$Q3y=chVu zZE)^5SDihwQ0}`QILO3)RS$D3C)#*9HVRSpoR=9i6?8e)^J#lxlff@%bs$GCKX6f( z*FeGO$?`4wGca$Ma-kA~+@+9lnHtb_p536??04qM9TKA~rVxe5oVJ8;xvx>bHU2d> z9Eaa9A_1edc8l0ktqkgg{e?dO>U4!4hXT&9AJ^A0iAW5^3i^!wNgVucY5a_TVvk`B zW?@$VEg+7u7g8Iu?kD(KYreaM%j*@7!^;^GtRdKhWTlL-Xg?)6V8j!iD6r^n+w;G% zpQ8t4*b>WbCH&ODeXO&luC?UD*z8ER?~9iIXe-GV`Y!1e4W89{1${ zmXIS>mVIzIo<%; zg2ucE6M{H*_a6%&bGV?m2-GHg0t;ZN0kXCyV0Ghf${YSKL9Ah6Wvd0@Lw@SU> ze(Na%#+!=>kj~ZZ4)33*d!Q-nEY0@$^g*kgZp z;#a2B!<xVJsxt*{t` z$rJLp?M2nM-NH{KvG&A=<2acmv%(PI@FtBbeo5oOFt%F^`^eTDfZ=}wP2_eYe%UXJ z+H@*?VY{+?LJEx3yAODZ{=15KDQ0l!G5gcSa1^o?zr!GFO!;(cw%7V)<`QEUH9ulw zR~#SBoO-frwHqVL&cFrsxBZUQL14Ql!d5n}LoIE6B6Lv5+{fGXYq7$S7QQCl7P=va zzd8&r$o7kvW71ylD$2qR9XI6k6TAYhZ8UUfp;>jzL6KM&^$zI!@ZSn5#Ls~0Uwz|` z*;58$+r7HoeRQqkfEP8}t*SySMV0U4FV0s$%<}==5Mht#{=}9Se#B)eRFsHuJ2EJ7 zXBHws%99bu`E%9wgnb+G5_kr#7lTrVk~hjLTgBUsmrfs2I4G5Y85Es|?zw6h(t8wg zPU^ZFT9fm?MgPCbx|gC9z^(ERCn}T|M;8BIe7yx!RonVLESnajOFE@ny1PL@x*G*a zDe3Mm3F+?c?k=UJyF)s^g-5;j{I9=njC~yYI9zkB`Ns1;Z>+gTn9B2Q#FJm!BcYJ< znCP3$zE*B?czVE+FO=#xI4G!X3r`iBow>=iyUHJ@NO;IZ2ql?O4Q7~$-wOR-+3l@L zD`VV9f1yGsY0T3TIy)K{`nFJRN#ORq1#jo&ORR-l#2kbRxe*GWGN(FV4)Jdamik1& zOxm5;TY-FO<|u03hTpHN<|DP-fG;2|+7=qXI?ki^H0@cp`5WmK6a^xIADUKeWQEdk z=kZ�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 +1. In [bottleneck](../../programming_examples/ml/bottleneck/) design following a dataflow approach, how many rows of input data does the 3x3 convolution operation require to proceed with its computation? 2. Suppose you have a bottleneck block with input dimensions of 32x32x256. After passing through the 1x1 convolutional layer, the output dimensions become 32x32x64. What would be the output dimensions after the subsequent 3x3 convolutional layer, assuming a stride of 1 and no padding and output channel of 64? -----