From 9ed0b96acdb6419cd1103f3f64ffdcfc9d106c5a Mon Sep 17 00:00:00 2001 From: Zheyuan Xie Date: Mon, 16 Sep 2019 00:38:30 -0400 Subject: [PATCH 1/8] completed stream compaction --- Project2-Stream-Compaction/src/main.cpp | 4 +- .../stream_compaction/CMakeLists.txt | 2 +- .../stream_compaction/cpu.cu | 43 +++++++- .../stream_compaction/efficient.cu | 98 ++++++++++++++++++- .../stream_compaction/naive.cu | 40 ++++++++ .../stream_compaction/thrust.cu | 7 ++ 6 files changed, 186 insertions(+), 8 deletions(-) diff --git a/Project2-Stream-Compaction/src/main.cpp b/Project2-Stream-Compaction/src/main.cpp index d016553..25e86cc 100644 --- a/Project2-Stream-Compaction/src/main.cpp +++ b/Project2-Stream-Compaction/src/main.cpp @@ -13,7 +13,7 @@ #include #include "testing_helpers.hpp" -const int SIZE = 1 << 8; // feel free to change the size of array +const int SIZE = 1 << 20; // feel free to change the size of array const int NPOT = SIZE - 3; // Non-Power-Of-Two int *a = new int[SIZE]; int *b = new int[SIZE]; @@ -44,7 +44,7 @@ int main(int argc, char* argv[]) { printDesc("cpu scan, non-power-of-two"); StreamCompaction::CPU::scan(NPOT, c, a); printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); - printArray(NPOT, b, true); + //printArray(NPOT, b, true); printCmpResult(NPOT, b, c); zeroArray(SIZE, c); diff --git a/Project2-Stream-Compaction/stream_compaction/CMakeLists.txt b/Project2-Stream-Compaction/stream_compaction/CMakeLists.txt index cdbef77..4bb0dc2 100644 --- a/Project2-Stream-Compaction/stream_compaction/CMakeLists.txt +++ b/Project2-Stream-Compaction/stream_compaction/CMakeLists.txt @@ -13,5 +13,5 @@ set(SOURCE_FILES cuda_add_library(stream_compaction ${SOURCE_FILES} - OPTIONS -arch=sm_20 + OPTIONS -arch=sm_61 ) diff --git a/Project2-Stream-Compaction/stream_compaction/cpu.cu b/Project2-Stream-Compaction/stream_compaction/cpu.cu index a2d3e6c..bd6da1e 100644 --- a/Project2-Stream-Compaction/stream_compaction/cpu.cu +++ b/Project2-Stream-Compaction/stream_compaction/cpu.cu @@ -12,6 +12,13 @@ namespace StreamCompaction { return timer; } + void scan_implementation(int n, int *odata, const int *idata) { + odata[0] = 0; + for (int i = 1; i < n; i++) { + odata[i] = odata[i - 1] + idata[i - 1]; + } + } + /** * CPU scan (prefix sum). * For performance analysis, this is supposed to be a simple for loop. @@ -19,7 +26,8 @@ namespace StreamCompaction { */ void scan(int n, int *odata, const int *idata) { timer().startCpuTimer(); - // TODO + // TODO + scan_implementation(n, odata, idata); timer().endCpuTimer(); } @@ -30,9 +38,15 @@ namespace StreamCompaction { */ int compactWithoutScan(int n, int *odata, const int *idata) { timer().startCpuTimer(); - // TODO + // TODO + int cnt = 0; + for (int i = 0; i < n; i++) { + if (idata[i] != 0) { + odata[cnt++] = idata[i]; + } + } timer().endCpuTimer(); - return -1; + return cnt; } /** @@ -43,8 +57,29 @@ namespace StreamCompaction { int compactWithScan(int n, int *odata, const int *idata) { timer().startCpuTimer(); // TODO + int* isnonzero = (int*)malloc(n * sizeof(int)); + for (int i = 0; i < n; i++) { + isnonzero[i] = (idata[i] != 0) ? 1 : 0; + } + + // compute indices with an exclusive scan + int* indices = (int*)malloc(n * sizeof(int)); + scan_implementation(n, indices, isnonzero); + int n_compact = isnonzero[n - 1] ? indices[n - 1] + 1: indices[n - 1]; + + // scatter + for (int i = 0; i < n; i++) { + if (isnonzero[i]) { + odata[indices[i]] = idata[i]; + } + } + + // free memory + free(isnonzero); + free(indices); + timer().endCpuTimer(); - return -1; + return n_compact; } } } diff --git a/Project2-Stream-Compaction/stream_compaction/efficient.cu b/Project2-Stream-Compaction/stream_compaction/efficient.cu index 2db346e..7898c9a 100644 --- a/Project2-Stream-Compaction/stream_compaction/efficient.cu +++ b/Project2-Stream-Compaction/stream_compaction/efficient.cu @@ -12,12 +12,66 @@ namespace StreamCompaction { return timer; } + __global__ void kernUpSweep(int n, int pow2d, int *idata) { + int k = threadIdx.x + (blockIdx.x * blockDim.x); + if (k < n && k % (pow2d * 2) == 0) { + idata[k + pow2d * 2 - 1] += idata[k + pow2d - 1]; + } + } + + __global__ void kernDownSweep(int n, int pow2d, int *idata) { + int k = threadIdx.x + (blockIdx.x * blockDim.x); + if (k < n && k % (pow2d * 2) == 0) { + int t = idata[k + pow2d - 1]; + idata[k + pow2d - 1] = idata[k + pow2d * 2 - 1]; + idata[k + pow2d * 2 - 1] += t; + } + } + + __global__ void kernIsNonZero(int n, int *isnonzero, int *idata) { + int idx = threadIdx.x + (blockIdx.x * blockDim.x); + if (idx < n) { + isnonzero[idx] = (idata[idx] == 0) ? 0 : 1; + } + } + + __global__ void kernCompact(int n, int *odata, int *idata, int* isnonzero, int* indices) { + int idx = threadIdx.x + (blockIdx.x * blockDim.x); + if (idx < n && isnonzero[idx]) { + odata[indices[idx]] = idata[idx]; + } + } + + void scan_implementation(int n, int *odata, const int *idata) { + int size = pow(2, ilog2ceil(n)); + int memsize = size * sizeof(int); + int *dev_in, *dev_out, *dev_mid; + cudaMalloc((void**)&dev_in, memsize); + cudaMemcpy(dev_in, idata, n * sizeof(int), cudaMemcpyHostToDevice); + + dim3 blockSize(128); + dim3 gridSize((size + 127) / 128); + for (int d = 0; d < ilog2ceil(n); d++) { + kernUpSweep << > > (size, pow(2, d), dev_in); + } + + cudaMemset((void*)&(dev_in[size - 1]), 0, sizeof(int)); + + for (int d = ilog2ceil(n) - 1; d >= 0; d--) { + kernDownSweep << > > (size, pow(2, d), dev_in); + } + + cudaMemcpy(odata, dev_in, n * sizeof(int), cudaMemcpyDeviceToHost); + cudaFree(dev_in); + } + /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ void scan(int n, int *odata, const int *idata) { timer().startGpuTimer(); // TODO + scan_implementation(n, odata, idata); timer().endGpuTimer(); } @@ -33,8 +87,50 @@ namespace StreamCompaction { int compact(int n, int *odata, const int *idata) { timer().startGpuTimer(); // TODO + size_t size = n * sizeof(int); + + // allocate device memory + int *dev_odata, *dev_idata, *dev_isnonzero, *dev_indices; + cudaMalloc((void**)&dev_idata, size); + cudaMalloc((void**)&dev_odata, size); + cudaMalloc((void**)&dev_isnonzero, size); + cudaMalloc((void**)&dev_indices, size); + + // allocate host memory + int *isnonzero, *indices; + isnonzero = (int*)malloc(size); + indices = (int*)malloc(size); + + // calculate block size and grid size + int blockSize = 128; + int gridSize = (n + blockSize - 1) / blockSize; + + // identify non-zero elements + cudaMemcpy(dev_idata, idata, size, cudaMemcpyHostToDevice); + kernIsNonZero<<>>(n, dev_isnonzero, dev_idata); + cudaMemcpy(isnonzero, dev_isnonzero, size, cudaMemcpyDeviceToHost); + + // exclusive scan + scan_implementation(n, indices, isnonzero); + int n_compact = isnonzero[n - 1] ? indices[n - 1] + 1 : indices[n - 1]; + cudaMemcpy(dev_indices, indices, size, cudaMemcpyHostToDevice); + + // stream compaction + kernCompact<<>>(n, dev_odata, dev_idata, dev_isnonzero, dev_indices); + cudaMemcpy(odata, dev_odata, size, cudaMemcpyDeviceToHost); + + // free device memory + cudaFree(dev_idata); + cudaFree(dev_odata); + cudaFree(dev_isnonzero); + cudaFree(dev_indices); + + // free host memory + free(isnonzero); + free(indices); + timer().endGpuTimer(); - return -1; + return n_compact; } } } diff --git a/Project2-Stream-Compaction/stream_compaction/naive.cu b/Project2-Stream-Compaction/stream_compaction/naive.cu index 4308876..d6de51b 100644 --- a/Project2-Stream-Compaction/stream_compaction/naive.cu +++ b/Project2-Stream-Compaction/stream_compaction/naive.cu @@ -3,6 +3,8 @@ #include "common.h" #include "naive.h" +#define blockSize 128 + namespace StreamCompaction { namespace Naive { using StreamCompaction::Common::PerformanceTimer; @@ -11,7 +13,17 @@ namespace StreamCompaction { static PerformanceTimer timer; return timer; } + // TODO: __global__ + __global__ void kernNaiveScan(int N, int lowbound, int *odata, int *idata) { + int thid = threadIdx.x + (blockIdx.x * blockDim.x); + if (thid >= lowbound) { + odata[thid] = idata[thid] + idata[thid - lowbound]; + } + else { + odata[thid] = idata[thid]; + } + } /** * Performs prefix-sum (aka scan) on idata, storing the result into odata. @@ -19,6 +31,34 @@ namespace StreamCompaction { void scan(int n, int *odata, const int *idata) { timer().startGpuTimer(); // TODO + // Declare two device buffer + int *dev_data[2]; + + // Allocate device memory + cudaMalloc((void**)&dev_data[0], n * sizeof(int)); + checkCUDAErrorFn("cudaMalloc dev_idata failed!"); + + cudaMalloc((void**)&dev_data[1], n * sizeof(int)); + checkCUDAErrorFn("cudaMalloc dev_odata failed!"); + + // Copy data to the first device buffer + cudaMemcpy(dev_data[0], idata, n * sizeof(int), cudaMemcpyHostToDevice); + checkCUDAErrorFn("cudaMemcpy (host to device) failed!"); + + dim3 fullBlocksPerGrid((n + blockSize - 1) / blockSize); + for (int d = 1; d <= ilog2ceil(n); d++) { + kernNaiveScan << > > (n, pow(2, d - 1), dev_data[d % 2], dev_data[(d + 1) % 2]); + } + + // Convert inclusive scan to exclusive scan, shift right and insert identity. + cudaMemcpy(odata + 1, dev_data[ilog2ceil(n) % 2], (n - 1) * sizeof(int), cudaMemcpyDeviceToHost); + checkCUDAErrorFn("cudaMemcpy (device to host) failed!"); + odata[0] = 0; + + // Free device memory + cudaFree(dev_data[0]); + cudaFree(dev_data[1]); + timer().endGpuTimer(); } } diff --git a/Project2-Stream-Compaction/stream_compaction/thrust.cu b/Project2-Stream-Compaction/stream_compaction/thrust.cu index 1def45e..a12abdd 100644 --- a/Project2-Stream-Compaction/stream_compaction/thrust.cu +++ b/Project2-Stream-Compaction/stream_compaction/thrust.cu @@ -22,6 +22,13 @@ namespace StreamCompaction { // TODO use `thrust::exclusive_scan` // example: for device_vectors dv_in and dv_out: // thrust::exclusive_scan(dv_in.begin(), dv_in.end(), dv_out.begin()); + thrust::host_vector host_in(idata, idata + n); + thrust::device_vector device_in = host_in; + thrust::device_vector device_out(n); + + thrust::exclusive_scan(device_in.begin(), device_in.end(), device_out.begin()); + + thrust::copy(device_out.begin(), device_out.end(), odata); timer().endGpuTimer(); } } From 357327685409fb7099d7f1dbca614fd5f4a0df30 Mon Sep 17 00:00:00 2001 From: Zheyuan Xie Date: Tue, 17 Sep 2019 09:15:49 -0400 Subject: [PATCH 2/8] stream compaction analysis --- Project2-Stream-Compaction/README.md | 92 +++++++++++++- .../img/blocksize_opt.jpg | Bin 0 -> 47907 bytes Project2-Stream-Compaction/img/scan_perf.jpg | Bin 0 -> 79558 bytes .../img/scan_perf_small.jpg | Bin 0 -> 106283 bytes Project2-Stream-Compaction/src/main.cpp | 2 +- .../stream_compaction/common.cu | 14 ++- .../stream_compaction/common.h | 1 + .../stream_compaction/cpu.cu | 25 ++-- .../stream_compaction/efficient.cu | 118 +++++++++--------- .../stream_compaction/naive.cu | 11 +- .../stream_compaction/thrust.cu | 4 +- 11 files changed, 185 insertions(+), 82 deletions(-) create mode 100644 Project2-Stream-Compaction/img/blocksize_opt.jpg create mode 100644 Project2-Stream-Compaction/img/scan_perf.jpg create mode 100644 Project2-Stream-Compaction/img/scan_perf_small.jpg diff --git a/Project2-Stream-Compaction/README.md b/Project2-Stream-Compaction/README.md index 0e38ddb..7458ad9 100644 --- a/Project2-Stream-Compaction/README.md +++ b/Project2-Stream-Compaction/README.md @@ -3,12 +3,92 @@ CUDA Stream Compaction **University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 2** -* (TODO) YOUR NAME HERE - * (TODO) [LinkedIn](), [personal website](), [twitter](), etc. -* Tested on: (TODO) Windows 22, i7-2222 @ 2.22GHz 22GB, GTX 222 222MB (Moore 2222 Lab) +* Zheyuan Xie +* Tested on: Windows 10 Pro, i7-7700HQ @ 2.80GHz 2.80GHz, 16GB, GTX 1050 2GB (Dell XPS 15 9560) -### (TODO: Your README) +## Description +Stream compaction is a common parallel primitive used to remove unwanted elements in sparse data. In this project, we want to removes zeros from a integer array. An exclusive scan that is used to compute scatter indices is the core algorithm in stream compaction. -Include analysis, etc. (Remember, this is public, so don't put -anything here that you don't want to share with the world.) +The following scan method is implemented: + - CPU Scan + - Naive GPU Scan + - Work-Efficient GPU Scan +We also compared the above implementations to that provided in thrust library: `thrust::exclusive_scan`. + +## Performance Analysis +### Blocksize Optimization +The graph below shows work efficient compact runtime with power of two elements (2^24) versus block size. The minimum runtime is achieved with a block size of 128. Therefore we pick 128 as the default block size in all the implementations. + +![](img/blocksize_opt.jpg) + +### Runtime Comparison +The graphs below compare the runtime of different scan implementations. + +![](img/scan_perf_small.jpg) + - When the array size is small, CPU scan has the best performance. This is probably due to the CUDA kernel overhead. Executing a kernel on the GPU is a relatively expensive operation. + +![](img/scan_perf.jpg) + - The advantage of using GPU begins to dominate when the array size is large (> 2^15). + - Thrust performed significently better. The reason is probably it utilizes shared memory instead of the much slower global memory. + - Work efficient scan performs worse than naive scan, which is unexpected. + - Another unexplained phenomenon is CPU scan with non-power-of-two array size has significantly better performance (even better than GPU) than power-of-two array size. It could be a bug in the test program. + + +### Test Output + - In `common.h`, BLOCKSIZE = 128. + - In `main.cpp`, SIZE = 2 << 15 (2^15). + +``` +**************** +** SCAN TESTS ** +**************** + [ 4 1 35 47 28 20 17 24 37 49 31 26 43 ... 33 0 ] +==== cpu scan, power-of-two ==== + elapsed time: 0.058ms (std::chrono Measured) + [ 0 4 5 40 87 115 135 152 176 213 262 293 319 ... 802776 802809 ] +==== cpu scan, non-power-of-two ==== + elapsed time: 0.0582ms (std::chrono Measured) + passed +==== naive scan, power-of-two ==== + elapsed time: 0.059136ms (CUDA Measured) + passed +==== naive scan, non-power-of-two ==== + elapsed time: 0.057184ms (CUDA Measured) + passed +==== work-efficient scan, power-of-two ==== + elapsed time: 0.156736ms (CUDA Measured) + passed +==== work-efficient scan, non-power-of-two ==== + elapsed time: 0.151712ms (CUDA Measured) + passed +==== thrust scan, power-of-two ==== + elapsed time: 0.06144ms (CUDA Measured) + passed +==== thrust scan, non-power-of-two ==== + elapsed time: 0.05952ms (CUDA Measured) + passed + +***************************** +** STREAM COMPACTION TESTS ** +***************************** + [ 2 3 1 1 2 0 1 0 1 1 1 2 1 ... 1 0 ] +==== cpu compact without scan, power-of-two ==== + elapsed time: 0.1095ms (std::chrono Measured) + [ 2 3 1 1 2 1 1 1 1 2 1 1 2 ... 2 1 ] + passed +==== cpu compact without scan, non-power-of-two ==== + elapsed time: 0.1079ms (std::chrono Measured) + [ 2 3 1 1 2 1 1 1 1 2 1 1 2 ... 1 1 ] + passed +==== cpu compact with scan ==== + elapsed time: 0.2213ms (std::chrono Measured) + [ 2 3 1 1 2 1 1 1 1 2 1 1 2 ... 2 1 ] + passed +==== work-efficient compact, power-of-two ==== + elapsed time: 0.213024ms (CUDA Measured) + passed +==== work-efficient compact, non-power-of-two ==== + elapsed time: 0.175968ms (CUDA Measured) + passed +``` diff --git a/Project2-Stream-Compaction/img/blocksize_opt.jpg b/Project2-Stream-Compaction/img/blocksize_opt.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4902b24d49c00c684dcbfd1d29f9d94d7d9be745 GIT binary patch literal 47907 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

w zlTH#`(|uPAeg&p_X1zYiSPI_FlE;y9Q1hf@$MNUa_McX5$ywl_0rjkNlsU@5i>SuEcJBwdtByX+ ztRl~o+lImN-Y4gV9zE&erwg6``r?Z{ITCU#f|Lgx2LFCaiCYS~oSbA^3I2N;a}Fti zyADouh#*9w(BOfV5%3I{AOtsuo4Mu={#BACNfXl;N=32~J`>sJ(Z~(rqxePJlbm_FA#=l4q2$}b%&#g=`(LQsgEjrUqKIew-`_pTd5n?2 z2Oh&O&fYRX)Pf*LL!=gu9W%}T!_l)h#_o_B1oJ)lWZHdtJ#Ac-Xn?=8&$~%A+*Eb5 zcUj2X;&gs*jz8Fytkdw;`82?>3{4W-=;D_~m5_PyrFr^_Pkg1kHFNy;-Sz*8=f*zq z21(lSUb+j~)qDgtsLN*5g9h3%lQD1wnC70Wx4c%PE>#&_B_d;bNTDAFe zL8xcy|0UEzG9Z9wl#dR9MoOa5C~}PN$Rg_qx>7`{3p_`t*kW#z)<|et-gKV=SE~;& z_}li7*)EVgY`YD6C#rv!Pds>Jl>N?&@qW?Rum3Y!bp;=yAAP>1cYTw>b=Dw$0z%UG z6>=CYNRrTMovAnZBP*qCa_~i7fD2K=khh!VRc!()N zB+Fr@=p8Ymu%#7hvhRvhmT>fDxJic3&2?(SqmQDc7X@Y^AXWsPnDz8@v}4UeN;;q3 zk`}7JsXXp_>OdDP@|M{UXxLCTt|4F~JY^Hq-hQagXvjTCl1uQ*shrk;(rRiQ^@H%2 zY@X7>NBRPH4_F1>2`CLsVLRXI-ndU!VyiT@bEd19`I@67(i=g}d0D*c%g1yT(hbm( z0UU0P3RI{?X6g?IB2yOm*shq72j9CtJlR+?ekwT44|I1x zhIWCE$}mJ6w>f3k9CoM-HFl>|Q;;ZE>9verf&Y9*b%~&!tFWYYc|!0OEPabmvIPS9 z3ElT~PSMwTSNspKV@=l$3TnP>jf0{AG@v3F{IAlEwa&kvFIv<^RVy#tUIPOAgetGa zL)JKZnz0K%MNa8O&;SE)@fpS%kk_z+C(+?u4}S3P!oHoTNv|C;H1{&xnVaUiTkpM! z2V*ur9@U_Tcq=~?Hb^niEh20vz~2)txClK{P##2WDNtvN-fey71NY@)1`pE9bM<2I zcoYw}%xHeI%TTkZ*VVm;TBdwo*?W!{F9diM_$CBxGD_IbsXL8&Ws&2CHB}^y5B8ig z6m-w1F!hpLbhK2}QaF8AP=92~hf_;(05)mmWL7$)FAIUok*}m9hGTsE>;45C%UQeaiP~<0(*;p35Qo zeDCBCu#>Yt_+hjC17>*N-kKP4{VOkYs*!^hr03VI$_fqi9Ec>{;BEzvRP_EU=}7j3 z#9VS`hujwKbh|En%w$Sa@N??D#XiDC3{kn~D2I0}?)dVkF;7aO!utKe7Rz?2~ik@W2Ca6G+!gDzDvU9nTDj!bAPo2Z9!KlU~38o z+jmdc>(ycis7nVADt$~Z{@W@4b)~NT*`mq!^MUGWx9+44N2e9r-@59oXcDEi2&u1Ovs6-j(KhMZKQ!vDaHMsT26Q`1*NT=f zoZhNDwn4jczl%O{b=kN)N3SBkOc!S$%4QVvC?RT=Oy>0DSbWrg0r`o%MGiAQ%pbu_ z1NejVE-cgP^Z5b2SAPL( zfH>lgHf=A`6>LzqEc5Nbyi2;Y-coXheUN?1I@QfFOFV9P8}U$$;n!`T;QFYZrI%&z z;S`5th$L_Ixy0C4WSrjC5iGDStt9KR=;oH;{c2ZY@c|i))gR3bgwt7?O>9E!tb=`% zkqS1bzE*Nb6O zYg_4D#b52>fqw1cDfl0{c)YS$pj;E_3@llUE(+GIy5$`(i>3<3O)l|dii{mBXs5A8 ze)fs;;4Ij;7}jwne$k;9@QfZD3YtXCJgjWK0tHp~GG}7Wy8Y4+X=DWkW&EpsUBLbQ z&AzU4R)5ym^@Z*iGFUBKnBSy)Lgy^9iWO`0pNt=ObmR1M_8B-YlJ=W_kCUR||VGT)dCZOwK-B)iG34 zkiGfHb^)zeCH5t_wMv5dAFBub{VhGA@PBqoK}_~HxAaeU^p{q>Og>ZjRwsxif?2pr z!W=U9x#GSN!y*gI)U`|;EGF{iCPdhM)EZyyKfYfaVH@@;uyHQW(3ys6Ad0d|nyI+x zD)Wy1_FSo=hc-z{_k1(1+nyswnp}w|2R>z?v&c(4 zJj6Es8@_eO4Wc1JPb9JDu6b>gAbj;A{|WE`QUMHkM|(VD9jIi~mi#u968I*R0?|2- z63A2beTy@s!?Is-hC}O`H-0Wo>+EHqqc6sO#2e-ZUX95PS9_yfSDj%abq@P93q^wU z0Ex3BfV<}eUhj$PV)O0Q1TTPG{^EL4U2xWwa)6j92eV2!MvJC@NfGFK03VsplCzr4J; zBz-Iccf(jwEShQIc}R;qPk#E+5!Bvrt0P zFGMJ_bQ)x^B7WH><2Oz5v-gW)_gv0>_2L40%ZI8a37pSGaA@DJ=~8E0m?&hUo$7> z-fuGi%=Y^u0U*aV#~P6=ueHsxyhdncdy4(FHkLp}ZY?n|hbeBPQdLJykAMj_=5dCPP5tYrum*CL{EA#EyEB&8@H_`>{2BH$`p$o_ zP7L2z#Z#~q@u^42gsU-OGpQOaC13j+d(ktBvCjNo(xwh_^z z80O6)@LMfQJdMU_fe{lg5uLHb)7@=%5LEI2R7bKi`u%6#0DiuCj_cUs0%(!XJ{Pu9 zB!1xM>X43CElpUmK2DfYl6A&mwr49-`pVi?{tL%HWo(akUKHcMNSu|0qO7eU7tr$r zxT~2a;Ve~Z1Fn|Lp&&-cv}yLX<~jnq)BrpFRvWg=iFKE@zJF95!Yr01Aw zQ~Nk)jiD!&ZvTMUzj=o~;P3`>GJ*B*>*DURggOpD`{P*=EE(EQ053<$pT)5lEc?uB z#ikaC+}9QDdv)v$BAUh(>@Le2NYD6z@iUKa9%>tUPPOQ+!3m@)8U$w|Z|p64i-b{?3lolv+7;vI|d^HoC< z;7%z(J1?zyEQww;CNn@1KFA5mfPJCp*(IJ<7U=m&PF()@iLW0&G*3d*dq87Qstptk zB{1B(8jMs9yxi29L}{RaUNcj(J0G?4_y_XH&wK{Gs$-i`7i7{HhPR?iDo^Rr&ute?>-;%v8d>hzf$t@o_}gg|#%RN6$IT{>65Q}^tEf=Tj?JmR|kku3*;8r8)~ zCQeD$vkM`0A9KoB^h|g2o>}%u-4lNqmP~#?i=z~-UMC3^^^1n4P%bUt+Vb9 zy9AB2vd3sUtN^Ow(IX?b7M&=oPu1v9t#z63dE8>8+fQyu?Kby_%JHcqh$v;+jrT!S zsQ%B0$zOY9YUg;>eho(n04vpCPGxK@JwU!6j`S?D2TgLnCDV}xmA^p@omg)>v9xKq zpDZ=U1+DB%?Yyh!aaXu7)87;0h;iWUyO@bGI=Z6F);fM0zrg&rPkh&e$R!%aZzIcz4vo1epEX_~ z#;l^X4V4NA6#5g(!hEb*tFcbk&x?H7O9RRuJh}sWsgmgd4HW|))d?aT0BX3BqpjEh zmBDc2luX>tBwMfP+aDOYLD#&0@)8^v$9wsFKjVU~Lakazv(%GO`cv7#UVDS zub6H3q_2V1(i`A9fVABsOrmG(D#V$}A5@Qgwn8Ubp%Ibq!y4k@?`vQ`?=1AfVvurG zA3K?=2ak=bCBairC&GCYj9;7J&Mfh4M5SF#y8A~f@Xudcl|`M1?o3KcObt0c5`)Q# zzklzenpwOgFA)dO9gUamQx%`lolWT$_?A~a2kLKp_dqD5@puT>*_bTl-*;MmDQx5! zC9&&#bV;A!+gY-y?p>|Ct3d11Q*PG$n{hPG>X0=8*v-Livh;OnhoOsu3H!zOAVWyji92wJzLM90sry;lGKG9{ zX72a&>>HgM#Lo4@v&{K5mP=lo9i&z84nV~!s3f1!v3t!kND4;q6Pnzrs%(4Df657 zlS*0WcZ6UskihH@hyx=Lx!r=18O^9r8(4$FKXdI(;}MN3uOs5 z7hx#%?AB8@IUqOkJLf^=V4aAAD}1uwc0ewuab*wGbTZeq*VL8cJP8eMfMzx&9Q15` z@LBXOBJgnb2gd-Faj;(2`vj#L+3HPVY{feiR8DzKKkYpSih!B6!wA+{)#sof zl_j$f+h_|YZ+M`~bI1iUD<6!jZD~5H7UcH1+5%*|2@TcB3@`C4I%ojmb{h?{fr5{9 z&806CQr3GUd`c4j91$gtL5xr$OOCL_GZ_flj|Bysy~~*=*y-H1_C+-=fXA}cM_S#V zx=wwgCx4^FlUS|&sQgV*N?`VdgGYy6T`y9T46HC}gs;=zmhbtZfFz4?F~OVv=ABmVJ#YyFuNigmInX+9|cEwQihFm%Mj1Uq)~? z=jo;tIXRB>B;xrZ7|DtK68!up2)lH`2nN<|bcQd1#vj&UR?8fs1?6RFUjk=%ru^8f z7eA8lGptAjb(QVV@PuD6$z`GxmPec$f#*Eddp+Vb! zM2^cmBR`s7?HR5E4049B6Rgx7z^QHozu9z>E-7+pMg$1TPEW+bYXs+{t#>*+h3eqL zUn5rHm?^>arps{Yu?c8~1bS0~dD#UB18(~gPsT7X*;N5dD%OrV(+u*CVA&;}H>YmA zp4JxoOmw*8;{y#n0kq5NbPhi30Ex-xxdE>=FW7LwySQn-j8PSYJpu0LIsP#;tVB=e z7H1O&Y!wpoU}-2v(CIyX5J9V*JGZE*%rhs|zr3TCipx_704PDk0WmESZKq?S?fOQPjfw;O@60qaVO&aH>JNU-&^Ju+K^YhN|i$%N^ z?IHCSPR4TT_-CN&FI@A?#D)lsl@X`>jZR)MCL8Y3-^UsttPNuXGzkqav`sS|ko1cwyPF zjl%EWWC7z>192W(8UX+w2o!RM(gyr_ZxPji(nGz0%R+t>NaEXe6ivj5b@(PS+?c`l zVAg42@I6o+5XuaQ9hpSUW8n<1MFZ|9VvhI~(|60?&1bg66Dl>&x#-jp!zN6nb2Vi& zxwEL;#h|m`f;WM4DGU}p{{8JIBOQTtQTiE&w!I5N1-N*Y?gSoC}#s|xij}_xz8IA3oS=h`2pR^HEZ&m)-Oxi z3}CNJvottBDjhP2<3e7|p9nJ#RA8V^0`afWdWn(Mp9NB1O$Nqx0sS;s;^F3D;HLvk zP9;7Wkp2?SOAov)u^i6~=w+kj&vHLo@1HZhKc7?grEE|;Je%yUB=5JiWF`NVCplZ) z5)5d9mX|n<42NfCCNQSk#IEfYuF+`IBTcKhg9lo@Iufz^s7RE!j65W7<{mv_5OCIQ zo$b4da!0mL{B8;Tb>YMDor5*t1c!paO8d{+4{pp*^8bR)iALLh);WQFWiS&K3k@G+ zpt&Uqd@OZm!l$sQHO!Qm$|6_}%Gydi?6@2u7_@Nn9vZbR@jL=He_sV~qX(_wvxjeN zSAWV@b?3WbTefw1WAB1_RD&TIP=hL!etifnnny!y8l}#V^MLi-v}`?HyP>H;?m5<6 z*5U`q^mIc}GWc?RkrH5@&88P#QL|*3m_9T+)G};w6tb8X08%_j$1QdFSY1$qPK-298$Sv=N@gzULK?TJ4!TC(*BxSd#*Caf1G0rgy~ zhxaZg1p_1OmfPHiuq=EXZ^KvU{D{wr@_9E00o$HR4`M-Z&v~d_o`wH_8T`S8`y7^1 z^i4`Xf(-cV(lR_SoIwJ7CJTfcRz$7_DS_(9JqLqO7>S$oBa9)F`syZYe^Rp1sh?*F3VdjE}pu&lOfWZTis~;EdqAk ze}~vg63jdf96{5w-aBLf%J zC_jUM;~QlkiN2=gKYaMCK~XnPoVRUL`SQSlZ%dW2ldl(BxJH>@My*8sGHL}x3dTTU z%5tHGy?CJPR2B6fDO*IowgOH$dlxi4D(VwEPX8f8C2y?i!}f-gCj0Mi2-#@=Ky0)} z{I-TlfN=S{`JW4!CltcI6f%QBAv5-KArs{4GcnSh%L}fwzDky{Z;2WVNX6CNsw6UAipAGtmu3r_^P`)U`(0 z5M2ydN5Lon8g77U-!^>*o%a^_Y@&mZU}w*%fXH_mTon4oMqh+Z{LV&aW7In!Pnij= z?I)s*?b6C*4hbK-v4UUNEh#``w~J@Wn~qt>0AByyYjOa4Ltqg;STf$=Z8U!f_3q{@ zhI)cMU0OK3Fan&&TVQDi#FQ@1r*8V}J71wtDEc{f9DJz_MlUDHOOSZs+ak6WVpXzAyIh2_%nt$%!8AL!|ta|9EZIc;7~yEBo<}iQmK}l>}JY zyZ`4XJ9X~dj)cML_a%PI4#|zm8Jgxig)t!1XvZ*l)opK^!_ET!h_%V`Np1n(_&Gj_273(Lrxg^sx%_a+$}#xDt@EO-sYEj z^xx>s{;FpTYO{MP0#{%nCZ~}}d2iQcv(AuR+1HCbQzWeX)`X8G6_~6#nQq5M;8D_q zTS3Ozw1_!x5rYzqV71`rn_8nU&PndPaAIdT;gcLk2^_tX8?WSr9 zx5;BmOClq8-!j?mzA@mQRmLTE77%O090VMhi~1DL@7jer1cs<~0gu`0Lgq$V<+4X; z5Z81TVxKJq)26Q*P|Z2b0P?jATjJ5`Ld@v~mQUbgK{{gJvcxl{G6>h^8F@Q1P;ib1 ziiq&h@bckZYDEXq%o0Tii=B)}&#Er)fq>XCGOriJ`gt;;n(^y*lF_E$mxx zztYU23GP|@!geKA>B~mNkl^a57t?G(rv?nmz7-m>Y35#NB+$p;i!O*!F9`L?4#eof zMA<+&uG8t>P2AyTh&3FpR(e|fZcWCgAJ(dR8-lo^N!iDWv=Zy>tfe03M|gfy@)&x) zbAv^xHILGoy(UN2YM-28sMX?|PH^PB?+!?3LU7ZKS>c{2?={2q?TuH;OfAFXM)#W05T`o(^2)Y*E03BlGG8*>G2A!%5q=-38^wyHc$LlRE1G{iC z8{S_nKRPzJON{hpqKKQIuv$DxWGf!_qcQ|x)7dcAc96X27hLpoqrMZqG3N!Totl8L z)eHeo*Pw|wZF(A)@ehI-anyn+3k?&rKt%(GV(K7<2RX0sv+5}P+#zDU(_SANcd=6yZJT*T zITn;!uPcg1o3L_EksHr zAM~!=#|o75EF-~zB972_G#GgygP^TJaQVVUxPf|5lM-xI^RA>z{_ZGI#kq`XwV&Hn zrKjF4*RLwpY9>3kE9{2>^(Vli9-n3ffkPKOG&#Ybk1x{%I|B z?q*c9qCU$ondJuRts2WcUSsP^)rK_#fo>fQ_E|U_uKMzhR&XR+uNQ4Q5-v7X>^B%2^N5A zoFj)+Ty4mQaGodqc4oiX(_-HREaQ$O^2j6&5~ZsZ9BMW5Tzdl{USD} ze-WDlY8CdQ8&K~SVCelbZ&20lV+Fa`sg-oy^4pSpym#t0p(OQDW6vq8^Zoq0n%7vZ z)s`Dj+&ou`FYOX<`T>{3i} zp9ztf;jUQZMrnd2!pIV1%gR5GTeoVZaeBNWXOKvfRZ#r8%~dc4xv-*{&z8&po-X+| zhXnA-N+f*hv%Ww$G~+wy^Pfvy!x_ZU4milNX^*^3HsC4dlP|Wy6O!bf%iBFx(`_U3 zR^Ip4yb4NcUqmt-h@>O0wq^5 zlltCRRYfD9UB+%-PLEOnL-i5I`dDbA92&7K9q~%F4f( zZZdrawoesl4jX9$<^%kVqkz9T8-|!({+q~>bv<`v=sY`So|^)rt>j~U>^lu+<8I&Y z{=t;i)Wghop5Swcd8K*hFzu79a>U+0&^g=X?>Ay2fX;0f9G)N6q-jQak=2XwPi5jf z#jGwer$nE~Wmm8~q&O9BZ3-{@oIBj;-v z5#ioeSL}0*-ZAIrD%q3T{XCQ=;qj<`%fsDKl8fi-0vECnt(+)YIaSWil$xMmuQT^f z?6KYLZtsE~G4rOR$2dK9gl--BbpEOEpF)(&t+J=T1U0{=1R!5u&cVNA2><&}G2aXy z`KPyGAo)zCr>1i>-+ZO@dgX!ak0QHcR=n9liOH&~cu;jCj1goW(7=wfq|_#xm~GW)f!(3^1k+q+DeQoEg6N0SA{Gf+O8v<#R& zeXAwnzqxTy1|G*0hED6sHS6QFLhS|=89nXjJ()!|zRLeFyqkvL%f@e(mS7O-JsS_f zhSCLT?$YA}r~_tp54r?|f_fh*$QWnp+Vl3ayPl2tmTZ=p68G7uu4*97D0z&j^D!)F z*E6ZA;&fD%`^on#OxX^5x{E)l5Pes6$2di!@-$cG>^?!(j8Q4sQY=c@0UWkQiOKwC zS1X<|>>C6|8a>uTIngRDM5ib;coE(DhG^byx%c$Pg5cL$ZUU}x9;)_ZgHV^gZ|MqS8Cl^d@xA*Gcy>$oE9I zTKhYkKIM}xTwi!27G>LhdBbZ|d?1}<>BKTZ#P%~F8gE)rCa<26zk@2*`kv#H8kOvflI;1gXZ2}~Wal;Q z7epy3KDf0{Fh$M$Ct)khRV~(|&LsD^xxr)H%>`FGh0OY1gbs^4<>+8}AF^LP3Oi$_ zyKmNwF}T=Z5C@;>n-Ij~RCGJDZaZChtlc>;ce>zAXH@~$tSfw-VX3j(0qQW97#1zj zi2b5o*5IxHSQ?8tlh55F745fk@^Fd0W2=V3kk0l^N0AT12ZA~l(gtTvrVN@xil^HZQaPS5aHOp=@(YsVHV^^Y|= z7ZF>cKlQMDx?8%piCYr?wn?y;L^TV~K7Atha30(%ZMSh`aftwud zx2cyJ9LO5yzT6MUU$S2}a&UQy7i8`M); zv>Y?S??=JPdHN%@xWoDGdtp>PQU6+aU*Vw-tWf)s=%(?EJvve0DG44}cxJa|Kk^fi z+{}ND6R+z!Ym|`Vq@dVdWbbqkV+Kc*Uf>@-eQ7=AfvVL5*@a8NGX^B%t_0OI3i_RV zP`QOA8zA$B@Lac~WWURi9gDaq-8!{r%6E*#_oC0M?Fn5A&JUcFn3w%E-}|yzU)zzF zO(XHwsm6bJ{cE-ekZoylefJwo{7YhtC69bijzCl0_n}vH(7bP2Rc@?_d0LYmZmEjIH7P90y z74*U+efrsu;o7}|a%0iYHxy*-wmh4wFZ|<8WB^MkOZ4j&yw4J0lrkdhZuGKrT5#uz z$^z{})CU8lhBMoB9rItP-w);6Hw@bhP`|gzzR-ha+%6xspYjimKT}{--PeBK+*EeGI|UTLcG&1Bw!?Z-VLs#jo}BA|lNnpM|DbKs5yume9SVN;2-4<&)_Pu~c#>;x#&7-eKD|8J{5FPd{r#QG7Bo7FJwWVS36(DeG7Ly8}Cr zS$?jUtkc}Jo9uF&_Bgeb7~&3^TBK&)UCgpWUKESIX*Z!af10?4Oy)m2deD8GPoj_I zSx?ams+F;^t3O$mG~Uhb%U$7X9j&CJwb)YMp2$)pH4l0j*bEbsI1`!fj#NYXp!@CW z6T|?c_Nnx;l2W-|Q%R3=CJ(lMc;>z%vQg&QA|W7v6qqa}k5^|M?`p8LXyKG9WJy`l zr{*=#uS5dPK7|dF^m@MpEXJ;}3Vf(B^~-_tx}YJCb;Z+3+gt9#6W=+?n0dHL#iWq# z)(39#K2Hm;SAa?8I&^Bi$8bnjj8}E;YvJhUH2d~)Z#m@VAmdAZ7yT8(uST3PP_7&M z>87LP9M%9Oel^MZom9nyYUl1LCuTVptyOGdy~J}m@buv9HD-$CvvdT-JJ`VA{Ztn? z)~f@_5GWrqVGJSQ z>)WwY-$WJv;UH}pdi#w*{Q2n@TF$>Gg0#ZKn--@&gH2hH`fW&i`$frhX+@<+zZVab z*miTJ&$g^)1y3i%t4SJ>jW2v``syM3i@33Ls;2dxiq>uS@kWug4 zsw@}U+Up~cI)N8^w_8r?lQpbKLx`7{5t1HN-knijWmb|O0h{c_>p^Ip{QQuqTt|GE z=&rzB4IgFRG|vgn#q(dJcyQW%L1C@Sm1108+E(O!M8EAiQ&Q)FZsl-Er{mx$t>oBi zPmNcdMs0lW@$(NeRGQD`a@)g9l+u;A0C|@aQ7hXP|TQ^!43wd zqT;Krc2p3Cc+qC9=XUg9g~X@)PnMY27*qP+c^BQ?o;nDlNr8DQ=>Q1mI)y&SLNLA? zX?&StzSluzN@u_PVuzJ7X)y(zNk3~De*gp-^-PPKl;$QCRU@IOj>73QiiILBIiM@_ z$_K{3Pg$<#YN{Gz?g6a(@g8#Z#*(gDt!Kf`eT>(f|B)f%2v+_(G_jUESz?j zeoOAE#)ROOyn&jTI{&b(d8HN)YQseCX2QtZjh#I^y4B z_M$DNRmLlCk9tKHNl0vcH=a_{R^u)yk*}z3o@ekOw~ZI8m~`&;y-L(J-6ypx@5-RFIQEXWQ3xLjJ%@{yn1PM} zTv2K9a0oVsB?NzuP@th<7x)chyuW`vB)0Jw6JQA3DB?hn1D!TdfsyW;bv(U|@2H$5}T zOx|2eqmM~wcBLb1puuiLz+}k*gRF-(twcrD_h7yF9$R-^r~}?FLh@8`WwAfCZ68kX zTAfJW#NuO@1x%7e18R?G>+rn>)3@;%)NAjqb;oP%O?O{;_+6jwR{Jf@S02q6-d*rx zDj^lm7>v37J1igZ>ujL^N$~!_^#0GPpjXBw0?L3%|ES)4QmT?3C)dm>V~5jEBe{43 zHog!6E1@jy!81^9P^1+#P%!a2ESeKbx37#>Eh- zf5ewBVr)Yt2+nL&=e-FLJfWVuqkXVBN^zFuREMt*e7YmFW1>4I)4&$q%0(jEtDdp- zAfpyA>wUUDY+6>|hCE8ajH%;Lx_~i1h(XW6U7sMuPXie%;ElOU5B~*C Cu`1F4 literal 0 HcmV?d00001 diff --git a/Project2-Stream-Compaction/img/scan_perf.jpg b/Project2-Stream-Compaction/img/scan_perf.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6ce98dfd3b500299c2124eabfd9d94f58e75f9e9 GIT binary patch literal 79558 zcmeFZ2S8IzvoL%BDGG|B0mK4QL__aIAksmk6MB(eL+DK*b_4_j1f&Q`??^{lY!NAf zbOi;a7g0%QfslMBSRQ@Kd*6HC_x|_0-~SxQIlHs7yR);qv$Jz%59u}O!|p?>L9R{! zpsfu+0RW%_7$^XM3Jg)uG=MjXuVJbfFig1}CZ}ak(0qjhlpvhxTNunp0r?gNu_)L8 zYH~T?FNfmLk8laaiJ$U{kV^nK!Cy6n=yv!37#<9F1$KZ>a^8>NgBzra{I`p65de7i zet#-DAnhDE^jwgBNM9GE7l*Pkhp4cK495u*S5F6Ipzle59F-N8krk2RAm7Dg#iYO@ zfgQI1fR_9e78Mn__pOa25&+zz{9f-4;2zcYFy#?)Ch(%6p!!BT&Cl(l@cFHM6d^yi zkCNhh85EZ(f0Ruh_q8}c1ALO(xcwx(CM^OC+ikK@)&?j^pMX8vF~H#>8ILpqTm=~D z=;(IRG3?yQu#bKh{XPgI0|O(3b^m_I{{5``7`Cr(kFSy6-zj#})9>E1d+(k-dk^f{ zv*!T$w&%dtEc^bM0!WX5eRKdEsRxetH=D@O5}JQ5-y846lj#fXbkl;&q= z*_&H3NPu(W99QW5%mxyGVg=q4?^|252Eh7s3gwUEwL|GM~C!TfYP2;--MBQ8{qbm13Pu;;* z4^-||s;e?rhI(~zqxpGKo2W-2XGy?K5^#D(Xu(i}mYw0ohT>3!x59IeWveQpSRgTb zkoEPXh6~3RN7WS*t7_)mIZapgKkr~NOee&aT)XM(de2neY9Q9oc1`MIV~PKH5^!fl zUag7%o7r$tms&Vi(aBoxd2vW$^OJjMSGX8H8RqX_wI)vj*4ak2-|^)BRXi(3 z+`oJ(;_?}9o5Yp0-iOcA&y4o&7F&=;FpIzTd}C4-X0*zQ*i(m` zU39l>uUlLTiz5N6y+fPIFnrDbafhRke+nYr_8oD((ABVUw;D;CPG64kN#>|4jt^Jr`Z zO}Mndi+gCrPt*-xP%phAZ><^!`FB$W#`a>0<2$i}Bcbbg*%W zp_*#Ip3J+h5}zc^L)DEI6yLUgtQ;DfuX|^>#V2V<0xUH=E`J)bfR@%6OIBQzDE$H` zD;*i@(kB6|sCj;~`iHUQzTRG<7EW3(d*VKx^POz59<%5fsluggsotB}$aJi7^<48D z{;+4iRk(ZF=8Hmw!kUbB&BmNuw>!G=@#o@`#Ax4V8r^-o&Z~L$>s&ME3J2 zZ61LOJpe2R<9o*KhsSVnv^=zYZ(WPmKDxqa!ZL|P%>~h~0*oO}O|pF6Z_O;&tj3j< z9gol-+K{*DXODyIK$Ch_;CK5qHc>jBgGUBoZ^z%O4YClU>{Ex#7B?740By5N$!N}E zvvS_1>G-B~o3Hr{qivPHXJB*Y%P_k$+Quicxm9aT*&j}v@5rL|80N(>-K#d}M&vx| zXHlQd93?6xh*p%puq}Gt1gzeX--;O_x@g;!Td=+0^-Pti7{N56B`EXC^=gyMv}_WR zZ_r!YSp*2O|5+eQ*sv! znYi8de>!@MM}RFukKvSXylwSBVdio;aeWvzmwlOgzR;7|c!E=O@e*wIj${)FFla9f z+-gdE#RGR>ta~9ToPH!+`RdbR*Fz8c8FL9ae*E^0NArF8UE`kLhw#8iy({p{{)+NO zsr=@fzC}etvO^Lh=Mbl)=7;3d1}|%#q|LVwwWzq?__X7mN@h=VmpWXv_LO+VfJ|2N zOZQ3TR10{jJ5HIYQHg$_u;BSiNPx?9X)e$SK~0_XY;B$7Capt3}9sh!za2DP_{+0BC*U zZ%s8nL2F;F?MUadJsh!tWMA?Re|^89;p6%Dl1)y#?nncT?r&kmb+7dNyDC5UYsXtu z9XNG*+`nN>YA%G|-5s3FDTEd4oT38RmswWEGTimp&De*Z2xHSEAYns(H3ap3Z?Z;g zIhI&tUy&TjnYKUhjqBTEBZs&iwXVk9sz7DKbIu>iZ-X3wk@~h5IZo7aDhVhe0qxJ= zN~@Ehr8Q|EZL8~FxtB24M7ztMS*-YYUVb$!9^I|7DQL6xvWn170+v%<<7lUN2{z-I z#V$T!CkI0X+G;zBJ*^(S`qIi`V!9)#0%tS3)d`ZD5jih*G=D!Iae5e5WkQUDFQp{JAGJtJG_&39Ras>2P*b}ZXuml;X6Up^4Eavp zP*lz*#>cXqZJ5ryeDjbP!;2A+p_m!BfZ4ICFpq+vz9T8xfp5~1R)-(GZ%qEB-l%nd%6zNR(9_uV7ale<1JCfs)VY zR^DQngPpnN31LO%HLum1zaLBzxppsp_;KaIk3`?Fso?sgy4lGl&4k@0sM%`4P+G>= zPI$i61xW_JyanqS>3YvYHtx-30wh3P`4Hi$6zXc=92z$jFg(0)&K&*`3vD zmFRiON9di2ps(43)(0Pb&7=J(^I)7KR_6+HXT0w0rXC&Ca@U}g4bA0_&t$Q5yV39A ziROmeP|h!6Y)hmiGP4hj>vY?0@QgK-@E#-euNWn_7joy%=lp{Q8_ns?Hc6T1*;PH% zrMoHjY{j^zuWb@Di`oYgu|=9EHwtFp&Y!1AG7^_~!(00EU1g;0O2vUgV;H zU0y%1!Ps^&N*;cm-zZ|R^LO>|bM@RV5=`H@jjgP0ruCH@r^rQ63V^rYTFmrQi*>#H zT#=r>U^)vKQ`yVU^Lrz}M%wxOh!{BgYX68R`*-K(9FYEYr;+c;(d|p!$MX*`C67Pi zDfu`U!9D%dxC}hVef#55@^IkzGq{1Thu=0_FUaGx!4LFZ0gm>5NFNnjKU;DOwu#hp z*7N;7D#&3nGWaBu4V-m!`dZBIsx<;P#(!3=p}ogfxSo&wX)|&O+t*%uAEcLwizC>% z;0Sf~bpFo1J>&!fkR~OhpC1z8f%J6#mWAPa3YmnT;Jd%W4P2dFeomnOo&eJJ1D`xs zs20D{@NHvE@%_0ykB)Dr?fF(I_<&vfHv4vO!^rdU=r-oTU*lA`?fA~^J9wkm9;Kie zfqd=yHc3G6HU%r&Pz^xH$q7vH0Po;dAG|2OLGGud{(y*X!_C3_cN~dr2zlgxgKU?% z4#olU%p(2iMKw!K{?jDVzmm4i3p#Sy-{&FaX>eYGzi)gyN)BxsD89~HHgc3o9lU*| zo*V_p#*b~0w-fLM>;YTA6R-i>;t0wPCouWjKCr}6c0wRiM2 z_BczPOccM=L%p2_f|{<)^x6oqdr0UcZ27kUp-?u0Q0Ysv)^_-EA0H#%^1G zKcu>&r=yRppQ8f^0E~jYzKi)?Uy;cWa*8IxnFD#ci-3YmDGPEfLQp$aCo)_=AJN_W+Q24ur=6te`pYZ*$?_=EA?tg@2n1|27x? zZ7%%VT==)S@NaYB-{!)<&4vGS=EAR<{4r2h2LLPZ2kQ2qu?|oK96%GB9k^lU01a*~ zVAv1*`EG|mlK^M}`^Oj@fHL^U0f+*^fCwN%F8FIrU-#&=+uLBUF46~vH!gmDUa~?$ zp1y*%WY-8mdn7_A$kt0pL{L}=kb?zz+1k51`f=Dff_qeX&d-f#P7YTGc}^1vZDDOM zWk(lRjSwG4!w?-K`w(|~83#_70*73XY!Jc=;pk_}5rpvY^py>g=iDw_77UZYLYy4i zD1PqpoZIdS9H!cO9Lh)^M-B-=NdbEiaS0A789@x6gezJpxw2-j0kcgOoh@`Bz zu&k&k$G3|Utj)*4N!CC`?OR=7OrG;wqXGj11p~zdkv`5sA~G^ELc*d#qM`yIhJbId zr=M+*fTu6l_YzbbeeHc*x2=pEp(M^8Vl@7W#ff8_N7H{06{aIhD0^l(IgXue?Ii2SI^ z>$@wt&QL*oNG(CO&Y(4EA$$7w11YKPnWTj-JBpijsB?N@+>_r8n z?8PMoY@Nhx1*9cKMQx?UW$Z=7e&qjZ`>^%+&(-ZEI~O30CzRTvJ&YG)gO~6 zWW^cp#bt$szoLTWxjF^^5%rtn&@ZUqz;^&Gv;Pq?dH!tkUc=QFH0B0>8{vkI z-rqtVt{mIrOV-w&Y!jE~^tBCebm063bp0=L|7)RvpdI(uX8*1&U(tM#PJV&5K8}jc z;OO{1i}k*b#Xq`LeJ9V}#n#i=5fmUooI+rGgve9vYtw{&-|FqOpQhz^ba1YdgFl3f z!gpct_w#QK{LO*CIq)|J{^r2n9Qgkc2Y%b8IC_GrMIg8d`Np z3ea` zT^YtIvJn#S|9TV!`UwAf+FXFKq>~rfX55Rv;@ko*wJiErpxuZc$ZmsU)-|wd)!L#kZgLa}=OHVQ#ys zjCu|WCzQbNhA9*Mb<4sm-BO1#ggEL@f^QFUH4_{k_ zvB_k4cWehtW}XDxU)I*E&3RPKJhZpXvk!V%^TrDxG+YpdjQu!X#6|)LlR{J0R{{&) z%*$4(pU<%r$ek*b=lbDn4BFm_>RbIcTzZ zEhE3Ub1Cu1jvZ6^$g(C-_pEe@lc0<7HbRsWCK;!+$5JP-&9$}h^I}>nLC1}54Y$dN z@5_C3G=XVs*8@+6v0W|Do4A=7-Kn*>a?S@hnk+;86nT}3x`vqR7$>w0G~Go_Z@~=ryEL5R)w`w6k;HVe>WRrf841|UGQO1#=X^*4(o+a&bq$qu zp@GRm1~NO^c61+B(ueOCwt0uf9b3;P0RdhZv)DAyxp<2G#B6b?`^IhKRKKfqJfq5D zqFDGfE{5JDo2d8f&f^#Z)UhzXFq_~{^X@`IZVIJ@T@LZjgGP5Y3!k1Y<~ZDMGX6e{ zeHdfVtW5M#$D(wH##9~-(GDI<=*gItc8nk3E|spH&6Sily+BWRUEGV9i3y5#NpZNY z%6Q<0G9TZr>&A!ns(VK^DdP;gM=uPb#Q4$Brb|Jo+PKq#HO+|rQ_2Tz3@=k2ism{o zU=uxR+G7rjs4$YaeuV_c&`#>g%(gLC!KP`GBv?Ka@jNLpus8u_)A4CMFwWX!=`_L1 z9G$(%THGVIh3~-!Pijuo;Pw=7wxlSx+A|>K2s=4WL8%^VD=)C!T=_fM;iGziU=_FkK-k3D16)JwmXQDGM#$sQ@xK>0&rE& zAd$=|l-L_g3VWZX2|X`vg{ZwH0bMF#`Xl)3N9Y!oG<{ET3iNAW&1r8@Mh-z4lo$7? zCxeG70z}6PGgDzQXu+n^((bH<;mX(Z%!64Q8ly5ABKuY8+H*9y*sGYrme9!%V=V1- zYrNbh(e&qVAk|^{`{t18fI^H`mu2 zi4=dubwx>D#h_ewy*vZ@VrA@QIfskBOEOzV`2ph$TZRqz@bw^WRk+=>Dz(1LLgNy~ zI(UZh*OH1qJJV`{oB~d~#{e zdqiW-R_0u?7G)V<4}Y`X(gl4Ay6dN>5$?pAZyoUeVhPJbG9OHRCGWcR#aa$E-u;OL zbYRR(Qb>TnqTekW!gB2iwcR3gP&_uOaC)&7qDi=qU&7l@FNRhh z*>Ak!&&fK1;TL_vOGhtqEeFo1dbob848{yyrqnQB!&uvbtUD8?GsiYEyB6~P{Ec*s z+$&}AS8DHHT~Cs5bPF5G?}pfcho0hLcfIkbwg6+I(IB(DyXEpH{&E5Jf;}0*zDXww zdMG;~w3zPLHyE?>NymPZ47JD&c5&cxq~6luma^Dr#WWTnr{m*dbEXaRl_AS=!; zf0qwFpqoy(6zJ(ti{lcf7{5(vk`pU75T4g&W-_k1KfE=vl2H=Xr9_0|P0SKh1|;nK z5BWa-bjroC-jwlbDO(}~%=JK3`Jy27?t)D!QL*PjA!535%WmI&>%Ms@eV^N1&(RFt z_e8}ar6eXcTLk94F?tFrginM<-1F??Dfj02htoA2B~3&$cig;E%qt9;+f>vQ!g?DW zuL39MPP}1uTajXDiC1HQlb6&en=oU0c^8n-1NM+N>d>BD{_DC(-i3_Fbu> z3r8)REk>B8c|G}K4@Xj*}Mw5%G{&DMG;|dV(18t8o*9M{8uo(`y ziD{$|J_?H+QSIlhxMDnjX~~LP%IOJtAVgDeN`DOEm~oykPiVkO5ZD6Hg{&((`!xhO zA~h#9x*kuOKJ~KMW3xZ3eY^k-4f6=z|FWUBij0 z&9OGa7}IxSgvp`Fmu1y{DH88{`8Eu!Fbuus#ew&EgsDq zO|ep+kIgWh7$2i5ZsiMsb}xBPHd%SYM|}ye(-aAWSNG6EF`1LDeuk)EhTD6qWOeM_ zyhX*T_$~Frjw8b%A-v#uF&UH);Zxnyj*W=aP#K20fL;u@Xo)gXkLyw!Y+w^s6Irnt zi*ILayW@cp$c6dfsoG48S3{=np){;`i>a@b7+7}M zb6+}U`gr_$c!UqQrrATzHbvv3rr71?ur_$NEu`(Gty6c}s|}vbcyY&^F009Z(my^{ z6;LbB*)(UiJ# zMMNCl2BL#Hv24Ys2UZYC=uX<`J(OP;m&9%@aqC19GUn1H_Pu%{MxHh9ZezGRsoV$# z#GzSFvt1{5-1rp8c{c#m7&>-abR4xItPomt<=L6Zw(9Wk}Y zat4$t>8cMKYpbvG6)w{crGC&?DeJ9Do?M;`_O>PgmFSMhiX$lPz7HTCfA3`EsCe9T z*S`&{@aiFk9+Za>?#@uRF(g}T$IXmm;o zKRgbf-&JRlnGsT+ye#xeLBD^wgGVX@Iq+Un$VvIIr@`As^@DJAo9k+u`>K2S;er^06vc(C(lx(^9p)gI&!ax>Q!m@e!qL3?l#_*OwlH+@$~`wG#kQOBh;Tm6Hx z|BDl}LrF{U$x?+8KG7tiO*q7m@G^e19fuWz$FtHBeWd@D7fKjD~{e@HUthM=DbNj1N6i+;Y8D$z~WA>rt>FT z^O1)PqjoAadA7^6aSpv#S%2eg%s3@)*wMfUip~rNT+`~RNu5jSed~E11EJGP9O~Se zl-R4BC#N=<)QLLKiv;v}0c9Kv7ifY_Ex_8(N$snCAap2L@a7r!BMR&hgY&9ftL%g( zIK|{UF9Jq51giyt&meT!gho{OGWB&dTEP z=_0C-1ZA-^D+_Ji!=UsLb{jS8L(iOSdKfzGY8&~&WpMQFz<@mKC-Z|l3}lek!eEt) ztL#yB1@Bl4d&(3(*9_P0WQX##8}L(UH~CU|4@^Xs;8b&)*KVPY z@qfCljr8^9-mmuLe)jo-eYZEg<-AQm)xOKHoC4BYw1UvHu+cT0vKRL?=^S_M zhTUcpgsx`FJ}%Ood>62rH+fFeZ!@RjgSB;|(h~*otunuf$QCa`Dh@Vv{4SoN#I=D? zE9`bd$k6OT1D)VZBA!lK?UClO4|6#eV2%FZ-YMK&k}bE6Fs=}FJonJaWa}02K92RI zUX|N15^uR)991NYxkEzl<|-bLb*y|6#TKFw#IXx%WMUiH#D`Pw97`OYnYPF8$DKMI zrCW3Pjbl&K0MAnuoBnL-J&_r=;VUd_@lDnxC?3OsPMiHV~r;m-rVOhOsAU?Hp>ksJmBnjifMMP;6N?H_HD+^bO z9*4n?*Vpb+R%yv)Go0T*H|j>+jv~A+;_A%2qo7=eMaCfr$y2B35AF8VPj_X>aJ*bw z%cRWh-Qiu;?&jc+G#r@NERV2&DB(RP^pc4_Xr(QlX?I;QH$GcgE9=*akfwc71Noe< zL(UTK-#lvh?jhj<%pT%^x-}dM9<0BcnHFexI^I&XfYm;(U&JVNe4<}pzh_+tw&D#( z;-9%>M|N~Asodv`we(l9x~P`}&_KrsQ!$N&W3OGI$=03?azkxKSurq#x6w=+(T$K9PV^2~({9Rm=9X#L81q>-A$*9t-}2#QRb|b?SP^lb z@~3P5Z`lzn~!Fnmrd{ zGTAS=;h!UUt1Q>)5=XTCftZ7E_h-A7^c5q)jZvzUtY9X71#cT#tci5bkCu~|8t75E zx<~YcXk$;ndf)~4q3I|qG4RBC`a>+L@Nl4HwmOUC7MrNPUz+nY#z=P`pCG;_U# zph+l=EC?>wegH0HeW&C3f_l{($ZITvqi`MuiG`@**Sd#G41?8% zpPJWU)6EA;Hj)Yp-1a?%j*MU^Mb$dQ)S8A}lR&+=vb+N?VYb|cESDQXOm}GI8CNt_ z)m|SJhad1S5rVcEFKtQ}b2jz+Z5}XbZipN>+{5N<`d9&|fME18$58^Pf#D8fJSR97 zDvU|MGom>OD6UD~;#MUA5_X^+Xg}VaST<<09LGW!h-@V2PL*#onxT4CY;eZV&r7f* z^!%bD3DDe!dTCmW{x@eo>V$o>Big*{iZ3ya`6-be61bk(VY3oY2_C|~fu1gbkNw&J z6I2ADh6I?n3vFmb5#2CWL|*LBmQ@LQj#CI<{4eG%jj2~xBJVY!d8cNQ{XXQ)2C_NbJy+5zP}B4(izf8-D=EXstk3=^UYj@FuEC-C z@65Wc2?|Un9pv&uL^f1F+e4R(Pfelu!p`E|^$_YxH9ggvtJGmt2X1X#vRI_Hdv?$B zgNRYLb`*B#>_B-*BtK*C4Xj>!nCXx=je90$~|SdGioJJGixWT zT6oZQWssBZJ$qtMPa4QMMbPv@$if+7c<?H~ako+WEp(LFD}TFqGL~Spy!@0~;qnqnPhZAxkziW1XxxgeGp>11(@z3aMlD<& zb?!3sp6;MH4G9&t_>fg}6TWjACK#rJPa+B^Ti5l}@Vz$Tw6v6CASf0X%e6>A-q?J= znB-l0+X^~C2CO&w2xBT*=Cql@e!slS=Cx^=_ zld{4LVa)8E3jA<>EIOG4oRBLPPr!#9Vb`v|;~gL55I(>+6kA}5X2*h6!*MzZc-`sT z8^ICc(Ptl5i&|>ZYh3)KRDW(hAFpgz(0mdmP<{8nY^wd7vAGss_UotIJNNITW{yjO@{ZyJ!r!$jF^Z0MwIFvx+mJjuOQeSMcVKb$3|K3P&*ot3N zG}DXw)qRukG}pygq3L=xw0k>6Ow!#(HTqU;y078{7UrbF&d5s5F5H-YSnJPw<%BZ5 zh+Ht_KE^t6>O4F60RgCahx=4tuB%t)<7sB>lRUK}^mT%|X9#j>A20^>ghc$oqq*LN z$M4>Y8mZvOa2rY8xEFCEXUX70S{xjsj{-McZJ&$g0y3`OL{w|CAvig|Kx*UOYP{S# z^@TZ3IW=q$8Z(rD9qFX^Xn31yomJ}-v8ej&0XqN0R!ymu5hvW!!VskxCz;iuX2 zzK@#hGRUKSuqpKPi$!lt!n*?gIIWwX!$QniAQnH}E!r21MEC~V`&I$d~s zX8fpq|MmRRVVAnKWr{M#pinjXS27IpXHdx<5HMpT}SeEU}@Sr52p68*);})*A*Wm6PV|6co3Y|PS=cnn{EN9*B z+z5`cjGX-9nnM8?V@r!L)3?Fb8AUB669t<+GVZqIV4w6ozbHIjW?o!{CNM+qxS40h zuUODWpVDjY`^@jD*XoPlf7Rp}Uf?L8Bw}&Vs=F>`&dgv^2`#D$y$MgT3g*QM zE|_kKc<0TEy76oor*GMehYY3h1c?oWovknOo~Anqv^PVL>vEiIeqLj5&REJ?+oZuCtTKHMlW5UM_O!uZ2oaoenW>4>? z!d~e#u1#v_XOkyLp5UxvYJx-x13M4VFcd1TDo#XZH$7yZs!J*fyMIqJ*EQ+d!)oJR zMOJ6d^gGv!YhbPwMkD{5H|tKnBj_J% zZbj>IkMF%b``~e*d52gkx2v2-=LKN5VPy8w?_Y9nzZ6G<-z)j^_sj585m}d6Qcd<@ zn3Cg0vWg<(!;~Qxh+`?Er*W%Aso|-FR_8ptly3csIGX>(q;@Db;}@&>Qz+lIP_6U2 zm17JEsN>MCrk-i`jsm&4d!zUSor{mp=Qqw~AezPp-8vt?tm9oj7O&A=dI&vYb4kRA zcS?3{NFfMUTQPNK5O&*N8#b zYt38LCSKnCX}x!ujS8;I9u=f3gWe?pmkHp_Sl|>fjssMOML>10DA>G`hTrwDv&0&#@BNAscvqCnzvG+@&= z;bZ@o#iN4J?HNWK4mS46N0!;5#Ila?Rr$pczy9n z5$}{@OV`V7j>SE#K-ruK0zrk zW~Z^v3FvuDKB||S9j68zTNnDdKLY=UqIRR9*v!OZQHsme?sQw)o=>DE5WBF(w=U;J z)hn?6ui}4qixIYD@2o;nv@LsK>1#Ct;=c8n-n~XWfwWH{j_kjiujnr}KX=FH|Dh;` zusH>TD(|^A=Q6l&BlX=?(I78N_o`pxc@&bJ)`kM9oCi=B!Ka)nX7R?9etVW2dB$)+1_R@ zF75ZmOK^Yg;YS+yt3|r((qqH=Q+v-}i7X6@t;kgi z51x>{!0Q1wIFTK}EZxuTcH+i8^5=^&rsa1~Q!s4!MrtM@B^Kg%XWQj%>}MMEl9Ot2 zmS%1IC%GP<46=H}!;g|gv>52=_;&05vXgn?O6ue%v zV0|+DWPv`*Mc5tQj8QXNIchZc{yOq_0`yAjs%30ZIC9Y_F@7WRJwT31Q^-kNQB!=k$^2T@PmAyRe)^s z!xoVMA@qD3_^uHA;OMrIGSLK&0#!FH)H;f6=lgFW#CdA%7dnbzLL}f{rK9TK#E^fT zl0SA$<}Y1i#5je?ZB8sJb#%+PTUy&33Tcwy=G?Wn*ubT68DrM<`?4Rb662i>8_;%{^BCqHE)&j!!{eUN2kyy%aP%&Q8K6N2>00PHY!kU>r2KahK5)C-Abdg1Lj9r%RUtc*)=wl zeu(@uUw56au?Pe$!i#S}5f3hS@AS-W-359H`>V%5lSkcC{WEfH^WN$dh8Ct6KOenm zuB#~1u1b;h9POI+VUuq)#oH*J@g=NdBvu#|Zi}N%Pwg&3U@BXl`-=-loSYMXv^X2S z0&ByV)=e{}%S{9#XAn{y#j-3%kAfE8c0zzf7s0aOolJW90~%T;Z9T*V?RE zUf;M=EQC!$=QUrC%GM0*Hc8N^Mel9v=#Sq+e@LsXHbmoe!uVvXJ2ODmpOD5)pgD#h}ZWPiIiZVAhFJQp8D`Pk(2O_G472Qh$TGMqW z9}@`ZIkY_rTNJyc-2%E1=6uFiv3E1B$l1)HCfbPF?A;y2wAE8YxIPIetn0K{2Dh-1 z_V^FP{HQGp9S6#tysa4UO{NiQ9)V-o;zhl@LkvO{j*|c_5^&UJvgd0hpb%%@ zNc&C(EQ5VMXq${=yf_Lbw1IpL%5ZgJ-k1ogH<0iqb|!oyLueVjH1(Yb85DH3eQdm2 zI6mjd=Z05<;qT`nhD^&DSvG8jD?Yy8y)+4`9*sDg&eXw(oH^!@!)@-x!BNK5JqYBK zB6K9wIYEw?vhLs)BemSq!fqJL|0qB)3jdA-h%`k_c8j~|2dB@k25f}r=2?!Z0{!Qj zR(cMH&7XK5KhT4I7d5Xo#`p%K-)k8>)HdpZeK64U^f=miIx4TP=9J9+%iMJhE=Pl= zDn&Tuyb5nTf7OY*z|O7^RHQQ+iUVH;q+h_%rmEt%gAWt;Nfb#IQq7sH{IHdJ8GQ$^KFbN_>tjd#C~`m z0(P7b>r9N!e`}##>UKj*H3zf%(L?SoH;4YRgBlu_Rup8olP`~#jCGj3M|#}j@!Bl4h|bE`R!1W+CVzo{-_?EELf zx}Jz-TpzZV%8d){mKmkm`t#;HqJVFLli%Cu~po}I54S`X?%E|W`^NQ1;dWG zy2vHa`(rxu4(P(sfCt?=Z#P_9OOpewzE`xXQ^q3>B2?y1ULGAD*ar*hm_PH@>|LC< zvDv*aGl|-Yyal$dW>k4g^r7R|5EnR%s#omyH9ov9Jv==T{^?mC*3sIgZfU$wAs@fn z6_q#Nz_^}ZSc^@{7q3IzJGN0D!TcpK3=APp=-B9&Ct7JH##ekRywKupDzRoZXySZPPU}x5bKZtG}t)_Q>_PnP$)7 zHlE<&y|wD;@h}-Sb>V|Y?zZ%u!eXrR?yX@=dG9WReg-1=*7gSINZSV2nTDh129Rgs z_MO+!bo3}aBOdETtjhnWPK$Ssta|(_8-F{P#DEnV8A5$IhTc+!I0gM-gu)NSeg^Gv zHbe>Ozh3VD^8*OfFw{W}iFD$S0Qm z4xhCSw8?1spwnSFr~0cX za8(xzvYYMLC<-&f>CTOnB;>fs>eoU~7CfF!k?9|VMLhJ*$He!ala3uYoY`-i-z7={ z7?wzY8Etv+QuST^kFcl1&+k9pN33!5;JNfL@)e9{J$bbcgk~{e&C^ya9Sw3D&ujc@L;NeR zh=1C7-wpzYE1znt7>~=UstQeyK*S!GN8mA_3;LqL#`&md*s{2$Z^4_fVN3IO>PRkX zO=3Beznp&m);OOK?%Wx!4s>dU4vwZQ6@C?$`>qqIknUNUUlX%RH`iq$b6iF1#$Zi} z^G5>89-_kDi8>j3!V2HGfY_kHgkKa&OI#-_FS;4#~sgP2s6zX z?J4W0L&$S^@aT;h1(o67T|lr48TQAfXYPTnp!t-&X_Lfn2p-6NW^6nsDm?ypkcWXz zo=&>RDa5XXs|$(0;$6~;$euUOFvCtY7uGl9c6WMPX{=GNmsTqCJ&#knA+PC#s%x{4 zjeYjIm@OQ~{?dSG{09F?H6~ScftVIEDmyaI<{$>zXe68FXY*vOpMVaR4a2Z#c1TDk zlPdp7{mzB7xfsaUnRTDFxF4>jv;+$WuhPhyc(#xt#+4OVF zXS1Ym67Q;OeKk*6sg3DJ2y#URUOnLq9+Ya-lrG0a=9`4H<7ZyBXhx~@mVZp{NJbPa z7>=52J0)odSnqRghpWb$rNYCqF@4(mahRJY$R5)H;npu+;ns)Q@Jg?Zy4W;TiU{jG`BX`?o#wSAu^ z_L_}UBbG4j&RYWy*R#wZA|~Z{b=`-37xJ^_hScgLjhSn438NbKjgafMk$Hcxhx~8T zpQd4{4b`X#c21XTp{n%*Ow&PK<2RJlG*+GLQ#NeW_!Ed;ph2-uc2RHQWehvkaEq(& zK!*C$+H-~vtRjC?8-G|iQGaRZ2ImlXqFSGP`1+sIwSLijELFXYGGC4w_g(0l0#DNj z%{wXD7qre!GiTd@PjswQta*@Q?&u63g zzRWyVfbD^%gjp@Hy)|D;xp24CMzYX%3NMgb(LV(@o33oR*`$QhhO?PkaYyICZ45tn zN*D3H3`|PO2*%!A^KC`aS!o>P@mDRpF1xFO3gQqjObquIeT*m=?iQmoJ~18r`qE%z zi4OGUN*2+7^Eng)li*gv(v(3i$=S_7xPDyPlE~c( z8GpKZjDM ztlm*GT^e!PDuK^rPIOBzgrINv@6RVjU}x?~uq5?rcn)jk)@7s9 zCoP{UPlKAT{6EyaXIN9)x(13B6%j=O3P_Y9(xs!6h)Rj{5;{adkRnZKp~Z$sklqvo zR5}4d?+_J23%yE5s&q+cfh69^a_zO(*~@j#-utd|@7d48uQ1D)V~+Waue|U3MJJ6N zzD;}kcZssUZxG-AtVjTpeLeZ)=*8&nOEHN}hcdJIJwUv7P_=%=Q>WDr&DT^}V_mGkfC6niGJ zvXnn*xX9qb6)uqTKuzFC1wY~D3@Y8iDL)@e#6~-==Dx2g6UY*M?q+;C{8uPc(|vNm zOx2bC$qr~?X`&*Xgw&eygtYcq{c~&jbqn8+wLL3m(5K10&v^h71Y_b5b)!L6P2r4B zWTXX8JkE$e`TXsNSuuOQ3Q(S<{koM*3SS+S*~?V)uBi02?=(i|k)OhWxbV|1HIiYy z^}^=~hSi7PX)?akgqBh718HjTyg8LAkebIbz8;QD2T!|F(a97D*&Qi`Okh|CFg3@3 zaKeyobw?G_^Z((0Ibbg?b7|LpeyU}*xpP^iV1k>cF zd*X-u`X7B0PVqz=*?n~iZ$4_8^-P_e&mf(mPiQM=noKj1Dw|7WA?|nPbEqulutX7+ z6O0S0q~YO4T^rS`z z;qZlI4LLn1QzU*f4PJ&yk((k_SuA~h-ODg4q-8W z61ayl1pxnL2}Jx3G8rjcl6%7#5x709S5=O+g+Id@6jw_1Z;pIb4Y*yRI*5#zruxGA znJXa)5P%x^orZ5vktNRe9cU&!E9WC)qqEo6$sM{3)98Koo{#Sinod2Jp2!07pkq-a z6`tqs-ieb!H|LZI^~+KLDb+3qgIIY3EMsri<}4n6;PUttniHwOUvx8ZJ-K}udHqFq zqj}eI^~ZTP{i^3y*0TKDtxrZ%sW$4cuYYi@fgLkPpy}(&ojD$Qt;^%x?`xj(x7K24 zcb65upsN1%Df|ULWC!4?Ia0w@T4m%Ek|sZ9!wWKQw{;vgZupe4ne2iy{|kQ57ry-@ zg1U^X)*9rH$;S3ge5dit7!ft}vtZa7@~Z=R{zboNS3EhU1PC&$`7p4<;GKWn1N=4# z*JqFLfmeEV>nRaaC^Y3S9{+Fi0Hb?#J{4XCY^a++X%_QUk-Do@Zke}J4PGtYea^p% z{`l|ykRwfWn(c2S>>7DIxx$kqSy~bjVRkl;{buw*aFE&q_{KvK#S?;EwBd2512M@b z&Vs*wOY`lE+(Wiz!p3B2sB*f(k(N$h8) zI3_rvV#;KH$qM|#vi@_itdl4B7cBGM;>-^7*OLJV2LNb{hV%lQo#|FDv>@Pi7eLya zN!KKuH-M63)Y@cD(SN;u!MGgaIz-~Lk%@edN$|N_9eO7+xdrd1F~0bEt0z&00F*@z z0m$Ae`G>9Di_)IDg3_$##^Y9mxY(i3H zF-BO+S|QBQ`3`+KL_0$L`clxD5nag%8E?9dt=7Ep6a39?t9W^_@oPkjKu>XtK|~&v zO8t8EkSH~rM#8QFlXfcw*jV_V=981VzL1NNTo$7pZo+5tgg0UoVur_F*SLD*8cy-w z%4}W(=$odo{6Ro%B@nDE*x#(=w;yC-dz}nFcQc_?L`7nepI%XU0G8y;6GA8uBa#k}U(2At zf#R)f{KV1$!Jp+u%~9C@Q5EH%NbBft>GiUO0MIUSZ)A1#uht z&LvqwPA>&AM$Im1``K!Xv2GqtNrz=GgOB;joxMj9wCa50bub|66y>gY+CYD9tjBZH z2lZjMZi8_2(ll?{KE7(_)VG=u$;#6?C0S_B`|7TWJLR=wR(W;u8}%WFvW{MQVrOW@E-m+L{k+Y(6Y9dzwkQ zr{>1REldz)CY|f!-K8cPP2FzvSI^%p^9+{>UHCFR7TYY5lw3z$EREL!&`%7sKpI?h zT}#R~$($(P5aT~)hgx%643RpU+m<$(%27oNO-&vs&G=O4djhiwXbT#FqjMw<^+AM% zmfajO<>t~YTI9ZXZANhgjkUYFY?blIXf2K;dE{9mpYG=Ip=wb$6Q^WNega$yu}Hje zt;bzN#$s^3-@>#9bEsOuqTKLm$S5W!KPYyFXFa9-Rg#P8j+ifmP8xu0w$1u1GPKGH z9nhZIk#1#nRtV(fI1y)XO|q{zA<68EdlDCrT=f*Q%=riF_@9+Rgh}(Gj6*=4RuhMh z?RL3+L|!_zQtYVJs+-F*upygJ!b>59&EJGf=t;?^@V~i3P1{EcAKd-WLD98=CePCT zh8zKmkFmucZR}pe5A^f?ImhX5JJ~;Bdkl;fQG9t^hlHdR1B96LdM$H1Ee+x)vayMV3JDtU42G105)De>93 z$$VQD6dbv6KK9ln;Z(KEcv;Kdj8%Hr4M6yfP}LziYCi@iM27fbOok1+GO7r9QK>?S zp)a}0wb$A%sFc41g75OM=;j3o?qk$ab}JC&XWJ(!kw5wziI?|;5|h$$zp5`NN=xZB zN&s1}XH6Vn(mX0{s3CBcLB?Mn$ScHddLGawT2s=NydNlYS5WBEHCS)#|1^Fu^2}8H zRQK*_?>9&XkP7J*p|N%R)tGU08POwSc78pe@(q+Z&d$p54*Rzq4bT#ro$-KFQ!KuX zqDrddJzBhcNtoPH4CyiYW~ZrXTFeqqCi$X{v9sy9{vzcIWr+aEa=}v@K|c16l=&k_ z*jq%+v^z`+W&?q7E8W_J(FB>*iUy{q;0%HDCItp_fK*3t=lzXfdCvX;qh5%by$+9X z$%SL4N8?io>)M4Xr6c;2nA7AIqI47)pKdX${a2@$OapR z81UVWiM?WB;&O8~3{{A|BAfwqA4|SWH|Q)94=H3G)^zn!lA5?1bD9!AiP8J7 zZc~nU6V@3(N`H6`z@m@CUQhmm+mwgXcY;(ur69L^{|p<8{CA+S0N4urucL8a`dc~B zr;>P$Yi>Z5it1>s7CLq_=U1B>?%KM#&OVYWFHfTwo;Hno$`rPa9KFb)(-o&esEtbN z4!P%WT#H)yb`DS)H4Dw)<$$V@a77wnPuZ7ofxoU*Cc27#WvyoMymSR>gHU>qQen$;REU=7I)y5H`NKQT z(Q1Vdl1Vox8d_9!Ap715{Ct|+4+KmH3;-m$2noW$j~D%$srZqxegVk*?o)?-^jkA@ z<=_Q5Ji?hyt)f!BRbm_^5|PGz_tV|N%)BzH3x>N{bTU#0j*eQ`#_~k_52Ru?D;~h) zIa5F`Ouu0GPMN{7^*~TdLdjd=ed@g=gQSgI#!t;>Xkt4bZt$GyL2L0Iju@tFvHHc} z^!|Yo@t;*(x9}q+Q>Wb-_(|6O7qS+DT-}~#l@;oV_a_(OL+@=O)301aK9_^cX$&~j z=r-;n>jLmqF|b~ziuwl+K|>TC8@D4dXnj7=^i7e(W!MR1hhU3TW|MLS|(F0tv6yet{-h zBICyikL<@60H820kcEYdyg-4Iq=KDN4yBLkgf2Q|HoBMTTU8Eci;g<>omnaE@|(Xw zZ0O5(`SDq4$5xiUcK1Wvadc-Is6;5$mZ{KlU(}yF6QR7=roaPev+a>;vNhc2La)jJ9x=~+aH0iStsw<0GaVU-EKQZmYXw~!!?KI*50uY8huPRX zI~?_hQhTh$D4oBlK>uO_dfq#JL@L=G)IFrdlhzzmx8r#-9(uZGsVNXp4-E#)VP+%3 z@qBnAKlEz>)GJ@^oYJilhEE^PeZ=WHbU;Y_`0Hf@tL|tub5KK<(&{9>$NTIr-0`W*~+W`Ln2* z3y7M7eik+V62k#;I`t26dj6TPd9C&@<;qoI%z8PNN5W zAW@<}Qd9K+JqSBP(}(Q~rfM~!(vvJZS4;E*gxq~Li?c z^^S{{OY4o5lofmO02K1UWQ(F{Qbv&lY87%RgviB6r+b8#kX{!u5Y95Keq*iyZWf#S zod$q`ZfJp9z;n|i%>S(eJ`*lhpViuKG&p}!mC~>-nX%=i9C?lM&`RF-2!`&=maBi6 zza=8jgfLH-O|zL=H(g{dWnH?TjqJh%l|iqZyyb1kK<5i_5T|j+$VU;YTA9l@kg*fW zn;!i{jcNZ&8T}3p>D^<+W7l>9Qw_<1pR$(I(@0^nT4MGJhK0oA-dqUH?oUE+Jybj0 zYv&RH{2kdCD4I#C3*~#HHboriRi1q<`4teQDcq?gjK@kWUms8!5XQJKvsv`U4mw#H z7hAs!4)#jDQ}sMEBsq{zLD)=GA5FH-AvqJ(+NdT)6(Q9fvuwF1>JiUZIGCkYcSK=% z*05}EVqtz!(OiQu);Vwpw$8L)OvyJWh)NcdNaHwB(g%`kU=w5lSlfBoAM+wSMGG*>#H8f`f)VS%u`Mw;vajs#r`GUd5`?0zS1{EQ> zX}aA_!F4^z9Ems7fsdOo!(_X;R#xQ9YLZ}TKX>_6z~jmQa;X=NySy4AP%c!JAAcGr z@WOZ?@N@8{s9^yqS)E)<=)+~aDansrvt?FM@8Lp*UW!!KWgHrNR?_>JnR}fo6*hr0 z>WIP$IlF5KFGvrpY0UVv>6s~5b>`%LI$E5?EQ#V=%eVD2?vyqEU>JCIOlpsRmFjP5 zVrqg2r8m_sAK)fxA25hrw$!$B-gr=udJ7e?gS1u<2DhQ!eW&4eueo7JF6^@Dy(>08 zlr!Yl+K4WBw(8KDxL|H+Xay+EU;V{L|4&NI8B~ab(inWEow-`F?r%vH=&u|@%U;tW z7Y+MQifjkl)D<%v1&rCG3>G7jJ77zD65xII@yt^*zSYpUoyF`=3Jwtd*6L&DW1_lYx%;6bJ4yfB=@ZOLg?J8q`4_+Odu$#RchdB zZ>h3CvQF5MFN_UIfhR5=4*O!eW|&1a`&z5qox7Ssh|P94x*Nf|-2QebjF#>j=3*pV z6O9F$1pJL$X23fOCTWr1QPY7E@+XO_|ALknO8FbX;61#aB$jLaaB%YxC&1VzUM6Jen0B{DmSM2V z=E`x9JqkuFmgJM&HmimaLm0L)BAoSm--V7Ff?=plx(KHuPi`=!d1)~gD1}RNfaz3F znP0KdCdwgM2+N)B%`Y>AMSI;AqANngNzz)!Rc^He98cH=hFXNmwui^C0{F>8AoSc+(T9#AxlN zrqs-Plx)kK{ov+hi|)SSbJFcBJIF}&23VKSWQed;P;#GxtviU*D;G~~!DJWsFZKaZ zjjS`LsbVe(12e6lBW2T>BHr`!(Ug?=xL@i+6Br-J73gDC$T@{Q8HD@E=8>+`l&e$f zDCrQdk+fEw`nHR6VW$`dfsZLI793?58$N7n)y5JwZ7L8`QA(J9E_&${ezEcX*2GSS z9Xr-Wfg^)qbZ5jBW(T>r+sWjr6MRh%Cyp#k;`>2 zG|%Oo@lVSnAzM8-ZWATPa zd5`HHU`GgiyS3mdzs0k>G zV-wsfinWB{3*n|vA9v@|Y-%$4)lr(`$3^)wd8c9`9Cr64jIe}`7F~o^Q>DUF@gU*l z3o|~KMkITeddw~>9JT{g`()6(|7mt9OdS?RS~aH7O;fD&4u?6~@d2K$*teI+kNNoG zSKEck3Qh_b-ot!Q%=vlnJM!!I^BKz@?Z9Y&sl)ydx$SY^9U((dC8a=59CzhVf9BR= z_6Uc(j4khkELUY9o0oL|l>Gh^{$`OhIat?>IKg0FpwRA}tgj!hlgpFE>Hxje$XD zOR#_bARC8nbT(s71aTYU0J9z zE+M-)19fK1*xU+r*?9T^2&SS7{d^q8-&Ng{zOYl8n_>Lirki!tx_nz*moD?>*DkTB zW-lqAL5pQp!;dKVKc*m9JW4NWm`uG-z&^!OO+Yhw_Tk)bk$Cxnjr3euUxC+@BpLNW zWY)+2&A?0*@D3nq`&s_rF}Keit+aQSVE;5%>n9D98svsqlHbLT>kx`d;~e&jS=dT{ zsE<1z{_#uIwYGzcn*7|Ms_-~m-ST9PfpfdYtq(a@%Vy?YE$6lAr z#A2;YSHfR^B0UK)ZzakgCmwtVhfQuO#GhguRJThhzdQkuQrLJxZNA5zmn>O2` z1}Y>g`NXj(SETjqVwkjv*{%I%W=9ksr!d);7BmyzRH zTQ6ZKf4h-uRK>neO*vk;d_egSz^tZI?-1qFpGC;yN=BPrqxc6uY#lsVfp(dNYBdnY%J0ax~ zr|}#Y1aBjy9(;*(Oj$g&Q0eRWO-bUEs?m{^6kBU{)3ExGa{QXQx{<56)#V5_a4@)> z+}8az(kMZ_Z{$<^%jP=*e3w*tv|Q}Iy}`wna+=ABLuRXvcvwJbZWe?s-hIkl*{e%0 zr8XOCpgOtHsv3~S&k_extUwYT3bv#;)rwZQgsqQ%YFuA!HJ94l9BYFv<&RkeC&1%&lxmaZ zH?wK_gkpDEF5NCqvMF|LGLyL6$X!r(gEIXh7=`IaN+Lxh9Qo@EdL{8*>&v=)yghlR z-=JM0T<7MG#NdJY-6&=i(!6a7g1Uj*O!+p#WX%@JVmHV12|IRi%&boZl+{@_)m%(8 z;ituAA2S{_+%9*WLly1HmOBewsCpXl{0p;DFq+HNwb?!t6x~UQWiK!g98bW;sbLZi zF6#J)n?Al<&z(ME&JjENmACKa#&GurK;2;AFhU=xB+o@t?;=q3_I7qN<9w!p75NnK zL!P$v+Njrom|LcTj4!&7ZewMQbraibFl0+|D_j)ulH|XtM?8`2BDuYi;do9^Sm<8J z+feDt!!1kAV#BW?KH}eL5cn;#0)smYvvV`OL))EJ{V9%$c?zk4&#;CLK%l{~=%%-j z3vpJm*|-8o*2CDqtwLOyT_uU8t==HiE}s1OM83gD^;zskswk1vCS!>Z>`ly^mm&N zQFp^qc(;PSS>}Who(!mmwQ_h=cDW4}j~?FK>^8q*T^8AYMWyc~RPa<&)^2Q6+zBo! zEy(*G&)PgHb0v|=xatMiKoi2o>8ceBvNU0M zEw^kpm;BA}6(-01%Bn<#q^zHcMwyRi@!beZ(UEHe&Gd_6$dtBb#LoTDSJ?=X`)u&C zr)otY>_{aw2q6`dD`@r7(bY-uv~p@BXL(RcA|$SNPbc$qGh=;N9<56%={Yqk-#JFv2korOFoqdk1GfNp@!X;B zG+09biC$agK&5B_Q1_it%Hpkq@5bTvO%Vs8Ex7VlLE^O|7EM7J+J zDh(U!nyA%Ibs_pEItnGnZX{>bSz3p@m5v%p30gH^Ikphi#sxhKO8bHbX^|UVQ2hv~ z%ICWANv-?9BaJ|S8(mzYJRSaC8kPNY`#4PR3G&iz0pNdUXUjcCckcW4YwhITDU;cs}Y1x$BZCz7h_yq zrvcE2HXsZ?lYn>hZs0yxRr2gT)Jl6FPg>bVN(RXbG`VGAN|cD0kGf$eaoXQmNxrsr zA%{LcS)1iWci7;UG&RY5IKkEMop4EtKiuCI0YLRyC)MZ$%%5spJ)D}aA;A$6Q}NvN z@*SxB6-KSG9QaCyUMzouT*M4T7krg;Y;#pTzPo`4Bif)dj5SX46_!+~4h?d{x703A zFNAC&_Rx<-tyDeYxsF-SMDjoePKZFV+*RqFAS@O1_voCOpHQz0-(Hyri|ZXkcv4m@7{7X#P3)~_fr+&_~nPKtP6|# z;u}_*`n}Cl@N!`f?rz+!iX0CL=-AO3;I7#AzqkRp2l8$Yv-V+0gh=8W#RcR2qr+Pl zpfORJuYu++Do${Rz-7yvhb==knMA6la)jE!0+N+pz|39uleacwTi&!O9BA^y!Q?__ zu_E(hia=IzW@9dHw%2z&qm4doAZE7IZAwm>J&BZVJ2r9+yJ~4h1d4%+lQ|Zyh@7MIH%d)b)nj{y|ZUlFe)gIyOp5#q76AKSyWzQDqtV8|I9=vTzA37z=-6(0$v4g zit2x-A;c4#3Q1NA7Mjuw8J}BpXC2C&E|ka4UgM6mi=W|)w6hj!o6Z0a0vSAz%?IrP zkmc2|Sn?Jmfva~}Zld2GZhQeDR}FLpJCJ(YJ8PqqLfEN4ji(Ikp2@y5Cy&$vCOIz8 z-B0#boJnk7ik;i8N9yeU3H3E0wqCCkAx<21X{ru{K*mfH8q!E*>GtEXuD2@hc3MD^ zoVw3`DNg9MFbLw!%W7FS6Nh}1lC3f}3Yz08-Zv6yz_TtD%e54A_Hzu}xjHZsx`=Jc4D>CTQ#Ep_-m#>FqA{gdJW!<$I zwrT-M)a~DIPCqL5zkon~g3>CqoRkvHw4>o+ir;US&pQtCotv(KC{|YxRNmZ+wjj-E z6OVsGgc1;RTF#eBs~GNbS*dacq6BR-u?)-r<~rG5y)kXjKIuW1T-AdC1>NqAGb!CF z;)0ho1ox}qZFzVqRG1nwL>`Y87-miaCEpwW9=~`m)#IA?D=0zlhk#};&dhah57v$^ zjj=-8d3syCV;nIWzrMMpEvT~X!?dn-Pj|bS3W=`F)Jkcm?qBg&$O%3(nSTB4 ze)6^H@siB~{a+OoV3Da|Z2XY)8C8`uuSh8gSysy|!)S7W)lA}vacI%K7)}xHEwN6# z9Pvt|-OTx8&4Mr6$BCLiJ^VkTw4J4r;2zKgz}OaE+HJ@hTkBD^Z`30{>Ir>3aiu|? zKz}vp+f)PmW>TH@rofmBNq2br$ zCrxgt1{0aTR1aE_)EqNEj~Do8=sFtN^^7(=d*3D@nz?;9W49ANE(GHhXUMP(C8<9eGR|+ zI|ECPU}CmpI+41J%2Gnu3Dx&^X|atAukFBT>7M(q0ra8!QCE@k&eFfrC& zItTsijLICbXO`+2{^;t;t~Xi{+RuACS0FpiIz)2?270xpesx@~ab~tpGrThKU0<~R z{3kDJ;UNJ%1`)jsAZy)*6~l^4u6N3f$Q7k)ZdTIl#LQxu)>6aAn4sX!GHW3*)6{|; z!b7c+-Qu{XmKd$#-uvlErZOvxrg;6JmD>h~ZyGCJYOT5EFH}z*V8-cq{lqr>r{L(y z~#M*T+6iZuuw_oCpo>+N4P@l@`U`# zcbdZskPWc~>^E0H+MlWnUwDn|5!tuuxh=gXnivQBPV+RFYTHNv(uw+b>T53sAMD4< zFp7F5hRhBpDnlaTcGBVN_zym#RQg`zf^{Eq0`NEEMaeI*eZV>C76-;wzc~TKBRydt z*Fwue?h2c>re?)a#J+KCG4R@7cnrMJg=hQeui$Rn=vlfG8VXcf5fEb3C!fziv-g`O zRiqQ0b_1?MQ8{+Oe34ut3WgCccCKo3S99OlwXaqHm%LtMYUAt?gj{xlNLTMV&n)X{ z6;!He(3c3^TIibFxTmIaB;wjdo#VR6I;l31hGAdy=Qi`Ri{S|zh=F1VexNfYzp&4D zawi~n(JVFcI!BR#_aWynVLA~%am!X=kN+Gbi^3!-{FVNWis zNi$i1+nNn7%rS70H0v~aAi~w}?1jk`ppt20LUj$Xof>O&-|T|GtI%XUMkX zO7hk22R&X0-Z3QlC>QT)+p_xZJPZD;;WqXRwl#U~`TYxDdv3uOqP~2mxwTk$LS9`( z-F5O_^xHOshtL;TPA_TO^2*zIudR4iM+f4G9(@DOI>o-?WwHH7_pR{6Mc0k+3JzF? z1!YEe^t^Cs+*w)VCJUWuP^g}(k0Xn0b9_qeeVV{>tBUFGCh50X1X2_~0iZ=MaM*U; zmmC$jUYYznBPS>{k(Sn3+w^=S{KfttoQA(xHTE9Jcbo%FvcBi(+mB30vdot@)YEc5 zl*4#~C2z$~`BYkY2=os2&~|}gu0M3a1hf&F zNhcX}&#y4w0?1{6OM;wX*pP&f#DBnlbF_%2RBd`wiV=32{DVXJy9dd+M`UYWom~~s zNU1~YC@g6>d*1W1V$69s)Ed=bA!ZoQtSMMs00Z-pgm+bmQdP486h#pc-;d7ejqdE) zudIxVw^{kl@e?>sixYuh(4CT`g-YcxCcp7x1amgH-+^pP`Q7qR2xQ2iMjFSxpiFsN z!~qpY=7&>222nr6IkDk!m?ybh@)p&=hUQfc;3}F$dhTM!nB#h55_*v{I2{xB z(A=5T*2US1n6u>7v|-m?-HYpn#@+91r{QW*F3{XTn;;IY;Lb<|-`egh=NJgUPnGa3 zIgYvFWOhGt{kO7LsUtXfVlen=8(RFY}<`S{hkg~-9XjRr6|80%^7HOEH{$m(2J;xrG`5ya# z6k(Vbksvj;s!T#xdo+rX+u045)03s|e_rS~A?HF31Cw*yE4dowqNs7SJIcuTEudg3 zL_C~(I3fjZAK5ANMnstMnc*3-(EfOaf==i~mF*k;37QYBU(#MlVoCgLM;t=1v_y`I zu;D4*EjwQm@$zjSz2gB^rXgRam1w=lLR>a{?ut1&Uc5sXoDQxEBS)>*n2Mi!_`5XY zZ}SWPnV?1^dCGHkS4|B;#-t9}Z#~fzS42E;lxff>+wmUt1{as3+pDv3slLd-oZ5=% zMYi2q`i0T)@!XQuzyxjlkw@R;Z290tfR+ZHu+l?3sFn*SeNc4RSbQ~nt7|!(<<#Iu zcEvMC_p9LhyqkM|6CeG5SE?UTdCot1?M$}mtjJ}%F?g4Vd*aRV!u%I)E>;%KAHCOf z20-ekgD<&A-QG)*{(eXJbz1&o)>#}PSU(KfiP^Y9&)70%+zeSWVFtfwo@{IsB9N|$6>j|$yW}4;I4C+|pNPTaKL_YmwlB+<-pYh;h7dfm5vtje} z_h7|6e*PAZs>)F(eC_aInRtANk{#+T!z_4)(3vc5ca0;awiM`V0CW<}MPBdgH|Ta3 zFju^DyGSyptNqj~{ln{n<&o0kAeG4QI&G7^l&jg80nYEQC(A z*YdR5G#nQ#aFA(pX@?wU_lUP2sf`N^W2AQc^{yJ(;7jX(4jwCRhOT?a zKJAURtHg%WISY6&rH6%VRE}oAk~_%w?&|7VM8BH=8~BoUS8xcYLAiz#opFY#TfF8q z)15x|h+Hp9SYZDg0DEiwyv`d)JRu^%Q-^3*i&oIrKP{1)zH>R)_3r73%RBF<7PGM> z9gC0xRBgyJ>b#s+SRV?Li8IoA?T&4&kepxd;G6dlH8CCS2bqqSd?;HK zxGJ+_6_kKk<~#LLC1(c6eAe1@DzcwaIqsvvn9aG(kJ|U@qM7o@Hvwxi-TWfQ)#u@w ztqk}Z>vOYGRhZK)Jy2NpeGPlMFq8*ab1_b)4{5kcj%uNIZu9^P z6+ee6Om1qDtBtd8j%zXa1mw_y0@26|}3L^k}TccTy}fkb78 z&5bFRlvM$_46fys$>7$S^QP^fvk5VbIJ|LzIv?&fi`87(gAHN~!)0YL0Kqzu9e;X92E!Elx_QRLQTAlK;W?#h!} zLvX#rUneNUcJ{n;z%riTe`|ydbjSN;C6Fy?7qVZo$4k6u+VnTy`E(@Dx=1>hIo9HG z7Sz~}1H8XT1TZ=RAfK6R09>2X)?%&1C>^}7Vs{Ou{(BG4wLjOO}}shn#(a2 zCk=T~0F?U6RWNsUHF8h(=FN{c|1)APh};vZLO7hy6*6;&6>_96u?eaZk9u3AqvU}z z0Xm?hO(RLpanuOm?=%ac{Hr7r3!pVX>^yRwkw^t9Jii{{1RNm(`Ku1_R|alD@|>pz z0cKs_)gXa*qbVoNWb=Be_S1VFinLU($y||HWCW9rGq=vQOM)v6bs4)Ep!@#!NGEmU z3Vr1vohzFd@*2(nI|~oLd)H2QbV$5K%0Zw|e>?ZiFvu*lsl7FTMwycKW>Tf9(MAYzqD+}KlfjB9J#eK%<{r)|z z{;$2KpDu;JFP5j|szl*jceT$kxRTi_ANitYwt9<;87y??4JPf%>QF_#zc)xfu-pF^ zn4#JI5)iqADd_!#3#?^{)uXebYo; zRSt14s-rF#@(Zx~vHxxE`1Xn!zzi#2QE`RL)2q6rm1KQI4utneR(3VYSkCjgYLN$A z2Qxl4MnQDIbl{EI4#T(0%L%-i{{^xSi}_g)yceJSq_o?ko3OrxvtU6}El73vPX}f? zByHzsoCOy|vP=|n1q?OB8aay@HBQrfJ6~>tx*~stCDIppg1-a8Uo7AtFHAJMx^7|9 zCx?@%>McQACL2aX+|>#RolR@ev%3J2jd4j`#I=5 zO*maApxE$pqVE+>Ra-m5aq7XJ$~Dl1tvY_E8Th3~8s?9lo6i4*wmVkfSJb;v*9d8& zqXl^>GNu}mvL$^V*QYXeQix&Xb;S{nm%f5B`5Rx><|y~EYohmVU3zQt;p%fC zQUImlZ+p}o1K1xYa_`Ignbv+GQosHa=fO0sbW?YF4YXz-4lagx(115DA(YKbVJJ6uimVcVvN z3rvwJrwWPNt}rCtXH-p#C>`$`<>RN2;rvcMtvv?eF>4xO=Xd(@b7M`ytGgk6=co$o zh*EwOF%OeAui!?Ana%J7#k^&Wd_CvN`oLEAX_TX$I_zqX@5c1zxT zh<+y4B~ksU#aQfW-yX^|57;|@AW_8Is zq%ZLRj+O%8Xa|Il<7j|6FmASoqs8puXdeJLTI?Q<_TM>1*{2Hr14j!`J}0w(Ku9s; z|Jq>xnTP)Efyl^aKxp%?evaSf19o<0*-sVXjdgA$N1@Qaz(KM8f7yHa?NPG>+C~db zQ8xeuXzKR==JT*6ROtf1;O{hEiIg=M{MYq`GyS)g)o;T`*Z$-3%rqMv)`g5=wt~jT zL56?z)qh+3DGxpE0c0?I^)$AYAN^y^ZljTZSk49sRnEYY-@a;W!rgiM>YGkd6j8ao z@s*=Ui>RN+61Z?+izeqN5d|5u`2?x#d5z@Is{@ws==~S?B<#~8lW`k^->OP-{q#u# zm(RsWIsfwAOg^zYPsG0J0pxbxArIulU56-lU-q<{mE$@UB8hiPH=v+TQ1F55g%GP$>%YDH~*6PtXp@#SIGHkFWgJ?dHScYtc1 z`s&6gmu8Us|0{`arC%NG{IG=qt!oNekUr0na!K|m{v)3;ig^IySm{r56hG-$Txf9Q$F?ukb^%wJj>H-c;o5$SRc{A4+{37oOkOlisN72%R`K}4jNh`W}M)2#W6E-a{=-F{MOay!S3k_VQ4>PmWrgoepgrLD**yr^$y%lRt8_b z0d^*i*(B-Rtg{4ZX!Db!7`^+lP%&DzMAR%n?abiK?t0JQ{z#R(%9Oc`#`wvs2)Bop({K<7PHEH(%lRrcz_b%o9UoQM7 zXZ>>b>k|wH<99ZHbP8Pi!C(w>2Jf=7ml&xr~?#;y|S_Y>?nVEVfw<4QcW3F z_xjH54IuZoDH0xVcaUd;*7P}jE$zQtP1p{9QcNmSj}=sYcnVzK7kB=ddf2yu@s=9a zg#o-{wmlaGPkM5%PlQC@+fnUGP6-YjjKj3>D4d}H`9@DL(aiBM*BMtZnl}$VCoU{7 zA%3*|Aq~@#n3x1}?h`~=Xwe*81mWiFXm4uRtMA5ny5W$$+swt=3x0@qVW~(T5u$&b z^Lt8v@inhq+F5-bZW2B{P8GEls_d8iieESj)JkfnuxX<6twnnuP86xj@? z?0wX&;XlV~{-k2x}o1|1(yMdE6%;F5uZ?OX&&WB&hP@4dsC z+P3v!Y+JXeh|&ZkN)e?>69gnG(o5(aq97n$KoAsIRyu^iiwN1*{H)vu)arq^D|9`{;!5&K=GCTB$Q0r*v`Esph%yyUPgV+s_t~yLJ3{k@ z?ZB5`9LA%Tbt+UJN{FBDI+zdH*a=4gg~ZI)ikXj`9F4#PFb`_A_tid)jGN^Kp z_FjvGeHtC1$?~JG*`EMgEbD4iw&cF9(z}a4AeLwMQbD@jB#^GRiPpgI8UOpAp!kY@ zRux7`GY5UX9$FH6Mp&O)Cw(rs!3THdTYH1zMjzts_~;@sUV4bbir;y8W7I6a2VCo8 zMi#7tAI!Ul}b;$SnyS*X0x!l%*#iaQ(UL9tAVv#E`0i;nn@g1!!^OLtXET(v_XnHLK2i*L1i1-h@}*$`NY7Jpn}> z5B}@F!gtL4Rc~S`NV9%>kF#-J_X4)SthDrLDl;#W$Omg-0+8RqR4%bkbA#a2kD)DA z`)8Cw(a%c8O=N-{G5LDQKF#6D1v{5^ z%XOmk4L5v)e}W})iB3VV%&eLcVVcF)1qeFJ&Us|2dE;-GDi2(&@{l$k2rRs?`RpQ* ziCbizjAFDg`t9}jH&POyVCwHVg`erJgHznUkn$CR)>r;zj%)a5+}eM?r29QcQc`&z zhnWVOhO;y}0c9@QjTq4u-sz>=#WD+Y^jQ7kqeF5Hzak~QoON{yF&ME1DpnS-sg(7K zhujeA^coqy9dR4ldP^0FG{dxtT|dWR-G&Lh&B+y^7#d;)GjR&0JvwjzWO5XF6ehf4 z^1$_4j@MC`i7M6+HRhvZa|&kh0GkD!08&=UKvl!uZr*iUxf9SSz(CPegK)k7mvub} z$}E$oySb)UW^jHGSIxtLcHJtwme2F;>OYj zBB+ZrH?nDMPCauy6hmmI;)Mpw17D@Ta{CA&nL_o3D{N~}ZY%y7_0D49M$_Y zP4(CPdOEJ+j|}Pj4)gk(C;Xh-opVq&V7C4VUZ%i7zPQiXicjZhve#_%)ZT^CQwmBO z$N)x7LB|y*!I_Hk*Mcik?3OQhjs>Q_(bqbNh~vxqzr}jISnp*whc%+z&k#Lu?4&q- zY{Wf(%vaNe?p!y~9dkz~9r!Tl8(*i`bM&T^8T+t0{yq@64rD3Lg*`ZFsuQC5K4}#ef`c47DyW>nxSv3~tj)ADj; zv&w`UW!p|<<)q_9^xEWMM%mr;&!0^LPk4+=qZ)8t`1=};Vg3{~p+i1=Y(L9R{InSH z2dDnuJnt1R1lR3!V983vpmc9nm>?8f(@bi%?fftq8q}7u7^+!!<6fO8a$RlbA+=~- zdU>+GlLa_&!yU}@Z3=ww6v7z1XJj)xzzyn?K~PXJC#S*bk_}9CRdNl*ZD}eD7*Gxn z_z*GEcYrLVv?u96H*WVURhBRXLQSuNUM2QS44Rj7a!QRY8Qc@Ux_!j)Q51*Cqo`TL zYhXTMlH%CY;pd>oMOD&RjNdE;y@#Z94O)!>u*o=znTFczTn(Yj!nUqPlHbna~V-=22k z@P?h0?qI&#gVCY8?wtk|UJ!K4S(@znG^tU-R<=V|a{15`IxuRR#mk|juxwN=5VmC8 z{&_*uCxy2sTrNKmns@}lNwk@{gUj^24bOKliSb|3uPSV|p}gLw;S^abR8m1nO{-U? zP;_mJ`a^LCWh|SdM5xe=R)j_=cUZ+ko%+YR(jG6{VxPv##pc61`IpnbE+w2#&szhb z@i~6qAe$wfwHhJeH#y`N?~cr}W_GTo&fd6WSCE+;j>4Op$SGSrg9_2BRDQb@@o*RR z0qt<@eAqkxco}I!$?BtGWT{l_$j&PWHaa@untqdrEuuO<4I<25jfbn z_*d$5RyF>g&1IgTu*uKby8gFMXSAgXpjeUcQWJRs&koN1_`1j*NPGAX!z@E#BzMR&grFn#@9IH^Rc^6D4%#H7vx~ z#UGHXEkTu&WX~lTx*gC%*YXlfyx61G??b0tK_)_qtzCY?N4kR`D`9&(5iG#!QZu0A zrSIQJJjGo*_2!q+pL z^L->`AOT`Xgq|g5!HB$@mG*=%AvUN1Y>FzxD#xOw?0UGv}m@*|E*ccrYLN&7VGIX{<=f=qn;Q^Bg& z*qsWH`{73d+wh-Xg6uKC`{=(o^$%sL|0Kuuchn`w>J8m(`7>7U7ur__`{0AYw1+mp zW$QFZzC?)bS<&97k$(_S*}sxh+J;__bJ-1dlz`S^PQWo+bJVg1;FdSWz_~bSEH{o(;Cu$bKvjdcNzt8tqY`BaJ<`o7w3DdW#%A zr4N=zDJ4PsA4>(yiLAGitu9ddfWEiX9Eu%4`Xr;(}{>i)s7L& zG(_}J9VRgY1Gm|~{hjC&<73RKAz)?~jbL#eZ7H{|Vph@2+E^L~O+$vmyYob!fS~oP`Qq1z%skq>IR< z(!fZo${?ok`;pHhQxT2WFJPN;q@NyaE@*RlOJNTzAE5N2 zj#J)cg2apyAi#Q@t;<5Eq0jp2=;c1GDy4`Guvi{yzcSj$sQCyDCBpRT)%e-4AoE5? zpwsH<(=Q6vW$n@7e5n-AQ6kuCN=?XXsC5F-x-S8B{Ymo*D)14V1(s?@0qB=W99Zmj zLL=8)KsoTGiplO>$xX1vJ?b(~W+Q<`^_5Bj^&|x>fB*GVxvzHO@TNe>cK34S2GUU< z{_h<0U%h^=*o5hm_dY-+xqyrsWi%koRTBLEFr5GDnSXX?uQ7AgadaVI{U{b4vuByR zPxJrLR{wHv+G!i3eJ`ge=sA};xuM+3K|yr#zx@>c<(dEaf$BNC2(}==4q;E;{6Bxd)jFAnAR!_&yx~S+G1c4R2?KL)4=r%M8bjZxZmuwEKh;tQ;`}6NhRSqW=VZ z^%DZ#-)C(jc(PA-KJjtKwxruv9eWFtwBhNhzOuc?H4SCer_RY^&fj-1X0B5nv)%*I zd~tr}MvL)OH-cd*3Ww?yU$Jvs5ntjj+bpzE<9RsfuCV=XOFf0tkTRczSh=pvJO!{>dPCzq&3 zxG7LX(5hGQ5JEBw+DNw%{g5|LOqS&_6a)Q&m|1U1AlkOnJdRH+%81iYgV%YGwo5$} z(^R+gK;dA8DOPKfRO9x_9WN~I81;rmjqhb_^;S1=!}_JY4a;0sX}ns(DWM8}C;2`L{Xej$u!}pCUm~lq;eiaiTAu^$g8$m4Kuz zF5>cUiJsmpm3e%z`r&DB4?n+ibbBn46^I!wTsahdF&xRfQ{7FsB?8JcAxQ?yZvGeC zW=SF>bOCt7r2Bg+;ZmEU63VQ@H@G>+7rI3C&V*@H3$N&Im&$M)n+|;Cm+-_SGh$X& zDWzU{x%d>uTpgsfy$86y0Y)Edg0dq+d4Im)`bqoE@9zJ7$N#@7e-!6nf{%W?fU}n_ z_+(-%zm1RR&7ii0=g)8J`w7I!x+PA9uNb>wS*GK9$N=q8dhc`s-E@k^+$4{R=2hP? zc`bSJEKv7Za)VOY`Alkad>EWU-(&V^7D>KTC6@(2B1~ycE!DxIc+ewGBs2P4!K0|_ zd@VGmTe$#neVZvN*%>HJprj&r83@*l(ZX4vgKK}>@`Crq)Qf3m-|V}%=r4xBkeAWj zHW%23#pBk$7dP|&J$bC&|I1+K&{P61EbF=>@(vdn^vI{=c{;g#c^t$*1vpC9fxjctYN7kA2z04<4VZy^SGxvm z=S6eGF;Rh2zXMo+F?RndKy@1-I(Enc!d^Ib@coQ*(p$AeHBP>3AfA^dxu zi_!Wowef$*oWg(BLGZtD(v`|>HD$@R}!}R8%ta(D>z7dV1UF%S|nx$KGq$ zcE?N4>e%_IzEE4LbUo{E@%XUm*8|B zzT}~ww{;cOju%uOV~RffLfj#_KP;1}hhKS$L9dqYU>^v&_0dRLF(~^a&m=NE-{NHj z$+}97gX3?tVEw0Uh3{}}!Khrs4Hen=bYj$uPISi;GQx$YLs3RUU|k@x_^|AXe6x82 zi`A|rys~wJd;@txDcmDom+Xz6xC`cYb^zU5eK1}a9rGHvgaPs2vwQBFr4Qe*x5>YF z<`BpbxAqqhND-d-cMaR%lKh{+0W6FDul$f#Y!IS_JHQuBjPFe1joX|7^2TVr9GbcJ zblT=KTrcdVc2}6cJY3T5&joBl7n0oP!!Kfl)TM9Gc2I#wRRqrVw?xBuDcPE^X8eNU zRMCC-`+%Z1$mPn zaOJL6#7EZG3fiA(#Nb!Xv0Z8}4n3@()XVrmVxdAoJk!er_OCE^6vgXoeSHA{y&~_TwR&3ZLjnp2(Y+cVg`Rcw0Whz~5193IHtYdAOU5O%K zo+2Z6mECx53V~PJn>V4Fcju~Crn&dQjT2$qINXi_J@Ucp8>(Kdfj#Hg+Pn}1=u4_> z^oSM96b}0d?CspA5f&z(U&kdIIlX!=8M?VW zr^JLu6;i0LSn@Zp)xh%0{DAhCXEVq>#F83iaZ<<+E^89y9ndK$Z$gmxHQa`wqU8?d#t-;vbK ztUJcn+xC&cr=9+VZm2@bXX|6Cw*D8|ly;5Wy?3+**gwv$NNmw>n;KNl9eKeqE5eQ^ zDvF&lX;mJON(59b5`ZjE`O@@23-3^1MPv&PcOklwLUX+5Pu|w>oP%+fqSCF-tr;

AIwG29HHrG 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 literal 0 HcmV?d00001 diff --git a/Project2-Stream-Compaction/img/scan_perf_small.jpg b/Project2-Stream-Compaction/img/scan_perf_small.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8a66aaaf2eafa48afeae572abbaf6ad16c0ed572 GIT binary patch literal 106283 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 Z8)hs}_gO7~&9?t-v;S`mgMEMhzW{4xlxqM0 literal 0 HcmV?d00001 diff --git a/Project2-Stream-Compaction/src/main.cpp b/Project2-Stream-Compaction/src/main.cpp index 25e86cc..4ac104f 100644 --- a/Project2-Stream-Compaction/src/main.cpp +++ b/Project2-Stream-Compaction/src/main.cpp @@ -13,7 +13,7 @@ #include #include "testing_helpers.hpp" -const int SIZE = 1 << 20; // feel free to change the size of array +const int SIZE = 1 << 15; // feel free to change the size of array const int NPOT = SIZE - 3; // Non-Power-Of-Two int *a = new int[SIZE]; int *b = new int[SIZE]; diff --git a/Project2-Stream-Compaction/stream_compaction/common.cu b/Project2-Stream-Compaction/stream_compaction/common.cu index 2ed6d63..3e0a828 100644 --- a/Project2-Stream-Compaction/stream_compaction/common.cu +++ b/Project2-Stream-Compaction/stream_compaction/common.cu @@ -23,7 +23,11 @@ namespace StreamCompaction { * which map to 0 will be removed, and elements which map to 1 will be kept. */ __global__ void kernMapToBoolean(int n, int *bools, const int *idata) { - // TODO + // TODO + int idx = threadIdx.x + (blockIdx.x * blockDim.x); + if (idx < n) { + bools[idx] = (idata[idx] == 0) ? 0 : 1; + } } /** @@ -31,8 +35,12 @@ namespace StreamCompaction { * if bools[idx] == 1, it copies idata[idx] to odata[indices[idx]]. */ __global__ void kernScatter(int n, int *odata, - const int *idata, const int *bools, const int *indices) { - // TODO + const int *idata, const int *bools, const int *indices) { + // TODO + int idx = threadIdx.x + (blockIdx.x * blockDim.x); + if (idx < n && bools[idx]) { + odata[indices[idx]] = idata[idx]; + } } } diff --git a/Project2-Stream-Compaction/stream_compaction/common.h b/Project2-Stream-Compaction/stream_compaction/common.h index 996997e..95d30a2 100644 --- a/Project2-Stream-Compaction/stream_compaction/common.h +++ b/Project2-Stream-Compaction/stream_compaction/common.h @@ -12,6 +12,7 @@ #define FILENAME (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__) #define checkCUDAError(msg) checkCUDAErrorFn(msg, FILENAME, __LINE__) +#define BLOCKSIZE 128 /** * Check for CUDA errors; print and exit if there was a problem. diff --git a/Project2-Stream-Compaction/stream_compaction/cpu.cu b/Project2-Stream-Compaction/stream_compaction/cpu.cu index bd6da1e..301c03c 100644 --- a/Project2-Stream-Compaction/stream_compaction/cpu.cu +++ b/Project2-Stream-Compaction/stream_compaction/cpu.cu @@ -24,11 +24,13 @@ namespace StreamCompaction { * For performance analysis, this is supposed to be a simple for loop. * (Optional) For better understanding before starting moving to GPU, you can simulate your GPU scan in this function first. */ - void scan(int n, int *odata, const int *idata) { - timer().startCpuTimer(); + void scan(int n, int *odata, const int *idata) { // TODO + timer().startCpuTimer(); + scan_implementation(n, odata, idata); - timer().endCpuTimer(); + + timer().endCpuTimer(); } /** @@ -37,15 +39,19 @@ namespace StreamCompaction { * @returns the number of elements remaining after compaction. */ int compactWithoutScan(int n, int *odata, const int *idata) { - timer().startCpuTimer(); // TODO + + timer().startCpuTimer(); + int cnt = 0; for (int i = 0; i < n; i++) { if (idata[i] != 0) { odata[cnt++] = idata[i]; } } + timer().endCpuTimer(); + return cnt; } @@ -55,15 +61,19 @@ namespace StreamCompaction { * @returns the number of elements remaining after compaction. */ int compactWithScan(int n, int *odata, const int *idata) { - timer().startCpuTimer(); // TODO + // allocate memory int* isnonzero = (int*)malloc(n * sizeof(int)); + int* indices = (int*)malloc(n * sizeof(int)); + + timer().startCpuTimer(); + + // identify non zero elements for (int i = 0; i < n; i++) { isnonzero[i] = (idata[i] != 0) ? 1 : 0; } // compute indices with an exclusive scan - int* indices = (int*)malloc(n * sizeof(int)); scan_implementation(n, indices, isnonzero); int n_compact = isnonzero[n - 1] ? indices[n - 1] + 1: indices[n - 1]; @@ -74,11 +84,12 @@ namespace StreamCompaction { } } + timer().endCpuTimer(); + // free memory free(isnonzero); free(indices); - timer().endCpuTimer(); return n_compact; } } diff --git a/Project2-Stream-Compaction/stream_compaction/efficient.cu b/Project2-Stream-Compaction/stream_compaction/efficient.cu index 7898c9a..d869b67 100644 --- a/Project2-Stream-Compaction/stream_compaction/efficient.cu +++ b/Project2-Stream-Compaction/stream_compaction/efficient.cu @@ -28,51 +28,37 @@ namespace StreamCompaction { } } - __global__ void kernIsNonZero(int n, int *isnonzero, int *idata) { - int idx = threadIdx.x + (blockIdx.x * blockDim.x); - if (idx < n) { - isnonzero[idx] = (idata[idx] == 0) ? 0 : 1; - } - } + /** + * Performs prefix-sum (aka scan) on idata, storing the result into odata. + */ + void scan(int n, int *odata, const int *idata) { + // TODO + int size = pow(2, ilog2ceil(n)); + int memsize = size * sizeof(int); + int *dev_in; + cudaMalloc((void**)&dev_in, memsize); + cudaMemcpy(dev_in, idata, n * sizeof(int), cudaMemcpyHostToDevice); - __global__ void kernCompact(int n, int *odata, int *idata, int* isnonzero, int* indices) { - int idx = threadIdx.x + (blockIdx.x * blockDim.x); - if (idx < n && isnonzero[idx]) { - odata[indices[idx]] = idata[idx]; - } - } + timer().startGpuTimer(); - void scan_implementation(int n, int *odata, const int *idata) { - int size = pow(2, ilog2ceil(n)); - int memsize = size * sizeof(int); - int *dev_in, *dev_out, *dev_mid; - cudaMalloc((void**)&dev_in, memsize); - cudaMemcpy(dev_in, idata, n * sizeof(int), cudaMemcpyHostToDevice); - - dim3 blockSize(128); - dim3 gridSize((size + 127) / 128); - for (int d = 0; d < ilog2ceil(n); d++) { - kernUpSweep << > > (size, pow(2, d), dev_in); - } + dim3 blockSize(BLOCKSIZE); + dim3 gridSize((size + BLOCKSIZE - 1) / BLOCKSIZE); + int dmax = ilog2ceil(n); - cudaMemset((void*)&(dev_in[size - 1]), 0, sizeof(int)); + for (int d = 0; d < dmax; d++) { + kernUpSweep << > > (size, 1 << d, dev_in); + } - for (int d = ilog2ceil(n) - 1; d >= 0; d--) { - kernDownSweep << > > (size, pow(2, d), dev_in); - } + cudaMemset((void*)&(dev_in[size - 1]), 0, sizeof(int)); - cudaMemcpy(odata, dev_in, n * sizeof(int), cudaMemcpyDeviceToHost); - cudaFree(dev_in); - } + for (int d = dmax - 1; d >= 0; d--) { + kernDownSweep << > > (size, 1 << d, dev_in); + } - /** - * Performs prefix-sum (aka scan) on idata, storing the result into odata. - */ - void scan(int n, int *odata, const int *idata) { - timer().startGpuTimer(); - // TODO - scan_implementation(n, odata, idata); timer().endGpuTimer(); + + cudaMemcpy(odata, dev_in, n * sizeof(int), cudaMemcpyDeviceToHost); + cudaFree(dev_in); } /** @@ -85,51 +71,71 @@ namespace StreamCompaction { * @returns The number of elements remaining after compaction. */ int compact(int n, int *odata, const int *idata) { - timer().startGpuTimer(); // TODO size_t size = n * sizeof(int); + int n2 = pow(2, ilog2ceil(n)); + size_t size2 = n2 * sizeof(int); // allocate device memory - int *dev_odata, *dev_idata, *dev_isnonzero, *dev_indices; + int *dev_odata, *dev_idata, *dev_bools, *dev_indices; cudaMalloc((void**)&dev_idata, size); cudaMalloc((void**)&dev_odata, size); - cudaMalloc((void**)&dev_isnonzero, size); - cudaMalloc((void**)&dev_indices, size); + cudaMalloc((void**)&dev_bools, size); + cudaMalloc((void**)&dev_indices, size2); // allocate host memory - int *isnonzero, *indices; - isnonzero = (int*)malloc(size); + int *bools, *indices; + bools = (int*)malloc(size); indices = (int*)malloc(size); // calculate block size and grid size - int blockSize = 128; - int gridSize = (n + blockSize - 1) / blockSize; + int gridSize = (n + BLOCKSIZE - 1) / BLOCKSIZE; + int gridSize2 = (n2 + BLOCKSIZE - 1) / BLOCKSIZE; - // identify non-zero elements + // copy memory to device cudaMemcpy(dev_idata, idata, size, cudaMemcpyHostToDevice); - kernIsNonZero<<>>(n, dev_isnonzero, dev_idata); - cudaMemcpy(isnonzero, dev_isnonzero, size, cudaMemcpyDeviceToHost); + + timer().startGpuTimer(); + + // identify non-zero elements + Common::kernMapToBoolean << > > (n, dev_bools, dev_idata); // exclusive scan - scan_implementation(n, indices, isnonzero); - int n_compact = isnonzero[n - 1] ? indices[n - 1] + 1 : indices[n - 1]; - cudaMemcpy(dev_indices, indices, size, cudaMemcpyHostToDevice); + cudaMemcpy(dev_indices, dev_bools, size, cudaMemcpyDeviceToDevice); + int dmax = ilog2ceil(n2); + + for (int d = 0; d < dmax; d++) { + kernUpSweep << > > (n2, 1 << d, dev_indices); + } + + cudaMemset((void*)&(dev_indices[n2 - 1]), 0, sizeof(int)); + + for (int d = dmax - 1; d >= 0; d--) { + kernDownSweep << > > (n2, 1 << d, dev_indices); + } + // stream compaction - kernCompact<<>>(n, dev_odata, dev_idata, dev_isnonzero, dev_indices); + Common::kernScatter << > > (n, dev_odata, dev_idata, dev_bools, dev_indices); + + timer().endGpuTimer(); + + // copy memory to host + cudaMemcpy(indices, dev_indices, size, cudaMemcpyDeviceToHost); + cudaMemcpy(bools, dev_bools, size, cudaMemcpyDeviceToHost); cudaMemcpy(odata, dev_odata, size, cudaMemcpyDeviceToHost); + int n_compact = bools[n - 1] ? indices[n - 1] + 1 : indices[n - 1]; // free device memory cudaFree(dev_idata); cudaFree(dev_odata); - cudaFree(dev_isnonzero); + cudaFree(dev_bools); cudaFree(dev_indices); // free host memory - free(isnonzero); + free(bools); free(indices); - timer().endGpuTimer(); return n_compact; } } diff --git a/Project2-Stream-Compaction/stream_compaction/naive.cu b/Project2-Stream-Compaction/stream_compaction/naive.cu index d6de51b..09e87e6 100644 --- a/Project2-Stream-Compaction/stream_compaction/naive.cu +++ b/Project2-Stream-Compaction/stream_compaction/naive.cu @@ -3,8 +3,6 @@ #include "common.h" #include "naive.h" -#define blockSize 128 - namespace StreamCompaction { namespace Naive { using StreamCompaction::Common::PerformanceTimer; @@ -29,7 +27,6 @@ namespace StreamCompaction { * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ void scan(int n, int *odata, const int *idata) { - timer().startGpuTimer(); // TODO // Declare two device buffer int *dev_data[2]; @@ -45,10 +42,12 @@ namespace StreamCompaction { cudaMemcpy(dev_data[0], idata, n * sizeof(int), cudaMemcpyHostToDevice); checkCUDAErrorFn("cudaMemcpy (host to device) failed!"); - dim3 fullBlocksPerGrid((n + blockSize - 1) / blockSize); + timer().startGpuTimer(); + dim3 fullBlocksPerGrid((n + BLOCKSIZE - 1) / BLOCKSIZE); for (int d = 1; d <= ilog2ceil(n); d++) { - kernNaiveScan << > > (n, pow(2, d - 1), dev_data[d % 2], dev_data[(d + 1) % 2]); + kernNaiveScan << > > (n, 1 << (d - 1), dev_data[d % 2], dev_data[(d + 1) % 2]); } + timer().endGpuTimer(); // Convert inclusive scan to exclusive scan, shift right and insert identity. cudaMemcpy(odata + 1, dev_data[ilog2ceil(n) % 2], (n - 1) * sizeof(int), cudaMemcpyDeviceToHost); @@ -58,8 +57,6 @@ namespace StreamCompaction { // Free device memory cudaFree(dev_data[0]); cudaFree(dev_data[1]); - - timer().endGpuTimer(); } } } diff --git a/Project2-Stream-Compaction/stream_compaction/thrust.cu b/Project2-Stream-Compaction/stream_compaction/thrust.cu index a12abdd..e9116c5 100644 --- a/Project2-Stream-Compaction/stream_compaction/thrust.cu +++ b/Project2-Stream-Compaction/stream_compaction/thrust.cu @@ -18,7 +18,6 @@ namespace StreamCompaction { * Performs prefix-sum (aka scan) on idata, storing the result into odata. */ void scan(int n, int *odata, const int *idata) { - timer().startGpuTimer(); // TODO use `thrust::exclusive_scan` // example: for device_vectors dv_in and dv_out: // thrust::exclusive_scan(dv_in.begin(), dv_in.end(), dv_out.begin()); @@ -26,10 +25,11 @@ namespace StreamCompaction { thrust::device_vector device_in = host_in; thrust::device_vector device_out(n); + timer().startGpuTimer(); thrust::exclusive_scan(device_in.begin(), device_in.end(), device_out.begin()); + timer().endGpuTimer(); thrust::copy(device_out.begin(), device_out.end(), odata); - timer().endGpuTimer(); } } } From 4ff35b8e03b16e7a8100526eb0faf29ad7ed5376 Mon Sep 17 00:00:00 2001 From: Zheyuan Xie Date: Wed, 18 Sep 2019 09:28:29 -0400 Subject: [PATCH 3/8] implemented character recognition --- Project2-Character-Recognition/CMakeLists.txt | 2 + .../character_recognition/CMakeLists.txt | 2 +- .../character_recognition/mlp.cu | 253 ++++++++++++++++-- .../character_recognition/mlp.h | 42 +++ Project2-Character-Recognition/src/main.cpp | 214 ++++++--------- .../img/blocksize_opt.jpg | Bin 47907 -> 34144 bytes Project2-Stream-Compaction/img/scan_perf.jpg | Bin 79558 -> 54404 bytes 7 files changed, 361 insertions(+), 152 deletions(-) diff --git a/Project2-Character-Recognition/CMakeLists.txt b/Project2-Character-Recognition/CMakeLists.txt index 09e9198..1caf239 100644 --- a/Project2-Character-Recognition/CMakeLists.txt +++ b/Project2-Character-Recognition/CMakeLists.txt @@ -22,6 +22,7 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") endif() include_directories(.) +link_directories(${CUDA_TOOLKIT_ROOT_DIR}/lib/x64) add_subdirectory(character_recognition) cuda_add_executable(${CMAKE_PROJECT_NAME} @@ -32,4 +33,5 @@ cuda_add_executable(${CMAKE_PROJECT_NAME} target_link_libraries(${CMAKE_PROJECT_NAME} character_recognition ${CORELIBS} + cublas ) diff --git a/Project2-Character-Recognition/character_recognition/CMakeLists.txt b/Project2-Character-Recognition/character_recognition/CMakeLists.txt index 7446175..9e834c1 100644 --- a/Project2-Character-Recognition/character_recognition/CMakeLists.txt +++ b/Project2-Character-Recognition/character_recognition/CMakeLists.txt @@ -7,5 +7,5 @@ set(SOURCE_FILES cuda_add_library(character_recognition ${SOURCE_FILES} - OPTIONS -arch=sm_20 + OPTIONS -arch=sm_61 ) diff --git a/Project2-Character-Recognition/character_recognition/mlp.cu b/Project2-Character-Recognition/character_recognition/mlp.cu index 5a3ed7f..05ad87a 100644 --- a/Project2-Character-Recognition/character_recognition/mlp.cu +++ b/Project2-Character-Recognition/character_recognition/mlp.cu @@ -2,26 +2,249 @@ #include #include "common.h" #include "mlp.h" +#include +#include +#include + +// cuBLAS matrix multiplication +void gpu_blas_mmul(cublasHandle_t &handle, const float *A, const float *B, float *C, const int m, const int k, const int n) { + const float alpha = 1.; + const float beta = 0.; + cublasSgemm(handle, CUBLAS_OP_N, CUBLAS_OP_N, m, n, k, &alpha, A, m, B, k, &beta, C, m); +} + +// cuBLAS matrix transpose +void gpu_blas_mtrans(cublasHandle_t &handle, const float *A, float *B, const int m, const int n) { + float alpha = 1.; + float beta = 0.; + cublasSgeam(handle, CUBLAS_OP_T, CUBLAS_OP_T, m, n, &alpha, A, n, &beta, A, n, B, m); +} namespace CharacterRecognition { - using Common::PerformanceTimer; - PerformanceTimer& timer() - { - static PerformanceTimer timer; - return timer; - } + using Common::PerformanceTimer; + PerformanceTimer& timer() + { + static PerformanceTimer timer; + return timer; + } + + const int blockSize = 128; - // TODO: __global__ + // Kernals + __global__ void kernCalcSigmoid(int n, float *out, float *in) { + int idx = threadIdx.x + (blockIdx.x * blockDim.x); + if (idx >= n) { + return; + } + out[idx] = 1 / (1 + exp(-in[idx])); + } + + __global__ void kernCalcSigmoidDerivative(int n, float *out, float *in) { + int idx = threadIdx.x + (blockIdx.x * blockDim.x); + if (idx >= n) { + return; + } + float sigma = 1 / (1 + exp(-in[idx])); + out[idx] = (1 - sigma) * sigma; + } + + __global__ void kernElementWiseMultiplication(int n, float *out, float *in1, float *in2) { + int idx = threadIdx.x + (blockIdx.x * blockDim.x); + if (idx >= n) { + return; + } + out[idx] = in1[idx] * in2[idx]; + } + + __global__ void kernUpdateWeight(int n, float *weights, float *gradients, float lambda) { + int idx = threadIdx.x + (blockIdx.x * blockDim.x); + if (idx >= n) { + return; + } + weights[idx] = weights[idx] - gradients[idx] * lambda; + } + + __global__ void kernElementWiseSubtraction(int n_cols, int n_rows, float *out, float *in1, float *in2) { + int idx = threadIdx.x + (blockIdx.x * blockDim.x); + if (idx >= n_cols * n_rows) { + return; + } + out[idx] = in1[idx] - in2[idx]; + } + + __global__ void kernCalcSquareError(int n, float *out, float *in1, float *in2) { + int idx = threadIdx.x + (blockIdx.x * blockDim.x); + if (idx >= n) { + return; + } + float diff = in1[idx] - in2[idx]; + out[idx] = diff * diff; + } + + __host__ __device__ unsigned int hash(unsigned int a) { + a = (a + 0x7ed55d16) + (a << 12); + a = (a ^ 0xc761c23c) ^ (a >> 19); + a = (a + 0x165667b1) + (a << 5); + a = (a + 0xd3a2646c) ^ (a << 9); + a = (a + 0xfd7046c5) + (a << 3); + a = (a ^ 0xb55a4f09) ^ (a >> 16); + return a; + } - /** - * Example of use case (follow how you did it in stream compaction) - */ - /*void scan(int n, int *odata, const int *idata) { - timer().startGpuTimer(); - // TODO - timer().endGpuTimer(); + __global__ void kernRandomNumber(int n, int time, float* array) { + int idx = threadIdx.x + (blockIdx.x * blockDim.x); + if (idx >= n) { + return; } - */ + thrust::default_random_engine rng(hash((int)(idx * time))); + thrust::uniform_real_distribution unitDistrib(-1, 1); + array[idx] = (float)unitDistrib(rng); + } // TODO: implement required elements for MLP sections 1 and 2 here + MLP3::MLP3(int input_size, int hidden_size, int output_size) { + input_size_ = input_size; + hidden_size_ = hidden_size; + output_size_ = output_size; + + cudaMalloc((void**)&wkj_, input_size_ * hidden_size_ * sizeof(float)); + cudaMalloc((void**)&wji_, hidden_size_ * output_size_ * sizeof(float)); + cudaMalloc((void**)&gwkj_, input_size_ * hidden_size_ * sizeof(float)); + cudaMalloc((void**)&gwji_, hidden_size_ * output_size_ * sizeof(float)); + + // create cublasHandle + cublasCreate(&cublas_handle_); + } + + MLP3::~MLP3() { + cudaFree(wkj_); + cudaFree(wji_); + cudaFree(gwkj_); + cudaFree(gwji_); + + // destroy cublasHandle + cublasDestroy(cublas_handle_); + } + + void MLP3::init_weights(float *wkj, float *wji) { + cudaMemcpy(wkj_, wkj, sizeof(float) * input_size_ * hidden_size_, cudaMemcpyHostToDevice); + cudaMemcpy(wji_, wji, sizeof(float) * hidden_size_ * output_size_, cudaMemcpyHostToDevice); + } + + void MLP3::init_weights() { + // TODO: initialize random weights + int n_w1 = input_size_ * hidden_size_; + int gridSize1 = (n_w1 + blockSize - 1) / blockSize; + kernRandomNumber<<>>(n_w1, 1, wji_); + + int n_w2 = hidden_size_ * output_size_; + int gridSize2 = (n_w2 + blockSize - 1) / blockSize; + kernRandomNumber<<>>(n_w2, 1, wkj_); + } + + void MLP3::train(float *x_train, float *y_train, int n_data, int n_epoch) { + n_data_ = n_data; + cudaMalloc((void**)&dev_input_, n_data * input_size_ * sizeof(float)); + cudaMalloc((void**)&dev_target_, n_data * output_size_ * sizeof(float)); + cudaMemcpy(dev_input_, x_train, n_data * input_size_ * sizeof(float), cudaMemcpyHostToDevice); + cudaMemcpy(dev_target_, y_train, n_data * output_size_ * sizeof(float), cudaMemcpyHostToDevice); + + cudaMalloc((void**)&dev_hidden_, n_data * hidden_size_ * sizeof(float)); + cudaMalloc((void**)&dev_hidden_sigmoid_, n_data * hidden_size_ * sizeof(float)); + cudaMalloc((void**)&dev_output_, n_data * output_size_ * sizeof(float)); + cudaMalloc((void**)&dev_output_sigmoid_, n_data * output_size_ * sizeof(float)); + + for (int epoch = 0; epoch < n_epoch; epoch++) { + forward(); + back_propagation(); + calculate_loss(); + update_weights(); + std::cout << "epoch: " << epoch + 1 << ", total error: " << total_error_ << std::endl; + } + } + + void MLP3::forward() { + gpu_blas_mmul(cublas_handle_, dev_input_, wkj_, dev_hidden_, n_data_, input_size_, hidden_size_); + + dim3 gridSize1((hidden_size_ * n_data_ + blockSize - 1) / blockSize); + kernCalcSigmoid<<>>(hidden_size_ * n_data_, dev_hidden_sigmoid_, dev_hidden_); + + gpu_blas_mmul(cublas_handle_, dev_hidden_sigmoid_, wji_, dev_output_, n_data_, hidden_size_, output_size_); + + dim3 gridSize2((output_size_ * n_data_ + blockSize - 1) / blockSize); + kernCalcSigmoid<<>>(output_size_ * n_data_, dev_output_sigmoid_, dev_output_); + } + + void MLP3::back_propagation() { + float* temp1, *temp2, *temp3, *temp4, *temp5, *temp6, *temp7, *temp8, *wji_T; + + cudaMalloc((void**)&temp1, n_data_ * output_size_ * sizeof(float)); + cudaMalloc((void**)&temp2, n_data_ * output_size_ * sizeof(float)); + cudaMalloc((void**)&temp3, n_data_ * output_size_ * sizeof(float)); + cudaMalloc((void**)&temp4, n_data_ * hidden_size_ * sizeof(float)); + cudaMalloc((void**)&temp5, n_data_ * hidden_size_ * sizeof(float)); + cudaMalloc((void**)&temp6, n_data_ * hidden_size_ * sizeof(float)); + cudaMalloc((void**)&wji_T, output_size_ * hidden_size_ * sizeof(float)); + cudaMalloc((void**)&temp7, n_data_ * hidden_size_ * sizeof(float)); + cudaMalloc((void**)&temp8, n_data_ * input_size_ * sizeof(float)); + + // calculate wji gradient + int num_element1 = output_size_ * n_data_; + dim3 gridSize1((num_element1 + blockSize - 1) / blockSize); + kernCalcSigmoidDerivative<<>>(num_element1, temp1, dev_output_sigmoid_); + kernElementWiseSubtraction<<>>(n_data_, output_size_, temp2, dev_output_sigmoid_, dev_target_); + kernElementWiseMultiplication<<>>(num_element1, temp3, temp1, temp2); + + gpu_blas_mtrans(cublas_handle_, dev_hidden_sigmoid_, temp4, hidden_size_, n_data_); + gpu_blas_mmul(cublas_handle_, temp4, temp3, gwji_, hidden_size_, n_data_, output_size_); + + // calculate wkj gradient + int num_element2 = hidden_size_ * n_data_; + dim3 gridSize2((num_element2 + blockSize - 1) / blockSize); + kernCalcSigmoidDerivative<<>>(num_element2, temp5, dev_hidden_sigmoid_); + gpu_blas_mtrans(cublas_handle_, wji_, wji_T, output_size_, hidden_size_); + gpu_blas_mmul(cublas_handle_, temp3, wji_T, temp6, n_data_, output_size_, hidden_size_); + kernElementWiseMultiplication<<>>(num_element2, temp7, temp6, temp5); + + gpu_blas_mtrans(cublas_handle_, dev_input_, temp8, input_size_, n_data_); + gpu_blas_mmul(cublas_handle_, temp8, temp7, gwkj_, input_size_, n_data_, hidden_size_); + } + + void MLP3::calculate_loss() { + float *dev_square_error; + int n = n_data_ * output_size_; + cudaMalloc((void**)&dev_square_error, sizeof(float) * n); + int gridSize = (n + blockSize - 1) / blockSize; + kernCalcSquareError<<>>(n, dev_square_error, dev_target_, dev_output_sigmoid_); + + float *square_error = new float[n](); + cudaMemcpy(square_error, dev_square_error, n * sizeof(float), cudaMemcpyDeviceToHost); + + total_error_ = 0.; + for (int i = 0; i < n; i++) { + total_error_ += square_error[i]; + } + total_error_ /= (2.0 * output_size_); + + delete[] square_error; + cudaFree(dev_square_error); + } + + void MLP3::update_weights() { + float lambda = 0.01; + + float* temp1 = new float(2); + cudaMemcpy(temp1, wji_, 2 * sizeof(float), cudaMemcpyDeviceToHost); + + // update wji + int gridSize1 = (hidden_size_ * output_size_ + blockSize) / blockSize; + kernUpdateWeight<<>>(hidden_size_ * output_size_, wji_, gwji_, lambda); + + float* temp2 = new float(2); + cudaMemcpy(temp2, wji_, 2 * sizeof(float), cudaMemcpyDeviceToHost); + + // update wkj + int gridSize2 = (input_size_ * hidden_size_ + blockSize) / blockSize; + kernUpdateWeight<<>>(input_size_ * hidden_size_, wkj_, gwkj_, lambda); + } } diff --git a/Project2-Character-Recognition/character_recognition/mlp.h b/Project2-Character-Recognition/character_recognition/mlp.h index 2096228..e285e03 100644 --- a/Project2-Character-Recognition/character_recognition/mlp.h +++ b/Project2-Character-Recognition/character_recognition/mlp.h @@ -1,9 +1,51 @@ #pragma once #include "common.h" +#include namespace CharacterRecognition { Common::PerformanceTimer& timer(); // TODO: implement required elements for MLP sections 1 and 2 here + + class MLP3 { + public: + // constructor + MLP3(int n_input, int n_hidden, int n_output); + + // destructor + ~MLP3(); + + void init_weights(float *wkj, float *wji); + void init_weights(); + void predict(float *x_input, float *y_pred); + void train(float *x_train, float *y_train, int n_data, int n_epoch); + + private: + void forward(); + void calculate_loss(); + void back_propagation(); + void update_weights(); + + int input_size_; + int hidden_size_; + int output_size_; + + // weight & gradients + float *wkj_, *wji_; + float *gwkj_, *gwji_; + + // layers + int n_data_; + float* dev_input_; + float* dev_hidden_; + float* dev_hidden_sigmoid_; + float* dev_output_; + float* dev_output_sigmoid_; + float* dev_target_; + + float total_error_; + + cublasHandle_t cublas_handle_; + }; } diff --git a/Project2-Character-Recognition/src/main.cpp b/Project2-Character-Recognition/src/main.cpp index 11dd534..559dc8b 100644 --- a/Project2-Character-Recognition/src/main.cpp +++ b/Project2-Character-Recognition/src/main.cpp @@ -11,142 +11,84 @@ #include #include "testing_helpers.hpp" -const int SIZE = 1 << 8; // feel free to change the size of array -const int NPOT = SIZE - 3; // Non-Power-Of-Two -int *a = new int[SIZE]; -int *b = new int[SIZE]; -int *c = new int[SIZE]; +#include +#include +using namespace std; + +void test_XOR() { + const int input_size = 2; + const int hidden_size = 4; + const int output_size = 1; + + CharacterRecognition::MLP3 xor_mlp(input_size, hidden_size, output_size); + + // initial weights (from Hannah excel) + float *wkj = new float[input_size * hidden_size]; + wkj[0] = 10.1; + wkj[1] = 20; + wkj[2] = 0.9; + wkj[3] = 0.87; + float *wji = new float[hidden_size * output_size]; + wji[0] = 41; + wji[1] = -54; + xor_mlp.init_weights(wkj, wji); + + + // test input (row major) + const int num_inputs = 4; + float *xor_input = new float[num_inputs * input_size]; + float *xor_label = new float[num_inputs * output_size]; + + xor_input[0] = 0; xor_input[4] = 0; + xor_label[0] = 0; + + xor_input[1] = 0; xor_input[5] = 1; + xor_label[1] = 1; + + xor_input[2] = 1; xor_input[6] = 0; + xor_label[2] = 1; + + xor_input[3] = 1; xor_input[7] = 1; + xor_label[3] = 0; + + xor_mlp.train(xor_input, xor_label, num_inputs, 150); +} + +void test_image() { + const int input_size = 10201; + const int hidden_size = 128; + const int output_size = 52; + + CharacterRecognition::MLP3 image_mlp(input_size, hidden_size, output_size); + image_mlp.init_weights(); + + // test input (row major) + const int num_inputs = 52; + float *image_input = new float[num_inputs * input_size]; + float *image_label = new float[num_inputs * output_size]; + memset(image_label, 0, sizeof(float) * num_inputs * output_size); + + for (int i = 0; i < 52; i++) { + string file_idx = to_string(i+1); + if (file_idx.length() == 1) { + file_idx = "0" + file_idx; + } + string file_name = "../data-set/" + file_idx + "info.txt"; + ifstream input_stream(file_name); + if (!input_stream) cerr << "Can't open input file:" << file_name << endl; + int first, second; + input_stream >> first; + input_stream >> second; + for (int j = 0; j < input_size; j++) { + input_stream >> image_input[j * num_inputs + i]; + } + image_label[i * num_inputs + i] = 1.0; + } + + image_mlp.train(image_input, image_label, num_inputs, 200); +} int main(int argc, char* argv[]) { - // Scan tests - - printf("\n"); - printf("****************\n"); - printf("** SCAN TESTS **\n"); - printf("****************\n"); - - genArray(SIZE - 1, a, 50); // Leave a 0 at the end to test that edge case - a[SIZE - 1] = 0; - printArray(SIZE, a, true); - - // initialize b using StreamCompaction::CPU::scan you implement - // We use b for further comparison. Make sure your StreamCompaction::CPU::scan is correct. - // At first all cases passed because b && c are all zeroes. - zeroArray(SIZE, b); - printDesc("cpu scan, power-of-two"); - StreamCompaction::CPU::scan(SIZE, b, a); - printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); - printArray(SIZE, b, true); - - zeroArray(SIZE, c); - printDesc("cpu scan, non-power-of-two"); - StreamCompaction::CPU::scan(NPOT, c, a); - printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); - printArray(NPOT, b, true); - printCmpResult(NPOT, b, c); - - zeroArray(SIZE, c); - printDesc("naive scan, power-of-two"); - StreamCompaction::Naive::scan(SIZE, c, a); - printElapsedTime(StreamCompaction::Naive::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(SIZE, c, true); - printCmpResult(SIZE, b, c); - - /* For bug-finding only: Array of 1s to help find bugs in stream compaction or scan - onesArray(SIZE, c); - printDesc("1s array for finding bugs"); - StreamCompaction::Naive::scan(SIZE, c, a); - printArray(SIZE, c, true); */ - - zeroArray(SIZE, c); - printDesc("naive scan, non-power-of-two"); - StreamCompaction::Naive::scan(NPOT, c, a); - printElapsedTime(StreamCompaction::Naive::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(SIZE, c, true); - printCmpResult(NPOT, b, c); - - zeroArray(SIZE, c); - printDesc("work-efficient scan, power-of-two"); - StreamCompaction::Efficient::scan(SIZE, c, a); - printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(SIZE, c, true); - printCmpResult(SIZE, b, c); - - zeroArray(SIZE, c); - printDesc("work-efficient scan, non-power-of-two"); - StreamCompaction::Efficient::scan(NPOT, c, a); - printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(NPOT, c, true); - printCmpResult(NPOT, b, c); - - zeroArray(SIZE, c); - printDesc("thrust scan, power-of-two"); - StreamCompaction::Thrust::scan(SIZE, c, a); - printElapsedTime(StreamCompaction::Thrust::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(SIZE, c, true); - printCmpResult(SIZE, b, c); - - zeroArray(SIZE, c); - printDesc("thrust scan, non-power-of-two"); - StreamCompaction::Thrust::scan(NPOT, c, a); - printElapsedTime(StreamCompaction::Thrust::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(NPOT, c, true); - printCmpResult(NPOT, b, c); - - printf("\n"); - printf("*****************************\n"); - printf("** STREAM COMPACTION TESTS **\n"); - printf("*****************************\n"); - - // Compaction tests - - genArray(SIZE - 1, a, 4); // Leave a 0 at the end to test that edge case - a[SIZE - 1] = 0; - printArray(SIZE, a, true); - - int count, expectedCount, expectedNPOT; - - // initialize b using StreamCompaction::CPU::compactWithoutScan you implement - // We use b for further comparison. Make sure your StreamCompaction::CPU::compactWithoutScan is correct. - zeroArray(SIZE, b); - printDesc("cpu compact without scan, power-of-two"); - count = StreamCompaction::CPU::compactWithoutScan(SIZE, b, a); - printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); - expectedCount = count; - printArray(count, b, true); - printCmpLenResult(count, expectedCount, b, b); - - zeroArray(SIZE, c); - printDesc("cpu compact without scan, non-power-of-two"); - count = StreamCompaction::CPU::compactWithoutScan(NPOT, c, a); - printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); - expectedNPOT = count; - printArray(count, c, true); - printCmpLenResult(count, expectedNPOT, b, c); - - zeroArray(SIZE, c); - printDesc("cpu compact with scan"); - count = StreamCompaction::CPU::compactWithScan(SIZE, c, a); - printElapsedTime(StreamCompaction::CPU::timer().getCpuElapsedTimeForPreviousOperation(), "(std::chrono Measured)"); - printArray(count, c, true); - printCmpLenResult(count, expectedCount, b, c); - - zeroArray(SIZE, c); - printDesc("work-efficient compact, power-of-two"); - count = StreamCompaction::Efficient::compact(SIZE, c, a); - printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(count, c, true); - printCmpLenResult(count, expectedCount, b, c); - - zeroArray(SIZE, c); - printDesc("work-efficient compact, non-power-of-two"); - count = StreamCompaction::Efficient::compact(NPOT, c, a); - printElapsedTime(StreamCompaction::Efficient::timer().getGpuElapsedTimeForPreviousOperation(), "(CUDA Measured)"); - //printArray(count, c, true); - printCmpLenResult(count, expectedNPOT, b, c); - - system("pause"); // stop Win32 console from closing on exit - delete[] a; - delete[] b; - delete[] c; + test_XOR(); + //test_image(); } diff --git a/Project2-Stream-Compaction/img/blocksize_opt.jpg b/Project2-Stream-Compaction/img/blocksize_opt.jpg index 4902b24d49c00c684dcbfd1d29f9d94d7d9be745..2a4f57f6622ae0c551ce6cf84e710264a563030e 100644 GIT binary patch literal 34144 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 n6R$F)GU*QPXKKacza?d>&c literal 47907 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

w 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 Cu`1F4 diff --git a/Project2-Stream-Compaction/img/scan_perf.jpg b/Project2-Stream-Compaction/img/scan_perf.jpg index 6ce98dfd3b500299c2124eabfd9d94f58e75f9e9..99fb25211dc40e10083a0ae3dd0f51edf42f7959 100644 GIT binary patch literal 54404 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Ð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 literal 79558 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

AIwG29HHrG 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 From 075fd746de7333ec5423f88ff1ec911829d45001 Mon Sep 17 00:00:00 2001 From: Zheyuan Xie Date: Wed, 18 Sep 2019 16:24:56 -0400 Subject: [PATCH 4/8] add mlp tests and README --- Project2-Character-Recognition/README.md | 153 +++++++++++++++++- .../character_recognition/mlp.cu | 33 +++- .../character_recognition/mlp.h | 9 +- .../img/image_corr.jpg | Bin 0 -> 81355 bytes .../img/image_curve.jpg | Bin 0 -> 84221 bytes .../img/xor_curve.jpg | Bin 0 -> 75913 bytes Project2-Character-Recognition/src/main.cpp | 89 ++++++++-- README.md | 15 +- 8 files changed, 270 insertions(+), 29 deletions(-) create mode 100644 Project2-Character-Recognition/img/image_corr.jpg create mode 100644 Project2-Character-Recognition/img/image_curve.jpg create mode 100644 Project2-Character-Recognition/img/xor_curve.jpg diff --git a/Project2-Character-Recognition/README.md b/Project2-Character-Recognition/README.md index 4503fac..725e394 100644 --- a/Project2-Character-Recognition/README.md +++ b/Project2-Character-Recognition/README.md @@ -3,12 +3,153 @@ CUDA Character Recognition **University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 2** -* (TODO) YOUR NAME HERE - * (TODO) [LinkedIn](), [personal website](), [twitter](), etc. -* Tested on: (TODO) Windows 22, i7-2222 @ 2.22GHz 22GB, GTX 222 222MB (Moore 2222 Lab) +* Zheyuan Xie +* Tested on: Windows 10 Pro, i7-7700HQ @ 2.80GHz 2.80GHz, 16GB, GTX 1050 2GB (Dell XPS 15 9560) -### (TODO: Your README) +## Description +In this project, a three-layer perceptron is implemented using CUDA.The implementation is tested on the XOR example and the given character recognition dataset. -Include analysis, etc. (Remember, this is public, so don't put -anything here that you don't want to share with the world.) +The three-layer perceptron is warpped into a class `MLP3`, which is declared in `mlp.h` and implemented in `mlp.cu`. Related CUDA kernels and cuBLAS helper functions are implemented in `mlp.cu`. The neural network is composed of three layers: + - A input layer + - A fully connected hidden layer with Sigmoid activation + - A fully connected output layer with Sigmoid activation +Currently we do not support changing the number of layers. But the number of neurons (N_input, N_hidden, N_output) in each layer is configurable at consturction. The training data and labels are provided in batch as N_batch x N_input and N_batch x N_ouptut matrix stored in *column-major* arrays. The training undergoes the following steps on every epoch: + + 1. **Forward pass**: given inputs, compute the outputs of the network using current weights. + 2. **Backward propagation**: back propagate the training error and compute the gradients of each weight. + 3. **Calculate Loss**: compute the total training loss of current batch. + 4. **Update weights**: update the gradient using naive gradient descent. + + All calculations are implemented in parallel using custom CUDA kernels and cuCLABS library. + +## Traning Result +### XOR Example + - input neuron: 2 + - hidden neuron: 2 + - output neuron: 1 + - batch size: 4 + - initial weights: As given in the Excel + - learning rate: 10^-2 fixed + +The graph below shows the change of total error in the first 200 epoches. +![](img/xor_curve.jpg) + +Debug Output: +``` +--- XOR Example --- +epoch: 0 | cost: 0.00286369 +epoch: 10 | cost: 0.00229358 +epoch: 20 | cost: 0.00190236 +epoch: 30 | cost: 0.00162444 +epoch: 40 | cost: 0.00142166 +epoch: 50 | cost: 0.00127057 +epoch: 60 | cost: 0.0011561 +epoch: 70 | cost: 0.00106817 +epoch: 80 | cost: 0.000999872 +epoch: 90 | cost: 0.000946314 +epoch: 100 | cost: 0.000903958 +epoch: 110 | cost: 0.000870197 +epoch: 120 | cost: 0.000843124 +epoch: 130 | cost: 0.000821268 +epoch: 140 | cost: 0.000803517 +epoch: 150 | cost: 0.000789034 +epoch: 160 | cost: 0.000777127 +epoch: 170 | cost: 0.000767323 +epoch: 180 | cost: 0.000759189 +epoch: 190 | cost: 0.000752402 +``` + +### Character Recognition + - input neuron: 2 + - hidden neuron: 2 + - output neuron: 1 + - batch size: 52 + - initial weights: random + - learning rate: 10^-4 fixed + + The graph below shows the change of total error in the first 200 epoches. + ![](img/image_curve.jpg) + + Another graph shows the evolution of prediction correctness in the training set. The prediction reaches 100% correct at about 80th epoch. + ![](img/image_corr.jpg) + +Debug Output: +``` +--- Character Recognition --- +epoch: 0 | cost: 0.291311 | correct: 82.6923% +epoch: 10 | cost: 0.142109 | correct: 96.1538% +epoch: 20 | cost: 0.0961198 | correct: 100% +epoch: 30 | cost: 0.063884 | correct: 100% +epoch: 40 | cost: 0.0623333 | correct: 98.0769% +epoch: 50 | cost: 0.0497727 | correct: 100% +epoch: 60 | cost: 0.0461378 | correct: 100% +epoch: 70 | cost: 0.0356991 | correct: 100% +epoch: 80 | cost: 0.0315837 | correct: 100% +epoch: 90 | cost: 0.0304885 | correct: 100% +epoch: 100 | cost: 0.026108 | correct: 100% +epoch: 110 | cost: 0.0254792 | correct: 100% +epoch: 120 | cost: 0.0291465 | correct: 100% +epoch: 130 | cost: 0.0230684 | correct: 100% +epoch: 140 | cost: 0.0249249 | correct: 100% +epoch: 150 | cost: 0.0206818 | correct: 100% +epoch: 160 | cost: 0.0191929 | correct: 100% +epoch: 170 | cost: 0.0171115 | correct: 100% +epoch: 180 | cost: 0.0167711 | correct: 100% +epoch: 190 | cost: 0.0161567 | correct: 100% +--- +Target Label:1, Predicted Label:1 +Target Label:2, Predicted Label:2 +Target Label:3, Predicted Label:3 +Target Label:4, Predicted Label:4 +Target Label:5, Predicted Label:5 +Target Label:6, Predicted Label:6 +Target Label:7, Predicted Label:7 +Target Label:8, Predicted Label:8 +Target Label:9, Predicted Label:9 +Target Label:10, Predicted Label:10 +Target Label:11, Predicted Label:11 +Target Label:12, Predicted Label:12 +Target Label:13, Predicted Label:13 +Target Label:14, Predicted Label:14 +Target Label:15, Predicted Label:15 +Target Label:16, Predicted Label:16 +Target Label:17, Predicted Label:17 +Target Label:18, Predicted Label:18 +Target Label:19, Predicted Label:19 +Target Label:20, Predicted Label:20 +Target Label:21, Predicted Label:21 +Target Label:22, Predicted Label:22 +Target Label:23, Predicted Label:23 +Target Label:24, Predicted Label:24 +Target Label:25, Predicted Label:25 +Target Label:26, Predicted Label:26 +Target Label:27, Predicted Label:27 +Target Label:28, Predicted Label:28 +Target Label:29, Predicted Label:29 +Target Label:30, Predicted Label:30 +Target Label:31, Predicted Label:31 +Target Label:32, Predicted Label:32 +Target Label:33, Predicted Label:33 +Target Label:34, Predicted Label:34 +Target Label:35, Predicted Label:35 +Target Label:36, Predicted Label:36 +Target Label:37, Predicted Label:37 +Target Label:38, Predicted Label:38 +Target Label:39, Predicted Label:39 +Target Label:40, Predicted Label:40 +Target Label:41, Predicted Label:41 +Target Label:42, Predicted Label:42 +Target Label:43, Predicted Label:43 +Target Label:44, Predicted Label:44 +Target Label:45, Predicted Label:45 +Target Label:46, Predicted Label:46 +Target Label:47, Predicted Label:47 +Target Label:48, Predicted Label:48 +Target Label:49, Predicted Label:49 +Target Label:50, Predicted Label:50 +Target Label:51, Predicted Label:51 +Target Label:52, Predicted Label:52 +``` + +## Performance Analysis diff --git a/Project2-Character-Recognition/character_recognition/mlp.cu b/Project2-Character-Recognition/character_recognition/mlp.cu index 05ad87a..4ca161c 100644 --- a/Project2-Character-Recognition/character_recognition/mlp.cu +++ b/Project2-Character-Recognition/character_recognition/mlp.cu @@ -142,7 +142,7 @@ namespace CharacterRecognition { kernRandomNumber<<>>(n_w2, 1, wkj_); } - void MLP3::train(float *x_train, float *y_train, int n_data, int n_epoch) { + void MLP3::train(float *x_train, float *y_train, int n_data, int n_epoch, bool verbose) { n_data_ = n_data; cudaMalloc((void**)&dev_input_, n_data * input_size_ * sizeof(float)); cudaMalloc((void**)&dev_target_, n_data * output_size_ * sizeof(float)); @@ -159,8 +159,37 @@ namespace CharacterRecognition { back_propagation(); calculate_loss(); update_weights(); - std::cout << "epoch: " << epoch + 1 << ", total error: " << total_error_ << std::endl; + if (verbose && ((epoch == n_epoch - 1) || (epoch + 1) % 5 == 0)) { + std::cout << "epoch: " << epoch + 1 << ", cost: " << total_error_ << std::endl; + } } + + cudaFree(dev_input_); + cudaFree(dev_target_); + cudaFree(dev_hidden_); + cudaFree(dev_hidden_sigmoid_); + cudaFree(dev_output_); + cudaFree(dev_output_sigmoid_); + } + + void MLP3::predict(float *x_input, float *y_pred, int n_data) { + n_data_ = n_data; + cudaMalloc((void**)&dev_input_, n_data * input_size_ * sizeof(float)); + cudaMemcpy(dev_input_, x_input, n_data * input_size_ * sizeof(float), cudaMemcpyHostToDevice); + + cudaMalloc((void**)&dev_hidden_, n_data * hidden_size_ * sizeof(float)); + cudaMalloc((void**)&dev_hidden_sigmoid_, n_data * hidden_size_ * sizeof(float)); + cudaMalloc((void**)&dev_output_, n_data * output_size_ * sizeof(float)); + cudaMalloc((void**)&dev_output_sigmoid_, n_data * output_size_ * sizeof(float)); + + forward(); + cudaMemcpy(y_pred, dev_output_sigmoid_, n_data * output_size_ * sizeof(float), cudaMemcpyDeviceToHost); + + cudaFree(dev_input_); + cudaFree(dev_hidden_); + cudaFree(dev_hidden_sigmoid_); + cudaFree(dev_output_); + cudaFree(dev_output_sigmoid_); } void MLP3::forward() { diff --git a/Project2-Character-Recognition/character_recognition/mlp.h b/Project2-Character-Recognition/character_recognition/mlp.h index e285e03..79eb095 100644 --- a/Project2-Character-Recognition/character_recognition/mlp.h +++ b/Project2-Character-Recognition/character_recognition/mlp.h @@ -16,10 +16,15 @@ namespace CharacterRecognition { // destructor ~MLP3(); + // accessor + float total_error() const { + return total_error_; + } + void init_weights(float *wkj, float *wji); void init_weights(); - void predict(float *x_input, float *y_pred); - void train(float *x_train, float *y_train, int n_data, int n_epoch); + void predict(float *x_input, float *y_pred, int n_data); + void train(float *x_train, float *y_train, int n_data, int n_epoch, bool verbose); private: void forward(); diff --git a/Project2-Character-Recognition/img/image_corr.jpg b/Project2-Character-Recognition/img/image_corr.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6d272bf68e77f88d8c15fae3e4c651a80216ca39 GIT binary patch literal 81355 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 HVD!HLr_xS; literal 0 HcmV?d00001 diff --git a/Project2-Character-Recognition/img/image_curve.jpg b/Project2-Character-Recognition/img/image_curve.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e7db3340420e5077f2d8bdb7732d7e0dd18fbc95 GIT binary patch literal 84221 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 literal 0 HcmV?d00001 diff --git a/Project2-Character-Recognition/img/xor_curve.jpg b/Project2-Character-Recognition/img/xor_curve.jpg new file mode 100644 index 0000000000000000000000000000000000000000..042bc0f3d5fbb5d3ddafd239226141565f5cbfb7 GIT binary patch literal 75913 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 Q=ll1koqxCfi2wHXAM|MU%K!iX literal 0 HcmV?d00001 diff --git a/Project2-Character-Recognition/src/main.cpp b/Project2-Character-Recognition/src/main.cpp index 559dc8b..caa67b5 100644 --- a/Project2-Character-Recognition/src/main.cpp +++ b/Project2-Character-Recognition/src/main.cpp @@ -9,13 +9,17 @@ #include #include #include -#include "testing_helpers.hpp" +#include "testing_helpers.hpp"'' #include #include using namespace std; -void test_XOR() { +// find the index of the maximum element in an array. +int find_max_idx(int n, float* array); +bool test_image(CharacterRecognition::MLP3 &mlp, int label, bool verbose); + +void train_XOR() { const int input_size = 2; const int hidden_size = 4; const int output_size = 1; @@ -34,7 +38,7 @@ void test_XOR() { xor_mlp.init_weights(wkj, wji); - // test input (row major) + // training input (row major) const int num_inputs = 4; float *xor_input = new float[num_inputs * input_size]; float *xor_label = new float[num_inputs * output_size]; @@ -51,10 +55,17 @@ void test_XOR() { xor_input[3] = 1; xor_input[7] = 1; xor_label[3] = 0; - xor_mlp.train(xor_input, xor_label, num_inputs, 150); + cout << "--- XOR Example ---" << endl; + for (int t = 0; t < 20; t++) { + // Train + xor_mlp.train(xor_input, xor_label, num_inputs, 10, false); + float cost = xor_mlp.total_error(); + + std::cout << "epoch: " << t * 10 << " | cost: " << cost << std::endl; + } } -void test_image() { +void train_image() { const int input_size = 10201; const int hidden_size = 128; const int output_size = 52; @@ -62,7 +73,7 @@ void test_image() { CharacterRecognition::MLP3 image_mlp(input_size, hidden_size, output_size); image_mlp.init_weights(); - // test input (row major) + // training input (row major) const int num_inputs = 52; float *image_input = new float[num_inputs * input_size]; float *image_label = new float[num_inputs * output_size]; @@ -85,10 +96,70 @@ void test_image() { image_label[i * num_inputs + i] = 1.0; } - image_mlp.train(image_input, image_label, num_inputs, 200); + cout << "--- Character Recognition ---" << endl; + for (int t = 0; t < 20; t++) { + // Train + image_mlp.train(image_input, image_label, num_inputs, 10, false); + float cost = image_mlp.total_error(); + + // Test + int correct_cnt = 0; + for (int i = 1; i <= 52; i++) { + if (test_image(image_mlp, i, false)) { + correct_cnt++; + } + } + std::cout << "epoch: " << t * 10 << " | cost: " << cost << " | correct: " << correct_cnt / 52.0 * 100 << "%" << std::endl; + } + cout << "---" << endl; + for (int i = 1; i <= 52; i++) { + if (test_image(image_mlp, i, true)) { + } + } +} + +bool test_image(CharacterRecognition::MLP3 &mlp, int label, bool verbose) { + string file_idx = to_string(label); + if (file_idx.length() == 1) { + file_idx = "0" + file_idx; + } + string file_name = "../data-set/" + file_idx + "info.txt"; + ifstream input_stream(file_name); + if (!input_stream) cerr << "Can't open input file:" << file_name << endl; + int first, second; + input_stream >> first; + input_stream >> second; + float *test_input = new float[10201]; + float *test_output = new float[52]; + for (int j = 0; j < 10201; j++) { + input_stream >> test_input[j]; + } + mlp.predict(test_input, test_output, 1); + int label_output = find_max_idx(52, test_output) + 1; + if (verbose) { + cout << "Target Label:" << label << ", Predicted Label:" << label_output << endl; + } + + delete[] test_input; + delete[] test_output; + + return label_output == label; +} + +int find_max_idx(int n, float* array) { + float max = FLT_MIN; + int idx = 0; + for (int i = 0; i < n; i++) { + if (array[i] > max) { + idx = i; + max = array[i]; + } + } + return idx; } int main(int argc, char* argv[]) { - test_XOR(); - //test_image(); + train_XOR(); + cout << endl; + train_image(); } diff --git a/README.md b/README.md index 3a0b2fe..1d87221 100644 --- a/README.md +++ b/README.md @@ -3,14 +3,9 @@ CUDA Number Algorithms **University of Pennsylvania, CIS 565: GPU Programming and Architecture, Project 2** -* (TODO) YOUR NAME HERE - * (TODO) [LinkedIn](), [personal website](), [twitter](), etc. -* Tested on: (TODO) Windows 22, i7-2222 @ 2.22GHz 22GB, GTX 222 222MB (Moore 2222 Lab) - -### (TODO: Your README) - -Link to the readmes of the other two subprojects. - -Add anything else you think is relevant up to this point. -(Remember, this is public, so don't put anything here that you don't want to share with the world.) +* Zheyuan Xie +* Tested on: Windows 10 Pro, i7-7700HQ @ 2.80GHz 2.80GHz, 16GB, GTX 1050 2GB (Dell XPS 15 9560) +## Links to Subprojects + - [Stream Compaction](./Project2-Stream-Compaction/README.md) + - [Character Recognition](./Project2-Character-Recognition/README.md) From 43abd8a01b6b8b33c13b60c4aee8e2d78a5cdd65 Mon Sep 17 00:00:00 2001 From: Zheyuan Xie Date: Wed, 18 Sep 2019 18:11:58 -0400 Subject: [PATCH 5/8] work efficient scan optimized & improvements --- .../character_recognition/mlp.cu | 11 ++++++ .../img/image_corr.jpg | Bin 81355 -> 50399 bytes .../img/image_curve.jpg | Bin 84221 -> 53035 bytes .../img/xor_curve.jpg | Bin 75913 -> 49264 bytes Project2-Stream-Compaction/README.md | 29 ++++++++++++++- .../img/work_efficient_optimized.jpg | Bin 0 -> 65778 bytes Project2-Stream-Compaction/src/main.cpp | 2 +- .../stream_compaction/efficient.cu | 34 ++++++++++++------ 8 files changed, 63 insertions(+), 13 deletions(-) create mode 100644 Project2-Stream-Compaction/img/work_efficient_optimized.jpg diff --git a/Project2-Character-Recognition/character_recognition/mlp.cu b/Project2-Character-Recognition/character_recognition/mlp.cu index 4ca161c..9860cb6 100644 --- a/Project2-Character-Recognition/character_recognition/mlp.cu +++ b/Project2-Character-Recognition/character_recognition/mlp.cu @@ -237,6 +237,17 @@ namespace CharacterRecognition { gpu_blas_mtrans(cublas_handle_, dev_input_, temp8, input_size_, n_data_); gpu_blas_mmul(cublas_handle_, temp8, temp7, gwkj_, input_size_, n_data_, hidden_size_); + + // free cuda memory + cudaFree(temp1); + cudaFree(temp2); + cudaFree(temp3); + cudaFree(temp4); + cudaFree(temp5); + cudaFree(temp6); + cudaFree(temp7); + cudaFree(temp8); + cudaFree(wji_T); } void MLP3::calculate_loss() { diff --git a/Project2-Character-Recognition/img/image_corr.jpg b/Project2-Character-Recognition/img/image_corr.jpg index 6d272bf68e77f88d8c15fae3e4c651a80216ca39..9c98774f5a9f2c30970f7ff37b63578aa9cc2e3f 100644 GIT binary patch literal 50399 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 W0|7WpUY`!tzxCq%=wbZ(uKx#^zZ=8= literal 81355 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 HVD!HLr_xS; diff --git a/Project2-Character-Recognition/img/image_curve.jpg b/Project2-Character-Recognition/img/image_curve.jpg index e7db3340420e5077f2d8bdb7732d7e0dd18fbc95..c8565890f83b7f1872f12004ad4cce751bfe5e83 100644 GIT binary patch literal 53035 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 diff --git a/Project2-Character-Recognition/img/xor_curve.jpg b/Project2-Character-Recognition/img/xor_curve.jpg index 042bc0f3d5fbb5d3ddafd239226141565f5cbfb7..ab443eb22dd6334babafcca1d4f103e73d7db784 100644 GIT binary patch literal 49264 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 literal 75913 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 Q=ll1koqxCfi2wHXAM|MU%K!iX diff --git a/Project2-Stream-Compaction/README.md b/Project2-Stream-Compaction/README.md index 7458ad9..2c26d9f 100644 --- a/Project2-Stream-Compaction/README.md +++ b/Project2-Stream-Compaction/README.md @@ -31,9 +31,36 @@ The graphs below compare the runtime of different scan implementations. ![](img/scan_perf.jpg) - The advantage of using GPU begins to dominate when the array size is large (> 2^15). - Thrust performed significently better. The reason is probably it utilizes shared memory instead of the much slower global memory. - - Work efficient scan performs worse than naive scan, which is unexpected. + - Work efficient scan performs worse than naive scan, which is unexpected. This will be discussed later. - Another unexplained phenomenon is CPU scan with non-power-of-two array size has significantly better performance (even better than GPU) than power-of-two array size. It could be a bug in the test program. +### Extra Credit 5: Why is My GPU Approach So Slow +The reason why work efficient scan is slower than expected is although the number of arithmetic operation is reduced, the kernel call is launching too much unnecessary threads. This effect has more influence on runtime when the array size is large. + +To resolve this, both the kernel code and calling code is altered so that only necessary number of threads are launched. The thread index is converted to the array index by multiplying stride length. + +Before optimization: + - number of threads = 2^dmax + - In kernel: +``` +if (k < n && k % (1 << (d+1)) == 0) { + array_idx = k; + ... +} +``` + +After optimization: + - number of threads = 2^(dmax - 1 - d) + - In kernel: +``` +if (k < n) { + array_idx = k * (1 << (d+1)); + ... +} +``` + +After optimization, work efficient is significantly improved, outperforming naive scan and cpu scan. +![](img/work_efficient_optimized.jpg) ### Test Output - In `common.h`, BLOCKSIZE = 128. diff --git a/Project2-Stream-Compaction/img/work_efficient_optimized.jpg b/Project2-Stream-Compaction/img/work_efficient_optimized.jpg new file mode 100644 index 0000000000000000000000000000000000000000..15bf2f2c1377794306b8449de20c2ca3f1658c72 GIT binary patch literal 65778 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 Fvi&-ltIP3KK43La%IuZqAuk=5z2-8sl*DG2Q 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¤WCS5tLjH1b}{(h{3 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 literal 0 HcmV?d00001 diff --git a/Project2-Stream-Compaction/src/main.cpp b/Project2-Stream-Compaction/src/main.cpp index 4ac104f..507ebee 100644 --- a/Project2-Stream-Compaction/src/main.cpp +++ b/Project2-Stream-Compaction/src/main.cpp @@ -13,7 +13,7 @@ #include #include "testing_helpers.hpp" -const int SIZE = 1 << 15; // feel free to change the size of array +const int SIZE = 1 << 16; // feel free to change the size of array const int NPOT = SIZE - 3; // Non-Power-Of-Two int *a = new int[SIZE]; int *b = new int[SIZE]; diff --git a/Project2-Stream-Compaction/stream_compaction/efficient.cu b/Project2-Stream-Compaction/stream_compaction/efficient.cu index d869b67..b395d24 100644 --- a/Project2-Stream-Compaction/stream_compaction/efficient.cu +++ b/Project2-Stream-Compaction/stream_compaction/efficient.cu @@ -14,18 +14,22 @@ namespace StreamCompaction { __global__ void kernUpSweep(int n, int pow2d, int *idata) { int k = threadIdx.x + (blockIdx.x * blockDim.x); - if (k < n && k % (pow2d * 2) == 0) { - idata[k + pow2d * 2 - 1] += idata[k + pow2d - 1]; + if (k >= n) { + return; } + int pow2d2 = pow2d * 2; + idata[k * pow2d2 + pow2d2 - 1] += idata[k * pow2d2 + pow2d - 1]; } __global__ void kernDownSweep(int n, int pow2d, int *idata) { int k = threadIdx.x + (blockIdx.x * blockDim.x); - if (k < n && k % (pow2d * 2) == 0) { - int t = idata[k + pow2d - 1]; - idata[k + pow2d - 1] = idata[k + pow2d * 2 - 1]; - idata[k + pow2d * 2 - 1] += t; + if (k >= n) { + return; } + int pow2d2 = pow2d * 2; + int t = idata[k * pow2d2 + pow2d - 1]; + idata[k * pow2d2 + pow2d - 1] = idata[k * pow2d2 + pow2d2 - 1]; + idata[k * pow2d2 + pow2d2 - 1] += t; } /** @@ -46,13 +50,17 @@ namespace StreamCompaction { int dmax = ilog2ceil(n); for (int d = 0; d < dmax; d++) { - kernUpSweep << > > (size, 1 << d, dev_in); + int n_threads = 1 << (dmax - 1 - d); + gridSize = dim3((n_threads + BLOCKSIZE - 1) / BLOCKSIZE); + kernUpSweep << > > (n_threads, 1 << d, dev_in); } cudaMemset((void*)&(dev_in[size - 1]), 0, sizeof(int)); for (int d = dmax - 1; d >= 0; d--) { - kernDownSweep << > > (size, 1 << d, dev_in); + int n_threads = 1 << (dmax - 1 - d); + gridSize = dim3((n_threads + BLOCKSIZE - 1) / BLOCKSIZE); + kernDownSweep << > > (n_threads, 1 << d, dev_in); } timer().endGpuTimer(); @@ -104,15 +112,19 @@ namespace StreamCompaction { cudaMemcpy(dev_indices, dev_bools, size, cudaMemcpyDeviceToDevice); int dmax = ilog2ceil(n2); - + int n_threads; for (int d = 0; d < dmax; d++) { - kernUpSweep << > > (n2, 1 << d, dev_indices); + int n_threads = 1 << (dmax - 1 - d); + gridSize2 = (n_threads + BLOCKSIZE - 1) / BLOCKSIZE; + kernUpSweep << > > (n_threads, 1 << d, dev_indices); } cudaMemset((void*)&(dev_indices[n2 - 1]), 0, sizeof(int)); for (int d = dmax - 1; d >= 0; d--) { - kernDownSweep << > > (n2, 1 << d, dev_indices); + int n_threads = 1 << (dmax - 1 - d); + gridSize2 = (n_threads + BLOCKSIZE - 1) / BLOCKSIZE; + kernDownSweep << > > (n_threads, 1 << d, dev_indices); } // stream compaction From bd0eac9f9a485f908762525a7c70377644a5dca6 Mon Sep 17 00:00:00 2001 From: Zheyuan Xie Date: Wed, 18 Sep 2019 19:00:18 -0400 Subject: [PATCH 6/8] add cpu timer --- Project2-Character-Recognition/README.md | 47 +++++++++++---------- Project2-Character-Recognition/src/main.cpp | 5 ++- 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/Project2-Character-Recognition/README.md b/Project2-Character-Recognition/README.md index 725e394..9c158e6 100644 --- a/Project2-Character-Recognition/README.md +++ b/Project2-Character-Recognition/README.md @@ -23,6 +23,8 @@ Currently we do not support changing the number of layers. But the number of neu All calculations are implemented in parallel using custom CUDA kernels and cuCLABS library. + **Extra Credit:** Instead of doing 1d vector for input to output, matrix multiplication of the weights is used between each layer of the overall network as well as in back propagation. + ## Traning Result ### XOR Example - input neuron: 2 @@ -33,6 +35,7 @@ Currently we do not support changing the number of layers. But the number of neu - learning rate: 10^-2 fixed The graph below shows the change of total error in the first 200 epoches. + ![](img/xor_curve.jpg) Debug Output: @@ -69,34 +72,36 @@ epoch: 190 | cost: 0.000752402 - learning rate: 10^-4 fixed The graph below shows the change of total error in the first 200 epoches. + ![](img/image_curve.jpg) Another graph shows the evolution of prediction correctness in the training set. The prediction reaches 100% correct at about 80th epoch. + ![](img/image_corr.jpg) Debug Output: ``` --- Character Recognition --- -epoch: 0 | cost: 0.291311 | correct: 82.6923% -epoch: 10 | cost: 0.142109 | correct: 96.1538% -epoch: 20 | cost: 0.0961198 | correct: 100% -epoch: 30 | cost: 0.063884 | correct: 100% -epoch: 40 | cost: 0.0623333 | correct: 98.0769% -epoch: 50 | cost: 0.0497727 | correct: 100% -epoch: 60 | cost: 0.0461378 | correct: 100% -epoch: 70 | cost: 0.0356991 | correct: 100% -epoch: 80 | cost: 0.0315837 | correct: 100% -epoch: 90 | cost: 0.0304885 | correct: 100% -epoch: 100 | cost: 0.026108 | correct: 100% -epoch: 110 | cost: 0.0254792 | correct: 100% -epoch: 120 | cost: 0.0291465 | correct: 100% -epoch: 130 | cost: 0.0230684 | correct: 100% -epoch: 140 | cost: 0.0249249 | correct: 100% -epoch: 150 | cost: 0.0206818 | correct: 100% -epoch: 160 | cost: 0.0191929 | correct: 100% -epoch: 170 | cost: 0.0171115 | correct: 100% -epoch: 180 | cost: 0.0167711 | correct: 100% -epoch: 190 | cost: 0.0161567 | correct: 100% +epoch: 0 | cost: 0.291311 | correct: 82.6923% | time elapsed: 32.632 ms +epoch: 10 | cost: 0.142109 | correct: 96.1538% | time elapsed: 26.9052 ms +epoch: 20 | cost: 0.0961198 | correct: 100% | time elapsed: 26.2422 ms +epoch: 30 | cost: 0.063884 | correct: 100% | time elapsed: 24.8418 ms +epoch: 40 | cost: 0.0623333 | correct: 98.0769% | time elapsed: 26.4026 ms +epoch: 50 | cost: 0.0497727 | correct: 100% | time elapsed: 26.6263 ms +epoch: 60 | cost: 0.0461378 | correct: 100% | time elapsed: 26.3336 ms +epoch: 70 | cost: 0.0356991 | correct: 100% | time elapsed: 27.0863 ms +epoch: 80 | cost: 0.0315837 | correct: 100% | time elapsed: 26.8796 ms +epoch: 90 | cost: 0.0304885 | correct: 100% | time elapsed: 28.085 ms +epoch: 100 | cost: 0.026108 | correct: 100% | time elapsed: 25.3946 ms +epoch: 110 | cost: 0.0254792 | correct: 100% | time elapsed: 26.126 ms +epoch: 120 | cost: 0.0291465 | correct: 100% | time elapsed: 25.2853 ms +epoch: 130 | cost: 0.0230684 | correct: 100% | time elapsed: 21.3816 ms +epoch: 140 | cost: 0.0249249 | correct: 100% | time elapsed: 26.5961 ms +epoch: 150 | cost: 0.0206818 | correct: 100% | time elapsed: 26.4256 ms +epoch: 160 | cost: 0.0191929 | correct: 100% | time elapsed: 25.502 ms +epoch: 170 | cost: 0.0171115 | correct: 100% | time elapsed: 27.0411 ms +epoch: 180 | cost: 0.0167711 | correct: 100% | time elapsed: 24.4687 ms +epoch: 190 | cost: 0.0161567 | correct: 100% | time elapsed: 27.0288 ms --- Target Label:1, Predicted Label:1 Target Label:2, Predicted Label:2 @@ -151,5 +156,3 @@ Target Label:50, Predicted Label:50 Target Label:51, Predicted Label:51 Target Label:52, Predicted Label:52 ``` - -## Performance Analysis diff --git a/Project2-Character-Recognition/src/main.cpp b/Project2-Character-Recognition/src/main.cpp index caa67b5..34941bb 100644 --- a/Project2-Character-Recognition/src/main.cpp +++ b/Project2-Character-Recognition/src/main.cpp @@ -99,7 +99,10 @@ void train_image() { cout << "--- Character Recognition ---" << endl; for (int t = 0; t < 20; t++) { // Train + CharacterRecognition::timer().startCpuTimer(); image_mlp.train(image_input, image_label, num_inputs, 10, false); + CharacterRecognition::timer().endCpuTimer(); + float time_elapsed = CharacterRecognition::timer().getCpuElapsedTimeForPreviousOperation(); float cost = image_mlp.total_error(); // Test @@ -109,7 +112,7 @@ void train_image() { correct_cnt++; } } - std::cout << "epoch: " << t * 10 << " | cost: " << cost << " | correct: " << correct_cnt / 52.0 * 100 << "%" << std::endl; + std::cout << "epoch: " << t * 10 << " | cost: " << cost << " | correct: " << correct_cnt / 52.0 * 100 << "% | time elapsed: " << time_elapsed << " ms" << std::endl; } cout << "---" << endl; for (int i = 1; i <= 52; i++) { From 7273fdccfc9d7cb8a968af1dcd6a7e5254b1c131 Mon Sep 17 00:00:00 2001 From: Zheyuan Xie Date: Wed, 18 Sep 2019 21:18:20 -0400 Subject: [PATCH 7/8] minor fixes --- Project2-Character-Recognition/README.md | 18 ++++++++++-------- .../character_recognition/mlp.cu | 3 ++- .../character_recognition/mlp.h | 2 -- Project2-Character-Recognition/src/main.cpp | 6 +++--- Project2-Stream-Compaction/README.md | 2 +- .../img/scan_perf_small.jpg | Bin 106283 -> 72889 bytes 6 files changed, 16 insertions(+), 15 deletions(-) diff --git a/Project2-Character-Recognition/README.md b/Project2-Character-Recognition/README.md index 9c158e6..5aae607 100644 --- a/Project2-Character-Recognition/README.md +++ b/Project2-Character-Recognition/README.md @@ -10,7 +10,7 @@ CUDA Character Recognition In this project, a three-layer perceptron is implemented using CUDA.The implementation is tested on the XOR example and the given character recognition dataset. The three-layer perceptron is warpped into a class `MLP3`, which is declared in `mlp.h` and implemented in `mlp.cu`. Related CUDA kernels and cuBLAS helper functions are implemented in `mlp.cu`. The neural network is composed of three layers: - - A input layer + - An input layer - A fully connected hidden layer with Sigmoid activation - A fully connected output layer with Sigmoid activation @@ -21,7 +21,7 @@ Currently we do not support changing the number of layers. But the number of neu 3. **Calculate Loss**: compute the total training loss of current batch. 4. **Update weights**: update the gradient using naive gradient descent. - All calculations are implemented in parallel using custom CUDA kernels and cuCLABS library. + All calculations are implemented in parallel using custom CUDA kernels and cuCLABS library. Since the training process is very fast, the weights are not saved to any file. To test the implementation we can re-train the network within seconds. **Extra Credit:** Instead of doing 1d vector for input to output, matrix multiplication of the weights is used between each layer of the overall network as well as in back propagation. @@ -34,7 +34,7 @@ Currently we do not support changing the number of layers. But the number of neu - initial weights: As given in the Excel - learning rate: 10^-2 fixed -The graph below shows the change of total error in the first 200 epoches. +The initial weights are set according to the Excel example. Values generated in the first pass is compared and verified. The graph below shows the change of total error in the first 200 epoches. ![](img/xor_curve.jpg) @@ -64,18 +64,20 @@ epoch: 190 | cost: 0.000752402 ``` ### Character Recognition - - input neuron: 2 - - hidden neuron: 2 - - output neuron: 1 + - input neuron: 10201 + - hidden neuron: 128 + - output neuron: 52 - batch size: 52 - initial weights: random - learning rate: 10^-4 fixed + +In the character recgnition dataset, we are given 52 101x101 images representing each of the 26 letters in the alphabet with and without capitalization. Each input is a 1x10201 array containing the pixel values of the image, and the correspond label is a 1x52 one hot vector. These data are used directly in training without further preprocessing. - The graph below shows the change of total error in the first 200 epoches. +The graph below shows the change of total error in the first 200 epoches. ![](img/image_curve.jpg) - Another graph shows the evolution of prediction correctness in the training set. The prediction reaches 100% correct at about 80th epoch. + Another graph shows the evolution of prediction correctness in the training set. The prediction reaches 100% correct at about 80th epoch. The cost continues to decrease after the prediction achieves 100% correctness. ![](img/image_corr.jpg) diff --git a/Project2-Character-Recognition/character_recognition/mlp.cu b/Project2-Character-Recognition/character_recognition/mlp.cu index 9860cb6..955e152 100644 --- a/Project2-Character-Recognition/character_recognition/mlp.cu +++ b/Project2-Character-Recognition/character_recognition/mlp.cu @@ -101,7 +101,8 @@ namespace CharacterRecognition { array[idx] = (float)unitDistrib(rng); } - // TODO: implement required elements for MLP sections 1 and 2 here + // MLP3 function definitions + MLP3::MLP3(int input_size, int hidden_size, int output_size) { input_size_ = input_size; hidden_size_ = hidden_size; diff --git a/Project2-Character-Recognition/character_recognition/mlp.h b/Project2-Character-Recognition/character_recognition/mlp.h index 79eb095..d2d47e7 100644 --- a/Project2-Character-Recognition/character_recognition/mlp.h +++ b/Project2-Character-Recognition/character_recognition/mlp.h @@ -5,8 +5,6 @@ namespace CharacterRecognition { Common::PerformanceTimer& timer(); - - // TODO: implement required elements for MLP sections 1 and 2 here class MLP3 { public: diff --git a/Project2-Character-Recognition/src/main.cpp b/Project2-Character-Recognition/src/main.cpp index 34941bb..adde1dd 100644 --- a/Project2-Character-Recognition/src/main.cpp +++ b/Project2-Character-Recognition/src/main.cpp @@ -1,8 +1,8 @@ /** * @file main.cpp - * @brief Stream compaction test program - * @authors Kai Ninomiya - * @date 2015 + * @brief Character Recognition test program + * @authors Zheyuan Xie + * @date 2019 * @copyright University of Pennsylvania */ diff --git a/Project2-Stream-Compaction/README.md b/Project2-Stream-Compaction/README.md index 2c26d9f..9d3694f 100644 --- a/Project2-Stream-Compaction/README.md +++ b/Project2-Stream-Compaction/README.md @@ -34,7 +34,7 @@ The graphs below compare the runtime of different scan implementations. - Work efficient scan performs worse than naive scan, which is unexpected. This will be discussed later. - Another unexplained phenomenon is CPU scan with non-power-of-two array size has significantly better performance (even better than GPU) than power-of-two array size. It could be a bug in the test program. -### Extra Credit 5: Why is My GPU Approach So Slow +### Extra Credit: Why is My GPU Approach So Slow? The reason why work efficient scan is slower than expected is although the number of arithmetic operation is reduced, the kernel call is launching too much unnecessary threads. This effect has more influence on runtime when the array size is large. To resolve this, both the kernel code and calling code is altered so that only necessary number of threads are launched. The thread index is converted to the array index by multiplying stride length. diff --git a/Project2-Stream-Compaction/img/scan_perf_small.jpg b/Project2-Stream-Compaction/img/scan_perf_small.jpg index 8a66aaaf2eafa48afeae572abbaf6ad16c0ed572..7359584d796a3ab2bcc883d650ee00d088976057 100644 GIT binary patch literal 72889 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

Q?5vE|N#Y9s?c?xC!7RvhmB91_7W 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 b@L~PC!q%PXgZcm4-{N0d$QN!XzxMnOdb;f@ literal 106283 zcmeFa2Ut@}^DurWf(1cTL{R}LqM=FeL`9m2NC{Pll+YoR&`VUTAR-{3pdeDEO7G+< zBGRQRRe=Nn0ZC|ql>Z5qtM~Q2zw-UR@_gStJUM4~c6N7Wc4yA+?Cyd3j{0$zr@FtB zJpkzH0uTTIwgN140Kfo-=$Kl-8{OA1!#WtI-we~zlIfVf!U1{^zWZAk%t*)aEevAO zaRFOs<$%9*x`RK$d348q$}2%D0pJ6FrF4>;;k{tE|E3eb2tH|fKZ6eekS^NacG6`4 z5Zd+qdCCrHgW$d3h(sa19g!ZqYHGZaCnOYjkC`~R+adkDj{~%*;t2&s2{~TcT}n|( z0xS|>yaxcxwC4#)Nr@-lc%)JR;0gWrdKrNy4Bx}_rnF4p#YD&OjdrG=`J?mtlRvt^ zpZTMw`(6g!Rr()gvrc_24$uOhG#)pf)OXZ5fMt^>xSB3NPn`!?H)DX^Wf~rJ2)G8Y zY~8wb+g6rs+gR9lY~R7o!N$VE#<73T9*#YG_Or8WUf&*HBY(Zq?cA|rC+p5#tgO5C zva+)7rQKNfe$B%EpDBR)2f)4+umYt+#|O}}(=o8qQAa=~w^LuyK|w0F&~08I!L*A3 z>@|#An3%V2+rESDuZeU3J;V3JT>u>;9Roch{T61Xty>saq`*XW2F4@1CAOT>x8B3& zc}0?GZ**$WX?_6?gBLbZ(q31))R+Zh48MF_wDp$R_p~_d=$Tj}JN1`oC|S;K*f;`T za;>4qXM&(1bU*!iY22&c$)$|4#y;$_vAyq&_{{Rx{kRo5O%n&dn+aJJO#@S_>;OGI zNG;=68=2}LVuD#9RyeyHtS>upujThAot+AS#Ik)TRKz$XQLQx z-9W;kC}VMRWYz`E9%N33=KOJTPShArxJ`cr-}ASOWj$P>MW?Y840&C zu&!SIz>{$Ncq6%FKsF)t&7Kqe;TqMt9k&WwI*nU_+9pn0xEt(Dtzp zvo@~DW&NL!*`p7J9tgXnSeh_ndXo+!V5L$akwc$U;sfE+al;bPh$wfhcfh^=!ExMy z8|ClHs6a=>(j9Um^7HZvGAUC6r0S;ci!U_fj6Zt(~en4B47^L_W`l4oJ> zV54P${?8+|L#Av7cfE*xFfprYTf_a>{H2 z#)Bd1Uzo41Hmh#{9x%jcf6RAWRcJo8u0w){6q{FSaP|6M5u(dza3cu-(%5 z`$qSv0QK#%k?`wNmo^j}eR1<+62+R&*oi~zhFSww3fj8Lo{wkc=IpBk8aPGjA?M?FTJ2CMC%_kmg^v1HPA_Rru0QSVzXOQ^{~ah{70->JgI{RNx-JKt>r}H*duNhL;RG_4}qJE6!PupW5DKzfgop8z5f@ z4G;l7AeZyRhD(h#ltxSpW=saOO5eLHv1P7QeK|O- z&~N;5%49kyWntavc)5hr>$2qQhN%LayF>0EVC$io3vKS58RpN2gvAC!3O>lZ+_nza zT&)j_(+`CuMD?vGRwz7Cd3)%c)AD{?7;$v$$(_$P_Qg;3;-qgWUH0bvglHQb!7L{2 z66A&JO{@rA`S5`5kl!)gRk=`=q(pmx1>}_9<1y{A+Kicaz3i7=LZd3}lLT&DhI9Ho z)EXoD7)AR6SVxAEJpIfj#L(Z_@J0N&B`@q5S z^~|9e-=+;7Dv$!33Gp?0z0XY4k&*4ZbQJc;#nBu$)~4r@&;RJLEGxrLQ@lg`U}bc^ zSqcv|kFL}l%)Lnd029ebPTICJx346`ZPg;Cv#Vxx4%F_4qou;r?~`*6M?XeZ903{;S&{*0`u#Q=1nL` zMEbvR$rqd#@m6CzL1t1K9rI>4WY;aja+-OTmD8KP1Xym|z&KHXYwKr+*%+AFY@<-w#+TU?Q=tkd09vW9eY(>97r$67LO+Qe>?~Cj9Ez9IV zo#RPP%Mh-J6ZVg5A7##3`? z0E-Cnr2@`1d)C|MMR?wMQh{eqT5x#C#CQ|i#yEHKQZoM(F0x~%Qhvs=Qe9loH7d|g zo~Hr@23eLFRG_^sp>)@d#FHKq(@|*~9i+~+QYzq>Ru{e4gU>eg5aoS0ll<|CKcUPkP{QvA z+;?1sHI=}7+x$4Tr{m94fe})FHD;8&yua+FYe>Cdo}=T0A8x(`v>3)a9t@m9?fD~G zC5dE+6wu+CSX^1-=^UK@WD;IkOTXv*v6z`htE@W)XIZaBx#W#(WVhKqS}<-uob3`M z&9kwAQQ#93RlMQozsgNfLdT>aVwaYZc|DI^`4GlumbrkxFoX(`fcD{eT3})|M`tY~ zBQDvuOG;i+_u3J5pt7p4nd0&ex9(%IZV~!ehEF8_XpChvqQ8cd{q4%M&m!NmgXLG2 z;4#w#ji}fxNoB$o%}_Ka>=)|!!U_Nv-E8*4WqFXWCMj=6pBiDS{baiuN&9VdQmyT zf+vh?k_zNSb=cOHN3YF$q5Ea}Fn$S*&2E_0rr|g$V0^ZaBVr*;rZj4@2EOiQqyC;z znsj)8fna;-TV0POq!x>D4QYxwv{LceCV`md5H9$ZRD0SLR=wZ7nR!2j9Jz z1CSn|4h>a}P8}XoH!mnRdOcvFX4(ZXk}2BzN3V^M#;_F0o1qvNCKE%J(jbg~GjvL6 zIO~X_)@7#41_fO<_dIj>ufEkB4!<7xwb_lpaZ2wpI6fAX7Lz^ny2mY!+4SOPV}-lH zMfnc-81un_viX$_%1tuE_7diO-Krc)R6r;9xWLx>gteU7!3`;Jcm|^aZZvSJtwn6C zS@EOr`-mi9C5`$IL8Kpc8>CoW}@LygF(#Lw1~(NO|<`;KL-x_QfxvkOMk z79G0)iX5G;`HFG8*VEEMV)%7p;$Z7Zr-Mm5msN6FPV=8v67bKpNM}9RozFd-vUGDc{?w;I4*89Cebt+3ikoRz@V*QD(I(LV zu*1X4$sMKVgYxh}fl-?G0l46eGPFS=T{khb-BAdHyN??!fflAc)m*)3akkC8hED!8 zjMGjiS{_>R*D?`a=dIlkM(U3o%j60Hb& zQSkOB$Gd;xSkD9Hgmm`?(>ZCFY91)}?@WM9+Ianl7&v(A{)nh~xvTvdaYy|bIcMYQ z{UhbP1IqVDMBUBx%#R2t$3KfcZR_IjO%PwD1Q=+ZRs*R4{Xqa=V8_dAhxD;IiTpr| zZeE&R?*9Ti?fS2Hr@icqVD2alegjup+y1ytyV~*o4sPJ>irR!<@OM3F@B@9jFTxgu z^g3gWvZiscN#q5G3*O&*1uaZN2A?#tfpZA^uf_bOS|iZi^t);eZC$^@FL>FWG^3TU zdF`_GLVB1uBEZH4d#IDU!*}tq(h>|nnoc88D5RS!(%s=(7MAZRG!lM-@B9uoaB^_` zIbp~51dz5L_%vN%nEOh@H+K`=_vfY_9otg@!4y~U4m!}li|!jF^+hGreya6{5<_i9OvlE+{{=9ut zE*gMV$`1$S4~(A>e!%`T8-TlyE3IgnrDd`~`ncP9|3zzUQ8Y*CCWW-F{-ZyEz`yiI z;Pj7v`;`oXAKh{@JCnDolP$vA*!3JuvFLuOXUk?92;L3;m^UNZXMU=S*})6xf$k4 zMc{iE?9R|Ho8hl|$G#Z`S1>lQXv+#;JM^YSVx-{%Y_!)BO;w(NKPxc!0RWz#1OU)M zzaMnC|KpJV$07fZL;fF!{67x)e;o4vIOP9v$p7Pz|HmQ!k3;?+hx|Vd`F|Yp|MxiL zzs`@3fHPnKumpeLj2WC61E&Bx(1~pWx}p=@YX>x{3Q+dx%Sjoe&3< zq5dA$wk`-1uMGn9{HX9P)L{5{o$OTjOk{LV=z6Fj9G$cRy%2_h=Z$OwU2GNX_@Ju1 z%KnP}ZXRw3lr^uvo2$FGqQ45?X5orpmj^WVwVo94g~H$ZqJeY|WD>b?kf z6#w_^cD6tAdVnshO$O|2#SyLuHxSJmY#WImRe5~hg83uMFU0*w-fYnC6@bn2d-U%u zPeTM5Ry>2W^`X_NeMW`vjI4%)gp8WTDK%+%2@M%3i8E5CrKQxQ6y)UPWlqSP_?}1G z-5X`?Zi}Gh0ZS2ca6jOYnz#S>q-RRqg(vJd!I)NdPJ ze?bL1z8$#s@gE`6^k-A{T29{Ja!J6q9&U*6{1$R`;@#|Diq^KYRVNibZ);zK9p5*g z(|=p~UkmjES4w_m`!BqFMe|15qx`JB5T_i#-tk?F|6E)Am+ipc$+LB|c6UI421J}s z9OOrwrfOeV6aOpMn`u9(<#%*Y*J;5YMn?6!G5F{Cj|Bdaz&{fBM*{yy;2#P6KO})a zrzr?`aA@HNPC|Y4}b1Jwv_R|R-dO8N$2_7b92JlAjO-Ikb&IoJ)kMNw*XWC;89^u(58J)_^ z@%04FN2z@_Uj)3aE()qi8^$~>w)K7~b4DmOtwfg7$PU%eJ-+p5*tYHa4_v#iu9049 z+ygttg`XhMPVpdouE%{n$@6ax^2lqMI{M#wkX`xa-KVwV3fg8)0kwikUpGL`$X?ecAh>>m&bZ z4g(vnMJWMkwX6GL3w%@P%!G>59gYI3<_I z8s1u>?-AG2Rs6GZqHiGanvLNl;o}93M(*=-bD|klRngWJSGdeFy&KtgdD+_pLarEw z7l{i{JVN0CV}`Xo$|cXpf%AS`f=fh3Ts|M)^GVHfu!mvg-@2v=*hy#ZeDAcz z%>tgUyR}~MpEMh}1pp9jp(p!u+r^+$0#rb7ZdtFZI3RvsQo_DO`K%z1zO2=m8xZvU zgLffI5jw3pt)>NYM|C31-fA;0oV(lZr8w@UYhNp+6!82nyS?Z|#thP~kZFtkLvl3|by7UOSgFG97B( zr-})%yJ6NtlSBhe5|Cm%;*+NlpzKhGt|~_agod|>(Yb$HNNGF zh${6&Y~1ki=&M36uO#_iQtf~YtmU>gobM^y*L&%1tH}wm1nE0_W_SANsoNN*NohCx z=PTIcaAhSc7iI+9)WzdcL*v)`3%2#-wY)LEu#M?Xj(%wKhHiKkt=%@8Eic*M?L$n! zW7`{o;v#oX!eAU=cLOAhMcs%QlL57l>b*mBMT1K}x9&?t#hg5p_JG3Zvl}X8{DDIO z`g#1BCb-RgiWhpkwlk+GeOhtJE&JTC=!eR17bGl7Ju>r*hV6!MYphM78q?EnRT}V5 zp@pMlqmG5%(_1`nbCzH4qmcO7IBaKB)>|}G1U3pIG{x2SClq2gmg_AQZQcA~0($55 z`}DGN;fW;qoIqU(V+pKYTPJ@&F@>OqpD)~(7Lc{z$Kt|w|4_KsmOiz@Bj>eSIqcSQ zb2lwDs0922!PqB`ipjBA&J{=dLwvoRGE4X$jC#PthRiXY?RhIDB9W)0PsUqGULG0xjMuwfWaRLGZHiJsG{cFXa9+=hwN0Nf zKUI5ED||Oz(?LL_=ZxL)W_$nbZwUz#$W>!V6Gp6d6{pt1{5q>wmE@nXZz>hvg&O>J9hcW7NTROil3w>ZO> z{PrA#UW)_L@EMPVtf#QO!f-=w6C7{}IPioJZV|5;EheI#nU#6U&)O%5v%$6aj8IVg zrNb#7ShDZjsZEF92XEAo#It~fkR4AtQwv<>ANU0-d$C-j~UB@+snsnfuDQ0KbK%f9`xRD zYvQnj#=#S*z=KdEDR-bSt)#eykQw2%q91ryG(UrvKd^fVw$z|yX7sdqnhI1CNs#B@ zIR!s6<{AY|*FQ@vTDNhzxlE0&(d7I~qULfxEs zlDSr~Q}JT1qWPkqKUQ7E<5|&0YJ0^6E{hRrlxx{}KCFS~ARA#A2o;d69d@rJrUfj1 zsI9?E*5YT39r>ly_s2f?K%b#?OB%gBq+UEcJ=BVDlQfz2s5Xxhf}b3`XuP{)LKk0h zI*-tBs6NR!KtB284JzQ<*cm1_PvK}Z%J!2^8zzWiy+Y z9lJlh8hZUXM94!wdyMm0hnTXeGE9b)KpGg3>6CW~)g&CIJkFajKd0koTQDt>IXXX5 z$&`KCuvbmQ=Oe{DwCN}eLu}RcyU>jhnolc^eo8*>w36EVh%PW!Y|%b=>y8KO7>mw}5N&hrPFzUg(MW z(mC%|#m1L|RtJxfkGo<$TR&WiCVWVJU<7?OT}@f|=n6YQ5XZ6M$~vbWuVNSC++BG~ z+*Flr6(BDyZ^_peh(U&p$IbX_9t>SrP2qgsXuxwUfI#tLZd;`|;@!$qGc0DgVTtN> zggq||j~OgBZa>Z0L!QuBnB7m=OHMY;Ie?ksC9Oh96NG>kq4Kb{c=MOjeo|XuX)&sN z=dB*D!5&%~^$Y`iA#BimT+4ZRd!VDkHqRh^pLZ9I28jebCY{_Ps@L}AN77>1%~O@ z8-!gWLJ4CX)i_)Strz;0Q+Ky!y2M8t?6~iXVzoVTA!-CP4WXPHP*zAd9+QMt z3VuOEhfF>8n$Xr0KD?bg-d$f%-0Z1RD{@=09>BErFue4aby#dL6Rkx?mIC@gBz?ypxUIh@ zpiqsF5^pv9X0`l^sQ4U~e6Rm9^GEaJI84O~QCKrPgFW;T1xc|DXl+wOV*79@sYGPnW@Q?Qs@I63I{V0OxY&_sCZXDXnojFrRQOirfk2x5Z<@M+D>k4m#4 zg_N$aW%Jvphi=oa__!hfFKgg98{9}tBd(@VtUjeYj2(62*Q{B8o^V=ghjMfqhNb(g z-%hFH?z@Tub@<4I5gZ|cnU)cAlKo%A>3mqc8IRVU3FnGiDS#{jX1byl zVf!to4$hJ3e>8UqlvU*LG+sJ zr$*!RstNld5}FQ0HgNp*%2SkM6+0MQv2VdE-K2kAn+M67s zn5qdk>82p8Omn+}JBe3_aX4gq&_Zix>qe3;w+idKi!NM!lU6mH9(Q(2ABhj^JF@}h zTsWA}5T3<#w1PDd7eIl*4ffppK5utyP{A1}fV5aozr#4AC>FkBQb zu|LS|G!;0ho_P5Dpah$=y}kx)d#PQ#9Q?YOs-U}RZjbUJE=UhT)PWH=MpzUPrLotP zyzgz-ID!!lnN~!-)=(H}%A%~2!120FX0*uls3E`ku*43de3QNjk3uRS zahz0{JA|GR_1U4TgV$)%FS)1V5P(K_B9DFQYGt{5N7dQW$mB7I7){p#!9S; zxyHu(g2t%3P?#7U@~*6KX>?RrqTC^vD4q%=gQL15PzltCUI+L2q;p*)jFWWHbf9|M zX|wrPe0haOjMG9pdAo$3eIW@ij^`u}kS1j@Aw(u+LTb9A-viO*t)+7s`%X#g2$>u! z+>qqgn1vUusER2U!Ju*hv4k6)_yjm1D#=14`Sr?9)rm82Lvs@JhsZWq1<^kq($|QH z)S1IaD+E6_aM)myZgwi(e25W3ip=MU4zBMI!mn=)k)K-_HZLuNK#Ixm-V^JNwUvCu zixh-mXNUM=9A=6K>uiyv)F~$#m5I2gXeKiO6S$w#eQJA=lYe1j)5k_LlNb___&9@t zlEZdBM&>PN7rL5LUQ_zn-EE)7GlXCHLfS39Z*t7KYCKP=6`cr88Fj(SJtV!za#ln< z#>8PO1MFQcI8>SP?=Ib*bziIKbw*WBQt2ZJ<1(HOo=!8gFsQN8mnysSq#f<RGd$MTq8 zj_ncWxfu(ILw6VkgfFO*QhWJJY!bNIzD!>kDBN~CzyvuJE)+#hhQw05DS9r0h1i5R zR3Su-W0+!aLVKOhdFy=4vC}eY9L9l#@9g3Fb_wIy@Y)GWLQ}L)E}2K0)Q{ge732OH zM?YZN!#R_kc^PTit#`^iY9s4m8aZXK(dserAu);=nFW3+!MizBKfZBpc|^HIwTef+ z|Fk`mH(xNq_O9SPK5{)2JDwMGiqJVlUd6H25v|wt&L)`j+_RK>C{R9rq#P3Y<>V8A zNTI^*g)-!^rj7ypJ@J8jy3?2DA)ttsdi}LE^AD-J_S?4O3p~gp_W`=L(?7 zuKrYDE)2A@hhSrb+vo-HWXxQh_>6q65^0^#xh99lnD%~*?ZH$<%_w>@MJ`9&yCAvo z>Jbi97XRESG-Nt{EVka0R88Qr(pU+#DPB)_*mYE!(eUC4d+aOHwp}sc=SBLyC& zrlxRy$;wGM=usz%u|+`ofJ5S_h0gsgh}cIGFYB`gBLmI`cs802q>#wOS)!jc_LhvU z+WG#n5f@nUp1r#muYaItXF1gJs^zt|K<*;^eWRId7L+t8c5`w{t~&F&YMFPailvS5 z-O*0HB1la)>}FqVufxXKVg4xc;KG-jCMqC`kyD=VCKmBT`#>d~lHH!ym&7~D zCXpaH5}X_In$!+`6pRIrS6BGpQe-+J^EH(NJMO(b^L#(w4a8kZ`OqE>`+HElR%I?I z3USg4p$D~5PiBkfWHYRho+qX^n(iEcek9sFqx|QcYqZnnzn_B{rL`ry<2&Qs(y9i^ zj!A#AN1xv#rJwErf$fDox>7YRVPqed>y%iZ!jzUVq8?=JRr{g(%B$$=4ar`cZ1@Rc zZfpI;5{q`f3pe#D{McU+WOh`Ig^PWjqnu@d!8Ha@AxOOl{ciCin4-k`$FEoqZ#&4Y z-*umy0o^^G{d-qoArI*z*gYH`q9vi?GVR=h3Z)C;@Ewr`CUN}7dHQ+p#ThH7e7H^N zfUK~<2q~b&3m!?O*tt;bx`H#(1Ew?x2bKpLj82G@`-y1Vt3ez7sFC8)o6GuRSl+u4 zru>4aM2vVAs%7=bz-dr9)Ty`dLv_$$$PPEvtsiffYjaB+^41Dl!MyWAm$%dzTHyPO ze26MO*lZiaJe?wl58#u4`?n&<+ z*}8@9uAtv|yVXVir-3PNFiemZSEw+l2?5SMx3MMhma5}3%I_tj_5@~M-2Z_+XWeIN zFfJ1kUP-Da=zw1b(i|j?xW$r`xbM4;PW7D+Eo9!il-rrh`YsnE2EN66o`!l67uwb% zi#5|`YoVIwiqlFKFZrn}$0Bi!Rv}MA)hLK8Ec0XKBB6||nZehY3H_eix?;u|$IXRe zB>e*)p}J;d9r-cYD#UR8GLdqR(U9MraH3<$0PnJ)I5B0 zE2^DeyR4jZSK|eXzM3nieBAjzOp;P2$YXmi!s0_61L&JN>vb^rzTxC6Roho8PI{df zJ`6=t0_El6m0lM{{2~`thdsK<;>)`-SB-)(+4d!vV6m}hsI+#M4QuYJ0?dpP-fRC zL*vO99U#Fs|I)na5z^6;Z)Bbrv73&mN_TACzqbEj1-sP1hv zvrNG*B-((LMAZ>WEHvsZ63$x47cf3+YuPQKceeKRr;#F93h1{=2z7Z2m4Hh6+53Zmk8hyAlA?H~1 zwr4Bfi?-4lvdJ523somAkzREzu^pZ5uXam_`#d^2zS`#7;}w*h7IDY*xy15rxNcHR zpmTD?oPd80Vu}j1vMDtYG0cyoF`}l#p40o--@Td9OCBSFLvH1| zNx0;Dbcaeste9w5aKkz`{*A@$3t5FH?(?mueHcq5ndWl#V8o$vC}eY#$R{q{`iEi} z8LbKf%2n9{oU*HLwY|CpY#erSaWjvP8-kzK2`uD!l>?g;Z!VO<;OY~m6l(JklZU0w zMz#(5#J#I_sj{?`HSNsW&5h=KzsC8wVi2akLQw-PUKt_b!2;<@=KFw%)=@;tY>Hv^ zW4Fn&M|nUik)F$SmoW!OMD zyq6X>o0C>i?f2Q?iF9Ex$d;k&K9L7eoR=^Owk?}>M#kvXK!baIvIQ0c!RC6=YyGqF)52EH{}>yLkuenxcwxlQ`NV)>WauE58lh# z2d_o+LU)?I=gfr&I4xp8Uw-GCF^Eg35vi~XwbP3u%&?e~-aon@#+}g?BlNn=&;yRw5eJp^y(ZyIL^(--t)*4Zip%FjtSnaF`u`V%RqofV^lG+ z?$VJw9f2B2Sd7@ai}`)n#@bftZVrR|>FY5LBL}XE|B+HUKWxIGM;e#}S0scfZtzfR z3jDqKtcOc{u3N6-s+0&zKG*Biu18Pbt{)>+d0}V7Sw+J$23N5+r?QfuBEijWxWhK$ zJ=JxSCdP`4UdPHSD#A5<%a`w?YZSye9AadaY_USGKj)-#WnrPXf+FVoh;qDfB(?@F z3Lk1$O+t9G^@}~+URoi}OMa&};%Pc)CNw1^G!hbH zDt~c>>P0n;?)4+vHnvvgKnX&p`$|*VJH?0z&FcjT6xk@f8{LGK^|+UR4CwFbx^b;Y zJ@y{!BV%=hV{}gn==6afGYg0{0xi*#`kU<~<|EE>T!&h-ho-TSb$JG_iXss9xe|Be zaZ__zYdJ31PVgmqI@DrXF(J10S=RI*?zX3Nv6JF(Pr9VVw#IG#kGu0qrC+S-eEhFPj%-OHRU$SHR8%wZo~xg9nGvahLwY#)w>*Z zq9xIA3N21C3?Q^tKYpa|ygoZtp0vI5U@qC_tvZj80ZjPl*gnX$YSI(Ja0=nhKFTQz zdCaS>_V&3t|25C`4L!JVeah+?p0eNgu3t8sB*ivixz|aeg;a^jSRmd7}|VGB^u| zY=a*q>b2Kv_U(+Xx^!>GSO0(+Z>3p`f{McNF9c2Xk29=1qZ(8I$zj9ofsZ0hn&2`X z-;59LNp}jp*u__=6G1+G+}Oc4@@&7fnZ5g+;R~K?^~1HE#?}QCQ(`m~P*IMavj{v#RsxyXoZN)sEE1eH);#9E5!AmF^y1@2`L(TV~wZzl0~G}v-W9r-oks~c26 z401mJ{1~IB)ElV)O?|kKQkr!9Uv$}hC3PVB?)+CIzi3>zO97fK?N~8L1ep+Ri zT5tR4(@w}4195|W*{qr>Y2X4Bp)ER=Usbah^a^u)3 z!SFPF{RxEairpI8g+p7pgy>0(!93=M6JDoc+ojHQiGI#3b`v_6EWUKCP64K3CCt?+ ztSzW>vNl9jm@?aFY65nWI9wfRq6Zu^jOAP;;zviDE|y-8i`p-AR_EB^J=gRxyAK~cS*ELS(MSU+Cg3!A zmYje-EC2rH=R$C@9lz~x)MKcGbi^gT9=9@!pxhvz_xv&VE`gNGpHe3ewL}fsgEL$V zc8Ie#m0+Z34KC-V54JPKx%X@xSjFmGlMJ0v;JF1iEfnKng*0G}W_soYbjj?8o*{-$ z80xg^wC2_t-xfK-8*`lVL*;sl`b?{`H7sMYHuMlIk(kw1p(xRlTGEqZSl>Ipv#hRK z=MZ1+p0>75p_hQx5C{0Ru-nSZRKNfnXAhqq;P6|E?SwB2LCLQ~Jx$R6CnmX&w5JN! zV^b*O`zmuWuaX175AG>Yf%zjY;T04C!T?ztoHuyxxCmp;2$*fJ&VN>2jK7u-#G7t& z*?=j3h)#`leq5Di$f5oh&XNDV+?t=0;NyBK=-x+EV0Bkn<3;7>DNrlUeUskblu`Bz zZDW5ex6-=kKISW3x+ivkgq9yxzc4H*shX5 zx3C8KcJNP)tVP0RIgfgE-HpVFAE}#vgwU?z>At7A@n-fFJ~Fx{c`e5iSrE`YIx6fR z{9tzPv7*ZKYJpbSK$iLS8bDQPtI7b*uk`d1jF>Kjg(OV!;Qi(-7 zmnK5I85;dIOmj{UV>>k|4}Mc&0k<9DEfvW8Z3p|M5&woE^IsWy6-=CLB)qFoMUZOb z3?)-d*y5*tT7R9-?)-`$koU+}K=1+U^pAbswI!Ksj!-Hm`S+PSH> zGTP>jL7hVN0BxJcPbK}u9Q=(Q=2Z>^PkS@QuX3N2d?6|A^=ftHy4imHxGOVT<#S-z z{mPA46{fLMU9}ID0}-j{Ty?Qrq=b5OYaGjD#jZC0@bPC&Kh^tpEt~s`HvZZMn4db% zUl{)z+5Mc9t;C}eP`-j&9~^7hEj@^OIr{nF#s$Vmt`_=4lG?S~^^k~P1^*GJr^2>w z`_(ov;j^%HQE|Zy&FjmDrSK5*qG zmh3j(`!S`%e5reMWTtc5zEJW~uWx`6O_oowXkt~P0BO4m{&eo1c2gvb^KpVgzX6$6Uj!y3~TEbu^cp`sj zNW-S=>W)js2mRS2FpRjiZYA&NBn}t>O-fHbPX)^Fk1f-Ah8O4kmgn#LEAJ77v}?Lc zO-gG%AmkECD05Y;dq%V&$cYzCA~4lI_lbSq$Mj=Qrcqe?p!#UWI_FFyb8nf2OLJ8+ zv^pX|OjWeL;XfGIE4fLPoDR8bZx%WjG<8$0fx%QyjYe)*XJ@1#+`6-%n zYRc{C0<7z4S=k3ci=pGq_ZAQFR^K%lYr4uUpM(C}4WkBZVoq|t=9mZb4j-qT<(fU+ zUiE&lFtt&>Y1<;(Xh`}SDcPhvgfIR9dalX~KnI+DmrY*b?{}tB`~OWp+8pMc1FPWp zueDC91GyQT8B&39O%9WPE0)|M*ulb8J(Ar;m<5Mca1*YqtI$=%wx?iOY2?hgx2Np+ z1OzJ$`4!@|?z4>w1;e&bWcr~q7y6;ot&|pUcopdrwSHeFYTb(p6hDHEO<3AeGIrWh z9$`LbfdjDtQ*dOX2Hvv7H;y-2{vVmw&dRfYPYP*5#DQqwxKK-(L>Hti9tqF= z8}$ME$qw{_J9L0&k^S!x_mWzuz}+obE9wCn7x8CeH#Ks5OUS z(Zm~lP*^>r#VNe{LGH8P-YVbP3 zL^fW_NiHMaW{u0y%_-` z;^1q93J6<`Q8J=VfO9|<3@)#N2>QIBoa_E&RNxr83{*_51)}*16<8JtxJmg4ddp>O zNy+Gx2#T>f`aX0J+)$D3N6HUEug5EcpYrtpF%yd@deF{Buw*_=3(s5tx?722T!$g+ za9e}J`XF>WXxD^NrpBp2Tr?cZwo;3kKKxfQ(6OC_MRd!XLj27QEBMk~5VsKQ)do!u z(DU451Y>A3o)Rj)wD>Lm9z9XwxTx=n&Y7+X70{S`KWH&*rF*zKQ5v67t<`lpi~Np+ zZf^4vWqTItPGtJyU79o8Jjtk>v-;w`3+;Y_y&{dm^e6AyT{<-xHg2Vy#GyV!u?vu$ z(CAryP$m!pHL8u!Ex9l7C~~rMI(@f>NpHB7ZA4zqBPf#N%uF&0Kbn+1;#4tk_27`G ztgbU|cm9`mr?CPL%H+FDJttb@!Tq2z3+hA{u5_ zdBym=o~H4JYWjm*X;KA2BQ+mMa%cQ*p1pMW#U*2ewy)|7L812LFr2Z+$yIEXe;7?FG%~ z6|5)d+N;i*sc1BVGU(nFJXrB+Z9LI$&qR1nWy&Gr$6%~=LN`_uQ(9J8YtVl|T5?dXuUjJ=eqlXY_`0@=UfFdK-_Ca5 zKxUj@LYXD9HHH{^fRvBo(J8J7D(q@Kntqtubk24%xp;ApN5raO>ojIg6>_~7rR(cP zztP?`E$8W!pz8meAQI^H2kwhg`Hf@P>h)~y!e?@sJ?j@kta$d=yeRF^1e6fj;0R!vWte7%-qON9Dh)ywOOyFT{W^-fv` z@xmNb8P$fX_4;F+~I9C~#xxZ|aJTNb7qLWpXWky8yOwe+RB8*_5imE9LA zN`CqJn7bBH%by1y%MqyhzoD0QIdd7(K?ved;>(?9aRVCNPvv}9663D)Ei;ZD^jq%@ zy?^QkxMqDGwXx%YSD)78$Jg??v#}+OY1bqkJ&f8JHPWz#C5zA0od_w!NLe}v{_c%k z_#f`x|6kF!|1w1I{MGH6EnyT#%F2{`ltyrJLZ8*ls=uGJKM-mX5brB^+$!`bTSUV9 zM#G%#1ND#zZ~;XZixx2ra5*0$r7O7;I=knhg+7w-Zq{*zFi5LdGoW^#}!W_ zTo{L$WXY?RJNmbdSUR4KIeuZM2Dn^?MT<_?TfCh^g~%&Zl(U>GkyFTs*O1haF5K{H z=a-I=Ba}lDe?N+|K|iomt^mL7Kg-kqE>~oKPUO@oKN$sj5Lv*H|KA;!%O0WvL7tRK zDsb!0zeCNDfGOCA%a3XwHjv)(_}%5bJDUZT_HWC`oh0b0wFg!_Ue=aoJO1XaqfSfo7~ng z4jBorL~a_WhK|2`tHX}KKI$^=OZAitpkme6r*7>sbKRhWEWO`L1VG#Z!GXlU4ap_qMW^B^+}MTdJ$QbUZzGg_(5Xx>k1qsy(Sq zGDS{Ga!Rl4sM^EmF9#nI3OL7~pTPuVoPn2j>&u}buRg4WfL5o1B&p{~mbY6C@uZDy z_-4rxTy3e!$SXMBEFrbQyVQNbDp=9c=&4@t(fT7P_8*SiS#;Ov+EPtoT@nEXm89=~ z0g%*jD8QM@`&wpillX^uiuvEG*Zd#&bT~2i*VG7I6lgl?SeHHavaYqniG$>HJZGil z=+*=5xrf?Lngl+&x9=XjSGx6d|k;>!?+nz!9Z3l_ccm`hE{RG*vl6z=dQivsY~|1CmPkH z_;?dozUs?v78z92bYMbuheY=^0V|DkFz}f}+;bgI)Xs?s(VgE^l`>2DP8FBKegDDc#AEYsbqv2RJu69Uf9+=y@Lr8cnAQ^DVobOy$|c`+B@Kd13RN>Ku~>;mZ~r zq5YjI_y7vC>(C!NIuRyu_HfG+lCl%rViN!56nWI~@d+&5t@76?uh_|8b$$jp1!Wyd zU4?@Ab5`LACv_k10h9M{B~mn6`|j$_ss?s^bl6f*oUeg6Q`-GS+HmgJJ$|~ihIXKP zRY=U9Zpxx@dp!ZKx~juDaO|j4O8sZeHjG#|6Sg+oxApB!bKTj6(Gxp0>7W%BzkWIN zlZ6&1`h7p+Nk@W`YSuy5r|AGwqZ0`>2MsUJ9IOWI8HwvHZWf@xi|MyMkK!_W3nXys z(TkB%cTymyueHO_rjO$}z6enp51{&!=JfDwNZyn{8{&AE5q(NS+wsWpoE%il`mV9l zgDVBooPCH}2Ob3_SO87)a>#;Fce32sZpD-&zA4>~d<~_mjx9f~HXk$q3y=UcrP=y? zk(R9}13GUK3+US^hBXAOk_EUVF+yEZ2AcfnOaGddxK(=}D5$mhLueMJ zK}%-($T7xoX05GaNGhXNY1)<^8&#+<=CSNrC#{xC3b?5cf3O@pP+T;=q9$*7^y=lg zOVDue(=;z23Tr2Qr*iVhTAor#SQB6)mG?==(x97?S6wY@e7hU7)VloO+KWP0j|p+~ z3!R`mf`CdBDyDnalv~diH8kTtd+~i>1V+Ocmx&|DnaVe7zq>wNpFLqbq+Gu=r!hy`V+zhBl4YrMH|`9PZb>u6s!r;2*xv zqBR=1$e!(b1JiDHO7(a?>CG+E3yNRe-wSQcXb zaX2&z3^0NZ!}nwUG5VssLLLC>_4I&)GN=Lqueg%{E=D+C5Qy=I#D8Ma)_U{qsOg=V z7sqr<)$>Hy90pk!`s;#doe;wn)3g>%mZXZRA&K_NNh!m@hI)+YyQ<{K9u&uY!HlS; z#00J=>s`zF_dI?2dirynv=%7Vc=vINRA{dzVz&UFI7v^mVTA zV{WCg80K73*-|^~twxkplhU^9VfVp;e$~%%8n0C(e@YCDkx8z3Wq!40YnOQQJC)ag zf8YfsH^^Dn_C{LUAy+SXU7cYGd8hj+ii57MIgt@#Jx+>I;!)C#pwBxA&^0mlnA+KV zNIJf8BZZWLZlRL?)$kXJ;n`mea!ZRYAJKj<{W47BI01z2|fYjrB>MODld^I{x)bpko!#HTw z*kkV339lFChSEMXg3h0R94`}j8ZOl@6EqtMt+h6=d>lJav5SqLVa zMI(V8ghs1_aax-oTJ67LrvRk+HzCU396}iXik<#^BF38Ie5ttyBLV!{qW_w_LJ!?w zL$f#NlV@J^hbMlq>EBHF4z)ZkYv*6gdxitegpzbqvOc}8=3%A264(&?oyvoHQS-XO zT>{5es@9@T7%_7-tXODNoih>xhtWRwRCA~<7>yE-V-Jg&O)oHCh7WqcjVO3w7|Fxk?{H09;>HgBt>&!s91GZ!!lnJ`;B z1&73=L60i4k7&*!d58c-m+36{&~Yh!mzj>Y<7b=pCliPL72!jAZe_q-SXvLcg>zQ!MFbXPyj2iV=nO(I%Qi|Ij}Ay(aC3_6uWAiEi8a*_RUaM z_Hnp6zn@J;;ta8PM%WFuLIZo5b4`ZB&bDDrV-oFL*4}q5;!wAARI|0rUdL3^;eenZ z(eI^%ezt3MvDFQU8cK0$`%XWKS4>vG*z>11N<(k=>b}w;W>&L=nLb4 zW%0lGu@%3)zkm*<9TwP??(m(;0-JbfSpc-q{omi+fAggaq@=Xd)o0=khsYt{_HdA< zs`TF;?aSruaFB3A$?f;ZI`o*1tnvPAVfoLlz$vWg$!yVV@r@dwPEb$lrOcZV0JpJn z;v8E0pkGz`pxsTj&@GQEC{E;z6i#QFpP1R!MYAkq9~F^1-HTT3ZH?L^IeyhkZk=d4 z2f2kan&mUw$N2u723#Vwh?@(t9-13?603OIDU}T5q+frs0(u|q#LyP*aqwr?1(weR z*x`Zy^X2g0Jn-U!G5DWWDTF~V>(Ye3Xh7-Vc~aImt^U8b{{EW_7BS*hqkmoNCtocT zg1Zzv8j{HkSiCQ8p@!;Uvh%2Op&n&$-YX6WV)*MaZD!`C;5`&3mo{)#SZGAz<{X9L zI~9xT@^`9x2WppL9{Qy4NqT?dwR-}vZzU&6@6g7kwelr)Orqxt(=wa{t)i+oFmr7UG*;FXpfK8 zM#^=`BmL^!S4E3i*vSS!n5aZ{{B0v^221^Q|K?EVIc^$^cKUEYFR7fGZ$EcQosAaV za_#6Ue24*{o|mMGPlB~d%R+j!Lkzu4#a^N$>4g<}p3v-P$I#NFJrIq2KQH7zMV)_K zgv(u;Lo~Rv3I*DJZPFXW3Ra}DFk;Rk>#O?xdq%W5=!T{GW#imj;QiO0*d+APad@H- z{^m}!e#di)i|{+!!_TsoI$@c{&Aak<$qNQ)W3u+N4{gGp+lq;9Jw$&wG{AKK7!}-2 zPbeBm_L}CPq|{d@%x%weLn;vC;L5MpZmRlCYVPIM!lTI}thtF8;lW*@ZU#Z|RQFC5 zb<8b+Gy&HRCpQ;Cw%64hX=kfWUzwoVnPTT~z|{)1A*$!WLc}m)x*5>aP?R;`x|>~9 zQPFP|V<)+XwAjCz1AexcFz@5S6e}_NI)zrle+s^6z3oG;0OnQaoqY*O_}M@IJMSpKe@cTNq8N6?#7QwB;Ck)kg!~_zknBb$Q6<6liZVWyipPY8#?}d-P_55bvVRjOc){a=SSk<5OM&9l6)ZB8Fh^;ho;?qx6hh56wSO&E z@c^$r=%lnzc;Eumi*4jM?1yV5WP@Vtm&{+QU4OoU4#kMIH~Nqp9wuRaP-+TqR{FJC zmV+YS6FQ{c&mmQS(pmQan#e^*?5<_qcdF+R6vsBAy3j$0`5x<*I?)%d09uWa@h*De zC8nZ~B%geIo-;l}$7x`OV?j9`8poDzg#@i^R$8}Rltf)pSzzskb9}v)(;5T!5px`F zXDVCTtE#5gJ5Zye3^1|NW!1Reg1TqW0OQ-y@Pw< zzkvEicQ5PUDt$ZKs?-$HFbqL++#SsT~)03hF5l9MZ`(~pC+)A z)v=opE>R~1b1?jV*y`hzY|5DR7()7&2n&GLLRs@KEbqQ zPBwpS7`tEA(3jb?i3%D-PDg+CRBdYG#F;gtr^lA*B){!NaaPoab63ZE`r;paZCOCm zD*o3^^6v-pFo+`9(dXbhwHyOS#0xJ0@R?C{iV$bNKbog%z)~R%y&wa*L(X&N+rw|g zt>!)i^Os*f2Uqz4B8PpaLU?Zu+|xLrF}n?qYX)X}OYML%L;8#7Dh6k_t7DvJC95ul z%e7!M4KF?*xzVpk3}P#s4jV#vo+`_MG~f-f9`8D@cIPSN0|9mf85nabqV&~~Zy;k@ z(sokZDRCL#3Has!MGO7kVqkM128Qo4U-pzX=X33w`t zMVB=u5|Ua5@9q)iCEtvfg447HVZWVLaqsVS$5yJNGVmev795SkhcNuoMw+ri>_wpT=yq+*u zWgIS9McxQ~skVm%sWIQ!pQHs^DTo++x|mSP`lAM{D-V!Ui#j{+qEN#m_w;9w9R}Hfl1iZvT}XSfdMP+3;p&S#aNJ`Y{~DpPXmpFr`X3zB|gQ zUo}vi9nZ4N<{G*%ZAW{TqQ5kfY=_4t?5qq~H&pf)&ecQ)pOJZ2d5?ky3f0R0)fa_R zEIhZT$<>8$W6Q#~mIYGj6VbZ^6b=!{qd(+<{MpZCxsun~4(2E~et)7iLV)^7fP;;b zz~n@ytMgG5(%}>Y!rXrAs)nNBd?%Ae7?nxHF#!zaVddqa0snZdwFV!fFy>I-A~5Mn z(ledG?^G((hy3YVBW@4+7w=fSg+!8VmAvbn)OgGe47*6kr~fNhR_A7rHI=U*U5D^a7OhSOBz!$%PMk8esVT zIBf?8Y5%`aSU3J#ev;eYVumKlywfxz*eKo+8bo~<&h*1Mh#-L;wbLtXkE-KB(-&Ff zDSn!`Defqxta~UJsS*i92O~({2%ui>q$)7wAb5>oSh6NDh$C3Jm%?ZoXKC5KipjVn1j?8Cmh`oVbgP9wIq5nSb(J zqgId57?{~9dU!N-G&%ipec(Xpp=M0;kJ2PdL|!jHK`f~Z{`otVk{Gl50`j-DXo@HW zca;D&A^12{<3~xTR3G}sPv`#!m2hBp<(>C2>lbI1*cC9tJM&xl&cP-`jw}FNeC<1+ zD^VCk7Jv`sIjifG4)6`dPy?Vv65N<;1-Bu2AwNNO{FG?EB zq^I*Ghw$a`FPi!-|N->(KaV* z1VL4wO9iQ=qjE`+1r(7kX%3F!%_7Pw6iKEp=wfIN?#Q*|aV#-K^Q-E;nLDetbqec1 z7Xj2ZdbjlI%?T{w_%%Uis8Iu=1^hfM=R<3RzBq&mlJt2sFDuS6Uo&(88Ygl7=yxjf z(n0-2_5K#goEs|K7?+Fgu0}^QefLY+wp8{2UA5Rd;<_K=6jwNOsQNy>5G{KP$Z=X` zd*Yyfvt2He-Y?;?hpq;cDxBd%oSrMFmURV9Qnmbt6vkDE^7P?&^llqT@wXF;M8=nJ z2H%q9W~|<{oYRPg6`1*73q&11N5H-%$5ZS;7qs&RRaoWQ-7AuB*~;x(u$BmIDhYh@ z&w?xDrCAbmbB3!<9&jeRI$5IkEKUL&g}}OZOPN`OJDP1aeG^ctW9_4q$K{VGT5Ud# zItRyrwv)r*U?R5fxx+%Etl8ksP-(xbE_iqTbb#j_F@f3=(A|{N)c31Q(=NaEwe)2& zWijzx#EHy4CbM?O16;evPvYl=?hUXF?0i;~{1jPVUb?(KX*iCN1Ycm73!`xwv`ceH z>J~Lia?<@BI`TUk`GM0KSy`vT)2G4N|GEPhUNxbK%>$I~m2qXBR#`m1;{lXyVSPCn&Dn zn@==1Dw;U&(#!9-gL#i*dN5+kECv#k#)lr^fJ2uZUe?$=VSD7sARwskyY4b?bL?@l zt>=WU*RAl})sHiYuhIbScnf#iiHYPi5eNnUsN9!CAvQcEffjuZ5&G(&34|Q$+qg@Xw z_jLrEa}mP>yT}$+D?%mv;w$4ce-xD{6H1_s8Z-$2Ay#eGXS-bmNF#tI8AuG~%_?sG zHCYg4l{HFnU*Q(y|b0M!8+zuCQUB6){$gxv{J7f|rcmU8u7iFmhiBtW|Dv+}o6GT7F z8*`@BA@Z7RgBx@_bE$WaTR$vX5|1ftFejTpP{betwb8cMcdGP4iK}CKz5;KCNNL3x zNw}?p4lpONqLSemNDYzxjIbE4m%~)JYZh=rWi3b z{@h!1XRW^k+(d$=ss+J^P0|I2YaZQW-{Sm>04=291-c=*$rC6aPIC1S7q)**-AskQ zYR=wh{vMNuvI1*}2IQ-m^RPd9o~%uJ_b9uO5LkP~&pQ=8j*Q*@_KAP#+)Xuu%)9t? zu1w{Ktfy-sW#g5kV!YUWLeHI;(T}VSq5P0v?1+)sro?lT5?_8O^gg1_24sCiNQ%~w;GkmgC9#1$t zxg>S+j(K>WI&0a4!W1uIgDp}^s5@H15Z20QLl7*_9h<^B2OBy?M?RITJHOgV#Y<6;%-*`@YAQtO+)~uFb}gA2QwQ10X|Q zUk3N%*qH)EP$O{%{1t&0q+i#{>#|N-Qqlp~Ewh9FQD%Ah^WhuaS7-|D`$c@%jvuj= zEq}6LqV(uXkBM@}bfkd%$&j6U;*;I^@m5DPn`>*N7k2m~3!&~`5 z>HiaNrNjQW)Y|k8Vm$B1-x-4pm^|Uf!K$nN`4(0Ssm5Jz8_*Ai*{Z5*m2E_L4GBB@ z0>7M404xan-Hg82cPd`YX`xs$6FPmN^J15 zzQ7KDgMwb74vW!~02kR*6}|eDE<135+4`(!tbTZ?@Z?o+c&OVN)TMr<<9}^1zWj(>7%2Y=IzcvVV zn^N~GK*#i+rth<~=@=V??_!jF_NlIJ#>Wfk-H2>6J5q@$=%cV9(U7xlxPtjENW@{o zhbQ()=RSvM2X{i#AS$fCrE>;6CA2EYTT&RPHwsJXa$4jVsU)A(t1Cl{T2&;Ux^_0; zb#tq#t$lmkT++SoR4_!@G#@e0^rX6}f~G#uRm8gv@U(_F)rzUb%sBhlnV@?>tF|-_ zc*xl-?%QSw3q=ZNokr4zXFEI_2D})hc8Z-{tnv&k-LE>`?dVwky0QnzxjvH1V2yh- z?B7%7sNh7<*vq&!yA-pYqk6~Q`MN6d=EJa$6Nxv3TBovKegc6j4-KB8#L{l-_| z0#=rHI{OXyE1;VE@~;^P&_D9;Vmums2pTzZ)8blnvV^nG1Js@E zARb@vd9WFKJY5qHy+bi*MpxL~E*?KKw@8A4LIg)H#4==xE*`*xsEHcs!xR^BLT8{s zKdI4X*NM|ER<~z)-KqzMmp6mTmfng%5414k5hy}S(#eh1gpPT8_%V2U8-@N#F<5+A zrX=aI%J!EiW8W}Fbe>D*Q3$fJCjXFOi!oRas%YT6; zfxkWj2PT@w-SpW24ZyBxL6}EE^|14XM0|2TS6~0Ec@EN<@LMWP^fE@zOMNL?Ry!u5Z4L%dPIYYtj zU^BZsQ~9*|J@-AyGLr(%Y*(T84ZufPLAvF6hRKw{gp2GF6VOkruX!&E*lZR zj`Q2=x254j859&ZNgdl}W(E99NDrW1RDGu^NTfKzm)*@j&Hz=M&;yh7Ey3?p%&=%m zcB3xk!Z-!6dB1)FoIR9m#Jc1T|4>izS^yoy?t=GaT@Ui37tjjS&!TyI_zmrK`&RT#X`S$L5!Zox+O|AWXG5yyk zb5|$o@ipc5m0xNw1t=#o;9A|<$!0>|J{nJVmGB!H!qV24)hx_!zBRR!yf2Nv)Xk_| zxj$^}wG+KoWi9O(L5#p7<2skiZ-GUPH1hz`;x`8e*E78w1GVD8M?Xev!Rr~Lc;g++ zQ(1Hez0NYaIprHU98_dZD~$-Q&WC~--Qp!^UHg59EKWG{*| z>531lq#g3)lUG$MNRd29C|XEkV8~8wju_&EwZ^+Rc2bIYJ1bb_9jfb!(5Nfju%g`b z^9vXbk>RuE`V!X0;gYKOw4BTrfrQYuW~==lYTaqBeGNru&h@;0Rx|6$vWn`++?v{2 zWYg=5iU|&!e$3cWsTRarxMZM5%gGr3&O8UBzzmxO(`$nt#~`~Uj45zK#!q!f1x?1W z5FI0f`55}>HpJTzLTIXT#ypr`FlRwYW~-(V5M{48)N71+04QT!%s|NcCXE>fHK$1% zfg)ychLm7pQkDZnX`s@0O^eVabuAJ2qh`i<`@_(8lD%|V$c z0jF02=-GM(==XvTQpw*?m8ZPcKpKNPohh77&71=e0l^#YiVr5yqxIp_Gy9p3Ak29b z519V@gKfIXK^M<%Q4gnrmA&C;!4wD4iyUfpCsFI++1*U;9Omn-CXmZNigZHuW22vR z1|AIU=2k>M2x(ETazZ1Aq1Ld#orFwjaiNdG|DUAIXTj-yS)0wpDY_g2j9P}@i!*~SbYc3>=u#L z;i^sIi<4KdtWbhMyo_1tVp9L1DMC}WV_6Yt#LgmSs_TVZPi3d5!oQTC5l(wEL6-hb zl?0gVm3pxhme{$l{UrRZErkibnGUekQ=6|mz8iCcH(gqIVZAiR5ESWFa~xo< zVyl8P91gfrPo$zhuvI>@FOZ3wOr#8yPA1Oa5Yn^kG;d9ai%44!DRxTR0k%&=v=#lc zk0{3d^O*eK?HL9J+~nbm=0)_IPyVko4*&2KzsoXC6-z$jl7urj?Ke7QA6W<+J4S);4vOmKkxaQi~$;V|)6*>3np~is3Sp-KkV8avA z9Ba!6X>kSYhMc(xPw+xKCY@%N3@5tffOc1Qc<>8kj6bOK1aD+Ls$0Q+8;$Z0k;CLW z$RwopBuYfyo#l*rKg=v>Fpo5LdewzG0al4DQ`&NaM~5;&7@7u^qaOleLom(m#w)QaHnYTS%!nN2~CH+ zI-lQd%>A@XcbtJ@lUC#44y&yBQZj2|PEGALX-q2}zM!6;Gbm`JynDVu(tW7^ip58D zc0Tc_sbshL&luT3aZP}?APf=^LiXsF_wSH(1nxh^9;22hs%tG{9Toi8fnA<0}qj*w)>q zh6VGRI2=Gql6Pby*yL>GmDP=*w)J)OA?Uv6l5!8{1GHEf3rNzKi{|XhV+!dQnAzcd zLSTM?{Lq*32u&=K`2uBZ&(2Fs72Q{%ujV_&fgyD@q4N=qQXNf(gW@IKCsLM$PQrj-}hS>E52kok=_C3Yx_e2F9%{ z%j&E}Jprm#9Dc8ndNxLY%1S(pmlD9(g-yyEhSE!64XQ`h__ZC}JdO_`!sfz__dX2w zj{{U=F5Wh|n35G;SSG6ov86rDwvJ#r5THNony)P0%{65=YgLJt5|-9ofjYAm2_2+g z;Qa=n0$S7v>Ef+k)IA&QM&lb?p;j12pT)WsFDCED(ZnSlIPo$?i+AVQz^|FazfxYT ziP1Q&0}>-*G`7jfnx1CHDIq(ng%(Wcn)n^nf!*p+6M$nX-MX%vq9(Tx@*bpz4dJ;E zjyDAx3<6s8kD+zJ#HBIbH2u9NdSc$l*;Mn@Vk^sm4)?2~WOxhpm!OmsL#D^lZ=HW3 zFPLuw0P!q9kW@<1yU^%o>o#qtYo;cYT+s;ED>G*1-SymGe2n_0$7NG}op4dtCZW#V zwLIRDjpxj>8SdpcR90s+(|)ep{R1|V9DFVPlZw3&S9<1BpTn5v(W!nKMeSPddXeQG zfE^px67r+SqX{GQ@^>w`=#c#2nTa+Xm2MG{&Aze4(n(Z#I#B^S+l=k=(t5!%ypQ3_12zUQldeGI*ECxjz-FC(l&%BFZcsM{ zOwBpSgpw1YO36*X<|Sl8nfJ?^U)dLY>yR_R2@hmOiWD&0X;=wbDAM!&!2aySZ1A(m;j&d5IEz!9kTpW4T6dC=l z?J|nHSevp!O~@gwrmsE9ZFY9%pQ%)<nYwPMlrpDL|ZIMcf+Wm!Hw;3>}2^-1&DwxU zrnhWpOsnmMJ|UJz>GZ4-v=2z1NS`$oG`a8fyBe#-nN-uG6f9zg9fn)m+umCR({xU0 z*5R0fUcy~WAabOfLAW4RQ8SAuxL{mSZlRFn=0^LzSNz*CWKEj!iHI~IYSro`&2=B&!`mjJs zr0uXI7~WvkLaYDVMRApt+Qesg1Qn>y>;8bt@P59{(KntSUPYO%)ccw%z*jlQvx$`%;x#!x)0Tsv#C}Jhi1LLHY z>2R>taPYEt>-JMscBCq0?4H=o5L=^w#B6`abJ%oup!+bX7M3@r4A+!sWY<7ElJ-5!RvgnRYfTF_< zmq#}Y&(oki_0_%LqYh&V1_d6J>-|`bwydj92Xm{OKC@l#SND7z^>yb9>1tdu#@)<* z+Ga~Hns5@J3pO=cRQG?z@a@d~x)8H`m@L^gOUAWYe)znlKdsz<{}$1gQKlYcmOF8i zU)F>GS=-B`m~O|rO*r-qtQPlvHs`~=Rr|q$sFSyQ`!R!*mG$yPME{0#XLtbl5WppzNOzyay;u9d|iO_2T-cm zZhPC%3is=cuP@;BZLC?8SW0ZbpT1wa8-o}zLU&lM70|Cg)r7Wr%xF9`NvEoE?H8wu zXz5DIe|@v5%)rlNrQtuX$_ z_jH+)x(q#DA3K2-tjvW4TAh;$_u!K&#fe9A zUOUB+GzFR@%(bBimW9>Zb6PRGCBm?v2ZZxc^@Wbn=QQaOmxuSfy-Ad!Gf%rFQeMZZ zZtSJ60_p6pf{k~6Fra_j34(~F=zzK5(?uY963Z&Lv| z(_c!KRdz)M%vH;WRyp4`={u?AFZ0SOPoF(;#hSOpE$OOA_?eQ*_qg~u)J2dbB#UBB zv{MSKjX}k$XQenwVtYsL*j4w|oR$`{K{M?FE6>-1 zgXRORTO4$_mp5)%hXjAU)|4V7n7R#ntHLb`?{*wmMu&baA%wCXqU~Aq`aF-UrJaRNGOG0L^IrNxC2QbLMRJi~ajUm7Eh0JbKQs`S!R`B&`$f;X1uswoWesZrwG^zadrTo`(OlpTTobAtz(M3y^9_mK`H-&T zWgfa}G@-;lO)to|SJqll)mZ7gy}NWm1Ay8=z71c*D;iMO8|WI2D|V3x;<$v*b(=GAx{cLAk@ zdMcn0!ZoClA`uP1LtT>|`UKkU?x)-t;kuRA^*myMf=5SwM&$(Fix`DM`IO6Kexv&{y9H7K2urT zhbyE>*lhbXAKKnTA(pcdMKYhw%-Wn>&uU5ySxD&0KBYBHAag8op8y)H#=DY3Ukfz= zf(tA@gd0T5^EA6>nW1KtQT>}H%J;i1*bf{9ofqzwZGVa7Zex{$$Tw_P&cl;H2{$QL zL)>-)yI1AaST5*=Fv1M)T#OERJQY8^rNe#U{MIZ+u6_}Gix_cxo9nq(_#;>U5m<4m zy799c2OUOBQlh~jR39zXILz;ZpaZs%G%0JA`E7~Cz^JyH6#;U@q)K(;baDG(?*XkC z$;>LLSlYCyt>^qMOeO2K2K{EBO2pea;+kjA&A7tiKxaHm<@ z55ufb12gy4ae*LBcn8iPu+goAnAKsXa;>S{UE(~b7nEWAppxb;!S6EooR88O8G-j4 z=F~JTbAhU#F`#Xw*D~K;V?_leZj77}6d=_+YrjyXzvsAK(1}A0BbOaaO4g)^e2ARn z7c%e^FXqc1r?e{1;$6ATM<|i~ED2u$e z9omT+8M&O&sCKh(AM&K#GKr{|f1{Yb`8#@sr zneTPHyG!`W`SbCYOtoNd@3h`*_ResuROlcX6rhlDeKrg7{L7Na5oGDI!9Zn|RB_IjOTz`s(=@T;~+gf`&}Lj1*} zPovO$ioA90ir>sH`N;|Y`((MZXibbmjGyp;>98`mcs zpF*LVIdM4%oejOa$Ii;bYs}UMm)jFR?`ps9vg%-3B!PxJ#J<`^FxkmRnWI^^eBr%X zj|7~Z$7W@Ht%A?xbSP)sv85`%2y%!X>q`8f_~6Q%maX!sU)dsxf{fnMz$<4GS?LR8X;+66{U{k4+HW^{W&M2V4Y!Y$1!ItMx}jD=#x)!%g3 z-SCJ;@OGy@=`B_!dY@4v8oWbh?Pp0#?sCAmCV$N34-FTLQ`6?M#k!=3r}Q9q(J~}j%d#`2RhJpsor3q@mH%3pp^*OXdGv; zaBHL3bzU&-ZGci|_mb2F-XpG)+W`HE56K(Ga<^}w%TFcIdA_DV!h)xf4{NIi21Ub01?Qr8&Sga!1c&=>@gTAzh_~=Hq{^JHRX#q$9`-&^ z`Z0ylb9vQOgh@4y*sVa8lvYZ4>z3MO_O?BWPz0@^Gf@h^qq@-0h#i!$Di~eyNydGM zNl8gbl};~c<7OBZalR<0&oHOOM}guH`OD_9V-oXYFCRF`RHeUJ5tDB%!LP`^i0XlH z%H?K=RDR%j49BW+MOyzLlUi4qY4-EW^>QZ`1*oo1YXzwpKUR5z9PXEk*)np+8=g9Z z+tI3)z`03{9{Ao*F;nJa$A+fODhID8&@D_+)RJA?MDD(ZWP3sE$G_kne1hH6c}qYi z7O^{FKLvUW%sEsVdqa{39#n=dmsQ^Fm#VE6QDEon4`nkn-$}ex;l*ml||6I zp(bpVAYZ6u1(D_WXgB=RE#T$?*jZdhuz>^f--=zW~(C zJd$Cj&J=)pAH7((&QInqos0kYQYG)L8%z1(w_QOxXQB4j&!WbC*S)Afj#^vB@VLEn zVN1@ui32zIIrtEBZM?WFm6#(Z#Zw%Jo`ESK{Ohef!~Mgu#`egw_E$JWl#dqVtx|RE ze^7L;-Z7QSwz*;Ln?t(4wuvY)5r3`|-_+O8W(Bu#_T~;YQs=9#^43?$xe6JMw=l1$ zeGu<{^vL+qPIaPn^Ub6)s1X(+z~n>7sq>_qb74pFvxxb0sg)@!sq`HGq5ynJ z!9ienll}O}?k)G3r8x35O$W9cQP%ZW`r%t(^wXHJ*@~G?MP0aEW%`38+vm5h0^}JF zW!=&VD7$p{841ec*+*^22U3?T;h9N9c>94AimN8zrur2rxjPjOreC5X;dRQ~!A@Jc zJT2%DzM0QzSlz<*#3Krfp<9nPJIqJaci}S2eu8MxWh3Sm`!~@ldgUO)%ujmVXP$0t zm@n+RUzNDj#v32N+8g1Lu5|9xj&*1RB`2C zZ$3Ts;JP$R$8`1Ghgb06%bn*-A6-Mt{1;F7BiYIu{TF1AYX2;QboNg&NF$8;1&@vD z(2P*MImhMK&ZfGN7!0D?L=9^3`-^JL&YpFG2?}zkJ`C1~?Pfows6=aPE6bZV5r-&E z{e?h(mvAx(-M8bAF(~lnErPVHKfqB+7Ykz(PB0xB8Ca}66s*DU{?1YUg)jI&pl(!X z9+3{d-_WuUz}I;IYaGn}lD+x-3R6zQae~{m{n%ro%<5*L26&?L|s;sPJh%qrnEq79*}0<8NYnpj^(1S>oNtC0PuG_=Hh+30;7b0$uP19=0hs>W0EP^4x67H-WD}x zAB}0v+TiyCcA`}%3($A-5_Y0t^aou-PA3*5=%`&y*_$J~0pm*<{-N5zKi$Rl6O*(Q z=qm#1=|<|Xoo?HeyF-N$5;^$NON#df;(h4)1D6-LW)ro}e(A-V z=wy~}VB?glg~KYO~WTf;KEGSKIi6sIU|$U?V*>iD5$}O#m?Mz#xK%k@Y|F%c`V^Vc&>@j*s@fq zk%<`{T|3|L1^t8!*}zYoi^z)$z9t$*{z*49ROqRP-Y1@Z@bpeWYBOUH^5~%VBVq0{ zM_g)t^rQcN+bH)Q#!<=vUSHH-Iw^lT3GFPs)I2#Wf@+^t@B6fD|2_?t$9_7L` z#i;`;1=i|KL-f4Q5cbRn)KxGML zpp^83`0rGoOaAssWW6?m2k`0XhqPPNZYp2L*3oeHEmQkyqeqUfUwk`Hqc4G`X-*tz zG7Z({@pzF%w!N$PmRf{jM|?ir1Mt_^Qd7HV99YbrtSKBWziUNV^33mMCnQEIHA>Hg zewp3Qj!4po3A{`C+FvP4%{S`!$x(P}MY3w^Ua^T`#kGKijISq>Z`yqJurrhgO=j!3 zkvkQ56V-?#c%{KzCx+Es_25sMUx!^S%3_KHQoxZpG1lqUcwTnDD~Is;Z4-!m9bx^M zGn(j5(Ulq^4aip(C#betan1|KnY}4_C(VW@)fA}t5c}}P&dT=J26O{>$2N8XMiR3s zya#U7UGmdp?4cG4(OnY9T)taES;gsKK;7*#gtqjGNu$;UX6g>_x0CnW1-{Z=np}9@ z$p#PWZ6lvMzTYPTQ9ni+9+Jz!f2$t6)CwRam#VUgmmkHbj+thEwGHX-KYfzkOP9Gi z|2itjuUtyd{7j*b9{84%cbeDsFJ{q_3gHL52WOLX_#Es`%(&R~7bgoN*En8{Zz+FC zKlYspi!(eCY*nxl=s&WX=jjB*(T2-Lv`y)*d0MZO+()!KMRo%?9d2&&hvhFvN9vNl zwb5FqBNgl${y*y8GoYz8YXe2Giy}w|iPC$oibUx}2)!4n(tB^QAV}|oj?~bRj#LFg z?^Sva5}I@fNxb{anVI99nfbn%@7_Q6mp@EMvXi~uwVw49AoelVUyjW-#qV&_XU_WM z>T!G!WwNXV>_f8liPj6v#D8uR{!=@O;?QaxbyBkyo5O_s4|Fv_iL>f+EmK9B-pjA? zbKZ$2cXuDga^EI5{SQoZ|1$ah&En$!VDn~*&O{o=RPXWYof~cGym!BtCZ=#ZB4l{8 zc5xY^q$AyT;;)ueWDRIwzKg%C^c|o=vu}Cj`Fb1CHz*OU>^G$FRb~v}08i^*zTiKX z=f9%F8rO<*tbKCt*ca#`Jn`?WCgVqS!ABC-+HZzN6WbwDyrM{MhDdmO_Rbi?mQog# z?{hYd`n;uN^j3RX*vYf@17b(v6mI$kydh-c?%FQ}Ki2*cRgCTt&)P_rly0s!gi6=f zjwZ^G&E%D%HH?zJkFgP|@sFpc@@^FIq$@B7pAY;P4v(o<7K5UoQmw1~wF_Ra-m_*O1Z``fi75gBY7^Vgwwc5<^v?VmD~W2VzIL5>2vVs-Iyq?o^d+Pn zHoF@7v1WjIKvx*W(h$JreYrGO3& zdk@c!w^$7{)2Vks%TmHObafwAC#qj7YGE zVc5yRY2qV8$$k!YR`A}_SkS3``&~eJOg>}RHc;@H!i*ez!s9_@c#n7Am6ia!eE_&| zP;vJzDA$e<)WLo$@84bUiJ<{eWBK^{6S>OHvCZ}msa@i*XUEt{ zQ<|!@E!vT&DeeuZ<~N)cMFr(LdL6qUf`$G7D6h|91y9E9XZask-yWwut3)jTTc1D6 z+yBjW=TExCFMx~Dzg`*r+2*WzzQwB;X&c1{*fz)LeGdQtN#_9D%0oY&vMPV)``lBd zRJ-z8XwkO`v5#)cWF$GxJ1w`9`e?6fE~J)vw-3@<4|6O`^*v6md^`HRb2#sKpt9#U ztUmiC{0*@zsJQF2Nz}Al<(Gluf6DGEb-$u=wD)c)N`R~?|Bmd7j1Ge#i!HpX1I11W zEYHvMg3|d!A0en(K&aZ~zU6*}K%nnu2$rfi>`X6^wJ)$CL$^dqYVAt#EXc@wr(oV) zUkezs6k>T5lEbnFxOlOPD+w$+g;!YMEcStwOsKM>SWmXD4bLVFHaxp%kQIBw+~Mjt zEmPpmRE^7F%4GwF-Brme>-SkASrGgnbHB>T{QbXmmH#K`4`}b02mzx|B=ujGZa@y$ zKmYRGg@2DpQd{Ic_f#C_$gLP%<(cjgn__qDj*r-7;Only$Ie;GcoLPjHMP)a@*z|j zBGQ|&>4TXZks_&?8Fd2~o?y6mwXJ;Ff0o@S(#&&ijdI|be_?L*F^2IlzOd$V7>Y%)yYELq?h(mHEPpr_fE zO`_yid?d0D+FHZe*0$#b-SGO{RgTF>#o~;=^FcVy9pw(NAF9T39`YVDrw_5_$29b? zr%y*(n0%#iCVD`_sa5H{f#Am)BW2M%%6uCSI>t!NQnXWc1pR#ul|H@M<=7^JQDw(` z_cw!`-ZrlN>S+mi?@C1#323+SK?p1}yHNN_2P0U%=V%2d4%&c!`bzLT(5fQHwEx~E zEi<*w%xYicGdz(d*)ml7t>2HJ|L}%ug9_9r-uCBLsLXIz?3>qzkVW6$m)|t(+cCK&h^^ZfzUq+69%ABfSDW@8x!;E6S)HY76PF2r? zl$9iQCS6+?0QCa?IPJ@saYc24_&?CV-yt1lKm2#DIS7ceB`-}+(u7V<*(28UX= z1PQJC%7N>KCj4L@p)3AJDfka;wF*7TKU&QUe6E||$Z87Q>D0Uubqtv?K4E6>3B6DH z$Uez+h_arR1PsG`Hu*UHG(GOcBvK|u&09|`tw4m;Md2g7?K6!?kjS{FMd7%jK>db< zJkj9}4(2p`o+Fj19Fecsvmbk#`SF2$oQ z*rlU5SOvmRHMG9=ThX;Kqfu@_eJtI~ zI^%eC#cdn1;zkKBjcT!rfPK|uXDzTWvOF$pxU=@K-;Sv{PI;_Z#5_@d_CtCO-5|@m zp2t-=KirHszh-U&%4+ozoTGK+xun*(SVQhsiaR1baK;i&P+K`OhvM&Y#GjW~HrHwO zM;#akX~<~!X%epMg8>BH5fyFQ5U7{lb{^0@yC8XeB23DWi;dv}|3~*Y7#XAn1e!6> z+^jEpkHsctnmI%L`Sf*XI>!v=6uzp747d7d7QgtwBz=W<2=3Sw?OHGl1i|Fe+0 zF0pmw1vi&oXQxop_#XAh=uy3A3es#u!{a$_JMM&^9+ID^ZVV7sUC^ehHtzToIM|P_ zv)scS&%ScF{`A&@O=IN7AXQ5tT-xrP*N&ND{hF=qGh1ceVoGyt`B}nr<=MNo_Duxg z(HIVfk&Frk1#{o$E@l8Qho|9}48EYY_1peMbJF@}^RW8S)Rpo}2Y`j*9hXz%am)mA zKvM3|t|71Ar#9W9Ac9Xsi=5SlOkjEIQ7zG917U7;*ttmYnBV*LOz!VNXPdMyTc-S> zkSX*@wmYF>Fqaq`ByT8Y9RozWA#@{usdTV(i^vDiUgF*rkvKJ2TBJnLWUo6Zvx%0N zjD&i)cZvmtg6vC07TKb=)UoO9cLU9H%-vopxoTX$srZkDS^^;D%-hwyGCN6WdYIv-yQ)iKWo0{bk{m9s+y#CSpfWrCBcbtn=c^_s_XPAMI z@yXv!Su6ji+?ZdIPEBVva4!hi0f>XE5M8>jp_Q|i$&C`OG@3`S8z?HVc+E02nBl_`u^ z)$*c7QN0nz(>X+P>)#5c^H>s=?#_FyH9bNgCalDa2U0j2aApDKD3DI$tFWFG*Gu)$ zUpjTlR#`^0Ln1UqWkJ*OqTQ|cEecgej^@>S0}L@mQzgec%BU@ahEcZxg;C^kF2G0I z5^_}H^a$lH{_z~Y6QFDF4XKlA)CLm-w#7 zBQ7Kxmu8T9YLw>3t8t+>b)3{xel9KG6S(DEgz}N{i4S{3=t@&d+*Hg8T41l&^1)5A zA>51i_^f7H^2*L*PmSMB3yLy~HO=Q3GU6hxhC&c8KaZ)7OH;8Nafu?>(Tkws(3&!7 zrYIzM5DSGgH<2f%7^cn=In&Ef?RH8Iz4xlinq0&lw3?Cn=$FTe<*c=GqEbp&yZR=h z^{v7SQFF=gI-M(873ByJ8gJ!Hr* zj(XnY$V+XKg*G=%T>xnxg=8IjV`!A1wxr&5sdSS9Ljw?|t;chP;P6v*)XBQ=ov_{z5;`*kK;@SyQi>rbGgCw+$8npUuF#_^aQdv+B! z>zulf)bn~5gi*w=J@o(Tsgvh3*_v;a;+7H#cY0VG?*61o*jySg{7P^sNtWSt5hR-z zzlj7yu0$Ar=zyt516TQm;)i1}pTwlNu?(>_&e%RfO<1=apqAXcjv+H4cm*zIhTlV* zVD`2eMQ!Nw>X+%f1Clpzua2AmOpd=hJ3@u7K;s#y#w|R&k9c>dEAX`D(w{Dh+r)NIkAvKneH$dRJ z61^{U1eJldGqlT%9PQ962Sdh|^nK;XVmezxm>X$Jra8QFZv5y_u^CFywdmqU&_&>> zSVU+nu>OUC_*;C%-*%e+j;iSV(6q#MP~5fpV7=Og-ge&TxS5k%A=tZ&@d@7b?M|?R z^> zglfa~eViGgQ0HVfciImDdyufL9>5J3vxlsI7S0?R&@2PV2Ss&V0Q6aLO3Q=VRKdB+ z)NzH@d}3FDW0Sr?h>rMx(ZbFCsG#{U3K#Z21ZQQl*%_)94h$F9s{%n~HC&>AZx*9UqEaC8c~b|)Jq5(+;RGKJRDa6vag@mHWu+-b^`Q#FhO|7aSd>f`Z;6H(& z40xAd(M}oB9s{2+Z+reG=L`qR^N7pU|K6acqjS?D6tDAYvi3 zf3u>hWdqWs8?Uk#2C^5vO&IS?_%_;*BnL>&j14h$2ZJ?b;&mQeYA3doZjBX=&K$gR zdM{!hMS2Yf#s!zsOLeWt0`wpgXHDCvhvyEf3I``J4mD~p`;fJJ?!$zy@^)st&kWzJ zKh$vi0G`E`XzD8*7{jXj>@6o3=4xtNJzb$i?flin98;lW_GuZs4W&;7&v>;&b8)ig zAf?8!GSwRD{E=7kM{>J+yRRa_K(ebnA*dU>@+95nYjv}h$g7x# z^>1>l;`?rhr^?efXt9c5D2gA90dR?WzmfJZz(aX*yZ+dbHJOv6oWqf^_Wq4R673=r zr#a*sq89Li)DD|z3A|VQ*$Adouz!-=C!)`gE%%*DOMR2dy;zZ($!8BvS3@feG|R-# z0B@)O%Tkf{JZ$=1p2;bMGiPIL3x6 zLqZdcRp6rQE6}FQsO^=KzF+lSzwMu<4>ta_{c;znoZk=<3-0?Ni^`cdo~I?Fvcr!* zC8iAx!?gBqEE{wU6i}Qz>BjQnTw%E*L!yG4f#OZEXu5bSan*6hV+u?=5_ccvyl0aC zXx-MF@E|f)2{T%EK~qeYHfZ4O`P+>1a&2R>^PWgG?gMC#8CWD91E?XE%(_D@nBUM) zi5yO%jHn)*BIp8>xd+YdwJXW0t_m8Zm7pLpi;5$2V8J7`EObaeWFlH7S$eTA z7dLVLMeKt=dWHY(Agn(^=(MJb?KrN_%9%ytLrWJyiVCCIxC3uxU>D3_d*PT&WhmMU zO}&A2#W`ZUJH}B#j}}G!iEys82iS<9cgWlNLqf)-dzpS63X)Xpa)~2&ketf};_Tcya9!awAwj)3*nvR$AZY zc`ezACqqN!HA(~M-mUb5sAOo!zvFDvcsd}F&GOnv3H82{>P@t|A~P;7t6S*Oiz<>| zb~=C5h@XGrgyt^Tj2xG0E23*7O8Y(<-z1&HQJB_?$<9RNB$2Rv0dx)Z#e# zyiFjSo@c%C8WQPxg~~s-M|YQ24UDZCZP98C3AadWjS4dk)gMv`lNe0L_gDL z^0?ih&T~wfw4O+>n1iJP@gq`f)=x88q$r_~l%(JkVZ^)+=KYT5#;hWXO$z3^uHxQ1 z7H(>vlzmaCdn+F+Qh&d@2Q1Prd4iQj7=^4sWhD+g69hPwy>@CKBa@T+GYY8K9uBfi zREbpwf6`ApM}U&A1{r)-Y`?bqw#9a|1?L!Ac)lu!sh(`*5wPbUsF3H%JrQPBc)L8! z!7Q=0CF7}?xNKFv2|6`Kgnn#gv)>lj6FVQ0Iv7vGB)_y9sJ?+z^tG3fa&>of=%^uK z30Vt)P~POJr}kQzDRI`3r3?TWTYBiCH%Xv!DOO zyJHYu5#maYbyTQiUD1B=QTdTSgHC*ocRIam%@ zur#dXXajBB+yy+d_&Smq_Q?I6QB~tG7oqK%GpT>Rk!oh^jmZvs9)NwLzX{C6$sRHi z+%#Ef(3+u8=%#qSs)bOT|K%YwHp6H0j6uq_r-h<0f|%&~jE7tBNEN|{rqJ9EWVPev zz+1brIK{wSe0i^ERx9l$Aj(*rx+U^q7~xUl9d{`Z1@x9i6;C6=1IMNS6emv^^! zHDw^1BJ<>%?IwG9B~(v{CZV3&K=V3aLwVALE2o;mcI>tyn=}^>%I%=2{Zi{q{>J}{_YrllAw%u~6DDs+->gjMDqU%4txtI*;J$>Q ztgoXwMd*UY0T14I><$))U~E)$zIO(hh0FkeAGxz;On;8L^71EML+KQD;@)Q6OgntcDT9?(EOXGTc+x9| z;-d(U>}K!6S5)Km$^-MBTaZ#u^h?-!9Hha91r_rge#Cn4pxb zk2@PY`21YB_uAmes?Jnd_PF1wTh3M`Ytf9^-#pA3zrC0 zR?@ShA?8nB8Q?~1MIMw#+q>C@H7g&Wl=O|pDN>uYoI52+ZK69rjke^47N^1=fYaKqCm*}-+?+#BKi{$(0sSrA~!_Iy;v(gn5P^Loi z1+%%v&1U`B{XO=5sUT;)dxe#4vrj2j5|$w zW>4BWE|aN%mTW+k0UVmq=eG~}We&fL--THe=tgi!zuh`|-#Rf=^d*ksYSQ8JlZpC$ zWKuCV5cO2f;4Qvq5M|gf!jV5o$7VK8dt>HhPo*#)dk@&8Wpt(R{bWp@;llKyp>F%r z-3-GL2lEI$IfCL&$@?)qqUCLK0h4SEr%Gdc9hXmL*kkPZ3}!=AjmJ`+j!LZ&k}F_1 z#2FDP=slRgoq&GbEg$!mJR6F~2v@4^qSYMkhhBB(ilIfDR6=n%-@4$NS}Hoa(#Fa& zGlHRlWoz$Mu0s4YA00w5xf#lUq$+;#_>yyIWy$Xsvsl5wAH8Zp0vD`S?-+p)E8h1n zn7gKacrAziAt7%^Qmm+tPV>fkRHAuuncH{dNI9f~%WYE+zi->nJ83 z3fX$KVs&sBUcG_7-Vuz^Mr#xHCzUV~dBfyehUZc!=fx{*>jH-lW|5!i%a&#zE`v9t zeR+m13fqCu*#w~F$P3R=oT|3hBN9sXy|ZSn^{L)P{G~&yvbovNO)LXBz7XZAphz$H ziYITPzW!&z##?m}zhel$E=p%tiWO4EO=LD@n%AFRHwcT&Ga+q{s$iwDFuq*L`M?@i zs~V>i2~}}%LpRk&v>AX$aHMhqn@6QYc1ObwjMag8+4BnhhOf`0Vl$LJV@slguh@v^ zS8?BGCTSM(HvmJ>8Zfy-M4t_h^|4JP~zM$m9*od@s7{Ld^f z0B5kp0mnml#J|H6-2qyC&aHR$E)+%Yr?2r`+eiU;z(GWx^F9f4Na`LM6&BkN1Cj%b zMPvB>cugWrX~~=I=Dd2G2I$pEm2sRZYX*USCXoE_e8&1n6#*hwb-w-`f$@f}m|z+9 z`e@Ywg}v3ttV;%J2@RVG>;i_@jByfGWLuT+uK2)#l#LP;ym3m_WsJ8X4YLrOY z2mDbmkfAu>a%jyMN)#WV0A2fuH}exOBct7s;Ms?4orw^S8<*eq+sNa8-tT)2CyDi} zQQ`S>p635VZjgSx6{5wxVf^Il`k6^}^=p*4$+)}{vs^gFrS-7&KqB36(0sFcfpzXj z8yMKBgEZ0%m2=HV2VKxFV>WS+L#>4T#jWm_lVBeAs~Wbc`OA(D;a_}sZrPKtc{`u^ zJBa$#h#bgC`ssNc;h3o&`$b=a8hJxML7HG|1%8bLr}z73f*K2mm`aNkv1^0u(yA9k zvTF2EC$1pP0#OJTh2;0(BZG9I)Ha%3HS}7~;e+1)!jAn^` z=heQUt*uR*e5`>`n#waTYt?C7(!DZ@PSa%Xp_2l1GJr?Z-(V0ec7RTBE-wb))Ap>b zsLQLQ7CQd`_PHUn64vtMiqb#OeOzL@!<(*su-N-JJRe#R#$GkLi%6MNflh`+K&J^h zda}Cc-P^f0Bu6)vcf@|sh#3GKj(X45+e?0p=kM|^yZL(yidBKJ7r40~mA# zzexc})puRI!l-*9-9AH`x|Ts3)_^G-)3?Lj@_avW%Y&VX(8#)4=w|IApV_6UO#@JB z8npQhuG-%glTMJj+(Vg(G{=tr#GCd}-ys~x(4Bn#*fP)2rQ;`_N7b>Out-aj0mPAcQ}{vlQFZVfNJ)R*<9oE z%A$$E#Tn^AggW97NLEe<0=w)<)PycUs0>nW)|?*R9!V5Us9SC0M@ij504*suK}K;e zF3wp`*8S-5w|*4rYh++f@OVV&HsJw`k!FPH%{=j#dH9un2tjLTGwUalmQ}mTQ)|3B z)%SnrX#HZJ@b_=_54iKM(paEu*+b`B_hTylnY=ndG1HJk>h7%3sybDzBuKfpx3eP= zfwfk>yU;Pkmf=vj8YMu6{&b$xGv*Nn=lNPdvRhV46-0 zj`PgH1sATEOxx4%3A_6UHw_#ZpV5h#0^TQQ(E4&VYWK1+8_%0}7xyFZTcm9GyV1@+ zqBi@mTlBeO?WjHk(8YuR=?F&!MpmGtloF-~X8N^b+ZJq9vztzz;)|(B?|0kOY-&>U zU9)=~qUiXYFA}c!Aw=Su3kU(*T*ZN;bd7?uts6K4^#W2IYEPo0f&_OVTBe?sjx%Qa zmX>0?uP@WTpV}CQ2=pJ&vSxPW@%B-rhn8}%Rv>N)PYO8lZ+f0gPC<35JYok|^tD-f z`>NlVlgvYt18DNIVj1wO(?WaRzU+4D6))I_cH{`y(*xGt-`%j{L|5|~-iI=hz(4Ps zO+-RyMcU}-a|ov4v6e1kGIGmtHjaNroeBW7%-0!L4+yQpHTC~?NB;i3)u(BOosSJV zf9IW@*8SoR;zcp!$K}Zcuu?Yx%uxfP<5ss&4=AdU4S zM9>5Jel#P>U-{YuV9MFl5jgMt)*P(z>5cUOy{SlGXlvv90M>vpD3j&cw}U&_$9Be2 z;9m2%H_PU4W~VZs8b9%Z$yfI=ygq=7TQZO{9i9hX(9Lu6L5QA;Uz>gp&=Mt+)8 z;KHhG?H#JrA^2T?4^`8s{0SDaj?mp$@2MZfYy$O*O}c2H*!r<`b#o264_&3(2Sqha zMsSKV(2(iGVJBmq5k^t}dCB|h?NUsEk@d3X;XP-jjzeDG1nUtv(@ zO#1AW1RvybxD#M!{37bu0u_bUWxU?AU^V($-0+Yg`@vfsQ~}otZQJus&0d*Q4sc`Q zVt*gXMY-;-@t!jPbEJoz8gB={0Pl^)7slt`{OTA!v7VJzCz7*5?%&Mqi$c1zUvxt= zqb8$zmin-h3b-Ig*$eJG!4bcUbxxD!Cr@Q~T^B}uzVcmAtlgUScxohi0H9uqqpQea z%dSDD)^v~tbd1^K^#@O!CE&$I)9ZB39a-{!8HopHNf zL!k=sPOc!X#QR8^G^)9JNNy$y3zTt%kfu;{pR8B)2QuXD!o$Q*Lyt6Fs`12v;P4%b zSmF;yIiLx#!*3Qe6;h6jNH5Qq-Hexll-{8NYyYk zbFUXK7|(Fb?5f%KqG%XtfV*HCxG2{&@|&x8zZ^PV{=K*XtD4Qfu4?`OYX5nisYz{o z>WDG7`^VczsVa~`)YksAZIOZck5^!rEJ!3i3bCl$alpB4> zkfe(q1`0~fTaNYj6A%B!wao2L z0g_=`X&X2MxK|ZOn5pPOFE+&rwI6Ks2)$qkmV1MwMvuJ{3p`7V|J;|AgLnXd(@H3- zo*AEzQ2qp{>rkz0bpCQSE$J?>=vf;hRgU-Yyuuv$!7UF&&^CO>(A&H$Yni$hKCbp=KPJJMyo{0*T)c^>lGgJj_K>a z`V#-m0{#;_DUhB`H;gMcF>`R|=0yoA@he0X(`J;wu~V1bJw@Z-qx-2aI1RAmx%dX) z9l*vxM2NN|_Lz!kCropy39;Q(?|I9$ANRqQwAkMIR zu>VTMGPhW`Ew z{S&|a-{%*w_n{IdaYDa;!6s2juUF~r0fqaMW;%KMoaS+jq=|=mX!ZG= zOzCxLZCRk50S46pC=>I68ib8k1%@BPB!A!PuS6$`D8L3xCP!EP(uXl*#5VrCjEOmhk zu3_|=zTraT{QSY2I&(%6<96EP2c50n`LFdO();{fX3ah=Gk4@*wR-Qys^E4l!P`q4 zP?k<#%PxYk zj%qBn`+v}Ac7Zllv8zmx((ZR7dMGq_=0LfYRuA_an!X7<*LWcFB=2`*<1fL!27sUG z6C{|^=5a*7aDzjYd+x$)pL>jPY=z_9h{h=GCr=SVNoRio#5E02xu}VQE^2|zMT<>y)&yqOLjzkcaJE`)40}j< z08Z%RE`J0xF-|#$-^`9oqcHI+DW&D>#-G@n%pgsG;!Pz% zYe}bnafZa3d!QZXa9z%zRJg8e+u$U%IrY^L(rb&TH_0kp6bF~NNDc;}8sWeeFYIH_ zr{69l;3fg|FaMCin=hc|L|vK??41o5K`msr7+2{EV2M_VZ5rwyiWN+NwCb`LbzA2v zL6x6Fk{}F$*M@PTKsKremAq*?A(>HA=GrHqaG<>@4f9I0CinF_2=i`nI3F-Zk&uvD z7C&fA>%IJ5gjmSlz&!fzC-dLC`hQDFD#2qX0Se;X@L_8`15mEtP{CV)d0s-3N$U?6 z_hc_#1Wa03yR|U(zG_Dh0)lK@putn++_s!cU9raPn8i)r%)Y}{*Hg-Ox(dtBBc(Wz z5CK-;lccm>4Hv||UtEgX-p6j7Q&J7mf1sww!a>N7pqWe&%s0BFX<~6=nR`ZYui(0R zVgvS$BzIhpw(qE}9y8ip-g~~!3!f1!=i@6D+BUmHouw7>@yC~*zn1y`JU!q~rrOn= z@4Eanmk!Q_`#s2KK=JOg>3m&1R6;depYIlPqPkpt-dc0Ltn>9;^6nB?Y=&i$9i2l< z0J|wB7&5u32T3U89dz55a5Q^nOkr$iUH@&ZhowZEBA*|@=^cI%P27%18Qb75ifn}6 zB4AR;9M`&&Cyae&U|LfAkB#|1&R5SvStW+?2``v`>#)?WvR_plHog4uSczP2;w6ub zmeYciw8#s*a{l0c(NK9s#9v^$Z4Y7DII@*&0;Y4{h+)tlmVK}xg-n-J2 zn2Ad0m(0dP6I1}b18`3wBggn~C%gk#M<6t6?5pEctALxUela_QSMP4+blrr5^-nyC z+!8zJgk3Og4v2>@>O0!9+icWgo%JQIZtrEW?RnPv7~iaor9bhH=sPWWw+zV7-NkiqVJ;0{{b~^RmzK3MER^Zkr4S!XlXI~UVyHJvsiX*=soMNoe0bOnjPYn6xAq00qBBnO+~w7=pm(`@vh_aoZ1MvoAIuF^**>D_v%!PU7#)DPFpCoeRA)RSU-4mOSvA z4r8$MP5!#AwkNLaiuwCoF2G?k!F?8dU$yYw5uuSJ2D~p1j;@Aq&rjRB;Nl-oC2<=m zazYJ)V|k+Uf6O$qM7L3&24uGPK);oyq>Wy&2ev;zGr5vd{mtwV=UFbasRwi#-rm<@ zI4W?5?hdnJ9odQ2N@&gwKd5?lv3BP|DQUX0kD)$qpuZgmq*h%^v9OQ)JAExQzyjKJ zc?>tx@Cqv{9a{PC_A!65sRmrl-k-BeVM->s-9I;>1?DA(!k`{0O?uTaJ>T2ngeN8^ z7#(ig)Gnmb%d`%l{EY9iMPe!r$=6R|O#{egcA2RiPE7jkncCE=h_!$~?Z`++`YLOh zDt%yP9OyvX@;}aJJF&2^Ajk#$fj`aN^Ia)j`P-QG-xbn7Th){j8P&6DB_XcfBdS)kSbFhl8_?- z3Fqvk2d1Z_*kOrXVc?jT9Np$U$yZh<8UUS)AaFw{6}eUcfl#!o?s@El$88pL`o#6~ zX96z*yot^~xbXIYPN4f7Z${10fj<<{;3fc=B5UCuxWhL+3F6T)0^C(Ev}5jH0)+4!3f>FWihtcN}NWap0W@2tQ~L-pHD*{A&MpEQn9e7q)z1hW|#+Yq71 z9`BqaIDIv7d!5tPd-EY$?Q&M#g?AY2g}I&F*TFGV&Ly=#m#9qx=v;mZZ7S3RURraK z!&E5ZVdl+8C#ofQyOW1}ncCvpDobbihtvA$d`9*UOP~R{J-_CSjrt5lh#&(`W0fRH zA}=^U7sK8cz24QuyYY_q2?YDWC8uC)m>7ZJ-f-@T9=Q9_tt*sr!Vyb*)1^n_*lTQ@ zb-8b4HJL#%sG;6eGIVGRGyb+6g6WPtm@jwt7hmZypiUZ{SdGcqCHj1?H0j%N0r9Z{ zgXnanHGy0pGo|mCy}e)C35x(Fr&;se+tdh;@Gi-2!WTj7dg|N*D^Nnh^Fi9o_Uls} z^jJ{g?TE}zP&5|xx;|&S;p4^3&*UBlyy=?b)N;EQfyW2w( zW{qozsSd#a4A}cSN#}eU#94QNo?4H~h=$6Hs4Ke7c$^Qiv%8o2B67voSmCIBQ1RJv zeNSggl5@r4@_I6Fe7#+i_MrjgjeQmIRCH1nz_du>4CgF5H&qh9ZcaSJxn4&x@qu8C zIJd}MpdT_Q2ht$8ew@7xeH1Bq>MbS@<>N`&fgIZQCU$E>5{^?_OsO2S3Msb zKB4Kz=@5O~G|U6Li6mykj2*D^$d2n$!w4g9P65(ZhYZokCz5w2c9FEb<2UxT7AM0P z#%pZv@O9c=oF~o<&U-688D}ees4+H&)Tq1>N$26jyBfdVcD09N6mzkL)jE0dKv?rF z>Oe1PNy1y0Nb4j0r``(Ge*d`AXVGfP{kyE4Dp5yqcNC3B1@b~_o^*30nrbnncbFvI ziWc>?_{`TyGemft!n4#9XBEkhy>8uriztL)sr?v zC^|B@bWGg({xyDhtZ3XkhsWEYO*LLg&Z*Q;VmS7xSJ9mtcWVl^7HLIJ3&R^jKSk3f zbLm&qo>RSfftNq06KemSY*)4(VgEJC`Gwjy!LK$`PxqxGLxlsA-d_!1#88+$m|!09 zo3<@OO-<_g5prdkNcrm!eSi7|Ov8KXN^zmwdQCk{h3|fQFPEi1!>3NBfaD=e=Dri$ zX;$*qeh4X99w720HB++^Q`V=r)c0~F&Tqm+?%xf$|LTxm@euh4j9gE=m#bmHvLj1W zQOSGbsZZEO=$=omtT)IKKy9Hl$&U?1llWmd6kE7c^dJ{p{fiVms)xIaq%}Jhajxm( z<|$d)x*1`q3FY5nVSkFKP}7^4-oi!Q@p`{{0r~-~3qSUGp&wxvz(}YfT8UoDi$!sQ zy9|mD^33_(;1C1X-<+{yx3{oqdi4I<7vIz0%)3HTdEklaFp?-DE(bBy*B{wpzNkO^ z_M4Bwe?1|M9xMOxG{ey9w)$e^j?tFn_%VKgwQ+(TCoZaRi*NIBKt+KP4X3yFpt7rz zj>RfLWfxsZ_##c_mT5`c!D`Qf#vzbvW`Q*BOTR7IFk&9Gh`K?H^y$urXh!9Se3xtT zzpe~yQ++W>#k2Gg^wLt7fT#)8Pk46M*#15Q{cr2Tzkj;Fb!Y$D?n<+Xbu9muG^ejy ztWcyTF};88%UhWrm*~cb&H5}k3j%b!wUB16*7%#+HEUee8@86~E1Kfh(AvDrA3K$z zq*~Ljn?=>QzGpD-CrBNBk4KV+Hu{qP+(&%t)awaVxe({l*KIp_c=7;+|v_%)d zd9rlfbit}5vO=E_jsP2kjiaAuV58b_SmA=jG{1j<@3kUVU0)ZG#!cp>|xdrjFgQPI44lwx+l*A-+jsC&E|8L_j!RpcBe%M^3h+T5LmPiXtKUHT*;6O*r4AP00VP&UvAovg7@97e;P04?y8Y7>dMxsV zSBsb{0G$oT9U22L-2-l^FdItUJ;n=Ipw~h^wEyj7=mQr^@C{iUEA))e2=D`oTudo1 zBdYWDM zmS~Pr_ko_5|1-5`<<$OpCMp3hmy3}dIzqQ%HxqBN^*tzIWz!B1qY5JZHvC34<{o|y zf9xw$C64A%fvscBmg={g_hQ4uY#*w5Ft}VxTKi4Nvtr=QNSK=h)wGWc$@?Y%_)sql zO~8x4OI0MUj=}D+D=Y=Ev~ON!?Md_&&$if?unAB;=qz+|sNv+A++B}9$O5teDdu6ow0l=EH{1JPZU+ZivO?Wo5E@e)an zQXQ-($~(*L1Jfe0wDYzZh3bZ}ys><}8AYNut5?c*yH}sJg$wP$&R%u}=e(y(8v5WWC$QHCP`{>5PA6lO z<7P!-=^S2JtX-lm=GCG;?YHwGaDv@yJpFv`t1T`^As2ZcdoRU1xKAr(r`qFG-9REn z9#vSAykt6_znvP>I^7@sP3E~;>!E=mSGJB)S1{)LewG^{qmGp)@sO>zuW0fWJD4Y* z^6P8sn%WnfdkM>9GBowAV?wB!%0ay7KwGS`IJMql+}ebr)^}UIh&LKH9#tpF(oTrg z?+cn4)g#A}GmD;62pUo3P(aZ8vR027W;9dv6$|E2(z(`GPQz)RQC#|Rk9?VAmZLrV zi)J#g&M#I??MV301v)Z0%B{;#JR~{ghmfZ_?sSy(f6A6H3#SczT|RBlnFxE7a2D(8 zyj3A1#!SM9d_}vwC^L_&a5mipKXuULVU|6#T@y2HJ!wJCL{$GnHFIy}4I=uprb^wZYy6 z07F&O=>RPBN>rqpN$;s@_`M#`Wk~hNet1ip0-yOG)K>qo@9Up57d3iE2qQ)JbIpw_ z2a~1iTX!US>`IPBYFe4Px9EBZwmhby>^(@Ft;i(Xgu_;s0IR|2)lgvn4V&T4fGTYn zy*don@^~Cn`2R5X-eFDd+qN)vR0OHgBueic0S!b&DN;i35T#0&UId~dy@Vc$g7gm3 zq=V8S6zLtLONUSslK8!@z4tn+?Q_<5?mhS3=K=pnB;|eQZy5%xbTZ4O--nxdl4I-^fsx)rS6 z0W2}-=UR_p2zEJqvt4;3{_Ru`8Fr5v=S;~SLj|nHMPTJ1WLDNfn`~{Ml_mTVe1h!< z(L4-nC3^Qpg7W6oBU{&?)(iwXcyUo+F3#70S2}o44wDF305}8UIVk*!^f??(Iu)y3 zfmwtN#;2H}mxswqCL4!>>iyQVG7EspHySrQfA}!)l=@~Wg5y}v1fG$6>hgj z^!cp9hnosttfSW(ozdCx#7!ebPrZBsq7;7+eJ(QC?Y7M8U~(eW<|Fk^Rbo|_!Mx8> zdGdVHKC7_$yIs+HQ^@|H@zsMB$+6FPp?K(eAPa`yk$~3SgB!#4812F>_W{VphVSgy zlduD%YR#eUOY94HuP)dSjeU9>?gUshX09TE4ddRXZsXbeclFN6_-rK;ApqcJ(A(F4;CuhBJu) zmBZD5o9_`Nzzr!@;~($u21|6D8ZvjfY+aQby03VZnD6?v2HF94>;r*4SUY$ie{c!5cRJ+&o4EYhWO1#MOLtJ?(u~DR0luckq3i?odj9Mfyf z2se*6xN&S8HM08pRYV6~g`BWM0-rN?6!oy|XhUHJk;jRE#gd;8a*RIg_R5Ld&;Ai7 z|NDD1|DgR`nhN$c#<=&z$A79FuNKmmHxFDNqc9L>H)by)S9fbOru19}bw{lv`>-f| zt=y7PyqoF8wv!;6=Scldr%e1Dm3OAVi-D>Zjtg4az?kJ4EV|Yq#syRV#WG!Q{jPSY z75IgXzD1rRUu)2fWCLYTZjTh#qJ@jgDQweGCl7FAx+O{V2Uyt>s}ELpHL=GD4!2)c z4sFeHYV+uhvp~T^)ba!Gu#Wibs69=~81H%WmGC<@xwn$Kx4Y*zE2Zu%arfJ~QcJdR zP;|SQySUg>$aVvxB$(7*FS2;i#7a9S^u2qWZY!$`?hp%!uiolFVE-7rcZWM?DOFTv zrG$H}(d5m{*0bUC!^Nt|02g)nGa*|>rJ9$L0e%20+8tj35Cw9thH1t9&g1^3hw)!~ ztAFO@1za_4RM9rZ%IHs}8o5@Hy#iYAb%tU=c#>&<62U zC+7~#zH0$k*t6_uwaOw5jZuc9=$A-&1a3d{RW@Z>Ft#TLZ^ipk9pIk`b`Z?W2|K~! zgSfb5W&S4BLAwto)@I}dH94Vz7C5JqwNg39>x&j+tEj_14WO6WfYqoa;!J<#a?ZA1 zBEIR$pU%%eN)_2LJm5I#7=8l=|9ZlHEoQW?_HWB!*MKyOHox&d!o**^7ac=$FvhqVOl)V-B4EM{e=;HS>Hx1rZtQ-Lm#$s zDUOd9T;s6(vIzco5ZuC4nYo^1)4qMw>&%8SFnqKmU!Kw3wE=hA*fS}4h^rd{Pq-Fu z5FGZ!Lac7kH&5xWO$yg4^3uecJS=i#_P!=sB2q<7*zzdm?swE-N+{^7X!6_NFs20b ztHhCoOg&7ySv@EL&@&bRUab<8Giv|RKKFA3k7?dSE3Hqe{ykc}8lh}N(xkA%XrQ8Q zeDnxC$Pij2$sXNorDpWOJ*)t1h7aJ`Mbj40;NF(t^5(d8N``d^tmF9{`=pbERc&Hl=JNj-o*TAH$# zwyGs0$2h$I^al~)x=9gM2eR{n=;T32-C)fRBKQxYW?(I0+&`Z!J}8C*UBq2KYWFN> zK*-?-(OcSr2A zpppH5_RatPw~<}pNuBZiL4+S~`X~f!Q~clY)&Ksx|Np-^8FtkDJ8(E*(_x%8zv}Hv-ECjta_vA2n{u9Ika#(5 zNIpd14&Ca;q^5s8$zH|JopPZtQ9wV`6+831of~A>G!9pAh^)^@pY>FoHl9-Ul&;m@ z&_e3?D;@JAy6?D@e4&V=Fz7ht>Nxsn?cCp5kVcl{_Z@KvpW}}?Ps+pMo!W3j5q%edH@+~8n4VFjmMU`KI&_ukuzRg0_TkDY5g5? zsGmx^40?~)JTqlaTTz4C)@CP}m0@GABSA(%WZ|@BUw1xs%HB_5;u~rzxkY&ErP(#tM6=!Bt@O7M8 z!zET<#gL*>ToZZ=5xebOWJ&VT%H4{4Mm|R2FwuA+TQB8X3=i}+I7xlFR1;V*^JY#l zR7J%C$gO5P>+Z#Bev_0e5Yae7w1uSAmoLu%{M2jl{#hAvIcs}Z?aocJr>|n_?yMGb z$9nz`uOa+3EBFg;)xYP_k55*jycr4}k7y-^Q$N;ypL_A-eNDklU?v4)VUVy@SZqwN zGL)qm6puaI%BS~vfl3D+Di}~l9(UOht_g26T{xR)BW%-UK^jg)X@n%gn@_M1+i0IW zU=43%Y~p(F1(1sr*s-@=3AgonzupV{=>_J?ROrd^|j{h=uLb4N4&-qxo zlB8q21?=dTy2&%H^0k&_(Z`(_g^bw-Tw@hV4lfPk($Gg|1(Z17Z0k981Y51;eyWb9 z&a$aZOOrlvUR#Vwj3neeO7qdGP(C{*r(jx@vf?Om$<$Ru>A~4p^*J-MkMp!`hFN$A z_4{YeyN4khNzI`;e$ z)2L<;i>9h(?zP>+9&dfCc5O>8xL(*(IZc(yEbHT5O5Jtz+8e<~p^R$Xj7h2~ruNbk zZnnFkn@K{ATR&2c5;8z>e(CV9NZA~3xDj6yP2Ix7oP zX4A#~addESB5!RT{`_4P#D-0ywOv zpyosa!QS<4bIVwsZcpwF2c}8qz{oAbXdd;-M;!<{2`w1$tOq3GFkL%2qwvWUn`E@{ z?8;uyqExGl`+?l;vrgX<6Ok1n?<~l_0l2_(0;Esrr8LnV!#jXU&aPU zP%i+W?&_w;nejj;Soeyp_Bzz6sM1Yw29l)|mt5Q`z+KIh>6IV6QVop)S;Ftkw={S= zP0#Yrg2*sE%RW>U&MP~{u%U;Y2764w6~a!du*uabdegu*f;5#}XnuTwHb3cP|?i#dgku^ita5os?$G9 zv>Q1*b3-8C`HWJ%%^Eh)+G#4q!m!%DK`A_oW^(M^WGP8#)*^M<_z36JG1QZ<@j=VzTOmTJpD^+b>x+=g`wnEA9{{_!V2RO*)OyLNMflu zi@Y+2!I%JlkN6~Ot;>U}R|DfEX+DJT-SF9nY)Nt!9O|6+ zsH->Ub;gzK%on$Vz;#RIma&qu>I$N7%J(Zoc!QmJcZGbM5toI=QZ z;po2GEcCHuk2;PW4;9CL5M7@Og+`ln?sgoETF;t~@HkpIWLgJlov>{R$uY-Wa=UL( zO?VbFyl!F2*)C}+uqq2yKF9gC3IU1%jctk6RJ^==`w*sA-8i)3u>*?h&UAOIcpXcT z_ef(mtbKr>L*?Ju4{l232dD0J2+Of9dV|Sv@N6#~@44#mh2J55|M2}ye^e&_Q*1C{ z@~93NGeEzeX(_z((OS4-UoxFJnQNHFbg=M?6P>W^*{-aLBakr0S55cuo;F4qblBaV zL$}O{8{a$s#M;Xx)nxs~4psvgQMjFu-Rlv?AEs27H z@HkgT9UW>{l{-aaSAP8%|0yu}&r<*A_sX4t*TNT>7xMpH`~Eh{{YA0d`b|fNLF-Nm zTa>B0R@BiW){COlD{IjkD{jh^pz_C@%|AQZ6ncD7AIyaqo3FBLUMku=f2+O6O3vRMmHYVIl3+7=P;Q9)gho&ou*8rm|3>OG;&6z- zDwy9Oq@zLY3jA|{Cs!!TRj?p0q&9)e2pFxaO#rmNIC=7duB<=P4w^c19AZB>)5gY9SVUQl)=8f zIHdQ(PfO{s5n8Zaaxs9`I-g6gmyfA&9ewX0YJEa9#NCN|j544^665pwh#6K+P*KUL z=t=t$=HWVrcc&^9}@1HN>s(!w|F$$ z^e3x1&lY&zx~)KzT9&!(8x|aY;Kp?)$}_N6br#EV@zItQW0?Nfqm zI<6NEQFh_a0B}ht&^`?A7J<}-70duN!FSEl(fR?Gn-vf~Ia8`ay=?(Qxz3on7x(GP zdgz0n^f4NO1yy2UqzK;2JRk5Yna>wN)#WH z)9&%=5H6`4W1)^|;7=@9{3AH_)7)V{{y;VU^*sISFqlYt=o%QHqo@7v1gas&D2PmR zhI1DCnyyLi|dt~bE!7R37Ooc_&|7o zwh2E7btL4+;UAf}(Aum)1MbC60sZ$@ZyKhky$C%`!nH_($`{<+F|3G*Rs#Ua9G2(t z(^UiTJWmOL>Qn~l`nZ#dbwZHb0l&6Ro!+1?gzfBCyqseu zi{T8Q>6H;fV67%RiqI4G9(#3M%%rpb5bnNG5Cc74uD^zTvxqUwh?gO_sD0r-zRA#U zbp&p^8Zny{4R0@c`?L?z4KKy#%_F_$@(89m6T=k~@Uf~W_yXVC7F9?H2W}+q_!DfO z8FH*01L?{^oZNYMD3dL+Z;&)M2ua90s;~jXKXu$%2&{hW!q%5|&)_*0kIL(i9KeJGfv)8{t@GcwukVietAJ(yhAAL5TCdKaT4{cPP-W zun>$27YU-D?`e=7G!1rn-`{}s2(a^d!!#o9EVW1Tq@|h2X>~;me!=ZDNZ)$gv0B2> zbtLu@mVF;$By0)`#C-9VKTc2ImqW4z#B=6LjnTLc8 zX3%0h$wzP&D9PhZtrFr$SG>~?TV`n5@Bjw0y@LciwPU4CJZq7J*b7HKal<=BI#Ucf zz%N>R+#V+xj}tGu#Q}=UR!9ZU^Vj&$I^i>|2+@qlv_>XV+8$$5Ei$v8)CIx!mc@Pb@f>0^XRgJ3mxVmK?jXcl11uL`1 zXQBsh@vJL$zCC2X4^e`Go94@1YIUPJVs`<8wadn#e$Bc01x7u{bk5+)3c$?=&69>2hO!IMTNuym&QB|=Su#I*qH zDz{jMW~50mdjg;Sa(MbwF~bx8-ov7N=b9vm>zeUV%~!}$9%`IR5@=wq!L^_>mDk!l z54&o;w1f7maJN|YdKBCuZg=j%H3j44Bh0yLaGkZDy^YCfM#_-Q;Lf0(1;3b;CUN`4 zuxe8}fZs2-4ouI?F-n?Ay!Cp;=W@Qp#*sT=pOsE*#hu4X)j86#91<7(Mt_KM0K$dL* zpnW|3(nZMjBESGO1H(4;*aDF*p%>0h&S-UHaff{SW8-2P*TQobxln z%gU;TQE;BQD}Aq}bMBL>>k|2QL%GH;GWDdD)hA>KsncA4oI@`MNa8WAC>)?3*zOBl zmMD)~xb{3>L2Isst0l7ovBt>Fd^W!1!-lxdoWaM@)u9feCLQAF7ByICsJqx4;|YgA zx*_qc<7|4V#)1ox2+dkW)W=@EMa19*g%dd6~P<}CPxHOhv_odcDc`iF20H~HJ8O>>r2Itlaw>y{Zyb_GtwCHRa$`Q zBuBLUunXg}R3&y-tO)wz9b8Me=DDEaI~mFlj`UDp0}L1u2tD{gw8%Ilux^V$+mreQ zVzcFUO{dEVT208nW2h$?&a^HOzGw@NDLwATgJb3|c0}4~oW3{E3SD*sWKt-K(U``(0N#Q5V#^te+Ti5b5Ah`dJ@g(t*irV`Aqc4 zncf*{bVr=d@$mrLy%;+Caq|3%?LCr|p87YqLDnhG;+DHpkJQEZYGz@~ap9~4w$ z4s?WX=XUU`leE4O6^>H12Fqfe-$E+_o6q7tKKM+mqiOog$k6VWpI@6>tRyr=H0LM) zftx33rYW2z)$!W%jP~1`UKbdmU(gZpZc?)#_Rl@2tBIIXGI+0$>zz|7JtW^!nt-2L5*!Dqa){rWJYeFL!P2nR^H=GxR-#t)z>O81JL*Qm=fd4WD@{ zej`6!EJ=&>VIJ$1o1Zv1q`++a%x91X(I!`(F_O2wW`6vL;k+u9PYYkzqsM2Amr51` zT^;_TGWtgV&7FliLB^mbk-$E-e?0OBZvsS{A|a~J;yOtL3xZ`M;uiWCsX6PJvJ++< zRg!lISM?S%YEc?4bWEMVFXA9J=4oHUQtAT(8R0{U*y0jci6DMfs4WKHZG+KU!b4HU zuqZM22s=Rbt+p}ImrGKDN`W0h)su{aEqhDqJh#4RHSHVZWlFPkF=3%Y9h-G1{GDva z60(dq3F^6SIH{ve)l6BZ%*-6`+$N`O_v&;{m`G1Er#miv*mHUv9`+2aO%kkOXZ-o$RzI*mQC=g1&w?$wLAu_EFefz+Ir9vJ0)RzOY z$9w5~#DuT|9yF6_%8^h1gQ#orVk$k9Cbl+q6UtL0>$G+gVm0{?J}+xxBPgfBe?6>! zAH6gm246`2xHd1c&avEDl(7NQp=h(Afb}fB2!y_pakzd{XGHW`LaoYRLg^Vy9KoPDsO8%M<-?}>bO#b!m=5DNr&Kh9%VIPkfE__BdThX19*~afk;=%kHj!NYZShlv`L^u=}cE9qDEf<)N zeSc91P>IDxo6h?;ecLh?I1cTZ47=~5hnMUa>Uw~Cag8x>ND=|hlcw7-!rt2_CEIp= z$@B4^p@FF7PI#F#P3FxUIPz&%4RQ(!>h#Ur2VySfq5Yrkbl9bgslWMY9fj@Wei*@?(C!4!d6?;W3_#j12w-3cA{r6>Hll9}rS(B>?kjE85Y~iD6 zjuNI++NJvwR!8HJd1H+lx&2>o!pK8y_3Q&>8Qlhj%wd<7>{l)8dljK9WkXJ1e7lMz z*to97dXUrUUs6RE5z=0YBK4OS#%l_-Y1*D@>1zbLGEQ-!vSPy%JLNE?8duko*6!Rn za%1l1S3Z9s1F97kri072j^CIQo)3GZbDDi$U05PL{Ji6bM{4&&h*YIzScw?ll$=du z`*&2z-;HqpMTMd1u~4A*YTa>PeIMQf@2M-2hVOR7W!w!+=5M?p|H{#p;Rvyr$hGI_ z5CGX>JMkSwJx*I-V%N~k0MhdSxYo#q>##T2xG)9w`5nem8Ql?6A-_;t6L59S$}!K# zND1M{H&n87bLn19p7|5s{)t}S@(LEN7%tgcfCjcL<9mME#aEzK-=+0jeT_2m39Ga?C#ZQsro<4S3N!iK|UsR0ywt6Rn zK)_&VAQo-RMZNlXzjyU?s^qcRdnGULb4b)MG72ZmLYfYYg36s5!sl3k94KdbJCx

w^bKd>PIwNxG04mD*@x%)FSN=^tEz4$vZw-8seW8f?%F(M zgHJEg=8ChpC=)`1V5A?L@sAsNW7@kSkVTg&*2qGol z0QCfJm%`gPXlAuO@^dsJ9Vnx_B&1dw7bDC*tKC2YbU zNJg+eA`T*#d#rX}`o2Za{WDtS;b!}qbfWkEgT?l@9seIFtbf<>{|1=-`6oH7Lfzqv z`K;le%$^dnOfv=tfxjY4;=#4Z(mA>8DYj|$Qk5v~vY5&T=eX%T&OKGTA5`a7lO~rh zcSUTbH@UfOF?vvgQZvNcNQTU!CG`evfgmAY$qp(zP;xMux-5^c(@Fa`t2ayqZxU0d;~$AuFM*RLLD{Ux-!(l60P^;Am|Ct zZT_H{D~qbBDmqP-2KUm@mtLDu_KUl0+hL6E|FmH4ZkFznwz?TYXnxW_Xp zTqw57(mHuLB6Gz;XlyYo|DhUWm{&!$Gkm#r3U8r6ee0HZ{%VN7Xc}9dN=*VQch^MX zZFR2nI8WL24P5sFP=E^S&F1`Pf0?xX6`JkXrd{S&eg)x!X7%J_^_ukLpA??#)_p{r zhiz`9_1l!=ZR-;xEAhjvP|Pz97D2jU$jRQ4F&C7muA=beqDft8R#8!+lJ)M}8AIj> zDu9|JGWeP}>KQAdTiVs;jcAv}0N-#__e%_aDA9AWE7y6(icJVmsZn7^8LYa%rEAly0w$uss$Oz~;&WQ9-)lbmEtFRo7M!e_U5G|Hq{9q%m#1E>ZmVsQ$pix5{3FB4713R9=%>q zV!5dLn0W7E%?q=?WDNY`VE;3hE4#8iIVr-{ns?Z$-y-C$ot3G%>AGf}q{D&8*)YQ_TK;&c( z?(R*)y_0f@-Oun;NnoV6`J2T^>W$_=kwZmHa9=n^e0fG%k6m0xeOehcmIxa3luW7; z*YBK0Or8*UJGw&o)%42DP@wt10b+PE4Nf2IIDHN1GvbaEOqWu*b*nu@JEhdB3Yf7a zKZq`HutZ2PNjL=ody%`og}6jzT2oVTM}&MJl75|dONX1}m7W8Bs{^}8U>1HdUH+Jw zq&S!MRecaOhxL_Z=LCev^~lQ#uKglYy058AuA)|-rcclpUfRE&*7VI;ZBnX)gt>Io zHW2sD2exfkBptbgZMaVGI@=5b8{O+(V9;G6x|QhL;gwGolzO;NsmMRrt%M-ugkly? zo7UwBe1L*P)CY+&oqe@ZjLM{ykB_>0Q?<1--)VI(q*GrLUX&iSzAVe9;M-xg8vn+vPXX-JX9zD$1JR<8X9XGGJr zF`7+}X76YgqHgQLGnZPK662-YANafgUe)&-ip!MXsYOJ zNX)0p*Du7Gy3KkI?rf(ADpfQzDcsa5PJi9XU1-%)w|C;J7bI3HJbxCx=EJ%8J$WO_ z#%VJD`The37el9{W%|dOX(iO^+;}d-I&nItH!OH_@qw%9&nMe{QdZ*2`P0!kXU;qd zIX_z;r>TRqj_fN`af+#O7jSY%hmJ5})G{>@>hTc%z zd7S-5N=sAiK9Mca6dw_(!mpKne%O&)ObC?332{lwVU+aIXQpRV(c&@S95*v@dgXF* z7S*6;P=i%M+1Gi<7aDdUPG^k!@`&|h>%UIRcOp% z5EOeOacA*nv?KLrAnj9~i%>*6GnPR&qfac;91h?ste1|xD#I5@-z-dIaIA%wN*tbx zT_n8FPY%e!_@BWO!Y$o0@;=pYLI-ZOECRidcGyVtbP}M}VjY=!Fvn*tbY>)tybm(Z z!0hS_(iDa#uS0`gA_Z0;@vj%1>Fd>(B~nABZzajN+6fklux7N;imyw0M1o_v$JnFi{jGl0i}(}t z{`p}MFA=XYl`DtC*qhHY>Y+R07?T#8B9$2i%(*~^6RIU=di{DeQFAJ~SMjNk2hO`| zcU98z#N5nYwSaJp^|Bh6J>P^r*hMCe7w%(l!5ue0m9oKsTB+fpdkA0huke;hiD>CmR;S@XJc2PKL8XHzS$y|uEh*j<)|cYwN=kYkeYF37`O%AWi$n3v1X#}%at zV9NSfWHflCi5(0lG5yd+-hjdqDrwUxQ3gCb63zNkZT5aoOPNd7&xzb7ZndQg+IbM@ zS<-OEX>$nyhv>)`V>)-_aG6720#cgIdTAb+tmngFd{*Tc|gNKM!At&|v@c>7AxP8ebYbXa^PDG?6_n_%5}hga?UaC zI-ewlJIZTEe(Ef1pY~U#5{Co=3ku7v`y|!g_P|qVgcEO4O7Uofs+TEtM(buc-B(x? zQrJzR&#=F1Aq#$|))@Ask_RIE{6^Cbe})}b9;3Eq@zl)%L-Ju$Br|RBd94YQ`HLX&G% zcVqVhI6uul%!(W_iJh(?;siG# zNiX-w3`=NIP9xWupm*ao2WQu-cC1*mcv)g)C_;Ra+NsCA`!r${+HLy`A-x(5P+nWR z&CRs(*YZ{V=N$`#oLgxAW8<&(!$p1X z?Kq`8TLVwbg@;VRi=Y_F>v75$*QHfpRmN3!NR>VMksQkJOe~z^*$NAcPG~nh9qdOX zc89(_$KvIMYGHvH4qi|cs73Oztn{K{(|ynGnfsOdT(NMznL+@qBk?CCJICv323dV1 zaK3KZV4r*3=e;nF%=4+~iSPnkRMNv4( zYzC;?$uF>EAX2xUO`a+a7bYKtPTf!=bPKnzzI@2CP7!#Ro_d|<0Va59jaYkl@Dil- zZav?z1RbYa01FOgdFABwolj$;HciJ#gjol(I9kFbfrxYpfHyR8`GQTfKDlxS>$JnE z4F83D?zwX|ceUQcH#EMPk%MVJ);Ok&gNoj+x#g{Dc2<#NMF6Q+t;-OuqJpwKAN>YC z`T^Dxu3f#@3dNrD6R#P;e;5~!G7>` zZ;S`om{>KhT5X4^Lswwe3I~BDs3XOD1yI@nKmi0tfYCMxS*z3s(x_`3VRXGAP6mX| zj}Hq1q*6(pguC!2h^tL5iz?_b5GxjA*sf+V451tW&LH14r#;gp{Glg6 z}{MLFeXT`aY&!|#FzJe(%ZBMGuXwIQ~?@=ji$35fb~huGdk(SV=*Y znj-}0Q}s$c0L9SDpGeHv#7X!jL;%B8H?S6kwZTi+h|XkJrb0p=P|lwf z5#9cJfoB&+TFrI4_OFZQpMLvqE0_L>68?`vOV@})q1gf&MX&Zc4PMi&ePpNiU0Xq1 zer9d0gN4v)-@O%5rmAqsRx8{FlIZ(rz}02o(8y`9U)`6wD(bt&h$v#@sf0}bk(9QI zZoYVruOqrY-tI%~{>7||$qsNO#uTg9Np&5LZ) z>-)7lLE{;!^qZ*KgROWdl{pjTL1w7>pm)x4FI#Jp&s)JB$PCU?@f-9`fy114$weg7 z?KNV6U2W59A;Y0@z3A&73#fll5&!KP34pZrldkqvM}uBFZzqT2V9uKs z&5)=i&wGJW(Jl_)7MT)|SSz93W@%JsidwlNtG<~4Cm^=dL(&JWQ$XlgIext*q~BY^ z{t@8)V_?f0O*|MyxlsA93rN+dV9#QS$T3RElVx}2G74`=Z^_;xM8(N!%mAHv>aOg$ zWBVzE@s;ZtYoInRj`&gxQVTI$o3M6g>8n9=Y9mW)oldx~o-wVB*x400A84iJw12-k z8SNpVEO(rPf75`BsqkPI=_~P+vSzIYuN}CYqCM_igz3v# zc_xX1cJIUttI1T{VoDYpjz_e1B)cHjT3zD8?AlTyUe>-b(>C}^gr@x^LB~Z(x^RAf)>oHWv(4mhw3O`u@^{(Y|t<>xzOlAoGj zmzQ0#Of$In#%4ZGaZS!?i%|}L#nsdH2d{+)@Qe3o(27<kPn&tBg>b&hWl5g@TD_Yn_<9 zqGSFLF)n+i_YV0lJy0A?%aIv10;_JZy zv?uogDUUq@D~hEm?n+$9bxk$-Nx#o(&L4Icze>=&9Jw^wu?eK4z^PD)lF4{FgBbsN zCtLHWO_MhK4dm0$>&*G{I{&|8!}%apA9LGf8)CbqhI7Z4!4Xk3C0k_~AE|Z?wO(UJ z;Zk>!O=^qc6RCqoMEkWBZ4#Ff;Mr{|oV)Esdm05k@3hu*|B^BKZ-~w9btWY|spyhE z)wNn=oM^c3OR9&pOL=(hETWmS_4)ddnhEP9{n zzJ41ho-h6CvgF}#a2z=7nXdcBpimvngve|z+HC@B1sM?xJqLRa8^pV@%f;`P`-Px< zBZGzp;IVl18DLCbws-VVP;ev1<3xxvi^FuFc5*NQ%%pv0!CE6)>YAar#qh(&Pf@r7#Ut2Q2} zd&G-NOLa|>H*4;2=K-a{f3nZ$PoWnOBuhPl0tJJ_pEX^6^Phhbxcn`|#czK2qydo4nm0vsk}E5A zk;Kxh{kx0!)l($%U4>4g7l>8G0m2&3uy;pcNAt(*M8*+vx-UudYq*a&I9q2};TCw0 zq17tgH&MxB!d&3{Lg48!2MrSB*$E#6Ccc#Flm=uo^%r$RR@_LWsOw&k2O`pw`2lM7 z`1ex@3;fCl6=z^E6cXqKvzi{1qEh{yzd)?R+djURT?4eW8A|vtVoC+%T=|~<{r7CB z*#meq^;vqM{tQR(`LPc}r;=GMr<;3w4yT18SW|+-?&D$eEyD?@|Jz+MbRs+yH{lDJ zlLDcnbq8^EnH||ykzOy-me4|l(Vf1-(c)Y8;Jr0b$)aUX`Y}yk0pYQni^K~E5(fg8 z#5wNlqu&rmRjUX`i+D#skK{j9Zg>##w_&dTihcTT$UMKXnBO5|nzq0eB*+E?C;y)h z-~9L2ooN2EdI08weytWxh^TfI;VNwaMY5ByT2u@eha5{jZ8Wh(lq zKyn=h+VoLs624_kP7Bx{k1()zQaX#I6vZ1k@hG54ts?A#7!|Vuec_xeENx&V_Op2ZPBc~?<+^35(hFs`G_Gdbb-phL$5o&WfWY_fIEMeQhrcW2{NE&#{ZHGUW7{>#t=IY-wwLt{Nly|<54^9urD&DX zF9T${=PCplqjnJEeTdX9&$^167Gd7gaKqRAh{6njJIgl1CX%-ndQ?0QlB9w&z8;we zb&wr&(dJBR->J$FFxUW2uapLM*=g&h#Hs{5+f2|5(yTex<3$mEc=hLVH*VwdvNobY zYl+wRHE?Y5m;zLWY2E`gDcSlLTv65!BF(^F1my-}}yjs#y--A<@m61~@y*$!E>MWEy1ha{;InO4BbBdhE%7**Lw>pwuz ze!*qr{vc9K#Xc`tF8x82FSoQaNO;CFKR^pF0-LgmO=h3~9r=5#aCK5f8DJ=OJP!(A zagRt%Pe(Y)dVV1qcD*8aQ{~gcjG#vVyMS53WpO>RWIaucbDPDVb*xf>nw?F(yG>7q zsowgGdyk!kWYC_qQ|CE?A`}PA=eo@VwI;QZ3al;3db&+coX@_=y0&NgEXkTKbB|BI z7LSRU(0wW%0lElj0jJKH5vuk&@b|Qf)$cv=h7S{{ln6#c#SSUkYsTv`D&$Jb=}*We zWOl=vILzm}Vj{dX2x0v+kb`i?;U3wH?}S+2iV1S^v$uG$FKLxKH12eo-2Mj`>04)$d)kJi~#S)V!-5 zM;tJC=Hq(bTqR4@R-L=;*m5s#nJ{vAb-snsaUQ`s#AE+EEW3{S_bNgE?r0kQ{h;)} zhiLTc2l-EeQnskXW$jSYTE5mK_j4U*IBK|sjiw$!JnwQK?wmVZVv8ro1|iy*S<%D_ z^{BMR70BJZUDC^^{?0T$IoSw|JUrVzBAJUo5#S*4-P9~ep=psy9kNarj;qODVrzw` z(cQU5D)W^rWMCzR{b@0BUMeU}{0H1Y=#BP0DjPFJqkrp>PwZrYf) zN;#%h35z9x8YVo&58Q>9@%j3XK_|xmr(;TDO12~hSw{mJ z5Y)JKffcfYK^q(-KSrZ?CiQ74;$#f8v^lqqkyeHE0I#iqz*^nINx7fukL+QD$%d=p z(K&>oWV|4BWf9j2m>hk1|;%et{1Yl4CwUbz>xLutgE-tIY@?7 z9x8kO&zhyE`He>CJ>l-Y&Lfk6@9;XRa5q)M#cI`$( z<${LmB^0MAY0Xn_b1~bR4+-2pERy0%&oh30hWe(gnTbT%)j$$I!wk+OE@#iG`{9W) zbyRHf5tkWUMWt>ClG(16yfvC58{l9;>)kJhi4NMdMsyX&8Ot|&g+%4?H^)tQJDc); zHWdLP-8e!c?3O~Yf@^UT?-+R-_Rb-BFUg?n*^)YkA;A}JvFPhy-VdOKSeYm(&Y(sK zMQrYj>^6E<)W$%z-rb&!JWe9y|10l1!x_ap8LzP)|zXq znK{RtbBuSqFMWUN@Q7{TmngBw7*3K*4?6ln;w&(rjL|i_ZYADdTIEpoGQUKOgdrqlqa(8<;N9K9&;an|INStY|STq+oyeU~Ctj~1E zSve_+M!Y)UXmZ;ybE{N@M*R&i;^srh<1UHb-koI8HJ;Ge5m$ThM6f=O|B=pe{o8(P zU3X)(s%qprC!RunB{wGB@ICv*opHop>jEJKqO8R_c<5<|} znFu-7>n|>Sa(P$au3e@=>1zwEz;Yd0>#_#2Q!<+6Z6XVdfW_b=N1%(+Gs6z^EgAu( zmeLhK3Fn3hpe8bgvy>->vd=BJ*}w`{WKf6cZyYF0i<<5kk7OHkNuTJ5u6ct~a;n%y z_fO8rht=1@)}3=0x2QhLf3)e!R)lN~Ajzw-vXKBmPTgJILicPX^vART@t2S0Pfy_`zncCgvWwfmbiMdad zcnEFh1?*4j>`N&%Sf9hZDB_%VhVQi6Bo`NS&f{-3ozAKZwlkiYs97pI!f-nxvb@r> z*=1E+|9q?Fn>4)5-P`nPTlwq$XMKWGbaN!FJ|qO{IGeNWF<;+I&-By?9GZ%GqP#cT zx~&%E@&;B>T|Q95`BrlJcFGCmLjCn3R?MlhJ{vciF0kE+<$}b-ZWW$?8`>a>w?^wX z-png{MpIhEw$uXWnD+A-v+Med*z3?Rf*+hgj2d<};r-gH&bvhoeH4M^8k2#wsy zyseEvc`kSj(n5b{Ib*8LSuFnu6}A#tYQVmetlt zUQ51tN=^~l*|%&koF_38xur94j2S|*>gjp``BuB>c+iU7`rKC> zKKwAl01d*nU&s=v#fQB&|yIQNQSk?pA*bK6QlUYPWyKhqW^6=&OgMHel+-(A*h#_*D_NfA%Vh1MW;$dz5&K%9{;Xn^DdZc>+RJt8Uh!AJ?Cb7;HE~h0;OhJ%h6W|yzvo1|iJY)y0 zB1?;3!dafnz*^GpXSToT%yPZW;_k5*&#PILruY)H)fzgn{mauv$a@iGyBx%)9QTdx z)dCdw;M5`{*)d=sj|(xnmBC_2VZKlBmJQU@NbpHnZrx9M;7&#|?Oo2wZe1paB&ke} zB>+ym(nJSm!$r?ftTCH2F#yq)1HXKyHg!&c6j+GAGG=M)#N7oi{m|6gcdQB=-I>jB z{V3Y^=BVs1_RkYzIZqHIw;dDnwFLs&DbIc7t*vkMagEuYh^#(lppxQtsH>NBgJ}uy z3#WYCaB4PBN=hqNi0*H_SkflAG}WEUkCd)IO?BU$-a4HD!M+7f+de%^u>@hXf0nRz zk+qk}zTe{5HMWCF9iJnw#N7N3@MJ~1WzBFou|Z~xS5s@%w@exrUvD<*Hq{GGYyhW- zm6Lq#cs%nHX8Mdu^6bNm1+;feD}3#eQ{4NG7WyD@YfR$G%}yIbw0A~O2u0{<*;@ef zYG-0I-{ZbXEceUA*04+pUwm*%%S>FOpv?6gIsSG|=sf`@A75e(Xj`wY_f!KH%1z|* zL~#V$KD9tX>cVN0_0)~5lY=3Q7gi~bh=t7XTl4_>F%YZS8s~zZkC@HWSqQz$_=ZYm zSV+#_hZD}s4g!v0NbAxw*Ml4#VHL5M_%e38@g9(Q0@g(s87EW9vX&vA#~8UEB14wW zwgp2t;5*PzBT`BK|?dxfoXAfk_T6S=9tWPt~jSc=9`p{ZD9o_0i zFO&}fOHAeC2yL}It@%@o^2bQ{0k%nzmzrEfM$f3Jzf!a944>Q!u++-CCZvgX(0ey_ zUhvta5znYbVnhGtR*)yZq;Hd)Y3StLFQ?)xg_*6Vb>?xYS(oaDR%Zve9K|zu0zT@g ztNWTq*4^*9aeXXW{0njR`Rby&DGXI2Gvl8^0-1M4>77-*?~W=g_#m-+)h4j87yO3# zp%(Iffm6QQWpUzUKwY=+DZCMa9urbu4RN{C-6i|>ST)Rz8#5*q@jiDBoyU4)a9C2PvtE{x_2XsU6;TLM7BYfh#8O_5`soMF-XYBW_ z&b4~Hx`muOg^u3P`CRPEtuQYz2MW1V^CjFy{l4+Hk75 zDEe1d2)*_j!E&7>fZMU0Y}^3pXBlFabv^iwIc1FYzNVhYh##!nmeye!9y>9c+L@uo z*(V&it@yHcgyKsY?Ce7AXaQnwfi4rKZ4+PBQLm|&FJ9f=U0&PzPIW)eLz>{%+L(WZ zh=Y{_khF4S#ZU#0*bWetGYzTKX&>ig(f&3Z)KK>^9a}1*eRG?B zHDG#M_tMti6de?23tDZLH@9!Mw@rPoe00%tee~tyQ`6H6>4r1LRDl9v1Hm@-8IDtELMu zhC004;NGbb<&4)ckMpP_nDdX!1cktC7Or`(h!5L1a9pCxR&3FUS>z>Lw>KESiDYRj z1o{hpD2f@vS;8`3Qv6V~`)x9k@BzU+<$%p09%Fh3RZmhn#9XN<)%v|5R?;Ps9+7{ zH|%DEm5Ls$K?WBpC7P_);0nm|NqnA`F~@ca7S{z2)!K|ylE#u7Uy6W{faLQ|-}(65 zuNmxj3-GU&`s4Qk>cgHqvY6y>mlu{J^x_A$lZpjQ9_1DZ) zzp?>6Rv$){ANA^&Qdr!16myXd4kB6uM~pXOLsgt#A?qB?1_B?sHg~P{z{0&CO-!^l z2u@JTZKI#Y#UdWSk2;Xq`A5JL(X)$)pa(9cl4kBn-0dH?*^8pZ%7^Ms`Fh9b8NOs^ z&KrGZW4XljaS%~tXtZMMv{-WMj+WJB)0XRJ<>T98&azfUU2*A7g`qjb^1CP4U<$~?w?|r5PATE_f6uGGDk0u1j3x8~SovEjf#fCk- zRQ&MjL6`)+!FwE1P)^*D(sA!*&y8me44#@AF@~G?w84To8g=Qtt(~MWUk540+@VUEOFydRYRtUCsY;I9u2FLR~ zX{6~58R{#IkUgOmM7!0bqn4%kPJ8JU11M?Q`l;1a*xFQ=J+gjhJMH|lhgs)J*)Qom zd#jbIbs!(9x|b5hMy8dxNqq@(mO-*9{H#NS>{xUe?bekOpJVl+-h^Cq;T*1bQDdcE z*F2&1=GX&zlQ;l22NW6hr_We_X`a3roKhp3#Yc5~5OarJSRmm+caK8qhk^lijpe^n zGo^(5U8U=%&h0M&dVk0eh5sh`K#QdlTe*5UMY^%MweC2 zkpm1eF|!#*UUVAA;ytDinP%HxGu5**1Hw&VV(v0paU9|;+)d4g+H0A|-6HpODQ2F> z=>~?PHTMyVUqJiD{*jPn&fW`$4dg|{f^9~jYi2-9Nq5Q0FTzbZ_1p2>BwhLr36}Tp znGxHYN!ia6I|9F!b&}>5Tun=)+G@Y`=S@edq%t z<xLMy@NuVo~f^QDv;ffk~dlRv8fVwt}rH%5Fl$4Uaz=m z%1en;ERPG1Ceq;_cqtX6XEokcwtkoYNm!X-yMl(emT`amm1N)zVR6hNq>sxnAhj-9 z^QbFi017H|HtePz1QVn(`tbst)=1$qEUNQi45eQ4;Ub(I4EZM%Vv`t6E;WOHzpVXS z(Cqhj{Q6B5GIrnc4*FYv0y6LfxCRT40p(d0V1VFY0+0cMeMD?00+6s+=mb+`g_u=) z;i(T5U~`~sy?IJ%yU)68yYH3}Kps~4oTi44C&wt->Rd!48@d{7tupHoB-|iwGxy>8 zSJySJ@dDae@D*^pW`eMb5UsefYgEmKbBlF)iMDXYBlQd>@k_;l$FE&TtchKR?l>?) zGVIcDl488+cWt$c<2Wp^=0c2kNz{&^@)dvzEY;IJ+2?&J7ksZX^0gZ*1JS$ie^2=zY&&;E{j z`8~Aq&rsgqWn=!^>f?VnbeZW%im9Q7*O;|C6cQ?E+Z61pksSTeU%L~-1P0wtD4pPB zu%`f31ApfD_}Oma#}F}|6J2c%%6Z)0AasX*?4(FBoh*-Qp2LSsDX{6#Z0P>-Q?JQ- zT_`T|OWGC5QzKr(Gsh!19$6bc>2u+>-^~^k?`Q#CHRpyOt$)P%{EBZcD_)V$Q*?~g zXyWFa;lzdu@zqgGg6PGG(wQ%lIlnBT9V2BEkgTPb_G2IGO4W|Q*;g3h4uKV-lSa^t z+uA%-Vr2&j;-PY(tYafDEUv+d-Nt5^yfb;pxUMWh#-i@w(N}u+P)tQ!0<(j^=*VV< z81+M^N+ZmL&$(vKryVvMPTfi90#oLr0ie9x=|u%M9`$(QeXbyRwQQ@16k|sQ6N6`1 zn_x~bqds^e_BzV9oZ?5Zvs`Jo)m@<;EU#fJ$fv!_<$gED=nWA2<69D2pM4AM(cH-@ zov}~@l87S?nGZ;dwvT+NkmA>1bTZ3KH!lz0XLi6IZ*n4MJ|q zK0NfgBB^;oGZ2m+yV2AVPI~1b-Qa`sPUU2HLrwo&kszs=)~CK8-pP_82eRDyLc&^h zSW$(pdk@eqjg85Dt0}$Zb)&t$#nj~P>{h_E3yC z1;-<(*h}cZu85|D)aBdg+B+~8b=I}*zS7AYHw~ZHSHf9^jw0B~zf@z7%dsX7vThnC4_l@l~E_D-A0al-ob z#yo6MfCOxDQl1>;wr&v_s+d()jaOO8`Xcr60>4gBft)xQ0gt~ECw<=QO&m-n;vNj^ z%QSVgwQ`kc@hQiJ@PT2eX?T1!&Es@cy|qE$oioPakUIx}pyOV7hUK}0w~rY~->$UY zCw)#y@F0#Gg!J-aM>|SmMBmZq*cmzQuJ1ZUo4iHPN*dIAY@aDSMgZSnIo5z1sISjmJsoFfFi!YTs0k_!hF#ruFd1<8%rtfUto|80 z?E&1|_BfFcBnC{vMgu9lWSE5CX>DQ2=Z%8b0&Ru_UUX(RBwQ{o3feJB!D4Rr-*ezX zprmi3mfr~Q0%4JxPdi9ucqQ`AO!zi#F|9>!bm8*~s(%zileo++s4}1WW$I2?!Gihj zw1G;h^Fa7_Dszf__DrAxUVH|nAm}A&@&5gdC$iPmJFU-L!%U*fy&7KV8kO=KaC4G< zW+Z14`1HZ>-5c7~p|@m92acOycZ8e>JcEmAJ4Rca1oh9lqG|#dJgr&@Cu+CbU1d%*R;`%StlgP^2eGQT5Qk1eiEG@$_?KDA7n|P2lxla z%JLQh((9t$oQOYvfp8i5`|Z&mot7{PpqTiuVKy^cmuApvA)?A}$mMEm^oH_oo@4XR zF7Eda|Cg&;{u#u})&=`Y96e%}m1&piA2qpo9kmnK^jva4=1Fjyh}q2L4CUdMmo8p1 zKL|t!K_4u=>XfI;3t3*=kY#EV1eLj4dFF8#PtR#kI*n*-&u6gjUIuTKN&`Z5p!C{` znUN*3wEmgYM4A%FAn8iuxUg)f$}IG!)~L^22$n zKKCHQc5+%L?bueY(-_3Nnv#*A!5>Fq_zV)C0l_Smz$6quoumauBeYCX@?jM59B2T@ z97CT_e0ho42oScCZWtuj7+QL8+UQ7jnM;@qiO%ZK5he&H8$&!qM;3uBb5ay(5dWA> zbcs@KHf^RAMl`tlx9jdXwki~Tog|<*;1l=ar|XD2Rz@PXefO!OQ1-vt03UVy@q9l* zTyX;^RvOw+yJ}XeD1ZoL(oY5vi$W(zSc6@;Q03D_q+a|RM}86la~77ma2%w~1mTYX zEO4jziW0Lk;bWAb7xbVd@>U5F(*cx>n0mpNynjW*nBy&Bm?cVvL#RXGhD`yf6Tx-$ zVvAVf&iRgcQVC>Ni(EIC-C?TZRMs{0g-?K=+3d!9F%DxlyJut9VeXuVjFQ1zW^)oy+E(<4&1m3cp- z%TgdUS@lA3FQo#4(uPUpk#)(LCQC4}&^xZ}4nQfx<8P(aBNP3}YlfOl!<&$+=R=X@ z$df1l7y$*Xa3M0sD8-Z!DL{CO;sC=u1$smKmmfxJB-0XW50Ah{+#wjmdj--1LL6ZH zStOaKn=BS;{_90VCI(gxYq*b}!wS1ms9Qk_(=co{B&C~DNqJr5?hpFa&>#|$<7vOd z)Tg~up;a_`PXLTBz}Ro>FCR@=BWIfd5^hdF)31SL2IU9A>l@%^V7qpEXCP8QT;@k_ z%`YQ{8vws{bWU#vf~H++1Udk*&WM+<-DRib6fTbq*8w{z3hX5jv=X-Rx2u=j{q0s& z$?|C6*)Q#cBSw^_bqJbEa^_x}0a0B($D9aE3jJ~XG8XX7B}eRtdND+MzZtJxRZ1dE zq5^m^XaztXvrt@tKH(+v^pU}&t~4_6a~9bRuOcv!!~g^mkqLC$08Et3)BEFc)^C@Q z!~i%z!Y7F|V0#6@N{g;U;()eID2bqq382U7T?6rW)9+MhsxK5c2PGXMS`3VH$jX&a z2PmZkf|e!V@rI|qQ-v`fp6*AKfQD9J6Ldtivl^8^_ObLneiK{H@STcER{1zibS2Df z2eFz2uze?&0d2!~R`d~Ax)D$7od=?vigtyY1qfRiBN+)=0rqNH+|pj1tmNEkB$6SLo`dS^{80MENnGD4K>@C7)FG@x=(Lxpp8uKY;&@ibTSZ^YOA*)!fl%m{Q@ zZ^c>?WW{V&6kGlN__E>D%Y3%edh&zp2slxn$^92(Dmx{lHNh`q@xc%!RZ;lEG=a!! z_sw9WdNjMzt+a`s)cNfieEiuO7=$xC6A{S=z(_@rgnr#xfi?4n#(gva<;FbGN;c-6 zHgVDoEBpq~Jcmu&znu~pc@ajWL%f6(_Jfqa{3Uzm*jmchKeT9cmYNPW%LpH~l0Foh-2L2yee4 z7tkEKjXUd5fB%6l*2tTn(C;yY!&@cniHoRKBUlxJAG*Cx;(TEQc4O6zGJ*(g(vG5rDIKwor?8Ze42mk9MIQsRtvTF} z)Z9T!xqX*zEsM<`0L|!es)oVNKv4OLEzCi%6-aI1xjj|?G8>!s+f8+$(x{XjbYRyh zL(2N2?8hUVB=rQe19Ra~ic-L&{C%8A(F=;T^#x*SH&SG;JDxLNtuza(vK0uiuzPX& z>8_3A!)VtB0(1(W;&V+VBT2X>07)KuvIGd~GtTV_c))N1Q65DB34Z& z0p3SwE%}9g4FImPgJH@6OlE(j-63D!EsAW{cdBv|fY~q646$bv-9hqx1We|VmhV&? z)v)zKh6e`=hm>MHFN!))K>l7sU~{`~pRAKPM~eQ{0_fbAm`!4e6oSCu0Z=0`RsNd> z7(-+|W=0!|G+o@5Zr#>NOMSqL(S_Pxo&t~XP}&Y!*%u&L3Qtu zLNni^eKfCv@Z=jzV2w4kJSa`N(-@Pd=lSv(p0#yhcEJ;o_G>@=ZZQ1+&`*4L>Dnrf zz2+eQmeeNe2lC;un@WS$McT}aMnjxn%a6@!N{kFa$A3z1Y5x76LBTC}v;80vGl585 zd}-=>GBo$o=p#{6l$B#kl80rHWnt14NAh&imE?8pt#*YFn>wf+8^PBu(qf7~6Xoyxo`elit>8kJxMH|8Hpau()FdU2pE8p+^{>AM9890CGhM;I_YH9$qaN_6|v zUWOLKACeQ$S%B|?uu%Ly%X#6|X_kRV$y#vb3 z%b3hnN3rJ!#}`!GYPHrq#trkUdFi%v`x-jp{Mx_@`3n-Xu~0R8H7vyYPqD(^-pq;5 z%M$9W%(wAi^d7j+3GVfDJ8|42=J~ApnF~)3eY6GYe@97*4OIT;LFIKQvP9suzt_k|4mu?_Rs%GLeB9E~7c2KP zHzP0Sq0>Vvk}nqadExt~0y#pAy$=Ef;P}WKe_sr5eR1A{qEGrPtgU%o=j%_9m9U*%f!tXQGsXHX{|O&B?o&s%FYR>ISC^HmTd46u?3qsZiK(O1`g4xYV^mMJND;dUV3zDN=#;F84C6J@u`P_wa z<3zC+1JeeQ2_@eKb~+w9b<%lq+gdC%CQjB1z&B-!ZKV!{x9qF#Q#=FPKd80fLra&S zjX1sT=QCb4$1(X$IZxF6rD{t!KL-kSYAa}8l_3a6ztT3~KHfxoADC#Le*UA;tJpxp z2$lE;>f zn!72b$V+PEO~i9%?&e7%KJ|yWe@{lB3iN2HQ^qk9T`~DU86OtS+^S^lH0 zb^@+bhBjFYjZ-@VE*QQdYYjBhE1zrgWORS^c8I{-Wr1gTx?WsBlt}}vHsQ6&ju%QZ zBfiamJrMqyD(g8sXKP?u7yczdpnrTjj%>^9ZC(}s^q;smTS12?Ig!1#~eGmu%HRI%Vri=9*NG1vU(m0)B{H%CG(xMrOEW3$xo9C(z!kC zj-A3zx^kb6~|kG$zQ0a~o9OS~16+=u7A(JPo9w zZHiXn>07)twI6QQO~ML4w_ zsxky_F5WE%C44JR>Cwn+t{LMzPj!T7tj)`CT?*P*w2jAjU?dDbN=e};Ily_2<_XE6a1w#DnbP0A0L4T!SU12iQ z4Y{D`CQv98#iDx5Ps)s;_D$(}vj848^w2p^jno}+Dq{(MxjxbG9p33WB3=MLC+h0q zMWFRs_QUfOxL{f6^#g^SbxY$XXLLEnt79ymusJy!+<>OAT5^Tjbd3rSPpfsbb&gkw ze0#YgQscRhxp0rL1A*S)I0wAZ(3L@#`DqPtdjior?Yytir05G0LN z7dNt))-IBoI_0CmE+fj-&|gPmbjeGhe_S0X5k&Su2Kp>Te(r()wro~e55rPfHSnzY z{wxkU+MBlEGiW5&cZ-xlUWhH`*eDJFdLtHK0Eq_+ZEilqQKmOIpjWR~coH`BrrmG8;PT zT#_`%;)!D! zoanZQuI$Pi%3O=yrmth6q9{KWK`r7m+B0?9?xXIbz#c?rTW)SqNfF85jahodou6~n zO;^^LBDCK5<*?bFm7fp}Cu7p4?wkZrkCX5*Schw(YyLZC};u_p=EO`?FT=PdA%C|L#Ae7Ju8B{u?)+eN?`( zryMyY^0JwTsr2$(lP@ion0n^cAFq!&Fb%P&;QFcA|5+RVrB>p9^7U^a;7+V!!BX=C zXQSs0id#WFT8QDvm2cl{G|xDVy|>j&Zo$~XPzG6 z8$Qyv;(7L> zr;7$gSn84Tq{fNl0T*70lfL!DC`%}O!@deK0w|3tE(b61-3`gBSlPRJ?^WrXhso*% zB)#TJLx@;efP^NCuAVsQROdt7a`db0tI@H4cKrXwa0jOIU+g>ox;yN?|FbO5e{0tL Z8)hs}_gO7~&9?t-v;S`mgMEMhzW{4xlxqM0 From 9126758190d80cbd16e1fbf9d47a29656bb500c3 Mon Sep 17 00:00:00 2001 From: Zheyuan Xie Date: Wed, 18 Sep 2019 23:52:35 -0400 Subject: [PATCH 8/8] Update README.md --- Project2-Character-Recognition/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project2-Character-Recognition/README.md b/Project2-Character-Recognition/README.md index 5aae607..9664210 100644 --- a/Project2-Character-Recognition/README.md +++ b/Project2-Character-Recognition/README.md @@ -77,7 +77,7 @@ The graph below shows the change of total error in the first 200 epoches. ![](img/image_curve.jpg) - Another graph shows the evolution of prediction correctness in the training set. The prediction reaches 100% correct at about 80th epoch. The cost continues to decrease after the prediction achieves 100% correctness. + Another graph shows the evolution of prediction accuracy in the training set. The network reaches 100% accuracy on the training set at about 80th epoch. The cost continues to decrease after achieving 100% accuracy on the training set. ![](img/image_corr.jpg)