ELF((4d*4 (px*x*x*x!x!8*8*E*E+E+8!RЎ*Ў+Ў+00QtdRtdE*E+E+ J J LX.qY1CjVz$Ous 9F,?4I8i%QsKSDy`hk)(tSPjHbfr"/,  ,5w:P BluTe@dv<]2v#rb5}E*d V(RcA;/\=-cPCgp| Gd Zi6oaNJs[rA7k}1XFUh8]@68`'JXMO\#3heWE+!^ UqjW?N*T04&YBuG%m$>7 xU0Ve&W`H6v 5a+;TIoDMwNq\|ypJyMYff3_;z!~S1}[Z/&@B'AK-F:K>3C"tc^n40 *_wQ? ~-got D'g|Ixl 9_722L:zH]{"#<Rn.~=x)^lmn>!ak[Qi% ZO {+{m=bRG (.EL9$)<p l  "jP@B H @"R"0A 1 B`Q @  @A @":&$!!  h*2 8 ! L$h 0([< F($@@@@\0 AX ! ((APz@B",(6hp@Ki`@@„TA%"@ J h p 0J0 A$@ hL&@r @ D"q9 a0`d 4H@@ M b  P AP`lmtvxy{~  !"#$'()*+,./235679:;<=>BGJLOPTUY[\]_cefhikmpqsuvx{~[W|(B=z ҽ9:bo}v6P y#*J.MZHE OJLës]i!˿CvFA_UEv~]F2DsChӺ޸$m {Mvs39 ݺ<̑iۅČ\M-leWil/} @x=e1ܧHV@.iǕ8_5*WR1ߢtGaijzDH+R(T}ӈI \5S{*<4eIy3fʿ+ O m+D%i9*ֈjhy7*nߣl׿Dn]<XKٸᭃiu'6{Ox߂I3@l,ņ;r:C%/o3$ߵYM4bj&ٰY 'JZYqcɨ~:-rIku}RO>bd |!خBGoIYy_|iuf<]Z[45.6_x-ZQ/c.v iu[=y&u}XKڐZYnrhi<(7fO0'k3w:G.97kzN0{@-r gTEt*xb'S^=:Fk!WSખs 9Mo iS[;zӬ*m&} YЃbD+Y`]kr&|Hi]ml, 5%PcIcw$`1(SgS7_ʕZxإ<(N${.f3(skЯݍt6\(z#\exQ=bSZ"?JŒѧ5Vߨ0:məL)˥Fƾ>ƔM9ܠ1gJ Rxi8ex@Q 5{lΞ i<\FW! w.wV}sTT`Dw'(LPi{ NV(406bUc\U+IiRrXOG2 >OR;w+ 9=2D T Da< S'C JLP.P^;zRai~ } ?8LS+V%4St;dK  [DSEI!WZIjVJ P; Y52'Gv:^7+me8!Y=]J;VX,&15 7#k;J. =,] NQ<@YfM[8,U, C> Sq;=+pux\A.>Hg40:6Dff =T$K ;YM zL QZ<<#ZC:$!eWCDG'<LI%8 W W|6\]   O l1i( j Zk <lKK, M JF"kV 0@V>3)  dX P %1l = Dء, 7$"! 'T@@; h| < ;P  7B <$ Dl j(!x / " g"  > D" g7"! [)  $* h 6+`!$PP( '  `Z O, Y p% _R '3  E" YR  + =x  *9x   H!( Qb0k l C=  <@ = A#@  f  c@w SY  ,Y  K n} 4  +H  ( 12 ( Ah4( O _8S@ rV9 B; 7'h  *c | x 7+ !/?0#" }Q" W HQ ?H"" 2P 4" .| @  e2" )L d `U  > D" ]> `H[ v)   ,D! OX c ^e ^H"" X0 IDY _R U>  D  U3\" [L   = *1  =:  x`pU$ .{ L `.u  n`  K # G`1@ .q  & p  @|8 '8 x aV8 xag Y` @ +|d 5(" pbo _Px rN+ !" Z$  vS \v+@!8+p K+A  ci   L  TIg >Pv+ !_PR 6h [md/ 4  ?\D  0 l }5T 8$ G;H R,U  7+ !K+4!9sT7  Y8# )  dP H" F" ?Ie C LL % 8l -m  Kh +P  g_hR &`] ( DHp  O8t 8+ !sG9d /  "=D jOt 50; ! ( ,X  PXm q  Vi $ Z  =P ) 0   !   "  [0t iQ" Q (  $  I_ x*8 b]P )H   0" )^Q( K ?[(t S4T #$( Y  [ H" (\ ]P, 2  ] Q@ \<  `C(," F+ QRX L 1 , f/ + \ hDp $ 0  (   g g  X*-  f) p   W(# i(! ^R( `xS WOt gS@l :Q" E6n W ~]P kjP)! HU BA\ h  P8 8- U" aiD" vi H XV  Xt !  GYn x2" J  ^R cX  c rPx  [ x ]P L(+" mQ U"  ?l4: `O " U,  ^-f X HPB| MH] }OX >@A" H(O vdX _R  dc| ]H,  >\ d H\|" & PT" ]LQD +K  1y H 3\ " S# >dT yX  I*x  ^R( OVp3 apf8"   5xlT 3P% $  - l  .@! ! #  F,S t 2(" 9,LR H d i!x 9  E@ bhp <9 &T  c QQܩ| p^R \^QH WH<  ath wX  `' X yh g ? o  L@" !MP?" &TQ P gAX / L bsx %X D+= t h<  @ , Q  5(  &" < Bp  d4 3l" 6L" Y?X'" q/  S \0` |-  ` V@" bIm /`PT j(|  Z`Tx ) , ( P (<`  Q < Y\ `U Hh YV(6 gx Q6q HlL 4A  ZD eX E$" t 4#  PT" N #l  `D O8" H^QH K CB  &4'" N N  *h; t Y[ 7"! jG! 4 Pl __gmon_start___ITM_deregisterTMCloneTable_ITM_registerTMCloneTable__cxa_finalize__aeabi_uidiv_ZN2cv3ocl6Device10getDefaultEv_ZNK2cv11_InputArray5emptyEv_ZNK2cv3ocl6Device14doubleFPConfigEv_ZNK2cv11_InputArray4typeEi_ZNK2cv11_InputArray5depthEi_ZNK2cv3ocl6Device8vendorIDEv_ZNK2cv3ocl8internal12ProgramEntrycvRNS0_13ProgramSourceEEv_ZN2cv3ocl9typeToStrEi_ZN2cv3ocl14convertTypeStrEiiiPc_ZN2cv6formatEPKcz_ZN2cv3ocl6KernelC1EPKcRKNS0_13ProgramSourceERKNS_6StringEPS7__ZN2cv6String10deallocateEv_ZNK2cv3ocl6Kernel5emptyEv_ZNK2cv11_InputArray7getUMatEi_ZN2cv3ocl9KernelArgC1EiPNS_4UMatEiiPKvj_ZN2cv3ocl6Kernel3setEiRKNS0_9KernelArgE_ZN2cv3ocl5QueueC1Ev_ZN2cv3ocl6Kernel3runEiPjS2_bRKNS0_5QueueE_ZN2cv3ocl5QueueD1Ev_ZN2cv4UMatD1Ev_ZN2cv3ocl6KernelD1Ev_ZN2cv7noArrayEv_ZN2cv3ocl28predictOptimalVectorWidthMaxERKNS_11_InputArrayES3_S3_S3_S3_S3_S3_S3_S3__ZN2cv3ocl6Kernel3setEiPKvj__cxa_end_cleanup__gxx_personality_v0_ZN2cv3MatD2Ev_ZN2cv8fastFreeEPv_ZN2cv3Mat10deallocateEv_ZN2cv3MatD1Ev_ZN2cv10accumulateERKNS_11_InputArrayERKNS_17_InputOutputArrayES2__ZN2cv5utils5trace7details6RegionC1ERKNS3_21LocationStaticStorageE_ZNK2cv11_InputArray8sameSizeERKS0__ZN2cv6String8allocateEj_ZN2cv5errorEiRKNS_6StringEPKcS4_i_ZN2cv3ocl9useOpenCLEv_ZNK2cv11_InputArray4dimsEi_ZNK2cv11_InputArray4kindEv_ZN2cv15NAryMatIteratorC1EPPKNS_3MatEPPhi_ZN2cv15NAryMatIteratorppEv_ZNK2cv11_InputArray7getMat_Ei_ZN2cv5utils5trace7details6Region7destroyEv_ZN2cv3Mat8copySizeERKS0__ZN2cv16accumulateSquareERKNS_11_InputArrayERKNS_17_InputOutputArrayES2__ZN2cv17accumulateProductERKNS_11_InputArrayES2_RKNS_17_InputOutputArrayES2__ZN2cv18accumulateWeightedERKNS_11_InputArrayERKNS_17_InputOutputArrayEdS2_cvAcc_ZN2cv10cvarrToMatEPKvbbiPNS_10AutoBufferIdLj136EEEcvSquareAcccvMultiplyAcccvRunningAvg__aeabi_idivmod_Znaj_ZdaPv__cxa_throw_bad_array_new_length__aeabi_unwind_cpp_pr1memcpycvStartWriteSeqcvEndWriteSeqcvCreateSeqBlockcvStartReadChainPointscvChangeSeqBlocksqrtcvApproxChainscvBoundingRect_ZN2cv12approxPolyDPERKNS_11_InputArrayERKNS_12_OutputArrayEdb_ZNK2cv3Mat11checkVectorEiib_ZNK2cv3Mat6copyToERKNS_12_OutputArrayE_ZNK2cv12_OutputArray7releaseEvcvApproxPolycvPointSeqFromMatcvCvtSeqToArraycvCreateSeqcvSeqPushMulti_ZN2cv16ParallelLoopBodyD2Ev_ZdlPvj__cxa_guard_acquire__cxa_guard_release__aeabi_idiv_ZN2cv11blendLinearERKNS_11_InputArrayES2_S2_S2_RKNS_12_OutputArrayE_ZNK2cv11_InputArray4sizeEi_ZNK2cv12_OutputArray6createENS_5Size_IiEEiibi_ZN2cv13parallel_for_ERKNS_5RangeERKNS_16ParallelLoopBodyEd_ZTVN10__cxxabiv120__si_class_type_infoE_ZTIN2cv16ParallelLoopBodyE_ZN2cv5MutexD1Ev_ZNSt11_Deque_baseIPhSaIS0_EED2Ev_ZdlPv_ZNSt11_Deque_baseIPhSaIS0_EED1Ev_ZNSt11_Deque_baseIPhSaIS0_EE17_M_initialize_mapEj_Znwj__cxa_begin_catch__cxa_rethrow__cxa_end_catch_ZNSt5dequeIPhSaIS0_EE17_M_reallocate_mapEjbmemmove_ZSt17__throw_bad_allocv__aeabi_unwind_cpp_pr0_ZN2cv5CannyERKNS_11_InputArrayERKNS_12_OutputArrayEddib_ZNK2cv11_InputArray8channelsEi_ZNK2cv3ocl6Device16maxWorkGroupSizeEv_ZN2cv5SobelERKNS_11_InputArrayERKNS_12_OutputArrayEiiiiddi_ZN2cv4UMat6createEiPKiiNS_14UMatUsageFlagsE_ZN2cv13getNumThreadsEv_ZN2cv15getNumberOfCPUsEv_ZN2cv5MutexC1Ev_ZN2cv3Mat6createEiPKii_ZN2cv3MatC1ERKS0_RKNS_5RangeES5__ZN2cv3Mat5setToERKNS_11_InputArrayES3__ZNK2cv11_InputArray11isSubmatrixEi_ZN2cv3ocl14memopTypeToStrEicvCanny_ZN2cv5CannyERKNS_11_InputArrayES2_RKNS_12_OutputArrayEddb_ZN2cv4UMat8copySizeERKS0__ZN2cv4UMat10deallocateEv_ZNSt5dequeIPhSaIS0_EE24_M_new_elements_at_frontEj_ZSt20__throw_length_errorPKc_ZNSt5dequeIPhSaIS0_EE23_M_new_elements_at_backEj_ZNSt5dequeIPhSaIS0_EE13_M_insert_auxISt15_Deque_iteratorIS0_RS0_PS0_EEEvS7_T_S8_jmemset_ZN2cv5Mutex4lockEv_ZN2cv5Mutex6unlockEv_ZN2cv3MatC1ERKS0_RKNS_5Rect_IiEE_ZN2cv9AlgorithmD2Ev_ZTVN2cv5CLAHEE_ZN2cv14copyMakeBorderERKNS_11_InputArrayERKNS_12_OutputArrayEiiiiiRKNS_7Scalar_IdEE_ZNK2cv3ocl6Device4typeEv_ZNK2cv3ocl6Kernel29preferedWorkGroupSizeMultipleEv_ZNK2cv12_OutputArray6createEiiiibi_ZN2cv11createCLAHEEdNS_5Size_IiEE_ZN2cv9AlgorithmC2Ev_ZTVN10__cxxabiv117__class_type_infoE_ZTSN2cv5CLAHEE_ZTIN2cv5CLAHEE_ZTIN2cv9AlgorithmE_ZNK2cv9Algorithm4saveERKNS_6StringE_ZNK2cv9Algorithm14getDefaultNameEv__cxa_pure_virtual_ZN2cv9softfloatC1Ei_ZNK2cv9softfloatmlERKS0__ZNK2cv9softfloatmiERKS0__ZNK2cv9softfloatplERKS0__ZNK2cv9softfloatdvERKS0__ZN2cv6mulAddERKNS_9softfloatES2_S2__ZNK2cv9softfloatltERKS0__ZN2cv4cbrtERKNS_9softfloatE_ZNK2cv10softdoubledvERKS0__ZNK2cv10softdoublecvNS_9softfloatEEv_ZNK2cv9softfloatcvNS_10softdoubleEEv_ZNK2cv10softdoubleleERKS0__ZNK2cv10softdoublemlERKS0__ZNK2cv10softdoubleplERKS0__ZN2cv3powERKNS_10softdoubleES2__ZNK2cv10softdoublemiERKS0__Z7cvRoundRKN2cv9softfloatE_Z7cvTruncRKN2cv9softfloatE_ZN2cv10softdoubleC1Ei_ZNK2cv9softfloatgtERKS0___cxa_guard_abort_ZN2cv6StringC2EPKcstrlen_ZN2cv6StringC1EPKc_ZNK2cv11_InputArray6getMatEi__aeabi_uidivmod_ZN2cv3MatC2EiiiPvj_ZN2cv3MatC1EiiiPvj_ZN2cv3MataSEOS0__ZNK2cv4UMat5emptyEv_ZN2cv4UMataSEOS0__ZN2cv8cubeRootEf_ZN2cv3hal11cvtBGRtoBGREPKhjPhjiiiiib_ZN2cv3hal14cvtBGRtoBGR5x5EPKhjPhjiiibi_ZN2cv3hal14cvtBGR5x5toBGREPKhjPhjiiibi_ZN2cv3hal12cvtBGRtoGrayEPKhjPhjiiiib_ZN2cv3hal12cvtGraytoBGREPKhjPhjiiii_ZN2cv3hal15cvtBGR5x5toGrayEPKhjPhjiii_ZN2cv3hal15cvtGraytoBGR5x5EPKhjPhjiii_ZN2cv3hal11cvtBGRtoYUVEPKhjPhjiiiibb_ZN2cv3hal11cvtYUVtoBGREPKhjPhjiiiibb_ZN2cv3hal11cvtBGRtoXYZEPKhjPhjiiiib_ZN2cv3hal11cvtBGRtoHSVEPKhjPhjiiiibbb_ZN2cv3hal11cvtHSVtoBGREPKhjPhjiiiibbb_ZN2cv3hal11cvtBGRtoLabEPKhjPhjiiiibbb_Z7cvRoundRKN2cv10softdoubleE_ZNK2cv10softdoubleeqERKS0__ZN2cv3hal11cvtLabtoBGREPKhjPhjiiiibbb_ZN2cv3hal19cvtTwoPlaneYUVtoBGREPKhjPhjiiibi_ZN2cv3hal21cvtThreePlaneYUVtoBGREPKhjPhjiiibi_ZN2cv3hal21cvtBGRtoThreePlaneYUVEPKhjPhjiiibi_ZN2cv3hal19cvtOnePlaneYUVtoBGREPKhjPhjiiibii_ZN2cv3hal23cvtRGBAtoMultipliedRGBAEPKhjPhjii_ZN2cv3hal23cvtMultipliedRGBAtoRGBAEPKhjPhjii_ZN2cv3ocl6Kernel4argsINS0_9KernelArgES3_S3_S3_ffEERS1_RKT_RKT0_RKT1_RKT2_RKT3_RKT4__ZN2cv3hal11cvtXYZtoBGREPKhjPhjiiiib_ZN2cv8cvtColorERKNS_11_InputArrayERKNS_12_OutputArrayEii_ZN2cv3ocl6KernelC1Ev_ZN2cv3ocl6DeviceC1ERKS1__ZNK2cv11_InputArray6copyToERKNS_12_OutputArrayE_ZN2cv14extractChannelERKNS_11_InputArrayERKNS_12_OutputArrayEi_ZN2cv11demosaicingERKNS_11_InputArrayERKNS_12_OutputArrayEii_ZN2cv3ocl6Kernel6createEPKcRKNS0_13ProgramSourceERKNS_6StringEPS7__ZN2cv3ocl6DeviceD1Ev_ZN2cv4UMatC1ERKS0_RKNS_5RangeES5__ZNK2cv4UMat6copyToERKNS_12_OutputArrayE__aeabi_atexitcvCvtColor_ZNK2cv3Mat7reshapeEii_ZN2cv7sortIdxERKNS_11_InputArrayERKNS_12_OutputArrayEi_ZN2cv3LUTERKNS_11_InputArrayES2_RKNS_12_OutputArrayE_ZN2cv13applyColorMapERKNS_11_InputArrayERKNS_12_OutputArrayES2__ZN2cv3Mat5zerosENS_5Size_IiEEi_ZN2cv5mergeEPKNS_3MatEjRKNS_12_OutputArrayE_ZNK2cv3Mat9convertToERKNS_12_OutputArrayEidd_ZN2cv13applyColorMapERKNS_11_InputArrayERKNS_12_OutputArrayEi_ZNSt8ios_base4InitC1Ev_ZNSt8ios_base4InitD1Ev__aeabi_ul2d_ZN2cv10fastMallocEj_ZN2cv24currentParallelFrameworkEv_ZN2cv13setNumThreadsEi_ZN2cv19connectedComponentsERKNS_11_InputArrayERKNS_12_OutputArrayEiii_ZN2cv19connectedComponentsERKNS_11_InputArrayERKNS_12_OutputArrayEii_ZdaPvj_ZN2cv28connectedComponentsWithStatsERKNS_11_InputArrayERKNS_12_OutputArrayES5_S5_iii_ZN2cv28connectedComponentsWithStatsERKNS_11_InputArrayERKNS_12_OutputArrayES5_S5_ii_ZNK2cv14DefaultDeleterI12CvMemStorageEclEPS1_cvGetMatcvAlloccvSaveMemStoragePoscvCreateChildMemStoragecvCreateSetcvThresholdcvStartAppendToSeqcvFlushSeqWritercvStartReadSeqcvReadChainPointcvStartFindContourscvSubstituteContourcvFindNextContourcvInsertNodeIntoTreecvSetAddcvClearMemStoragecvRestoreMemStoragePoscvEndFindContourscvReleaseMemStoragecvFree_cvFindContours_ZN2cv12findContoursERKNS_17_InputOutputArrayERKNS_12_OutputArrayES5_iiNS_6Point_IiEEcvCreateMemStorage_ZNK2cv12_OutputArray6neededEv_ZNK2cv12_OutputArray5clearEvcvTreeToNodeSeq_ZN2cv12findContoursERKNS_17_InputOutputArrayERKNS_12_OutputArrayEiiNS_6Point_IiEE_ZN2cv15isContourConvexERKNS_11_InputArrayEcvConvexityDefectscvMakeSeqHeaderForArraycvSeqElemIdxcvSetSeqReaderPoscvGetSeqElemcvCheckContourConvexity_ZN2cv10convexHullERKNS_11_InputArrayERKNS_12_OutputArrayEbb_ZNK2cv12_OutputArray9fixedTypeEvcvConvexHull2cvClearSeqcvSeqPush_ZN2cv16convexityDefectsERKNS_11_InputArrayES2_RKNS_12_OutputArrayE_ZNK2cv4UMat9locateROIERNS_5Size_IiEERNS_6Point_IiEE_ZN2cv6ScharrERKNS_11_InputArrayERKNS_12_OutputArrayEiiiddi_ZNK2cv12_OutputArray14createSameSizeERKNS_11_InputArrayEi_ZN2cv9boxFilterERKNS_11_InputArrayERKNS_12_OutputArrayEiNS_5Size_IiEENS_6Point_IiEEbisqrtf_ZN2cv17cornerMinEigenValERKNS_11_InputArrayERKNS_12_OutputArrayEiii_ZN2cv12cornerHarrisERKNS_11_InputArrayERKNS_12_OutputArrayEiidi_ZN2cv22cornerEigenValsAndVecsERKNS_11_InputArrayERKNS_12_OutputArrayEiii_ZN2cv15preCornerDetectERKNS_11_InputArrayERKNS_12_OutputArrayEiicvCornerMinEigenValcvCornerHarriscvCornerEigenValsAndVecscvPreCornerDetect_ZN2cv12cornerSubPixERKNS_11_InputArrayERKNS_17_InputOutputArrayENS_5Size_IiEES7_NS_12TermCriteriaEexpf_ZN2cv13getRectSubPixERKNS_11_InputArrayENS_5Size_IiEENS_6Point_IfEERKNS_12_OutputArrayEicvFindCornerSubPix_ZN2cv3MataSERKNS_7Scalar_IdEE_ZNK2cv11_InputArray6offsetEi_ZNK2cv11_InputArray4stepEi_ZNK2cv11_InputArray4colsEi_ZNK2cv11_InputArray4rowsEi_ZN2cv3ocl11kernelToStrERKNS_11_InputArrayEiPKcsprintf_ZN2cv15getDerivKernelsERKNS_12_OutputArrayES2_iiibi_ZN2cv11sepFilter2DERKNS_11_InputArrayERKNS_12_OutputArrayEiS2_S2_NS_6Point_IiEEdi_ZN2cv9LaplacianERKNS_11_InputArrayERKNS_12_OutputArrayEiiddi_ZN2cv8filter2DERKNS_11_InputArrayERKNS_12_OutputArrayEiS2_NS_6Point_IiEEdi_ZN2cv3addERKNS_11_InputArrayES2_RKNS_12_OutputArrayES2_i_ZNK2cv3Mat9locateROIERNS_5Size_IiEERNS_6Point_IiEE_ZNK2cv3ocl6Device12localMemSizeEvcvSobelcvLaplace_ZN2cv17distanceTransformERKNS_11_InputArrayERKNS_12_OutputArrayES5_iii_ZN2cveqERKNS_3MatEd_ZN2cv17distanceTransformERKNS_11_InputArrayERKNS_12_OutputArrayEiiicvDistTransform__aeabi_l2d__aeabi_d2lz_ZN2cv8clipLineENS_5Size_IxEERNS_6Point_IxEES4___aeabi_ldivmod_ZN2cv8clipLineENS_5Size_IiEERNS_6Point_IiEES4__ZN2cv8clipLineENS_5Rect_IiEERNS_6Point_IiEES4__ZN2cv12LineIteratorC2ERKNS_3MatENS_6Point_IiEES5_ib_ZN2cv12LineIteratorC1ERKNS_3MatENS_6Point_IiEES5_ib_ZN2cv14fillConvexPolyERNS_3MatEPKNS_6Point_IiEEiRKNS_7Scalar_IdEEii_ZN2cv15scalarToRawDataERKNS_7Scalar_IdEEPvii_ZN2cv11getTextSizeERKNS_6StringEidiPi_ZN2cv14fillConvexPolyERKNS_17_InputOutputArrayERKNS_11_InputArrayERKNS_7Scalar_IdEEiicvClipLinecvColorToScalarcvInitLineIteratorcvFillConvexPolycvInitFontcvGetTextSize_ZN2cv12ellipse2PolyENS_6Point_IdEENS_5Size_IdEEiiiiRSt6vectorIS1_SaIS1_EE_ZN2cv12ellipse2PolyENS_6Point_IiEENS_5Size_IiEEiiiiRSt6vectorIS1_SaIS1_EEcvEllipse2Poly_ZN2cv4lineERKNS_17_InputOutputArrayENS_6Point_IiEES4_RKNS_7Scalar_IdEEiii_ZN2cv10drawMarkerERNS_3MatENS_6Point_IiEERKNS_7Scalar_IdEEiiii_ZN2cv11arrowedLineERKNS_17_InputOutputArrayENS_6Point_IiEES4_RKNS_7Scalar_IdEEiiidatan2sincoscvLine_ZN2cv7putTextERKNS_17_InputOutputArrayERKNS_6StringENS_6Point_IiEEidNS_7Scalar_IdEEiibcvPutText_ZN2cv9rectangleERKNS_17_InputOutputArrayENS_6Point_IiEES4_RKNS_7Scalar_IdEEiii_ZN2cv9rectangleERNS_3MatENS_5Rect_IiEERKNS_7Scalar_IdEEiiicvRectangleRcvRectangle_ZN2cv9polylinesERNS_3MatEPKPKNS_6Point_IiEEPKiibRKNS_7Scalar_IdEEiii_ZN2cv9polylinesERKNS_17_InputOutputArrayERKNS_11_InputArrayEbRKNS_7Scalar_IdEEiii_ZNK2cv11_InputArray5totalEicvPolyLine_ZN2cv6circleERKNS_17_InputOutputArrayENS_6Point_IiEEiRKNS_7Scalar_IdEEiiicvCircle_ZN2cv7ellipseERKNS_17_InputOutputArrayENS_6Point_IiEENS_5Size_IiEEdddRKNS_7Scalar_IdEEiiicvEllipse_ZN2cv7ellipseERKNS_17_InputOutputArrayERKNS_11RotatedRectERKNS_7Scalar_IdEEii_ZN2cv8fillPolyERNS_3MatEPPKNS_6Point_IiEEPKiiRKNS_7Scalar_IdEEiiS3__ZN2cv8fillPolyERKNS_17_InputOutputArrayERKNS_11_InputArrayERKNS_7Scalar_IdEEiiNS_6Point_IiEEcvFillPolycvDrawContourscvInitTreeNodeIteratorcvNextTreeNode_ZN2cv12drawContoursERKNS_17_InputOutputArrayERKNS_11_InputArrayEiRKNS_7Scalar_IdEEiiS5_iNS_6Point_IiEEcvCalcEMD2_ZN2cv3EMDERKNS_11_InputArrayES2_iS2_PfRKNS_12_OutputArrayE_ZN2cv10wrapperEMDERKNS_11_InputArrayES2_iS2_NS_3PtrIfEERKNS_12_OutputArrayE_ZNSt6vectorIPKfSaIS1_EE17_M_realloc_insertIJS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT__ZN2cv19goodFeaturesToTrackERKNS_11_InputArrayERKNS_12_OutputArrayEiddS2_iibd_ZN2cv9minMaxLocERKNS_11_InputArrayEPdS3_PNS_6Point_IiEES6_S2__ZN2cv9thresholdERKNS_11_InputArrayERKNS_12_OutputArrayEddi_ZN2cv6dilateERKNS_11_InputArrayERKNS_12_OutputArrayES2_NS_6Point_IiEEiiRKNS_7Scalar_IdEE_ZNK2cv3ocl6Device15maxComputeUnitsEv_ZN2cv3ocl6Kernel7runTaskEbRKNS0_5QueueE_ZNK2cv4UMat6getMatEi_ZN2cv19goodFeaturesToTrackERKNS_11_InputArrayERKNS_12_OutputArrayEiddS2_ibdcvGoodFeaturesToTrack_ZN2cv17borderInterpolateEiii_ZN2cv3MatC2ERKS0__ZN2cv3MatC1ERKS0__ZN2cv3MatC2ENS_5Size_IiEEiPvj_ZN2cv3MatC1ENS_5Size_IiEEiPvj_ZN2cv3MataSERKS0__ZN2cv20checkHardwareSupportEi_ZN2cv3hal8Filter2D6createEPhjiiiiiiiidiibb_ZN2cv3hal11SepFilter2D6createEiiiPhiS2_iiidi_ZN2cv3ocl6Kernel4argsINS0_9KernelArgEiiiiiiiS3_iiiiEERS1_RKT_RKT0_RKT1_RKT2_RKT3_RKT4_RKT5_RKT6_RKT7_RKT8_RKT9_RKT10_RKT11__ZNSt6vectorIiSaIiEE17_M_default_appendEj_ZNSt6vectorIhSaIhEE17_M_default_appendEj_ZNSt6vectorIPhSaIS0_EE17_M_default_appendEj_ZN2cv3hal11sepFilter2DEiiiPhjS1_jiiiiiiS1_iS1_iiidi_ZNK2cv3ocl6Device17hostUnifiedMemoryEv_ZN2cv12countNonZeroERKNS_11_InputArrayE_ZN2cv3hal8filter2DEiiiPhjS1_jiiiiiiS1_jiiiidib_ZNSt6vectorIfSaIfEE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPfS1_EEjRKf_ZNK2cv3ocl6Kernel13workGroupSizeEvcvFilter2D_ZN2cv9floodFillERKNS_17_InputOutputArrayES2_NS_6Point_IiEENS_7Scalar_IdEEPNS_5Rect_IiEES6_S6_i_ZN2cv9floodFillERKNS_17_InputOutputArrayENS_6Point_IiEENS_7Scalar_IdEEPNS_5Rect_IiEES6_S6_icvFloodFill_ZN2cv14getGaborKernelENS_5Size_IiEEdddddiexp_ZTVN2cv16GeneralizedHoughE_ZN2cv9fastAtan2Eff_ZN2cv29createGeneralizedHoughBallardEv_ZN2cv26createGeneralizedHoughGuilEv_ZNSt6vectorISt4pairIdiESaIS1_EE17_M_realloc_insertIJS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT__ZTSN2cv16GeneralizedHoughE_ZTIN2cv16GeneralizedHoughE_ZTSN2cv23GeneralizedHoughBallardE_ZTIN2cv23GeneralizedHoughBallardE_ZTSN2cv20GeneralizedHoughGuilE_ZTIN2cv20GeneralizedHoughGuilE_ZTVN10__cxxabiv121__vmi_class_type_infoEcvMaxRectcvBoxPoints_ZNK2cv11RotatedRect6pointsEPNS_6Point_IfEE_ZN2cv16pointPolygonTestERKNS_11_InputArrayENS_6Point_IfEEbcvPointPolygonTest_ZN2cv21intersectConvexConvexERKNS_11_InputArrayES2_RKNS_12_OutputArrayEb_ZN2cv11contourAreaERKNS_11_InputArrayEb_ZN2cv4flipERKNS_11_InputArrayERKNS_12_OutputArrayEi_ZN2cv7grabCutERKNS_11_InputArrayERKNS_17_InputOutputArrayENS_5Rect_IiEES5_S5_ii_ZNK2cv12_OutputArray9getMatRefEilog_ZN2cv6kmeansERKNS_11_InputArrayEiRKNS_17_InputOutputArrayENS_12TermCriteriaEiiRKNS_12_OutputArrayEcvStartWriteStructcvWriteIntcvWritecvEndWriteStructcvGetDimscvWriteRawData_ZN2cv3ocl25predictOptimalVectorWidthERKNS_11_InputArrayES3_S3_S3_S3_S3_S3_S3_S3_NS0_17OclVectorStrategyE_ZNK2cv11_InputArray12isContinuousEicvReleaseHistcvReleaseDatacvReleaseSparseMatcvGetFileNodeByNamecvReadcvInitMatNDHeadercvReleaseMatcvStartReadRawDatacvReadRawDataSlice_ZN2cv11compareHistERKNS_11_InputArrayES2_i_ZN2cv15NAryMatIteratorC1EPPKNS_3MatEPS1_i_ZN2cv11compareHistERKNS_9SparseMatES2_i_ZN2cv22SparseMatConstIteratorC1EPKNS_9SparseMatE_ZN2cv9SparseMat3ptrEPKibPj_ZN2cv22SparseMatConstIteratorppEvcvClearHistcvSetZerocvThreshHistcvInitSparseMatIteratorcvNormalizeHistcvSumcvConvertScalecvGetMinMaxHistValuecvMinMaxLoccvCompareHistcvPtrND_ZNK11CvSparseMat15copyToSparseMatERN2cv9SparseMatEcvSetHistBinRangescvCreateHistcvCreateSparseMatcvCreateDatacvMakeHistHeaderForArraycvCopyHistcvCopycvCalcBayesianProbcvAddcvDivcvMulcvCalcProbDensitycvInitNArrayIteratorcvNextNArraySlice_ZN2cv12equalizeHistERKNS_11_InputArrayERKNS_12_OutputArrayEcvEqualizeHist_ZNSt6vectorIN2cv4UMatESaIS1_EED2Ev_ZNSt6vectorIN2cv4UMatESaIS1_EED1Ev_ZNSt6vectorIN2cv3MatESaIS1_EED2Ev_ZNSt6vectorIN2cv3MatESaIS1_EED1Ev_ZNSt6vectorIjSaIjEE17_M_default_appendEj_ZNSt6vectorIdSaIdEE17_M_default_appendEj_ZN2cv8calcHistEPKNS_3MatEiPKiRKNS_11_InputArrayERKNS_12_OutputArrayEiS4_PPKfbb_ZNK2cv12_OutputArray6createEiPKiiibi_ZN2cv8calcHistERKNS_11_InputArrayERKSt6vectorIiSaIiEES2_RKNS_12_OutputArrayES7_RKS3_IfSaIfEEb_ZNK2cv11_InputArray13getUMatVectorERSt6vectorINS_4UMatESaIS2_EE_ZN2cv9SparseMat6createEiPKii_ZN2cv22SparseMatConstIteratorC2EPKNS_9SparseMatE_ZN2cv8calcHistEPKNS_3MatEiPKiRKNS_11_InputArrayERNS_9SparseMatEiS4_PPKfbbcvCalcArrHistcvCalcArrBackProjectPatchcvGetImage_ZN2cv15calcBackProjectEPKNS_3MatEiPKiRKNS_11_InputArrayERKNS_12_OutputArrayEPPKfdb_ZN2cv15calcBackProjectERKNS_11_InputArrayERKSt6vectorIiSaIiEES2_RKNS_12_OutputArrayERKS3_IfSaIfEEd_ZN2cv3MatC1EiPKiiPvPKj_ZN2cv15calcBackProjectEPKNS_3MatEiPKiRKNS_9SparseMatERKNS_12_OutputArrayEPPKfdbcvCalcArrBackProject_ZN6CvTypeC1EPKcPFiPKvEPFvPPvEPFS6_P13CvFileStorageP10CvFileNodeEPFvSB_S1_S3_10CvAttrListEPFS6_S3_E_ZN6CvTypeD1Ev_ZNK2cv14DefaultDeleterI5CvMatEclEPS1__ZN2cv4UMat5setToERKNS_11_InputArrayES3__ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT__ZN2cv3Mat5zerosEiii_ZN2cv11HoughLinesPERKNS_11_InputArrayERKNS_12_OutputArrayEddidd_ZN2cv4UMataSERKNS_7Scalar_IdEE_ZNK2cv12_OutputArray6assignERKNS_4UMatEcvFastArctan_ZN2cv10HoughLinesERKNS_11_InputArrayERKNS_12_OutputArrayEddiddddcvHoughLines2cvHoughCirclescvCreateMatcvPow_ZN2cv12HoughCirclesERKNS_11_InputArrayERKNS_12_OutputArrayEiddddii_ZN2cv6StringpLEPKc_ZN2cv3ocl13ProgramSourceC1ERKS1__ZN2cv3ocl13ProgramSourceD1Ev_ZN2cv6invertERKNS_11_InputArrayERKNS_12_OutputArrayEi_ZN2cv5remapERKNS_11_InputArrayERKNS_12_OutputArrayES2_S2_iiRKNS_7Scalar_IdEE_ZN2cv11convertMapsERKNS_11_InputArrayES2_RKNS_12_OutputArrayES5_ib_ZN2cv5splitERKNS_3MatEPS0__ZN2cv3hal10warpAffineEiPKhjiiPhjiiPKdiiS5__ZN2cv10warpAffineERKNS_11_InputArrayERKNS_12_OutputArrayES2_NS_5Size_IiEEiiRKNS_7Scalar_IdEE_ZN2cv3hal14warpPerspectveEiPKhjiiPhjiiPKdiiS5__ZN2cv15warpPerspectiveERKNS_11_InputArrayERKNS_12_OutputArrayES2_NS_5Size_IiEEiiRKNS_7Scalar_IdEE_ZN2cv19getRotationMatrix2DENS_6Point_IfEEdd_ZN2cv23getPerspectiveTransformEPKNS_6Point_IfEES3__ZN2cv5solveERKNS_11_InputArrayES2_RKNS_12_OutputArrayEi_ZN2cv18getAffineTransformEPKNS_6Point_IfEES3__ZN2cv21invertAffineTransformERKNS_11_InputArrayERKNS_12_OutputArrayE_ZN2cv23getPerspectiveTransformERKNS_11_InputArrayES2__ZN2cv18getAffineTransformERKNS_11_InputArrayES2_cvWarpAffinecvWarpPerspectivecvRemapcv2DRotationMatrixcvGetPerspectiveTransformcvGetAffineTransformcvConvertMaps_ZN2cv8logPolarERKNS_11_InputArrayERKNS_12_OutputArrayENS_6Point_IfEEdi_ZN2cv11cartToPolarERKNS_11_InputArrayES2_RKNS_12_OutputArrayES5_b_ZN2cv3logERKNS_11_InputArrayERKNS_12_OutputArrayE_ZN2cv3ocl7ProgramC1ERKNS0_13ProgramSourceERKNS_6StringERS5__ZN2cv3ocl6KernelC1EPKcRKNS0_7ProgramE_ZN2cv3ocl7ProgramD1Ev_ZN2cv11linearPolarERKNS_11_InputArrayERKNS_12_OutputArrayENS_6Point_IfEEdicvLogPolarcvCartToPolarcvLogcvLinearPolar_ZN2cv28rotatedRectangleIntersectionERKNS_11RotatedRectES2_RKNS_12_OutputArrayEsincosf_ZN2cv5eigenERKNS_11_InputArrayERKNS_12_OutputArrayES5__ZN2cv7fitLineERKNS_11_InputArrayERKNS_12_OutputArrayEidddacoscvFitLine_ZTVN2cv19LineSegmentDetectorE_ZN2cv25createLineSegmentDetectorEiddddddi_ZN2cv11bitwise_xorERKNS_11_InputArrayES2_RKNS_12_OutputArrayES2__ZNK2cv3Mat7reshapeEiiPKipowsinhlog10_ZNSt6vectorIdSaIdEE17_M_realloc_insertIJRKdEEEvN9__gnu_cxx17__normal_iteratorIPdS1_EEDpOT__ZN2cv3MatC2ERKS0_RKNS_5RangeES5__ZNSt6vectorIN2cv3MatESaIS1_EE17_M_realloc_insertIJRKS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT__ZN2cv5mergeERKNS_11_InputArrayERKNS_12_OutputArrayE_ZN2cv12GaussianBlurERKNS_11_InputArrayERKNS_12_OutputArrayENS_5Size_IiEEddi_ZN2cv6resizeERKNS_11_InputArrayERKNS_12_OutputArrayENS_5Size_IiEEddi_ZTSN2cv19LineSegmentDetectorE_ZTIN2cv19LineSegmentDetectorE_ZN2cv11matchShapesERKNS_11_InputArrayES2_id_ZN2cv7momentsERKNS_11_InputArrayEb_ZN2cv9HuMomentsERKNS_7MomentsEPdcvMatchShapes_ZN2cv20minEnclosingTriangleERKNS_11_InputArrayERKNS_12_OutputArrayE_ZN2cv7MomentsC2Ev_ZN2cv7MomentsC1Ev_ZN2cv7MomentsC2Edddddddddd_ZN2cv7MomentsC1Edddddddddd_ZN2cv7compareERKNS_11_InputArrayES2_RKNS_12_OutputArrayEi_ZN2cv9HuMomentsERKNS_7MomentsERKNS_12_OutputArrayEcvMoments_ZN2cv15extractImageCOIEPKvRKNS_12_OutputArrayEicvGetSpatialMomentcvGetCentralMomentcvGetNormalizedCentralMomentcvGetHuMoments_ZN2cv21getStructuringElementEiNS_5Size_IiEENS_6Point_IiEE_ZN2cv4UMat9adjustROIEiiii_ZN2cv3hal5Morph6createEiiiiiiPhjiiiiiPKdibbcvCreateStructuringElementExcvReleaseStructuringElement_ZN2cv22createMorphologyFilterEiiRKNS_11_InputArrayENS_6Point_IiEEiiRKNS_7Scalar_IdEE_ZN2cv3hal5morphEiiiPhjS1_jiiiiiiiiiiiS1_jiiiiiPKdib_ZN2cv5erodeERKNS_11_InputArrayERKNS_12_OutputArrayES2_NS_6Point_IiEEiiRKNS_7Scalar_IdEEcvErode_ZN2cv12morphologyExERKNS_11_InputArrayERKNS_12_OutputArrayEiS2_NS_6Point_IiEEiiRKNS_7Scalar_IdEE_ZN2cv11bitwise_notERKNS_11_InputArrayERKNS_12_OutputArrayES2__ZN2cvanERKNS_3MatES2__ZN2cvmiERKNS_3MatES2__ZN2cv8subtractERKNS_11_InputArrayES2_RKNS_12_OutputArrayES2_icvMorphologyExcvDilate_ZN2cv19createHanningWindowERKNS_12_OutputArrayENS_5Size_IiEEi_ZN2cv4sqrtERKNS_11_InputArrayERKNS_12_OutputArrayE_ZN2cv5splitERKNS_11_InputArrayERKNS_12_OutputArrayE_ZN2cv14phaseCorrelateERKNS_11_InputArrayES2_S2_Pd_ZN2cv17getOptimalDFTSizeEi_ZN2cv3dftERKNS_11_InputArrayERKNS_12_OutputArrayEii_ZN2cv12mulSpectrumsERKNS_11_InputArrayES2_RKNS_12_OutputArrayEib_ZN2cv4idftERKNS_11_InputArrayERKNS_12_OutputArrayEii_ZN2cv8multiplyERKNS_11_InputArrayES2_RKNS_12_OutputArrayEdi_ZN2cv7pyrDownERKNS_11_InputArrayERKNS_12_OutputArrayERKNS_5Size_IiEEi_ZN2cv5pyrUpERKNS_11_InputArrayERKNS_12_OutputArrayERKNS_5Size_IiEEi_ZN2cv12buildPyramidERKNS_11_InputArrayERKNS_12_OutputArrayEii_ZNK2cv12_OutputArray10getUMatRefEicvPyrDowncvPyrUpcvReleasePyramidcvCreatePyramidcvCreateMatHeadercvSetData_ZN2cv3ocl7Image2DC1Ev_ZN2cv3ocl7Image2DD1Ev_ZNK2cv3ocl6Device12imageSupportEv_ZN2cv3ocl14vecopTypeToStrEi_ZN2cv3ocl7Image2D14canCreateAliasERKNS_4UMatE_ZN2cv3ocl7Image2D17isFormatSupportedEiib_ZN2cv3ocl7Image2DC1ERKNS_4UMatEbb_ZN2cv3ocl7Image2DaSERKS1__ZN2cv3ocl6Kernel3setEiRKNS0_7Image2DE_ZN2cv3hal6resizeEiPKhjiiPhjiiddicvResize_ZN2cv11minAreaRectERKNS_11_InputArrayEcvMinAreaRect2_ZN2cv9boxPointsENS_11RotatedRectERKNS_12_OutputArrayEcvGetQuadrangleSubPixcvSampleLinecvGetRectSubPix_ZN2cv21pyrMeanShiftFilteringERKNS_11_InputArrayERKNS_12_OutputArrayEddiNS_12TermCriteriaEcvPyrMeanShiftFiltering_ZN2cv9watershedERKNS_11_InputArrayERKNS_17_InputOutputArrayEcvWatershed_ZN2cv18minEnclosingCircleERKNS_11_InputArrayERNS_6Point_IfEERf_ZN2cv9arcLengthERKNS_11_InputArrayEb_ZN2cv10fitEllipseERKNS_11_InputArrayE_ZN2cv16fitEllipseDirectERKNS_11_InputArrayE_ZN2cv13mulTransposedERKNS_11_InputArrayERKNS_12_OutputArrayEbS2_di_ZN2cv17eigenNonSymmetricERKNS_11_InputArrayERKNS_12_OutputArrayES5_fmod_ZN2cv13fitEllipseAMSERKNS_11_InputArrayE_ZN2cv2LUEPdjiS0_ji_ZN2cv12boundingRectERKNS_11_InputArrayEcvMinEnclosingCirclecvContourAreacvSliceLengthcvArcLengthcvFitEllipse2_ZNK2cv3ocl6Device16maxWorkItemSizesEPj_ZN2cv17getGaussianKernelEidi_ZN2cv10medianBlurERKNS_11_InputArrayERKNS_12_OutputArrayEi_ZN2cv15bilateralFilterERKNS_11_InputArrayERKNS_12_OutputArrayEiddi_ZN2cv9patchNaNsERKNS_17_InputOutputArrayEd_ZN2cv4blurERKNS_11_InputArrayERKNS_12_OutputArrayENS_5Size_IiEENS_6Point_IiEEicvSmooth_ZN2cv12sqrBoxFilterERKNS_11_InputArrayERKNS_12_OutputArrayEiNS_5Size_IiEENS_6Point_IiEEbi_ZNSt6vectorItSaItEE17_M_default_appendEj_ZN2cv15spatialGradientERKNS_11_InputArrayERKNS_12_OutputArrayES5_ii_ZNK2cv8Subdiv2D8nextEdgeEi_ZNK2cv8Subdiv2D10rotateEdgeEii_ZNK2cv8Subdiv2D7symEdgeEi_ZNK2cv8Subdiv2D7getEdgeEii_ZNK2cv8Subdiv2D7edgeOrgEiPNS_6Point_IfEE_ZNK2cv8Subdiv2D7edgeDstEiPNS_6Point_IfEE_ZNK2cv8Subdiv2D9getVertexEiPi_ZN2cv8Subdiv2DC2Ev_ZN2cv8Subdiv2DC1Ev_ZN2cv8Subdiv2D8QuadEdgeC2Ev_ZN2cv8Subdiv2D8QuadEdgeC1Ev_ZN2cv8Subdiv2D8QuadEdgeC2Ei_ZN2cv8Subdiv2D8QuadEdgeC1Ei_ZNK2cv8Subdiv2D8QuadEdge6isfreeEv_ZN2cv8Subdiv2D6VertexC2Ev_ZN2cv8Subdiv2D6VertexC1Ev_ZN2cv8Subdiv2D6VertexC2ENS_6Point_IfEEbi_ZN2cv8Subdiv2D6VertexC1ENS_6Point_IfEEbi_ZNK2cv8Subdiv2D6Vertex9isvirtualEv_ZNK2cv8Subdiv2D6Vertex6isfreeEv_ZN2cv8Subdiv2D6spliceEii_ZN2cv8Subdiv2D13setEdgePointsEiii_ZN2cv8Subdiv2D9swapEdgesEi_ZNK2cv8Subdiv2D9isRightOfENS_6Point_IfEEi_ZN2cv8Subdiv2D10deleteEdgeEi_ZN2cv8Subdiv2D11deletePointEi_ZN2cv8Subdiv2D6locateENS_6Point_IfEERiS3__ZN2cv8Subdiv2D12clearVoronoiEv_ZNK2cv8Subdiv2D11checkSubdivEv_ZNSt6vectorIN2cv8Subdiv2D8QuadEdgeESaIS2_EE17_M_realloc_insertIJS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT__ZN2cv8Subdiv2D7newEdgeEv_ZN2cv8Subdiv2D12connectEdgesEii_ZNSt6vectorIN2cv8Subdiv2D6VertexESaIS2_EE17_M_realloc_insertIJS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT__ZN2cv8Subdiv2D8newPointENS_6Point_IfEEbi_ZN2cv8Subdiv2D11calcVoronoiEv_ZN2cv8Subdiv2D11findNearestENS_6Point_IfEEPS2__ZN2cv8Subdiv2D19getVoronoiFacetListERKSt6vectorIiSaIiEERS1_IS1_INS_6Point_IfEESaIS7_EESaIS9_EERS9__ZN2cv8Subdiv2D6insertENS_6Point_IfEE_ZN2cv8Subdiv2D6insertERKSt6vectorINS_6Point_IfEESaIS3_EE_ZN2cv8Subdiv2D12initDelaunayENS_5Rect_IiEE_ZN2cv8Subdiv2DC2ENS_5Rect_IiEE_ZN2cv8Subdiv2DC1ENS_5Rect_IiEE_ZNK2cv8Subdiv2D11getEdgeListERSt6vectorINS_3VecIfLi4EEESaIS3_EE_ZNSt13_Bvector_baseISaIbEE13_M_deallocateEv_ZNK2cv8Subdiv2D18getLeadingEdgeListERSt6vectorIiSaIiEE_ZNK2cv8Subdiv2D15getTriangleListERSt6vectorINS_3VecIfLi6EEESaIS3_EE_ZN2cv3hal8integralEiiiPKhjPhjS3_jS3_jiii_ZN2cv8integralERKNS_11_InputArrayERKNS_12_OutputArrayES5_S5_ii_ZN2cv8integralERKNS_11_InputArrayERKNS_12_OutputArrayEi_ZN2cv8integralERKNS_11_InputArrayERKNS_12_OutputArrayES5_iicvIntegral_ZN2cv4UMatC1ERKS0_RKNS_5Rect_IiEE_ZNK2cv4UMat7reshapeEii_ZNK2cv4UMat9convertToERKNS_12_OutputArrayEidd_ZN2cv3hal5DFT2D6createEiiiiiii_ZN2cv11mixChannelsEPKNS_3MatEjPS0_jPKij_ZN2cv3Mat9adjustROIEiiii_ZNK2cv3Mat3mulERKNS_11_InputArrayEd_ZN2cv10meanStdDevERKNS_11_InputArrayERKNS_12_OutputArrayES5_S2__ZN2cvmlERKNS_3MatEd_ZN2cvdvEdRKNS_3MatE_ZN2cv13matchTemplateERKNS_11_InputArrayES2_RKNS_12_OutputArrayEiS2__ZN2cv4meanERKNS_11_InputArrayES2__ZN2cv3sumERKNS_11_InputArrayEcvMatchTemplate_ZN2cv3ocl9KernelArg8ConstantERKNS_3MatE_ZN2cv17adaptiveThresholdERKNS_11_InputArrayERKNS_12_OutputArrayEdiiidcvAdaptiveThreshold_ZN2cv25getDefaultNewCameraMatrixERKNS_11_InputArrayENS_5Size_IiEEb_ZN2cv23initUndistortRectifyMapERKNS_11_InputArrayES2_S2_S2_NS_5Size_IiEEiRKNS_12_OutputArrayES7__ZN2cv3Mat3eyeEiii_ZN2cvmlERKNS_3MatES2__ZNK2cv7MatExpr3invEi_ZNK2cv3Mat1tEv_ZN2cv9undistortERKNS_11_InputArrayERKNS_12_OutputArrayES2_S2_S2_cvUndistort2cvInitUndistortMapcvInitUndistortRectifyMapcvGetColscvGEMMcvSetIdentitycvUndistortPoints_ZN2cv15undistortPointsERKNS_11_InputArrayERKNS_12_OutputArrayES2_S2_S2_S2_NS_12TermCriteriaE_ZN2cv15undistortPointsERKNS_11_InputArrayERKNS_12_OutputArrayES2_S2_S2_S2__ZN2cv20initWideAngleProjMapERKNS_11_InputArrayES2_NS_5Size_IiEEiiRKNS_12_OutputArrayES7_idasincvReshapecvCopyMakeBorderlibopencv_core.so.3.3libdl.so.2libpthread.so.0librt.so.1_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_i_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6__ZSt4cerrlibstdc++.so.6libm.so.6libgcc_s.so.1libc.so.6libopencv_imgproc.so.3.3GLIBC_2.4GCC_3.5GLIBC_2.27GLIBC_2.29CXXABI_1.3.8GLIBCXX_3.4.9CXXABI_1.3.9CXXABI_1.3CXXABI_ARM_1.3.3GLIBCXX_3.4/home/hisilicon/OpenCV3.3/build/lib::::::::      k ii lk U&y  lk@ l lii lkxѯ (l) 5lyѯ ClӯkPlI[lt)llE+E+E+E+E+E+E+E+F+F+F+ F+F+F+F+$F+(F+,F+8F+x+|+?+@+A+{+~+q+B++H+C+D+E+]+F+G+H++đ+Iȑ+J̑+KБ+Lԑ+Mؑ+0ܑ++N+O++P+Q+R+++S++T +x++l+U+V +Q$+-(+W,+X0+C4+Y8+<+Z@+D+H+<L+[P+\T+]X+^\+`+_d+`h+al+bp+ct+dx+e|++f++J+g+K+h+i++Z+j+k+l+m+n++o+pĒ+qȒ+r̒+sВ+tԒ+.ؒ+ܒ+u+v+w++x++y+z++{+}+~ ++n+++ +%$+(+,+0+4+8+8<+@+D+H+L+P+T+X+\+`+yd+h+l+p+t+x+|+++z++++++++++++++c+ē+ȓ+̓+Г+ԓ+ؓ+ܓ+++++++++++E+ ++t+V++ +$+(+,+0+4+8+<+@+uD+H+L+P+T+X+\+`+d+h+l+p+t+x+|++++++++++++++++++Ĕ+Ȕ+̔+Д+Ԕ+ؔ+ܔ+++++r+g+++w+++ ++)+++ +$+(+,+0+a4+v8+<+@+D+H+L+P+T+X+\+`+d+h+l+p+t+x+|++++++++++++++++++ĕ+ȕ+̕+Е+ԕ+ؕ+ܕ++++++++++++ +++++ +$+(+,+0+4+8+<+@+D+H+ L+P+ T+ X+ \+ `+d+h+l+p+t+x+|++++++++++z++++++^++Ė+Ȗ+̖+Ж+jԖ+ؖ+ܖ++4++++ +!+"+#++$+ +%+d+&+'+( +$+(+*,++0+,4+-8+<+A@+.D+/H+0L+1P+T+xX+2\+`+3d+4h+Nl+p+Wt+5x+|+6+7++}+ +:+++;++<+=+>+?+@+b+B+Cė+ ȗ+D̗+EЗ+Fԗ+Gؗ+Hܗ+I+T+J++K+L++++M++ +N+O++P+Q +R$+(+,+S0+4+U8+V<+W@+YD+ZH+L+[P+\T+]X+^\+`+_d+h+l+ap+bt+x+c|+d++e++f+g+h+i+ +j++++@-#-)ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌ|ƏʌtƏʌlƏʌdƏʌ\ƏʌTƏʌLƏʌDƏʌ<Əʌ4Əʌ,Əʌ$ƏʌƏʌƏʌ ƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌƏʌG-MCP%Ѐ@`΄k{%=.c`" ≞⍫펻a`⌋퍛|rk{pK[{Gz~G+; pG k{ k{ K [+; Lli  B> _ \"  ] TzQ S) B &@  C C |y   roC ЍtBh?7k? ƈDe? m9?X9?_8?:vPk? m9?Uy?KJ̓?8n?A @0*S:X߿t(%r#? F?,,}?1&ʿ."j??P)*p@-,@,P@Pp0  p@s))P0 0,48<$0    ( /`sp@-,@,P@PG0  p@Ps))p@-,@,P@P50  p@s))0@-MhPh0Pd@dd@` 0  D D 8808  Ѝ0@t) `s!H@)0 0 0@-08 P P P P P 00 4zspsp@-,@,P@P0  p@Wz{))p@-,@,P@P0  p@E8z{Т)Դ)p@-,@`(P 0P  p@3,z{|))0 0 R/H)@@0< 0S /,0M00S Ѝ/Ѝ/<)4))LL0H 0C A/,0M00S Ѝ/Ѝ/)))L L0 0 R/8 @-0S (00 0 )d)\)@)O-mM@ `$<0tupP0 s ~@1 00kY@00 7P00X80[T 4X0 0!S>1X( t4p0,00 ~4|4Xh0 0!S>1X( P $0 b S4 6 b ,08 :  0[/ P[0S, А0   00 P  P0 0\0 0 0\0  0 \P004@P ` PO *4@P `0$ 0048< T@$p06/@P0S0S 0[/BPR[ 0P0R 8 : B0Q<P 0S 0[/BPR[ 0P0R * , B0Q0P 0S 0[/BPR[f d 0P0R   B0dQʌ0P 0SCߍА J` ꘠ Cߍ2@P `a`0d0 /C P  00 P 0S d1@P `AА00 ꘠00 'P)rPА<00 0밇0 \  0tt7 0   P PPBP1 $0*b S bh 0 +;   0[/ P[0S&, `0  P  $0*b S b 0 &+(; * , 0[/ P[0S!, 嘰0  P $0 b S4 6 b ,08 :  0[/ P[0S, А0   00 P  P0 0\0 0 0\0  0 \P004@P ` PO )4@P `0$ 0048;!@ B $ 0[/ P[0SN, 1  7P  $0 b SJ L b.HP!V/L1N PT!X\ 0[/ P[0S, JoT1  00 P  P0 0\0 0" 0\0 D 0! \P00!5`P p P$ 5`P p 0$8 (H,` X t@00$7/@ p0SL1S 0[/BPR[ ,!0PL1RP!N P B0,QTV?P 1S 0[/BPR[ 0P1R!@ B B0Q>P 0S 0[/BPR[ 0P0R 2 4 B0Q0P 0S 0[/BPR[k 0P0R $ & B0Qʬ0P m40SYߍ耠 기 Jo  PYߍX2`P p3ꀠ00  PQ 0 0 UPG 40S 01`P pJo0,100 기00  k F!X1`P pH1`P p`P `0d0d 1!0  0000ypa0`P pY40S  IFB>)ȇ)ԨH4T 4 4 $@0 O-`-@9P0@CM< 4800a0Ё0p0Y0 ّ 0W XX!А!Ѐ Ԁ`  \  0k2$(  04 80 jP))PА<00 0뼇0 \  0Ϡ〧7 0 4 ]P PSP3 $0*b S bh 0 +;   0[/ P[0S), `0  P $0*b S b 0 &+(; * , 0[/ P[0S$, 嘰0  P $0 b S4 6 b ,08 :  0[/ P[0S, А0   00 P  P0 0\0 0 0\0  0 \P004@P ` OPO )4@P `0$ 0048А00 q ꘰00 k w R 41@P `$$1@P `@P @0D00 {0 4 0000`0@P ` 0S { 02){)d0P< (,lC-CM(P@``p0 @@i@@ 0bP Y  ᠀@@p@嘐@@*+,;& (@K  0㘐G0S 0[/BPR[ ꘐ 0R  B0Q/4+6;P8 :+&+(;0* , 0@S 

h fdbBG-M8@Pp`p P0PTPP 0Mp PP0EP Y( ) 蠍QQFQQ^<+>;8 : QQ  0*1S 0[/BPR[ B 0R! B0Q <18!PF+H;1J L!8+:;1< > 1 QSD R?P - _,_P0! J+L;81F H<1! 0(  @@`,p@ ( H y1S 0[/BPR[ 0P1R!< > B0Q P 0S 0[/BPR[^ 0P0R . 0 B0Q0P c0S 0[/BPR[? t 0P0R  " B0tQʜ0P A\0S 0[/BPR[ < 0P\0R`   B0<Qdh0P ލ@1 1\ s&F #!C-@-p0 @CM(P``@@@@ 0 P Y  ᠀@@p@嘐@@*+,;& (@K  0㘐0S 0[/BPR[ ꘐ 0R  B0Q/4+6;P8 :+&+(;0* , 0@S 

jmJFf ?h*n k {B&gDFefmue-k{F kMeu ke jFf hn+ ; D K[" $ J  8HG FE.RA-@! \QL0C pe ` ^ 0S T0@Ⲁz퐊zzwzR0D\&PD PE ` 1 ``0J j`RZzj`RJSj`RjSz7jZzzj%ZuzwZCz6zCz^P T،0 !0z:0Tz'zwz؃1 Tzz'zwz؂0!0 Tz:z'zwz،0 0z:z'zwzG-R-hM`' V V; @thЍCPXP@ pM*eg\0 Jd @PB0j1*ffb&MDJN n @ NpGWP@M e0jJd1*\ff @b&MDJN n @ NCPZp PM%@0 \0phH0 O%8PPE$ei!@U$2J3*uhdFb&dMD-FK[A@@+;45JldFl-FMH+;0*1 b&K[`b-H J+;  N`D@ IHRp@-P \pL0C @`n \ p0S U0zzzwzS0E\@E 1 @D` `0z0 jzSjS'j6ZSzSjvjjCzjR%z7zwzzCS@ Up 1 @Uzzzwzp @ Uzzzwzp  Uzzzwzp 00zzzwzpO-R-lMP+ U UA lЍCXP`@ `pDf`N\0 gJf0*1 (b`%!H-D*F*d @!B n @ N  \L `ጂpF n@ *g^ @ D*f ` d @ DSCP@0@0 i0`D0ND0 efp` Y`@0**1 (buhN%(`BE'lJU'8pB!BeflLb-Nuf@+;!@@F p-H J+;폵  keN`uFwR@-! \QL0C @`e \ 0S ^0@pzzgjzzzS0N\*PN@ PE ` 1 `A`0Z j`RZSjGJjjSzgJzZZZZC`Rj`RGZjzgZzjjjjCTP ^ 0 !z:0^jgzzz 1z* ^jgzzz0!z ^:jgzzz 0 z:gjzzzO-R -AMX8 QP Q[ XkAߍ pCW @ nP*d @\r(L a0@P0*1 )R P2J3jd&ff0J-H1 dF*E`& e @ E d @ D a @ ApGW nP @ a0@0*\1 )R P2J3jd&ff0J-H1 dF*E`& e @ E d @ D a @ AC[ P@ d0H``xp eP \0pLd@E !@U 2j3JiV!@@IT26Xj70jJjDiV9*4248B&j6 7@jFn@m68lej5JdF:k<{3*ui1 )RE(ʭmJU'-&( P.k0{ef*+,; klmD23*lk{ kueMF k@K[ KENU@bF k0*eJ1 b&uIlmF`b-Hk { khMH"+$; JK[  8HG FERA-P" \AL0C pd ` ^ 0S U0@Ⲁz퐊gjzzzR0E\*@E @D ` 1 ``0J j`RJSj`RF*Zj`RZSjf*G:g:jjzzJJJZJCZZZC^@ U،0 !0z:0Ujgzzz؃1 Uzjgzzz؂0!0 Uz:jgzzz،0 0z:gjzzzO-R-*@;j`=J!BaF @ADb&`< ff@dF`-BmF @MDb`? j@`i @ `ML@ NmJK[ k{ JIjRp@-P \pL0C @`n \ p0S U0zzzzS0E\@E 1 @D` `0z0 ZRjjSjzzSjjjCjjRzzzzC^@ Up 1 @Uzzzzp @ Uzzzzp  Uzzzzp 00zzzzpO-R-lM`0 VP@ VG @lЍS@C P eNpL0 jh UᏪg0*1 n (bh%!F@-B @-J*G*l B L  \pL qᇂ@PL*d -B^Je d @-D*E*l B L S@C0 0 i0PNN0L0 %p P Y`0*E*1 (b(L%U(`BBeg!BLug8p-B%lDb-H%N@+;!@@L-B @nFlJb-L` N Kp+;  kE UeL`uElR@-! \QL0C @`e \ 0S ^0@pzg+ S0N\*PN @ PE `1 `A` 0[S j`RKSj;S+S G{gk[K[CKC`Rj`RG[jgK ;+;C+CTP ^ 0!:0^+g  1* ^+g 0! ^:+g  0:g+ - MPw ЍRA-P" \AL0C pd ` ^ 0S U0@Ⲁ퐊g+ R0E\*@E @D `1 `` 0{S j`RkSj`RF[Sj`RKSj;f+Gg {k{C[kCK[CKC^@ U،0!0:0U+g ؃1 U+g ؂0!0 U:+g ،00:g+ - MPr ЍSG- $@(( \!PNaLP p@A f\ 0S T 0z퐪fjzzzS0E\4pE` pG `0 ` @ 1j@0TjS퐊^DJzTzS퐊EZZJ%j$jjCj^TEZ^VT吊ZFjj%z&zzzCp U 0 z: 0j:0UGzzz0jz:0UGzzz U1jzGzzz 0 !z: 0fj:zzzO-S-M \!@ R Ri \!X PЍX!pBW @n P b `jd@\Jb0 @aFAD6*47 )R5J P2J3jd&ff0J-H1 dF*D`& d @ D e @ E b @ BX pGW @ nP d @\Jb0*1 0 4j@5J)R P2J3jd&ff0J-H1 dF*E`& e @ E d @ D b @ BX!R B @ `0 p  E.0LL 0HP`@0p f0 e``[U.xu`!@2*@*j!iX5jMJ E!h(K*[7JU!6 dFhmD@dMFk{?@ eh^ K"[2Jue dF, .*< =3* P|RMFb&0 461*@K[bdB&n@@N> ?@02n pH B 46<  =@lBHmJ D$&k{  LA@ HE DNy SO-$(,* \ᄀ!N QL@ p@A e` T 0S Y0ರz퐺fjzzzR 0I\5`I@ `FPp p@ 1PpJ@0zpTZSzp^B*zzpTzSzp^*zpTzp^UC:zpTz:dJZFjj"J#ZJzZC&zzzC` Y،0 @0z:0JYGzjzz؃@1PY@zZJjGzzz؎0@ Y0zJ:jGzzz،0 0z*:fjzzzO-S-M6 ZP ZU LЍ\@LP p` e0 MjgXMJfpRn ADaF46*jb&7 5J`-BdF-H @*L*l B L \Lp@`QrM dMjf0*1 T6Jnb& h7j`-Bff-D @*L*l B L\L0p` hP@0L0 Med X0p0`pRMe%Oudp@Ou%!@PL2A@n k@@4ʐ53JLƻdFl!@E)~ L$K&[U%@en23L-DunJF+;J*dFnb&tMJ0 1 -N`@lJp HLdMF l HK[  J  @IE L`NBSC-p $@"  T  @DpG@p P`T ` P0S X0zjzzzS0GT%`G1`FP0Qz0Zz^Z^jjS'jzzS%jjjCZj UZ^j^%z&zzzC`@@W1`P Wzjzzz P ` Wzjzzz@ P Wzjzzz 0 0jzzzzO-S-ML? PP@ P] LHhЍH@X@PpE`D⏊n˂jg PᏪfmFˀ2* 2*0 (b0 %`!F-H*Ljd @*e P-BjlB F LH P@ p@PrE`D l*n Jf W-B @ N e P*d @-@ n @ NH@Z0@0 0D0L ehD0p`P P`@፥! E)2*uhL2*! (bU(hvmJkH`% Kj`|LaBE'HpH KB~N%*,!B k0 uf0 %P` k k {mFE!.k0{k{-FU!2+4;+;-B kxPeI!@uHb-D kmJ+ ;-H!@@b-F` H"+$;& ( keL`uA 4SO-$(`,( \!LN pIAhP\P0S V 0@ g+*  S0F\4F J 0  @1 0p^@␺PT;Sg{+SSkz Sg[ZK;+;C+C^Tp^YᐺPTg[Kzg;Z+ C C V A 0 +:0Vg @Q0 VJ+g @1 VJ +g ! 0 g+: @-M@@ZЍSO-$(,* \ᄐ! aLNA P@fp@ U@0S Z0 g+  Q 0J\5J@ IP P@1pⲰ^@`^ 0zpTPTj`^zpTfXZPT{SKSS Sgkz[jg;ZG+{K{CKC C C Z،0Q@0 ZJ+g ؃@1PZ@ Z+Jg ؎0@ Z0 J+:g ،0 0 *g+: @-M@@SЍSG- $(& \A!qL`N ` gP V P 0S X0@zz*   R0H\-`H A `FPp p@1QJ@ 0ZjzUJTZTjTzTĺ{SKSS SŚjZ:*{K{CKC C C` X 1A0 zXz* 1P@ 0Xzz* 1@  Xzz* 1! zz* @-M@@_ЍSC-p $@"  T  @DpG∑@p P`T ` P0S X0 +  S0GT%`G1`F P0Q 0[\^K^;S+S;S S+;C+C[\;\ UK^+^ C C`@@W؄1`P W +  P ` W + @ P W + 0 0+ @-M@@sЍjRp@- jv! \pPNL0C @Q\p0S ^ @0z`Rzgjzzz0N\*@N @D P` 1 `!Z0`Pjj`UZfzjzSj&JZZjZCz&j`Uzfj`UjZjzzzzCR@ ^p ! 0z:0zf^zzzp!0z:0zf^zzzp!0z ^:zfzzzp  0z:jfzjjp RA-M@ p @oЍpGW-{@{GGP jn `mF@ e0PT0Jn1*fMD:J e;j89DFFfjh~M~m-B @JHmFMD-B @jL@JN*F E@jRA-P jv" \aL0C pf @ ^ 0S U@0zzgzzzR0E\*E N@` 1 `!`0ZS@j`TjzzSj`TZfj`Tjj&z&zf:JJZZjZCzjzzzCR U 0zU zf*zzz0 zU0zf:zzz1 z U zf*zzz z0jf:zjj R@- M p p k Ѝ \"{L`@Qb{GGM d0j*l1JTff ldF-BmFMD @-B @*N LE ЍzRp@-P @z7 \pL0C @`n\p0S U 0zjzgRzz0E\#@E 1 @D` `0Z0 j%ZgJRZjSzSj'ZjZC&jgjZR'zgjjzjCzC^@ Up 1 @Uzj'zg&zzp @ Uzj'zg&zzp  Uzj'zg&zzp 00zj'z'zzp RA-M p p xЍ \!{`L @aᆂ{GlG,PD l @ Je MD\ @ NJd @MD n @ @ NSЍO-@Q -,M 0S 0P 0002D1zzKzkz000S" `D `  000pI 00 00 Y00B pI⇱` TZ Jڑʑk=K<ڷʷ1 Tzk8ȊzwH, ȋዴ@HZ , a ˭ ,0W1*p0 SDY 0 SBD A`1dC0V# @F\S 0F 10kz Kz* V0Q  )0Vj 0jZvgZ;gzv:* z; cbJ a ` @Z@z^ zvz'Kzv'zzEKzV kzFfP\Q 0S!,Ѝ p0 ` H+TT0!Tzzzw kzw ` 0`+TZ `jV0 Vj@0Fzfz0`0S0Qq BpW!JGqࠡ࠳qWQ#P @ QQ A PQcq$ 000$ S00 0WJ@qࠡ࠳qPQP @ QQ@ A=,Ѝ zVz *0  ⛴^0 Y0S S00 ` 1   q R"@l% ` *X P1 !\ 01\0 0 A\ P AP Q 򊡈JWWE~0 X Pp1p!W  W A\ P AQ\` aFZZ 000TK0 K  0 000A 00 00000p`B 0 000 Y00S0 0X0  C00H p0000@p00 gG#O-pQ -,M 0Sx0 ` P0@0x02G!1 SRE P@G0@ 00000x 0C   0 QK A@PWዡPU J0 @ A  ˸˻1P 0CW:0Pȋ 0C:H+ ȋዴ@HU +0 a +刡X* Q Q 0SrG a1 fC0Rp#BWS @0B@Q@`@P0R0\   )D0LEN[ᐊᐚ0+ ;b cK a ` \^`NLj*ZQM[P`@ P@p\W\ 0S 1Q@,Ѝ 000 ~H+ WW1!0 B W*0C: ` `+W0[  Z!Q@[AQ0[pA `0@0x@QSs <PU 0JEqࠡ࠳qUQP @ QQ A0xQSas$ PU U $ 0XJ@qࠡ࠳qPQP @ QQA A>p,Ѝ 0R`P @0⛴  0SP S00 0@0 P0W 0Pp  g P@00  0x S0 PP1P!U  U A\ P AP Q 򈁃HYYDxl 0xS0 PP1P!U  U A\ P AQ\@ ADX X xCx0 09x00; x0 00x001  x0 00x00! 7 x0 0x0 a00x00Sx0x 0xX0  C00M x000x0E00 @P g;O-P-p`UMM0U> L S0;Q00f6f6@Q&0 J0CBs p嬠80 p:8@ S$0@ (C0S X0X0\0H J 6 &0 bKWV% 0 0SAd0l S9*d00d00@0PP WUލЍ%0X0\0   \  0K 005 %0 d0 00IW`P`l50 P00000 0(0 000R0S d l0R:d 0d00d0`PV1 |0 SА0  S |0* 0U.$0` J.BKA BQ R40 `@ 0C R140S`  PPV 0P0S 00, P0,L$ ,00 `@P 0BC1$ C 00C 0S4@@ P`P00^ T  0   A I B0K +,b UVj Z `+* {:ʦoS00S 0@DS0@ 00S0(l ,PlL E L^ ڌ@0LD  DW KА" R 0C L^~S  " R00 PUL P0LL(0S  R C B!R @R B, \" R  P0S R. R  L RP0 (S  CP R R 0 Z 0S CP  0 SRP@d0l R|d0  @d0T0d0rt 00 ;ꚙ?@Lt 0 @`PC@`FU00 Wћ  0  B 0CL N) ' :2# *a `+;: 相 a@ ૱uJ { p{:S P RXP`F0   X00  P 0c ^ g ^0aW. R;   @T  0Pb(0p 0}G0 @T& 0C@00C `@V PQ@4@R 0㓢*PB 0GS @P P @PW` R00PP nO-QP,M@ P` B0[00?P 4"02 0T T_ P pP@p`X [X X 0 R`Y* V0``S`V  0S @T U00pP 0S  p 0WPp 0 Zp pY ,ЍU0 P0b 0T q 0CX[00?N l Ph0 0T T=0085 X  4  O-@-@MM ;rP7 ` $0*bS b *FH@ P D0 L PT 0[/ P[0S\, L0  0  P@PP0ES&M~*p044됦  \  02T& d 0060T pP-0 CST0@0t@gV0DPs0 " CR0S1 CNP 0. CSTؤDtDF40DPs0 " CR0S1 CU㐰 U `@$?D0 4d 0X\} f򐻁^02D`0 X0\ Pd(   @ PP 9X00D030 30 0` 咳+tp|0S 0[/BPR[ \ 0P|0R   B0\Qʄ(@P P P CpPP =D0S 0[/BPR[v $ 0PD0RH   B0$QLP0P p0S ލЍ ` cލЍJH 0 0,`@Pf D0S 0[/BPR[,$0PDSH0 0C@$ RLP0P *0S '0$0JH 0 0eo[`@( [F o   000 }Ϡ t ~ gdX0 l `P P pPP R0S  E ꄞ(T T   O-P-@@%MMO  0 L\P %-<0 CS0` T 4d04 D 88S x9 BSD0  +@0x90S [0/  R& 4`: S0S 04080ğTr P  0l40 x p[W[0S4P$p0x000 x S $ J ?0 S 4`04080 `#3  0x 0`剠Zᴠ# 00V V  000Z㴠z0JPs`0 " CR0 S1 C`4 剡0SR` 00  0S0 S Se 4`l22 048X@0  0`W[1WPp `? Xx9S 0Sp0 @0PSr 4`04080 ʟ  0|10 $ `W[ 4@Ti U00`P 0S p`U` 0` 0 BH ;4`4080ᘐ   0t00 x  ?PDp\D0\| 0 BH c0PP 00PP %ݍЍ? 0Pq0S,00x [{4`X04080Y X ,!1 0x r[0/  Rg704080=pQP0pP\  0 2 ! 0x 10F/0Sk 4`04080 R| P  0420 x p$ K4`RADP0D0H0b ` 0 x 002p0l4`4080 S Pp 0,3 0x p804080xSP0pP\  0#3 x 00PP 00PP S }zwt$0$ 0@-@000\( 000 0@-@000(( $0$ 0@-@000( 000 0@-@000( O--GMxLQ5yA Q++@;&r gp.0P[N`._p.P P F)0[; +;ߪ&r gp*0P[ʭJ`*_p*P P F 0[ BKD[¶1 fʢ@x *g.`06+8;0 D X+ ;@P @²"$``_ ` lʢj& ( CC 0 ⍊#*"BMH "` 只#00@mJ ʟj L mFJ!02k4{FmMD cd0f*a06k8{ bo* ,+; #b0 ~m#oFL 0[ 8L,16 8dŻ-@* ,mF @99 @j;:njFfNNPmRحJN=jέJ9FfN<8ZmPlhNLNҍH68>LvN?j>Ff:k@{oB\FkOD6 k/B6jo@MD*˝,۝-BmH *k,{MNk@6k6*k6 klJM6jjffjnFfJ24LmF @ܭJ\,N˝۝\mʐmLdFL˝۝MDm X *jMD8 9@ԭJlX B&hJL܍H^-MD-JN K[h-+;p-Np B2+4;B DP P F0[P P G A Q($  @ `Pp'7  f@*g!`0P[bH`(_p(P P F0[8 K [ f@*g`0P [ D``_ ` hP P F0[ K[ f@*g`0P [ D``_ ` JP P F0[ fȂ@Jg`+;` k{P02["N#Ȃ`._p.h."n P P F\0[ *mߊ&r gp(0P[ȍH`(_p(P P FA0[ 2+4;&r gp.0P[N`._p.P P F%0[ f@*g`0[` PJ`*_p*P P F 0[ f@1*gȂ` ʢ +;` 0 *+,;P X.@@LǻȂ`,_p,h¶,ʢj. 0bC 00 jbj#ƍF*"` c00` ʟaL,Hb#bd 2l b0 "BN%ߢMKrc4J0L[MNr-@MD Lr  @˝ ۝Hr*Jb&R DF-BvVMb ;3*l ^@D3J2*DF b&RM<*-Bj*ffB&mFV-hedfMLe^D-BV o24ЏH<*p FB"N vLOD-BH DJ*Mx 4j*5JJffdFb&x $0(` Z%$0@P0@`f0 0:0z:j0jzzgzz7z7jfj:SS0000S 0 0  S000S,Ѝ'7A--@M`L\ GL VʘA B0C˟۟@PpJeP ^@jgp-D@%-Bgb%P@@gtpB-Hb-J @ t-BJ *MmNt-DtMFp-BMD-B D+ ;  EEL@Ѝ pLVᏋ퐛@P` @*e PP0Jf`mB0⍥emF&feP0/& p-FtmJf @mLt- -NtMNmFpM-BmEU@ЍL VXLP@@ QR@pP @*gPrm@Je BC!tDr-B @tMFmF`-BO@MD@ @FBN@ЍL V(LA&',@PpJePjgp D*eP-BJg^MD @-B`eO@MD@ @ B E @Ѝ'7'7'7'7O--0 $M  ّ \ HJ  ,`,P,,@p,` P0@ $.+>%&'0 X!P@ &z Xj0jz&z''zzwzw'jj0 0  S00Ÿ$Ѝ'7O-Mx`P 0j?00嗼 hp‾0GW?o2[Ox|$lϟ  0H/H? 07 낯  Wh 2Rx OL0x2|2L ѿ-> .0 KX{ 0x2|2 ෿!t> h.0   0 ؼ늾P + Pd 'P $0 b Sf h b.!r/1j l! 0[/ P[0S, 1  P $0 b St v bv/!,1x z! 0[/ P[0SY, 1  ӾP $0 b S  b!.(0"/,2 4"8< 0[/ P[0S*, 42  PᨾP $0 b S  b/`h"'.d2 l"pt 0[/ P[0S, l2  ~Pv2 $0 b S  b -"/2 " 0[/ P[0S, 2  W:.f$ |P \Q0TP0X 1 (|A8qZ \<1x0AS`!!Q0"*cS `0P QH d$ b+  Q 0Q  0Q00œZ?* N` 05PhQe2S 0[/BPR[ |"P02R ڠ" B0|Qʤ?P d2S 0[/BPR[k D"P0d2R h" B0DQl'>P ,2S 0[/BPR[F "P0,2R 0" B0 Q4?P ѹ1S 0[/BPR[ !P01Rx z! B0Q<P 1S 0[/BPR[ !P01Rj l! B0Qr?P |0Sߍ f R[I 6 ͍$f(P|0!@0QL0DH |A  0 $f 0 0  ,ݺ( ,ٺ ,պ$ ,Ѻ ,̺,   흺0p ,ܹ80 <84,aX |0S~  { 00 t|0S .l PhQ( $g(̰(| , Ff>f$0>f$0 =f(0>$02ѽ0劷 刷<冷8儷4傷,0, 0@-@0000ٺƼ ($0$ 0@-@000幼П(L808 0@-@0000佺᪼4Y蜟(000 0@-@000嚼IT(Lp@-0PUp P_,0,`@ 0`.SP@Y `@0\ 0 *l l3j2J10*dZZ$ZDZb"h1fL"L *B B `LV`LV 0*l2 3*Z$Z"bL B `LV 0'l2 2*Z$Z"bLB S 0C0 L0 b  ` V0Sp` @p@-`P $P@PT*䡹U坹pG-C0PSp@0 0嘶``F`AX* ㌶ T0!@D   ,0 $@zZj@ቻpc000Ӻ뀻޹G-$`0PLEQ@S!0CR@0 L11@Q Q ޸0Q@, 0!1$ , 0 Q b̸pSp p0w/0G$ Z@ AAQ@  BᴸpO--P`@@M΍( Aݹ30 0P )02 2墻`ßs  0D#D3  p0ම ៸ ׸ 0R) 0>  00 0 퇷0&?A`8 0DtS4ɋI NHN`N*P˹PO $0 b Sz | b."/ 2~ " 0[/ P[0S/, z?,02  ,+ 0225qp p\  0/|10  T! > 'z? ,0* qP` $0 b S  b/@H"%.D2 L"PT 0[/ P[0S, ">00VL2  >  JCJ ({: pCpSpC:@Q(($ % PUNP IPK 0z |11ɫ2222024282ȫ<2L2H2> 2!> 2?@2?D2'J@⹸ 0111111>l n$0n?1v?1>$0P002000P@200080 #Vz:zjjƪ檴 C S C0C0S0AT0  b?q r00@00   h @lpt&΍ x ͍ |ύύ0@00 0 0ጡ @d 0 0D0宷Vpv000 00040w΍ 0 , pR>$0sP>$041Sʸ1Q-  BHM(4&н,(L,> $0 H0R/LV 0   0   00$  ,ٶ ,ն ,Ѷ0 ,0 ,8 > !0 \ !啶p 0,ӵ/X ,` 008SpDp0q80  1p4 N?ჵ ߹Xa Dɶ 0  00 x (ᛳ P4> 0    00$ Z0 A0Q ) %04 07,哹 LĴ´$F,1SD"Az?,0Sd 1Sj (`ߍ!P):  022幸h =.x4  $0 ӵ ἵ$">  00ῴV{:{ ዴpCpSpC:CSCTĐPEUPU ቐP@ P  ;PPPb?P ύ 0x2|2221111111111&> +;4 2ն3 !HL!,00 06 8ā1qAl nax1\" R `2P- p0.t0AT: |2S 0[/ Q[$0S 0[/BPR[ጸ P0`R$0 F>(  B0QX2Q0\2Sꬑ1IA1CS ㍰1!`,,. 0h jDN<KX5! !P02Q002020ASJ!!Q0"*cR `0P@S( bD `+  Q 0Q  0Q00œ$* p PR堵$1S1SP QAPT*U|2S 0[/BPR[ \"0P|2R"  B0\Qʄ40P P  2S 0[/BPR[ !0P 2R"~  B0Q?P 1SSߍp10CPn `s0묱+묱&묑!a묱묑묱"d`0,0  6,JpC{ "00$2cpz0,1]1%(塰ߍ8地,ᙰ&d2\X2S0Sh2S ){: CSCA1DA1CS' 81!`,HL% h j,RU0O0 LTI FX20 0啰A,0,0嘰 z窴J0?CJjzzǪ C S A? 08040)`30@%>$0b0P,01.(3$ 0D0>$0嶳>$0冰p>$0孳? ΍0$差<@>$0߰V20$<0 4t00  ŲLR 0p<塱 QĮP>$0  L1Sʸ1Q > $0 @0-DE 0  tb? 0$ Ag:z !0 \ !p 0<4ᐴX 3 G<忯a *z*zǪ0C0S0B(&0,0J- /CzzǪ]F4%Ĩ1\1S0S1S >$0<勯P00B1\m1S0Si1Sf >$0n *z*zǪ0C0S0B ){: CSC40b ሰ$,1S @"ܭ[ zح1S (5 6# 0 ,,: ᾭ弭>$0>$0V1S 8֮ ⰱ$ ᡭ ܭ PR$1S Ṯ?0˳ ᄭ<>$0 >$0 ẳ   C-@-0p @M(P``@@A@ @0㔱P 0Q ;000⟠0 @ T  0{Dh"h2  Ⱀ0 㸐@֯`I?w  P@`H  @ 0S 0[/BPR[[ d P00R ڈ  B0dQʌ0P L0S 0[/BPR[< , P0L0R P  B0,QTX0P ЍQ Q \v ^pQ( `0 S00 ePa 0R]ᴲᱲ<٬׬`lO--@ßP3` @M0P$p0A8 P 02 2pßls3 d3p0    EP @Po;p7W 02 2ϱŸr5 p 02  0  ʮ0P ɋ I NHN`NiP 0>  00 0 P@ $0 b Sx z bz/"!.2| ~ " 0[/ P[0S, >,0 2   r02 2h(r ;!14 0 の jw> ,0mᴯP $0 b S  b".8@"/<2 D"HL 0[/ P[0Sr, ?(0D2  sh+(4t(\p | Pm%>   0x z01111 22z?2?2? 0ɫȫ|J@d 0111111j?j l0>1>1bj?0iP00240 0<080Yz:zjjƪ檴 C S C0C0S0Ah Q0 0 (2,20242D2@2222222"> 82 =<2?2?(0?2c 0[/ Q[02S 0[/BPR[ 2S8"0 B0QP2Q02?  (H,"`2Rhl"(2d204",22S 0[/ Q[2S  0[/BPR[ p 2Sh"0 B0Qʈ2Q2ʌ2Sʔ"22  "2R"22" 2@00D0Yp 00 B&(4%tp̔040 H080v`R 00pRj?0s0P,0j?01Sʰ1Q j? 0 @0-D~ 0 ( &Z 0  00  0 0 00 00 0< > !4 Z !妬p 00@XD 0q (40Sppq  p<0D801N? 0啫 XO D۬X , ୭ 0|,  :᭩ P0,04> 0   '  -00 j0 A0(a 9( 5( (00 0G,(壯 \ԪҪV,1SQ OM,0S4 1S $nߍ 2 2ͮu6 p 050  ɫ? (0̪P? $0 b S  b/px" -t2 |" 0[/ P[0S, %> 0Y|2    JpCJ ({: ```C@%> 0ႪY{:{ ዴ`C`S`C:pCpSpC=001111111111P+;0/2222?+;0)> 0 2"塬?@0T R@T@PUV5U5E@ӓ%OC2 DQv_@!(0!0 0qa00006 8ȑ1j l<1" R ʐ2PW h0Z/l廪0aV: 2S 0[/ Q[$0S 0[/BPR[P P0pR$0 G(  B0Qʈ2Q0ʌ2S"2  G";B?, 9 @B 0C1L~h1lq\ PTFZ *2S 0[/BPR[$ "0P2R"  B0Q B((L~/nP 0R/ HLPT0C1Llqh1\ PT  ڧ2S 0[/BPR[ "0P2R"  B0QP !J1j  !0101堭⨱F?40@ˬx.Rp[ `Rp10CP `0e` Rp10CP `0e Rp10CP  TRpi10CP  Rp10CP 0E Rp10CP+  煐Rp10CP6 0` R 1S 1S@010A!020< 02 4f hꤱ1KA1CS ٦1!,hl' f ha1FA1CS ¦1!,X\& f hꤑ1IA1CSx 㫦1!`,+* ,f h^ꤱ1KA1CS\ 㔦1!,)" $f h`ꤱ1KA1CSO }1!,*& (f h=ꤱ1KA1CS f1!,x|( f h>ꤑ1IA1CS  O1!`,,. 0f h N 6 "!P02Q,0202&0A@S!!Q0"*cR `0P SH d$ b+  Q 0Q  0Q00œ* 2 PRb$1S1S2S 0[/BPR[7 "0P2R"  B0Qʴ00P P QAPT*佨U幨t2S 0[/BPR[ T"0Pt2Rx"  B0TQ| =P ܥ<2S 0[/BPR[ "0P<2R@"  B0QD?P 2S 0[/BPR[ !0P2R"| ~ B0Q !>P 1SYߍp10CP| `QЦ뤱˦뤱gƦ뤑at弦뤱左뤑岦뤱"0,0  2J`oC{ `0(2%0 T2G0,1V$2$;ߍ4632\2S0S2S ){: pCpSpC {: `C`S`C$A1DA1CSj ʤ1!`,HL% f h * (ު ۪,ت;ժ0P@2400<0 #t00,0* ᮤ(嬤R P22T2S\t"X2$ <2  20k=0z窴*J0?C"JjzzǪ C S AN 0XA@嘥 *z*zǪ0C0S0BJ# /CzzǪ"( ➦Z2 "2 ᖦ1\1S0S1S j?0P2 0"2 *z*zǪ0C0S0B ){: pCpSpC:80Nj?0忦 (,1S @:[ [ ~|,@1S $"[j?0 PRD$1S 1S 4 $Fj3⨱?,冥 ( n k0< ] Y U ( ᪣ IF$ A- B@0B! BP0C@C13 DB10NS:0`LcLV VP@ pkV@PE V<Ӥ]P`U  PI껧hƦ`z!$A- L@B!`0C B@C13 DB10NS:0 P0LcC1BQ V@ $p+V@ ᩤV4`V$0` +뉦DyO-M$ 0pK0 GqpG@AP A A`0 D`F EPNQs, FaB!cPPU* CA\QJPà@@ 08< 4JX倃Ha ( (`U & ( JJQA P@pDG R0$48D0$0P<$0 Q  RD0 B( 4B8 II H 剓0<  @ " $ B @BY`@ , "W @C!sGPA B!JR 033B 1 , IY pD`H C BVBaFaY `  ֤0GqZ@C 0IAAS0 0JS#3C! 1,0$<(00 F`G0 JS#Q3C! 1, h0V lPp  t   J RJX D p0  GB!R` 00P0`| Q!  R0 ( B0pH,`B! BXL$d\G# IY @r0 0p RHƒሃBp  RJR@DCCBAIYP D HXB! N! P  P, T Y PUPaf R  0%0  RZᨃ E H0 AJPc@!" B8 4 p  N` @@F@AB!Rs `@P` Tw  R  K@B! B#L!R ڀ@`@W`|Ye  R 4`B @B, H  8 Fa$ DaVL ( 0pP  T   @;R 033BP1, `FV. pHB @B TLADAV@  ᛣ0GqJJW ǃ!sG,  CB!Z03@ PLEQJUQ @(A`@AAFa R04` 8$0 0^@< 0Q  R$0 @E BDB!R  XV  R `J8< x A A| L4AB!#0FX , ŏ @#ʥT PS!CDpQ B!JR 033B 1 , HX @E`J C BVBaFaX`  0DAZPSC0 @ D$ N10 00Z #L 0  C  A@, B!QVZV<C804XZX1 P ( ` U0(1,0 0$0 A QA@@X #ႃH`!AA0 |qSEQNЍ Rl'3@ Ry@ R Rl  R*6 R03`@C03<ᨃ 0` C(0 0H 00 X0  0JX( @ApB@KA!Gq BsDqWʪR PSSBQ HB!$JR ƒሃB ` , pGW@K  BTBADAW@ 00 EB!ZPSᨃ (    Ap`ApBAGq@JsDqW\R 033B P1 , pGWM@J  BTBADAW@  ἡ0 FB!JR `ccBa CB!Z03`c ## àဃH `  b z!4  8 04`8- O-p -xDx4@M Mow Fp@ 徟`@/T _/?*l0h \`dPt坢0P+;( #3 3 P# 3x'$3H3L3X3\3d3|72222222222h l0+I;*ET3 `# ?002222222222屢#00 NS|o4`@@H@O!0^S>0X0 /0B\B/NPXbT o⦏FH 0 0  R0  @@@IB;S 0[/BPR[W +0P;RX  + B0QX0 (0P f4/0BhHl`d20`FHR 0!@d00" 2  0000 @啢;S 0[/BPR[ +0P;RX  + B0QX0 (0P /\0x p /N稡(0SLBd3@TdCB>(`h0P P h0`3TdCt `4C|7x'@T|G< 0t00R R ቡt00x7T|Gt 4C0<x@0P0`3"D0(0 L $ XBP .p ٟ" @104,0 P0o 00 10  0!, 0!@040PH08 S˟۟T#0 8 @ 3(8T0`,0 S @Y00P @0M e0L S0*MJd1 4j)b `5J)f d*H L S_@P@L\A  0 M b LM*l l^,Hd`KA[A A A R0< 0@\ "!2 P " !)ڎ \ "! P " !ڎ \ "! 0S " !  "!(\ @04 0S 0,, Q04 000(0C 0 0(0S( D0<0,`0V 0Q `S+  0 `  0 CR@0P `*cp0  `#bJb0 `cCd"(0及bn0jlȃh`cfJalCd bqnBQh1ablB"1fdr pb$L`L"""+; 0@  4@DH P0S0S 0( S00"2 BS 2@P 4? ?oP4C0%+L?.?C 7S (S/,01S001S0( S00"2 BS2"0 A2B1CS~  2 2""T0  ;,0C0S E!R0 01S0( SL00"2 BS2"0 A2B1CSP 㽛 2  2""T0  @04 80, S,4805H00  SK$ 00!C⧝(0P<SLD  0<0 L0DP 0  S0` 0V(0Q@# /, /BN'R R R R00"2 BS @20`@ 0S0 R00R-, !R0 !R R00"2 BS2"0 A2B1CS (0"0@11 ?BR2EA1CS 2"@,1!T0D F Ē2IA1CS 2"P, $,1$0(!T H J Ē2IA1CS 2"P,04<1$08!T L N B2DA1CS ҕ2",+T0, . t20@2A1CS 㸕 2 0 T00 2 20@2A1CSd 㜕 2 0 T04 6 Ē2IA1CSE ゕ2"P,1$0!T ` b >Ē2IA1CS% g2"P,L1@DH!T0P R [Ē2IA1CS N2"P,\1PTX!T0T V 6Ē2IA1CS 52"P,l1`dh!T0X Z Ē2IA1CS 2"P,|1ptT0$x!\ ^ xGDލ Ѝ >;;TP3!J4Ct0@0<0X`0@C 0CCT00SJSJãT  0  0W P|S @T`娰( * F/᪣ !3C0@T,0@T00t \$20#`0Cšv2"0 A2B1CS ㌔ 2 P1!!T0| ~ \20 \20y \20\Ēs\ĒT\R6\ە20\ՕĒ.\ЕĒ\˕Ē\ƕĒ\Ē\引20\嶕20r\尕BSdP \姕20 \堕20d?p \咕20 \動20WDᦕ0 O ᪣T \{20cD. 0JC1 ᾙL2S x! X0PP ėD2S/N /N<2S 噕\嗕t0x0PP `h0PP d42S 0/N/N/N/N//// / /a / @//////,zO-4M:0^0z:t00h00Y0 00 B L0_*$垡*垼+4J  BK0C$ , (0z p @$bJ(`,PzJz:zJCSC0^zࠡ 0Jt!..!!J30  Z 0 0Z * z0*:zgjzzz'jzzgzgz:S:S00Y0 0 00S04ЍY0,zO- M:  Uz:_*Z@0p0C0h ` zLbJJzzJ@C@S@HJSOz0^Jtc#d&J32A B   DtZ Z z  *zgjzzz'jzzgzgz*RR  Y0P U Ѝ  ^@-@᪔@-@ᤔ@-@ប@-@ᘔ@-@ᒔ<0@-S@ 0[/BPR[c P0( Q<0 B@  B0Qt0S 0[/BPR[I TP0` Qt0 Bx  B0TQʠ0S 0[/BPR[/ 0Sڨ 0 B0Q0 S 0[/BPR[ 0S 0 B0Q00)P&ZWh0 O-GM0 Ml\L ( G0C0,000t0$0H0 0@00x0000 0|ߕtx0$ b  040凕+ӓ 80H@ @D XP0G. 0  SU G! QA0G. T1$ $pG `w @QX0 C0!z *zzggz:S8S00 Q0d0S 0[/BPR[a D0 Pd S 0h  0 BD0Q 0l(0P 0@@x,0 (0  T_Gލ Ѝ Q0,0 0 (S MGލ Ѝ0@0C Q B@[D$0t@+G. c ` CST  j0C0@D!T !S0Q |h0O-MtM 0^L lp@l0C0$000t0 0(00800P|ݔtx0 b  D HD0冔'Ғ TP0` Qt0 Bx  B0TQ|0P L<0S 0[/BPR[ P0( Q<0 B@  B0QDH0P *80000$pP '<'@- @1PP0000 0S 0[/BPR[\ xP0 Q0 Bڜ  B0xQʠ0P `0S 0[/BPR[= @P0L Q`0 Bd  B0@Qhl0P Ɍ(0S 0[/BPR[ P0 Q(0 B,  B0Q040P ӑt⏒<⌒≒꘭'@- @1PP000 80S 0[/BPR[\ xP0 Q0 Bڜ  B0xQʠ0P k`0S 0[/BPR[= @P0L Q`0 Bd  B0@Qhl0P I(0S 0[/BPR[ P0 Q(0 B,  B0Q040P 'St<  ꘫ'p@-P@TL ` P1R0D00 [?CPS[? @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[ P0 Q(0 B,  B0Q040P ̋㧍p@裍<⯑⬑ꔩ'p@-P@TL ` P1R000 [?CPS[? @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[ P0 Q(0 B,  B0Q040P oᛐJp@F<RO 'p@-P@aT`T x1000+)t0S 0[/BPR[C TP0` Qt0 Bx  B0TQ|0P .<0S 0[/BPR[$ P0( Q<0 B@  B0QDH0P L0000p@ߌP'|'p@-P@Ts 2PP000n0S 0[/BPR[l xP0 Q0 Bڜ  B0xQʠ0P Ɗ`0S 0[/BPR[D @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[% P0 Q(0 B,  B0Q040P ᮏ]p@Y#0S<`]tZ'p@-P@Ts 2PP0000n0S 0[/BPR[l xP0 Q0 Bڜ  B0xQʠ0P :`0S 0[/BPR[D @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[% P0 Q(0 B,  B0Q040P "ыp@͋ꗍ0S<ԏяtΏТ'0 -[A^Q[00/O-@-P4刄0MPp( UㅊP ညPތP  P ps?P 0<8000z'0: PgQ `W 02@ 2=T `F4%J0 0  IR@卍`刍 䠍: $:01@0z  z `+{ZWP $0 b Sx z bz/"!.2| ~ " 0[/ P[0Sd, 2   `0! `R   탊ٌPK $0 b S  b".8@"/<2 D"HL 0[/ P[0S6, D2  `ᮌP $0 b S  b/px" -t2 |" 0[/ P[0S, |2  0`PyT P0RX VY CGp''D''(''< \    Ll'@'X  `NJSPJt"`pp0+;R0 D00 0*G @$4,0004080( T2 [?0Q[T2S|"00  ` t0pL b<SD *i*@ Ald `0l p \hT  0[/ Q[T R| h0   0倠t $ !|0x 1p` 0 l000[/ Q[[/Bσ\R[  0 1̈`P'Ç"@2x+z;R0| ~00 0*J @$4,0004080( 1 [?0Q[1SC "00  < <28+; SL *@ BD \ld `0l p h" 0[/ Q["RD"h0  ` t0pt bS| *i *L A 0 T  0[/ Q[T R| 0  0P H0$0B\L00ePBB/C P .|VጉP00z Q Tj褄Ą夐z'Z#PEJZj ` BzEzzGzzjz0C0S0A:R?z zwgz6zz0 1S5P@ 0 000[/ Q[[/Bσ\R[ 1 !1 U 0[/BPR[ W 0[/BPR[ t2S 0[/BPR[j T"0Pt2Rx"  B0TQ| =P Ն<2S 0[/BPR[N "0P<2R@"  B0QD?P 2S 0[/BPR[) !0P2R"| ~ B0Q !>P t0Sߍ 0㈐ 2@ 28O `F/%E0 0  JM먠刊`僊 䐍: Ӑ$:0 1@0z t9 "@T" 0 P"0,0Dp\ 0 ᦈ둉P000 ကg က뀀ᓈP2S 0C[/ Q[P2T" 0 傈,`p |0ňPv Ho D%t0P2 T2St &Z/:  *0 m V#㟆P@P㔅"@`<;x+z;R0| ~000 0*F @$4,0004080( 1 [?0Q[1SS "00  < <28+; SL *@ BD \ld `0l p h" 0[/ Q["R$D"h0  ` t0p btS| *i*J A 0 T  0[/ Q[T R| 0  0P @0$0B^D00ePBB/C P .~b^P00zऐQ`Tj褄婐dz'Z$PEJZ  BzEzzGzzjz0C0S0A:R?z  zwgz6zz0 1 SĄh>P@ 0 000[/ Q[[/Bσ\R[003/ᩅP 011Aa  0 / ? `0W`?p C  > 9%  e`T{Q  [PɈ xR`|Ὲ   $:0zc0: 06>(充ߍ0 40P 0   ,㼈. 8t*a``  <P` 0$``<`4   `0 A 8  ݆0 0P 0T 0X  ᝆ <0ۅ` 784fፆ bV 00 ,20 1@h2d pl` 0徆nP ?TP7ᬄor20  ,0$00Wp 0P! `R   ?} D ?'0  00X0 \ 0,n F 0 A  _ 7 0   P (0W/>0V/90 40d /0h *  00! }64,2᪄Y t0S (R\ QP R S` R003/8003/?t"`pp5+;R0 00 0*G @$4,0004080( T2 [?0Q[T2S|"00  ` t0pL b<SD *i*@ Ald `0l p \hT  0[/ Q[T R{| h0   0倠t $ !|0x 坂D4p` 0 000[/ Q[[/Bσ\R[003/01o 0T2j02e0 0_K0 @0Zl0 x0 T0@0N00 Hꀀ#0   x khe003/`003/U0 @0!0 0X0 x0 0@000 % hfd t0S (Az Z84ቃᰄ ᅃႃZ W FU ;(UP (& $ ႄ {u Ɂǁ,ŁUP 㵃~}d''A-P-`@p`@xP 1e f0 0 + ;0 0"D0 0$080<0H0L0p0t000000000 H +;@X D " $x|  p`. 0000000 < @  0@[ς\[[A^Q[ 003/1댄B'$'P񏐈~{|yzwxuvstsropmnklijihefcdab_`]^]\YZYXWVSTQROPMNKLIJIHGFCDAB?@=>;<9:7856341210/.-*+()&'$%"# !  //0O-p ,MS $ ࣐ 0_ P@7) @O w. /O @  S `@  @0 `000000 0 B0C/ጠJ` K7[{:#[NJZzZ NB*Rr R  N  B/K[{[NJZzZ NB*Rr R  N  B/K[{[DJZzZ DB*Rr R  D  B/AQqQ0DC:Ss0S000D@ PDP000D 0@Si 倀$ QL,Ѝ0O-p ,MS $ ࣐ 0_ P@7) @O w. /O @  S `@  @0 `00000 0猠 B0C/倠J` K7[{:#[NJZzZ NB*Rr R  N  B/K[{[NJZzZ NB*Rr R  N  B/K[{[DJZzZ DB*Rr R  D  B/AQqQ0DC:Ss0S000D@ PDP000D 0@Si 倀$ QL,Ѝ0O-p ,MS $ ࣐ 0_ P@7) @O w. /O @  S `@  @0 `000000 0 B0C/ጠJ` K7[{:#[NJZzZ NB*Rr R  N  B/K[{[NJZzZ NB*Rr R  N  B/K[{[DJZzZ DB*Rr R  D  B/AQqQ0DC:Ss0S000D@ PDP000D 0@Si 倀$ QL,Ѝ0O-p ,MS $ ࣐ 0_ P@7) @O w. /O @  S `@  @0 `00000 0猠 B0C/倠J` K7[{:#[NJZzZ NB*Rr R  N  B/K[{[NJZzZ NB*Rr R  N  B/K[{[DJZzZ DB*Rr R  D  B/AQqQ0DC:Ss0S000D@ PDP000D 0@Si 倀$ QL,Ѝ0O- 4MS (, ` 0_ P@p7) @O w. /O @$ S(  0 00@ 00`0 P@pN000N 0S0 0焠 B0C/倠J `$ K7[{:#[LJZzZ LB*Rr R  L pL  B/K[{[LJZzZ LB*Rr R  L pL  B/K[{[NJZzZ NB*Rr R  N pN  B/AQqQ0NC:Ss0S000N@ PfN@pNh`( 倐,` ( QB4Ѝ0O- 4MS (, ` 0_ P@p7) @O w. /O @$ S(  0 00@ 00`0 P@pN000N 0S0 0焠 B0C/倠J `$ K7[{:#[LJZzZ LB*Rr R  L pL  B/K[{[LJZzZ LB*Rr R  L pL  B/K[{[NJZzZ NB*Rr R  N pN  B/AQqQ0NC:Ss0S000N@ PfN@pNh`( 倐,` ( QB4Ѝ0O- 4MS (, ` 0_ P@p7) @O w. /O @$ S(  0 00@ 00`0 P@pN000N 0S0 0焠 B0C/倠J `$ K7[{:#[LJZzZ LB*Rr R  L pL  B/K[{[LJZzZ LB*Rr R  L pL  B/K[{[NJZzZ NB*Rr R  N pN  B/AQqQ0NC:Ss0S000N@ PfN@pNh`( 倐,` ( QB4Ѝ0O- 4MS (, ` 0_ P@p7) @O w. /O @$ S(  0 00@ 00`0 P@pN000N 0S0 0焠 B0C/倠J `$ K7[{:#[LJZzZ LB*Rr R  L pL  B/K[{[LJZzZ LB*Rr R  L pL  B/K[{[NJZzZ NB*Rr R  N pN  B/AQqQ0NC:Ss0S000N@ PfN@pNh`( 倐,` ( QB4Ѝ O-p@ 0R@dPLMₐ`T@$8@@@N,D(@Y)PH`@QA(`P@P(P,P@,@ R @A7)< @w  O-0/O ) @ <S $4 (0 `C,0PC0P00 0 @0 B0C/倠JP @ K7[{:#G[@JZzZ @B*Rr R  @  B/K[{[@JZzZ @B*Rr R  @  B/K[{[LJZzZ LB*Rr R  L  B/AQqQ0LC:Ss0S00@0LDJT@LT000L 0/^g0H@4 厐$ !8@$ T , , (  ( 04LЍ O-p@ 0R@dPLMₐ`T@$8@@@N,D(@Y)PH`@QA(`P@P(P,P@,@ R @A7)< @w  O-0/O ) @ <S $4 (0 `C,0PC0P00 0 @0 B0C/倠JP @ K7[{:#G[@JZzZ @B*Rr R  @  B/K[{[@JZzZ @B*Rr R  @  B/K[{[LJZzZ LB*Rr R  L  B/AQqQ0LC:Ss0S00@0LDJT@LT000L 0/^g0H@4 厐$ !8@$ T , , (  ( 04LЍ O-pςLMP@R @d`T 0@8@ @ ,Y,$(@@@D$ P H`@QA(`P@P(P,P@,@R @ A7)< @w  O-0/O ) @ <S $@4  (0 `C,0PC0@0P0 00 0倠J BP0C/  K7[{:#[LJZzZ LB*Rr R  L L  B/K[{[LJZzZ LB*Rr R  L L  B/K[{[NJZzZ NB*Rr R  N N  B/AQqQ0NC:Ss0S000N@ P'PN@000N 0/Td04 @  $@@H@!8@$T , , (  ( 0-N@N 0/T?LЍ O-pςLMP@R @d`T 0@8@ @ ,Y,$(@@@D$ P H`@QA(`P@P(P,P@,@R @ A7)< @w  O-0/O ) @ <S $@4  (0 `C,0PC0@0P0 00 0倠J BP0C/  K7[{:#[LJZzZ LB*Rr R  L L  B/K[{[LJZzZ LB*Rr R  L L  B/K[{[NJZzZ NB*Rr R  N N  B/AQqQ0NC:Ss0S000N@ P'PN@000N 0/Td04 @  $@@H@!8@$T , , (  ( 0-N@N 0/T?LЍO-plM \P L0T X /?\0`004d0ڬb@@0h 0@P0(1 /O?O< 80,$6/O0@D @00= ?OH0Ld Q00c ``BT/@` @0Cp"P h,$>#P0(00 00000,0000X0, `0 @0  `$!pB$ p&(` !` p `BA&& < DN$(p8BG*"DJ@:#4 P嚎. pB'" @N@#h&H@'BgB*Fj7#37P`C: 0 \0L P0 pRL PnlЍO-plM \P L0T X /?\0`004d0ڬb@@0h 0@P0(1 /O?O< 80,$6/O0@D @00= ?OH0Ld Q00c ``BT/@` @0Cp"P h,$>#P0 0000(00,0000X00( `0 @$  `,!pB$ p&(` !` p `BA&& < DN$0p8BG*"DJ@:#4 P嚎. pB'" @N@#h&H@'BgB*Fj7#37P` C:  0 \0L P0 pRL PnlЍO-plM \P L0T X /?\0`004d0ڬb@@0h 0@P0(1 /O?O< 80,$6/O0@D @00= ?OH0Ld0`P0 bBP0cό@T0` 0Cp B>#Ph.P,"X0$ 00000 ,00(00 0, `0 @0  `$!pB$ p&(` !` p `BA&& < DN$(p8BG*"DJ@:#4 P嚎. pB'" @N@#h&H@'BgB*Fj7#37P`C: 0 \0L P0 pRL PmlЍO-plM \P L0T X /?\0`004d0ڬb@@0h 0@P0(1 /O?O< 80,$6/O0@D @00= ?OH0Ld0`P0 bBP0cό@T0` 0Cp B>#Ph.P,"X0$00(00 ,0000 00( `0 @$  `,!pB$ p&(` !` p `BA&& < DN$0p8BG*"DJ@:#4 P嚎. pB'" @N@#h&H@'BgB*Fj7#37P` C:  0 \0L P0 pRL PmlЍ  0 RO-M2# 0n07w  @OOp@) @  S@ S P@`00C L? B  Knj[{"ǎ[DN^~^ 0DC:Ss0S000D00C?AQqQ DB*Rr R  DLʠ\\`P@00 0D0V    \ЍD`0@PV  0 RO-M2# 0n07w  @OOp@) @  S@ S P@`00C L? B  Knj[{"ǎ[DN^~^ 0DC:Ss0S000D00C?AQqQ DB*Rr R  DLʠ\\`P@00 0D0V    \ЍD`0@PV  0 RO-M2# 0n07w  @OOp@) @  S@ S P@`00C L? B  Knj[{"ǎ[DN^~^ 0DC:Ss0S000D00C?AQqQ DB*Rr R  DLʠ\\`P@00 0D0V    \ЍD`0@PV  0 RO-M2# 0n07w  @OOp@) @  S@ S P@`00C L? B  Knj[{"ǎ[DN^~^ 0DC:Ss0S000D00C?AQqQ DB*Rr R  DLʠ\\`P@000D0V    \ЍD`0@PV  0 RO-M2# 0n07w  @OOp@) @  S@ S P@`00C L? B  Knj[{"ǎ[DN^~^ 0DC:Ss0S000D00C?AQqQ DB*Rr R  DLʠ\\`P@000D0V    \ЍD`0@PV  0 RO-M2# 0n07w  @OOp@) @  S@ S P@`00C L? B  Knj[{"ǎ[DN^~^ 0DC:Ss0S000D00C?AQqQ DB*Rr R  DLʠ\\`P@000D0V    \ЍD`0@PV  0 RO-M2# 0v07 @Op@w. /O @  S Y P`00C N@? BK[{"[@LDJTt@T@@0@LC:Ss0S000LL00C?AQqQ LB*Rr R  LN^^L`P000L00V  \Ѝ0`LPL0V  0 RO-M2# 0v07 @Op@w. /O @  S Y P`00C N@? BK[{"[@LDJTt@T@@0@LC:Ss0S000LL00C?AQqQ LB*Rr R  LN^^L`P000L00V  \Ѝ0`LPL0V  0 RO-M2# 0v07 @Op@w. /O @  S Y P`00C N@? BK[{"[@LDJTt@T@@0@LC:Ss0S000LL00C?AQqQ LB*Rr R  LN^^L`P000L00V  \Ѝ0`LPL0V  0 RO-M2# 0v07 @Op@w. /O @  S Y P`00C N@? BK[{"[@LDJTt@T@@0@LC:Ss0S000LL00C?AQqQ LB*Rr R  LN^^L`P000L00V  \Ѝ0`LPL0V  0 RO-M2# 0v07 @Op@w. /O @  S Y P`00C N@? BK[{"[@LDJTt@T@@0@LC:Ss0S000LL00C?AQqQ LB*Rr R  LN^^L`P000L00V  \Ѝ0`LPL0V  0 RO-M2# 0v07 @Op@w. /O @  S Y P`00C N@? BK[{"[@LDJTt@T@@0@LC:Ss0S000LL00C?AQqQ LB*Rr R  LN^^L`P000L00V  \Ѝ0`LPL0Vp@-M ` @0PD0! n#P`Ѝp$0$ 0@-@000pp'000 0@-@000pmp'$0$ 0@-@000ptp'` 000 0@-@000pm@p'` $0$ 0@-@000pp'\000 0@-@000pgmo'\$0$ 0@-@000po'000 0@-@000pJmXo'$0$ 0@-@000po't000 0@-@000~p-mn't$0$ 0@-@000npn' 000 0@-@000apmpn' $0$ 0@-@000Qp0n' 000 0@-@000Dplm' $0$ 0@-@0004pm'L 000 0@-@000'plm'L $0$ 0@-@000pHm'000 0@-@000 plm'$0$ 0@-@000ol'\ 000 0@-@000oll'\ $0$ 0@-@000o`l'000 0@-@000ol,l'$0$ 0@-@000ok' 000 0@-@000oblk' $0$ 0@-@000oxk'L000 0@-@000oElDk'L$0$ 0@-@000ok'000 0@-@000yo(lj'$0$ 0@-@000ioj' 000 0@-@000\o l\j' $0$ 0@-@000Loj'000 0@-@000?oki'$0$ 0@-@000/oi'000 0@-@000"okti'$0$ 0@-@000o4i' 000 0@-@000oki' $0$ 0@-@000nh'000 0@-@000nkh'$0$ 0@-@000nLh'000 0@-@000nzkh'$0$ 0@-@000ng' 000 0@-@000n]kg' $0$ 0@-@000ndg'\ 000 0@-@000n@k0g'\ $0$ 0@-@000nf'000 0@-@000tn#kf'$0$ 0@-@000dn|f'( 000 0@-@000WnkHf'( $0$ 0@-@000Gnf' 000 0@-@000:nje' $0$ 0@-@000*ne' 000 0@-@000nj`e' $0$ 0@-@000 n e', 000 0@-@000njd', $0$ 0@-@000md'000 0@-@000mjxd'$0$ 0@-@000m8d'000 0@-@000mujd'$0$ 0@-@000mc' 000 0@-@000mXjc' $0$ 0@-@000mPc' 000 0@-@000m;jc' $0$ 0@-@000|mb' 000 0@-@000omjb' $0$ 0@-@000_mhb' 000 0@-@000Rmj4b' $0$ 0@-@000Bma' 000 0@-@0005mia' $0$ 0@-@000%ma'000 0@-@000miLa'$0$ 0@-@000m a'P 000 0@-@000li`'P $0$ 0@-@000l`'000 0@-@000lid`'$0$ 0@-@000l$`'< 000 0@-@000lpi_'< $0$ 0@-@000l_' 000 0@-@000lSi|_' $0$ 0@-@000l<_' 000 0@-@000l6i_' $0$ 0@-@000wl^'X 000 0@-@000jli^'X $0$ 0@-@000ZlT^' 000 0@-@000Mlh ^' $0$ 0@-@000=l]' 000 0@-@0000lh]' $0$ 0@-@000 ll]'d 000 0@-@000lh8]'d $0$ 0@-@000l\'D 000 0@-@000kh\'D $0$ 0@-@000k\'000 0@-@000khP\'$0$ 0@-@000k\' 000 0@-@000kkh[' $0$ 0@-@000k['X 000 0@-@000kNhh['X $0$ 0@-@000k(['000 0@-@000k1hZ'$0$ 0@-@000rkZ'@000 0@-@000ekhZ'@$0$ 0@-@000Uk@Z'0 000 0@-@000Hkg Z'0 $0$ 0@-@0008kY'000 0@-@000+kgY'$0$ 0@-@000kXY'd 000 0@-@000kg$Y'd $0$ 0@-@000jX' 000 0@-@000jgX' $0$ 0@-@000jpX' 000 0@-@000jgieQ'$0$ 0@-@000.iQ' 000 0@-@000!iepQ' $0$ 0@-@000i0Q'000 0@-@000ieP'$0$ 0@-@000hP' 000 0@-@000heP' $0$ 0@-@000hHP'000 0@-@000hyeP'$0$ 0@-@000hO'L 000 0@-@000h\eO'L $0$ 0@-@000h`O't000 0@-@000h?e,O't$0$ 0@-@000hN' 000 0@-@000sh"eN' $0$ 0@-@000chxN'000 0@-@000VheDN'$0$ 0@-@000FhN'X000 0@-@0009h(dM'X$0$ 0@-@000)hM' 000 0@-@000h(d\M' $0$ 0@-@000 hM' 000 0@-@000g(dL' $0$ 0@-@000gL' 000 0@-@000g(dtL' $0$ 0@-@000g4L'000 0@-@000g tdL'$0$ 0@-@000gK'000 0@-@000g WdK'$0$ 0@-@000gLK' 000 0@-@000g :dK' $0$ 0@-@000{gJ'$000 0@-@000ng dJ'$$0$ 0@-@000^gdJ' 000 0@-@000Qgd0J' $0$ 0@-@000AgI' 000 0@-@0004gcI' $0$ 0@-@000$g|I'000 0@-@000gcHI'$0$ 0@-@000gI' 000 0@-@000fcH' $0$ 0@-@000fH'h 000 0@-@000fc`H'h $0$ 0@-@000f H' 000 0@-@000focG' $0$ 0@-@000fG' 000 0@-@000fRcxG' $0$ 0@-@000f8G'h 000 0@-@000f5cG'h $0$ 0@-@000vfF'T 000 0@-@000ifcF'T $0$ 0@-@000YfPF'x 000 0@-@000LfbF'x $0$ 0@-@000$0 =0>0<0>0>0x0pc -  0RT S| ?@\ P+0 @ @0 d Sd" &ߊ.! @^$P+A 0lSaEcBP@@ P+ 0@QQQQ @0C0 0   S0pT1SߍS0/C0f \P+(0 B @ n0 R@0n!j dJa @@H (aA\ @+ c RQ!DKkDQA@A+`ą( xPPPPP`\Q1`#3^Q1`#`3UPP/TQ1#( P xBxPCEP e `@@P@eP0h hh!h ffAh EE(` xa@ 1@  P@XP@V @PX@PL @ P X @ PB @ PX @ P 8 @PX@P . @P X@P$ @PX @P @PX@ P @P X!@$P @PX% @(P @!PX)@, P @$P X-@0#P" @'PX1 @4&P% *P@X58)@( -@X9< ,+ =0 .0/ /P@UpԀ+ 0 b@ 00 edS@ udjFߪA  NN@@T+Q`;0fS +;n BPP+0@P @ Bʁ\AP+ 0 B en00 S0 un!h k dJa @@ A^ +VύA b0S!L +QT0. P + ^U1.@@`#3@ VU1x@/(``@#@3/P VU1#3 0pxpL1(0(  @` ed0Qudfefu`!f enunAf LLFL1(` p  P0 V @V@0 @ V0 @0 0@V @ @V 0@ @ V0@0 0@V @ @V0@ @ V0@0 @V0 0 !V0! 0 $@V"0$#"0 'V%0'&%0 *@V(0*)(0w -PV+-0,+m . 0. /0f0:H[ߍ@(P  TA0AAQ0 0@0CP  E TEE= 0@ 8'1O-M!0P@ ^`\p @.L$.0 QPZJJ::**  Z  z P ZQjdj'z#za%jz%zjzjzzz  X@ 0SЍz P ZQjdj 'z#za%jz%zjzjzzz 3[Ѝ+' 2O-O-M.0HD@$ R[0  0!"S 0 1+z j?;)?O/O0 >; ?O( ,0h0800<0 0@BS0 Q Tl(pP# aQ aPAG?J: <@ z.0IM84 RV 0R  0!<#0wX0$0p0(00,0@00000 PC0R0j U'(@*$    p `  +;@aF@K[b+;ߪIfGR  DD Q `"@+ ;SM dOjdp`p@vvNLraADvEp%,"".kj$bߪN@L DD PSP* PL p@SpGBcࠣ࠱P@`P` [PPP P ^ P@ TY ࠳ࠣYT@ `@P P NW Y ^!`@3#T^! `3`#S ` P ^!3# M h O*hPP B"R@tE 僠@0j/@􃰋2pO@3*1 o@􃰈z``@rP@v p@@@􃰊z@􃰊r P􃰊,/P􃰊brOP􃰊*"oP􃰊".2P􃰊!BP􃰊@PPPp 􃠆p/ v`O o & *, 􃠄@@ Pp` P 0p`/0P O0p`o0p`0p`0p`0p `0p`/pOo` /Oo   00 0S 0  00<0SIߍ U,@*0   p  ` K[@ Ik{*G K[ DD Q `"@k{SM dOdpp@|` | |aF!Bp֡JAD,&r"2 *b$"l N@k{*L DD PSP* P p@SpGBcࠣ࠱P@`P` [PPP P ^ P@ TY ࠳ࠣYT @ `P W P`P@I ^ X UX ``S `࠱ࠣPY!3#9 M h @Ojh B&RPtE򃐉 @6/@􃠊7jpO@0z`o@􃠋v `@@1 B"Rz@v`p P@􃰉| P􃰉*b&r/P􃰉\OP􃰉"oP􃰉*"2P􃰉!BP􃰉PP@pP| 􃐆p/ ,b rO &o @ 􃐅Pp 􃐄`@ 0pP/0p` O0p` o0p`0p`0p`0p0p`/Oo``?Z@<0Q@<PZ[HP`?[A` pS 00V p 0#3X Q pp@V@#3 pQ[Qp@@N M*aPQHOJa2j"b$r45ve3 ~ `|CT/` VO` AZo`p`~`|¶ Ҷ`p` .",2dp$ BRV`/p(ADOp,#R op0p4rt."2p8!Bp<*,p@/@ O@ o@@@@@!P%/P)OP-oP1P5P9P=P / O o     0$/0(O0,o000408<00000/ 0O0o0000#0'0/+0O/0o3070;0?0 ' ?Z 0`P0V p#4 00P(ڲ0V@#4 00Pڴ0V #4 0 0 P ڶ0V@#4 0 0Pڸ0V#4 00Pں0V@#4 00Pڼ0V`#4 00Pھ0X #4 00Pڰ1 X$@`#4 0!0#Pڲ1 Xp(#4 0%0'Pڴ1 X,@#4 0)0+Pڶ1 X0#4 0-0/Pڸ1 X4@#4 0103P|ں1X8#4 0507Pnڼ1X<#4 090;P`ھ1#1 0=?PU 0@-M0@ @0.P0@D @R"A@Ѝ0 0@-M0@ @0.P0@D @R".@Ѝ0 0@-M0@ @0.P0@D @R"@Ѝ0 0@-M0@ @0.P0@D @R"@Ѝ0O- -@L3L#0"PKL2+0PLQz UpÀMg~ ~`QJ{|aL~N (Tad(hhjxhf(v`&bqh&bgH\Dځ 0 pPLW X1PE0#03U00S Mg'O''jOgg>6jEEEai6jjy+>4i&I6?KJi7kIy*f67`hKaF>k?fIHmiy(=`jlk#x':`<kjm&bgH LL%%## &0ᑕP\Cq3wp0'#s#:C70dڅ0p\᳀Hሱ 3{摵 0⚘(#㙃#:C70Qڇ0P\᳀Hሱ 3{摵 0⚘(#㙃#:C70>څ0p\᳀Hሱ 3{摵 0⚘(#㙃#:C70+ڇ0\0CQ 3uP0 %#S#:C70ڈ0P\0Cq 3wp0 '#s#:C70څ0\0Cqp3|0|,#:C70ځ00CQP3|0\,#:C700ᑵP\ÁqC4wp0'#s#:C70څ0p\0ÑჁ C4x0 (#㙃#:C70ڇ0P\0ÑჁ C4x0 (#㙃#:C70څ0p\0ÑჁ C4x0 (#㙃#:C70ڇ0\0ÑQ C4uP0 %#S#:C70ڈ0P\0Ñq C4wp0 '#s#:C70yڅ0\0qpC4|0|,#:C70hځ00Q C4uP0\,#:C70Y$SG4Ѝp@-M ` @0PD0! n#P;Ѝpp@-M ` @0PD0! n#P ;Ѝpp@-M ` @0PD0! n#P:Ѝpp@-M ` @0PD0! n#P:ЍpO--@d3d#0{t@p<;br+nl2J:+;HdK[jfk{ab bin dhfv`A`b)j lHd(bbt@`r Bp"QdAf1b!`dBb"K(+iEVl0j12*,X;P`0P$p0# 0 0p@$p 00A!@A0C@Q@q6:C7 @QSs0S00P0P000 X$p00 0   S0  2<0S tЍ X 4%EtЍ& 5O-M%0H@DP, @G 0R  0!<#09Ȑh0 0P000,0!  `B V     $  ( +P ".@`4 r ˆ<8P ]MdOd`b;j :*48 K[9j p)b @Q0P f)n "D f*45J)n dl(bgr k{`jHnpK [lb"Jl`2HdK[jg*@!hf8ahk{)dinAb!hƉ`)lhfHdhv`t@(bpdBr fb`b"QdAf`bJ@ J MDOD[@MdOd`b< pLWOڋaP@`4`0`.8QA` ‰`4Ob8 9J: IK[ 4 + ;Q 0 ` +;k{ " dJlj*j hk{`p(bHd`b djznjp` `MF [Odb6 7J8 IK[ 80S@.PA0qደአPp40@`F& 0@l,$`ʌLǠ 0C @D\(`|62:BC7JDG:\|Ss06:S00s0T0:T 00\0P4@0 ,0S 0   00L0S Ѝ0@ SP GDCЍ&O-@-P3#0CM0, (:F00S 0!"1# 0z`h0 080$0 !  pB Q zjjZZx W `@"  †B  Pፁ(Q@ 0 +;폑( zH JdrJ+;jkpLlMdߪF D N fmfFL EE(00000S( @P0A$@q 1 `J@P` *VJf: :@ 0J"JJ:sJdJtgJJg:$:J :C ` 0   00S0 00z40S=CߍW5$`@"  ‰BP  ፥%Q0 0 폵%$PzJk{ *dpLK[ kvNal-bߪImBjN*i `@L @@ ,BCߍ<& O-P-`2"0DM84 KE @ Y 唩*(`0Z\ p@ZJJ::** V W Ç@ + ;  AdQ@ 0QddK[fhk{@+;-@ NK[-N"K$[ @*K,[L&k({-L N*" L @P 1zP 0'jej z#'zbjzzjzjCzzzC Y<0S;DЍW3 @  dQ0 0da` "a$K[-F Ft-H"K$[mFK[x H t-Fx Fb&+(;rmH`* ,pmFfNN@ 4 BDЍx&d4O-M$0@<@8 D 0R 0 <#+0`†H0 00N`0\ 0 0000 000 P p@`0"4!R1B(0000$00,00 $0 S+( KiB UpVg pk<*= >Qb*GAc *e $B&&bp)d+; j)hk { f!.(b),`r p!Rb!.x),an""DifA.R jI&v`(a,T&b`Ab1l$B!h`QdAfb"dB,p00 S+p KgB 4^2VP@`P@p!D $ A @ʌ!LNJ\|A @\QqQPN0^ $ 80  0 S0 00.D0SCЍ0^ B A` `F ʌ!Lǀ\|AjF\`QqQPP0^ BʶP0^ ʬ 0u<@Ѝ& O--@5%0SMPDL PC0\ 0!<# 0P 0Bύ(0H0000p0,0!  `B V      $ 9.H (P  @` p4ppRB 8@ 0 p <0 +";jN4 JN +; MLOL Q0pP[Mel Oul(6J k7je6*d7j3+;n(nh& 2jp)hK [p fhfjl)f j!,Dh)&(b`~r pRab!,h(d)*v``b"hdHdRb!,fbzD)&hdB`jbR`ƈhqjhQhjI 8JN MLOL<@ L<\Y.paP@` 8,pX4p `0Q@Ap<<4$+8 `OB 0 Qp -Og[0H: +j2* jK[b!nk{k {)l lAnr Ij`(hpb"t@hh`h,+ nOB <@0SA.PA0ቐP4000`$iF0 9Cp J,`DGTʌt@6LLJ:C7:T@@t@\@|6:\|Ss06:S00s0[0P0000 0S4D0 0   S0 0 0T0SSߍ BLS?Sߍ& O--@4$0M A0X 0)8*0 @PND U b  H  L  P  T  X \ $ ` ( d `6 8 ߪM  MBOB\0P $ &TME" OU" *I`(K*[i`bb)b ` *IlnbD)bil@b +"; lj,K.[Inlf02BfinD)f nh*hHdhf(bt@V`v`~r `FndBfbb"pjh`dfb* (,MO N QEh`Q f`B& A"4{Q$a O@ \ 0ObT k{0K[1 2Ih$ &)hk{ hf)`k{hI`(*h ` ")j,k.{Ij02 j(bHdr `t@b"pdB`bd`O@h0C0B ^@ڌP0ᤀ00H p`D `!T P("\8#Lp!Xp'"dp7#A+Qq6;B&C6:QqRr 6:R r S s06:S00s0T0P000 ^ʤ0 0S0ʴ0SЍ>Ѝ蠺&D O-@ -P848$0CM0 , @00S 0!"1# 0zȠ00800h0(0 !傰 pKQ zjjZz W "P@`  ,RB  `k{ ፥&Q0@  폵&` Zj `JdMd*e-bk{ D DK[Zaj BmBF @ jN K[ LL 0 0[$0@, SAQk 0A`1J` p[ 0Z` gJ4J^E::JtE::cJ$Z:JJ Z0 00S0 00{40SbCߍ WZ P@`(`,RB $   ፥,Q00  폵, k{Zj JdMd*e-b D DZAj BMBH @ JN @@ $`0Aa1J p[ 0Z `gJ4JVE::JtE::cJ$Z:JJZZZ ʐ f,=Cߍ 贵& O- -@4$0-lM` k\ X?0Y 0*9( @0@PD0^0b 40 0800<00@00D00H0 0L0$0P00GOM!O!P`RbT$l KQn0kS +  ;Ll0,+Hh(1h!i (Hh󡈓n nH$n.nh&nhn("PT@^V`pR Bb"a`qdnf`bMeAOuA U MaOa`b$ 0 DQ+Us N@, 0QKd !f!l ;QeK hKn;KVfk{;AlH;n(d`|r p좶Ⲷ¶MTTŅP6ڰ` H4 p!< @("Lh 8`!D`&"P` A+Qq6 B&@:QqRr 6:R r P B:P0 T NTX0 0 S0d0S3lЍ ND, 0SKd !f!l ;QeK hKn;KVfk{;AlH;n(d`|r p좶Ⲷ¶M0Tʾ\;lЍ \& 00@-M\ @ 0LN#@!P @}/Ѝ000@-MP @ 0LN#@!P @h/Ѝ000@-M\ @ 0LN#@!P @W/Ѝ000@-MP @ 0LN#@!P @B/Ѝ000@-M\ @ 0LN#@!P @+/Ѝ000@-MP @ 0LN#@!P @/Ѝ000@-M\ @ 0LN#@!P @/Ѝ000@-MP @ 0LN#@!P @.Ѝ0O-@-P%\M80PjC(0L JC0ߊC0ߪC50= ^ ." U>;?OH00PASQ U0`0Sf00 pp%nbM LQ0ڃ `p VZ1PAPE#3U \p j0 0j1 >0?211E33020U"aa"# q`2$!bc &2b`MFOF ^ T0S\ЍU`0p0gS@;0`@1j0 ~%p!b`M FQڃ `p VZ1PAPE#3U \h j.#>j>LJ!njo?)1L? a*c("a`MFOFP`QQЌPPp`QQЌP`pQQЌPp`QQЌP`pQQЌ|Pp`QQЌr0Qp  h0  `0+`PHQt `Rp`PQ  GpPH`Q  ;p`HPQ  /pPH`Q  #p`HPQ  0HQ` T  0Q  PL9\Ѝ0 4 &x`XhatdXXߪbO-X+;_(L-,&̖'lK[eM⩬]nPlPXJQb(f@PhXDH,ҁHjPLʨ"HH$1dlAJJ p奌@@L p `` (j`MJg Mjf (bM.M,Og pM!Of `OnOlOj!k {MjbߊM ,k.{$k&{OJ" @"Oji *D@Oh0Ogp刀k{ Ojh嶁fO*g򇠂p剐O*+ 򄰂L@p刀O*j@Oj&qb " `ac OiO k!l0K2[Q!+;!- (*4k6{OgOhA*a+8:ObW/@KB[8K:[<>q$%Ma[O deHK`1!OJaP`8K:[@KB[d`OJf[ `K [ Mc `  K [@AHdO #V?@ B ̝1edW?aLLH`O " DˍFۍ d> `JJ Y?  l `ZAjV?@A$,K.[̕򮬔 cp9 h\,ZAjL;퇬̝1o@A `HHdZ* ffffffffS\, mKd̑HKdjH \,,,. HJXhHL .@,  Zjdl dK[* K [fd d*NP킌$ &ˍۍ̑턬Xhl#0K2[l` RkT{\ll`ZAj/ j8: lA̙Hd fP`@BlK[ L ",jl$K&[킬K[0k2{\l̕+;$K&[0k2{( *,L4 6h +";, !*DFh`fAb$ &Hd< >l򉌑+; "lD Td ZA*Ha`djV&B!HH*$&(bj( L)+b,.%lRkT{nNkP{hfLh.HJ+l'j K"[m$+&;!#'۝{fA!˝`{g+ba; 0k2{["k&{(,mj(;;c푻k ,?oj>omj;/l8Y/휻jhdkW//#ji8.\ɔY/K,W/♋d0K홋hckd.kfY/~ K [dW/ `L;[e$K[ #KdcKdx.zhY/(W/⺱jn*cX.r)XY/HJctIߪN1d*LeߍO--P3#0dMX T 9D T 0$"4#_P Pu4L%P 0H<@D 8EXF U88SR1#3^Pl 0jn( @& ^&&4PH <@ U pg@D吻UgNp ˆ(gN,p@ T 0\0SLdЍULSR1#3^P0 0jn 0f ^!fAf@@4PP < @ UD U  ž p\g@  ^T6dЍ謚&, O-P-` $tM0hd 30 90B T 0!$"_p0@80PP\01@HLTX2`<01D00Sc PTD080 RQ10#03Z00S <0Mjj(0@& Z&&MOPW 05 @ PP-H PᲠPἠẠḠ$L崠 PQᴡᲡᰡT嶠 PQἡạḡX帠 PRᴢᲢᰢ ں PRἢẢḢڼS@0 T l0SftЍP\080 RQ10#03Z00SJ <0Mjj00f Z!fAfMCOC`W 0 @ PH PᲠẠḠᶠL崠 PᰡᾠἠT嶠 PᶡᴡᲡX帠 Pἡạḡں PᲢᰢᾡ00PC ZCCC00 ZCCCd~5tЍ `&G-@-P|5|%08M0` 8p0W ! _ Y R1 PQ1B0#03\00S  jh( 0@& X&&  R 1t  R l  Rd  R \  R T  RL  RD  R<  R4 R#"! , R'&%$$ R+*)( R/.-, R3210  R7654 ;: 9 8 0pW \40S8ЍRڂ0 BP Q10#03X00S  jh 00f X!fAf CC Rጐ 0  R  R  R  R  R  R  R  R R R R  R#"!{ R&%$t  R)(' , + * i 0A 0C\ C C C]0A 0\ C C CR48ЍL& O-@-P0 0M 60 pY y'(@P+;H\3@0@ XW1 L0#03R00S2 ,`ꁀ&( ` a" 0Z@`@q"@ JkjK [48 95J*dK [*4L6 27j3*@*$K&[ L",J`\` jfnဠ`⑺⑶ણc`'` \ ` jfnဠ`⑺⑶ણ c `` \ ` jfnဠ`⑺⑶ણ c` `\` jfnဠ`⑺⑶ણc``\` jfnဠ`⑺⑶ણc``\` jfnဠ`⑺⑶ણc``\` jfnဠ`⑺⑶ણc` ` #\!"`# jfnဠ`⑺⑶ણ!c"` `$'\%&`' jfnဠ`⑺⑶ણ%c&`$o `(+\)*`+ jfnဠ`⑺⑶ણ)c*`(X `,/\-.`/ jfnဠ`⑺⑶ણ-c.`,A `03\12`3 jfnဠ`⑺⑶ણ1c2`0*7`5\64n7` l`nl`5à64;98:`n;lb à98#: 0 pY0SЍ`^0 ^\^`^ Fj`bဠ⑺ ⑰ણFF# F1Ѝ1O-$M!0@ 40 ,Z 8Y,0p `0@ 0PVVUVV- 00ᓀ 40p`@D哋 40D哊 ~4YPD0 D0 0Z0S $ЍpPDYPDPD`PD@11$Ѝ較&PO-DM0` @0 @1=$P pP1 0011P4p8`<@0  k2 4 E3 _2 5<04 44  P4 I2< 0 S0(]00P,0 0 p` 12 4 4 %2  \3 4  4 4 4UH0 , S( 8PE$ DЍO-@-`30,M # 3 0 U` p0 e&u' @Ъ(0@JST JZT::**  㹚Zz zz)zǞ j*zw jzDzzjvzgjzgjvKz7fƞzkDz7'j#'j+ja'z`j+jzj jjM zJejj5jjMJejjuzzMJezzu^D $j&z:z Sc Sqz?^0Gz6jjjf+: j SG SZz?B0z6j&jzg+: j S+ SCz?&0z7z'z+ zYjjz \ r0P U`0pY$0S,Ѝ\Z ` 0:2z 0:2z 0:2z /,ЍB= >D3aD/@CHCD&o1O-M!0`@ &20 ^@ P0 N$^%Y`p`'Vq N:U U T* 0QQ*JfJq^Zt^fz%J^#JNZ)zwzgzzwNz V 0 JJB'zgzB#zzjzjwfjz&jvGZ^gZNejFZNZ6:vZJ#zgJfzGzvgzwBzazzGz0 ^@0P0SЍ %/ЍpBC4pCB{& O-`0j?G-$Ę @T@OA 05H H80<10G000t0 0 0A.CG@p-$04T 0  T0HPC-H  }. m,PCG@.T0Nx0CtD@ 0I,@C0  CGŠ0p4DH8104B^ FJN80$FL鋟4 |9H(&,0CGC... ^.(PD8 8,/8/P: 40CGC., GF.$8X 0 N  - G.8^G$E8 /`0/PLGT0 `CK/ G@0JD/ J(-,0CG-/[G40@->GBD0LCP0-T0G L`C/P0DP / (+ CGE.@Q$P(-<)P4[ 1C.G `0,C/ B>CE0M$000(00H000C. - - - - 1` V0 0 0B  ,B. G'08^G E8z.$ "/PT0 ( G0C40.0G( 0C@.40,P0 CU--(/ ?&&&&&p&\&&&Խ&,&4o(&No&oT&l&ln`n00,X4[h ,>0 0<0 É0 0C, B0`0C>GB(4 帋$HPD8<0(0 C.*G>-4 `  -;- 0  0 -h*0 V05 s, ,G,D8 8-0 .P[G(0@->GB@0LCL0, T0G LC.L0@ . 8 <* F-$0D8<`4[ TQPh4[ @1`0 0 01A. 00C 0T00T` PA A.+ CG,H,0 V0 0HF^ ,PH G,\E *PT0 ` C$ ,$ \0.G B0 G>#` @, - P$ V/ B ?&l&\nx&QQ&d.`&X2d& +$CG+$  . +t+  .H -q, ( B, G>,+  .H_,(0V08 `V-CG +,+  .HH,(++t+G @.$+|+ $G. <-  +H%,(00!/0Q% ЁP,\?OD DPI>m.SAA 0Sl  aAA\b^GG` >L  0L )L P)T$ P@ - >G(0|)" ) C^G,(0HC,`P0+  38`@p8.,0 ΃0"0@4L\|8GPGnGSP CPx. 0H NԆ  l@ $*0"-GHCnG{*.> 0T PB$*00$(0 0@  *0$ 0 * 00  0D(H@*(0H  9(y*H  .(n*0H(S  @(8h d`)\9(|8X TxpP)L9l(h8H Dd@)<9\(X8`Q$P8 40),9T(P8()$98[ !-P  )|Z)pQP8[ -P t o)8F)(QP8[ ,P \)4)PP8[ ,P } I) )PP9[  ,P 6)l )`PP9[. ,P)  ? & &&&d&P&&&̩&&&p&&&d&T&&&̧&&h&T&@&&ܦ&̦&&|&& d )\ (lPP9[ ,P ((PP9[ {,P  ((PP 9[ h,P (((4(9[U,P `E(HP(|  +(09[7,P ` (HP( +e( RP89[ ,P  z(DQ(TRP@9[ T0F @#U P@DXH8(`0,T(0C04HF @(2 0d > 00L P0L00\0d0X00@0\00 >0D0X0 H 00(0k?&ȥ&&|&P& &&&L& &&ȡ&&p&@&$&&ؠ&&&`&<&&&Ȟ&&&X&(&&8&&&̜&&&`&@&|&P&0&&К&&&`&<& &&̙&&x&CT6@S G@ C.(G @()G9 )8) 0D B#*P @!G@  C.d( G((0D)$0G9)8c)B*Pj !G@ C.I(  Ey( E 9G ( B9L(0E D 0$ BE( |)E G@ B 9(  Ep) G B0( D  B+( b) G@ B!( EX) G B( D  B( J) G@ B ( @) 0E 0+P G @(<*P G (d*P G@'*P G@  '# G . B*80DG@ ,0;*G@  'G$ @.*, G 'D '\$G@ , B* ' H8B$ .D 4( '$G@ . %* ' H8B$0 .D ( m',%G@ . * 'H8 AG[' D W' (G< E@N'  E(8 EGF'4 E DB' y(G0 E@9' Ep(, EG1' ( ED-' d(G@$ E$' [(\ %P x&G@ A> 0%&, . '&G@ . y)84$8n& G &G @*(  G%& D( 38)P$ G 0008y) &G8 @F),PG @& D& &G< @0) G& & (G@ , G) &0(044 "- D)T &l(G@ "- ,) &(040 . D( v&(G@ .) &(0 00!S(09  L %P G(@ %GD  @(( %H0G@ . ( 9PE8?'`EB'P)G@ C. |')D C. t' 8D&)G@ -'G@8& , G &GH*G@ A> 0$&l*G A> 0$*G@  A> 0$*D C. 7'*>G C. .' %*G@ -'+ G C. ',+>G(DD C. ' %\+G@ -'H@ X @ !RXL d L !RdH  \p pX` P@4 D 0L P L0< 0X !SL0 0@ 0D H0$0( 8 80( 0!Scゐ$  HD80#0`,@ !P4(!P0P@P@P P岱Ჲ$,P岰PᲱ 岲ᴰᴱᴲᴰP崱`Pⴲᶰᶱᶲ@@@PQ P@PRPPPQPPRPPPPQPRPPPQPRP P3;003+0 _80!S(0c0(0$0c0$0@0c>@0<0c><08L0!SD00D0X000X0P000P0?\p 0 : ,0*<$ (0080<@p0c C0pr 0cq0s00,0 :C4 0 R$"A r `A(puP 0v`0z yp0x8C@wpp p pp@|@pP~Pp ``: Wpr v`t@uPq,<  S00A 40q 00r  s00{0 0CB( s 0$ <\,Bps0 00qr 0($ ,0`08(0C<Z@p X%HT0XX Q%3 0$ݍ4Ѝ% 'P % s#`% K#F'P6 F e#,F<#,$0F^&P $ z 40z'zgz'z:d4)#0&P HP5H8A# E j&E#~E&P E,#TE#A &P B#$A ""s$"m$"h$"b$ "]$ "W$"R$"L$"G$p"A$\"<$L"6$8% "1$HT0PP $*$`00(0CPP $F"$ "$Ay"$ s" $A m"$Eh"#xEb"#밒&t&<&&&X&$& &&&̐&&&&t&\&H&0&&&&&&l&T&<&(&O-@ -`404M( $ *$0P 0U`0 p 0e&u' @00@S JZjTJ::** Zǚjz{zzgjz'zgz+zkz$jkEzEzNʟf'&+Ij,j+z#f'jb zjz`+z zjz+zfJFz6ʍJF 6z$uJFz'zv^zL z z,j:j Ss S$}j߭?n0fz7 j&qjʓ&jkk,: ʧ SʍT S$cz?O0jv zWzzgkzz: S- S$Iz?(0z7zj'z+j&zzZʁz \ h0P`0U0pL,0S4Ѝ \j U 0:2zzʟwz\ 0:2z 0:2j 4Ѝ := <CDDC&p $np@-PQ0@00 #`Pp$ #pp@-0P0` @0$ R Rp# R 0#p!"p@-@`P%#@o?  p0 $0 n PS L n L$0 P(, 04 0[/ P[0S, ,0  00$G-M0PS0@B4Vˀ80 0^000 4`LA@(,0CY P: QVP310S 0) , ( #``0Ѝ0DDS1 Q0 W`G)` `Q 0) `00 0+$偟   00尠0   ༡9!"!0} $   0d00 X  p!!  ! !뜜`ܒ\`T`TPA-@A $0PS 0[/Bσ\R[Q$ 0PR$0(  A B0P`, f0p P$0 D f A" F0,p(0 ,0R(0 ,00(, (0P +;0*E F 0$0 0 040 B0S5 -Q-0A S/!1Q 2*bR ` P RH `$ `; Q Q  Q  Œ?oQ20 /0 Pp@-@@ 0PS 0[/Bσ\R[0S 0 B0Qʏ e0$(`0P 0 D 0 0$` 0 $0R ( $00 $ 0 00 E00p ( 0,0BO--S3MM \ ` X#X h  d00C,B00B010d0 S<0C⃐Y ` \@00Hc0 S` 4*f>&5JB?*LF&jeLuLfDBe@uAY\ ` !0jS  Qz Q&z'zz zgGzzBz0`p#QZ@ 08ql`H@- @jh@@zw@jgj6&j&zAZZzjwzwjfj%jz'jzzP@Vz zP@z ^ 0+jz@jJZ z'zezJjzj ZzCS@Qfjz@jzwzjzwzJ8H@YlE40Ph, pp0`l k준ꁀ;7&h C mK Y`@P0 % %bH 5 5bT$ V& p B[b$& *g-@  ML['"m gMD  p J[GB1dⲲQ *g @+; r[ࢶ= *gb-N ^['"1b!j⒲& *gb-N  p ['₶ g` LX0S`h 0  cK!P P G!P P G!P P G80 C!80 cP P G80 cH0+JC!H0+JcP P GH0+JcH0*C80 Cq!80 cH0cPh P GH0c80 c_p0Yl k(X0zS`0: zzggz:Ss0S00z0zggz:Ss0S00z0zggz:S 0RX0 \ d0,\ J0>*0S@F&mLDBJ?*eAFuAH` &mLDBe@uA^d WD L!0S j @ zzjf z'jBzgzzBD0.:P Q:Q*Q*QQ JJ^GJ4^fjt^Gj&^Nj(zwjgjjvNJ\ 0 B&jcjB% jzZzz7GZzz5Fj^gjNfZejNfZ7&J7Z-JdjfGzj5gzv`zAzzzgjGjWD0< P0@ k@@Xꁀ;4pBCpCBl.&C i-L ['" i`  p[ȇȂ("Ȃ i`  + ;[ Bg *i @+; K[[MD I iMD+; m[-@G䒶1 i( B W.`P`i²a0 a%"H a5" [`"K[R"K [j 00 C00cP P I00c *Mr*mP P I*m0 JCe0JcP P I0Jc 0 CV 0 cP P I 0 c IPw P Ir +? +P^ P I{ +XP0 W@ k(D0z@0zgz:Ss0S00z0zggz:Ss0S00z0zggz:SS 00R0A@ H0,@ 4*f>&5JB?*LF&jeLuLfDBe@uAY\ j` !0S  Qz Q&z'zz zgGzzBz0`p#Qp@ 0hqZ`8lH@zz@zJZ6 jzj'jwjwgjzjf'zeZzfj%jJzzzjjJZzCSjv@D JFZzzwzgz7ZjZezj@@AzP@Vz zP@z ^ 08H@YܦP1Ph!pp0`l k준  mK Y`@P0 % %bH 5 5bT$ V& p B[b$& *g-@  ML['" gMD  p J[GB1dⲲc *g @+; r[ࢶO *gb-N ^['"1b!j⒲8 *gb-N  p ['₶$ g` LX0S`h 0  cKꁀ;&& CzzwzFzzwzJ@pP P GgP P G^P P G80 CS80 cP P G80 cH0+JCCH0+JcPu P G}H0+JcmH0*C80 C080 cH0cPV P GiH0c80 cMp0Yl k(X0fzS`0: zzggz:Ss0S00z0zggz:Ss0S00z0zggz:S 0RX0 \ d0,\ 0,0Ā00>0!p&n  TF;0 ፁb0#b#(*Pa`R"T$Al[^!nd&XAhab Pz_0[OD`` ` `FPoOdf.f*f,f(o`G MDpp p p F  0JC0JcP P F,0Jc0[ f@*g!`0[-Db "P P F0[ f@*g!`0[bNP P F0[ f@*g!`0[b JP P F0[ f@*g!`0[b LǻP P F0[ f@*g!`0[bH}P P F0[u *f¶k{튢!BJg􈂶Ab ".MF0  ,dG@B <>B$DF4@HKJ[0 05z_YH0h`L+N;4G3Jwz2jHuzdFP Rff0*G1 MDmFGb&Md`jK [mfGL-B @k{J-b `+;  AA BCY0S00 bE#H0bU#"X(TadV& P P G8Pf P G/aPG P G&BP( P G#P P G0JC0JcP P G0Jc<C S T8 F8BC<D0 SJ0+Lp !100pJ 1p j0 0:_ 1 p0 Z@"Z_0 0zz'zMJzz'Dz0jj1j_MJjjfDjΠ 0zzt`a  80@!0 2DD/@BCHC3aD 8 0C- M 0 @ P0U` 0%'5& 0 M0P S0p`0S Ѝ F Ѝ0S ?x(&O-0-BMM0/0CS00t p0Q4?0%0G΁p 0P@ v|wyzrsu0 8x<Q<Rx@PQ|@ e`P @ x8Pu`_ 6;7J9j+PDPF^oE:jepVUE`PoJH@`P@L bR B$Hd`eUdDdE`P@`P@`dj.;Jb R墌BLdnTaDB(`Pk{@`P@HdȄ,aQDlBȂdBTD`k{P@Qdk{Ah~k{ nk{`P@  naQAeᲕ ``ቐ|`z |uUEሀp P@ಐ` nFᲀ ppH```PPH@@QETᲔv xPቐP崄 8 t_j.􈀌d`^DpP`@ಐᣌP壬 ಐA,P̈h̨j`p(bhdjdlpA$lp`p"Pqhaj}1bPA!`@fhVPb(V@o|@DrKt[PK[_nXHX^ HThVoEQѷѷѷףףףףX&PlM&8P (RojEPso*ECSqoJCQAqQAsSCqQAn pQPqA j lrB*n q n+; A瘁qA市rBqAf h툁qA b dqA*n q n+; Ax|qA币qAqA^ `hlqpAt Z \p@*n q n+; AX\q`Ad帀p@qAHLqPATV X @R T p*n  n  +;K@ ${( pK吋{p  a8@pInQ@݊lp)hp djbhIl)nh fIh f)b hHd(bDl`$ltF`lr&`Fjp`&jJD @j$(,@ደ*N􉐠ሀ C@ỰṐḀ8A<@D@@N P티ቐ@ሀỰ Ḁ j G(A,04 @ደJ L퉐@ሀỰṐḀ  j FA $F H  j EpQxʫ̻*a󌰝 "lҋԛjjab bK [`h*nfk{b "Bjl2QfbBqfacQdhbbAa"1f~ <0@Qt<+;t@K[ AAe<0 SaVx p@fPt`G^oד p0p @\AP0 6 0@$-B14 BPE ]! PQ#" C# @!$%"(@5#A*B':Q/C7R? S 00 0p@S0R0 Q T000Wp0BލЍ<_0@Qt<$+&;t(K*[,.0 2 AA|0<0y0C- M 0 @ aP0U` 0%'5&  08P0 S0p`0S Ѝ  Ѝ& O--0\M   0z^0 0Cx0jZJJ: :jZJJ:: SFfd0P 0X@B>PR0|PG0@P0 ZFZeڰEdʰDjcjCzn J&o0E&DD4BPBz zzzzzzzzz zz\nnȯ@ȏBDPOoj/h`} "z_GLmF$z_-BȯFG @GLȏBjhjO@hOdzjBxEdGp`fqhna 'jfbn`!.JP f,@@A# pQ/1!򄀍aba!+,qTdpqn*ftzBJ.B* p`਀儀dFq&K([ ha"!lgh!+M`򨀝nzm@ A h1#&(1beod!j- n fA,j TdxBA!Q-!!1+l`t-`j-NtB L0 0|`含xd`MFStk`MB0P␛Fh`Z_B zM@kl`gzmF󐻬@kp`DmBk/Jm@^h@lE/bZ_Xb' LG zregzb&jBpEl @`qjh ajg`J)&Tad*f!.ZA* %bR!b'1/!#1n@z- Gz_qfadPO zmB@-FRo G z_MG MF J HЭ| D Z D  NNFJf:G:MZlZLJmjNjnz R  B`q P !D`*z*0.*J`zzp*`/zJ`**p\0*D *"P1^ ^C@吊arP*킪*zg*1^.*{ ^C@吊vwPzz*bz1^/z_ ^C@吊Zr***0*P'efzc!z*1*j*"z^"*9 ^C@吊O40l hʟb*q큺Bjzz *iNMMz]^Y zBa z*zg*bzB*B"*z**aZ;*z.*cZ6zdB*h *VЍS6fh0P 0\@B>P0G|0@0ZFZeڰEdʰDjcjCzMPB$oA&oDD4Bz zzzzzzzzz zzP\eeo@ȏBDPOof/h` k{+; } 'z_GLmF)z_-BȯFG @GLȏBjhjO@hOdzjBxEdG`Qfqea Ph 'Qjfeb`J!.f`P P, pA#Q/򀀍1!aabQ!+q,pTd*fqntJ%zB *B"pdF"K$[倀q ` PhM`򄀝a!lg!+Qhnzm@ A h1#"$1beod!j- e fA,j TdxBA!Q-!!1+l`t-`j-NtB LP 0d`含0[xPMFStPk|`Z_[PMB0␛Fh` zBM@kl`gzmF󐻬@kp`DmBk/Jm@^h@lE/bZ_Xb' LG zregzb&jBEl `@ pjiaqjh`J&0`&Tad*g!.ZA* %bR!b'1/!#1n@z- Gz_qfadPO zmB@-FRo G zMG MF K[HЭ| D Z D  EE0PB0C- M 0 @ P0U` 0%'5&  0w0P S0p`0S Ѝ  Ѝ`% O-P-@pလPM Mi?0| 0x0} T< `0[d T4,0D0̟0, D0@@  0<"͌" 0000000+1 0 0 S`lF⊠#Jx0 "@g456h0>0>0000`(@g cc!hAjlH0Sa`b!f01@V04p5j K2JP3*dPPNPNDPxPph L@ppkN{X0@ߪGKL[ D(0h DP0NX0x|0 u00`V( *(*b$( kb )PeߪjPrP*PRK"2 A&Q(Ea'q%ߪJ"# B EU#80S0 ecuc!fAhj% ;&;&;&;& l 8 | 4& 3&J6G6Rp (`0S(0P,@00|0@00H00#x0H0x o03$0."Ġ000,"2h p0` X b!"ᴀᲡ l bᲲᶀ ᴡ+Xp崲Ḁ h+ᶲaẀᇦ +aḲpᎦ a+ !ᾀX "ဦ ဲ r2ቮ X 剷 AX?⌢@+Pp;BC6?XQ?  B#Rr ?Q S?   B#R( ?S 00Q080( P00lލЍ(0 0(0S80P00]ލЍ0(0 F I F C  @ < 0C- M 0 @  P0U` 0%'5& 0 0P S0p`0S Ѝ  Ѝ0S  t% O-0-M000CS00 0}ڽ?V0)9PB 0_lG>09( 0000)200<00800400@0@0 10 100P010$1 01`0100001p0100Z?1j?D0z?1?0?0?00$0 0 , 0 $ `<@084 cᜰHc/ D/*A/JN 0!0( ,!01 @T#pb"s' ! 00 @ I0NO"'P)C7@P P0 A, 4#T(0,3 0 040 0!0(, 0!41Cd /.? 0 0A"')C7 @P  0I NO0P @AP|@0$  %# 0@ P@@P$ P<@00rC8@R? B 0 P@P `."  @># P "@ P0#*,$PB':(/C7R,? S ʌ00 LǠ0\QS0R0 P 00$0p 0$0S]ߍ$0 00S ( *_$00 ,.0K2[4 6 CC(0$0&C2*&C&B.T$&<2<.<&O--d\M MH@8<\ZH @2 8 \ P0[ PQ\ 1P0[ PN\ 1P0[y PQ\ 1P0[ T\ Dt D@Dh L\1L` P0T00l00p00h0x0d00t0P0DL  QT0pA0 `@zV0lh 0   d@0000 0  n(Jd8*l*K*k K kJKJk zd0zJk z0 jk z0 0埊k@0@<0%| X`0H&&qn:= <CD@ 0P a0 Rj,<= aj@j?P (Ff`z n$rP $ Pr ˝۝P &&p Pp P (pz ;*B& (z a$0mfL hzBj @AT'<0PL0JTJ8Z:@0 1e: R 0QjQ:zcjF:jC:z:CzgzCH04PdJ@ AtPpZ   * *: : JZjzjzjz󮷪_'zvzgzgzgj zfŪz&8AANj_GȺjjg jfCzjfz'i'j''z 'zb&zzzz/Jeuzj_Ej*Jezz5zj_zjJezzuPzEL j_㼀jjj:.jS  Sbj?0jvj톺Xjz'KjjǺ:.SE SHj?0Fj7z>jzzgKj+j纽:&z.Sz S.j߭?0jwzjzjzzE^zz 0 \a  ^ K+\\P<<< <0@`XvCCCCDD  l&&0 CJh^ ܁Ji0[t(H H P P H0[ JhJit, mL 0[ލLǻmP P H0[ JhءJit* J0[ @J  MS mP P H m0[b *h¶!BP K [튢 U@p⤂Ji!b, @Ȃ``j`h J_ 00 b!^ M c! 0[P P H[0[P{ _ IOv0:2j40:2j0:2jꞪ_z_z0 Z \2Pm _ I(h M mP _ I mPp _ Ik0XU)80zS@0!< zzggz:Ss0S00z0zggz:Ss0S00z0zggz:S0P0 S80< D0,< ` Ѝ1W!:  1  !4P0H !008<@DL 400040G\1PP !ppd !0TX\`h P0pPp01P0 ,!,p@ !0⌰吠唐嘀 0@@W 040040@@ 0S @l@W 0S (0P00P0%% \ LO-MHp (`PE0swh_N 000P P U@ 800`k{0K[4 +";   ` 0000 $( ,0x``0SЍuЍ``0S j %(% O-MMş,`p ༝<\E[@P U> [P 0%CU㌰ ̝C( -C  0C P+ ,L ˠ,K[+ ; @  L00pᜠ 0 @@D00StލЍ[0$CLW# PoP <S S U.D4,0K[ > 0$ $ʀ !1 ;0  +$ Cσ+;   B \`J@Hd*A(b,T0C L#@<<@, l00Xpdh T0 @T@00S ލЍ"0 p,˄P"̝pPK0C  + ;H+x"D @, D0tp0ဠ p0g@p@Q<U,: @ 2 4 ,T840 h ,00Xpdl T0G0 0T0v<U,: 7 t1 D ,匰HD@  ,0p唀嘐圠 0& @@V00S %ލЍ@ <,0K@[5.+0;* , ,+ , 2K4[6+8;: <@ 0@!l000 @l@0SRGߍ0P0 L1S S TLL1V@`0 5TPDPb4` 00  ;8K:[D+@!00 . ,+;40K2[4+6;{* @* 0@!400L0H @4@0S ~Gߍ4f4 L@` L1V@`0A3TP&PBP@00 0;D1 >+@;ˢ(0D@1 * , `3 $.+0;2 4+ $ BKD[6+8;: <P @!0P00d h0%PPPUQ2@1TD!: ? 2  @!4`0H D!008<@DL 4000400@1TD!: 4 ,2 $ @!l`($P D!0pt l0PlP0S Gߍ1 @!@P@`d D!0TX\`h P0`P`d1,0 @!,@@P D!0⌀吐 0PP00S 0S 0P00P0T PlPT 040040PPP@4@@l@PPq%% P `   O-EMß`Hq  @B &+(;* ,+  ;8!:K<[.+0;2 4J @D0H@0x0LPT X0@@@0S EߍD1U| Px09`10P"p@D$p6+8; 8 0: <  &+(;* ,+8!;.+0;2 4J @(0,$0x0048 <0@$@w00A00|00{@$@0S }@\@@@@j%ئ%D <  O-MMDşhQ pXa\AUş Q `1S SPPd1&gqx0JO| z4 +X + *@, @@+\$ .[0K2;4+68 :<(kPx  X  DPpT`@ P@P50Sp Mߍ`1Sk S #Ud1 .x0{k R jkK[ + k;{#j{z[!z["Zk$ZK%jk&J'j!zzGz"Z$Z%j'j\Px0G ( * @ ,+.;+ 0 24+6;8 : <+>;+"@ BD+F;H JJ @` dhlpp`\ t0@\@0SMߍd1"qx0z| J4g O+X x0+ *@, $@+p! .[ 0K2;4+68 :<(kP  (,04p8`$ <0GP$Pwd1&gqx0JO| z4 d1"qx0z| J4g OP$PN0S V@\@DP@P?f%آ%X % O-YM$ğp1 Aa 0ᘁT00SSPoT 0S<0X  V6:Tzzj.1CoMj0!  1K[(1T3 ,!RKT[@V+!N P@ 0 10 1J? !$1@ A 0S+YߍT` SS,!01(1`!d2hd@ 0* !ؐ00ࠍ0J?䰍 0@@ 0S Yߍ{0P0 1S S1X!: 0 S4 1 D !`HD@ 0 !00ؐࠍ䰍 0T@@ 0S SYߍZ?`:`z41,!! Lz( ! @ 000!0J?1(@@Xs1JEj!0! `  @ 0!,0104(1C?8  00$   U P V 0HCL#L0@Ο%HC嚏 PΌ_CIC@@ADQ%.&.NpBtR8A<P^(02N6P,p8@00&D0 @ С e< (HL ~J ( E$0 - oF  z 6/ bB  m ) 00S  R Q00 Sq01 1d @84D 0  i40`P @p0S3+N#s|4* P0"#20"8 20"202PR^Zo ^   fnV )^o XP.o53 32 P00o0 20夐4 0e먀 렐  0唐u L3R똀 P 0RCP3HL%0PD 0X\3} d2CP0[0 l2@ 50U0xPd;  |I|0!t ;"- >lPt0 ȑ;h1 h0!p "- )p0!d ;. d\Pd0 ȑ;X1 X0n0!` . .#}`0+;0 *  @ 0" 20"#2022>"3@BHS%`%%,%P%%DD%%\%<T%4P %%%%X%$%  TL`fO^*~ jO⦏ Ob_n ^ A@o53 32P_/`0204 0O` ܐ 0ЀuH3<` @ 0`pCL3aq0PQ 3#1T @*  0# 30## 3032>#3"@CR1SXߍ`2Po @y_11{r_ p  020 4 qO12X c_} `  0430 4 peNEPs 3 ~j2>802>80P`/$^_/Yo P @\S1S 0@B7 1@BPR @CO--ğ Mj"84A0D4d04(TTD4 0000 0 V U t3h# @#nC~ύ鋟ꛟ5@ `%M@!Ƞ↿pppp W +;K[K[ qt3ύ 4 0# 00{1)zCd "2 {z]t3/0 `00P{U1)zCTT0LPl3H` PŸ_,4 ΌPpx3bps `0[! `2po​큛谍00000 =80@ T8 +;K[K[؂PT  0F/   ؐ%.  00P T0F0SD10 $$-N3(1 ,3K4[$* $ 0+1;. /K[+; P"( 0", 202 =" $2"bPR1Ss 4aߍ>>>>CCCCCCCC>%z%0%%P m< %T ,4U@3 D30t3^4@ύ0 ]@D 0%pկq `N@0{?0080@@P䑍葍80P00S00`!S1 0N_/M)n DDR_ JO~ 5N hPoO5$3 32LP/@ 030p4h0@ /|pO '0ppul3t@ lP< xx0@P_Cp3 A$Qg0P ,4x3 2@0[ 2POV*UV⪯ [ +;K[K[  0D  Zo+.00 [0D0S$4 $$0* ( @r#, 0# $ 3$0#< 303 #8@ChH m %%0p3Q 0ύ }0P %m>0@`QA5⼰ )?O @004 0$0 U@@ `0 00000 A(@ B0,P040CGP EZ0'U##'uUPLEZUuPUPPPLAQqQLLAPEZUuUPLEZUuPUPPPLAQqQL LAPEZUuUP@EZUuPUPPP@AQqQ@@A@DJTt@T@@0@@C:Ss0S00 0@B*RdR@`000@QUg$a$0冐8 0$0ReAJ-1Z  Z% KZ C_)0 11tK@ `@\  0/:8+ T 0;0D0SKߍZ:K Rp@@0⼰PȐ̀`0C0q 1k⸀x:K Rp0@<00Pa0080Sھ p@79-0@/O(0, w> )?O @004 0$0U@@ @0 000000`( `F0 Bo0C0,4WK'[{##[ LB*RrR LB*Rr R  L L  B/`FjVvV`LFjVv`V`` `LB*Rr R  L L  B/`FjVvV`AFjVv`V`` `AB*Rr R  A A  B/PEZUuPUPP0PAC:Ss0S00 0AB*RRA@000APUga$0冐8 0$0R8@J7K Rp0焰@800P吐唀`0040Sھ @79-0@/O$0( w> )?O @,00 0 0Up@@0`0`000匠$ J0 Bʯ0C,`( 0WK'[{##[ DB*RrR DB*Rr R  D  B/JZzZDJZzZ DB*Rr R  D  B/JZzZ@JZzZ @B*Rr R  @  B/PEZUuPUPP0P@C:Ss0S00 0@B*R1R@000@PUlʘ` 0冐4 0 0R[ڄP3K Rp0LP@800TPX\``H0040SEھ @79-0@/O$0( w> )?O @,00 0 0Up@@0`0`000匠$ J0 Bʯ0C,`( 0WK'[{##[ DB*RrR DB*Rr R  D  B/JZzZDJZzZ DB*Rr R  D  B/JZzZ@JZzZ @B*Rr R  @  B/PEZUuPUPP0P@C:Ss0S00 0@B*RdR@00 0@TPUl`` 0冐4 0 0RLPP`1SZ@0 ` C Qq4ND0SH UE8.%|j%t,L  t`1SZ@0 ` C Qq &5Kߍh0K Rp0hl@800pPtx|`d0040S<ھ @79-0@/O$0( w> )?O @,00 0 0Up@@0`0`00匠 $J B0ʯ,`( 000CWK'[{##[ DB*RrR DB*Rr R  D  B/JZzZDJZzZ DB*Rr R  D  B/JZzZ@JZzZ @B*Rr R  @  B/PEZUuPUPP0P@C:Ss0S00 0@B*RjR@00 0@pPUl|` 0冐4 0 0RhlP3K Rp0砰@800P嬐尀`0040Saھ @79-0@/O$0( w> )?O @,00 0 0Up@@0`0`00匠 $J B0ʯ,`( 000CWK'[{##[ DB*RrR DB*Rr R  D  B/JZzZDJZzZ DB*Rr R  D  B/JZzZ@JZzZ @B*Rr R  @  B/PEZUuPUPP0P@C:Ss0S00 0@B*RR@000@PUlʴ` 0冐4 0 0RڠP7K Rp0ذ@<00P䐍耍`0080Sھ p@79-0@/O(0, w> )?O @004 0$0 U@@ `0 00000 A(@ B0,P040CGP EZ0'U##'uUPLEZUuPUPPPLAQqQLLAPEZUuUPLEZUuPUPPPLAQqQL LAPEZUuUP@EZUuPUPPP@AQqQ@@A@DJTt@T@@0@@C:Ss0S00 0@B*RR@`000@PUg`$0冐8 0$0Rذ@JS}Z@0 ` C Qq DSnZ@0 ` C Qq {5@ C0q 1<000pd@ C0q 1r800d0b@ C0q 1d8000TC_ 0p0V<00 1F C0q 1I\H@ C0q 1@800H0o0@ C0q 128000a"@ C0q 1$<000S @P@U= @TP@U ʜ A@APUR @pP@Uʖ @`@PU= @P@UZ @`@QUʜ@x@H@d@d@T@C_z|z⸀D0S <000<800H0<00 1800d080008000<000O-M̟P$q PK `,@4! w bR 0W Lό0ࠡN0/o P,"ᕗ+X      (X .N ^ pK X`L @ܠP 6 PHE0fھ p@ B79 0@w. 80/O=@ ?O<09 0@D0000Z0 0,0@0 0 @`@B 00 B$0  ( 08 @

  0** J Z P     X!0d/K P ` @ ؀Pp@0I1SXڑO , ` SL0Oڬ<0@01 ?OP08?OT0<?OX0@0b h  @@ $& @0 0- /O\ ` 0@ 劀0 B @D☙( "C#぀D0 00$00(0000800<08 $`@0p<` P4p!p  pp@R% ` $)@$ V%(` !@BW `4p&&XT BEZA, P'"LZ07#嚔$( p BG,DJPP0i&@'"\@Bg7##Fj'`3 B*7 C: 0 D@0Z`ؐPpyT!0d/K P ` @ 帀Pp@0y1SڑO , ` SL0ڬ<0@ 01 ?OP08?OT0<?OX0@0b h  @@ $& @0 0- /O\ ` 0@ 劀0 B @D☙( "C#぀D0(00$00 0000<00808 @ 0 P< `$p 4!(`@R%p  `$)@ V%$` ! `@&&XT B4BWAEZ, P("L P08#嚔$ ,PBGP0DJi&@'"\@Bg7##Fj'`3B*7 C: 0 D@0Z`帐PpzT!0d/K P ` @ 嘀Pp@01SڑO , ` SL0ڬ<0@01 ?OP08?OT0<?OX0@0b h  @@ $& @0 0- /O\ ` 0@ 劀0 B @D☙( "C#぀D000$00(00 00800<08 $`@0p<` P4p!p  pp@R% ` $)@$ V%(` !@BW `4p&&XT BEZA, P'"L P07#嚔$( p BG,DJPP0i&@'"\@Bg7##Fj'`3 B*7 C: 0 D@0Z,`嘐PpyP!0d/K P t` @ x|Pp@p01SڑO , ` SL0ڬ<0@ 01 ?OP08?OT0<?OX0@0b h  @@ $& @0 0- /O\ ` 0@ 劀0 B @D☙( "C#぀D0(00$00 0000<00808 @ 0 P< `$p 4!(`@R%p  `$)@ V%$` ! `@&&XT B4BWAEZ, P("L P08#嚔$ ,PBGP0DJi&@'"\@Bg7##Fj'`3B*7 C: 0 D@0Zmt`x|PpzP)0004B@ `@\  0]:! 010l0SЍHQЍp@ 0 0?d00p0n@ 0 01d000`@ 0 0#d000RP 0 0d000D@p@P@d00p06l0S H>{d000'd000!d000$7%$ HO-SMϟ ` UP|qx們儡 pAgW <  ((t/ ) Z 7ڪ?ZM i0Z r0Zh h0Z ^)00141 O@ `@\  0x:. 0>0# $0SSߍ;Z 2 Z <Zt1\>0K Q P00␰ `@0t1S[7w @OO@p9 0@0T S P`00C @? B@ DJT"tT@EDJTt@T@@0@EC:Ss0S000E00C?AQqQ EB*Rr R  E@ PP`P000E@V`0p00t1S P吰Z% ?ZGt1P<0K Q P00ذ `@0t1S7㺩 @ @p@=?O0w> ?O0T X P`00C@@ ? B@ DJT"tT@EDJTt@T@@0@EC:Ss0S000EE00C?AQqQ EB*Rr R  E@ PPE`000EP@V`000t1Sd Pذ;Z ;Zt1$:0K Q DP00HL P`T@@0it1S;7w @OO@p9 0@0T S P`00C @? B@ DJT"tT@EDJTt@T@@0@EC:Ss0S000E00C?AQqQ EB*Rr R  E@ PP`P00 0ET@VP`0p00t1S DPH Sߍt180K Q \P00`d h`l@X0@t1S7w @OO@p9 0@0T S P`00C @? B@ DJT"tT@EDJTt@T@@0@EC:Ss0S000E00C?AQqQ EB*Rr R  E@ P P`P00 0El@Vh`0p00t1ST \P`t1$60K Q tP00x| `@p0t1S77w @OO@p9 0@0T S P`00C @? B@ DJT"tT@EDJTt@T@@0@EC:Ss0S000E00C?AQqQ EB*Rr R  E@ PP`P000E@V`0p00t1S tPxt1,40K Q P00⨰ `@0t1S7w @OO@p9 0@0T S P`00C @? B@ DJT"tT@EDJTt@T@@0@EC:Ss0S000E00C?AQqQ EB*Rr R  E@ PP`P000E@V`0p00t1ST P娰t1420K Q P00 `@0t1S=7㺩 @ @p@=?O0w> ?O0T X P`00C@@ ? B@ DJT"tT@EDJTt@T@@0@EC:Ss0S000EE00C?AQqQ EB*Rr R  E@ PPE`000EP@V`000t1S P$(%x~0h h  T h\x t1$00K Q P00 `@0t1S7㺩 @ @p@=?O0w> ?O0T X P`00C@@ ? B@ DJT"tT@EDJTt@T@@0@EC:Ss0S000EE00C?AQqQ EB*Rr R  E@ P0PE`000EP@V`000t1S- Pt1820K Q ,P0004 8`<@(0t1S7w @OO@p9 0@0T S P`00C @? B@ DJT"tT@EDJTt@T@@0@EC:Ss0S000E00C?AQqQ EB*Rr R  E@ PP`P00 0E<@V8`0p00t1S ,P0t1040K Q Q00 $!(a,A1t1S7㺩 @ @p@=?O0w> ?O0T X P`00C@@ ? B@ DJT"tT@EDJTt@T@@0@EC:Ss0S000EE00C?AQqQ EB*Rr R  E@ PPE`000EP,AV(a000t1S: Q t1D60K Q 4Q008 ?O0T X P`00C@@ ? B@ DJT"tT@EDJTt@T@@0@EC:Ss0S000EE00C?AQqQ EB*Rr R  E@ PPE`000EPDAV@a000t1S 4Q8t1X80K Q Q00 !aA1vt1S7㺩 @ @p@=?O0w> ?O0T X P`00C@@ ? B@ DJT"tT@EDJTt@T@@0@EC:Ss0S000EE00C?AQqQ EB*Rr R  E@ P PE`000EPAVa000t1S* Qt1L 410015001dt1(@ 41001&00(0Ut1@ 41001000Ft1^ F10100017wt1FO 41001001(ht1@@ 4100100@0Yt1@ 41001000 Jt1@ 41001000;t1@ 41001000,t1@ 41001000t1p@ 4100100p0t1X@ 4100100X0E`@PV+yE`E@PVE`@PVE`l@PVE`@PVjE`T@PV`E`E@PV ]E`E,APVE`EAPVE`EDAPVdE`E@PVE`<@PVH@ (@p@~@@1@k@ZX@L^ FO@2@?00@0;$0S C00X00000*000$o00100(000000p00010000000001O-4Mp\@X` ZI0P0@ @* 00 0(`,0@@0S4Ѝ4Ѝ@@0S $D%O-4Mp\@X` _ 0P0@ @* 00 0(`,0Y@@0S4ЍV4Ѝ@@|0S K $L% p@-` @P    0 0pS@- S@3@#\@T5 cR N l A 0(0@ $ (0 @$ ( 00R0>Sk{{; +  K[{z{zz{{zz{{zz{{ z zR   $ 0(0$P%O-YMğpA aTTTPg V V g1.|`x0h7?O08?O0~0?O0<?O00)00000X _N;N PA0.+0;+ 2 4@@6+8;: <ˢ;3>+@;B D+  ! TKV[RK*k,{F+H;J LP0@0x0T X0WP@P0S* VYߍV& V  x@0\` 1!2 Pt@* !0p \0,P\P\0SYߍ1.|`x0~0?O0<?O0h7?O08?O00)3000(_(X""+ ;,$@0<++! . ;1˄0[* ! 2K4;6+8: >@*kP0$0x08 <0P$P1.x0h7?O08?O0~0?O0<?O00|00)00001.|@x0~0?O0<?O0h7?O08?O00)3000P$P0S P\PP@PH$x%d D O-- Mi"@10,0@1P<0040Pc P 0J K}Q1".11zO122 2$2n?r+t;80~?+;0 n pq| ~A2"$ P- $0 b S  b#.HP"/L2 T"X\ 0[/ P[0S, T2  BD$p$ 1S 0[/BPR[ !0R! B0QL2H"P+;1 !n+p;,2r t ,2AqST ?P P0! +;H2 L2! 0I?o_o 2D0R 1Rp, $0S񏐑       rq  nm  hg  dc K J f e YX SR? >  s r q p 1 0 / . ;:98q p o n [ Z Y X # "   B* ) ( ' & % $ # P21Y BVpNDTWO$F UPF\UR,IVUCL`^,[4MNA@K=<    %$#"0 /  W   S R , + * ) ( ' & % 80,20 2@(28Ho&(","}L@ 0H0 H@\  0;l$L@ 040m$0S?>=<;:76TSPOJIFE"!;:{zona`_^kjih  /.SR+*ON'&%$#"! $rZYXWVUTS0,2D8DN(0S40SPPUoD\' h7 0 1S 0[/BPR[5 !0P1R!r t B0Q$0 { C/o"2S 0[/BPR[ !0P2R"  B0Q00P 1S 0[/BPR[r !0P1R!r t B0QP 0SSߍo(0$ S]0B0S(0P C $0\0C0PPRN) 9 0 ;$, V5U5E7?B0 G0 0$ 50(2,200 \  0;|* 0 :0 ,0pVUE((2 7 H0!L,r   u$ JPQ" 2 @ -5o(0S4 SR "0(2,2[P P\  0;+ 0 <0(0 C!, 0 (,r  f P!! 2 "o(0S4 SR "0(2,2W\P P\  0;, 0 <0dM(0 C!, 0 (,r9   ! 2 "o<00CSj$ ,0 SX (00S0,r   PP   9I4P Q" 2 @ _o($0Q C<0R0C  SPP< U. > 0 (0S /  ? 0 ,00 Td/ h? 0  H,0p00!0 p(,r  n X)$HGhI<HFH;4E G:HD D7HAH6<@C`5?C4L>LA3L=BT2;?1:>0`:T@X/ 9: .7<+@5@7,*3o<00CSD00 ,0  (,r  x b3$0F"Qq,C 2\ o<00CSz!( 1 0 gP,0  (,r?   $pF4Q " 2 @ o(0S40S(00CS7"9 2 0 $ (0 C!, 0 (,r   !1(0  2"jUo$0( bPCgSUPPRqU0B$ PfPB_oRS $ 4 0 , V5U5E7?B0 G0 0$ 50(2,2|0 \  0;$ 0 40,0pVUE((2 7 H0!L,r{  Y C$EPQ" 2 @ o<0 0 {% 5 0 hQ$0 ,S 0 (PP,r<   !1$0" 2o(0S4 R0CS""0(2,2 VP P\  0S;& 0 70(0 C!, 0 (,r   $0EQ"&C(0\ࠃࠓ 0 2/ 0 $ , 0H 0 0 (,rPP   yC4PQ" 2 @ 8\` 4($,L\` (o)0(2,2_P pP\  0;T/ 00?0( $R0 SP  S0A  0l 00D0H0@DoTS VO~.> 0 kT(0SlVOj\.X> 0 W@d0X 0 VOT.  > 0 A*X0dVOP0  CH0(!, VOVOih P8 08080d 0C`>, 80D p  0 l0P S ` 0p0A  0 L 0  0  0 HPV`hK0 LP0S 0SX @(U@DT $ VO<$R, ``%p  VOo `ጣd 000D0| z0VOP `sh 0FVLH00 oVO*: 0 lU$ VO;R, ``p  VOo `CT 000D03 1D0H SR$ 00RRpp RR  SD oVO5)9 0 " $0SS000``$ VOt: B , ppP,0p D VOWo `0, 0E bD0S oVO(8 0 Xd0H 00 o|VOl(h8 0 $^ A0Ra`A`Aoo 3 #o[SbD 080 ]0A00080X0* *BVUEVO"Ϡ%$0\ C\0R Cd0^T @? B`0X 0%P8, Xp`80 D VOo `h 00Z X$SR oVOk&6 0 XA$0}S vp`7VO, o0(2,2^ TƟ(B @,(, 000y0D0(0S(080$ o0Bw BRS0080$ l0B0P0p p0kpGt0Co0r00P0$08 u0C0 B0gR0t0^ D0H SR o4VO$%B 5 0 5VO, \1,z 1A 40t pVO8p 0 P0 o `ᵡ|0, 0 Dp ((pW. 0GSI o4VO$$ 4 0 Dp$ VO4UR, ``p0D VOo `w 00i g(0oS0(0 Xd0H 00 4VOp$#  3 0 ]FX0VEUEEdH(0( D C00!00_EVO,R,  VO1VOLpg 0-DQ8 @0A 2@~ 15m`h0ec]H0@DTS oVO!1 0 $ VO 0B0 0B  , R``000,0jTp,0 VO9o `Р 00'0D0 B L4l(24'X1yT'1H6&0L5D524`1#\-100/"4,../t!(+/!*..0X )<+ 0+L'0),,*4&*x**l %$' #&&%d!0%%L$<$!"$P#d#d8"""##h "t!0! 85"!"%"%"%"%d"%H%D0S oVOn 0 0 [D$ VO0 R, ``D`p  VOo `1L 00# !@DT $ VO$1 B , ``p 0 VOro `  00`0D0 10y@DT $`VO1 RV  D , uVps d20lD VO Ao `؟ 00/ LD0S oVO"2 0 Xd0H 00 o4VOD#H3 0 $f0A S030#cRD0< e0A0b0B?o``280X0 BVO⃠V5U5E/\0Cd0T@? LX 003, 1p  840080VOL D 00o `V 00H F(0S D R 0CS(0D0 oVOR$ 4 0 ?($060CSp A  @2#ppH R $ < BSR P 0 lVO*n?,80011,"R 50AT~ 5, Pj,0D zzz{J `, 00: 8U@DoTH0SS VO&$6 0 $J0@, @S 00QJP| 2P|$R2A  Q0xD0 ,' 0VO(BT L7, x0pS.h70n/0|08 8 ` | 0p 0 VOm8kiܽPVO dHp0 ( XVO,P VOUVOJ?t0好0t0L 劽= l0 0 ~D0W0SJ 80xS[p xQ[p 80hxS[p" x0S  @kPD0S4 @bP H9~80 > D F  Hٿ>r0  p п#3 苟0. | 80 d00,删0D0,Sd0@ !1 塽0H0߿D0,Sd0@ !10 ␽00οD0,Sd0@ !10 00὿0j&|0 0#01z 12z jjCzzzzD୿82}& 0 㜿ᅿ0 00 S0 00d00d00p0&0Fp P0d:P , X-X ,HiP5H(2 30GP0PH X 0, 0104,0塾, H*PpJ "0u,0吾, Hd:  0  h0,0 >C "@0CB 1!g᪼008P[?% %P%%%8% %<Hld a 6;@PI\(8P[@@P  8p0 .B BD0S3 x0S 0 .B0l p@t @@0噼᪾0 H0@DoTH0SS pVO෾!1 0 㤾፾$0(pCW080 04A370080WH0ppSC $040CS00S<0D0$0 VOB0CSpW@B@J?,t00(1,1I,"R(1PH0SpW"(qW 2VO, Ӿz80VOz,0 zzg 0+S윿 `4, 000D0% #t!( D0RS0BSv D o|VO.#X3 0 $ VO3&R, ``狾p0D VOZo ` 00H e@DoT$0 S H0 S0| ~222 222~?2?2 Dßn8p Ό80   00VO⥿=l00R 2@D@1VO@dH0 ( X0,叼 VO┻VO32,  8p8, `8p}0p0, n8lߺP1 0 L ᪺0 08塺0 0l嘺 p8 ll h<0 H|P ᑺ~$SR oVOG 0 0 4$ VO0R, ``礽p  VOto ` X 00b0D0 }B@|8| d l , $"@\%D% %Gm%`$@DT$ VO@0SR, ```|p  VO0o `ǚ 000D0巼 ᵼ9(0SoD R0CS(0D0loVO !$1 0 㮼ᗼ$N0@ 8@Q8R  PSl 00x0! VO(BT 1, 0pS/10n/0l08D н8 ` g 0p 0᾿ VOX8VTǹPVOXB@ xT[p lB@wT[p 0S-20'R Q'7Փ'0PSQ 0 *VO3 0~>C~ 10 2@1m᰹l0 @0#8@풣!%}p,Ύl V/✮,,80p .| tύP0͍lx0p@SP0P @!D1l 屹 x0|S0{p@劋 z0P0 (",2 ᠹD  x00,S0{p@劋 z0P0 (",2 Ꮉ@ p0WP0{0P0t0zt0|VOcJ?}| VOt0vt VO8lڼ VOP PP r,VOf, lVOʼ VOp ុ5VO(2 3(1|'PVO 0l 0@1 04lVO0պp lVO]8VOt}t VOT0ulVO0p lVOItpVOh VO? 0  VO;0l0 >C "@0CR D1@!哾VOոD d0H BX0!0(0 ," VO'VOƾyz01u r  ?0% % % 0 L l(B0 089t 0 .B B ,xP. Ps 0 ~.B8 |0p00l0尸0 H0(0SD R< 0CS}D o`VOʺp!t1 0 㷺ᠺ$0"S H0 S0| ~222 222~?2?2; ß0p0n 8Mό80   00VOh=l00R 2@D@1VOdD0H C(X0! ,P VOUVO᧷2,ֺpp0D 8姻8 `? 0pX008.ᡷP 0 L l0 08c0 0lZ 28 .l *0 H>(0D0|@{ߍbj8_0 !~ 1 0 ۹. k 0 0 ɹ $ 0B BRS00(040SPPU (|ҹl  h0 0 㿹ᨹ BP (tx,lPDLDP$0 S00(0 40 Sz e40S0(0(0 2$o0Aw ARSzk Au0A  0( f0CSiU$0fPC0_o(0R40S0(07(0 Z40S-Y+ 40S0(0D0040(0^ BR3# 3 #S(P40S0(0D0040(040SY  0(0f0(0o;! 1 0 (A) " $2 0 0(07k Au0A  h pdoD0VOH C(X0! ,ڷ VO߶p1S 0[/BPR[i VO\1Sx!0 B0\Q82l |<Ph1@"D2 lt1V Xp!,2 2l ,2|!p x!SL2: !01 p8r @rDr p0 pL ڵ 0  ppе0p ᧸ ᣸w0 H᷷80P(0H"|1%>L2#>x!H2VO 0l00D020B@200`8020S0D0( `@20D0S0D0H0SSo Z?D0!10!00"t10080D0S0D0H0SSo Z/P oVO.!1 0 H0 W XS"~?| ~2?"" """2\np E 8DOC~KA nAt q80   00VOŹ=l00R 2@D@1[D0So0D0 oVOԷx Lt0 0 ᪷ B(c=PdO@UĿ \H"hdx04l`o8VOᡷH AL0 0 ㎷wS0D0m Z0D000oVOჷ 0 0 pYfppoVOm 0 0 ZChH0 S"~?| ~2?"" """2ßpn8 @ 8NCV㞬Cs?pAءC80   00VO=l00R 2@D@1\\VO"`2 0 B@ZŸnp H 8MόOOp nAt qW(0D0)\B@ST" H H, ,D0S 0P0PᛴP$ 1((y,"Y! 0Sx!0 ~.B,08 0P0(0D0]VO౶p! l1 0 㞶ᇶ%(0D0l810 (AN(0D0 A@}(6,"n\pp pn8 ΌB Os?pCAء(0D0B ->W͓=mY>Bs?3h(g4"`"$$:p$ " " "$$$x$@$D$ @@}T[pb 4@@`}T[p> Hpp\MW[@ D0S h  =S`~ٮ>0H00 0 0SXP)-R&+>C0C *  R `{0VOA@׷30>C~ 10 2@10sD0; 6:+*  Ra `{:0p0VOⰷH010~ 2@1 N00d0 (X VO,围 VO⠳VO?T2, !Dp80D  `ቓ 0p 0߸z xPI 0 L ᶲ0  0㭲!n0 0.B8塲D0 Se \!0  l.B B0呲0p h d8 `l \00 HpP̸t(rn8p 0pl x<8 8 4P 0J, 0E;/A$$ $d$$$$h$D$($ $l$$p$d$\$P$|4$$$x$\XyQ[p pTyQ[p PyQ[p 00yS[p- x0S 7 @@P@@Ps% @@ P  0 +ា$1 0 %=C "@0C~ 1!9\qp8W[w p1~tt!0 A.B>D0P 0AHp0 0B00X0HᎴ p8fCp 10 2@1Uᘱx0J/!S9 ?O1 # 7-B B000$0 %-B B #8$0 .B8t 0l 0 0 0 8 ޳, 0  0 ~Dp0AP0ᠶP0pP_  '(0 A7wwPwwwwϲP<3<#,  F.DP P P9 >D 7.D C'CwwPxxxw孲P2", 0pl ታ8 ᅳ ၳ| 0ᗶt 0ᒶ@Ÿ0p0n 8e.APH 6H PP >Aq rlx CpxH .Ax8 Ct(xxx|xc1,!H 砰CX0 APH H PX0P L M(x x A(xxxxH?H0 !, {CX0 APH H PX0P ' ((4x 8x A@(<PxLxHxDxHHh0| , V0p00 X +X pPVB $d$`@$$$$$l$8$0pt xײl Ӳ8 ϲL 0 .B Bh 0 .B BڵD 0 .B ֯x0Sp 0 .Bǯ0pt ឲl ᚲ ᖲ ᒲ8 ᎲX 0ᤵp 0៵.AH BD PD HPt 7=A } C}D .A= C-}}}}}3,#D 纯Z(040(0oD0\ 0 ,83 0 7=C "@0C~ 1!tᷯ\p0X 80 0 l t0[D 0Ÿ  *2 0>C~ 10 2@1Oᒯp" .B B`" 0l . .AHD ٴD HP %=Az {y C yD .A(9 C$)8y4y0y,y1,!D C.AH BD ᵴD HP >AV W} C}D .A= C-}}}}$1,@!D CP0 AHD ᐴD HP0P 1 2(x x A(yxxxD徰D0 ,  0 *ct0 0>C~ 10 2@1弴K B $$$Pm$$$̐$<$$]m$8$$$t$T$<$$$ 0 ,0L0 0 >C "@0C~ 1!刴 5(2剰 ⵳0 0>CC Z?GP G @u@Mz(040  0>RSY q>B0CBpH07}p~G pGP D1 0~.Mp GM-7--MMMM"3,# _֮D ԳP >D ,D >C C.}~~~~ ~43 ,0# AٮD0JH0ᴳH0P  p-(0d}l=h} J}|}x}t}2 ," "}(0D0t H$t >@@ ɯVO∰`冰h0YݭLۭ0S @8vVOo@⒯VOeb `ṭVOXT 8M8VOIG C8A= VO:t8VO4/ -VOǭ ჭVO! VOṳ VO 8 dVOyVOt B 8$$D$l$$$l$ᅭݯVOٯONԯ~Яz̯vǯqïm⿯i⻯eVOⷯ-?VOQ(:⭯W⩯S⥯O⡯KVO❯VOVOVOᔯ VO⑯፯ VO⊯Ⅿ/$}'x"qmi~d` T@⃮ X8VVOSVOL ᣬ VO? VO<89- VO2VO.* VO'# VO VOVOVO@@5 VO} VOvVOqVOmVOitVOb߮VOۮQz"O~oz̮vȮrk⽮g⹮c⴮^⮮X&%}QVO⥮VO⡮VO❮VO♮ VO╮ 8VO⑮Ꭾ ጮሮ VOⅮVO~ VO{VOvVOrVOnVOjgd VOa^ VO[VOU&VOMO-M(P@``p0 @@@@ 0ݯ0p +;S0  &+(; * ,p@@d  0[/ Q[d Rʌ 嘀0  0@(  Q 000Dß@  0 V/0130010  P@ @ u p0R 000廰|Ÿx  0X2 0V/̭ᵭ0S 0[/BPR[c 0P0R * , B0QP 0S 0[/BPR[E d 0P0R   B0dQʌ0P L0S 0[/BPR[ , 0PL0RP   B0,QTX0P ԪЍ蘀00ᄰ7ᷰᴰᱰ:תժӪ1(T@-M @H!80 , 0 -Ѝѭ(0P)+*;0@- M @*BP0 B0 (, @@$@0@4@岬,0j z:0Gj@Szjj  Ѝ0B!<00( @-R0@00 [?CPS[ P0 Q(0 B,  B0Q040P 6 k$ 00( @-R0@00 [?CPS[ P0 Q(0 B,  B0Q040P  @! 0[/ P[0S, 1  1PSUP 0[/BPR[ P0 1R> @! B0QP U" P4000` 0  \  0+0$' 0 70 CP $0*b S bH d0h p `+;l  pt 0[/ P[0Sz, l0  PU $0 b S: < b 1> @! 0[/ P[0SK, P1  `02H 00. (0 00 1S 0[/BPR[4 P0 1R> @! B0QP @0  S0L H6ᶦP $0*b S b 0 + ; " $ 0[/ P[0S, 0  0$ Sl @@x0p@ 0 04倨0 @@v04P l 1S 0[/BPR[ P0 1R> @! B0QP u0S 0[/BPR[d P00R0 2  B0Q0P S 0$  BBT:0S 0[/BPR[w | P00R" $ڠ  B0|Qʤ0P , P d0S 0[/BPR[N D P0d0R h  B0DQlp0P Iߍs F~8 xy2P s @n00囧#x0|0喧P00ᐧ@0D0勧ᾧ⻧@⸧xⵧ@ P@ء ֡`@ P ki@á ῡP+ ;@-M@0*C0 C 0( , 0$0@0040@0 0Ѝᜡ뼤BO-Mp@PQV0A,S!!Q0"*cR `0P SH d$ b+  Q 0Q  0Q00œ R% h@)0h0l0娦\e` ` \  02 % ( 040ಣᛣP $0*b S b8 T0X ` P +;\  `d 0[/ P[0S, 0`\0  00/h@S0S p☐ pP 0㐰2@㔐 00$@+ ;0 000(0,0娦0 @@$` @ ܤ0S 0[/BPR[ l 0P0R   B0lQʔ P  P0$`1@lP 0 h0T0S 0[/BPR[ 4 0PT0RX   B04Q\`0P q 0SYЍ0` qP px y0p2@㘐 0$@0+ ;0 000(0,0吰唐"0 @@$` @ V0S 0[/BPR[l 0P0R   B0lQʔ P0 . 0 ЍC0h0l0tC G 0 0( ㍢v00S00`040᪥ݥ8ڥd B $D̰@( 0S 0S Ҡ IO-M@P eq0`Sx )000ğ pW  092$ 4 040# VP QPSP: $0*b S b 408 @ 0+;<  @D 0[/ P[0S1, <0  P`4 PℐK[00jER0JI0xp00+; x0|0+;P0p0 l htp0 [?0Q[0S< t0  l0S 0[/ Q[0S 0[/BPR[ 0P0R  E B0QH0Q0L0St 00  l0h  S0 E 0[/BPR[ L 0Pl0Rp   B0LQtP Ğ40S 0[/BPR[  0P40R8   B0Q<@0P ! 0 S 0[/BPR[d 0P0R  E B0QʰP zЍBh@$  Th 0000ϣ0pp0p\  0d ;h0 04 ޠǠP  ɟH0 0P0 S0H 00L0 00HO jH00' H0 0 ᔠS\1 000,LአI 0 0$1 000 <0@-S@ 0[/BPR[Z |P0 Q0 Bڠ  B0|Qʤ0P ۝d0S 0[/BPR[; DP0P Qd0 Bh  B0DQlp0P ,0S 0[/BPR[ P0 Q,0 B0  B0 Q480P x⁣@~{O-MM`P@RP  $0*bS b *+,;0. 0  0[/ P[0S, 0  'P $0*bS b 8+:;!.1< > ! 0[/ P[0S, 1  P΍ $0*bS b F+H;<18!R/J L@D!HL 0[/ P[0Si, D1  F^0R S0S!R S" 10``4d4[lD@0`@\  0v00$ 0D 40hQ0S 0R* 90``4d41ß 0` @T  0w0# D 0p30;$pWpW-D-f 0 0:>C 00 0X 0C00:&?01@3 0  `C cBNp@C. G0G ,402H(4009pG{P  01@H(40Í2@bύ`4s0,d0444331111h4l4>f+h;1n?b d dč1I0F΍ d4 0s1@ `401H3@1 !cR l`PA+B; 0 0*C p C0 $ 0 4 (,7/MJFZOڴ!P1D0C`0,0T$08t($(@  !Q0A C0 0B0 B@d$+  0qBQʘs!;Pr"Z# K+[+r p bq++r;s; $(@ƛ ěP `<1S 0[/BPR[ !0P<1R  @! B0Q0D(0P 1S 0[/BPR[ 0P1R  ! B0Q >P ^0S 0[/BPR[ 0P0R    B0Q 0(0P : ݍЍ?01@3 0  `C cNBNp@C. G0G ,402H(400? 0pG-F΍dd,t C΍  01@`401H(4]0F΍,t d4 C΍ 0 1@`401H(4J@1!cB>0R 1`Pj+k; 0 0*C @ C0 $ 0 4 (,4/MJFߚZE#@3D0CP0,0$0pÝd($(zzz!Q0A C0zz0B0(jz 0&z7BQʗc!j@b"Z# ZjZjvzwzfEz7jzv'zvz $( ᕚ 哚PB01@3 1?  `B0cBNp@C. G0G ,402H(400(?(0pGgF΍dd,t C΍  01@`401H(4=F΍,00,t d40 C΍1@`4 01H(4@1!cB>0R i`P^+_];_ 0 0*C @ C0 $ 0 4 (,4/MJF0S@(1@DXS0t3s` 0,30$0 0P#P B0 P0B0 P  0B\$ @  @ A B0 S 0,љ(ϙxP  01@3 0?`C 1  c0BN`p@C. G0G ,402H(40`0g*>00pGᦙF΍dd,t C΍  01@`401H(40P   ,40@1H(č3΍0s2@X+Z;`40T V044433p1t111h4l4V?,x1=dč|1a@1!cB>0R 픛`Pi+j; 0 0*C @ C0 $ 0 4 (,4/MGJEFB0SC"2D0C|!$0,0  R`(q`4(0 S(0 0$\0@0 \0 @R  p@0@LA0S04,0XP22B01@3 1?  `B0cBNpp@C. G0G ,402H(40p0匞?,0pG˘F΍dd,t C΍  01@`401H(41>F΍000,t d40 C΍1@`4 01H(4@1!cB>0R ͚`P^+_];_ 0 0*C @ C0 $ 0 4 (,4/M‘J~F{0SC#2D0C<#$0,0  R (q`4(0 S(0 0$\0@0 \0 @R  p@0@LAJ0S0402,0hPkk ?0`B1@ 3c *BN@@C. I0I ,402H(40@0ʝ=0I F΍dd, C΍  01@`401H(490F΍~,d4 C΍ 01@`401H(4%@1!cB>0R `P+; 0 0*C @ C0 $ 0 4 (,4/M⿗J⽗F⺗X@6D1( 1P1Q0C 0P C  `P 0 C\$`P,@APҐ`0 0C@X0  ~|8P ?0`B1@ 3c vBNP@C. I0I ,402H(40P0#>0IUF΍dd, C΍  01@`401H(40F΍⚯,d4 C΍ 01@`401H(4q@1!cB>0R X`P1+2; 0 0*C @ C0 $ 0 4 (,4/M J FX@<D1@( \2P82Q0C 0P C Bp `P 0 C\ʔ`xP,@AP`0 0C@ښX0  Ė–HP0S0C01R00Me 0C>0C{xP @ព``0C╖哖ᑖ뱙t!x1 0D `čdčP+; 0*B B 0$0004000"``Θ jM fdHP `⻘HP Q4 MK8P8P >!0:,8hPhP +,'0%XPXPyy ,(xPuxPff   PbPSS  POBO-P-P@0 +;MHp*@0 @` @, $ 0 4 4 @ D ,1((!+;8 <`뀠 ,1  븰 ,1  @ 02@ 0 0z 0P2@0 P@8@D$0S 0[/BPR[< 0$S(0 0C Q,00P' XT40S 0[/BPR[  P040R 8  B0Q<P 5ЍT00c8@s$T 9 7531Q008@D) Bo@O-\MP `Pf gp 0 @(PP +;@@ D@P@T@HL0EjU:zz L Gj00 J@Uzfj'jj00 0 0`@ D0S 0[/BPR[ $ P0D0R H  B0$QLP \Ѝዚᵔ՗ BO-RM M\Eoʯ@B ,LĘS,  RO΍1,C-C@ O΍0D 0!8>C0R΍5-O S.C%9>C +.C09> >Cb(/C0 9 Q?C* 0Q./C1<C?C Qh0Q v-W/C R.B~> k?C0PP+;D(0 00 @ 10<1@`800`2D㼠00㸠2@@10Q@0D000001 1110*E*0 00יFoP 0F 001@H002@10P0 T0"D0141h1l1x1|11101=<1^? $R!@ 0! LP@!D! ,>(8aV+X;R Tp1t!坙=P $0R>0␑1 㔑"D10!1@@ X0n02@1z0!`0 d011111111b?\1=r+t;n p!!1䱍b 0(H 80X0,@ (v“2S 0[/BPR[  !P02R " B0Q">P X1S 0[/BPR[ !P01Rr t ! B0QBL~ P 11S 0[/BPR[ !P01Rd fڨ! B0Qʬ0P l1S 0[/BPR[ L!P0l1RV Xp! B0LQt0P 41S 0[/BPR[ !P041R 8! B0Q<(`P ˒0S 0[/BPR[j P00R ! B0Q0P 0S 0[/BPR[K P00R   B0Q(@P 0S 0[/BPR[, l P00R ڐ  B0lQʔ0P eRލ ЍN K$H4 ESBr? <9 b `$^ \ZX VTtO-RM MtDoʯ@ ,Bg, bh,  \@~0DPP+; 0 0! 0"D(0 0 <0 1@ 80 0B/2@`10`@0D000001 111@0㼠00㸠@Q*E  00!崗FoP 0F 001@H002@10P0 T0"D0141h1l1x1|11101=<1^? $R!@ 0! LP@!D! ,>(8aV+X;R Tp1t!z=P $0R>0␑1 㔑"D10!1@@ X0n02@1z0!`0 d011111111b?\1=r+t;n p!!1䱍? 0(H 80X0,@ (S៑2S 0[/BPR[  !P02R " B0Q">P 51S 0[/BPR[ !P01Rr t! B0Q Bt P 1S 0[/BPR[ !P01Rd fڨ! B0Qʬ0P l1S 0[/BPR[ L!P0l1RV Xp! B0LQt0P ɐ41S 0[/BPR[ !P041R 8! B0Q<(`P 0S 0[/BPR[j P00R ! B0Q0P 0S 0[/BPR[K P00R   B0Q(@P c0S 0[/BPR[, l P00R ڐ  B0lQʔ0P ARލ Ѝ* '$$4 !Sr  > <$: 864 20PO-RM@D Moʟ@ ,BB,  (8aV+X;R Tp1t!T=P z {R. $0!n?!0 1"D㐡0㔡1@!@ X0!0 2@z1\0r+t;`0d0111111110n p1b?1=⬡!!1䱍0(H 08X0, @(, x2S 0[/BPR[  !P02R " B0Q">P 1S 0[/BPR[ BDl!P01Rr t! B0Q P 1S 0[/BPR[ !P01Rd fڨ! B0Qʬ P Ǝl1S 0[/BPR[ L!P0l1RV Xp! B0LQt0P 41S 0[/BPR[ !P041R 8! B0Q<(`P 0S 0[/BPR[j P00R ! B0Q0P `0S 0[/BPR[K P00R   B0Q(@P >0S 0[/BPR[, l P00R ڐ  B0lQʔ0P Rލ Ѝ$5 Sr  $   +O-M,DM ]0@p! ,` 00F, `,⦏`9o PL+; 0DL  ( L2$ !@H P0P2Dܐ 0"@0H"P0@T0 0011(1,1P2T20ؐ A+D;  00gP^+; E +E;0D X1@0L"2D X"@010H"`0@ d0P1T11111P2T208!.<10@`1d1f?DLHQ0\4$ \!1->P ,0 o p!@h = E1102D102@H20p0t01v1112 2P2T2j?1?Ⰱ崁4 @ ! 0!! z+|;>lv xL2"P !2 30 |@rx+;hlx|%΍ p(t20GjW:zzt0jX":0Wzfj'jj Bc8x00X h0H<`@ 8l2S 0[/BPR[, L"P0l2R p" B0LQt(0P 42S 0[/BPR[  "P042R 8" B0Q< =P 1S 0[/BPR[ !P01Rz |" B0Q 0P d1S 0[/BPR[ !P01Rl n! B0Q0P B1S 0[/BPR[ l!P01R ڐ! B0lQʔ(PP T1S 0[/BPR[ 4!P0T1R X! B04Q\$0P 1S 0[/BPR[o P01R  ! B0Q$(@P ܋0S 0[/BPR[P P00R   B0Q0P 0S 0[/BPR[1 0P0R  ڰ  B0Q 0(0P ݍЍ| y,v/4sN pm0m jgE⑋ Ꮛ0卋 ዋ剋멎D↋჋ ။,4}z,şPO- M%0 p@ ΌP $` E-@N+ R/ ^' @@) D,  AAA0Fύ A$A `8< b(A,A0A4A@ADAJ<1Pz !0+;z zp`p`0 , -C , L.C ) .C ͜ ̞Cz0) 3/C3Cz l gLoCfC` `p q@"D z@0PXQP0>p1 0(\Qt1b?T@X@ThAlALpH!Lxa P|a`+b;dQ`QAd fAAABBԂ1嬡zn?P 40 01@\002@2=1">  "Dz! 0 `! QQ~?+;d@| ~h@AABB B$BBB,aaԒ2"@ ?P P Q 008"0<"1@D @"Dl0("0 2@0"2 0pt0ox0&^H2)~L2222222#>+;P2? ,4TbX"\"R2r P O 0 P@+;| ÍÍύBYB j0@P:zz 0j_":0Pzfj'jj 80\ 0L|00l0<@ 82S 0[/BPR[& "P02R " B0Q P ‰2S 0[/BPR[ "P02R " B0Q?P 2S 0[/BPR[ d"P02R ڈ" B0dQʌP |L2S 0[/BPR[ ,"P0L2R P" B0,QTP [2S 0[/BPR[ !P02R " B0Q 0P 91S 0[/BPR[ !P01Rr t! B0Q,0P 1S 0[/BPR[l !P01Rd fڨ! B0Qʬ(0P l1S 0[/BPR[M L!P0l1RV Xp! B0LQt0P ӈ41S 0[/BPR[. !P041RH J8! B0Q<$0P ߍ ᛎᘎᕎ0咎3 ᏎQ4匎p቎冎僎 ᭈ4嫈ᩈ姈奈ŋᡈៈ0坈 ᚈO-M4DM ]@p! ,m⮌될,0J40姌, `塌JLPo+;0D +D; J (L  PPP L2!@0$2DH 0 0"@P0@H" T00011(1,1P2T20܀؀ AP P00 P^+;  E0LHX1@L"DX0@2DD 01"@0H"`0@ d0P1T11111P2T208!.<10Q`1d1f?+E;, \4 \!1彍>P (0  0!@n oh  E11=0 11@ ! !vύ!0/2Dz+|;10v x2@lH20p0t011112 2P2T2j? 1> L2"} P !2 30 |r+;@$x hlx|%΍tp0GjW:zzt0jX":0Wzfj'jj BM8x00X h0H<`@ 8l2S 0[/BPR[* L"P0l2R p" B0LQt$0P 9~42S 0[/BPR[ "P042R 8" B0Q< =P 1S 0[/BPR[ !P01Rz |" B0Q0P 1S 0[/BPR[ !P01Rl n! B0Q0P І1S 0[/BPR[ l!P01R ڐ! B0lQʔ(PP T1S 0[/BPR[ 4!P0T1R X! B04Q\ 0P 1S 0[/BPR[m P01R  ! B0Q$(@P j0S 0[/BPR[N P00R   B0Q0P H0S 0[/BPR[/ P00R ڰ  B0Qʴ(0P &ݍЍ (10P o, 4E! , 49D (0  O-M4DM ]p@,0, ` 00F,``7o PL+; 0DL  ( L2$ !@H P0P2Dܐ 0"@0H"P0@T0 0011(1,1P2T20ؐ A+D;  00eP^+; E +E;0D X1@0L"2D X"@010H"`0@ d0P1T11111P2T208!.<10@`1d1f?DLHQ,\4 \!1+>P 40 o p!@h = E1102D102@H20p0t01v1112 2P2T2j?1?Ⰱ崁0 @ ! 0!! z+|;>lv x(L2"P !2 30 |@rx+;hlx|%΍ p$t00GjW:zzt0jX":0Wzfj'jj BC8x00X h0H<`@ 8l2S 0[/BPR[, L"P0l2R p" B0LQt$0P 42S 0[/BPR[  "P042R 8" B0Q< =P 1S 0[/BPR[ !P01Rz |" B0Q0P b1S 0[/BPR[ !P01Rl n! B0Q(0P @1S 0[/BPR[ l!P01R ڐ! B0lQʔ(PP T1S 0[/BPR[ 4!P0T1R X! B04Q\ 0P 1S 0[/BPR[o P01R  ! B0Q$(@P ڃ0S 0[/BPR[P P00R   B0Q0P 0S 0[/BPR[1 0P0R  ڰ  B0Q 0(0P ݍЍ}z w4t/0qN nm,k heE⏃ ፃ,勃 ቃ凃맆D℃၃ 4}0{xO-M4DM ]p@,⌇0, ` 0儇0F,`|`o PL+; 0DL  ( L2$ !@H P0P2Dܐ 0"@0H"P0@T0 0011(1,1P2T20ؐ A+D;  00ӈP^+; E +E;0D X1@0L"2D X"@010H"`0@ d0P1T11111P2T208!.<10@`1d1f?DLHQ,\4 \!1噈>P 40 o p!@h = E1102D102@H20p0t01v1112 2P2T2j?1?Ⰱ崁0 @ ! 0!! z+|;>lv x(L2"ZP !2 30 |@rx+;hlx|%΍ p$t垄0GjW:zzt0jX":0Wzfj'jj Bl98x00X h0H<`@ 8rl2S 0[/BPR[, L"P0l2R p" B0LQt$0P \42S 0[/BPR[  "P042R 8" B0Q< =P 1S 0[/BPR[ !P01Rz |" B0Q0P Ё1S 0[/BPR[ !P01Rl n! B0Q(0P 1S 0[/BPR[ l!P01R ڐ! B0lQʔ(PP T1S 0[/BPR[ 4!P0T1R X! B04Q\ 0P j1S 0[/BPR[o P01R  ! B0Q$(@P H0S 0[/BPR[P P00R   B0Q0P &0S 0[/BPR[1 0P0R  ڰ  B0Q 0(0P ݍЍ 4/0߆N ܆m,ن ֆӆE , D 404şO- ML0N @ጀ~L`@L LP J,宿 @D>@@A`A 0$̍ P RbA AAAAA(A,A巂$1zP 0 v`pP`P  0~p?zp CppŠ`CpDf/0`pP P008!<10@410^+`;Z@1D1N?T@X1>Z \X@PATAL0\q `adaLQHQAAAABB弢1!>P 00 01@\002@2j?1?  "D!(0 `!v QQ>z+|;d@v xh@AAAAB BBB$aa弒2"弅 !>P b c 40 "0$"1@, ("Dl0"0 2@"2 0pt0 mx0_0242h2l2x2|222?+;82%> P l2S 0[/BPR[ L"P0l2R p" B0LQtP ~42S 0[/BPR[ "P042R 8" B0Q<P ~1S 0[/BPR[ !P01Rz |" B0Q(0P ~1S 0[/BPR[ !P01Rl n! B0Q$0P ~1S 0[/BPR[l l!P01R^ `ڐ! B0lQʔ0P r~T1S 0[/BPR[M 4!P0T1RP RX! B04Q\0P P~1S 0[/BPR[. P01RB D ! B0Q$,0P .~ߍ 43 Q0 p  *~0(~ &~$~"~B~~4~ ~O-M4DM ]p@DA,ᐰ*0KD,A `"DA, L` C P o+;0D L  L2( $ !@H P0P2Dܐ 0"@0H"P0@T0 0011(1,1P2T20ؐ A+D;  00qP^+;0E+E;D  L2!@0X2DX 01 0"@`0H"@ d0P1T11111P2T208!.<10Q`1d1f?@DLH,\4 \!17>P q r.400E( 00l0v?!-0尡!L20!1@㴡@ h0傯!0 2Dz+|;10v x2@H20!p0t011112 2P2T20!1j?1>2P !3 40 |$t@rx+;hlx|%΍ p=0GjW:zzt0jX":0Wzfj'jj  BC8x00X h0H <`@ 8l2S 0[/BPR[* L"P0l2R p" B0LQt$0P | |42S 0[/BPR[ "P042R 8" B0Q< =P |1S 0[/BPR[ !P01Rz |" B0Q P o|1S 0[/BPR[ !P01Rl n! B0Q(0P M|1S 0[/BPR[ l!P01R ڐ! B0lQʔ(PP +|T1S 0[/BPR[ 4!P0T1R X! B04Q\ 0P |1S 0[/BPR[n P01R  ! B0Q$(@P {0S 0[/BPR[O 0P0R    B0Q0P {0S 0[/BPR[/ P00R ڰ  B0Qʴ(0P {ݍЍ዁ ሁ允4傁00O|n,y vsE{{,{ {{~D{ {{4{0{{O-MM(D ]@,p0, ` 0`F! ,`o PL+; 0DL  ( L2$ !@H P0P2Dܐ 0"@0H"P0@T0 0011(1,1P2T20ؐ A+D;  00P^+; E +E;0D X1@0L"2D X"@010H"`0@ d0P1T11111P2T208!.<10@`1d1f?DLHQ0\4$ \!1婀>P ,0 o p!@h = E1102D102@H20p0t01v1112 2P2T2j?1?Ⰱ崁4 @ ! 0!! z+|;>lv xL2"jP !2 30 |@rx+;hlx|%΍ p(t|0GjW:zzt0jX":0Wzfj'jj B8x00X h0H<`@ 8l2S 0[/BPR[, L"P0l2R p" B0LQt(0P 'zlz42S 0[/BPR[  "P042R 8" B0Q< =P z1S 0[/BPR[ !P01Rz |" B0Q 0P y1S 0[/BPR[ !P01Rl n! B0Q0P y1S 0[/BPR[ l!P01R ڐ! B0lQʔ(PP yT1S 0[/BPR[ 4!P0T1R X! B04Q\$0P zy1S 0[/BPR[o P01R  ! B0Q$(@P Xy0S 0[/BPR[P P00R   B0Q0P 6y0S 0[/BPR[1 0P0R  ڰ  B0Q 0(0P yݍЍ~~ ~,~/4~N ~m0~ ~~E y y0 y yy%|Dyx x,x4xxO-M4DM ]p@DA, }D,A @},0 0|@$o PL+; 0DL  ( L2 $!@0H 2D0P0P P0"@T0@H" 0011(1,1P2T20ܐؐ A+D;  00R~P^+; E +E;0D X1@0L"2D X"@010H"`0@ d0P1T11111P2T208!.<10@`1d1f?DLHQ0\4$ \!1~>P ,0 p q!@h = E1102D102@H20p0t01v1112 2P2T2j?1?Ⰱ崁4 @ ! 0!! z+|;>lv xL2"}P !3 40 |@rx+;hlx|%΍ p(tz0GjW:zzt0jX":0Wzfj'jj  B\/8x00X h0H<`@ 8l2S 0[/BPR[, L"P0l2R p" B0LQt(0P ww42S 0[/BPR[  "P042R 8" B0Q< =P ow1S 0[/BPR[ !P01Rz |" B0Q 0P Mw1S 0[/BPR[ !P01Rl n! B0Q0P +w1S 0[/BPR[ l!P01R ڐ! B0lQʔ(PP wT1S 0[/BPR[ 4!P0T1R X! B04Q\$0P v1S 0[/BPR[o P01R  ! B0Q$(@P v0S 0[/BPR[P P00R   B0Q0P v0S 0[/BPR[1 0P0R  ڰ  B0Q 0(0P vݍЍh|e| b|,_|/4\|N Y|m0V| S|P|Ezv xv0vv tvrvyDovlv jv,hv4fvcvO-:MMPP+;E*}0  +E;@(̠ ʍP@@@@ʍ^x z0 zJ@gj Tjjj0\3 +0 C%nALz^JA+0F 0CzzJ+>z 0 F !@H АԐ(J$0E2D40D0L܀؀@ P T !!! !!!!!(!,!(00000,2@P"T"LH2{PNx+y;F0D +D; ( X! L2!@0X 2D 01"@0H",`0d0P1T11111P2T208!.<10\@DLqHqA4 \!`1d1]{P@+A;F:- +H;0H( D!! L20!2D !@1h 0 p0"@t0H",11112 2P2T20!.10qq0l$ !11"{FP !~  pb0B;\$+;  F@xH(hlx|Ht|[wj0@P:zz t0'j_X":0Pzfj'jj 8x0X 0Hh0< @84l2S 0[/BPR[+ L"P0l2R p" B0LQt(`P tu42S 0[/BPR[  "P042R 8" B0Q< =P t1S 0[/BPR[ !P01R " B0Q(P t1S 0[/BPR[ !P01R ! B0Q$0P pt1S 0[/BPR[ l!P01R ڐ! B0lQʔ(@P NtT1S 0[/BPR[ 4!P0T1R X! B04Q\ 0P ,t1S 0[/BPR[n P01R  ! B0Q$(0P t0S 0[/BPR[O 0P0R    B0Q(0P s0S 0[/BPR[/ P00R ڰ  B0Qʴ(PP s:ݍЍyyy y00yO yn,y y4yDs s,s s4svss s0ssHsC-PRM`pC U} Ua U U U U U  U7 UO Ug U U P*00 0xhD@ @\  0/2,$ /040uu Ѝ<sP3+;  @*I B4 ,$P(P4P8P0 0009 003/Ѝ<rPP#+; 0@*I A,040000$0(04080000<rP"+; 0@*I A,040000$0(04080000<rP"+; 0@*I A,040000$0(04080000<<rP$"|+}; 0@*I A,040000$0(04080000<vrP!b+c; 0@*I A,040000$0(04080000Vs<\rP\!H+I; 0@*I A,040000$0(04080000Y<BrP .+/; 0@*I A,040000$0(04080000 ?<(rP +; 0@*I A,040000$0(04080000%B#X @ P $ L  <qP |+}; 0@*I A,040000$0(040800004<qP!b+c; 0@*I A,040000$0(04080000<qP8!H+I; 0@*I A,040000$0(04080000p<qP .+/; 0@*I A,040000$0(04080000Lt up0 000q<su B8 0@- PQ\ P@ !p R  R:  QQ :0- PQ  ^P R! ! ^!QQ O-,M @@ U b0^ `0c01p QP_0P`S` p `p,[,P` @R%B$EDD`300QK  TRZ   Q [ @P` pR R R  RQ$  VR TR  [ 00   R   Q= R R  010  R ;R R3Q  XR   R VR  QR XQ TQ 00 # 0 R R R[ R zR R PpQn XQk QQ dQaQ Q[ Q Q XQRXQ ZQL 0QF [DQA Q1Q. Q Q( XQXQ" ZQ -[ R  R. R+ T Q XQXQ ZQ QQ 00 0 R Qv  TRQ R Q[Q QQ TQ XQ QZQ R$ [ CRV P Q RR# RJ  TRl X Q QQjQg 0 @0N @0,Ѝ VR Rk  Q R m QQg 0 P R Q[ XQX QQ QO 0n R [ R  TRo Q   QQ$0   $0Y  R G XR= R R6 $0  $08 R T Q XQoXQ QZQ Qi QQ0g Q TQ XQ'  $0$0 $0$0 XR B R Q Q  , TQ XQXQ Q~ZQ{ $0  m$0XQ Q!Q $0Qf Q   $0O$0R R X Q$0O-MP0\ b^ aP RP UQ Q' R[IP,`A,@ P P pPB\PÛ) `Ř. " `PAUPPQ P U PUP QPUPUPQ PU@ A @TPAT @ T @TADQ R , ,p\` Œ*.p` @!T@@A@T@A @ T @T@ A @T  ! R!RQQ R Q QUQ QL RIP,`A,@P P p PB\PÞ)`Ş. ʧ `PAUPPQ P Uq PUP QPUPUPQ PU@ A @TPAT @ Ta @TADQ Rs, ,p\` Œ*.p`k @!T@@A@T@A @ T @T@ A @T  ! RN!RQQ R Q Q R3IA@P,, P`\@B.!`@`p p^QWppppWpppWp\WPppWPp p P@WpPUPAEPUڏD R,,p\PÒ($pP a^ ^ ^ ^ ^aVʏIN R,,p\P×($pPʱ a^ ^ ^ ^ ^aVʏIN RxIA@P,,p P`\@B.!`@j` ^QXXX\XPXP P@XDPUPAEPUڏDPU PU@APUPU@A@T@Tnj` R  Q ) R  Q Ѝ`  R A [  Q ~ Q :O-,M @@ U b0^ `0c01p QP_0P`S` p `p,[,P` @R%B$EDD`300QK  TRZ   Q [ @P` pR R R  RQ$  VR TR  [ 00   R   Q= R R  010  R ;R R3Q  XR   R VR  QR XQ TQ 00 0 R R R[ R zR R PpQn XQk QQ dQaQ Q[ Q Q XQRXQ ZQL 0QF [DQA Q1Q. Q Q( XQXQ" ZQ -[ R  R. R+ T Q XQXQ ZQ QQ 00 v 0 R Qv  TRQ R Q[Q QQ TQ XQ QZQ R$ [ CRV P Q RR# RJ  TRl X Q QQjQg 0 @0N @0,Ѝ VR Rk  Q R m QQg 0 P R Q[ XQX QQ QO 0n R [ R  TRo Q   QQ$0   $0Y  R G XR= R R6 $0  $08 R T Q XQoXQ QZQ Qi QQ0g Q TQ XQ'  $0w$0 $0p$0 XR B R Q Q  , TQ XQXQ Q~ZQ{ $0  G$0XQ Q!Q $0Qf Q   $0)$0R R X Q$0@-@^^Pp,`0 ~#S  ! QT^Pp,`0 ~#Q  ! QT$0$ 0@-@000n0g#000 0@-@000n3kf#$0$ 0@-@000tnf# 000 0@-@000gnkf# $0$ 0@-@000WnHf#l000 0@-@000Jnjf#l$0$ 0@-@000:ne# 000 0@-@000-nje# $0$ 0@-@000n`e#000 0@-@000nj,e#$0$ 0@-@000nd#, 000 0@-@000mjd#, $0$ 0@-@000mxd#4000 0@-@000mjDd#4$0$ 0@-@000md#000 0@-@000mhjc#$0$ 0@-@000mc# 000 0@-@000mKj\c# $0$ 0@-@000mc# 000 0@-@000m.jb# 0+-Mx\P  P R    ? *m np NЍO-4M0 0 ! $ [( p / ,    G ,  ,0 0 0W`@0P05"0B7B^ [:C^6 W& C P ^ Sa^`(S  ^ [S ^ S0\,0@"04Ѝ @ @ @X X X T @Xa@aY @ a Y@ V `@@O-4M0 0 ! $ [( p / ,    G ,  ,0 0 0W`@0P05"0B7B^ [:C^6 W& C P ^ Sa^`(S  ^ [S ^ S0\,0@"04Ѝ @ @ @X X X T @Xa@aY @ a Y@ V `@@O-DM` 0(A?4 00@V ό 8 K,[P,  p,  $ ` V$ , L. N@,0S0KL 0` S \^ 0 S4^ [^ ^ S Q^t\^DSQ^ (00PU800H4 0 0DЍ`V  C@ S PQ 0 VQ [QSQ  @<@ @aT<` V < a Y@Y `@@{ aY T a @ V @Y `@@<@ @aT<` V  < a Y@ V ` aY T a @ V @Y `@0qO-DM` 0(A?4 00@V ό 8 K,[P,  p,  $ ` V$ , L. N@,0S0KL 0` S \^ 0 S4^ [^ ^ S Q^t\^DSQ^ (00PU800H4 0 0DЍ`V  C@ S PQ 0 VQ [QSQ  @<@ @aT<` V < a Y@Y `@@{ aY T a @ V @Y `@@<@ @aT<` V  < a Y@ V ` aY T a @ V @Y `@0q@-+0@xMŒ^ࠡ0S 0^  ࠡS   *m lp LЍO- 0-S"0pP@lx`0`Fᓔ# cb``BP'i땄%@H0 AF i 0S0 A  @-@xP gd0S 0[/BPR[8 DP0P Qd0 Bh  B0DQlp0P 9d(0S 0[/BPR[ P0 Q(0 B,  B0Q040P d@jiO-PR$M. p ` BBUULKBU!:PU  B UR\P LJ* B Y0@\$ЍRL \L K+ B [0@0J S Cr B0d0CB0pW@PV U$Ѝ@//@0LC2 BRF:UA ! 10*sS0 Wc 00   UV$ PF@PE%RU0@B V   L  B  gX #f00$Ѝ Pn @dA-@M`@Pp0 pp PdgP $0 b S  b ,00 8  (8pP04  +;(0 ,08 aU  0, -0# U Cx0P| A B"U *RQ|PDЍ000,00 ExpDЍigad BO-p-MP b0Q0cY@@@000@0  0_ Y  D B  0  S,`@,,+(8 P T0   R  0S 0^00ࠡR0 0000!ᘁ圑!10f+h; a 0pS A\800S  0 G 0S(00S 0  06(00S 0  0+00 0PSr @\0xH8  ^ \R ^ ࠡ\ !ሁ匑!10b+d; a 0pS A  Q(00SP 0   000 0 0 Y P   S ,, , 8 ( 0P@[@嘀o0B Q`p W pp`p V ` W<` ` pp V<`` ` ` ````b(,(0a4qJ+L; dp D^w 08@Q ` V ``` V 0^`ࠡS`0` 0D B+D; ap A0 0S000S 0 Q0a(0 @0S 80Q0U00 0 S p @ ^0x0P ` PVQ ap ^` ࠡ W p Vp ` ^`` ࠱ b a$qF+H;( ap A^8@` V ` R` ^`ࠡR` ` @>+@; ap A 0 P00@0  0u Y$ D B  <  S,`@,,+08(\P X0   R 0S 0\00R0 0000"Ḃ弒"20+; n 0pS Nb800S  0  0S00 0SP (0  000 0S: (0  0r00 0PS@0\$80 x ^0 \R ^ ࠡ\ "ᨂ嬒"20+; a 0pS A  Q000S (0   0)00 0 0E @Y\`P  S,, , 8  (@`嘀o0r Q00, !\Z ^ࠡ\ !x|!10^+`; a 0pS AN  Q 0 ! 00 0w 0u< 81 000<10 88 1 000 01 1 1 0A( 10 WA WC a    00>Q0 Ꮗ0  80Sj<0P 叇P  \0 100 0S  Q(0 000 0P08 1 1 P0 }00 0Sy` P08P1 1l g00 0d 01 ]`8 1 W000 0S 1 M<< 1 8G < 10 8@"@ 0"@0 S 0 0@  Rʳߍ8 H 8 Qߍ 0 Qߍ 1 00 0p 1 00 0g 1 T88@ Q`@  R\ʳ @  Rʩ < Q0 1 0S 0 A Ꮗ 00 0( 1 00 0( 1 00 0( 1 01 0 0S&(0 A Ꮗ@ |00 0O-M0Z0Q 0Z,0 I0 0 ,0$ (0(0 0 $0:, ^/ 0@P,00px`p`0 10"0@4味# +`p`@c`Pa`p ^H`h`H`  0 0 SЍ`0  @PP H0@@ @PPhxplx|+;p tpDXY (0S 0[/BPR[ %\ 0PR(0,  L B0Q 4000 IP&  L" V000 0,0L0tSp00,0tpxppP+;0h0+;l0 P UU  0 0# U Cx0P| A B"U:0 0Z0,0 q0含0  0,0$ (0(0 0 $0:, ^/ 0@P,00px`p`0 10"8@<味#+`p`@c`Pa`p ^H`h`H`  0 0 SЍl0S 0[/BPR[( L0PtS0 p l0 Bu0LQo040080` B2Q|0y0 ExJtE[oUXO-4MP 0 R 0 0 0RU (@W$*? /0 WW 0@ P 0 @/? qUT00q U,@ ` j  SP pRWK pQpU 0pWYK0UWUᰀ 0S 0000 0, Zp B$b&DPDpFZQG  TR@  V Q ZL@`Pp R RnZ| Yp0Ⱐᷠsp\W 0Q0pW pUS 0\S0RS 0SY 0S  R+ R^ RUQ  YR [Z     Q @, ` R R  00r0 WR/ ZY VQ TQ[$0$0 R  ZQ  WR TR V n R  RZ R ` Z RA PUQS YQP Q LQ QFQ YQ@YQ UQ:$0Z$04Q0 Z.Q+ Qz Q Qt YQYQn UQk  RX ZV PS R jQ YQ Q Q[$0 $0pW! S 0RS0\S  Rq Q}  TR WRw  RZ$ VQ TQQ TQ R R; Z9 R6  TR Y Q<R Y VQ UQ QQ$0$0Q> R Q$0$0Z  QU0 0r Q0:0 0 Zf ^ S,, ` P@P  b  p 籰Y  S@Z Q㰰T Qゐ Q RZPQ\HTႰ 0ⰰrs Q: VQ  TRR Y VQYQ UQ QQ ^\ S,, ` PR@P  b   pWpppB pWpT pWpp pWpp PRQTူp R YR $0R [ V$0 ^`R 4ЍZb ^ S,, `   b  p  @P@UPPPAPUP@PS PU@PPUP@@P R@QTPS@P@@(@T#*3 #0 TT(@T"*3 #0 TT^ S,, P ``P  b  pE@F ^@^^^  R!PQT VQ YQ $0 V%$0TQT  ` P R 0 R `P@w' R `P@P 0S Q0YQ% QB $0Q[ V$0 R  R T VQ YQYQ Q$0 V$0$0Q Q TQ YQYQ U$0Q $0$0R VSTSTSTPĩ<̝lO-4MP 0 R7 0 0 0RU (@S/$:0?  0SS 0@ P 0 @/? [QT00k U,@ ` dp  SP R^K U 0^YI0UXUp 0S 0000 0, Zp B$b&DPDpF^QK  TRD  Z ZP@`Pp R Rp Q~ Y \^ 00^ US 0\S0RS 0SY 0S  R) ZY RSQ  YR  Z     R  @, ` R R  010 WR  QY Q TQ$0$0} R  ZQ  WR TR   l R  RZ R ^ RA PVQT YQQ Q MQ QGQ YQAYQ UQ;$0u$05Q1 Z/Q, Q} Q Qw YQYQq UQn  R] Z[ PX R mQ YQ Q Q$0;$0^ S 0RS0\S  Rq Q}  TR WRw  RZ Q TQQ TQ R R; Z9 R6  TR Y Q4R  Y Q UQ QQ$0$0Q> R Q$0$0Z0 ` Qb0Z 0 p  Rs S `,,pN Q` % p`4 0 AQ QQ^QQA 0 SAT Q^0 A S 0 R`0` S` Q  TRP Y QYQ UQ Q Q Sh @`, ,pL`Q % `N0 QQ\QQ 0 Q0^N ^A R YR $0R  $0@Ti f ^cQA ]0 R`[N4ЍRk S @P`,,  `Q '* ' `+0  Q Q  QQ Q 0 S \AA0 QAA S0pW`(@\PP##:0H3  0PyP(@ P#":0 3  0~PgPS p `,` ,@Q 垷,'%@#0 QQQQ 0 QP@A0pWLT Q YQ $0 $0`U 0S Q0YQ% QB $0Q $0 R  R T Q YQYQ Q$0 $0$0Q Q TQ YQYQ U$0Q $0$0R OyPOvPOsP`lhO--p>0|M  0Q!01S@G0G?o@20`V\PC0P\0`0tR<C GQ0.^?0(>  0OvO0P 0PcPMrY00ZZ 0  QP0X0S U U U 0Z 00R \b\`.R0͟0] P 0 @ 01<`0?O(O0 0 0R \0\0`0R̟o\ P 0 @ 01`<`0OOT \0&00\0`0Q$L@ P@\  02+@ @ 0;0NN 0 0 0L000S! 0 ,0 00 , B  0@0S 0<# C}@CT@ Q @B@T @@Pm BP RAP@P0P[ P Q PRP \0&00\0`0`QJ@ P@^   0 \?)@  090jNSN`000U0SU UZ   Q\00 \`\0Y`0`"Q0ɟ0I @ 0 X 018P03NN 0 0 0R `0\0`0YHPȟ@  0 X 01d8P0 NMKT O `D 0P0?HP@L@K0p$Kȋ 7H @T  XPP```0h@lpd`\0GQP\PwP p 0R( 0~ S, ,0 , 48 r CCS< 0@0< 00R8 0, #&4 '%0F00E#0 B!RGS YP QP \7PzPP. PP( Y\ Y P Y! ! Z ! R \ 0R$0q(0SH0P0^LP $ ?!0Q1 `VP`ap``PpQ  ^HL4 H ` 0h@d `00\0P0l t0PDpPP`\`O0N$JJP@|Ѝ\0 \0`0O@ğ@  0  0e14 0L Li\0&00\0`0OSP `P\  0]?#P  0d30LLR\00 \0\0`0OßBbS P 0 L 012`0LL 0 0 0R 0\0`0CbRgOŸP  0 L 01L2`0yLbLT$ &0\0`0HOB@ P@\  0?!@ L 010RL;LI M 0P @P,@JIW0 ȋ0@T0XPP  <1T H pD `P 0d`h@`00l\0OP\PN pXL0W , Fqo 0oO`F1!P1,"܇<؆<plX\X|x }h~~|}X}X|,}{(}| }z{ l|ursqopU  RP0RUX\,  !0?0Q1 PUPPQ`PPP`Q  \%EE!0BPZ0SQ PpP .Z 0 0 S 0Sg,0  ?0 R1 PU PPQ`PPP` R  ^F \Pp p\R \1 1 q W 1S0 P   RW Y R X 1S0 !W 0qW00pW Q80SQ pW 3pW  RW Y R X1 1Y 1W0 qW Q Z(A RSI Y R S 1S0 !W 0qW00p!RP " \R \q q 1 S0 !R 0P00000V 0` P`PDW@V? EU0,  0 S,  %*pE(p`J$P ` R@Ӓ,0J@00 Yu RO @pTP`s R 결 0Ⲱs0Sq0XP [ @0S#*0 0r Q0:0 `PP0 S\Cz0, 0@rs@[ T R T VQXQ U40+40T  VR W  XR U T ⰰᱰr,0S  ,  R]  Dp$ `( Pp Y# R @`XpP/ R 0S R T UQ^ZQ VT  ZR V T UR W 0 ⰰᱰr 0,U 0 0\PPE!?01 4 0EEK\PPE!201 4 0EE2,0,0W4040Wz@@&@ @~EZFEWFETFEQFENFEKFP\P9HFFECFE?F}E((#:008 x 0k>T>nOXl>d(":0l8 x 0Y>B>S_X , `l @ , pt l [B`t , p@DN!X }1`00x \Q0PFpPYpW @pYppTp pppp@OBAQP>+@;X@ kp KPU A0PpPYpW @pYpTpp ppppAMBN6+8;D@ kp KQ r8@0PYPU@ PY@@U@@P P@KCL.+0; gp GD @Q R0@T@@ W T @ P@     &+(; ep E@ `A @P[A@pV8@AW @ XpPUDpYPFPWpU PPPYpPP@ NBOP:+<;X@ lp LPULpYPPWpU PPPYpPPA LBM2+4;D@ lp LQSp8@PW pUp@P@U@P@PQ@@ JCK*+,; lp LX@T @P@  P Q    "+$; lp La @ᄀx |@ \B@P+ ``7i PGcCa`ppDpCCI @/@00C@PCE@PSEcʰT VQ} YQ (0 VW(00SÖh. Q0YQ% QB (0Q[< V8(0 R  R T VQ YQYQ Q(0 V(0(0Q Q TQ YQYQ U(0Q (0(0R V#<< <<<[ kp KpW q 0pApY Z Y X ؁Dp؂4K6[ kp KpW q00pAp YpW` pY``W``p paD kck,K.[ hp H R !b0p0 A  PUPP @WࠡUPTP@ @AICI$K&[ fp F Aa@ P`pRAaЁ ء `A P TPp@pAWKq ZpY W p  W p ppЁpPp؂8K:[ ap ApWN qZpY W p  W p pp؁pDp؂0K2[ ap ApWR0q XpR`W ``p`pRa D jcj(K*[ ap A RX0@!P U@PRPࠡPT @@AR HCH K"[ ap A]a @ Px!p`|t0`; ` V؀'N`T`'B` 7npD Gc`@a P @ PCN @1 00C@PCD@PSDjT Q YQ #(0 @o(00Së0`0C Q0YQ% QB (0Q@S @O(0 R  R T Q YQYQ Q(0@ 2(0(0Q Q TQ YQYQ U(0Q (0(0R  444444O--p0>0M00Q 01S0GPG_o0 0R`V|@C0@|006C 5-^?0=  0330@0@4n1zY00ZZ 0 d5PXPU T T T0Z 00R |``R|倠6̟L @ 0 01p<P0330 0 0R |`0`|00b6$̟_ L @ 0 01;P0r3[3 0S |0&00|00>6K@ P@\  02`+@ 0D;0H3130 0( 0000(0S^ 0 ,0 ,00 , B4  0 ,0 @0S00<# C?@CT@ Q @B@T @@P/ 4BP RAP@P0P P Q PRP |0&00|005I@ P@^   0 \?X)@ 0<9022 0`000T0ST TZe    Q|00 |`|0Y0`z5ȟH @ 0 01h8P02t20 0 0R `0|00Y HS5ȟ@  0 017P0e2N2/t 3`X 0P0?TP@\@00p40ȋ `7H @t 0 xPP``0@p`|05P|P4 p 0R8 0~ S, <@  , DH r CCSL ,0P0L @0RH 0< #&D '%0F(00E0( B!RGS YP QP V(\7,PzPP. PP( Y\ Y P Y! ! Z ! R \ 0R40q80ST0p0^\P 4 ?!0Q1 `Vp`ap``ppQ  ^T 00@R1T0 (S0P00%JP  0 @%EE!0BPZ0SQ PpP -Z(0 0 S<[480 (P_P ?0 R1 ^ pᔷ`p`R  [ \Pp p\R \1 1 q W 1S0 P   RW [ R X 1S0 !W 0qW00pW Q80SQ pW 3pW  RW [ R X1 1[ 1W0 qW Q Z)B RSI [ R S 1S0 !W 0qW00p!RP " \R \q q 1 S0 !R 0P00000V0@ 0,@0' W( To 0B00R0<00 ,R, 0 P1#R%pC pE40 R@C80`@<0 Y R @T`p R 겠 Ⱐr Rs, XRZ1(0 R\*(  q P :0Р< ,00 400080400 0 #8  S0  `0p x (  ,h`l +"l @a@`Npn`@YPN@,0S<( &V 0qr0Z0 T R T z WQ[Qt V(@0=@0dT  WR X ] [R V WT( ⰠᱠrN,0 S(` 80RpD p40儀`P00@P[`0S0 Y 0S00S 0S T  0VSZ0WSK T 0VS0X00WS 0U0T( 0ⰠᲠsT 40ճ40|@0@( "202  0(' |@@(!?01  0'' <0س<0U(墳X(@0圳@0X(喳U,  `|`[*h('e('b(P|PP*]('Z('W('R('O('L('I('F('C('@(~'=({':(x'7(t'3(q'0(4lxO-CMPp@4(PD $0*b S b 408 @ 0+;<  @D 0[/ P[0S), <0  8@0 ` (&~(P $0*b S bP l0p x h+;t  x| 0[/ P[0S, t0  P `℀Y0p †P4+6;p0 2*F0 H 00000000011P p Y %0 0H)D  \  0? # 0 20& @&P &0S 0[/BPR[ P00R4 6  B0QP $0S 0[/BPR[z P00R Fڬ  B0QʰP #l0S 0[/BPR[W L P0l0R p  B0LQtx0P #40S 0[/BPR[E  P040R 8  B0Q<@0P #CߍH@81  0!@i H&% !%00N)H0L0I)H|)y)Bo)Vl) #& # %H@-M@@%Ѝ/@-@ (0@0/@-@5%O-Q-PM@0p 0 #0S R /0Sڔ`w000( w m' 7 '0 %%0W00 00 0{WX0@0S `7 '0 %%0`J;{(/P$G @\ 0@@<0( N4  ㏇,@8``0㤠ppTH D P L00000X00>W*:! !01T(0S', @0$ 0SSZ6Y02S0S 0  %Ѝ0  11 01'(W'0@!: !0QC /: 0SEZ aP: ` 320c0  D$  ᑨ >$XpG0 ,  L T \ d p x    $  (   0  48@ H P X ` l tP|F ∰ P  P    Gh <D0S0\UPd  A CSVR 0V  M 0 V  H$0 V C,0(V =40V  7<08V  1D@V  +L0HV  %TPV  \0XV  d`V  p0lV  xtV  ڀ0|V    0@0YP0h00D  S `1 !0 $ $X0u @1 !0 $#3`000&@"q  0(!(1 p0##` 000& 0! 0   ##Q!0S #v$#s$#p$#m$#j$#g$<@x|< O-AMQ<0@>0T 0 P0 T0S% <0WS 0000l&]P0`P\  0-= 0 {#d#0#&`P   D= P H0`000&PP   = P L0P000 .!0/@ 000#&̟| p 00|<0  3##0 88@4&`,`&|08(0 0  " 0D  8"0\ : X00T 0p0pppGOP0E0 RPTTD `0`PV: `\ 0``N`  0S  0 R PTP0`^:s  0 0R000C00O*`U000!40S,0 00@0pB0 $0=80T `$0d0EP0E0 RPTT: 0`PX:1 븀\ 0N 0S 0 R PTP0`^: T 0`0```F`6! W,0 0 0C@ 0? 0 00SK Pp0 RZ@R Re R`  R90 R R p 0PSڈ0 S e*Pp 0P000S 0S $04 0$0S ,0p 0 0P0 0S pRPW0S0 RP; pQPMQ R0 RUP 0  R<pPQ 0 0 R0Sʦ(M0R0 Saʨ0 S)*Pp 0 S0P000Wu pPQ 0 Rd} R RL0 PD0(0( ꧿ p000S 00P  (!D! `  "0SCp0p@S=0 PS02*0S 0 < 000 0@ S:0   0R00`@!@ l0S090 0S @ x! @0S" 0T S@R0L0S 0[/BPR[ H0S 0[/BPR[ Aߍ000 PLPbH`Q  R0 WHPH2P 0 R` E#003/Aߍ0Sp P000i#Qe P 01 0 `| e T0S00J#`\Qe P 0  001`0Z C LP0P 0 R  "003/m2/w2/gH0S ̓ L0S Ó    E"LdQPp@-@MP0 0S0?S!`0? 08   8@!0$ 0,P*c k {"B R &" 2$" EЍp` `\0< 08  s p kp@-@QMP@ $ 0S  `R 0 ` $  0(0Ѝp$ 0H `D0U 0P @ @wt3 k0@-M$@ P PЍ0p@-@PMP X0S RRЍp P00ЍpD `@0 0d @ @U>;,O-0PgM0] 000S!0X@T 0S P 0  ! 0X0 0Q,0@(DX0  0H0Sd408L PT p|   l  d R9@ R\\/  \ @ RX P 0 Rp  P R8 0 !Z *  0 Pd0 RX0d p X 0gߍl   S Rl ! 0% 0  0  RP RX K0 Q PQ QS/ S  Q RlQ @0S0K 00 @0S0<00S100$0@!0!"< R@ 0p9R00I/$1 ]P$1VZ(0 0 ^ύ@ `P CpaX10a\! `10tAdQp h!l18ppp  @Df?@1@0!1!Z(0^1 &6  &00 D 0T0@pA01Z Vp P`Q @Q DQ0Y 0   01Z,0S 0( SX U@@ @0S9 00 0S.V <0d@<`Pc0B쐘`K`^ύX! \10tAXp``dQh!l1F` ``IDJ 8\(` WVJ/80009S 0@0  `BS,`  R `Ff?`1@00S R, 0&T$40XL4 H 0L 0H0T\ V 0 p 0SUp @P@ 0A 4A 030    0S P0ES}0305:0S000S:?o4 2U0S L!T1R8*J?4PL10L12J 01`J 0, SX^ XP` 0 4H0520  L  L1T!S*PL10L18cL!8_L1 0@0S 000K 0  X!^ύ0BP\1 p0ah!@`10dAl1tQ|`p`8``<0t``K쐗Xh`IHD`< @0pd T0(`0,1]V(0J/0x08000  H0L0 R R If? 1@00S RL 0Hp0T00),0W`0吰0 0 0P T0040.Lk< ēkHp k<ܲHЯh ЮL40SVP @`@ 0A 4A4000  \  0S `0F SY*|0<<0D0SY?o, 2V0S L!T1R*J?L10L1,0V 0 ST0 S 0T0 0R 0` R0`01H 0LRW! 0(00,1 pW,` e 0q 4qq0$20   sN0S|00D0SL1T!SB*`L10L1T8+D0S(@ 0P< 0d0$0.(R$ $   J * 0 0$0  0S(P 0 X0038L!m8L18L1갰``0 pPFPCt08@G@C0S 0a q80QAB D Cx0S 0QA0 00x0> @ C0 00< 4 bx `1(B! 8L!Eꐰ`T0 pPFPC`08@G@Ch0S 0`p80P@: < Cx0SX 0P@0 00x06 8 C|00t0|0D$Y$0ԣSo $0< (0S$00S$000$0$0 0S00 0 00, S! $Yr @QRc DQ~50 50  ` ~0Zԣ0 S}00L!T1RI*J?L10L1H L 0S  ꔠVo `X!p 0Bt \1 d0jh!^ύ`10l1Tz%pp@G@0PPX0 000S W @Df?@1@0 0S W 7X 0D(0PL6 U㸗0P pQ0SVp @`@ @A DA 0 80   0S 0Sm !SX& X`P @ D(080  H  040 SP0 RL!T1R*tJ? `00L10L1V X1\1``i d9`0 p0D0H S|0<<0 L!T1R*`J? T00L10L1(0 0 0v(0 0 0t0 0`00H`0 0T00}@ tP0dS(0< X00 p0C 00 2D0 CX0,0(0 |0T0gߍVo 0`X1\1*TK ;@0 x P>0$0%o8L!PV1X! 0R8 0 P08L!PV0pX1\1SK @` 0; 0x aP8L!b! l ! 1KX 10\!$0R0,VO< 0x @X\~ { x u r o lif c` ] Zp@-PPM0 @T X`V 0S P 0 \0X0 R !0S @ 00Ѝp 0R 00Pd @`0S 0 P PmV $0RTK 댪tO-,MXp@PR\00L T0S00. # `3 0$0A@0@ \  0!7p! 0,X10% 0 p@,Ѝ T000 0P0*@@GP<,Ѝ ` P$P  0 0 0 p0,00S  r}d`@d@O-`-@pSMT (x|QH40$0P P(P 0pP@0+; @ 00BO :K<[,D @6+8;F AH J @P  L3 $ 0@000P  S谝BDR<Π  ℰ  t|0B4 B8x t0@x dP M ZD B0C\ @`0c0# dP3dh<0 \  0!7! 0,10X0@ tf@PJ  8k0P03 0S0 0 0 0X@@S6 R3 @R7R'X`x00X0 Q0 0S 00@} y40 S R@A/ 0@*+'40S@ 40S e B ?} <z 9w 6t 3q 0n -0Xd4T(8\`܌0p|@-M MPh @P  D!88SO 0 n@0S@܍ Ѝ8P`pE0 F 0 `0 p!@  _T0@S 0[/BPR[C 4 P0T0R X  B04Q\(PP PP (܍ Ѝ? Q `0000PP0pP\  0l h0 0$  ? f PP O-@A M@PRp 0pG R P`R \0P00 P L0 ` 0S \`0 P`V`X0 0S\ 0 `E@P mW@0@P@àP P `9 pY S  0C!Y0C!S Z QVCPnp A!ό\;6 P` @ P`0`PVqP`\- Rq? 0q? 010 j ` 60PF0EU ЍY0C!PUQ!0   X00C0C!Y205\, 0R'`]`G-@A@PRp 0pG!zzzJGzjjjZjzJfzjzjZ0 10z `0z` PzzJgzjzjJ@ zzgzjzjJP0 F@PW@@p@ʠp \ >  0aC!azzzJgzzzzZ0C!SZQ_C\ez Aa/z zKJGzjzjCJa\, L \ 0jzJfzZjZZ 0 nzZ000zezJfzjzjJ 50`E0FVfzGzzzJA Q0ʶ00C0C!PhO-MM@@P (04  0R  PP( $0*bS b +K;l0 h ptx| 0[/ P[0Sf, H0$0t0  0 ${ H0PP000CS$ L(@09 9g c` p`\  0#3 < 0s \ U @] P 0P0(0BU0,00(.uP 0N..s<  4$ BU>009.u Ysq H0 4 @X`0 U<0N.BS< P $4>009H0 Y 4@X`0000 p000 圐  01 0<   UUqU!!T`k0"Q+R;r(b` CR0Q  R0U!!0S* T, G!0/o  b @W@p W I<DN ^ p0 W P0K $0 Up0 0!H}{$}}\zl{   RRp0U0 Qj 0 0  0 " 0E  08 0 0S 0 Y]0N N C0\10C10PIP 0!02\10C10PPEPY I 0 pS 0 00  8  q0 0S   00pZQ\ a Z \ Z Y  C 0C \! B! PE PP 0!p02R10C10PPE(0S p;1+; ;0P"D@+ @00  0S 0[/BPR[ 0P0R   B0QʬP  00PP <00PP ,0PP l0S 0[/BPR[ L 0Pl0Rp   B0LQt(0P D0S'ލЍ l0S 0[/BPR[$ L0PlSp0 0CPL Rt(0P D0S 4ލЍB`tpr@ 0  0  l Pp@ $0 b S G b  0@  0[/ P[0S , 0  0 0U  Q0U1cA0S 0[/BPR[ 0P0R   B0QʬP, D* L"@09 9 a` p`\  00" 0< $20 T, G!0/o  b @W@p W I<DL gzjzj J\ z0 zzZ  Up 0zzzzgzpA0 AU0 QP 0 0  0 p 0E  08 0d4ލЍK0$L0f p .@04 ^'QR Xc g= 8  q03 0R 0P0$ 0Rq)$c {P000$ pnR $|D0S 4^ 00PP <00PP ,0PP ]TJIO-[MMPPP@`  D"88Sj @0 PT 0 "D#88SI B"DS5 +J0h1 l1p  p``\  0yL%L5 X p0  px a0S  R M 0h1l1C M $4q 0H \ E0 0S 0R0#S0S PS0T!P <Π`  , A8`_0S 00[P0pp+;0 0+G;( hhpl1 H0C 0/o?o "2@@$0G  4@ 0S 0[/BPR[C 0P0R    B0Q0P ?[xl08 S CRz#Q *bP `P PH d$ b+ Q^ PPP000P 0Q``00Ռ0S 0[/BPR[8 l 0P0R   B0lQʔ(pP hP P" [ލЍ0S R RZ  V 0 XP `0S`[ލЍ?  RdT,@0 X` Bolookl$kfDg,jefhXeLfhde7 h1l1L@@0P@\  0 1   0H 00 `[ލЍD 0h1l1D  0s 0H   RZ0h1 l1HHq壡 p 0 H 0 010 T,@ '8 0h1l1a`0p`\  0"2 H 0  >S>C PG#Q ‚*`\ `P SH d$ b P ^  ^0 0 [A[0@0[Z$p0t  P ( $hP P I    O-` MPp@ A0EC2L SB  C 0T   0 XV1 DB0#03V00*S * 00 bP A T  E B 0"" 0 aR @V  ЍyY    00   TO-P-@60CMH 0P $0*b S bh 0 +;   0[/ P[0S, `000  0 V`PVP $0*b S b 0 &+(; * , 0[/ P[0S', 0$00  0 $!0P 0Sp@0㨠X0 АpQ00Q0W00S 00CqWV00ӑ4 0h0 0! 0S100C1CPUV00ڇ!11 @P S 0C*K ;:相 V U c;0.10 N0C: ` `+A `+NCV UP 0pSP PT0DRCLA8 : @ 8 #D0 8 : 0S 0[/BPR[ 0P0R 8 : B0QP PP 0S 0[/BPR[c 0P0R * , B0Q0P 0S 0[/BPR[> d 0P0R   B0dQʌ0P L0SCߍ 001   000   )  # @  J KX0 TpQP+bb{:0o p 000T 00 0) p@!^`\^YZ4]0XDY\WX`0 0pА 00 0d0hA0 x00  h @ 0S 0[/BPR[ d 0P0R   B0dQʌ0P L0Sf 0Cߍ0 $0X P|`0d00Cߍ 00gQK P  010  h v _MА 00 0E<@"GO H2 h 0P P @X A0X0 PP v0S 0[/BPR[' 0P0R * , B0Q0PW U0$0K ~y{$xuP$r4 ;h4 ; PP 2 $L0S 0m yO-M@80` P0 q6@ 0 0 /0SQ!230< 0R8 SYY P㠰ᤰşY  0t%t5 0 0R P 0  0 R0P P 0  ~ 0 B0C 00 X0T  0S 1C\\,( 8렀X 4 !0 H10 0L00w 30 p  0 00 0 0m PT 0  Y0 0A4Np0 0D  04 20( -0, (  0<  0 0$  P H0T  d ) WP1 '00p000 㤠 @*  1p0 0 000`* @p Ѝ0000 0㤠 @* \ 10 `0 000*  @J00:Ѐ$ \ R R R 0\0S0S0S P $ HCA꨺!Z[!ZH 3\ZW0O-IMHA TT`Iߍp `PnPPXß4ZV  (0 F02: a0␠+;@  ` `$+&;0+2; `P 2gL>.1O!0@|`0 P0P * P @ 0 *PZ` ; H` 0  ` 0  xp 0    { z  0$ a0< 0 0|0Qxb`0  `, Iߍ ` pD  : Bo@X!(!TUO-*-PS0`@@QM E  * aQS0 `SS00B?0P U0 0*+,;08+:;0& (04 600,1104 bڬ!p00 PI 0  p@@$ D @1PI 0 0000@@$ D @ (P z {0 @P(,8-C6?<FD|G 0.!x;1 |000p00h0 @x$ @+10!S19  Q SU-X+K ?[_;, 41@Ep)$1G+_9'4 {iL J' 0" 0@ {0JH;{{w{{z(.()ɛZM;k v JL -JM <" 0@ J@ pk˻&*&({ȋzDXz ڗȊڷʪM x * `L 8@ $+Jk{ț6 {{w{N;Z6{{w{{wNN .^L{^J^ .N *N .N {iN !pP00 I 0  P@@ $ @D D1I  00000@$ @D @ , ` p5SR{PKP4U,0!@p0)"9(0@⍅cT0⏕cmH-L fmF @ J/@MBOdMD-B/b-B @ f @[J p$'zzzg gjj z@ }J0![zwz5zzzg gjj z@ nJ 1[zwz"zzzg gjj z@ aJ@![zwz z zzg gjj z@ TJAzwz Y,1S 0[/BPR[ !0P,1R0!F H B0 Q4(0P .0S 0[/BPR[ 0P0R 8 : B0Q00P 0S 0[/BPR[ 0P0R * , B0Q,0P Qߍ@DBr1 1pH8r L' 10\7  0aJ>0   0 C PB p-*L , (qY@dS 0 qU]{Hp G, ^41@0 ,'$ R0 ec^0ucMFH F-N `-B ` @X=ڙ#Xzjzgj&z6&z+a {z,Xzjzgj&z6&z+a {z Xzjzgj&z6&z+a {z ! z jzg j&z6&z!+h {zpW 340A-P[+;K[+;K[+;K{ k[+;K{ k[+;K[+;Kzz} 0z 0z z| zzwzw64/G-M@` pᠠ|P LPP $0*b S b 408 @ 0+;<  @D 0[/ P[0S, P<0  8Hp0 `  sP} $0 b S  bP hp x l0 t x| 0[/ P[0S, t0   0 0l0S 0[/BPR[j L P0l0R p  B0LQtx0P Q40S 0[/BPR[K  P040R 8  B0Q<@0P / 0S ЍP p ЍP00a P2000 0 OP' 0S 0L0~ 0S 'h!G-p-` ğ @M@⨠oP ?PP $0*b S b 408 @ 0+;<  @D 0[/ P[0S, P<0  8Hp0 `  fP~ $0 b S  bP hp x l0 t x| 0[/ P[0S, t0  H 0 l0S 0[/BPR[l L P0l0R p  B0LQtx0P D40S 0[/BPR[M  P040R 8  B0Q<@0P " 0S ЍP o ЍP00_ P000H 0 @P% 0S 0L0| 0S d!G-MğPp@ (ᨠbP $0*b S b <0@ H 8+;D HL 0[/ P[0S, `D0  Uc 0R0$ 3# S @0- P`  OPx $0 b S  bX px t0 |  0[/ P[0Sr, Pp|0   0 0t0S 0[/BPR[^ T P0t0R x  B0TQ|0P ,<0S 0[/BPR[9  P0<0R @  B0QDH0P 0S ЍPp ` WЍ`00MP]hPp0T0 0S `!O--Pß@Lp M<X DXPPP00P P&>0?0>$0n? 0=,0P+;01zύ1b/1"11111228 2$2H2L2X2\2!-!~/`+b;"#.d fP"40 ?T+;2 ".P $0 b S  b*."/2 " 0[/ P[0Sb, ?(02  ->0 `0  PW $0 b S  b/",2 " 0[/ P[0S., 2  Bh\!!,n^(0000  T$@J V @P3 0000  T$J @ V @P$000 0 T$J @ V @P0000  T$J @ V @P0p@00 T$J @ V @P@D04":+2  Po `R` aK[EPI`U"T2Ap"1@,8&"6$p2 pÑ6!0.|0jj FSᏊh*jBh @p⏊j-B J-B B @ HYdqYJ:ZdZ:JZe:%Z5#Z$Z%EZ `[ZJ YJ:ZdZ:JZe:eZ5#Z$Z%EZ `[Z00Y0J:ZdZ0:JZe:eZ5#Z$Z%EZ `[Z p@J :ZdZ:JZe:%Z5#ZZ$Z `[Z0`V`2S 0[/BPR[ "P02R " B0Q<P 2S 0[/BPR[ "P02R  " B0Qo@`+\(*?P 2S 0[/BPR[ d"P02R ڈ" B0dQʌ40P bL2S 0[/BPR[ ,"P0L2R P" B0,QT00P @2S 0[/BPR[o !P02R " B0Q@0P 1S 0[/BPR[J !P01Rr t! B0Q<0P 1S 0[/BPR[ !P01Rd fڨ! B0Qʬ80P \0Sߍ0? (0R  MDߍ-nf`22$Pf \#\3 0$ =& v P 0h0p t`x |^ 00    $ &0 2< >0480: 40*0(202,() $gB&>0Bo@( 0  h? 0(0 [&> 04 N 0  B΍ 0  $6n 0   * h   {`z(   $  =,0  0V    00  P (L  40(0Su \0SB D?2 e 40\0S D<($ , jdC-M(P@``p @0@@@ 0P @0 0PSm S000*S !1 04 C,0  P@` @ c0S 0[/BPR[= d P00R ڈ  B0dQʌ0P |L0S 0[/BPR[ , P0L0R P  B0,QTX0P ZЍ`0S0S?<b`#t 0"C-@-p 0@M(P``@@S@ @ 0LP @0 0PSo S000S V!1 0H H 0  P@` @ 0S 0[/BPR[> d P00R ڈ  B0dQʌ0P L0S 0[/BPR[ , P0L0R P  B0,QTX0P Ѝ`0S0ST!C-M(P@``p @0@@@ 00 h0R` l043#Rn @Q000Q !11 0X 0  P@` @ 0S 0[/BPR[= d P00R ڈ  B0dQʌ0P *L0S 0[/BPR[ , P0L0R P  B0,QTX0P ЍQ@s.,A-M(P@``0p @@@@ 0P @0 0PSk S0004S !1 0t M6 0 P@` @ '0S 0[/BPR[= d P00R ڈ  B0dQʌ0P L0S 0[/BPR[ , P0L0R P  B0,QTX0P fЍ`0S0SKHnlXO-@-PiMaq  t| dW00S0 劐D0 0 <0d0L02 J )>!t 0P$ $0*b S b 0 0+2; 4 6 0[/ P[0S, 0  P $0*b S b,1 !J/>+@;$!B D(, 0[/ P[0S, 0h0$1  0 h.0Pl0*a  0SD RA0 R0 00R(Z?;400h1l1  0P @T  0A D204@ l" 01S Z04ph1l1BP @ 0"2 A0P 0P <@z {P T`d΍X00 |Nύ@P+R;XL N\zD0P ] ^H@Z  fύ\00 ΍4^+`;Z \X@1T0+ @pP` 1 00z0D:zz' @ [`@ 0z0F`:zz' @ V ( 0@P<0T` 0S PRZ U  R Bl0SK@ 1p`,00c!(0 01@P00800d00`00x0p0 "@T 0 Kk@PhHP8T\04d `X&'y1< x0R000 I$ D hk0c0B0h hKh+ 0吊S{0Y0 za Q,0` z@(0 0a00Z ` pB @ j^ P :j5*z:^f:3Jj^JU:Zjg:7z:r[cafjtZwzp$0Skk[ea;cZjjoklj;c';'njil+'[';izk'K'[+Kk&;3+sKu p(q+rKt p;5(r+yK~ zkt(v  `P@CP AD0C!QAAzzj^jfz7jzw::0`Y[aa;c[ea;cgg+rKt pkvx 0S00Ud;[[![:Ke `;+ea ; {H7{(wzȊJ3jjzzJ2jjz 00L 000R ɋgG0jw * jjj Jkjw0:0jjjG^g^x0l p0Qx 0Cp01S 0[/BPR[[ l!0P1R!^ ` B0lPʔ0P iT1S 0[/BPR[G 4!0PT1RX!P R B04P\0P G1S 0[/BPR[" 0P1R !B D B0P$J?P %0S 0[/BPR[ 0P0R 4 6 B0P0P 0Siߍ 0HzhzLW00L0 ttiߍp9   p  h 1S 0[/BPR[h0P !SB D 1l0C P$J?P 0S 0[/BPR[0P S4 60l0C P0P 0S tZO 04@h1l1x!|1: 0  !  a0SZ04ph1l1@P   02@0 " AP000 h0 @BPUd B0Q_ 0C0P"q1 @U0M0h0\400(h|4080h%8#0S t>0804080w4080r080| 4080h0804Mp@-PR- QM R0 Ѝp@Ѝ/P@`  0k0<P7c@0 PRD'n`@P$@@;P0+ * 4`  P.&0 0 0S 0[/BPR[6 P00R& (ڰ  B0QʴP yt0S 0[/BPR[ T P0t0R x  B0TQ|0P~ W|B?igO-@-P0r<`DxD| M1瀐X1704Ⴠ H1 Q0l`173I0 0L 㖌& )    "  S,! QHa N@n0FtP0 4` PPQ\PKh `t┱Lะ Ȱ tp␑`G఍L ($A@``Lxa` P@ QPQ(PQ P 0H0 0K(00^p1XQ࠳ࠣU $Q ะQPl P Q\DPPPPQ8QT<@偐h堑凐ᘑ冐ᜑ偐娑偐少偐ᴑ勐Ȱ帑勐ఝ弑勐đ勐̑勐Бxa勐ԑ勐ؑ勐偐 䑍偐葍偐傐ᄑ偐H|`(tJL B (Q B $AP!"0L 0T10N\!1D0S00 0 0 0 0c 0 [ 10 S0O RP!B萝0 00 pYQd1@` 0 00 S @#@3 R@Ta\P`P @PS`P#P3RࠑSP #L3RR Khqpࠓࠃ S!3p S0#03R0 @ 2 ! 1  2! 1p1 P`l010pGOgOk0J OCi<=Oh18ʐO)H4j5j O(􈀍O)h 0 G S pO((O)D.D.򈀍K[@CH.L&Lh&^O9*45J.0j*Hh&N(jj$O@Ȩj*k,{h&hfFchf24@$zhhv`,+;- 2,-3ˍۍ(n24J*Fc.*,Hd^˝۝JH$.0aP:˝۝ˆhL("T@R OȈhHdlt@Ox~|(b$rO.B,RϤO⏴ϴDODDDTOTTTOO `d @Od d d t Ot t Ptp!0l 呂!찝( Sp` PNU@FPeT @d U   ײ  @ R \ @ @DA@   \0  0d!0(0h!00咃(0 S,0 1 0 b00 00C100^@C\AlP`\0000000 14!08DS0! < $S @@S  \Q0O `0O NSO lO @H1(SI 1X!0R01|00>ڠ1x0Q0100310Q0100(1`0R01001t0Q010010Q!01!001!001!00,!1S  "  "   01RP!PB萝 0 00 pYA1` 0 00 S #3RT`PU`@ @Sq@#@3 RS@ `#L`3RRKpS3p S0#03R0Q @%2 ! h1 2 11 0p0 0P0` dpFOfppp0Okppp8* ȰOCgp5j󸀝p4 V&OgPA p-O',ApFOCh^n A 05j S `4ʐk{,Oh􈀝K@[ h  C"h!j h "`! bl! b ߂BdAnp! ঁ 0!A0BD t! +;jSᮁ APA 0*jaA"!R 0k {A-aˆhHdVfRa""x t@ 0 ($ BJnl0J~|a%A.,1*B(R32@ 0-/@ G,O@ F#0o@ E@ DX(b#/A0,@- C0a@ HjB+D;@-! C0>@P JK [Rb:JFH;J L+;/P N!OP L6+8;oP @+ ;P! Ab#0P C0P C8j 09PQ@ a0剁Rl A H*dn hfl("J LlH$j6K8[lh&hFHv`H*H $ Z|X~AlPR &$ br,&K[zt@ T@V`.$BR/,b$rx*Oo(,B*R󏀅π00/Oo􏐀ϐ0 0 0  / O o   0  0 / O o   0 0 B0000` 0 /` O` o` ` ` ` `0 0p /p Op op p p 0p 0p 0  / O o   0  0 / O o   0  0 0@  /@ O@ o@ @ @ 0@ @ 0P /P OP oP P P 0P 0P    p ` P  @0  0  0      000 00!1P T0 @  !!p`P Pp `Pp `P P EQPB! A  `P SP`P PPP   P1P!#0@ D R @#  |0 |0# C A A A|0#A@0@ @|000 S C|00  R |000 S SB!Pa Vx!pP `!@P  B \ @#3RQ؀U^PP\P#P3R@@ \@`P#P3R@ SRd  p  `Ph@ \Ax (X x     P!l1  x0  H  Bh b   P p` p `p `  @ AB! A` `Ap \  A A A@0 0 |00 |000 C A A Ad10TT @p`P Pp `Pp `P P EQPB! A  `P SP`P PPP   PT @`pP P` pP` pP` P `AEQB!P `P P`P^ PPP   P*M0O- -04aMl10ᄠ刐tL  o   >#0^0:0" 1@! D!! 0p!x1000H10|1"0t1 000B1!0 S0! 01|0X 001S "[ 1 00@)0!"0##701@|P0PEPO*zy@Pp`Awp t@v`~H{JkL[NK LJb0UOjb!dt@ O`f+h0{0Kx0 0HTRv`0kHT0"~HTR悶vhV,LƬ ŌlP(RP(Rpr8a!c B'B*0 P CH{ JkL[NK  !pBWb:t P@ @`pPX1xP#P3VX1#3RX1!P#3SX1P#P3PGQPPUt DA|含0`PLHAP`PX@0P MT\1XZ A0 #fP"2 i"C:3J000* .1 j C,!߂ʈ"; !!j b!;󐛪 R89 6ʐ7j)" &P;*󐛪4j5J`(ˍ*ۍP`\l, .aA ( 02< a"A!*jaA;";㨡)k{;Pb,0Pi$fBc00)*8k:{67J0k2{ Nih46:0;P C%=&򰛦l ߪ-hn(k*{کj(bhf` ~znb,+.;jl J "Zj.a/!-Nfa*Xh,aN)b#Nij0 a dN h4+6;A*N)&45JAܩj $<HE< \1\0` @-R0@00 [?CPS[= @P0L Q`0 Bd  B0@Qhl0P *(0S 0[/BPR[ P0 Q(0 B,  B0Q040P 4< , P1P0` @-R0@00 [?CPS[: @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[ P0 Q(0 B,  B0Q040P <d @P1P0` @-R0@00 [?CPS[: @P0L Q`0 Bd  B0@Qhl0P w(0S 0[/BPR[ P0 Q(0 B,  B0Q040P U<=: P1P0` @-R0@00 [?CPS[: @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[ P0 Q(0 B,  B0Q040P )< P1P0` @-R0@00 [?CPS[: @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[ P0 Q(0 B,  B0Q040P <D , P1P0` @-R0@00 [?CPS[: @P0L Q`0 Bd  B0@Qhl0P o(0S 0[/BPR[ P0 Q(0 B,  B0Q040P My<52 P1P0` @-R0@00 [?CPS[: @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[ P0 Q(0 B,  B0Q040P !< @ O-( .0HSP8Mp3#QpG@W0`0P( 0SU0CXpW00E@P00\ TQ WVT 0P 00W pp 0p gp0 I S h G0Se pYppp^ pU` `V@U@@@O`@U```H`U```A`@U```:`U```3`@U```,` U```%` @U```` U```` @U```` U``` @0U@@@  ǬЍU0CE0 P00^0QQP P 0 CS A0U UUUUUUUU U U U U U0UǕ `$*j$ j4 Q p0*BT T00X 0,0 L0 JHDP 0 [?0/R[0S, P0   $0*b\ l bSd ⌰| 0*@􈰍 J  0[/ Q[ R, 0  /H00嘐  Q0Cp0 u0A(S!!Q0"*cS ` P QH `$ `;  Q  Q   Q  Œ p: &0 S 0[/BPR[c ` 0P0R  J B0`Qʈ P H0S 0[/BPR[@ ( 0PH0R  BL  B0(QP 0P  0 0`0r0(0E`FA0DB`0P  P  B`FP0   P0 u ] O->@B(0SM MT3#@0 Sx1 0S00S]x1 0Pa P S0 Ph`QJ_L  Q Q!0 HP s$1Bt 1SL00100x@1LhP qC 0 00EP`LL0H @0cJ1刀1`谝 qITp\pqX劀|p?L00?`K000`000000001T `@@ @0x<X P\ p` |  B  1LhP 1A, H0 ` 0@* 00j*Jl 110C10d0d0 0C00S B l0h 0C$00@0p0 B 0C(0L0H  B !0 0 0 0 0xQ00 B t000 0L0 0 0 0 0T 0 0X 0 0\ 0 0` 0L0SL 0`@C0  0P@p$ (@NQ @DaT N@d^q@nRK^@SnJQ @DaT@dSAQaAQaR@ AQ㰠Na^n @R AQ㰠Na^ @nT @R@0d 00R 0L 0 0R0d0,CC. RL0@00N  L@0@0#D0 0 t 00` !@Lx LP@ NB D ,  C0(01P$  000< P 0 00$`0`Pl0嶐X`0ᶀp`\0YPp0p`0 0S0 S 0S0YP PUP U PU R  0 T K@P` T` \@@@ᠰ \Q堰 `P @PP Q `Q4Q @\` Y @`PX @Q `Q`PW @`Q`PZ 0@0 00`P0EN:0zAjz&z'Gzzggz:0Ss0S00^@~0^R&0R< 00P             D 000$ 8`0&p$s080,0 P,0R00 @ p$ 00(04(0 00Pࠡ࠱^ࠡR 1 !P00S V h`Pጰ| 0pᶀPp`໐PpH pPP0X`TH0Ố` 0ᱠ `  `P00 PPS P0 S 0S࠱XPPUP U PU R  0 T# @ YP$P\ @[,夰 PP @PPQP Q 4Q @\  X@勑 P  Wp@WP\刑 PW  V `@P\冑 ` PV  Z`@0冓 0P0 0E B:0*zAjz&z'Gz* zggz:0$11t0]0D0 000< 000P00000 00 0000d Qd0<!L0B<0,0D0@0000B0000B000R0B000R0B000R0B 00 0 0 001S%10C!ABP@qC`G0FpG0@`F@0C@Dp`0   U      1PP Sލ Ѝ@P`@  P00L 00ꌉxGSލ ЍAO-MP@ ` 30 0P $0*b S b 0 0+2; 4 6 0[/ P[0S, 0  0+;P@>+@;_(1,1qp @1JB D1  $y0S- R0BS "Q0*cS `P RH `$ `;  R R  RőRS 0X3\3 1Y0 10 $ 0.C`Z 񏐱~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXB x8wwhvt`uVVW 0X3\3y@Dpi p 0`0 0$ u F! 0X\ÍbP $0 b S  b6.x#/|3 # 0[/ P[0S , 3  1S 0[/BPR[ 0R ! B0Q$ |3x#P+;1 !>+@;\3B D \3 $!S ?P P0(! +;x3 |3,! }TT [f J0X3\3dJ X#X3 0$ V.VW. 0X3\3ßrf p 02 0$  F!0X\ÍP? $0 b S  b6.x#/|3 # 0[/ P[0S` , 3  1S 0[/BPR[Z 0R ! B0Q$ |3x#P+;1 !>+@;\3B D \3 $!S ?P 7 8P0(! +;x3 |3,! T [ 60X3\3&@@0`@\  0j6\  0$ D001 Btrssrrphoo 0Pnn)l\mmk#c0PV0CSL7PE`ppUJ !(A0S3Q0C^p PW00A `P00XVTࠣ࠳V\0 PWW pp  p0`@ l0 FW d L0S @ Q@@@ `@Q ` ` `` Q``` @`Q @ @ @@Q` Q``` @`Q @ @ @@Q` Q``` ` @Q ` ` `` Q``` ` @Q ` ` `` Q``` @0Q @    w0`VUʀ 0(())h )0TY ʠ 0**++ TL0@V0CS#3@D``T{ (1 RCQ; BA`N^p@Ӈ X#@PZ \VP U ``UPP^`T `@@ ^P# \@#P+ @ P`O eP@O IZO fO E@Q `P`Pጀ` Q`PP ` P `ᅀP`Q````P`ᵀPQᴀ```P`ᵀPQᶀ```P`ᵀPQḀ```@`QPP   ZX3`3@`#@DpT㣀ʀh3 RQ> B\LApp`Yp#@` P@ZT P ppV`` TpTp @@\`#P@# @p`O d@O GZO fO DQ `@`@p`^`@@`@ `@p`^`@@p` p`@p^p``p`p`@p^p``p` p`@p^p```@`P @@   QC0A@\P S00S P0 @ C\0S  Q Q  Q Q  Q Q  Q Q  Q Q  Q Q  Q0 Q { PE,p㇀A0X Go0+2;os4 6S  F!q/!AA1*G H豍  0[/ Q[ R 1  1}o!偯>+@;S㉟B D"/2"*F J$(  0[/ Q[ R$! 2   0H  Q@00DPL  p0?tP C0A S|!!Q0"*cS ` P QH `$ `;  Q  Q   Q  Œn_: p2 S ! 0[/BPR[ !0P2R" J B0Q  P k1S 0[/BPR[ 1PS1ŏ H0C@!R P Lx@ 0DDA(1 1P"$\0E!UTP`UpDW\^ࠓ SCUpp\p \X pU 00X0 0P l0 ES n L0TM CPT EEpT =GPT 5pE Tp- pPLT pP P%pPN TpPP pPLT pP PpPN TpPP pPL T pP PpPN TpPP pPL T pP PpPN TpPP pPL T pP PPN0TP C  ύ%巿0 S$X@\P 0+2;B4 6C2  "/*L K"  0[/ Q[ Rx 2  1!ů>+@;S(3͟B D(*A$#/ J,#048  0[/ Q[ RV$!03  0W0C@s00HS  Q0CLcD3P<#60A S!!Q0"*cR ` P RH d$ b;  Q  Q   Q  Œo: X(3 S " 0[/BPR[v #0P(3R,# J B0Q0 P ˺2S 0[/BPR[Y 2PS2ŏ K0C@"R 0P ׿QB A@ T3#^ R  R P M LM BR R P@QPP@QPQPQPQP Q Q]B A@@\3#T R  R AP  ƒM @M B\ R@ @`P@7p@W/`V(`V!`V` R ı@ @, _ o( 几@AZ0o 呯0+2;4 6S  I@"/@Dl"txh2*Jd Epb  0[/ Q[ R p2  1域!>+@;S㫏B D"/2"*I G  0[/ Q[ R$!2   08  Q0004@< x0?|@ C0A Sx!!Q0"*cS ` P QH `$ `; Q  Q Q  Œ M: x]2 S @" 0[/BPR[  "0P2R" G B0QʨP @h2S 0[/BPR[ H2PhSl2ŏ E0CH" RpP !M@ 0DDA( 11`"$1PF1V TYڀ`p^_`PW DY WXP``Rአ `p3p#XpX Z` ^ ࠃࠓZ  qr ` PO n O F\O eO N T LP`T`PA`PTPPF`PTEP`TPF`PTPPPAP T@@ L00ύ H&0S(`$d@ 0+2;팳4 6퐳3  X#/*L| A#  0[/ Q[ R 3  1!鯍>+@;S3B D,*A#/ J#s  0[/ Q[ Ra$!3  0W0Cc00C  Q0C܃3#G0A S!!Q0"*cS ` P RHId `;  Q  Q   Q  Œ: `ڽ3 S X# 0[/BPR[ #0P3R# J B0QP 3S 0[/BPR[k `3PS$0 C30C`# Rʈ 0P ȼ MύQ0Y  S(hl@ 0+2;d4 6  h0!O/X1\!*LT N`  0[/ Q[ R `1  |3[x#_+;Sg, !]/*A!1$ I\# 0[/ Q[\#Rʄ#1  0\/0Ca00A  Q0C!1y0AS!!Q0"*cR `0P SHId `+  Q 0Q  0Q00œN* h1 S 0! 0[/BPR[ p!0P1R! I B0pQʘ$0P ݶX1S 0[/BPR[ 81PXS0 C\10C8! R` P y00\3h0\3c0\3^ᑼ⎼⋼T0QD3#S\P+ P0 C S @0T  T T  T T  T T  T T  T T PT  T T 0TljTRD3#\ QQ P ‚M A QM @Tn TgPTaPT[PTUPTO T ±F1!\01夻01垻1!$02唻(03去1!g 02儻( 0H2~1!,03t(0`3no`3d#BN 00Q,0p1[d(081U50LBD`F0 Q Q  S Q} QtY V(S$P B 0A SB@ @ 0A ^ 6 3(0,-m,*I0 (!a0 00C@RvB@ BSk0 '0  0lT0S 8n%"gda W( (E$?52.+O-@-pM$0 I RP000Ɵ<`  0%5 `0P` 0P`Ÿ 0`徸>P, $0*bS b +;d0` H  h p p`t`l  0[/ P[0S, @00l0  P $0*b S b 0 + ; " $ 0[/ P[0S, 0  0PST0S 000xßB`  0 0#3 `0r0+ 0R0 @ `Dpқ0( 0R \ a. 40`0`2@ذ000p00㰠00000S 0[/BPR[u 0P0R 0 2 B0QPI XH0S 0[/BPR[` | 0P0R " $ B0|Qʤ0P wd0S 0[/BPR[A D 0Pd0Rh   B0DQlp0P UЍX  x0Re Rf?(  b xǴ#@0 0%@0D0x0|0x឵]ᛵx86V2 ?<><:P<O--M0q041Wpp@ 0; 810CSP000\Ɵf_ ` 0t6  0nWP` 81P` 81 `ᖶP $0*bS b +;d0` H  h p p`t`l  0[/ P[0S, @0$0l0  kP $0*b S b 0 + ; " $ 0[/ P[0S, 0  0Wpp" P2000ѷxtp0p\  0g0<$ 0 (40޴Ǵ0` vQ `0SZz 3 T0⻟(0D0૟0$pߋT@ TZ\0㏧0 0  k'`0,Q2 ܀ R.+ 4 8 0W 10 R I #00 @D0@D4: P 08!04p2@ 000S 0[/BPR[! 0P0R 0 2 B0QPN ű0SMV y0S 0[/BPR[3 | 0P0R " $ B0|Qʤ0P d0S 0[/BPR[ D 0Pd0Rh   B0DQlp0P zЍ0S @0xp0 TAʰP 000ж(0|r0 0X0  0γ% B67`6455P011/1`-|P000垶<@pj p  0d00  嫳ᔳT00*P! DY"D0FI,ppT60 1 X1B1 T ^,pZT0a \A ^  xW[@0 $0P* ZC 0㏷0R0@@S6000᣶@0$D0g 0 4 \`R P  020 }Ϡ $ " 0 x0|0=@p?F[xi$f x⍰$勰뫳V "߲۲wղ딳O--Ppi@VM`M<@ ð @TP@@ @VލЍNP1៰Pz΍ $0 b SX Z bZ/1!.\ ^AA! 0[/ P[0S, 1  000 ᱲ1S 0[/BPR[ d!0P1R  ڈ! B0dQʌP Я0S00cS* 1S 0[/BPR[ 0P1R  ! B0Q>Pi g> 0&lP}5 $0 b S N bZ/ 1匁! 0[/ P[0SX, 1  0 K K +1S 0[/BPR[B d!0P1R  ڈ! B0dQʌP K41S00cS, L1S 0[/BPR[ ,!P0L1R P! B0,QT(0PY #W0d1ִ" 埰@0 ,0ɱğ+0 40a;dSP`V>%x;Ġc3 0@ I(0x0S \0␠$0 H3  0$@ϯ\0S 0 0 (  {$B@2ͱ$ 000#`P   ,`0I00$ q` 哮`Pt @0  000 ᦮P]JX p0 0@ 0 x, @0  * 0 x0 x0 xȋ40 L P00PS@@0 E`N @|>d0d1ֳ @00C800,Ă  ((|( (`T} 8 ҭJ +h-^ P,O-MP H8 `  1 @8h@HpPЀ@DPTp+ ;,+.;<@ p( *LP̀=01.0 0 0` 00(0,@@  PᨬP0S}ᬬ R0BS"Q0*cQ `P RH `$ b; \ R  R  Œ RKTPX0\ Ւ+0@xS !Q0"*cS ` P PHId `; \  P   P  Œ^1I  004p@DP 0@ bP 0S 0[/BPR[@ 0P0R & ( B0Qʴ P t0S 0[/BPR[ T 0Pt0Rx   B0TQ|0P v,0S sЍZW0 [0N 0  om,0S O눮O-`-ß@ @M(0AҮPTp0 0@ 0 ᛬WP @0pW pp 0 p@Pp0@帠t80P Bg 3S 0[/BPR[ #0P3R@  # B0Q@0(0P c<3S 0[/BPR[ #0P<3R8  @# B0QDl0P @0P 0[/Bσ\R[ P 0[/Bσ\R[ 3S 0[/BPR[ "0P3RL  # B0QL0 (0P 2S 0[/BPR[k "0P2RT  " B0Q?P ߥ2S 0[/BPR[E t"0P2Rd  " B0tQd0(0P \2S 0[/BPR[ <"0P\2RP  `" B0<Qdt0P ძ>4a0H  @0崨?< H  0 @8妨3T02,wL0C02& T'>p0 D4 P̥P0Pp1@  "@LtpE_1h0@8PPȝ] ^H$ @ E8p p˦p(LTpPP@00L CN 0S pP   @ SNHč@ÍÍ婦낯 D ᐠ%^ 0  `^ 0  T~0 0 0 JP  <Bn h Z  L{@0 {zzC  0 h 02 "!10F/P ]ኣ3S 0[/BPR[% #0P3R#  B0Qʴ?P T)PZ00|10\30Po3 0P80S~\3?0 00 @ Rr:Z? C0啤\3凡 f ?^/ 0 ^ d 80S:0@0P:B_|0@@3@`L8p,3 <0čč噢CT! ͍?.~@0 3  0c@Í冢RU  0 h=G> H7!- h1% \HYVh0 RhOL傯 0(h$ , 000@ᐠ)ΰ8Pἣ4LHFO  0"PP|@0 Ch ᨡ0<  S0 D 풢 D<嘡0  C0 10(10 0hˠ00< P{N?R 8P@0{zJz퐣0.ᦦJ_ E0ᠦ 0ᛦP0  0ᐦ q J0ᇦ@0 C0て8p9 p j?v/wPӦ<匠h加)t K G CP0 EX 0SCP倦d0C||004?P 80 }708034uWPG@? T0x0D@  UL000 LڡxPD@.~ Ԡ|@00T |@ 8@0| 8@PÍ @0  |8@| ΢Ý0| P͝0| PÍۥ0| PÍԥ{x0 LzL̥0|@SX00CL0@ L08彡PҟTП8HhUd 3S 0[/BPR[ 3PS ڰ3@@0C@#Rʴ P ПụT壟8h88|p0Tɣp˟PɟT償|ƥ.~0P PᵟT峟.~8察=h0 ᧟h奟 ᠟|垟Ӡ<嘟'>p0.~.~'>p088凥<@h>ᶠݡ |5318o šO-M0p@h`P @0@Z@@ 0SX @0 PS <0 0$0匤Ÿ 0  Z  0rll2 0  嗡အh 0 00 0 p@$` @ BU 0pSE 0S 0[/BPR[W l 0P0R   B0lQʔ0P ŞT0S 0[/BPR[2 4 0PT0RX   B04Q\`0P ЍD0S 0S  0 0$`2@ 0庡h 001Q]qnᖞᔞ봡 C-M(P@``0p @@刢@@ 0ぢP 0 0PS~ <000帣4Ÿ 0 @ T  0A1@0  àᬠ` 0 0 P@` @ =0S 0[/BPR[? d 0P0R   B0dQʌ0P L0S 0[/BPR[ , 0PL0RP   B0,QTX0P םЍ` (01Qzảᷣ@ݝ۝4P$0$ 0@-@000p8 000 0@-@000Ԣミ<8 $0$ 0@-@000Ģ7 X 000 0@-@000巢f7 X 0 O-MM B\ 00pM.|S Aጟ0X? 0 @ k,0p 00C 0Y  0呉! 0 ^000"R0S0 `P 0 0C10B0Q! 0S0SݍЍРݍЍX  A,O- -0CM M  I(   R$  R  00姛, [0P  受 2% 00t0 @p 0 0!0z D10!z`ZzZujjzzuzwzgzUJ00Az< D`10!zjzujzwzgzZ aA0@RzXzz@`j0z!zz  z@0z!0F`S!0cz1 ' 0@ )J[0 00R00}0p0 0RR CލЍ $ Q eCލЍǟ V0p _cة_cX_cXO-p-@X]MM d Vʟ,40 0PP $0*bS b *+,;0. 0  0[/ P[0Ss, 0  P +;0*B10 < 1X111 嚟0`MS0S( 7011P@ 000 @\  0-.0@02 "0 V?0 ` .ᄟPyRύT $0*bS b F+H;<1J L8!@DHL 0[/ P[0S, D1  Vo U$>011tqp0p \  0810p ,! pߝ0 ` Μ$P' $0 ` S D ` !.1! 0[/ P[0S, 1   BP2 h4\,pDX0K000[0S0S [ @1 PR P㐰ᔰj`#~ ` 00  0p|e0S0S1S0S Pr000Dr  ! 12 0 ]Fp$P`001S01S11ٜ!W00#GQ'T@  )``b&*APW  Wzz ڐW zzzzWF@Q J  J QQ VcEVV@0X( HRL,!T`+;`k(``*BP R  A X!!  XL@XA PP4"`A TQ1 0Q1T0  C☑!a吡0AS!!Q0"*cR ` P RHId `; \  Q   Q  Œ.b: \ 001U000+ 0:0U  z{zz0 P! Tq\P猡0␑1şPQ@PP l<1S 0[/BPR[- _cX_cX_cX_cX X G!0P<1RT  @! B0QT0D(0P 1S 0[/BPR[ 0P1R<  ! B0Q X0P l0S 0[/BPR[ 0PSP0 00C RP0(0P I0S dFYi 0lPH>C T0幚0C P0岚$ ᭚1S 0[/BPR[W 0P1R<  ! B0Q! X1!P< *d1 1*B  X1<  !SR >P X YP0! +; D!11 ޘ0S5 Y! I011<I /1 0 V? 0 00CS9C2543210/.-,+*)('&%) Y0PH1 1P0C00KBGH49EGztG_0[P ~PG+;  *I 0 \`xpt|囚V 0A  L `!!k <`OU 0@SD@t#pP a P B 0Q 0S Q 0S0PUpx!``B0Hp$A(H1x '!Q"00|1 ( H8#1,  Gh0.1I|0%1hl  p04@0 KW%0RP00Q00St  0P0 A C\0S 0@S@0W0@@,0@@Vd `0&P%%/Y010["P#"Y20#01Lk B H33GGH@H\7p0008<幑  0\0 0$ !ޙII00@ B0 @P@V$04S80C@0h0 lP1p 0c@0t0务DPA!8PE b PP00,4l0@HdPLD 08 0S20, 0 00 D` L0H0  D0@0P0S0* 0p0.sp2@@W0p@pW0p@pW0p@pW0p@pW0p@pW0p@pW@00@`Z P4 0$00P 0(0 0 0000 `h0V@v$ @|PApp3*z `,lg%! @$ x@qt 1 !0c` 0 g1,p  (0,0P( @ $0  0`0^*ppS0ppW0ppW0ppW0ppW0ppW0 ppW0p pW00: BZPEz@D@H`Fzgzi0 0C0s 00 0000t1S 0[/BPR[< T!0Pt1R\  x! B0TQ|`0P )<1S 0[/BPR[ !0P<1RT  @! B0QT0D(0P 1S 0[/BPR[ 0P1R<  ! B0Q X0P 0S 0[/BPR[ 0P0RP    B0QP0(0P 0S9]ލЍx1[ H 40!|@D0`1 00(1 800 0X 0@P(pHz0N@ hp(p,1 @ H00HhJI$P0L@l JX &0S00\0Q00S @ 0 P0 A C^0S 0 S $0S(0 ,0V `H0L B0 \V0L@Shp0ClH0400 1ቑD!0c @ (0 0 a$, 00S0 0  +,0 `(00S  0PR 0P 0 U0P SP 0S 0P SP 0S0S00X 00$ S 0000 4Rぐ0H@*z010c 000! 0k0800 P0 `T0  1A 0S0 S 0`S`0 S 0`S` 0R0` !V 0R00.:zzgzeX 0K{0=jNAzzgzeXd偕]ލЍT0C01.)aaڙpp p\  0"X00 8  Ζ0S Y 0 0qT7XhJHz.@0H0S3#P\Q~ (p AP C0S 0X 0S0 00SCX R40Dz@0 j#)10c`000a1 080 0  PT @0S 0S0 S 0Q"VzzgznH0x `Z BV@zzgznP00`CၕP  G q0(+; 0 G9/\2S 0[/BPR[ <"0P\2R`"" $ B0<Qd?P $2S 0[/BPR[ "0P$2R("  B0Q,#>P e1S 0[/BPR[ !0P1R!  B0Q~?P C<0 0 0 㜀@( @A1S 0[/BPR[ 1PS1 0CP!Rʴ(pP 0D00t0< P0C,\T0C40D 0B0 `1`P i0 0 S200 0 0S0 00S0S0P U0 P `[0 <官 B H33GHGSfSc B0 X⑘I ⎘$⋘መv0&&%_<zw( r0 x<>H0BBH\F⋒ ቒ<凒ᅒ0S dg렕`ݔF``F`ҔF`͔`hF0∱t@PP PQi`ⳔF`⮔F`⩔F`⤔F?<O-kMb Ёp`P @妕TX20 0/(0(0ᛕҕP4 $0*b S b@ \0` h X+;d  hl 0[/ P[0S1, d0   0ϓ$0Sgkߍ 8N80娐S0S% 7 000'lA@0`@\  0 +>  ! 0@ 100 ` 0 ` * ^P5 $0*b S bx 0 +; " 0[/ P[0S, 0  fkߍ ȷh8X pْp 80D`0@ S0HPS@ hp r 000媖|r } 0i 0X Ó ᬓ` 0SQ00 000 40劖j  01 X 0 圓 ᅓ+;>?O1 *0,O*+,;F!C. 0F+; 2+4;6 8+; :+<;> @+; B+D;F H+; J+L;N P+; R+T;V X+; Z+\;^ `+; b+d;f 000V0c 0A0 P jRP0S0g00g0 @Rj/000!SV 0  R   R j? Z1R00 S[ 0 jPB0RPE B1SUC0C0^$g 0fp@`f j?  1RS0[0P qX0j01SS00BRN @~0S 0[/BPR[ t 0P0R  " B0tQʜ0P &\0S 0[/BPR[u < 0P\0R`   BE?   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 0<Qdh0P Ï,0S R Z - 0p0t0h[80<0c0S[5 0!8⏕p⌕a pⳏ8ⱏ,0S 哐$0S 厐ǒ  O-M8P@p` @0@ q唓@ @ 0㍓@0 000ᄓW01@0 0(2L(0400 0P,` @ p F0S 0[/BPR[Z P00R. 0  B0Q0P &0S 0[/BPR[; t P00R "ژ  B0tQʜ0P \0S 0[/BPR[ < P0\0R `  B0<Qdh0P Ѝ̔ɔƔ A-@TD"p` W( PV P@0FS@1V BA胐C-@`$M @aS L 0     0 X00!LSR T L000S 0  0 $Ѝ!LV000P/ Q/C-$MP@ ` U3 0R1 00S p L\ 0 A@3\  U  0 $Ѝ QP!P000O- L 0`p ` 0| ^$@R0_ \"((C8 `(P 0&SUX[QL! 0|`p`z 0刀ThLⓂ"0p  x  ` `p| 0` \0 hL&&T 0p a x  `p|B \"((C8 ;(PX[ hhUV࠳^e L 0|PGT@4T P0@@S 00R0#JUT00S 0`@0 b CS"GSRr g0V 00jh0V 00ba0V 00Zl0V 00Rh0V 00Ja0V 00Bb0V 00:c0V 002c0V 00*d1V !00"d1V !00e1V !00f1V !00 f$1V !00(1,!0ӵ0ȷ` ЈX㘀P$jTP 0 SjP00U0#WV00St 0 @0 b CS"HSRr h0V 00ji0V 00ba0V 00Zm0V 00Rb0V 00Jc0V 00Bc0V 00:d0V 002d0V 00*e1V !00"f1V !00f1V !00g 1V $!00 g1V !00(1,!0ӵ0 `0LT ((0h00` `p| 0` +0LT ("h0`0` `p|wT0`T0 Q T0Z#SRQ $"(P.@ 0" a CSWX(P@ @PT00P @00@PT00P @00@PT00P @00@PT00P @00 @PT0 @PT0 @PT0z @PT0r 0P @0j X00  ڷ0 õ_"Th0p  x  QT@h0B" 0N0AT B0p@RmT0@D E0@RT0 HJ(P 0@Q(P@&0@-@Ga4MP 'd4J `2* 0 K+; [+ ;"" 'ED4Ѝ0C-M0p`P0@{e0 'fac Ed`D4`+0eaSEd`DЍŃЍ0S ὃxO-M`8 @P H0H0 T# H<H$ T8@\#$@(P  【 `!U@8,PE$@<`( @` pD(P4@R$P L<``F`DA `qNFT `~LD4`Ft@uPpLHJ `Fd⸌p8 LĄ` @`GB$?` Xp!AP 4 HIH,@p 4ApH PqGpx~pG JEPI R$  8PpK JGtLĎp兀PKpJ A@ILą|N PK@A~DpJ@qp@DIPET8p@G0 PDDB$@ $(P 0u*e%Ф "0#0   g$`& p' 0b`@pb`p` pP  !`p ! 0 0()@P؄  0(%)&@ P  @ (g밋%( 0@P0+S r0 ,*Ї ()0@ P"(( (0C8`Fip 0 %Z @d?$ృ+?dx (k(0x%; ,0$l=&R000% ("(Q( D00T P ` HH T8@唲# $ X\#$ (  尐!Q8, pK(A$ (F ER$ pGtAwpLKq ~EF  ?`Jt pp HB$ \ F  B EH A~B$qFKr E   KJLĎP儀pKE  FLĈA |qB$ KpEr FpHGtp0@$ 0(0s^R0008 ("(Q(008\`P<&@Z"$@&G ZT㞂"0e j`Ⱀ∀Pq 0L?`f8|a(@l ZWtVdH@0C4s0L J0L J4s0L pGtpp0L0C4s0pL`Fd`$` 0p`p`' ("(Q8(#<000P <"hh@Vp $"HHCXT\<PP p$@%* (P1?b`U  @$@@B8<( E`@ @Ph@ @S48@Dp@ 0@(Q0DT 0uP@ C+C@Ѝ/S P$ P P @;@+@@Ѝ/ Rs0: 0>C+C@Ѝ/P@ : s *S$*S(C<*@+0>@@Ѝ/0>@C+S  0 _@`MO-Mp@HP0T踀`G 0  000z `g0b` `  zl0S 0[/BPR[@ L P0l0R p  B0LQtx0P v08D 04  0ЍOЍ/ H@κL@{tt p0 0 .-J B yxY|xyvy$q$mpO-MH@`pP 0 +;qz ءЂ `(0` byl0S 0[/BPR[ L P0l0R p  B0LQtx0P vЍ|2vRyG-@P-`p@MAB 00R00S'700 0b{hRP0P ^   0 3;$" .B0 B2 0jx Sx0 SR6#-(10ȋ,0(`0DpL4000ɛʫЍx10=R'd10<R%P10"=R<10>C0C,10.= 10 <R 10=10<00>C0C00:=00 < wx00 0zP媨 P 00 .E B 0w w0 wx ojmTJ JIIiIIIxI`iTIDIPlh$lG-PpM  R`@=P B z((  .I Bⴐ 000഑wwV000 }yPzzD0 ( zw vwW  GЍ00P0ayP ^z 2yjw)xgw&x8lg k~qO--`P00CQQrI t@Y II0 0 Y  Z zwpp@@u@iQ/0G- 0CQQ` 0AP 00 NSQ2 C@2`P@Lđ CRQ: Q 0X!ItUp  EP 0  0 AS:UŒ L P  L0 BWP10!#3>Q   € c\ A0R!!00P w pq 0 0 \su8gQ/O-0 0CCQ @P 0 R@@0Œ0"@PLI0BS(:Q` `0V`!bs p 0 R0P 0 Р0 BؠCQBP vP`p`rp)ufO-- ğ@` MPXPswTm <!6A- t2"! *K"0Z+;`k{K[0(`Q`03SC$ ZZ-ZCQ Z ZQZQ-V`\P<6A- v0 *K[ !0ZOk(b`k{K[0bR`(b`P+;U;9`P Z?Z/Z->-.Z8$0 ZZ>Z. Z'0 Z>.Z)0 -=B--BZR\ZB@A- P ,:kKl[^,_O;(b+`ekf{gKh[`^b`(bK;\k90 " ZoBZOCZV-nB-NCZVCnBCNC`F@DZVZnBZNCZVlBLC`F@DZV ڇnBNCZVڝnBNC`F@DZV-mB-MCF0ZP`-a0 >C0CPZo1@\ [ RvڈpȊ`0p~GpGɚ$ h8hhhh0````dZp__`0PT+EP\0@HT 00S+Z?X-c 1;!zza + `+ɫb 0E0C2 Srr 0[0  00 S A SS APE PEP PP[ Lu `0T$\0@ 0ES`00 0CSb U   K U `0 0SLЍZTiZ?D0CA- S!2"! :K"Oc+d;0`ckd{eKf[0(`Q`03RC$ ZDZQ-DZQCDAZQZDZQDAZQڇDZQڝDAZQ-DˆR P,xyXヂw yr#sЍ q`0 @` \@A ! tPq ZR0`@U 0S r5u 0````O-\Mz ( 刐H8 0  r0(,X@ P] !P  `@p@0LPCUO*2 `{j `{zWV 0SD1O SD aq 0 X `p D AXS1 #3>P5  ˆ b R @ R   @AX 0*t0(,P0 0LCU:0DS P t\ЍzZ 0 R00CS)0TP  D0 BR!  $  CS0SჁ 0T 0T 00p0 \0  0 0 s(@(P s:t0@-DMX(l `0 l0000% 8 t0P4@\@D usDЍ00P stO-PQ 0CCU P00 LU" 0`@BD 0AS<: Up p0Wp!rxpP0" CR P  L0 BXP1""0#03?0S  00 aR LP Ls pp 0Р0 BؠC\BqHXO-p` MP@A0EC2E S;  .p  bT K D0 JVX1 *0#03?0S* 00 bS A: T  E B 0"" 0 aR @V r ЍyY    00 BCTBO-P MpA0G2? S4@o0 @`0 X H@K૲ @  T @BX  G B @%tU r0`@0 Ѝ~rR  @`  BO--M4 "B"0@ A0kW`  ,`p@`P0 c4C SBUNQ LUS< `l>26,!Y@0P<0 (8@)`0"((0  00 00 0xWV T0`@d@!ͱ!͡d```& 0 R0APr8P0\F ` @@(0@P 40( S!!9  b`p `0,` L `l0 d l2l \nSjQS|0SxءP0< С0$&z ` ЍO-@0T `0```0p`PDK24 S) n  fT K  D0 BXW1""0#03?0S 00 aP L W qyYヒ 0Р0AؠCTAO-Q$0Sa (RpEpB  WpG pF @ Pp  `D P Pppp" V`dЍUV 00S=Uf 00S P)  ( p<@`P 0p`P 0p`Pp`P   0 6 QP!P000(p@ PpP pPpP!KQP!KP000!KQP!KP000!KQP!KP000!KQP!KP000@`GO-dM0,P8 Q 0@0AD0X0,04 B$0100(00$0 R  N(QA1 ! 0 000A ءL `ᒇ( p#0 UPT@ X 0! Z0ͱV 0 p`R00`ͱST(`V؀0 YX 00?(8!8P0dЍ(P4p,0U,0 0/o0 b  0 S \W  PKW4(0040p!4@ 0 S @( P0PVpXp0040\ p`(P40 SB \ P0.@pV" 0S R1 ((( 0? X0S+ !0 Q 0 `&PW0\E0 SA 0 @p0僢00p"((( ,0 R$ ȏ,^0<)0 0k S*08 oY<@ @0   o닰 D R1T<@X`(p ^'  R$ 0ؠZ7^3 Y0 @ T 0 0S P@@P  ^V X`XR04 0 S0 XpD 0 0    `R   ^00 080 BlN@ ( 0O--Ѐ M4DO +P  * ТX*+Z P  P P @@  PZ @  P @ 4 (0x 吰 8o@PoH@<@ o o@0p000(0 0 kpt@@ [ 0P" @) D@)") JPAU9*" i`{hAx h`{L80 80o0 A`9I{ ̟o"0 A`8H{ YX" QP\ 0T8 <@tp0 DRB  BRS5  D4 B"ƒS ^1#3R  R `Ѐ de+;abK[튋틛+;  +B;B B BR R2 4 4@ !D D@0SF.0CZS0 DD0B"000P lpP lЍ0TS 40 08P0 B0D@B"0h0 0000$  :P tlP  @ 0 DD0B"0 ji40 @@`Q @`a ! Ql@> 4 <  0CCTvP 2lpP .llP (lO--`M a 0Brs b6|b` 0B@ bbXRS 0B4\B@ bB@RS04\B@ b` 0BCrs06|bc`lP 0P7  0  "$ &Qn0 AV Jn 1 A숋! (  `9+@ C80 嘀800& @pZT@ 00 PB@B"B00"IP)$H0H"T 0AP 080P@T X Ѝ@ pP@@@BEBE0SsSS00QQy b 0BipI&hPhGxa)c0"($Hi(pbaC8HEX``p@0P @@B$HHEX@@Ѝz08竸: @ HJ+ 0K  ` ;#(HˀhpXt(rpk$ +#)Iˀ2kG [8p0KUq(r;"+@P`pi;BP 0`FBFCECEЍBP 0`FBFCECEw[!h0`>0S 0[/BPR[O d P00R ڈ  B0dQʌ0P g0SЍ`P i~hЍ,0@0D0l蠟  \  00  -L0 Biid`P0d0mR:mibg0S Dh}ji+\625H504O-P-PtM @SY\40OXP`0`0p`f@ 00pdT\ hp PXlp@`k봐 0p`0 0T0 d\X 0Phplpk0k'e @P`0 0 pP` d\@XktЍ0OXP0`p0` 0`f0@d T@\ ` PX]kP P``P@P0PdT`\@PXHktЍ0OXP`p`0`f0@ 00@hd0 0P0 0X`T\l$k0L` @` H@D@'ea `0`d ; ktЍ0OXP`p0`0`f@ 00d T@\  PX`j0 00d0 0T0 0PX\`j0kK'e 0a0`00d `j <`0`8@4@'ea `0`d jtЍO`X0Pp` 0@b 0 0dP@0000 \XT`~j0 00 XT 00P\00``d`gj0 00 @d`00PT@0 0\ X`Oj@ 0@ @00@@d` ``TP`\@X9jtЍ0OXP`p0`0`f@ 00Kd T@\ h PXl`j0 (@,`e0(a0 `00+d `i0 $@ `e0 )0`@00 `d@i e!(k`0`d@ itЍ0OXP`00`p @`f0 0pdT@\ ` PXi0 Ke`0 0 p`00 \d00Xi P `@P `Pp0PhplpdT\@X`PitЍ0` 00@`00dO-P-@XŸ` @b/0$0teH@10H0L0ePP0`P\  06  0-B0 B0*bb< o!F$~e} b$_D0S <`baa 0lDxO-DM(`lPp @bU) Q,0SDЍ 0['d ch0 0`P00`04p@+0; J_,0S >`DЍ0000 40dᐰ   0p00  B.K\a a a,0S `Ib(MO-M@XPР 0԰ +;cЁa8 d(dЂ`0 cX_|0S 0[/BPR[ \ P0|0R ڀ  B0\Qʄ0P ^ЍOЍ/d^aMO-MxP0@00 `p쀝 + ;bТX0 @ HLP@'dHa8p`؂a+e ^0S 0[/BPR[ | P00R" $ڠ  B0|Qʤ0P d^ЍOЍ/Ldv^aO-Mğ`D0P0 <\L0@a0S<00000UT D0S`p0@`00c$p qb$4 A.B0 B``<0@ 0R ]D0S3EL 0$ "=C0CH X0"0DT 0 R?0P00(0 0 0$0P@$0 z ] 0[  U @D0@DTA@  c 0*P1 +A;A A A0SQ2 e0 RLL0SH000P0G S@KS B@ T0@p0,0040080x000p` P,08 4<@p0tpx`|P*0 [@0 F`(0D 0(0Rd0SCЍZ S @ H0[@ U  @hP10h0l0ba`0p`\  00X 0_B_ 0u[yʸ0 R S02@05*\>^Ѝ]_ _d0S \2^k`@_ 8 D  O- M Mǟ8@ `4"``PPH $0*bS b +;ph x l0 t x| 0[/ P[0S, t0  `PB `P> N 0000p, 046P0;C0C 0Z`P @( $0*bS b +D;0  @ 0[/ P[0S0, 0  Q0AS!!Q0"*cR `0P SH d$ b+  Q 0Q  0Q00œR D0 `P0 !Q3#?01 0[/BPR[ 0P0R   B0Qʬ(@P >\PUm894)0($00  la,0PP _000PP _l0S 0[/BPR[ L 0Pl0R  p  B0LQtx0P [<0S ܍ Ѝ_ @Dv]QOʈ0 Rt0!S! 0[/BPR[w 0P0R   B0Qʬ(@P [00C 0@0 D0#a(Ÿ  0&=01 07^ ^7f_pPD BW00000'.wpFA]N>0t,04]븰qa.H0 0] 0D00)aWNpt,*4f\ ܍ ЍDMa0L0anr[<0SZ 4T\W=a;a_000PP ^_[<0S 4A\z^]U[,0PP ^DlP0O-MXP`p 0@İ  + ;8_@`a8+@ 0 @  c+ A`|0S 0[/BPR[ \ P0|0R ڀ  B0\Qʄ0P ZЍ`Z^O-Mß8`@p ࠝ䀝_^^P $0*b S b 0 +"; $ & 0[/ P[0S, P0  X0 Z 0?`@0S 0SL0`0d0_L ^x"x2n 0/B ]\ 0R @Z0SZ00X0Sg 0pc? G g7'190!"? G7< g G2> g'0"+;Z0 @ P @+; F0S 0[/BPR[3 0P0R $ & B0Qʬ0P Z<0SЍP [k [ЍP00_aꪯ 0T PPT_k\Z<0S Z#]0G-MpP0@l 0Р + ;] ؂0P08@DP@ @'dp`a;e+ [0S 0[/BPR[ t P00R "ژ  B0tQʜ0P YЍ_Y\O-@-ß @MA8`pAB]H]P $0*b S b 0 +"; $ & 0[/ P[0S, P0  W0p0S 0S0 S00[0S`@`@d0`0d0^pd r]d"d2 0/B[[ 0R X0k C c ȟp pc@8 C0Ÿ  C c C0 c80P @ + ;I   0HJ:+; 0S 0[/BPR[+ P00R$ &ڨ  B0Qʬ0P X<0SЍP 9ZaYЍP00`^V^[X<0S Y[@MO--@MxP0@00 oA;BK[ k\ТX0 @ HLP@'dHa8pJ ؂`aI+eH+ ^0S 0[/BPR[ | P00R" $ڠ  B0|Qʤ0P ;XЍOЍ/"^LXl[O-Mßp@P F[[P $0*b S bh 0 +;   0[/ P[0S, ``0  Y`0z@@z zz00 X00SI0@0D0H]I \"2 0/BaZJZ` 0R WjZFz*?*j "zGZ㐊*ȟfz  zJ퉗ᨘ uZ툇:z:gZJJZ_WXGJbj6jvcz7zw$j&Fj ?"eZ:jffj*0 z'Gz zggz @_C0S 0[/BPR[) d P00R ڈ  B0dQʌ0P WW0SЍ`` XSLXЍ``0d0\I.]YTW0S 6XoZGGxO-tMß8  K,pᤰZ0S 00000YW 0?R0SP00"P0@00P0T0l\ C@@P@\  0"@2 /B0zYcY 0 0R VZH 0JS*!P0"*c`S`0Z `   R!  Z0Z 0@0$0ZHIpG00(0 `PA tUeV @V ??O0CPUQP< 0 a 00*Q1 +C;C C C0Sa2 f0 k( $0  T $YZ @P Y<0StЍZ0,UWtЍ0VT Y@P X<0S ,AWzYXlDO- M Mş8@ ,"YYPPH $0*bS b +;ph x l0 t x| 0[/ P[0S, t0  Y`P BV00000.v`,A XN>0d404X0 0V Pl4Bh$0   ?C0BY@ pDOW0 2ZPx( R3#?00 [?CPS[~ 0P0R   B0Qʬ(0PI PUU49D0)($c0    DqU40PP (Y000PP !Yl0S 0[/BPR[ L 0Pl0R  p  B0LQtx0P SU<0Sb ܍ ЍPVx0C0@0 D0Z 0^9 01 0W Wi[}H0 0V%l0S 0[/BPR[[L0PlS0 p00C`L Rtx0P T<0S ,U ܍ ЍN.` d4 0$ ,U ܍ Ѝ0L0Z@MZt40PP X000PP |XT<0S ,UX @WTXTG-MX@p` 0P + ;X0p؂+a0  8P+c  T|0S 0[/BPR[ \ P0|0R ڀ  B0\Qʄ0P pTЍZZTWO-uMfύ0@ D 0, 0 > "@$+B+&;D;KFK[H[kJk{L{fX1S102 01101D0S  [N?!80R 0SV?!@0FR 0St T !T0X00D<0T(8 /BT (0?C LP H0<T@P- ^?P,0 8@0 p 0(0@X1S [ : S ?0 SUP U# 蠍600 0HYWP0`P\  0V: H 070UV >V 1  R0 G!( *j[0` 0`pp 0Sڠ0$0萍040 : 1 (k 0 00 0`0< n60PS@wp`!$0\*P[0@P 0P@[@K 4: < K,rV0Sh f 18S< ``W $4[% 4 \ +V 含( 1  $: 00 0君\008< $40W1#3 1`P!S1:,V[ 08 BB" 0: #0 S0蠍0 0QXL+j   0T P0`hU QU[pX0SD  01S 0[/BPR[0X!0P1R!j l B0Qr?P RP aUP ]Uuߍ,Uk蠍{ :< 0Sʉ^0,px1|1WŸRj P 0 /E01\2`0UT9D b 0X00 0K0!X0G8 0 P V 君:< 81PW#35 1`@!R1,QU8< 0@ 01(_M$@ 000 00 0000_N0.RPhh[0  B8B" 0),qT0RP TP T&U dT `Tp\`(,TO-QM͟8@p U( aUUPO $0*b S b 0 &+(; * , 0[/ P[0SZ, 0$00  plUP*p1 $0*b S b 0 ,4+6; 8 : 0[/ P[0S, 0  ɠ0BDP p S P !1 @!\tdl@0hB4` B8 \0` U0P00H0X0   @@0,0P T L0BC1T*0 RT@08 0"480R0S RJ0`PU[*:@*0 ?C 0T@o?n BR1S- 1S` C0R#Q *bQ ` P RH d$)b  S  S   S  ŒSQ,1S 0[/BPR[ !0P,1R0!F H B0 Q4N?P P@V R 0toSOo BCZ#Q*aQ `P QH d$ b L YEQ  QP P 8 @U *FU0!*V8  01U, 0j*Sp@B8 h@:V 8 "8 BUD0`*V@ 8 0S (!1!  !$1)t10ct10x1t!BKcl1 0h1D[ \FkH{ "+$;QQPP R@P R0S 0[/BPR[V 0P0R 8 : B0Q<P O$P<0S (PQߍB0 ]TP/P08@  4. $,1 PP,1S 0[/BPR[g !0P,1R0!F H B0 Q4N?P Ox 0x0 |0 UD5 0  6R R! $0 b SB D b.(0!N/,1F H4!8< 0[/ P[0S', 41  m0 $0P pPWUO$O<0SQߍ`P= sB0 1 UG0PC0$0TP PQ*`X `SP H d$ b  A S S @ Q000@FS0S0S BQ" 2 0/BQQ 0SH 2@T^@085,S08 :V@8 BT!8 @t00Tn0P 0bZM#BkQ! 1 0/BXQAQ(OQߍ R T80@U`*0XRP0" !d e`R)`fR C80L,00P000@08 5,4$@>@^PPP 9Q@P 5QN$N<0S (sOQP PNT`t\R 0!zzRzw 0 / /R 0!zzzwz @  0R / /R@--!0zzRzw  @ JH H QO-`-@P-ZMM.O͍L H T 041O0 gN0@ aN P0S 00C 00 0#S0S R R5SV 0 CN0 S0 S# A<0114S밇0 \  0t70 l' @P)P50S0S A011 Sǟƀ   060 & PPV011h0S! 0V56 V V 00 0RdƟ`   0@60 4& `O O1!#1<0%~R0 1$1RR Q 5 %0 OO00F~0 1$1RşỀ   0\5 0T% OO7%R  R `0 0xR` KQ 4  $0 O {O5S C00 0_RC 2Q 4  $0 yO bO0 AJM0` S0 S# <00 0;R tp0p\  030 # GO 0O0S0Ss0 #1<0%0T  40`0p(0vN  , 1A6#<2#!T$ @TA0L00R R .PL0014TAL00$0a qR 1h100 ,@0l|x!w x2 @ᣊql"04P 08 D0 '80 1 z$ @ 0@PS' zzZ`,000Q쁟  \  080 D NN 0St1Pp!@0\ 0D P0(` ꧊x, 1P z@ 0@`SKzzZ,000fQ쐟T@ 080 8@\  0eϠT@D0 P pNYNPD<HD\ht<$00P'7[ U z_hz8'zhjj!z 1!80 -J,0P 0z000ȊH0<@Qh^0 8[,0t!! 0KS 0+! `0$@0h 0l1Apt"K  CR`0 S,  p[`!@ [@@ [@  @ [@0@[@@0!s@ #8 LHDp1h1  Q nU* 0la0S<0`Fp40k0%(003/H 1p 0W Q1pz_W z@ T1@0H0@  BL80 A[0 X1$\!`dT9 0KS +X0, \`1 d0! + CQ`0 S,  $[ [  [  [ 0 [  <1@!zCRBS@0D Qഀ'(0CS80! T򐋤 Q`0 +; 0"b C(bp`CCC 0R@0 R 0@`V1  V V 000D0S00弐D0S S ,80 `T0Q`0@ 0 N0+;b B (b 0p0(`BBB P0 SY D@ R NM!T Dځ T ;ڂ!T 2ځ! T )ڌ!T  ځ! T ڌ!T ځ 0 Tڃ1 000@0S00?DpJ@`P @W0z z jRgzz'zwz['7x`x:V0D0S0 @pPC0 @z`@zjVzwzwz Wx1XL!40|1P 80H0j 02Z_ ` ,(< 0[/ P[0S,0  00x 0H1 L1BD81P <1P p0P tn0 S ^!9̠ | ‐, 4F H 0,B4$(B8 RO 0BD0 S \L剐:) 8P/J+L;@a0DAB4@B8ԐD<BDH P 800<h S \!9  Tdl\0`B4B8X F T0X EP`V. Q0AS!!Q0"*cR `0P QH d$ b+  Q 0Q  0Q00œRQT``FEP0 `8FEG<1@S 0[/BPR[[ !0P<1R@!J L B0QDP A1S 0[/BPR[@ 0P1R!< > B0Q >P A0S 0[/BPR[  Bl 0P0R . 0 B0Q0P A0S 0[/BPR[ t 0P0R  " B0tQʜ0P |A0SH bߍ pBR B   BqeBH bߍ  0 F xEF EP1 $0 b ST V bV/px!-t1X Z|! 0[/ P[0S, |1  <1S 0[/BPR[ F!0R@! B0QDt1p!PT+V;<1X Z8!F+H;T1J L @T1DA@aS|M =P  P0H! X+Z;p1T Vt1L! @  0P!T1X!\1`!d1h!l1E!?DR 0$!B4(B8dP1Th!`X\u0 p0t0rF F 9B00fF@00aFx1D@1pFFFFF0FT1 JFi 0eF vFm @ @@@p@0S yAC BfDAQC-鬏AȀ@^! p!0!X@`Q0FqzzzJ0X p@Y Cz L AzzJR:1 \ 00AS00Y0\ 0pP/ Q/A-pP VU  BaB`W @0`zzzZ0zzJV`0MG-PB$0`_ jPrQ>0A2Lzzz J ZPL1\ Y# @L\O@ ڄ1 DQz/ z Z0pᶀGjЍ/QV@Y1 B/\"LL!1Qʌ10AS/RC-@M`p C2zH1zz|J Qsj\zʏJ \Q   z 0 PRRzPz PzzJRPRP0CjjJPPY:  0IS,X apF Ȁ1 0,H 1 0!XPE`E! 0VЍ Qj\z$*Zz 5J \Q0 \Q, 0 L0Lz zJ 0\R 0\R 0 0e \Q \Q \QQ  OPP/A-@Q-" `AP`F```pz犴J0S 0zS C犴JSQ pᶀ@T0SU  D@pᶀSQ0p@-`@T @P #AUPU ApUO-P@ Mp0KA1Z SP > @bUA @E 0@DXV10A # 3> R?   cS B0P1 0  @A U  K0 BR! -  cP A0R10 AV @ ЍyY@  ㉑ 0 U0O-@p M` A0JC11 PS%P = PX@0J@  0@ X0  BW P Ѝs@ P ЍuU  XPQAQ/AO-ApA᩟pɐ a ^P<R ! !0!W ! @0D₱!zzzJ0W !Y  RC^'zA A/z zJU:^PN^P ^00S0 00! ^A0PG-@AM@PWRP`D p0A PEC1z?0zzFJRDjzMJ PK ! z z0zzJ R:@ zzJRP0 0H@SU `G 90PI0E~UЍjzZz00 zzJ R0 R0 J PO-P -`@t@ M8` TA BF@0?00S')>70022Bd`0p`\  0m!0`04 $0 ?>AP?=P  )nf0`22A<f @n!,4 $0 >>?P <P"@P! $0 b S^ ` b-!j/1b d! 0[/ P[0SZ, 1  !P 0 R.11112 222n?p+r;1>~+;H l nLz |!2- |Q,0AS5!!Q0"*cR `0P SHId `+ \ 0S  0S00QR8^?P0>@0@ 2S 0[/BPR[ !0P 2R"~  B0QL0P ;1S 0[/BPR[ !0P1R!p r B0QH0P ;1S 0[/BPR[ |!0P1R!b d B0|Qʤj?P p;0Szߍ 5=PB| `48X+ 0)0J 3#@@X^ύ< P @\'?@P0 `pR@i /A& < 0kG1@ X2 )0\R2@R 2 j;P ".0RF`Qz_GD Xb\r@`bdrhblrpbtro } @H$+;XP \` 4p$PT(,LQbr:2S 0[/BPR[ "0P2R"  B0Qʼ40P :1 . P >P $0 b S  b/@H"%.D2 L"PT 0[/ P[0S, L2  [㼠7KpE    0!X2AL 0 a吉([  0@`P0z@z zgz X  R 2R= 0P`U Y@00PJ2 E109 T0 E1 /o b0 @U#@P U J<@D@JQ P z0 zz B E<  *`@Pz`20` @0DR?o20S0T 1@:0S !zzzz `H{J@,@>P @=02 `T U5U5AT P90D SPpR ?DP0  \ A00 A B:1 T@Ds# T  C TA  A ( 0R00 B$ h `F`(d` 1@Y:,@ ! 皸==$0@PHT_@(0@Zɟ Y 0Y+00{+U 0 SJ \`0 Y 0喚퐃 00嗚p Q 0\" 00喚Qᗚx 0\" 0d0 r0AR?od20S0`VBT pP. ;WrW ;`\0P 4"D2Q0F"1 2020202222 p0tx`|` 22 8@v>P 9 80 <2S 0[/BPR[ "0P2R"  B0Qʼ40P 8P ~;D2S 0[/BPR[ $"0PD2RH"  B0$QL%>P 8P X; 2S 0[/BPR[ !0P 2R"~  B0QL0P {81S 0[/BPR[ !0P1R!p r B0QH0P Y81S 0[/BPR[f |!0P1R!b d B0|Qʤj?P 780S T49ߍ  ^9?)<0#003@@X^ύ P @\9 D98M<P :D2S 0[/BPR[D=$"0PD2RH"  B0$QL%>P 7P : 1!^0|1=; Pw0 0X01111(1,10141D1@101> 1>81=<1)>: <F H0! 0J 03# @; R: 0: `{: S`k` @0 0 J6z? X0 0 >6"> D0 0 26,0 S RV0BSL"1Q@ 2 aSIdPQ()b `; P QQ  P 080 ;ؐ0 ;@ 8X 80 080,0 07` 1<VR 09` (0 9Ȱ  0 8 x8 5P7{@ 6z80 ;D 8 a8  6` ;V 075,708`$ 9 `p08A85P 0  P500 @v50 0Xm540S 0@P 0C 2:8@ 680 L;0D G;X (80 >;< 1` ` 70D H17$;[a $ v6|2S 0[/BPR[A \"0R" B0\PʄH"2P+;x" |2+;  ?<0<5H02L022Sgʄ2 -4   40P P0+;22  5h2 0RX:SU8Z9 pPxz B!zzyzgGz9z  z0zzyzgGz9z J^TT5ߍ D0$2:^:P:@:pX:KD:":^:M:(z: 0< hg< dy 640$0 6|2S 0[/BPR[0 \"0P|2R"  B0\QʄH0P 4 m4 k4i4$0S7 00$0 3 # @B60f:0(0$1[1S0S01S FB tdRB0BS8"1Q@2 aSIdPQ()b `; \ Q  Q  P 060 9ؐ0 9@ 600 ?<0:00 0$0Y5L4` 40 0D30@P 0C06D 6@ 60 9 09X w6, 093K2 -4 2?"200ჱ5hbp ,`W(+ !/o b #[ ڈ` J S^ S Rz`(0S z0zz C0(0s06 04 B3P (36( ఍6,`p!z20 p0GR?o20S]0`SY0:0z:0Szzz H{ @l7 `(@e702 <V U5U5AV p20F Sp r0FP #10 Q N0 N L:1 V`F o  0&00@ VeWP 54P 0DRC  (0 " 8`[8P/ 3 08 52S 0[/BPR[ "0P2R"  B0Pʼ40P 2P c5 8I3p(( 0,`P0r Bh d0<Al@<0 : 60 : p\6hpGQLl0 @S`/0SX0zj(0P0r#z#j,0L0W ,0SLL0 \,0 d0,0X0S(0` \z P00 j QS z0$" 0ʸ0QʍB 0ʁ$" 0@0Q  P2@ R00<0` 0<0R2r`S `P 4W zAjzvzgFj7z ໴Q z0jzvzgFj7z ໴D D 0: 0: 2?<0P<1 1 110S T25`4?<03FD4?<07 71?<0 31?<0-4 7 2 %4F!4?<0?<0F4?<0FF1PD1P D41X1@1P1z?X0324F3?<0?1@-M@@b7ЍO-@- P0@M8x@堀@ $A q`Bh5P [ @@@@ @@@p@ +";혠 휀H @ @ 0p@M50S 0[/BPR[ p@t 0R  B0tQʜ,*+,;P. 0)+;0 " 10圀嘠S 0P P0  .+0;0* ,0 000U0S ,1(!J+0(0 0I0 @H @  H( ,, {3  B 0 PU1A0#03\00S 0 € c\ B0S 1 PbEP \30S 0[/BPR[j t 0P0R  " B0tQʜP 0\0S 0[/BPR[L < 0P\0R`   B0<Qdh0P ^0Ѝ B,cX`a005(,!  0 , 00l0022P00F 0cSE6 6p@680 P 220 00P32/p@-M( @Pn` 6/0@Ѝp////////////////////////////////////////////////@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/O-M@0\H0D ` `F ,p `0BB#1!0  僢10VG0H@ڃ!Q0S!! 0SP@JVAiG i+i;iK0  R0{k[K;+ @KZ P;E+EE@0S0APV i G 0 +^0 0@ S@0 0S@0000Ѝii+i;iKi @O-4MXp\8`\ pG ,`0 fL1L W`@H`P`P `PP"WD@Hjj jjz\:JJZZ'jj'zZP[ j j z  @P PQW@Hj j SzzPzPXPX 4ЍjjjjjO-$MH0\P0L p  pG , k0BQB #1 0 僱 10W PH@0!a0S!  0S`WWJi[@H iki{i  R 0 ; 0 +:{ {k[ [ `{FkF[F0S0`AW iH 00+U VH0 0SH0000$Ѝi[iki{iiVO- Sj zjzwz @zR  @p <Ѝ\ dd@  d@P-YRAZp`PAJAJA:5SzZj*j*z:ZuBj6jvCz7:'JJ'Z:@ZJJ Z  @@dPAY$Azp`P5Sjzjzwz@zP @p <ЍAZAJAJA:AzO-$MH NP ψ 00 {!  ^ L0LO0C#1010L0Sp] p0g;S+ ggkg[k[`P@ 04\  0K;+Kt;s+rqk[i{:)Rs 6:S h{: Ps 6:S f{: Ps 6:S e{: Ps06:S 0 0Ѷ0 0 pSpL0S) 0Kp0 Sg`P@ 04\ +0 ; pa{:)Rs06:S 0 0Ѳ00S0 0Cs0 f$Ѝ^ L0O0C000L00C0L0100S pX0g[a@Pgkgg 0>\  0K;+Kt;s+rqk[i{:)Rs 6:S h{: Ps 6:S f{: Ps 6:S e{: Ps06:S 0 0Ѷ00pYL0S$ 0pX20gP@` 04\ +0 ; pa{:)Rs06:S 0 00Y0 0Cs0 d 0Svg[gkgggO-LM@p@00L80?L4 0 H01@0($0 \ t0)t/O0C #10<"10 D0t0Spn00,040 0$000 0,S`P0 &%'+"$0(@00@3 00S0   l&P%q'+9Sv`6: V?0`9 SuP6`: U?0P9 Sw06P: W?0) R0 1{06: [?0 000S0000 0Dpt0S*0$40p0S09! @ ( 0 `<ZP0`0!9Sq6: Q?0<0S804 0C@80s$0 4 0$0RLЍ\ t0)/O0C 00(0t00C 0t01,0 0S4000 00S 0P`p0 Al0 \@@I 咄(L L~' @l&P%9Sx6: X?09 Swp6: W?0p9 Sv`6p: V?0`9 SuP6`: U?0P 0 0 S 000P(t0S$40p,0S/@  0 `<XP0`0C!9Sq6: Q?0Z804 0C@s80 4 U 0ShP`p O-\  0K;+Kt;s+rq[{e{:Ss 6:S00s i{:S s 6:S00s h{:S s06:S00s0g{*R0C:Rp00 X0G D0S!0pYKf`P@ 04\ +0 ; pa{:S/:S 00^00 0Cs0  q Z~0 pS0 XpYqf{fff[0 0S)I00S YfO-ML@ω00N0 1 : ^ D0D 0C#1!0 "1 0D0SpZ pjYjzzC:CJCJCZ :J JZ`P@  04\ z0Zjj*z*Zu!j6jv"z7:'JJ'Zc::Ss 6:S00s DJ:S s 6:S00s dJ:S s06:S00s0EZ*R0:R p00^0pD0S&0ZpYzCzz`P@  04\ j0zjzwzGz:S:S 00^00 0Cs0  lЍ^ D D0B0CZ0!0 0pYCJaP@CJC:CZ 0>\ z0Zjj*z*Zuaj6jvbz7Z':J'JEZ:Ss 6:S00s c::S s 6:S00s DJ:S s06:S00s0dJ*R0C:Rp00 X0G D0S!0pYKCz`P@ 04\ j0zjzwzGz:S/:S 00R00 0Cs0  q Z~0 pS0 XpYqCJCJC:CZ0 0S)I00S YCzO-MP@ψ 00N 0 {팑 ^ D0D0C      D0SpX0p0g X0gK;+gkg[k[`P@  04\  0K;+Kt;s+rqk[i{:Ss S h{:S s S f{:S s0S00e{*R0Rp 000G WpD0S'0p0g+X0 +b`P@  04\ +0 ; pa{:SS0000W00C 0s000jЍ^ D0D0C D0  S 0pXg[`P@gkgg 04\  0K;+Kt;s+rqk[i{:Ss S h{:S s S f{:S s0S00e{*R0BRp 000G WD0S 0pXIg`P@ 04\ +0 ; pa{:S.S000 W00C s0s D0S p[ / pZ Xvg[gkgg00S%I0[ XgO-ML@ψ 00N0 1 : ^ D0D0C      D0SpX0p0C:zX0CJZjjzCJCZ:'JJ'Z`P@  04\ z0Zjj*z*Zu!j6jv"z7:'JJ'Zc::Ss S DJ:S s S dJ:S s0S00EZ*R0Rp000G WpD0S'0p0CjzX0z'jfz`P@  04\ j0zjzwzGz:SS0000W00C 0s000jЍ^ D0D0C D0  S 0pXCZ`P@CJCJC: 04\ z0Zjj*z*Zuaj6jvbz7:'JJ'Zc::Ss S DJ:S s S dJ:S s0S00EZ*R0BRp000G WD0S 0pXICz`P@ 04\ j0zjzwzGz:S.S000 W00C s0s D0S p[/ pZ XvCZCJCJC:00S%I0[ XCzzO-MόPL@@D@ PZzgZ-zgz7 @Z:jPP PzfzgzPPP^ Nz DDZ  [u PUP`V`% V p(` p`J`pj:YjVjJJXjj6jv'j6jvjjGJYjjV V:YjJJXjj6jv'j6jvjjGpT8aTjJjjjvjvj) TjJjjjvjvjpTpJjjjjvjvj `P`JjjjjvjvjN ~ЍPUW zPA AAPU`Pp` PjPp`JjUJWDj6jv'j6jvjjFjjUXJJWDj6jv'j6jvjjF`TQpTpjjjvjvjpTpjjjvjvjp`Tpjjjvjvj PPjjjvjvjPU`$Pp` PjPp`JjUDj6JWjvgJJdjgJjJJFjJjUUDj6JWjvgJJdjgJjJJF`TrQpTpjjjvgjjjepTpjjjvgjjjXp`TpjjjvgjjjK PPjjjvgjjj@V,` p`j`pjXJ:JV:Yj%&jeJ4Jtjj'j6jvjjGjjXJJVZ::Yj%&jeJ4Jtjj'j6jvjjGTapTpjjpJ&je$j6jjvjp TjpjJ&je$j6jjvjpTjpjJ&je$j6jjvj `P`jjJ&je$j6jjvj`Vp(` p`J`pj:YjVjJJXjj6jv'j6jvjjGJYjjVZ:YjJJXjj6jv'j6jvjjGpTaTjJjjjvjvj TjJjjjvjvjpTpJjjjjvjvjt `P`JjjjjvjvjgzgZzP Pgz`P`P PPPPPP PPO- Sj zjzwz @zR  @p <Ѝ\ dd@  d@P-YRAZp`PAJAJA:5SzZj*j*z:ZuBj6jvCz7:'JJ'Z:@ZJJ Z  @@dPAY$Azp`P5Sjzjzwz@zP @p <ЍAZAJAJA:AzO-MP@0Z:`` D0JD0C#1 0r10D0S@0@zVZCZjZjzEZCZ'ZEjCZZEjCZ'ZEz0z0: PJJZZ'jj'zZ0@Wjjz  C@D0SAzVzCj'jfz0j0z\z@z[J0z ЍO- Mp00Z^ 40J4A0C#1ေ0⃒1040S.`P XKi[;[+eKi[[e;i[[e+i[[e0 0T{k[K;+ KY ` P;E+EE40SP`P Xi++b 0+0T  [J0z  ЍO-MP@0Z:`` D0JD0C#1 0r10D0S@0@zVZCZjZjzEZCZ'ZEjCZZEjCZ'ZEz0z0: PJJZZ'jj'zZ0@Wjjz  C@D0SAzVzCj'jfz0j0z\z@z[J0z ЍO-M80\0L0 <0y<A0CO#10僲1 0<0SPN`PZ;iK+K i;;i++i0 0T{k[K;+d{: Ps6:Sc{:Ƀ\s6:Sb{:Ƀ\s6:Sa{:Ƀ\s06:S00 0[ P` P<0S!`;P`Z ia 0+0T `{: Ps06:S00Ѳ00S00C0s ЍO-M80\0L:0 <0y< A0CO#101 0<0SPN*`PZjCZj"ZzzCjjCj"jCzz0z0:TJJZZ'jj'zeZ: Ps6:SFj:Ƀ\s6:Sfj:Ƀ\s6:SGz:Ƀ\s06:S000[P` P<0S!`jP`ZzCz'zGz0j0zTzgz: Ps06:S00Ѳ00S00C0s ЍO- Mp00Z 40J4A0C#1ေ0⃒1040SPL`PX;iK+K i;;i++i0 0T{k[K;+d{:Ss6:S00sc{:Ss6:S00sb{:Ss06:S00s0a{ P03:P P`00 ^0FP40S`;P`X ia 0+0T `{:S:S00 ^0J0z  Ѝ Y P`0[O- Mp00Z: 40J4A0C#101040SPL*`PXjCZj"ZzzCjjCj"jCzz0z0:TJJZZ'jj'zeZ:Ss6:S00sFj:Ss6:S00sfj:Ss06:S00s0Gz P03:PP`00 ^0FP40S`jP`XzCz'zGz0j0zTzgz:S:S00 ^0J0z  ЍYP`0[O- Mp0[ 4K4Q@ 4P`O`@i[ XK;[+eKi[[e;i[[e+i[[e  U{k[K;+d{ PpPc{ PpPb{ PpPa{\2\` @F V`4PA`i+X +b + U `{ PP@ VK { Ѝ`Y @Z@O- Mp0:[ 4K4Q@ 4P`O`@CZzXZjZjzEZCZ'ZEjCZZEjCZ'ZEzz: UJJZZ'jj'zeZ PpPFj PpPfj PpPGz\2\`@F V`4PA`CjzXz'jfzjz Uzgz PP@ VK { Ѝ`Y@Z@O-DM@h$ 000LD \(0P0 H 00 0 l 1 B0<0l0,048 0l0S@T80P$ 000` 0S0  0!,!.! !! @p0 [p ., !00^^~^0 0\à\|\00PPpP00QQEQP000J0Z4@l0S#$0` P : H\  \0\ @-0@,0P00 ' P # P  @A \0 \0\ @-0@,0P00 P  P  @&  \0\ @-0@,0P00 P P H  \0\ @-0@,0P00 P P @\0\ @-0@,0P00 P P @4 \0\ @-0@,0P00 P P @@ \0\ @-0@,0P00 P P } @ 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P  { l0 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P ` J  000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P /   000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P   000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P  \ 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P  000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P k U  000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P : $ 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P  L000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P  000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P  000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P v ` $000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P E / <| 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P  xt 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P  T000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P  000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P  k , 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P P : h8 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P  000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P   000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P  000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P  vX8 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P [ E000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P *  000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P   8 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P  H 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P   000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P f P@ 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P 5  000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P  8t 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P  t$ H1H0t @-R0@00 [?CPS[8 TP0` Qt0 Bx  B0TQ|0P 00S 0[/BPR[ P0 Q00 B4  B0Q8<0P Pj g H1H0h @-R0@00 [?CPS[8 HP0T Qh0 Bl  B0HQpt0P L00S 0[/BPR[ P0 Q00 B4  B0Q8<0P *D XH H1H0h @-R0@00 [?CPS[8 HP0T Qh0 Bl  B0HQpt0P 00S 0[/BPR[ P0 Q00 B4  B0Q8<0P D H H1H0t @-R0@00 [?CPS[8 TP0` Qt0 Bx  B0TQ|0P 00S 0[/BPR[ P0 Q00 B4  B0Q8<0P ~Ph e H1H0h @-R0@00 [?CPS[8 HP0T Qh0 Bl  B0HQpt0P J00S 0[/BPR[ P0 Q00 B4  B0Q8<0P (D PH1H0t @-R0@00 [?CPS[8 TP0` Qt0 Bx  B0TQ|0P 00S 0[/BPR[ P0 Q00 B4  B0Q8<0P P  H1H0t @-R0@00 [?CPS[8 TP0` Qt0 Bx  B0TQ|0P 00S 0[/BPR[ P0 Q00 B4  B0Q8<0P |Pf c꠼ H1H0x @-R0@00 [?CPS[8 XP0d Qx0 B|  B0XQʀ0P H00S 0[/BPR[ P0 Q00 B4  B0Q8<0P &T H$ H1H0h @-R0@00 [?CPS[8 HP0T Qh0 Bl  B0HQpt0P 00S 0[/BPR[ P0 Q00 B4  B0Q8<0P D H1H0x @-R0@00 [?CPS[8 XP0d Qx0 B|  B0XQʀ0P 00S 0[/BPR[ P0 Q00 B4  B0Q8<0P zTd a꘸$ H1H0t @-R0@00 [?CPS[8 TP0` Qt0 Bx  B0TQ|0P F00S 0[/BPR[ P0 Q00 B4  B0Q8<0P $P @ H1H0x @-R0@00 [?CPS[8 XP0d Qx0 B|  B0XQʀ0P 00S 0[/BPR[ P0 Q00 B4  B0Q8<0P T $ 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P Hw ꐴ$000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P fHC M| 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P 2L  000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P T   000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P P P 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P Ls }ꀰ 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P bP? I갯000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P .L   000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P L 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P H @000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P Po ypt 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P ^P; E꠫ 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P *P Ъ 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P L 8 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P H 0$ 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P Pk u`000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P ZP7 Aꐧ 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P &P 8 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P P 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P X  000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P Xg qP000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P VH3 =ꀣT000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P "H 갢000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P H @ 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P L t 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P Pc m@8 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P RH/ 9p000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P X ꠞ000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P H Н0 000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P H  000 @-R0@00 [?CPS[ P0 Q00 B4  B0Q8<0P X_ i0 T1T0t @-R0@00 [?CPS[; TP0` Qt0 Bx  B0TQ|0P N00S 0[/BPR[ P0 Q00 B4  B0Q8<0P , P ` T1T0x @-R0@00 [?CPS[; XP0d Qx0 B|  B0XQʀ0P 00S 0[/BPR[ P0 Q00 B4  B0Q8<0P T $ T1T0t @-R0@00 [?CPS[; TP0` Qt0 Bx  B0TQ|0P 00S 0[/BPR[ P0 Q00 B4  B0Q8<0P zWPa ^ꘘ T1T0t @-R0@00 [?CPS[; TP0` Qt0 Bx  B0TQ|0P C00S 0[/BPR[ P0 Q00 B4  B0Q8<0P !P 4 C-MPph@`0 S0R0 S0R $ a/1  !0 k 0 0Y#(80 l  8/8 0C0 `0L 0 `@!4/ 0SЍЍ 809/0 7 0S Xi`tlO-M@$ Q(0S0P ,3`03$0000F0XL0夠,00 LhHLp00X`崠0 D0000 0@$@ Pl Q`PD\Q, &3106  0 0셟Aş\($N T  , X L xPt4 |PKp0Ad@000C 0C0`Sp00K0S0SAl0`C040CDP80000<0 0 0I\`?`?`0Zhpa&p Q0 0  0S "SA 0S ,08 C0GP00S < 40P 0PZ H0xP8 0ꐀJ#>03  07  H0`6/x0S,0 GLPt0Sڀ0| L0P Dl0#D00@ 8p0dpGp W pWP8ᄐh0S@ʜ 0SY\0?0F?`+0a!PU 00H ( @E`P0?0?01PU8p0S;ʴd0P4 pG? 0 p0 0hP5/,ᜐ'# 0@00@0 ꐀ000T\0k X 0 0Sp0pS8ڠ0@8 00S@Ѝ0h ,P5/pꐀ _?00  0lU@ЍPM J GdЙDԔd@-@0P000 hP hP hP cP _tP [hP W\P SLP O `@-@kp@-@PU 80 0RY0p@0/2/@-@$0 ` S B `0 B $0(,0 4  0[/ P[0S, ,0  00p@-@P Php pA-@PR ;B48 0MP0 000\ (`B L@"CH  P: QVP300S 0) , ( #``0Ѝ0DD!S1 Q0 W`G)` `Q 0) `n %200  0 [D0d[X 20P0  0H1 -* @ԇ00h @-R0@00 [?CPS[ HP0T Qh0 Bl  B0HQpt0P } XDbH 808 0@-@00D0 CDH 00h @-R0@00 [?CPS[ HP0T Qh0 Bl  B0HQpt0P 5 ND808 0@-@00D0; 9$00x @-R0@00 [?CPS[ XP0d Qx0 B|  B0XQʀ0P T܅$ 808 0@-@00T0 $ 808 0@-@00P0 輄 0 0@-@00P000S 0[/BPR[ P0 Q00 B4  B0Q8<0P o yt Pp@-@? $0PS 0[/ Q[$0S 0[/BPR[W P0`R$0 F"(  B0Q0Q00S, 0,0  " a F"p00O-[M 1U[ߍp1^∰@`01 401  00041 0014AP T0p0t000X0+;x00 |0g @ c H!Q00W0SXPp?0@ @0 DA0` `  0@P$ L7M01@4p0004q1L @00N 2@01(0D00 0}`0!S  0R 042@N 01 [ߍ1W6 @00 1@Pp01DPpA 0 `  @P LL`0!S 042@N 01+PpV0 04@00@00 1@Pp01DPp}NW KkH F D@ B0 000B/tp/@- @0 000B/4p/@- @_0 0400 B/o/@-@P -    $(    , 0 4 8 < @ L P T X \ ` d h l p t x | DH N P0 0CC/8 B/@-M@PtPpPP0`1S 00$" 2 0 XP \P0r s 0 + ; 2@ `00 80<0H0L000 0@0H0D0X( P\0 Q. U0 @9څ0. `{:q:a a@`@ `@C% R@+r6; p `+r++@USЍ000S000P0 0 @@U@R+r {31QB>({A-p-dP@8`NP <0S  80  BQ% R Rv R R. RP S@r0Cf pF EP`g` '``R n @l(Rj*Pb"j@*@!CR RQ@0C f EP 'lR @l P0*1 *@ @0PQ@r0Cf  EP 'lR @l P* *@ @!RK ra  CPR@ r} B0E 'e0 @ `\`j*b"jC*C f!rB P S` rY0Cq  E e @b UWb B* GbWb@""*@ @ CQRP@40C E 'e$b2*PbMw R R RO-`-PpMό0DhD̰ @儓< ! Y " $"8 ~ QF Q QF<$ ~8A \PQ(  X-8儠 jAA`pqp``@` Phppሢq`ZdppQ#Q1#pC`   a p  P`` Q1#`d0`PࠓH0YQ1 p0Hb # 3Pp 0Q#P @Q010#0j00d0 1 p";2娲PȂ;(2刂 ;0D0@`< C#0=* 01 #@0ʈC @0* `R#0h`0:*;2 3*d` bj 8 :>*? < !HJ2v)"3* Ήj@+B;/*?ʈHJhj88:N !0l`b)b@B1 : ʐ*;dld)bd *,!"*k{: J;h `Ή*N >J?PRj+;8*?9(b5Jhf)bnHh&+;.)d@ + ;"`#A"a#B 0@ `D`pB E`p P A @!0X@0 000< 8ZA$ z X|8`dAA `pC``@a`  a`@` Vdp`` 0Q0#@p0@a SQ1` 0@1@0 # 3 S  @00\  @`Q0#\ Q 1# d@! 含0D0@君R R `P @" *` <"2 3* 0J!=j`j)b01 <+;*Jjb+;f)dHJ `@+B;=:*; !f hjh)"t*)jn j< =f`*)l8:ffLN) ߂``"DFQhBB <+>;bL R 0"P0 0DA@`pDADp @ R@R   .!0Q0 @ P0D0P#0$8 @!X @! @B a`  p` pd``! q q W!W(`R# @R `1`#`Cd @0Wထ 0 ``Y R1# W`0ࠃࠓR010#W 0R 1#d0pPc @1HR0Dˢ(R;@B p0p#0`j 0c@02JC @8ʐQߢC9607jB1J`0hk{3 6l,:j;*>?j.P,Љh<J=Jh&nH$54K[(b5;JBddHj B.Id(*7jPi&0ˍ2ۍ:,6)b 7j:JK[J<ʐ=nN,l0jBi,)l1 k"{jn+;`(f `)b:J;8j4j95JljjdHhhf‰jl)f,. d46bgp$+&; gcLLl@``Cr 0HR  pEA A A0DA a @  @qP`倰堀@ N`^^ L@K B!"!0!Rʀ堀0`!001o8 `BPh BB1 ࡐp !S^1 # 3 Q  R" ! a 00*@01 S2j0J3*1 jB*BJL @0S08  pRP-Q% RQ V 0S  !≀000YFP8`AACp p`ap p @` p`ddQp0Q@p0`` W#W 1 #  ` p`Q0 ``P  @  P1#Q0 P010#Pd0 R R򠠝0DbS0 O@ 0" c 0 <C#=j0 >J?*,lʈL.,!ab` ,팛<=P A!jA!P K[ *|+~;"d!a#C<+;"c>#Axkz{"c#B20D` pP0 "  猢0 ! R0 00`0P 0p !0V YmP8AdpA  C`@   dQ`0@ࠃࠓ Y1#`0^Y1`` # 3 `` Q@` 0W  Y1#Q0 Y010#`d0 rRh 0_` @ 0 #0C" " 0 ৌcJ0:*C";`  l("Pj !R",0̚<*1 (b 4*=5JlHdJ0j1 !`L("@h&".! aAeC?+;k{c?AK[cB2 Pp0 L B  ! 0R0 00@0!PU8 dpB CpG `@ d0 !R`a@0 R00V# V0#R 0  W00V #0 d & @P p ,@ `0 Cn\4 e>?:j;<*(.05J:j4ʐ"5J8*91 H"(h=6Jp+r;;0*7j1 h$(,fC-t vbC 0`D0D  ``@pB p B P A B!0T0D0 000`L0D@ WPAN0D0p 堰Pd `  S  " 0J0 a堁0`00@q@000PQPE僰K`烰NP K!@堁X 8`ApA` 0@00`000 `\ `00Y0#\ Y1#0 QY1 # 3 W00pj0 `0Pq`1 0 l 0 0* n1 \l eL@0, K?[M0`JE P狸0*L 8 04  (0@,0@80<00 Q0 {z Ѝppd } `0 0$ Ѝp=BX7(18O-@-dP M0=P 0 0A ;pS Q p 0E[ xx`d 0 Q㍪`0j`l*bb&c bhjc`ffnd-B @nP@H 04W 0*bb&ch b`jcff -B @ʡ0`[ljljC0C Ѝ0pC0[x9A0dd0Q*`b&ch ``jcff-b ``PH05 W0*`b&ch ``jcff -b `ȡ0 RljljC ЍO-DM0?@0 h 1[ { Z0 4, Z 4 0,R000BDp 0H@o L0 0l0 0C$0l00C(0Pl0  0 S 0 0R040S$0 PU(0P0C000 Q08`00C`0 00`@S7S` `s0S00`0VgVv`V````00C `0 00`@ S7S` `s0S00`0VgV V 00U0800l0S0!010C 0 00S7Ss0S000 l0R001!0C0 00S7Ss00 l0R001!0C0 00S7Ss0S000l0S00 10C0,0S Z$0 ``P PPI(0 0C000 0C 00 @ S7Ss0S00 0[[{[0 0C 00 @ S7Ss0S00 0[[m[ 00R0L00l0SF1 0C 0 0S7Ss0S000l0S3 1 0C 00S7Ss0S000l0Q 1 0C 00S7Ss0S000l0S 1  0C 00S7SS000 0 0C 0s0 00DЍ `U ^\$0PG(0PC 00`00C`嚓#`@&0S7Ss0S00`0VgVv`V````0 0C `嚓#`@&0S7Ss0S00`0VgVUV 00R0LPl0S0 1 0C#0S7Ss0S000l0Q0 1 0C#0S7Ss0S000l0Sl0 1 0C#0S7Ss00l0P[0 1 0C#0S7SLs0M `RtP[(0 P0C8000  100<P0 ` 00b"`  R'c#Rr 0R 0 S7Ss0S000 0`0  c# ` 00S7b"Ss0 S00 0R'RbR 00Q0P<800l0S00!10## 00S7Ss0S000 l0S001!0## 00S7Ss00 l0R001!0## 00S7Ss0S000l0P01 0 #0 SPY$0PU(0 `0C00 P0 8a0 00 0 00 S7S s0S00 0R'Rr R   0 0 0 00 S7S s0S00 0R'R]RP00Q0800l0S10!010 0 00S7Ss0P0 l0R001!00 00S7Ss0S000 l0S001!00 00S7Ss0S000l0S00 100 VPcS00xS00S00S00Ӫ0O4,[O-TM@0 x ( 800L40? D 001 H @  0$ 0 \ L0D0|00CH0|00CL0|00 $DWH0PvL0 00C@ <0 00,000$ 0S0 `P@ %&$+(p0p 00300 S 0 l&P%A$+ 0`0VcVv`V`` 0P0`0USUuPUPP 0@0P0TCTt@T@@ 0 0S1@SS0000, 0S<0@0|0S* 00@ `p$P 0 S 0!! ( 0 0T 0 0! 00QQQ000X400 0C840s$0 0 0$0FTЍ\ L0<0| 000,00B(00B@0| ,0<@C00@ ( P$i  0Sp0 P`0 Al0 \@@I t'L Ln& @\%( 0p0WsWwpWpp 0`0p0VcVv`V`` 0P0`0USUuPUPP 0 0XPXP0X(0000Q000$ @00C00$0|0$ S$00 `p0SN @   0 <VP00C! 00QQ1Q000,0W408 0C40s,00,0UTЍ00, 0R0(0S0000SRpP`sX,0S 0SO-LMp <00LD \$00 H 00 0 1 0D0t0L 0C80t0(0C4@0t0480P^  @0Q0 0C ,00000` 0S0  0!,!.! !! @p0 [p ., !00^^~^0 0\à\|\00PPpP00QQFQP000J0Z,000t0S$ 0`D@pP 0S 0"0\ "0 0R#RR000U$0 0C$0s0<00(0 0 0(0_0JP Sl ULЍA-p-d`@P-Pr E0 00C+?d' 0 " zzGz;zzgzPTE bPJnjetGV n```MDzzjGj: pPx2E 0  bS*c`!d`!bMDzGz6zzgzVPE bPJn etGQjn```MDzGzGzzSJPE 0 Jc bS``MDzGz zzgzPE p bAbP n@{ QjndJeHdMD~pP xxE bP n`jnQ*e(badb&af`MD` 0 O-LMό   0 p0^0` ~ V 8  < 4 V  < 80   4 S 0C 0删 H0$0t0Y_O0C(0t00C,0@t0 $ 0 S 8 0R0<0S(0 PR,0 0C@000  0 @ 0 B 0 0CXr 60 0:R   Xs6:S 0 B  0 ಀ0C Xr 6 0 0:R   Xs06:S000 Q@@00t0SS0 !0010C 0 0)Rs06:S/00Ѱ0 t0R;0 001!0C 9Sr06*0 t0S'0 001!0C 9Sr 6:R?  t0 P0 0 010C0 0Q*s000 0C 0s0  001LЍ40S 0V(0PG,0  0C0p0pO qp 0 B 0C[ 0r 6:R   [s06:S00 0 0B 0 [ @ s06:S000[r 6:R   Q 00t0S1 0C 0 Qs06:S00Ѱ0t0Q 1 0C 0Qs06:S00Ѱ0t0St 1 0C 0Qs06*0t0Se1 0C 0 QZ:S00V(0PE,0p C 0O0  q0 0C喣# B"Ys06:S000Y 0r06:R00 0 B 0 喢" 0C#Yr 6:R   Ys06:S000Wt0S 0 1 0C#Qs06:S00Ѱ0t0Q 0 1 0C#Qs06:S00Ѱ0t0S 0 1 0C#Qs06x*0t0P 0 1 0C#Q:S00ѿPY,0 0C@000 0p @D0 0 2# 0!)Rs06 :S 00)0Rq6:Q 0  0 喂( 0 #)Rx6 0:X )ⴀRs06:S 000 [p@D@00t0Sa0!0 0100 ## 0)Rs06:S/00Ѱ0 t0SG00 01!00 ## 0)Rs06*0 t0S100 01!00 ## 0)Rs06:S/00Ѱ0t0S 0  1 00# 0Q:S00(0PR,0 0C@000  0 @ 0  0 0Xr 60 0:R   Xs6:S 0  0 ಀ0 Xr 6 0 0:R   Xs06:S000 Q@@00t0S0 !0010 0 0)Rs06P*0 t0R0 001!0 9Sr06:R?0Ѱ0 t0S~0 001!0 9Sr 6:R?  t0 Sf0 0 010US00сS00R?0!S/00S/00ѩ8`_<`4 lO-\M@4 D00L <0? ( 0 01  @0$ 0 \ H0L09?O 00 1@00 BP 0CT04 0$L6P P8{$ T00CH000 10040,0 0 0,S`P0 &%'+"$0(@00@3 00S0   l&P%q'+9Sv`6: V?0`9 SuP6`: U?0P9 Sw06P: W?0) R0{06: [?0 000  S0 08 H0008008 S+$0 p804 Ⴠp0S09! $@( 0 `<[P0`0!9Sq6: 0Q 0@0S<04 0CD<0s$0 4 0$0>\Ѝ\ H0(09?O00 1 B,0 4@ 0( d P$g  0S 0P`p0 Al0 \@@I 咄(L L~' @l&P%9Sx6: X?09 Swp6: W?0p9 Sv`6p: V?0`9 SuP6`: U?0P 0 0 S 000P0$0C0C 00$00$ S%04 `,0S,@  0 p<XP0p0C!9Sq6: Q?0Z<04 0CDs<0 4 Y\ЍP`p O-TMx@00L,00\(  00 0 1H0L00 09?O0|0| 81H0|0 B< 0CD0 0( 0C840|0< P$gD0 Q0C0000 1 0(0000 S0 @#.#,# #$` p0 [p ., C$9S~6: ^?09 S|6: \?09 Sp6: P?09 St@6: T?0@ 0P R0@C0$ 0000$0|0$ S' 0 4@$0P( HL`@0 S05"0 0X "9Sr 6:0R0  Y,0( 0C@,0s 0 ( 0 0RTЍ@\ O-@ H@ pE X} p S xxw0C@㣑 ahAh0X*l0 laA*`c `c-B @aA`PA05 WX0*` c-Bc ` @ HaA0 fg[ @dGbBMgCOGCPSX40C⣑ ah0X0*` c-bJc ` `AhaA`PA05 Wx0*` c-bc ` ` haA0 fg R @dGbBMgCOGC/O--@#4M@O` @ 00L0001 \ H0$0d0O0C(0d010d00C,0 d0$@( Pn,0`0C 000 p`10j0jSzzH:HJHJHZ:JJZP  0<T z0Zj*j*z:Zuj6jvz7:'JJ'Zc::)Rs 6:S DJ: Qs 6:S dJ: Qs 6:S EZ: Qs06:S0 0Ѷ0`0pS 0000d0 S+0` Z`p0zSHzzP  0<T j0zjzwzGz:)Rs06:S0 0Ѳ00S0 0Cs0 M4Ѝ\ H00d0Y_Oo0C0d01 0 p d0 }PZ0S0HZ q  HJHJH: 00T z0Zj*j*z:ZuBj6jvCz7:'JJ'Zc::)Rs 6:S  DJ: Qs 6:S  dJ: Qs 6:S  EZ: Qs06:S000Zd00C Cd0S% 0 pY00Hz  0<T j0zjzwzGz:)Rs06:S000Z0 0Cs0 h4ЍHZHJHJH:HzO--p#$MP0\0L 0 H0 0T0Y A_O0C0T0`10T00C0T0 0P[00C00 0:  j[HZjZzzHjjHjjHzz 0z 0:TJJZZ'jj'zeZ:)Rs 6:S  Fj: Qs 6:S  fj: Qs 6:S  Gz: Qs06:S 000Z00T0S#0j [zHz'zGz 0j 0zTzgz:)Rs06:S000 Q0` 0Cs0 j$ЍA-@dp`PFPN 8@L/ !6 ^> ^< ^:zzgzz@zzzgz, `@CTq&h xx#QA a\*b  J`AMD*`jb-B FC\pC ^xxq @AQ A*bP b `Jl*b-b  FO-DM`phDOP @  |h0Q \00 S S# Sij0Z CZJzfZ@Z00gJ00S(PT0 h0Ch 0Chp0(0h0 ထ<0c0`C1 01$00n0h0,b 100h  1,p  0`$ Pzjz  @jz7: \*jzw:jJz'zgz%z#j6jv$zzzzC<(00`Cჰ0 S h00pnN GzVz'z' 0  z0Tj jzwzzYDЍSY S* 0 S h00pnN GzVz'z'   0z0Tj jzwzz XDЍzzgz0AP(0 0!0A0R S1 A#3Q Y  b C^0S0 1 0bC⁰ z0j0C@zlzgjhP0h 0C`0Cq b0 0僡1 g!`0Az 0 z QjjFz7zwzzB `0₰oz j0Bjgj\zGj`P9Bh0 Agj c1h c0ሁ 1q`` Z  X0jzz&zZj&z%z7zwzzC0`僰 [10h 0C` 0Cpb0 0僁0i q !` 0Az 0 zQZjez7zw&z'zgzzBzGjzGj [0` Ch0 Bc1!hc0 qቑ 1` Z 0zzJ%z7ZZ\ Yzwz'zgzzzzC Z0BPZh0Bh @ `0 0cn jq 0i  00 !(@`@,PP$ 0Aj  z Qjz :0Fz7JjJzwz'zgDj6jv%zzzzB ,$0 `(@傰PPVBh0 A` c1h c0ሁ 1q` Z \0jjzgjZjgzjvz7jCzP+0h Ch0 B`ა 1ip c0 q1`  Z \0j zz&zZj&z%z7zwzzC `^CqO-$MDH@`p @P 0KP1K J00zV0Zjjz%Zgj'&jg'z'  z 0:QJJZZ'jj'zZYjjz  H[ 0A q0zVzzg j0zRzWz$Ѝ@/@/O-,M` PPPtPp +;  @DT0 "D0 0 0 00  00 N,000<0@04 < 8 *J Kd0h0t0x00L0l0t0p0> V $0S 0[/ Q[00S 0[/BPR[ 0P S000 B4  B0Q0Q 00 $` c0 0C FR ,0 02@ 0 00CR R 0 QPZ= $0S 0[/ Q[h0S 0[/BPR[ H P0h0R Kl  B0HQ0QD0o0Sl, H0p0  0 $ c Kdh 8< 0 | 000 0S`T000T  0( 0D .]T0  0@00 @,Ѝ BH p(H XP0 `M0008M D D0 08 b 000 C 0S0, 080  )0D0w 8a5 0 00 00VTq KIO-,M` PPsPp +;  @DT0 "D0 0 0 00  00 N,000<0@04 < 8 *J Kd0h0t0x0L0l0t0p0> V $0S 0[/ Q[00S 0[/BPR[ 0P S000 B4  B0Q0Q 0v0 $` c0 0C FR ,0 02@ 0} 00CR R 0 QPZ= $0S 0[/ Q[h0S 0[/BPR[ H P0h0R Kl  B0HQ0QD0l0Si, H0p0  0 $ c Kdh 8 0 | 000 0S`T000T  0( 0d P0  0@00 @,ЍB 8 0 `M000{8M ND D0 0X }e 000 C 0S3, 080  ,0D0z d 0 0X0 00 J G-pMHP2P@ 0`0 002D 00000 I,000<0@0040<080c U $0Ss 0[/ Q[00S 0[/BPR[o 0PS000 Ik4  B0Q0Q 0M) 0 R $R c00C I,05 PM00 0LM @!@1 0x  1  0@00@Ѝ0 `2@ 0 R R00CQP I 0S, 080  0 0(HE$0pG-pMHP2P@ 0`0 002D 00000 I,000<0@0040<080c U $0Ss 0[/ Q[00S 0[/BPR[o 0PS000 Ik4  B0Q0Q 0Mb 0 R $R c00C I,05 PM00 0LM @!@1 0 F1  0@00@Ѝ0 `2@ 0C R R00CQP I 0S, 080  <0 0aH#~h ,G-pMHP2P@ 0`0 002D 00000 I,000<0@0040<080c U $0Ss 0[/ Q[00S 0[/BPR[o 0PS000 Ik4  B0Q0Q 0M 0 R $R c00C I,05 PM00 07LM  @!@1 0 P91  0@00@Ѝ0 `2@ 0| R R00CQP I 0S, 080  u0 0H\LT,G-pMHP12P@ 0`0 002D 00000 I,000<0@0040<080c U $0Ss 0[/ Q[00S 0[/BPR[o 0PS000 Ik4  B0Q0Q 0M 0 R $R c00C I,05 PM00 0pLM C@!@1 0 r1  0@00@Ѝ0 `2@ 0 R R00CQP I 0S, 080  0 06H0@ G-pMHPj2P@ 0`0 002D 00000 I,000<0@0040<080c U $0Ss 0[/ Q[00S 0[/BPR[o 0PS000 Ik4  B0Q0Q 0M 0 R $R c00C I,05 PM00 0LM |@!@1 0 1  0@00@Ѝ0 `2@ 0 R R00CQP I 0S, 080  0 0o H)xG-pMHP2P@ 0`0 002D 00000 I,000<0@0040<080c U $0Ss 0[/ Q[00S 0[/BPR[o 0PS000 Ik4  B0Q0Q 0MF 0 R $R c00C I,05 PM00 0LM @!@1 0 *1  0@00@Ѝ0 `2@ 0' R R00CQP I 0S, 080   0 0EHb0 d\`G-pMHPܿ2P@ 0`0 002D 00000 I,000<0@0040<080c U $0Ss 0[/ Q[00S 0[/BPR[o 0PS000 Ik4  B0Q0Q 0M 0 R $R c00C I,05 PM00 0LM @!@1 0 4c1  0@00@Ѝ0 `2@ 0` R R00CQP I 0S, 080  Y0 0~H@$ H@0G-pMHP2P@ 0`0 002D 00000 I,000<0@0040<080c U $0Ss 0[/ Q[00S 0[/BPR[o 0PS000 Ik4  B0Q0Q 0M 0 R $R c00C I,05 PM00 0TLM '@!@1 0 mV㜾1  0@00@Ѝ0 `2@ 0 R R00CQP I 0S, 080  0 0᷾Hy,l$G-pMHPN2P@ 0`0 002D 00000 I,000<0@0040<080c U $0Ss 0[/ Q[00S 0[/BPR[o 0PS000 Ik4  B0Q0Q 0M 0 R $R c00C I,05 PM00 0LM `@!@1 0 ս1  0@00@Ѝ0 `2@ 0 R R00CQP I 0S, 080  0 0SH㲿 ꤻ| PX G-pMHPᇽ2P@ 0`0 002D 00000 I,000<0@0040<080c U $0Ss 0[/ Q[00S 0[/BPR[o 0PS000 Ik4  B0Q0Q 0M* 0 R $R c00C I,05 PM00 0LM @!@1 0 ߿ȿ1  0@00@Ѝ0 `2@ 0 R R00CQP I 0S, 080  0 0ጿ)HFꈸ4O-M@``pPl#1!SP@00SYژ  ~&6  0 k Th l0 0R00ScUT T T 0  %<5  0 E .Jɼ ЍU#T T,880 SJ 0[/ Q[8P 2`0S0T  U|T T,H[H0 SJ 0[/ Q[HP 2U UT  T,XX0 SJ 0[/ Q[XP m2TP 򘰍  0P00P*+,;P& (P00 А0Q ڨ 09SA2:09S*PQA?,0 SJ 0[/ Q[P *2 "UUT0,PP0 SJG 0[/ Q[PP< 2:0,0 SJ0 0[/ Q[P% 1#, 0 SJ 0[/ Q[ P 1 ,(~(0 SJ 0[/ Q[(P 1,0/00 SJ 0[/ Q[0P 10,@@0 SJ 0[/ Q[@P 1UT,0& SJ 0[/ Q[P 1B`ؼȳP 򘰍< = 0*+,;00000& (000A?,А0 SJ. 0[/ Q[P# M1!00 ᡽>^ ᜽ 8 BO-p-TP(Mͺ#P0 2D` @ 0 0000 J,000<0@0D0H0<0#> Uh $0S  0[/ Q[00S 0[/BPR[ 0PS000 Ji4  B0Q0Q 0_o0 $ cN 0 JS0,00 `2@ 0v 0NS0HSD0HPR\N$1  0@00@ЍH0D0H*P PM00 0׿M ા 0 0A/ټ0 00S, 080  9|ļaT#~괭 x0O-p-LPM2 P @`02D  00000 I,000<0@0<0480< U_ $0Sw 0[/ Q[00S 0[/BPR[q 0PS000 Im4  B0Q0Q 0Qᘿ0 $ c0 0C IR ,0 0 `2@ 0堿 00CR ȋRQP1  0@00@ЍȋPM00 0M  0 0E/' I 0S, 080  p0 0ᕹLW벼P D ĭT O-p-LPM(2 P @`02D  00000 I,000<0@0<0480< U_ $0Sw 0[/ Q[00S 0[/BPR[q 0PS000 Im4  B0Q0Q 0Q̾0 $ c0 0C IR ,0 0 `2@ 0Ծ 00CR ȋRQP㳸1  0@00@ЍȋPM00 0BM  0 0I/[D I 0S, 080  ᤾0 0,ɸL㋺ $ܫO-p-PPM\"P0D@00 `     I, 0 < @ < 48 e U $0Sv 0[/ Q[00S 0[/BPR[s 0PS000 Io4  B0Q0Q 0P 0 R $R c00C I,07 PM00 0国XM nL!L1 0M/㴺᝺1  0@00@Ѝ0 `2@ 0߽ R R00CQP I 0S, 080  ֽ0 0^P㽹 @ O--p$d`4M 0hP匷 P+;  @P`0 ` D0   0    <0 N4X800, 0 < @ *I Jp t H x|0 W8 $0S 0[/ Q[00S 0[/BPR[ 0P S000 B 4  B0Q0Q 0 0  b"A @" 0p Y00L H0H:0= ,0S 0[/ Q[t0S 0[/BPR[ T P0t0R Jx  B0TQ0QP0O 0SL4 T0|0  " a J' 0S0S0S 0S PM0 0$0dM 7 0 0Q/}f0 0 00U 0 0R002㝶h0  0@00@4Ѝ ၼB d t P 0$2@ 0僼0AQ P0 0$0 txp\ p 000 Z/  P!  0 0U/00 N 0S, 080  0P0J S0 0۸0 00u s5됹̸ɸ f dO--P`,T$MP0P P@   0p  0002D 00000 J,000<0@0<0480< Vm $0S 0[/ Q[00S 0[/BPR[ 0PS000 J4  B0Q0Q 0ᠻ0 $ c0 0C JR ,0 0p2@ 0娻 00CR ȋR"QPD20L00L ,2 0R00)y 2  0@00@$Ѝȋ`M000M ۹!1 0-! `000`\\  0H10 i/`! 1 0.ܷ J 0Sn, 080  gq0 0Ŷ 000_P!|ṶV D DԒ@O--XPc$M`0P#PD@ 0p 0 0    J, 0 < @ < 48 l U $0S 0[/ Q[00S 0[/BPR[ 0PS000 J4  B0Q0Q 0iቹ 0 R $R c00C J,0> PM000$M !1 0.=&10P00$ e1  0@00@$Ѝ0p2@ 0a R R00CQP P 0 0. J 0S, 080  Fo0 0͵ 000gX)넶^(dt lO--PPc$M`0P| P@   0p  0002D 00000 J,000<0@0<0480< Uf $0S 0[/ Q[00S 0[/BPR[ 0PS000 J4  B0Q0Q 0jᑸ0 $ c0 0C JR ,0 0p2@ 0噸 00CR ȋRQP10L00) q1  0@00@$ЍȋPM0000M Ӷ$!$1 0/P 0 0/ J 0S, 080  Pq0 0״ 000qP3뎵˴hH ԒЊO--XPc$M`0P#PD@ 0p 0 0    J, 0 < @ < 48 l U $0S 0[/ Q[00S 0[/BPR[ 0PS000 J4  B0Q0Q 0iᛷ 0 R $R c00C J,0> PM0006M  !1 0/O810P00$ w1  0@00@$Ѝ0p2@ 0s R R00CQP P% 0 0/ J 0S, 080  Xo0 0߳ 000yX;떴ӳpp dl ,O--PPc$M`0P P@   0p  0002D 00000 J,000<0@0<0480= Uh $0S  0[/ Q[00S 0[/BPR[ 0PS000 Je4  B0Q0Q 0[ᢶ0 $ c0 0C JR ,0 0p2@ 0媶 00CR RH:H0QP10L00: ば1  0@00@$ЍH:H000M000(M !1 0/'0 00S, 080  00 0 0/]m 000偰PC랳۲xꐆt x ĉT ̂O--`tp4M 0hP P+;  @P`0 ` D0   0    <0 N4X800, 0 < @ *I Jp t H x|0 V8 $0S 0[/ Q[00S 0[/BPR[ 0P S000 B4  B0Q0Q 0 ᖵ0  b"A @"ȋ 0` YH L0#? ,0S 0[/ Q[t0S 0[/BPR[ ᜵T P0t0R Jx  B0TQ0QP0L 0SI4 T0|0  0(, c Jpt 0@ S0S 0S 0S PM0 0$0ߴM ಳ 0 0'.0 0 00. d0  0@00@4Ѝ B ~PH t}, 0$2@ 0 0AY PPñ\  `0 0 -㰱ᙱ00 N 0S4, 080  -0P0m 0 0|  ٰ4q0 00 O--XPc$M`0P奮#PD@ 0p 0 0    J, 0 < @ < 48 l U $0S 0[/ Q[00S 0[/BPR[ 0PS000 J4  B0Q0Q 0iF 0 R $R c00C J,0> PM000M ല!1 0/10P00$ "1  0@00@$Ѝ0p2@ 0 R R00CQP Pа 0 0/㽰ᦰ J 0S, 080  o0 0ኰ 000$XA~}zX xy`O--PPc$M`0P孭 P@   0p  0002D 00000 J,000<0@0<0480< Uf $0S 0[/ Q[00S 0[/BPR[ 0PS000 J4  B0Q0Q 0lN0 $ c0 0C JR ,0 0p2@ 0V 00CR ȋRQP10L00* .1  0@00@$Ѝȋ00M000弲4M (!(1 0I/կ徯00կ 0 0/¯嫯 J 0S, 080   o0 0咯 000,PI冯# PM000M İ!1 0M/ 10P00$ 21  0@00@$Ѝ0p2@ 0. R R00CQP P 0 0/ͮᶮ J 0S, 080  o0 0ᚮ 0004XQᎮ+\u Pyrz< xqyp@-` @Pᡮ 0ᷱ 0Ჱ 0᭱ 0ᨱ 0ᣱ 0ឱ 0ᙱ$ z( 0ᐱ, 0ዱ0 0ᆱ4 0ၱpG-@Q0`  BBTA ክ00P!PCE 0BS: Tp p0Wp!qe!sP U  BM @pAU pDG-PQ0@ ` BU`C R+:U0!010p*Sp @ RYPP 1PPpp ᦭ xCC-M@Pj 0p \4P^p6g`UPf8PpP0 <@P  [P[0P >!0 S [ρ\[ P0 ,!0 S [ρ\[ P0 !UD PUHP R~ 0QZPP 0 0 SSIPu"002 ..0bKP0PEL P&UX0@PC1QI?: 00 0RD0 S H0Stx0 CV0*`Sx` 1S0  U#Dh$@DЍRQʰP&t!00l1 ..0 PPFt⢯tALT0S R P0P0 ~P 000 ..0ά]P 000 ..0ӬἬ0 ᷬvᴬsᱬpᮬmu Щ 000 /0㽩 ᦩ ྩ 000 /0㫩 ᔩ ᐩO ፩L ኩI ,p4fm0h]\eg`]eO-@-PsPpTd+;` <0D $M@ E<@DH4800,0*H \ IL  tx'TP ᚧ0 X 0P0C D 0H:00PL0= ,0S 0[/ Q[x0S 0[/BPR[ၬX 0Px0R|  I Bh0XQ0QT0< 0S94 X00  " a I' 0S0S0S 0S PM000ȫ`M T!T1 0/.ʨ,10琠00 $Ѝ 0`2@ 0 rPʨ 0 0,㷨ᠨ$Ѝ0T0ᗨ 0001/O፨*(HBX]$ `p0 SJ 0[/ Q[pP @" 2 0/UY0-000 SJ 0[/ Q[0P u@8," (2 0/գᾣY YUsQ/0 -702 SJ| 0[/ Q[Pq Eo@รx! t1 0/㥣Ꭳ0`2@4 0ަr0`2@4 0Ԧ0`2@4 0ʦ  0 0/v_+ Y000T0 㲢 BM|G4O,MFpN|LFMKHEMJDDL$ 1Π)&#PアᷠLyO-P-@@OM(|aJl504000Pᠡx>Px1 嗡Z0T $0 1 SP0S! 000C?00Xp\  B& /   QX0\00 0 \0!@X0 厱1,S01@00ᔐ& X00\00\0X0{ZP 0 [x0|0X000000`0000+;00(+*;00 0$ & , RZ00P00S0S0 S  0H 0Lp2@ H01S0 S H0  0LP2@ H0?@,0 @80 0 Lp@ H00 @`H 0 0$ LP@ H o1 $!01 00@u]14H 0R(00 @P 8P ᚟ᘟ ᖟ唟(Oߍ\ P!L1 0/ x   /H*jX J0o᪢1R J""H 0 I 0Lp2@ H0c I 0 0LP2@ H0W (R B@p@pC I>LF 20PHP -@P )8P %vO--P@IM@@`xxp0t1Pd |1P[00!(P(0, 0 H @0 P  4`@p0: 8<< > @ /\P!0` +X1 \`00T14 $ 0 d(h,l0p49/ᩞ᧞ P ᡞ៞Iߍ᚞뺡ᗞᕞ P ᏞO-P-`@M@T6 0 0R0S/0SQ+@ 00R0S"0 RS0pS9 0  00 0 0H 0 ( <0080 04  0,$@ Ѝ Px0@0hD hl0  ÕPe Xg X X 0  00 0 00 C0 `C0J|x00dK0@00 `⒕P 0LT@H0P0 `P00 X00 \0D0  X0  p`@P匕zЍ    hX 0  00 0 0O--Pş嘅 @VM4MH L@0덠P . P  *PƏᄞ@"P@0}{Po5r@QNH 3`R   0 0 PJ V 5  AA 3#SR R#R #R য়$T 4 0/㔟}39dP p3 t3"@33555>+;D05? x3=%|3庢39O ⿍ H $5 ŝ B30<0C`0 @(0 484,$ 0 @ #H3ĝR QP(3 ŜDÜ ῜὜ỜT1SDVލЍ5>D0Ý39P 3 3"@3⿍3559>+;3? %3N$Rs $R_o C   }@ :LXVލЍ ỜP œ@ T F@@T50T050X0$>` C 0 1pMN@@P@ܩC~0 \pמ2<4S00cS *B 47B5<QNὩF~0p dpᷞt$R00cS  \p0Hp0QP0`0T0S<40T0X0S08$X0R\0Q. 50 1@5T0404044p4d S01@5Q>%0P X0404044`0p 0l00t0ԞP t4S<$RTXPX\P ژTQX  Q00S04? D0`<C  C gx"?p`ύdl0p00t  h.N8p#<@DTP%΍p儰t HLڛX[0l0 10|05H2 P( Q 0x6Y xB!` p x!0"00 B|1Ÿ V~0Cx QTp NàQqod\p5\J ^0#  LrpS@b`lߜܜv?| x娚 ӜxМ0S10t R! ͍$l (0000, T |` pਞ\Q0x ō P@ō岛n$011!R$Rl!1S 0C[/ Q[1!1}!P p0 GD G ub?T0Y aV d0燝఍0 0 l0= b`PB@|88M8$8 Hȣ4 400h0|1Y 0 D \2S1C|"d 0 h P,2PS1CL" JP0P p 00K $0?G0?0&>0?00G ፜p0@^/0C ʛp& YT倜l~p0S `0 0 000ōg? T0kٚ뚟"pP[l 2R Lx !(bV` L` 0 0 0H!L1屛|x宛x<` zᥛ ᢛp0S=ڸ20t R " x 00 |00`00$ X |dQ0 ō P@ō冚jo$011!R$R 1S 0C[/ Q[1!1!P3o`  0$IP0 0 h P00T {J> zߛ ۛ 0᪛L @0 BlCl`u ᜛ThDd3\1V T1Ss LpD% -L50%Te` \up`Q[h՘DӘd\YP00t0: 0l0@*=e`ffo☑ᜑH!R500T0M1S 0C[/ Q[1!1!<=!1 ꣙0P @Tz<$0zzggjzzRx4P CzzpzggjzzRʠ0 ``D O 0 h PčC0JP pP 00K $0?G0?0&>0?00GÍ*H ᰙTךl՚YC$4јP ͘P$P\PuJd qn F |`> 0  C Pz x 0 7sp w 9`НQ_[Wژ500SX`0l <Sxp䴝\d嫿h΍Do⿍P0 D`oq3pGp1p h 0`q@ ÍdččҘ3S0 5>D0}1h 0ē@ Í忘P3S0 妙0 hxrh0嘙`0 ᐙS>0 `h[V.x 1#x 偙`~h{t0S10Z/<00,0  (x8$400  KD ߙ`0l 0 <hhDPp| h@* *d'&? x0ᾗ|0  P ᭗  B|x00x 00 Í֖{ hz 0hœ఍ K0h弜 Kh0 ᶜ|0  జ| 0 ᫜ ጙD 0 ᢜ[`0 噘p宖x嬖h$K PW> d\203200(200x0S `0S ̖Pʖ# ÖP<$t4 " \0Q΍  50 02@5d0Q΍  50 02@5岙0l01ྚ庚20 P TEhCDAd偖\T1S La뚙ؘw᪗0S Pk ៗTƘlĘah呗帘 UD岘 ᰘMxᢘ៘P坘ᚘᑘ,P(%႘  Dp@O-MP` P0 1@0HY@Pp 0DSl0 BX|a:0 P !0 1303 @XhN:0S1  ,Q %0 \ 傡1 0ST W T @  10S 0^Ѝ\ 傡1 z@z 1 zP1R0l ` `0 0:.  ؗH ლH  ̗님$t,O-PM@`p a0!`{@ ( R R 0z00 0$0(0,00040% $0 0儚\ @ 00 @\  0/?!  @ 0/00 v 0, 00C@1AS*1P00㪔0  0@00@ЍC,| P,P P P @㥖  O-PM@`px a0!`{@ ( R R 0z00 0$0(0,00040% $0 0\ @ 00 @\  0/?!  @ 0-00 u0, 00C@1AS*1P000  0@00@ЍC, ,P P P @qD h\O-PM@`p a0!`{@ ( R R 0z00 0$0(0,00040% $0 0f\ @ 00 @\  0/?!  @ 0/00o X 0, 00C@1AS*1P00㌓0  0@00@ЍC,^ 2,P m P iP e@㇕4 ,t O-PM@`pZ a0!`{@ ( R R 0z00 0$0(0,00040% $0 0ט\ @ 00 @\  0/?!  @ 0/00 ɕ W0, 00C@1AS*1P000  0@00@ЍC,ϓ ᣕ,P ޕ P ڕP ֕@S8O-PMHp˒a1 ` @(  0R R  0  00 0$0(0,00040% $0 0H\ @ 00 @\  0/?!  @ 0/00Q : 0, 00C@1AS*1P00n0  0@00@ЍC,@ ,P O P KP GHiĕ    O-PM@`p< a0!`{@ ( R R 0z00 0$0(0,00040% $0 0幗\ @ 00 @\  0/?!  @ 0?.00” ᫔ 90, 00C@1AS*1P00ߑ0  0@00@ЍC,ⱒ ᅔ,P P P @ړ5T  x l O-PM@`p孑 a0!`{@ ( R R 0z00 0$0(0,00040% $0 0*\ @ 00 @\  0/?!  @ 0/003  0, 00C@1AS*1P00P0  0@00@ЍC," ,P 1 P -P )@K릔 0 <0O-PMHpa1 ` @(  0R R  0  00 0$0(0,00040& $0 0囖` @ 00 @\  0/?!  @ 0+1 0࣓ ጓ 0, 00C@1AS*1P000  0@00@ЍC,⒑ f,P P P H㻒 L (O-PM@`p厐 a0!`{@ ( R R 0z00 0$0(0,00040& $0 0 ` @ 00 @\  0/?!  @ 0A.1 0 0, 00C@1AS*1P0000  0@00@ЍC, ֒,P  P P @+놓    O-PM@`p a0!`{@ ( R R 0z00 0$0(0,00040% $0 0{\ @ 00 @\  0/?!  @ 0B.00 m 0, 00C@1AS*1P00㡏0  0@00@ЍC,s G,P P ~P z@㜑\h t8O-PMHpoa1 ` @(  0R R  0  00 0$0(0,00040& $0 0` @ 00 @\  0/?!  @ 0B.1 0 ݑ k0, 00C@1AS*1P000  0@00@ЍC, ᷑,P P P H g( D44O-PM@`pߎ a0!`{@ ( R R 0z00 0$0(0,00040& $0 0\` @ 00 @\  0/?!  @ 0C.1 0d M 0, 00C@1AS*1P00ぎ0  0@00@ЍC,S ',P b P ^P Z@|ב PO-PMHpOa1 ` @(  0R R  0  00 0$0(0,00040& $0 0̓` @ 00 @\  0/?!  @ 0-1 0Ԑ ὐ K0, 00C@1AS*1P000  0@00@ЍC,Î ᗐ,P Ґ P ΐP ʐHG O-CM@  0QɑРP #` 1!QS @$L4 0E.nW0@p t0O@wpTRʈD b8$k44  0F.O 80Fo0CP ?o᫲Q 20 00*+,;  R00@000& (000 Q02@040 10:@$    0k 0 F/o?o"2FFo`Foob{00C?o200C?o2 #90S``Vb0 H  00 SB 0[/ Q[P ^V T Cߍ 0(s(0 SB 0[/ Q[(P @ ᠎$0 00 00 0  SB 0[/ Q[ P WS,< ΍l 0@@0  SB 0[/ Q[@P 0 0000000 SB 0[/ Q[0P  B l$L 0880  SBj 0[/ Q[8P_ ] 0X2X0  SBR 0[/ Q[XPG E 0HH0  SB: 0[/ Q[HP/ - 0PsP0  SB" 0[/ Q[PP u 0`z`0  SB 0[/ Q[`P ] 0hh0  SB 0[/ Q[hP E 0pip0  SB 0[/ Q[pP -ꈰ 0  "2  0E.㋎ t 0C0 00x00x0  SB 0[/ Q[xP  Q L IO-p-`@P@M@匏200PUPT@x`1S E"|2 0G.2d0` +;S0  + ; " $ D  0[/ Q[D RRl 0  (00i 0 H 0 4`@0 ^ " 0@ @ +10 0R00 a P ](P YQOЍ ᲌u0|0ސ> 0P < P 8(P 4ግ)Ix|4 O--@M@(`(Q0,P`P$1Po ᙉ7'@2pt 0O@wpTRmg!k1 0F.܊Ŋ70111 H "4@B 02<Q 8pw"xR 肝QÝ@p0@sC,02($ p@4 20.1Swލ Ѝ`0c C⩋儁1  ᄉo  _ yldwލ ЍWSڞ8 $$L KPGʨ7\@ 00\ 1030#Q  Tq T :X10TT:T@ TT: 1Rt X`x00C0Cx\!d!P\tS\xQ0504002S0w 廇|帇嵇岇寇l嬇?p l|0w0(0p lp 0@,D 4  (p0p$ x t<8q1X0DpAউ\!5l!h h犈p  0TP2 Ἀp!0P*P* @]T Q$050l600x600Q05000w``X001 5R000h1"0900Ј0x 00C0分|兆傆|ly?|p l0D0|(0lp =\  P| xHD @0 ,80PH 0Sq0P8`.<00` ,PP(L$`p`P0Z S00C0S  0 0C0SP0S TPH0@ Q0 0C0V:@n0Q 0C0S0rS HL$ 刀 XP 5@ H 00  0 0 L0S {0\00C( ?o t 2x0: :J0P0| X00`0 0T| SS\ , TH0 @N S\P l@Y  `@H X@0S` xP TP ( A   P0  BpX00c00P @0 0<0 S@00)48*\0S0Z Tr0 @00D00@S{0S   0 0C0V:PD0S 0 0C0V: 0|0C0V:nP0pS @0SL @0S00 0@0V*0@0V3#^P  DD0P 00$ P0@00c0 0 0S00BC1Q* 0!R0 $0@L$ 0CL0 00S00 00R^t0S L0 SP0 X  C HT0 0C000`X ЍS00C0V: H0P0C0SP0 S TH0 CP0S00A0V:0p0C0S0q BS H0T0rP0@00@S 0R  B RD 0S00C0V : 0|0C0S`0rS @0S00C0V:@ j00C0V:@0S  D0 00$ 0@00c0 0 0S00BC1Q* 0!R0 $0L$ 0CL0 0T*lPr0 d00h0 0R   DB\\ A V*R A V* R    A V*0@SD@ R B V: @00q 0C0V:l0pS @0@@ R/ N D0C  B V*U: B V *U:00B0V* U :0 B V:@ 0R D @0h 000  D 0d0$ 0c 0 0S 000BC1Q!* 0!R0 $0L$ 0CL0 0x0 S{p  B(01rA0XA0A0"0 J0 L00B$ C100S*L #$ R $00L0 LP0 X00`0HCs00$000L0H0T0hH0T0 O--P0 0M0408#0@< qRI0(A8  (@ $D@`A@@A 3Q  ARZP<<HA`0S 0D0CR00Z0SD 4[@P0<000 D0[ w0P00C ?o 2x0: :J00t|;@0L00X0Z JH |0R$ H < @N00(0R0@p `@ <  X@W L@X  0@ T0 xP0@ p  p` BLl00c00 00 80Q@P $ &0 4%P R/ Tj s0 000@Ya0S!0 BX R D\ LX[\@QLAX PA QXPQ0  J D0J0J J0J 00c0J0Z1 0BC1Q* 0㓡!R1 0@DYD0C 0( 00Rzt0 Sy D0 S3@0L  C zwz@Pj @HjT 0zzz7z8NJ5@ Y `0 D 0K\0嶠K0c0K0K K[~ @VhQ zz7zNJQ zzwz W:zz7zNJ W:zz7zNJT W:zzwz0ZX  AR l0!! 10"R0S0d0} d 0z!Pzt0Pzz­o1 0BC1Q?* 0㓱!R1 0@ 0C@J1 0BC1Q-* 0㓱!R1 0@ 0C@g1 0BC1Q* 0㓱!R1 0@ 0C@A1 A1 Ax1 Y@0p8STzrzwzOLK1 !J0 @00B C100S*@ # R!00@0 D<0 H00P0C>10010@0O-M0 00 t 0."pq0S0P(0@`x,1`@X`0h 0,10pT0n#a@ @@P l QAV*lh@D RPE B V;*0 T0 080Q 6ᴠ h 00  0 0 08 S (1(!ps000C(?o 20: :J0000080l SS\< ` lhd @N S\ሐ @YL  @h @0S P TX $A   P0D B✀00c00P @08 0<x0X S@L0 0`!t,p(y0S 0F T pr0L |0000 S,P `0` A Z: A Y: A \w:Dp\9N L Z1:CH40P(0LH0 \@0@L Y:@PE4H@\@0@L4@H@N@@T :pbAp^\\ N Z* (00@@P L PE Z:`@`Y:`@``V*PE PZ*80 D  D$0 T 0|00c0 080S 0@Sd<0d 0<0R?0 ` p S 08 S0 p  C $hl0 0Cp000 ЍQ}AVP*hlhN R E0 0C0V:@K @D0@^ :PI B@PPUy*hvK @ @@@A@@T: @P@A@@T :pQ@AV*lBK $h @ 0l @ \:0@ 0$000 0L00 S :lpl\LV* 0P@PY+:PD`@PPUP3P#VPU p@0P  0T+r0L |00p0,8 A|00c0 0$80DT S] 0@S 0Q @ Z:@`P@PU:HP@^:DP0S%0L00C 0Z:000C`0`V:0H`( 0N0C\00 ,040\0 P00 4 0B 0 R3*( 0P S000C 0Z:@00C0^:H0``P`F(0 0C0000,(@C40HPA0PC*P,i0@0f0uS0^N0C 0Z:,0@ 0S0C 0 R:P0@T(@(@D @Z:H@@@D@P*,4P:T[r0L \00|00 S$0,D0PAP`( PC p @ Z:P FP U:(P EPP U:D0P6,`CP @ Z-:I `p@(0H0@^:0`F040H0P0@0040N00S :pGlq^PPN Z*(00p@Qn L0$( B ``E `Y:``G `Y:` @0  PK`P`@p `Z*`V:``@ `Z :``E `Y:``G`X*`Y: @ Z : E X: G X* Y: @ Z : PE P R:  G P*(800| 00$0  D 0\0T 0cD0 0S80 0@S ^ Q Pp @ Z:P FP U:(P EPP U* Q P@ Z:FP:(@P:pLsP^^@Vz:e,10BC1Q~* 0!R,1 T0T 0C080$0D S X0  0 0 0CCPKC@ 0@@L@@ T:P@L@@ T*h0p0Cr@\@L V:,10BC1Q0* 0!R,1 T0T 0C080K,1,!0 BAP* 0 R, TT A08A,J,1A,D,1@,>,1 0,1 ,!J0 00BT C100S* #T R,!T000 080P0 000tC,,100,10T0l0O-M X 000\0@<#d<@q R0  D ,` @xPP`P0`4 R @@ @D` P BR PU P BUPUL`< B 0S 0  BR0x P0 0(0Qd 4ᬠ < 00  0 0 x0( S7 1` !ps0t00C(?o 20: :J0d0h00|0(0L SS\ D L<H @N S\d @Y8  |@< h@0S| Pd T@ A   P0$ B⌀h00c00P @0( 0 `0 S800!\X+t0S0Y Xr08 l00p00S0 S 0` @ 0 P E^ PU,PPp@WTppWpPp@WppWpPHQM Lp `A^E,`pV`AL=TpW:ʈpW7p W4ʤp W1PH`Q+h0`,`V T Pʈ PPʤ AP0PEsP0 p `L0^ F`0F0Q# @  @p@A`^p pW@p@FW pWp@@GpWpW @AQ( Hp0P$ 00P P0l00c0 0(0S@10BC1Q* 0!R1 P0xP 0Cx0(00S( 0H 0 0R0 p `S x0( Sd0h  C P P0X" +;2 2\" b024B0 i000rd3* 0T0r 0001X3S  C2(0L2S 0[/BPR[ ,"0PL2RP"  B0,QT@0P =b2S 0[/BPR[i !0P2R"  B0Q">P bP d0S(ߍXc(ߍ01gS00} &c3K"l1 d!0 `ddjdd0T Acd3iD;>+ 0r? .l Ar;h+lhf&"0`2d21g@@ `@\  0!h00 T  ?d(d2TP2024 B\Z|[ZYZ\XpYNLM@N M@ `l0dcd" p" Ph20t2 `T``nPP$Pqq́0qr/0`2d2f-B  0 0 @0ccg\3`3{ {*;+;+000BH 000R0A0G \3`3{ ;{;000A+0+00R0A0/ \3`3{ ;{;000A+0+00R0A0 \3`3{ ;{;000A+0+00R0A1 \3P\ ``3 0 {J;{ C S DJ+!  C S D!0UfsfLt : h:J0?<0 4&T\L000(000^ NH0 QL@ Lx20 0ZH0 0\0L0Z(00(0 00\0A|0T l@t x2Zd px4@ @`pT@|"l2`h 480S:<0 St0SH0L\ T0C02P0 B "2h02(02X3S  C@# T00r0`00d0@ZT* 000zHzzhzzIzTp`(J Bzg"zgzIzCD0L,@pp` z\,0Hzz\hz Lz\Iz D0@U$0  zHzzgzgC@pU`7 z Hzzhz 0zIz d0p D 0Nl0N N0N`00c0Nx0^ t00BC1Sf:t 0!R x0x Ct00j@0DP@o `p,[ P`l QK BLPQ@P4@P R0J 0RP000 s\- @Par000`l 3Rh 0 0 0  0 0E `0S : :Jx0V?D0M/h0t 80<0@Q A4Pᰠ

D,0@P @84PQᰰ0DU(0P4PDP0 ULl PDP\,0q?T40帰\ LL8@ Qᰠ K T(p @8@T@ 0 T,dp @T@\@L( T @AH N c\@!1100 pW :40 S PL08T 0C\7@" T''s0<00D0@YT*1zg TPJzQg Dz~g BP!r@Vzg00 zg@PV@D0 ⸰ L D0LH0 L0L<00c0L`0\ p0BC1S: 0!R `0l` Cl P0d0DA C0\0Ay P0\0P0H0Am00000 J`00Bl C100Q<:` #l Rl00`0 4 Q0 J00B C100Q+: # R000 8 A0 4Uh0 80P0`0Hh0 l00(0;C0`00l00 UC0000P080P040 P080 P0L0([XXP _[0S XY[&X[[[ [ [[X[ZO-M@Ÿ` P8@嘐0\ P  p 0v wL, 0@(0 `X`$x00 0000400*+,;0& (p 0 0 00  0!(  ` hY0@S 0[/BPR[ P00R* ,  B0QP X0SЍXЍ ] X0S X+[ BdO-WMX@S 蠑+;K[ k { 0P C C C CP`~ 0``[`` 0[ؤh0 3@TТЃآbЀءh0x0 #РfЀ((0 0 0 lP0` |px h ЀXT 8  D1S 0[/BPR[8 $!P0D1RL NH! B0$QL>P `W 1S 0[/BPR[ P0 1R> @! B0QF?P >WWߍ(]%]NWLWlZO-P-@@\MH@0 A C۰BD˰][XȀ  h ka ` a ^`{Y0,0  h ka ` a ^`{,00hPP0CS,0pc0P0T0Y\ŸI`  0"2 `0lYUYP+; ,P0*A0 A 0$0004000(PS0,TX(Uw +   7`0401<0280 X*z00狸S,0PC ( () 8 0i: H Ka ! !+o [ @۰L 2X,0 Y0 K%# 40pW\Ѝ< 0k␺H+: +b K++b+ "!+o [  L X ,0[ 0 I%# 40pWXY B-DT!@+00 / /// / / / /////// / /// / / / ///l /l ///p /p /r /r /t /t /v /v ///z /z /| /| /~ /~ /////O-BM⪯00ʠ Q08A@ p0 aB1 Q   Y(Za@\/ BRό Q `@p@X Q@X@L QQ 1O  Ѝ ZQ @  0\S1  LόR  1//@-@\W@-@VWQ/0S/G-@` P V  BWY p00Q0B Q 0C  Q0O-PAM@PkR@N `0 0 AHB!0 /   p ^&\Q^&00  p [ \ B02 ZR00  p^\(0@ 0 G@PX@apFp0 @WpG09 `I F!@VЍ10@ A-@$`D4Pt0 p0 0 qWP mW RU PP dWX X ]WRU PP TWXX MW3P000 EWP AWt1S 0[/BPR[ TP.0Qt1 Bx! B0TQ|=P dT<1S 0[/BPR[ PJ/0Q<1 B@! B0QDR?P BT1S 0[/BPR[ P 0Q1 B! B0Q >P T0S 0[/BPR[o P 0Q0 B  B0Q0P S0S 0[/BPR[P lPx 0Q0 B  B0lQʔ0P ST0S 0[/BPR[1 4P@ 0QT0 BX  B04Q\`0P S0000YXXY/FYNYmYhY0Yx,!4A-Rt0@^?0`@p [?CPS[ Pq/0Q1 B! B0Qy?P iSQ嬁U PP VXX V3P000 VP Vt1S 0[/BPR[ TP.0Qt1 Bx! B0TQ|=P +S<1S 0[/BPR[ PJ/0Q<1 B@! B0QDR?P S1S 0[/BPR[ P 0Q1 B! B0Q >P R0S 0[/BPR[o P 0Q0 B  B0Q0P R0S 0[/BPR[P lPx 0Q0 B  B0lQʔ0P RT0S 0[/BPR[1 4P@ 0QT0 BX  B04Q\`0P R0000{XXmbX_X/F\XNYXmVXhSX0PX4HA-@$`D4Pt0 p0 0 UP U RU PP TX X TRU PP TXX T3P000 TP Tt1S 0[/BPR[ TP.0Qt1 Bx! B0TQ|=P Q<1S 0[/BPR[ PJ/0Q<1 B@! B0QDR?P Q1S 0[/BPR[ P 0Q1 B! B0Q >P Q0S 0[/BPR[r P 0Q0 B  B0Q0P Q0S 0[/BPR[S lPx 0Q0 B  B0lQʔ0P tQT0S 0[/BPR[4 4P@ 0QT0 BX  B04Q\`0P RQ0000LW)SXX -W,F*WK'Wj$Wh!W0WH !4A-Rt0@^?0`@p [?CPS[  Pq/0Q1 B! B0Qy?P PQ嬁U PP SXX S3P000 SP St1S 0[/BPR[ TP.0Qt1 Bx! B0TQ|=P P<1S 0[/BPR[ PJ/0Q<1 B@! B0QDR?P P1S 0[/BPR[ P 0Q1 B! B0Q >P |P0S 0[/BPR[r P 0Q0 B  B0Q0P ZP0S 0[/BPR[S lPx 0Q0 B  B0lQʔ0P 8PT0S 0[/BPR[4 4P@ 0QT0 BX  B04Q\`0P P0000V~QXmUU,FUKUjUhU0U!4A-Rd0@^?0` [?CPS[  Ps/0Q1 B! B0Q{?P OQqU PP uRWqW nR3P000 fRP bR|1S 0[/BPR[ \PZ/0Q|1 B! B0\Qʄb?P OD1S 0[/BPR[ $P.0QD1 BH! B0$QL>P cO 1S 0[/BPR[ P 0Q 1 B! B0QF?P AO0S 0[/BPR[r P 0Q0 B  B0Q0P O0S 0[/BPR[S tP 0Q0 B  B0tQʜ0P N\0S 0[/BPR[4 <PH 0Q\0 B`  B0<Qdh0P N0000T~PWoTVT,TKTjTpT8TA-@,4Pd0 `0 0 aQ P ]QRrU PP TQWrW MQR rU PP DQWrW =Q3P000 5QP 1Q|1S 0[/BPR[ \PZ/0Q|1 B! B0\Qʄb?P TND1S 0[/BPR[ $P.0QD1 BH! B0$QL>P 2N 1S 0[/BPR[ P 0Q 1 B! B0QF?P N0S 0[/BPR[r P 0Q0 B  B0Q0P M0S 0[/BPR[S tP 0Q0 B  B0tQʜ0P M\0S 0[/BPR[4 <PH 0Q\0 B`  B0<Qdh0P M0000SOWWVS,SKSj|SpyS8vS8!4A-Rd0@^?0` [?CPS[ Ps/0Q1 B! B0Q{?P WMQqU PP PWqW P3P000 OP O|1S 0[/BPR[ \PZ/0Q|1 B! B0\Qʄb?P MD1S 0[/BPR[ $P.0QD1 BH! B0$QL>P L 1S 0[/BPR[ P 0Q 1 B! B0QF?P L0S 0[/BPR[o P 0Q0 B  B0Q0P L0S 0[/BPR[P tP 0Q0 B  B0tQʜ0P L\0S 0[/BPR[1 <PH 0Q\0 B`  B0<Qdh0P oL0000iRWoPRVMR/JRNGRmDRpAR8>RhA-@,4Pd0 `0 0 N P NRrU PP NWrW NR rU PP NWrW N3P000 NP N|1S 0[/BPR[ \PZ/0Q|1 B! B0\Qʄb?P KD1S 0[/BPR[ $P.0QD1 BH! B0$QL>P K 1S 0[/BPR[ P 0Q 1 B! B0QF?P K0S 0[/BPR[o P 0Q0 B  B0Q0P K0S 0[/BPR[P tP 0Q0 B  B0tQʜ0P cK\0S 0[/BPR[1 <PH 0Q\0 B`  B0<Qdh0P AK0000;QWWVQ/QNQmQpQ8QHA-`@tTp ,4P0 0 0 M P MRU PP MXX MR U PP MXX M3P000 MP M|1S 0[/BPR[ \PZ/0Q|1 B! B0\Qʄb?P JD1S 0[/BPR[ $P.0QD1 BH! B0$QL>P J 1S 0[/BPR[ P 0Q 1 B! B0QF?P vJ0S 0[/BPR[v P 0Q0 B  B0Q0P TJ0S 0[/BPR[W tP 0Q0 B  B0tQʜ0P 2J\0S 0[/BPR[8 <PH 0Q\0 B`  B0<Qdh0P J0000 PKAKX XVO(OGOfOpO8O<A-`@tTp !4R0^?0 [?CPS[  Ps/0Q1 B! B0Q{?P IQ崁U PP hLXX aL3P000 YLP UL|1S 0[/BPR[ \PZ/0Q|1 B! B0\Qʄb?P xID1S 0[/BPR[ $P.0QD1 BH! B0$QL>P VI 1S 0[/BPR[ P 0Q 1 B! B0QF?P 4I0S 0[/BPR[u P 0Q0 B  B0Q0P I0S 0[/BPR[V tP 0Q0 B  B0tQʜ0P H\0S 0[/BPR[7 <PH 0Q\0 B`  B0<Qdh0P H0000N~JAJX oNVN)NHNgNpN8N\|O--QM (0,0 z : @ Jnz0+S0S| ! h 0PP( (0\v p@O0p0t0MO L"2. 0 JJ0P( 0S0S( (0\= h@/0h0l0MRP `P^   0 bDD20  `JJ(0 : :@[V[}Pګ: l @ 0*J 8 @* @*@<  S(P, ,, `p&# BpP R zzzz ڐZ相z竸aL[ @ 0PpU`   R0* *J㸡`pHG1Z3:V] 0 0R S: 2@Z`0㫺  `⪺J0 v@4hp$X `< P00C2ZpZ0G0  ZG U0 `P`0 C U C U C U C U C U C U C U C U C U C U C UW CP ( ,J( 0X `0!F0  0`D: :JaV2 Ӌ* p "@@D00` d(0 P@˗   l+J |p p  p  Z p J OP@U(0p0(0S0S IЍ08 0D,01S3 S@ [& F  ,00T  00 BCBCSB @D0 @D< AB@$P I 0 λ0 WK L0țH9țZ9J + @۱J J ``{:01<  @H8 D ˢ, Zv*0+ 0XKr;t` ; K> +`0Kˈ ۈ; 0W v@,pZT d 0SZ? 9F 08 `P˃        ۃ ' 0`0` S A S A S A S A S A S A S A S A S A S A S A SX A8`H`0K`嫲 >++8P 8 H8 @0< ,0` 0j* XZ P PP HU0 `M\0  \ PP@U\\ \^  \ @T v[0  @x@ 0x0|0IK2R "0  P]HFH.x@90x0|0,K 0` PU  02P#  0t306HH0 bE P{@XsyPJUUAK@@U(0ES%10P ᑃ# 0 S A A @0 UE# Q  C Q A  A 0㓅(0US ! 10|* S 0! E0E`Sp%10P s# 0 S A A @0 UPEs' U00G UB0  B 00P\> E A B p! 0.C 0  SP R\ 0R~GU pPU0PU G 0j( @ K DF0` FD?0 TFCGH0S zG8GG5G0G4 ?08-*$M 0 0p   $Ѝ,,(0-$M h 0@  $ЍO--4M0 0H0S0S< 1S0SH!P{ @]0 0$0Ih] H\%\5 0( FF 1S0X!R R1 QT @C0 0$0IC H$4 0( FF!R ڴ1 J 0CC1R @B0 0$0IhB ]H\$\4 0( FF 19zoO;8z jz+a `{{*;+ S:1P 0 $F01L 00$0D CġȱPJKbڼ LR1P00p%haN0C`p@@`TPC0S zzzzH ! @ :@1  D0H*: aa{:S[ӈ ``{*R Z \Q 0.1   X0Sh4Ѝ1\v1S0Sr1Svn @ 0 0$0H01,!j0 ( 0010EE , @?0 0$0HPP0`P^   0 io00 ( `EE v@4D, H C4Ѝ0 R QfE0S C F^E[EXEUEO-lM`@p᐀FP $0*b S b8 T0X ` P +;\  `d 0[/ P[0S, 0P\0  00 @S0S\\&90 0$0Gß 0  Z  0s0" 4 020ED`0 $P@  @  =B 00 0 00 $P@ @ F00000 0 00$P@  @FT0S 0[/BPR[I 4 0PT0RX   B04Q\`0P BlЍ0P C^70 0$0hGР 0  \  0 r0  04 l00qDZD<0P040G1GNDA EHDx`C-8p,M`P0 p⨐@ 0s j`(0+ 0Z ``P!; Lτ7N+ ,ЍD`@Po_`PG-`M@p`VEPY $0 b S  b0 HP X L0 T X\ 0[/ P[0Sr, (PT0  02@ 0000)GL0S 0[/BPR[o , 0PL0RP   B0,QTXpP 1A DP $0 b S  b0 L0 HTpP X\ 0[/ P[0S&, T0  02@0 h00FL0S 0[/BPR[ , 0PL0RP   B0,QTP @ DP $0 b S  b0 L0 HTpP X\ 0[/ P[0S, T0  02@0 00FL0S 0[/BPR[ , 0PL0RP   B0,QTP @00S0Sih0S0SX \R e0(0,0Ee D"2 0@ BBh0S0 R RX0 \R K0(0,0E8K D,",2 0@ BBX0 |U  !0 0 3/`Ѝ(P A  A  Af?0(0,0E\qp0p^   0 荀 10 @ BoBl(P0,0E0,0E20,0E< 80/? 00E8EEJB C?CCBC@BBxx<(-Ml Ѝ-Ml ЍO-M1Pሑp 匁! @H0R DB 0B* *JC1T`0 ``COCPq $0*bS b +;T0P 8  X ` ``d`\  0[/ P[0S[, 0\0  I!oR0+0S㨐p@. ,+Ȑ0 p4 (M hD020` l ## "@h 00D0S 0[/BPR[" 0P0R , . B0QP ?BP 0 S  0  BCBPQ0 $0 b S  bp 0   0[/ P[0S, 0  -`4000,Dx 0  \  0/1<  0P (009A"A B !@1 S ;@XȐ P . p"D,+0 4 (   "@@ $4$ @@ID0S 0[/BPR[ 0P0R , . B0QP R>0S 0[/BPR[x l 0P0R   B0lQʔ0P 0>T0S 0[/BPR[- 4 0PT0RX   B04Q\`0P >Ѝ0  ?HB0040 C 0l0C\C Chh0 l0VCHDa `  0$10 }Ϡ \ e@ N@0 CC_ P $*C@} @  0|00 \ 9@"@ @)0 @ =@ Bh @ ===?@A-P~B=@;BP+;0@(0  "D,0oτ8 ` "00p. 0C40+;<0*+,;@0D0X0\0h0l0000000000`hdxF0 J/H!.!!Lbs 000> @1 111H+J;@1L ND1P1T1V+X;x1Z \|11111111 1^/111 2 a d b *Lqτ A{1111Z?!1< @   0@[ς\[[A^Q[ 003/~>@ BЩO-P<@AP+;0@(0  "D,08  "C00`40. 0<0y+;VpD@0*+,;D0CX0\0h0l0000000000`hdx0 !F/!J/H!.L!.!b/!"0 00> @1 111H+J;@1L ND1P1T1V+X;x1Z \|111111111aq2vD 2i 2iI2y 2C2 2$2(2,202420衄채 0 0 0Ёԑ!1d02 2 ?Z/12:!1aq; @ 0  0@[ς\[[A^Q[ 003/=:?B0O-P@ Mp0KA1Z SP ; @bUA @E 0@DXV10A # 3> R?   cS B0P1 0  @A U  K0 BR! -  cP A0R10 AV Y> ЍyY@  ㉑ 0 U0O-` MPp@ A0EC2L SB  6; 0T   0 XV1 DB0#03V00*S * 00 bP A T  E B 0"" 0 aR @V = ЍyY    00   TO-p`: :JP MHA@S S : @0bU0AH @E @DB0 0$A0YV1  # 30 R A0 ,` Ja 00*aS  n0 JN*N A0 \0  U     U          0 0@ 0㓔$U;  H BB0"! \R,0 ^.Jc 00*aS ` 0 JA*A @ 0 R0  X b BX   a B 0L$V )= ЍU5U5AZ]Z @ a  0 U  0 UA0O--1dM! Q4BH@D A JAQ 4QbόL/ qg94 1! R B @Q\""P P*   cP A4 : :Je/PP E@!S U%U%AS7940QQC E @B000 YQ1 0#030S 0 0.aᐖ&@Jd 0 *d @00 lSJ@*@ D0 S0  U     U          0 00S<0d sQpp9 `<@};0GS'!T 0" CS` 0R  <R1*!^ ^ R*0!^1E!<`/o 0 b 6@U @P U<0 <` 0p Q^0 C QTp <40Q41!R4 11U4P1H{J@d=`(@]=PVP U5U5AVd p80F SSFP0  P A00 A B1V `F# V  C VA  A 400S0(0$0 ( J 0`EP,0 B0 <  B @X T 皸 0 0 08 Bjjzd zz:zzzC00\:pCXW9(0 *,0** ^ +0  B!" zzgzv zv ` T`Tz0zgzv zv ` ?[  Pp@0W(0  ,0 Q X 0 \  041Q 0     1D0H S 8 4,0!Q  0  10PSn$0 S @ @P ;$0S0S :<0S :Y : 0S :dЍ$0SXP*0X0\0= B@ `@\  00H" ` 0l20::4 1!B@ T0p 0  0    U 8 2        P0(S `$` LPeT S090Ppq8p8o8n8@$0T0S x:<0S s:Y o: 0S j::%::P _: @C-@TM`i;Ph $0 b S  b 8@ H <0 D HL 0[/ P[0S, PD0  p02@ 00 0<=<0S 0[/BPR[  0P<0R@   B0QDH`P D7 ;P $0 b S  b <0 8D`@ HL 0[/ P[0S>, D0  02@0 F? 0<<0S 0[/BPR[)  0P<0R@   B0QDP 6:P $0 b S  b <0 8D`@ HL 0[/ P[0S, D0  02@0 > 0<<0S 0[/BPR[  0P<0R@   B0QDP 60S0Sx1S0S!@ \R e000;e :"2 0p  981S0P!R Rx!1 0PQ K000;pK :d"d2 0p 881 001 !QS10 03/!1RK t pTЍP 7  7 7W?000;\a`0p`^   0 p 10 p p8s8]P00;~p2:t9P t,:00;00;;);;z5 9J8 9F89C89įص08Q/O-j PjJ00CC1Q)0ASAP0@.@ ^ L00 L B 0Q A^. R00N R B0  B 0 0Q!0UUAPEpE10ISs:Q0 00 S 0! 350GSPcGP0, \ A00 A B 0 W G\% R00E R B0  B 0"Q. E @B @  0 㜻+ C 0   SP 7U @PUPU 7 ` 喡* p <6\jO-  Mp0KA1Z SP 4 @`bXA @H 0@DVU10A # 3> R?   cS B0P!!00@A X  K0 BR! -  cP A0R10 AU a7` ЍyY@ ` ㉑ 0 X0O--!RMtڰ1*A JD  @ࠛRU:T 0R S,PCچ( dR0pP0 H%` .pG`p0@0S zzzz@ 81i ( @  0 Q  0   0( @`TP,[Ѝ P2%T ` `P+ 6T1@Q@ 000s9 Q 0 | 0`` P6o6!kB4A1tTb6!7 v@40إ,@Op@-0M`P p00@80 0s `( 00a` P BCЍp@/D`@Po_`PO-` MPp@ A0EC2L SB  g3 0T   0 XV1 DB0#03V00*S * 00 bP A T  E B 0"" 0 aR @V #6 ЍyY    00   TO-p`: :JP MHA@S S 2 @0bU0AH @E @DB0 0$A0YV1  # 30 R A0 ,` Ja 00*aS  n0 JN*N A0 \0  U     U          0 0@ 0㓔$U;  H BB0"! \R,0 ^.Jc 00*aS ` 0 JA*A @ 0 R0  X b BX   a B 0L$V Z5 ЍU5U5AZ]Z @ a  0 U  0 UA0O-@-P@MhPA * 2*J0CCP" BR 2S 08`Hp `p i 6 pP 9z0@ + ;K[`K[툠匠嘠 ˋ ۝8z a `᫽;{ + @ ` ` `DQ471 S* *JLk `@N"Rh `PPEKU0+$Kh{; p"+h'{h͋d#;h$Kn͛b"[n''K##[ {yI  ; p+  p  Z p J .;s;c+rc % | `{`++++ ++;z++ ڔp`{c{*p w'x!xp`0Q`^1 Z ` P:SLg?(0>,00Vx 0  0 8p0$0002 S)0 S&0 S#01 S$001 SG -DT! @f@Bv@X48t0З$X4lpX: Z0S 0[/BPR[ l 0P0R   B0lPʔ 0P 1Ѝ萊+1 Qᐪa `{{zkz{jz 0zL  P  T 11HQ0L00P0 0L  P  1 0h0l0S6cc! 1 0pp `f3O3^0h0l0560gs4b 82`0 pI323X 0h0l062f"0 0020.33:.0h0l05 p `V  0es0c03`0 p3290h0l05 0p `V  0?# 03022 2"0C ( ,A.6 X0x32u32r32o32l32i31O-S,Mp_1ȁS-X+0CH00!0̱P @ @ `!R R  R!R   !R P@U0Z,Ѝz+!QzSz zZ  `a{{zz>  z $ ! `Q ' `  !@000*5Pa P 0x0 0 `;2$2 g0W0 0022@-@ @`@-@@@Y@- M@p` V?00 P1 `S B11!S19!1R   Ѝ@32P Ѝ Ѝ@3O-P Mp0FAC28 S. . P W GK+   ^ 0 W  F  B  W3T 1  ЍxXP O-@-!R@,M/ 2J 0CCRq" BRDz | Z~ 2S;~+z| p `{: ```P utq. P0!RR 03#嫪 㪪J  020000 N2S8 0 0 ppG ;W0[#;xpK'  + p  p  Z p J  z++ |kk p ``{`0R`^ 0 S,2勯0"S02VEpX 0"S0”~+4" 0\z  X0U 1,ЍP(0003p p `V  03Π4!41  000~ 9P000~3`1s ` 000  p0|02SP000`3pp`2s ` 0X00  pu0^0 v@$pDD̏ ȌdXdP 000/3HH -c P0 0pp `B0+0!  I0DP.000 3 p `V  0/sa1`0 p0/P90002` 0p `V  0.3! 010// 2"0Cc-/0/0U 00/0/0/}0/z0O-@-!R,M 2J 0CCRX" BR+rt  JP?0002$ğ 0p `V  0|c3`0 p/s/v  Z1S;v+rt p `{: ```P uRq, P.!RI 03#嫪 㪪J  020000 N2S/ 0 0 ppGW;0r+  p  p  Z p J  tKK p ``{*`0Q` ^ 0 S 2"$"S$2VEpX 0!S$”v+(" 0\r  X$U /,ЍP&0001a` p`^   0  00 00..1SEP0001`s ` 0l00  p..)  v@8ȆdT؋@P.000_1H p `V  0r`0`0 ph.Q.P900071 0p `V  02! 0<10A.*. 2"0C|P 000 1xx!b 1 0pp ` . .!S  '. -,-.-.-.-.-.U -..-.@-/-PV?`p$M .aa 2$"R p2`H J,20"S @2H  @,20" BBT: 2p$" BBW:$Ѝ@@- M@p` V?00 PK1 `S B11!S1!1R   Ѝ@bD/.P Ѝ Ѝ@:/QR a07ba&`ab`'C``C /Q  /R  /P @M@-$M8@`LPU H0 d0 9.$Ѝ@Ѝ/PZp P$0d  0 0@ 0 000p6----O-p-@`\M0 0&.].P $0*b S b( D0H P @+ ;L PT 0[/ P[0SI, L0  0  . @PP@0DS#(000/l  \  0g0&06  0,,UJdzjFz 0 2E&T1Qjz zgJ VjzUJ0ZTzjZzZjWgjMEJ GjGJ]JAJ>0D0S 0[/BPR[  $ 0PD0RH   B0$QLP0P )0SH \ЍJ4Zw fju `GZv* @  z` `0 U gzEjjZjJJJgjGjJ  +1V TrVt UK0[dk<ezvzthz`ha⾢⾧管aief{a{Z@iKa[> jjjZjJJJ `J ` N 0 U EjezZTGzvZZJ5Z:Ċf:uhzt* cef 2*H \Ѝ @@ [JT+H) 0$0 .zgjU:F p^\ @@X,@N`L@H@V P@ATp U0 " ^^ \ P\X\X\ @@X .^   (B+ (0S )+GC@@|A-0-JMM(`hP E0  `P d ,p@ gD 0`1@0 D)L0@S 0[/BPR[ , P0L0R P  B0,QTX0P l(`PP ,H JލЍN.w(`PP ,+O-P -@WM Mh\ ȟN$ T+,Pt8 $0*bS b "+$; 0& (  0[/ P[0S, 0  +POD $0*bS b 0+2;04 6  0[/ P[0S, 0@00  000CS{000CS. 08 J, P0 @C,PU@00?TUY`PN?H0``W. C SH0V4a010v4aʆ)P 00 BQ0 S1 C001@@68D,!080$01 <00 ,0J?P00x0400X000( o,0`0吋1 `$   S  00S 0 1)0 ,p 100 H 4`@0|px#``11s*1X 4p0x0|0,ğd ` 0 01t40))Kzp0ዱ zjjj7fjw:*jjzv Gz6 bz# @ " 0RFzfz1S 0[/BPR[ 0P1R,   ! B0Q$00P &0S<`p 0 00$00p(00㼫0F| C S0b0juHjv`*CSj{cjwg++hjx+NJ+jw@+] Fj8j{gjx{zwa@{g+000Sv?@aa+Q0v{˛!JJ˛p^00Si |I \0SzjVzfzjVfz *0 z`,* UT[ 0YX$0WU0 @⊁* 0 @킱1ʓ* Zzxj z|JzzjuZgjv`:CSj|jxc*N0 0P h㈵>h㈵7`h|`|z{00 00S0p) UT<0FS1C jj 0. zSz7b7@ `: gjGj+r< L`C zz +bgz⋷zzgz`CV$P0S p , 04`1Lg  00Q1=& S P, 0A1LP001)`GZ8Ɗ>g jFzFz fzƊ-ʴƊ,'N4F$0H0PP o%@!8!d0S T"$%42$,!($%$"$0O-SMP`@- Q0A(S!!Q0"*cS `0P SHId `+  Q 0S  0S00RQ 00 0&Ÿ2Fq 0 " p# #0S0Sh0 R0 R' +00 0&"'"l !""O-p`: :JP MHA@S S  @0bU0AH @E @DB0 0$A0YV1  # 30 R A0 ,` Ja 00*aS  n0 JN*N A 0\ 0  U U    @ 0㓔$U;  H BB0"! \R,0 ^.Jc 00*aS ` 0 JA*A @ 0 R0 X     a BX    aB 0L$V  ЍU5U5AZ]Z @ a  0 U  0 UA0O- MP<  A  I0 0 ,0[0p H |ЍH RL 0D00  4m80  080 <0TP L1 0  @ 80  080 <0ࠟ 0 0 @ }m  @D 0 @D i@P $a^hCXDDC=<= = <<=O-`-@P.MMp{ d_PjύH $0*bS b ^+`;1b d! 0[/ P[0SY , 1   {P w1`S- |!R3 0BS "Q0*cQ `0P RH d$ b  R 0R  0R00œRQ{0( 77ğD 3@0  H  x1S0S {0( 77ßC @  0h30 H  >N{>(01Pn+;P E0*F| xT`X4W;S WH0 H)>D0&>@01S$000L Sp,0`[ 0@\,0aSӈ1s 1@P; U @dPTP@ᐺg;g+Jg @BP 琺ekgKKskgKKrkgKKqk p@@J@gKKsekkgKJKrkgKKqk p @ Uᐪ gK吺@KsekkG{;sJ@fKfke{{;rKgk+rgkd;gKJ@k+qgK;qk s v Uc@BTl<,9:;84:P9 QMPQ `P jgZg;*g+  NP`P`P吪ekgKjKqkgKZKskgKKrk p P` 吪gKjKqekkgK*KskgKKrk pP Q`P jgKZqeKKdgK*;sg;+r p$0pP0@    !L1C p!00:+ ~@P D"| }PG(+;% IP+;`HR F J0 (P@DPTx|LpPr+;\+;퀒 G H `$R_L$2S(2^k  0P_\2S`2^P @0 PC02Sʘ2S4 0 D_^H0ހP\`&<BI@q&{A@UL"0  "ۀۂ2h"0 %#ۃ2\"`0pu'ۇڤX1q  L˸  KJ F  0 M g *` | g :` { g ` z  |"1U 05"  1EM 0哩# 0 g ` | g :` { g ` z  [j _L20 1" M i" 0 g *` | g :` { g ` z  <2h"0 \UÓ%# ڤ1`M 0i# 0 g+b+| g:a{ g ` z   _2"0p\u' iʀPU8< ;.0衄채Pࡄ䱄ءܱ`dX\PTx|pthl吢唲刢匲倢儲娢嬲堢夲嘢圲IJ帢弲尢崲آܲТԲȢ̲ 袄첄ࢄ䲄 > $&=004(, $8<04(,PTHL@Dhl`dX\HL@D8<倣儳x|pt嘣圳吣唳刣匳尣崳娣嬳堣夳 > <0 <>0>>0)=>0>>>0>>0>)=0>>0>*=0*=>0'=0'=>0>>0>>0>>0>+=0+=>0 C>x>0|>>0>>0 <>0>>0> <0>0>>0>>0>-=0-=>0>>0>^5ڄ17^pS-`!  R , 0 "7#  0(:g 0:g  0:g  v1`VpWXG(E!f6af6@PQEVQPPs3, 0C1VPu|c30CCU1$ Sڄ!P<RPpU!<ńpW3 Qˋˋˋ  (0ˁˁˁ3 ,#0C! ,1  0C`LP00S 툛 V#3,0C1V 00 0ßᠣ  0 ` 0 1`30 #(0&#$   8`9 ɋI^HNWI8 p  2B0 0 B#A U!L2 F0 B 0#A !2 Fh 0#A !0BSkڼ F  0#A !pW^1PUK$0C 00SV pԡ PLp``VD ,00g# 00CS`5J3,0C1U$000X@}  0 0110jS ,0 0g# (0% 0S"00 0` V 00pWP v80P0l P80n+Rj $0 Cs300 0 |@'%&($$p$002# 0:0O:0: NI4 1^Y0H N?40@7 4 1( HYJ @H˰` ( 5 `@˰XEc020ۃ+80R2S 0[/BPR[K "0P2RD  " B0Qʼ`0P "|2S 0[/BPR[$ \"0P|2R@  " B0\Q@0(0P D2S 0[/BPR[ $"0PD2RP  H" B0$QL\0P  2S 0[/BPR[ !0P 2RL  " B0QL0(0P 1S 0[/BPR[ !0P1RT  ! B0QX0P 7S 0[/BPR[ 'P07R- B' B0Q~>P r4S 0[/BPR[{ #0P4R$  B0Q A>P P1S 0[/BPR[_ |!0P1RH  ! B0|QH0(0P ,t0S.ݍЍ謣V(J, 먳` W  m[  ଓ尃c&긓UrI 봣P V  TZ pฃsS=C H0nH0W1 -, hЀ 0S0X  0 d0P  !Lc 0  83-^@`E<#?83ID3 Q/H<#,SA80@ D3-;>g 7D c!Lt3p#  2S 0[/BPR[o2PS2 0Cp"R(PP m1P ,pS, -3΍/+;(# @( <;^,Í0+; s$s `0s4sXs\shslsppppppd#\WԠ`&BB  E0:0gzQzE0:Gzz0:Gzz 0z000`\+ 0, 1 0"#   E0:0gzQzE0:Gzz0:Gzz 0`\z000ʀ1pW0Q P 0C J C1 7d+_:0+4|30x\ R  D3   p0 0;x3-^ p`$# )0 _D" ;!@`p # 㬳#@"`EH 0 J$p B+_B!+GG;03(0#S0  R   s"DÍ 0  #  $ 0.0&΍B#Dp P# 8!@_" L#@@; "+fPE00  0!1P!1!1嫪 `"d2媪JX"\2P"T2x"|2p"t2h"l2"2"2"2"2!1!1"2"2"2"2"2"2"2"2"2"2"2" 2"2"2"2# 3#3"2 #$3L\L#3#3 0"42(",2 "$28#<30#43(#,3P#T3H#L3@#D3h#l3`#d3X#\3H"L2@"D28"<2#3x#|3p#t3#3#3#3#3#3#3=`,sHP0.j z QzP B# B"  혛 {k[K+v;xz {k{[kK[+K;sqv;+ ~xz  0P Z & ZJ      )        )     *  *  '  '         @ + +Lx \L |          - -   >HpdH`0.j zQzP .=2# "`S^{S\kSZ[SXKSV;ST+SRSP Sk~R|RzR;+ {[Kzy~B~|BzB`C^{C\kCZ[CXKCV;CT+CRCP C |(3S 0[/BPR[ #0P3R$  # B0Q$0(0P j 3S 0[/BPR[ t#0P3R#  B0tQʜ40P H P P \3S 0[/BPR[j <#0P\3R,  `# B0<Q,0d(0P  $3S 0[/BPR[@ #0P$3R0  (# B0Q,<0P ;S 1S 0[/BPR[~ !0P1RT  ! B0QX0P 7S 0[/BPR[X 'P07R- B' B0Q~>P 4S 0[/BPR[3 #0P4R$  B0Q A>P 1S 0[/BPR[  |!0P1RH  ! B0|QH0(0P k t0S> dh ;`G \d^ .ݍЍ1H0  =,0?80H0C0|12 S2S0S2Sd2 SX2S0Sh2S,2\ 2S0S02Sꟍ*03 30TP `P\  0_?# P  030 y 0TLL0C$P@0CD([H0C 0Y0S0S0S0b0 j8 @p  &ŸḂ}   020 \ 5  3#Ý1)/P  ,Ÿ(b} `  020 \ p  |3pÝ! H0C_\(YTV} x P  _P&Dp n Pl L0Ci Tg (e c H0C` t0S dB { X P P 8N 0L   ( ( 1  +    0  ( p@-j jJ@@V  Q P 00\ P @TpPP p A@pP0 O-,,@P` @pE$pG %0 `0 0 :WpG0F 0 V00 0S BBSS^ BB 0S V!  V 0V ! pG @w PpP/0 E"D#88S //$0$ 0@-@000 4p 000 0@-@000 4 p $0$ 0@-@000u  000 0@-@000h   O-M M`0@+0 0 ,H  0 p%%c 0G W00+ 0 D S^@D K@! 0W$ W! W! 0W!0+ 1$ $H Px @  0*c bQ` BU ۍ ЍXHMC-`-@ M01 0W 0 SUu      R 0DD#88SG HC/ 0 W ЍCЍ/( 0  p U W ڸP@qP0 @T Wxq  0  PW 009 8AT8L8876 0-00S^ !R0S 0 0p@-S@ [/BPR[ 00pPU $P P G-B⨏ȀQ+P Xq P@qLAaVXa @Y  L\/ QS QUBQ QA 0YA B/\ !  A0A@S/RA-@`7 P0A`FC1 ?0 P\@P p0^ R0C 3RS    pP\#  0G@SVCQ`E`q0 uV`F08 PH E!jU! O-KM`\E :@P >  (880* SPQOMKpIGE 0p  0 0G4Pp0p㌤0 ( P!`40PX 0, 0p,@  $0oP ?Kߍ30 p 0  ) Ȁ W또X`   0& (X Ġ\H 8pp 0  s0 0jQ0AS!!Q0"*cS ` P RH d$ b;  Q  Q   Q  Œ @0 @00 $% (000( p 00 r X. AJ P01<#(0V(0 p( 08,p 4p 0P:  v -00$(G&P80p00 (x Bp20UL2\21t// 0  $0 0A w sG 0 `   0 E0 8  % @-PPMC @T 0 E"D#88S0S 00P 0 D"D#88S9 00P 01Ѝ`00 0 ^{  0 0 p0W+`\0 P 0P P|y, %P, ,$O-@M"p T( PaP 00S S `{ ( OPp 00S Su `{:' =B4E8P  R` Rl `{j[;V ;X0`' " KP 0CD#((Rd 000040B Ɵ娯  060  W@ 0 QP A XY1#3Rࠓ^{ i4"T \n  \ti  \n  \n  \n " l$ &  Qጡ倠Ⱐ QᎡ倠 ڌఠ Q倐 !, ŀ  C  # BD0#88S CDS  V8Ѝ$  P 0 D"D#88S 000040ğ儔彯  0 0  1D40V 0zP0HS(1Q S `( K[SHd`" K[SHd` K[SHd` K[SHd` K"[SHd` $K&[S(d` Q@(+*;(b``0X `k  X` ڰ0!S  `100`"p P}  q[[ X ڠ`∁ 0 `X01Ѝ\" B4E8P `0" P B4E8[;;aa0S. 0S   (;E2D`0 R 0[ `;E2D`0w0S0S0S P000X `$,  0 ` .0 Y0a ?00  0pL,  P`]`0G]ZW`3l*0*)*"*L'((l l'4%h$h$x$#O-@-`P[M40$0WP $0*b S bx 0 +; " 0[/ P[0SI, p000  P $0*b S b 0 *+,; . 0 0[/ P[0S#, 000  0P P  DD 00<+>;HJ+L;L8008x0| U 0 0@ J (PN <|=>w80S $YFo mkO- -`60LM 0S pW R Q ,0<|=DTd8 T ( `$ , R Q0ASP!00P*c) @0P c)b$ P0P c)b `0P c)b p0P c)b 0P c)b 0P c)b 0P c)b 00 lP)b QPH)d `; \  Q Q!ǒ:g ہ AQPPQ/Tڬᰡ0 ($0S 0S00B P z@z 犴zw 9 T , R

!0@@˰@  J *0.L,o* 0S X, d   @-`PM 0 E"D#88S! @00 0dPs{ P 0d0 4 0pv_ЍP ЍS | @-`P-@,M 0 E"D#88S5 @0 00)xxQ}{ P 0T1 @ 0p;$PU 0 D"D#88S 0H  0,ЍPU @'P @0   z P0S!P P0S,Ѝ  @-`P-@LM 0 E"D#88S@ (P0(0,0XŸXB{ @ 042 P 0p@T 0 D"D#88S P0 k   0^+;H LЍ@T(PP% (`000,, zP q Q 0!P0 2P0 S 0.+ !^zȋP (P00,, zPzgz0 S!P P0 SLЍ0/<@O-`PMP   0 E"D#88Sz `p0`0d0ğD̋ @ 04 ` 0`V@ 0 D"D#88S_ D`0   00( 80 000T/ T= 10 \`T400<8 6*&&U 1ApS@ 7 $T)` 0S {z0S {zЍU#001S#0!0P`pU E1S  CDPf D0p`@`PPH@L H0S1#0Q \ 0P p L R P 4P1 R^`A, X (S# ౐ TU13 SG 0CA ^Z U rU mL 0 ""1Ap@P7j$TX@ 7b$UPSN A C 0Z SC0S? 0S:PEA0^  S /0S+ 0S& O-`P -pQM 0 /O0EDS  @000(ȟ(XB P 0 x 0P07Q0Q 0 D"D#88SG P 0 D"D#88Sxl'l7E 0x Q 0 D"D#88S- @`P 0PPPP 0 0 0$`1@4@ 000 @I Qߍ P 0 D"D#88S@/P+U 0<[0&S<0(6 x 0H1U q<5P 0``ppx001 R" 0#00040뜕  \  0 X  0  0PWaP@ 0< <0R=0IYS`8Y YQ Yq Y4 0$>04 x 00p0SL 0 D"D#88S+ DQW PP 0DD@  RXYYv00P2 諟I40  40ȊPzH K `xY 8 aΈ 9\080 080S \ A\>0SY 90P# 0J0  XȊ9P  @ J :40\4PeP 040 zP 0r 4080`@I00 HKK˰P'40  40Ȋ<Pz  \080 080S \ 8\50SP 0@080@4  4zP 8 \  0 P P0Sh8+L la  ) \l80P] 40~0 < Pll8 @0 2D$ 0004 0 4@$50Po6 0  {P z犴Ȋ 9 940\4P@ ۱/JL( 0 H  J 0 J@ Z00a ay@ J *bP 0J 0-*4$>O-`Q-@0M0PB S 0 E"D#88S4 00040ş&u p 05 00 P '0BS/"1Q S `' K[SHd`! K[SHd` K[SHd` K[SHd` K"[SHd` $K&[SHd` (K*[(d``0 `R; \0 ڰ \0!  0T2 `FP@  PZ@ 00 0S(p (01,0a  00x30  u^0 !R 010(#`F$3,  0 0 $ 00! SP  R92@0zP@THz+01犴(p'0(0,0x  \  0O 0  0 1Q10 0;;0Ѝ(p (0IM,0  00l10 $ @ 0;0Ѝ0P !#=00  00T01S0 0@0010I\YVSP | l\O- PM`P@p8GUj "s0B4XE8;T0010. T& 0/[ 0LA @` 01  0 aP^ GW   Ѝ @ 0Cs$00 0  \  0;  0 00# UP P匐  0p0  0  w T 8@8O-@RMP @n圠   0x00 ~gd#a ^<G-`QBM@ TP 0 /O0EDS p000+ğ  0 0尀04ḁ09"P 0 D"D#88S Up P0 D"D0#880C?o2 S 0 0 P  \ +U WR0GSK'1S+;(`"+$;. S+;(`&+(;' S+;(`*+,; S+;(`.+0; S+;(`2+4; S+;(`6+8; S+;(`:+<; +;`> @0S BP Bύ0S B1   Bߍ yPH UL QB0S? 0DD RR a pfp"``_QP P\  0<! 0 10lU9PLW) 0RF  0\>0SD0DD R p.p(0v p)   (08@HPX`hpx8,\- M00 ЍO-RP-p$M 0SH4D$0O0 0 0CDpP`Cp0S ED RO @000ß.  03 0 00S   R= @+000Hß  Z  01 3 0 ~ 0R& P0S Q P R   R0S 010S   R0S  0Rp@0a 0 V0A  0`@PE 0 H u$Ѝ@000llQ&n P  0D10  `# 0S'@000P)n P  000 `0S0[0  x$Ѝ(8L  4PG- -Pp@CMM@U 0 /O0EDS| 001ŸIb `  020  P0 @P@$P(PY00S0S#P$,0P04 zzP zza +{{zP  PCލЍ`#P P;tQP pP\  0S>0! 0 10F/WQ~  \zPXv 0  Rr\n001F` `崠 0x0 0 ⴡE48TpL O-7MM8p @0`(X P$P# '}8099|0 \  0I@(@8  0=P t0S7ݍЍTP PP& $0*bS b *Ixp!-t1 |! 0[/ P[0S, |1   yx'}P!0`R  \P(>($ *` R ` +C;! 1 [ς\[ R, b?01  b? 08\ U+@$@``}%5 PLT,  H  T! D0R<@Dp(00XA80 x F|@0BxS"Q0*cS `P QH d$ b;  R R  R  ŒK S: $xT5S 0R TP@xQ Q Ž*a\ `P \H d$ b @ QP A @ PP\Qj  AjS*7-!zz 1ψp0zzggz:SMS00 X0PJ0@xSw !Q0"*cR `0P SH d$ b+  P 0S  0P00œK R%: x(000,0$00  t0S 7ݍЍ X0PX1\!K R*x=+00P1! \`` PL4p`p`P\0@07 0!7S SS!0 S  7@\! 7@\! 70\!07-1, ,N~4p \ 00*c bS` B H7ݍЍTD 0T1FC01CWp  Pp` 0 ,p*(&$" $$  0  0X0(0o`100P`$10 00pJ8,00 0 Cl0 D P $?  0( I Ġ0'} 0  _ 0  T$Q*0A@S?!!Q0"*cS ` P RH `$ `;  Q  Q   Q  Œ  1 =00  0`0 h0 `0p B ,0]Yl ,5 Pu v1# 0` J( ̠((`,h(0 0C@( 0  0  00    0 0 Z,0 p  Xx % $ X\\1aB0:= !L@>!1 @ (000,0$00  e 0A@P_0  000H`b\0WPUP10(0p`x(1,! 0 1@ ĩ9 &$$" 0 \$ t0S 5nK ~ ; 9(000D,0$00? N@-M(P@p 0@@``@ @0 P@ 0`2L 00S 0[/BPR[8 d P00R ڈ  B0dQʌ0P L0S 0[/BPR[ , P0L0R P  B0,QTX0P Ѝp@-`@T 0@eUPU @pA-p@`-T; T6 08T- PP8@H$0S 0[/BPR[V  0$PR㏊( 0 BP0Q,00P Q0T 0S<08D0p0PM0PFp$0S 0[/BPR[  0$pR㏊(0 0Cp Q,00P 8@DT8@DTA-P-T% P`$0S 0[/BPR[!  0$`R㏊(0 0C` Q,00P 8@WpW 8@WG-@Q0`  BBTA 00P!PCE 0BS: Tp p0Wp!qt!P U  B\ @pAU @O-M`LP$ pD@0HCAR-:[0 V'@P@D X+;a, (0  *c {a 000KSG*   R0P VKЍ%S [Yo V0IP``zz*jz000 S<XN,( Q  R RU 1 zz jz000 S<  RP 0R0b bS 0 1 CQ0S 0 S  0 R 0 S PU QB@Z@Hs< t0040 C/0`ItF,0G-@Q0`  BTA 00P"PCő 0BS: Tp p0Wp!qj!xP U  BR @pAU <O-DMR`0h0 0At ?o倀20S4 8 80P <0ʟJ @ 00:0 I/P 2x D8Dx( ah@ @AHT 0 3<00Q:|0| ,0 BAPB:h0S*00p 9I/$ 0)I? (0 0S AT.V\010TA 808P10T  @DV8P  080<0i嘐 0$   i 80%%(0 Q 88080 <0H뼘 0  \  0(8 I/0 T =0 100x $0|0 0A燡p00h R `0P/ 0 R 0B(S"Q0*cQ `P RHId `; A R R @ RőSR0Sp0S 40Sh0SBvl0䖟ppP0C4 0I600 0`V 0+ @T' 1@0zzzJ8080 <0Ѱ  0 0    Th0PSDЍ0 R700 Q2V80 P@AT$ 08E Ꮠ80@<0otş  0 I/0 0850 @j8080 <0P%5 0PP( h QVPP 00p0SZ00S0 ,0C00@1Q:h0Sڄ0@lP h00 @BQ: ` BDЍ1R| 0h0Sh0P 00!Px0 N0 SR 0(0 Q 8| p#00h3 I/0 00|S,h0PL@0S70x0 0L"D(D000123v0S 0 ,0C00@1Qq*!P0 h0Sp0@prp`Cpl0IPC p儀hp0S zzz#J8(080 <0  \  00   0zz 0 *2@Wq+; c; DЍ@|Dx84 (!00 1 I/0n W!P0 A"0 RH001SV BA 0@@P8 4 p?`p`L|Զ0dDij,Ŀlȸȷ0p0h      O-yMMPϟ $<8( GgwW ;P!Fύ@ $0*bS b :+<; 1> @! 0[/ P[0S, 0L01  V00Y0S9.3 3(Ο$屵  0> 0N/  P9  $0 b S  b/3 Í#弣 0[/ P[0SZ, 3  3堳S 0[/BPR[ #0P3R  # B0Qʼ P 00 00PJ΍0 $0*bS b H+J;H@!.D1L NL!PT 0[/ P[0S, L1  0!΍40 RD1h!b/ `P8S!l00X1 00  !!^0@PS80А D C000 E0 I- R0BS "Q0*cS `0P SH d$ b  R 0R  0R00œQR7IHPE@D080CP p( @$`L0zW4p040 \d \[ @L@)<9 0N/|e 000  H0Í2@3P P P |1S 0[/BPR[ \!0P|1R<  ! B0\Q<0(0P D1S 0[/BPR[s $!0PD1R0  H! B0$QL>P 1S 0[/BPR[V 0P 1R@  ! B0Q@0(0P d0SyލЍ0S0S@  &6  0N/ .0@00  L0> 009>  0><000CH00\1긠򨐝4P@N7 ÍPPDRD$ @ H NSPphQu0G(0V@S V V W P0 F, C0" X !1T0$0 $S4 f P0S+$0CV 000P 0S V'0 !r% 000ptqw0V V PV(,0S  0 cCb` C[4TX0 V ڃ V ڂ0Vڃ!  !(0$0CD s(0$ $0SP^p\V^0 q\  000 Č |0V  000p^\ 0H 00 Í0 2@3|8NyލЍ0(@0C0L0W 2 P0$`C,`$P 4 Yt Z0I P  pV P0p40(0$ 0C(0s,0pD0`T V, B\ ,!p gCh` BQ 0 V qV0!V !!ǃ !Vo, BX (! ‚ bC` R` A0 VWV P0!V !!ǃ !E80\hx$PV@1 匐0D 儡X01(0h1$0 ) 1W V0IP0& V V Y  FD0(0CT 0d,0"1h0)>\01l01p01>`0(0SD0/ S<(0C000,0[3 0S$V T B^ .! ‚`p*a` B R0 VڂV 0V!!!!!!,0[V^T0S 0Jdh$ cQp` D20QbD p*c` C) 0Qbd p*c` C 00Qb p*c` C @0Qb p*c` C P0Qb p*c` C `0bp*c` Cp0ld0 0V! ڃ V ڂ0Vڃ! !!P0(0CX P0s,0(0,0OZ  0 ,!10s   Z00$1U 03PPV@1 匐0P 儡\01(0h1,0  !W V0ID0 Vd V Y  FP0(0CT 0d$0"1h0>X01l01p0!>`0(0SP0 S<(0C000$0[3 0S,V T B^ .! ‚``*a` B\0 VڂV0V! !!ǁ !$0[V^T0S 0Jdh$ c`Q` D20QbD `*c` C) 0Qbd `*c` C 00Qb `*c` C @0Qb `*c` C P0Qb `*c` C `0b`*c` Cp0ld0 0V ڃ V ڂ0Vڃ! !D0(0C\ D0s$0(0$0O0+ `,0W6 PX冀0AAA\Pp`@4 #! 00d0(T01P0$0 PU( W E0S 0y1\40,0K{D0P\P`@ 0Dy 0r ^[VE Z$0X@y @ T!y 0 !T0$P@W0y.W1$ $@G.0HaL : 0FZud00yN 0!D@DyNS SP!D@DP0@7S V /Y0I\0 0F( D40 ,  #1` ).d01>P T00h0$0l00p0D0S(y000,0\r (0S 0S$V 4 BQH!!Jb^hp` B; p^h@p*g` G2 p^h`p*g` G) 0p^h􀀀p*g` G @p^hp*g` G Pp^hp*g` G ^`hp*n` N p `p*b` B0 VڂV0V!!!!!!,0\V^40Sh0cd0p*dS` D4lSD app*a` A* Sb 0d p*c` C 00Qb p*c` C @0Qb p*c` C P0Qb p*c` C `0bp*c` C`0 VڂV ځ!0V !!ڃ! !!\0(0CX \0s,0(0,0V 0D$CP0CT0C0 pz WzzW 0pV!$ 0 7S V Y0I`0 0F( PD0 4  #1d .h0!>T X00l0$0p00t0P0S(y00040\r (0S 0S,V D BQH!!Jb^h`` B; p^h@`*g` G2 p^h``*g` G) 0p^h􀀀`*g` G @p^h`*g` G Pp^h`*g` G `p^h`*g` G p ``*b` B0 VڂV0V! !!ǁ !40\V]D0Stl0hcQ`*d` D3p0QD ct0`*c` C) 0Qbd `*c` C 00Qb `*c` C @0Qb `*c` C P0Qb `*c` C `0b`*c` Cd0 VڂV ځ!0V !ڃ! !`0(0C\ `0s40(0400 004Y2`+T0 ;  KS[퐢唒k\P {`,4 QD0aApC| !h x !l t0 1p0(0p(0SD0 SM(0 4, Cd0S4 zjz ce{Ǜ{h  0C0S0ACSH S Q1*zg {a  CSKT X*` \!$000Rd,0| 0x ,040040t0P0, h0CsP0 40, l 040p0( X0 p( (4YaK0 [ k{p @P0ႰPC$, ,X 4 T0(0PZP0N S4 J (p0S$ e+0ᐺ:+ bg++{;{zb + 0C0SK0C0S0G[S1*$p17#R X0(pT0pD0, 0CD0s40p\0PVq 0D,CT0CX0C0 p$尀ᐊ$gz WzzW0pV V\0D4C`0$pC0ꃡ0V . +z  {  C S JYVX0D4pC`0,C0ꃡ0V. +  * {  C S JY,S (VT\0D4 C`0$pCꂡ V .D +z  { 0C0S0JYV1 )T0C^ .1 ƒ`p*a` C S 0VڃV   V111111D0 S$000v$qS(VUX0D4 C`0,pCꂡ V.E +0 : { 0C0S0JYV1 )T0C^ .1 ƒ``*a` C\ 0VڃV  V1011ǁ01P0 SW,000,0WpT0 0`X00\00,0040V P0Ch d $ `0$0 S> P0S$$0 4, C0S 0<1  00s R,0h 0d ,040040`0(0, T0Cs(0 40, X 040\0$ D0 $ $0SP[4 ,l0 <,1! 0 z 00 0[lS ူ4,$0(pd0zjz ce{*Ǜ{h  0C0S0B C S N S R1*zg {za  CSGTp^*`p\p'"d 000[pw00@dSdP $P( `p尰e+0  :+ bg++{;{zb + 0C0SK0C0S0G[S1115#0727YX0(`pT0dPp0 ! 0 # 40Y+p;f D(0q$P`Cv# Z@0 R zc {Za   C S E RQ7P2Q7SKX0{`8Z z c {Ja  0C0S0D SA7@2A7Z@(8 0.s 4Y0 Kbr[kP{ D 1,0@A0$ $4T0(0\@ZD0@ S1 J (P0S! zjz eg++{;{Zb + 0C0SK0C0S0E[S1*$P15#R \0(PT0PP0, 0CP0s40PX0@Sd@ $@( `Pz j z eg++{;{Zb + 0C0SK0C0S0E[S1114#0727Y\0(`PT0d@P4Y1`+T0 ;  KR[퐡唑kXP {`$4T PP0`@pC| h x l t00p0(0p(0SP0h SQ(0 4$ Cd0S8 c0: he{Ǜ{h  0C0S0ACSH S Q1*g {a  CSKT X*` X!,000Rd$0| 0x $040040t0D0$ h0CsD0 40$ l 040p0( \0 p( S ူ4,0pd0 c0*: he{*Ǜ{h  0C0S0B C S N S R1*g {za  CSGTp^*`pXp'"d 000[p40Y+p; P(0p,D`Cv$ Z @0 R c* {Za   C S E RQ7P2Q7TK\0{`PZ 0c : {Ja  0C0S0D SA7@2A7Z@!1 0Q/# P P PH0L0S 8/P da ^ Xԇ{܂0s8{O--@ MMPPE#7(P@80XP  0P $00B, 0 60&@&`lHqpx(0 6$  A &0@`,@D0G D! 0< CYP00T00S D1Z V  3 H0 1 1``0p`\  06!` W/0 10$0, TS@@  0SV ?R0QR&1ڐ#!R+;(`"+$;. R+;(`&+(;' R+;(`*+,; R+;(`.+0; R+;(`2+4; R+;(`6+8; R+;(`:+<; +;`> @ R  \@8F   S0086 !8 P0+; +C;(  ( , $!80P[E@ [O`㮋p80 F$ [T $0S 0[/BPR[# 0P$pS L(0 0Cp Q e0,p t0 P D  L" 0,(0T0|S 00  4 PPߊpptp  `[A0 S4(0  Q680 <000ATf Ta 08`TX PP8@F$0S 0[/BPR[  0$PR㏊( 0 B/P0Q) (08@HPX`hpxBohv4p4iv,00P !1S `1S<08D0 1P[NP8@D$0S 0[/BPR[K 0$PS(0 0CP Q,00P TL0SݍЍTL0S @ݍЍt0S 0[/BPR[% T0P|Stp x0 0Cp TQʀ0P!`A[!x0 ,(00|  x4I2@[ 8 [80@0JP __0 L| A*A0 80   CA "PB?0^B1 1  0 W/DD01P30A ACf @p W/@ 030q`Sr !(0P $  6 A ,0e 0S(0 P (0 $ 08 0 0 60 &@&`(  $,  B X@DQ Q`GQz@zIzzgzX  P 0 1@1B? !4 }@e0`WPP }T L0S @L0S @,)#0@]8@D[tCO-M\`3\$( LCX800P#H 0p0R0 0 "  -  R0B(S"Q0*cS `0P SH d$ b  R 0R  0R00œQRH3T( 00 $P@xh Z$0$0 \U \ (&*n$6 0Z/80Se P xP hP ߍ*nHH30S| Yy 5P|%00 Z?LC,@zPgz:0 U? "R"~ "s$"K 040  dM"0 QR| 0S0Sx *nZ$~4 0Z/G0f*nHH30S PU 8@4 Zz@zzT 2S"~ 2$2  030  2xpP $*n!hP 픐 ,   T3Hύ+;-΍ PToZ`{ D0(0040+1$200Y=Xr 0SoT 1TK  QT D Q  B" lCn` AQ 0!T ! T  0T!ǃ ! 0ZT([[0 0 cCb` CQ40 TڂT  ځ0!T !ڃ! !$00S$0,0`V T 0q0 q0T 0 (H0000m,0LC 0 BDdkchlLj$pbi8b kiZNUZXNUx`ZhP!1PTp04@0H30(0_ Wa 0D ,0#1D ; SF+_E;_(`@+B; SI+_H;_(`D+F; SL+_K;_(`H+J; SO+_N;_(`L+N; Q+_P;_`P R0Z . Q!0Z  1!!1d 0e/pb0SN$0Sx @P0 2DD @00-4&KD0AS   R000( p$p0 0P WR /D 0RX09 pW6P ePQ QC  0ȊPPW X0S 00x  030  yX0D 0<00 00``0G ZD0yQ EO-P-@MM 0 W $0  0 E"D#88S @000 ş e ` 04 0i/  U  0 RS&+000d` `\  0P$P4 i/`0 `PH 7 \`D00   Up@00  0`S0SW` (00C0Q,0 0C0R @Hh0(0,04h a(#>0 3 i/0 0H0P 00P<0[0@0X`@0$ CH $ $ 0!@T%# P U@ލЍ@H$0(0,0ERP P \  0=! 0i/10R;000"nQ P  0t10 i/`3DH 0~U0S@ U* ! 1 0i/ 0 0i/TL(>@E$LL=D0K<LCI:A4It:A,H9AG9@O-P-@ϟp @CMxMphd<P $0*b S b 0 0+2; 4 6 0[/ P[0S, 0  İ00[0 0$ (  [3^00343`Ο|?  0 -00<>0pY( 0`  ` G`P`4 $0*b S b,1 !J/>+@;$!B D(, 0[/ P[0SN, 080$1  0d `000h0080V `0 0 \7 \ ,N< 0-0Í4Í 1S 0[/BPR[ 0P1R !B D B0Q$J?P TP P P 0S 0[/BPR[ 0P0R 4 6 B0Q0P &t0S CލЍ 0 `80o0 0S  R 0 [R 3^$<CލЍp@! d4   ȋ4Íh$ ``(bD , 0cl H43S [/BPR[ 4cV $P P [`J [ [ Zk K .1D2!4@ 00(0S,0,0[0 !r 00 0PTQu0[ z'zhgz:Ss0S000,0Q[(^;  0 c0Cb` CQ4@D0 [ ڃ [ ڂ0[ڃ!  !I$0y`V  RG [6 KR+Q *bR `0P SH d$)b+ [1 0[[ 0œ[R 000Z$ 0@ (Qښ!'H1# p,0(0 p0< 1 0s0 0z'zhgz:Ss0S000W  0Iy,0@$0[ R NR " €P eCj` @\ 0![ !; Q[40[ !ǃ !)  0$000ꐀ[@ȋ1h l q0$ 쐝(0 1000,0 # +V [0J@0 [Z [ Z 0K( D0L #1P0H0T01X01\0$0`0$0S0040[d4DS  PCo , 0(P(Ppz(PzQ0p[!" pz * {Z CSEW[ zzdD BQH!!PJb\ep` B; \e@Pp*n` N2 \e`Pp*n` N) 0\ePp*n` N @\ePp*n` N P\ePp*n` N \`ep*l` L p `p*b` B0 [ڂ[  0[!!!!!!40$ 040R^[^D0SN T0PcQp*d` D3` 0QbD p*c` C) 0Qbd p*c` C 00Qb p*c` C @0Qb p*c` C P0Qb p*c` C `0bp*c` C\0XL0 0[! ڃ [ ڂ0[ڃ! !!@00 0CHs@0 0 080HFh7l>5<[@ȋ1h l q04 쐝(0 1D00$0 { wV [0H00 [ [ X  K40(@ "!P 0D L H0c, D0!0X T0!$0\ `040S,0D [d4DS KPCko $0(@zpzzA0p[! p  *+ {J  C S DW(@[ d@ BQH!!PJb\e`` B; \e@P`*n` N2 \e`P`*n` N) 0\eP`*n` N @\eP`*n` N P\eP`*n` N `\e`*n` N p ``*b` B0 [ڂ[ 0[! !!ǁ !,0Y`[^@0S{ T0PcQ`*d` D3` 0QbD `*c` C) 0Qbd `*c` C 00Qb `*c` C @0Qb `*c` C P0Qb `*c` C `0b`*c` C\0XL0 0[ ڃ [ ڂ0[ڃ! !00, 0CHs00 , R0,,0 F C0s 0z'zhgz:Ss0S000PUZ (` q[P@FF0($A0@000F40A@0(0: S\00 0 C.0 ^\CC \PCC S @0 V 40A0 CPSF!",0I y$0E [(0S!000C0 \PAASSS \PAA 8_\1d4S [ Z0J@0 ( 0K40!D  #1H L00P0$0T00X0D0\0 0`0$0S.0p[,Do? 00_(P P z P(P YzzY{0[ (P,zzgz$0pS[^40SP0cL0p*dS` D4T SbX p*b` B+ \Sd a`p*a` A! Sb00 p*c` C @0Qb p*c` C P0Qb p*c` C `0bp*c` CH0 [ڂ[ ځ!0[ !!ڃ! !!@00 0CDs@0 0 c7[ zz4 B^H!.`Jb\fp` B; P\f@`p*e` E2 P\f``p*e` E) 0P\f`p*e` E @P\f`p*e` E PP\f`p*e` E \`fp*l` L p ap*b` B0![ !!6ځ [/ڂ0[ !!!$Jzz!, 0 d4S [ pX0H00 ( K40, @"!L 0D H 0c D00P0$0T00X0D0\0 0`0d0d040S6 0D [$DKok_0 (尐ᐚ(gz XzzX"0[,z'zhgz:Ss06:S00s00 0Q[^,0SP0L cR`*d` D4T0RcX0`*c` C+ \0Rc`0`*c` C! Rd 00b `*c` C @0Qb `*c` C P0Qb `*c` C `0b`*c` CH0 [ڂ[ ځ!0[ !ڃ! !00 0C@s00 [0 0X0+@; 40( @S゠ڃ`$pN$D00P`f 0c: {a  0C0S0IS0# *1z'zhgz:Ss06:S00s00Q Hx P ZP 0 K0b4r[ k{ $A(0QP!1(0ڐ%# ",401D 0 0c0000 $zjz eg++{*;{b + 0C0S0B C S KSR1*!("zzgzQ@0$0C@0sD0 4(0 S[ , B^H!.`Jb\f`` B; P\f@``*e` E2 P\f```*e` E) 0P\f``*e` E @P\f``*e` E PP\f``*e` E `P\f`*e` E p ``*b` B0![ !ڀ [ڂ0[!ǀ !Džzz, zzgz0 $z'zhgz:Ss06:S00s00QCgo_ , ꃑ0p[ !" +pz  {IQ: Ko$k_+p  * {  HR0*0p[!(@0"$Z ,0@ (Pښ0# "D00@#4 @0(0H0 <,1! 0 0s0 0z'zhgz:Ss0S000^,0 00D0IyP40p@0@$0d0 0Z@0+p;1 $0( qS*Q,p'00@`Pe zc {a  0C0S0K S *1zzgzRI@y `R J0 ! PX$ ,$0 40 0. X0Q4aKp [0 k { 4@(0pP 0(0ڐ'# "$400@ D 0c,0,0  e+0*:+ bg++{*;{b + 0C0S0B C S ASR1#30! *!("z'zhgz:Ss06:S00s00 ^00 0C00s@04(0 t0 # Z82K 00b[4rk {L P4DHR $( \ 1!$Fڜ)";#X 0 T0 1P0c"(00 (0H@D4zi {a  CSJ Q)*,L!P !z'zhz @^ zjz eg++{:;{b +  C S C0C0S0ARS1:z_@04 T0Cs@0 D04 X 00 D0H00H0$0Px@DP$T4 0. X0QK4a8[k {L P@H, 4@0(\㈀p (ڜ'"8#X D T000c"40D 40,H@ e+0*:+ bg++{:;{b +  C S C0C0S0ARS13#"*i {a  CSK Q#*$L!P !z'zhgzQq6:Qq ^00@ T0Cs00 H0@ X 0D H0,00,0(0=-P hP dP ` ᾽t0S <堾8尽 }P CO-`-88Q @MP M☀$ 0 0H "@T @T0P@-P/RO( $0 b S D b d1`hAlpt 0[/ P[0S, =40l1  ᜽@<lRO 0D40᫾@a^?P QP0U+;-0 Aj!1111夁u  * ࡿ# 3  0/㎿ w@aDOh 0D0 q 2.P p0 DXX1S 0[/BPR[|!0P1R  ! B0|QʤD2P@"+T; *A 1!$2 $2 夁 !SL2P+;H" դ1(0 !Ũ! D0L2HB+D;10 @2D2尼a$ V|(`a0F@?o2(0: 0pB0I,0GQC180D@P/ڈU?*0 (0W00SW P/ ?`C0 L! H1  0/ Ӿ80X V Wyڥ_WPuU:U ڐ+ 1S+ ;(`+;J S+;(`+;C S+;(`+;< S+;(`+;5  B (08@HPX`hpx \ S+;(`+; S+;(`+; S+;(`+; +;` 0P P ΍0U ڪ 1(0P +;0 +C;(  ( , $!80P0TB2"4I2@TB8ֽT80@0JP  0 N~ A*A0 80   CTSڒ퓻zo0(08P %] UZ $0S 0[/BPR[  0PR$0(  L B0Q f0," 2 P E  L" ^0,(01SO ?0  4 PPߪ " " < GT,0 H S$0  W">00 000)B0T= T7 08`T. PP8@F$0S. 0[/BPR[d # B 00 |T,hh( 0$PR㏊( 0 BP0Q,00P ޺2S ` 妾 Ps囻TPm:*0 0CC1Se$ C@T`T $ Q0C80  {h  0, LT 40zBX 0 J0CC2S0k 00DH0H0S}1p<0>@000 1000D0HP Q3 0*2&2 <0,0ؿLb,@` 0(0(@`\  0/9 ,@@ 020 ʼ0pS8 *?0(`,0S``V Լ# 3  0/ ᪼ 2S 0[/BPR[h 1PS0 2"  B0Qʆ?PTu/,0("( "2S<08D⢽0202PM0JP$0S 0[/BPR[$ 0$PS(0 0CP Q,00P 8@D˹ T40S#ލ Ѝ8@DZᦿ᣿ᠿ5᝿80X Va_?*0PVD04D1Wx0垺ލ Ѝd1Sxa8 0[/ Q[1S 0[/BPR[N |1P S01 ڠ! B0|Q@1Qx14`!d1  !1@1x1D1SLl!H|11  * & 6  0/λ ᷻80 VX?*0Z0@*40,0 H'# L7  0.㭻 ᖻ0  0 0D H08` Zb F! /o  bp V@V.@0<   P0 Y F (0K(0p R+ p` WP AWpY G .`pZ' `0V 0GVk0 C V` 0ZP 0 P 0  LPZT 0 StT 0 S_T 40x@T `C0D,`L@厯0D DቯhQ4l0S100F/1! a0 BS@ ,Nύ$A(10!4<8 0[σ\[0S $ >8041  00 lRO1! a0  DST!Z/P\X1`Ad!lh 0[/ P[0S$ =40d1  @1!1!0 4;0P0/L@ T0 pPP^  p0 N@\(̠< qqqqqq|Nᇸ:n_ v0 E\ CQ0B!1111>!(0+ zo\+?ˀ+! 2  1*!E1()!0!## "@" ""22卽зO 0D0/* 0  jzo 0 ( ^LP0  M .0 @B #0< 9 00 C0\ ,P ሽU Pr00 PCD0&KPX|0 00̠(  0 ׹0@  ι0<  ᝹0\ 0ܸ@ 8T  B@BB0(dhP00 pC@0ĹPvD H@0  Bb  h, p0\t   ,8 \圶004 @哶00 <劶0 0P }@ 0  r J@ F< BP >T0 @S 4DH@@0`P 0CX៼ XXpϷP̷P(NLLķ4F8D@`T 0@=T@T U Y 0S 0Tލ ЍY @P`V *02 20,0埻dhc4y ` 0 .0 13p0௸ ᘸ|400 C0B B,|Q00 RO1! a0  DST!Z/P\X1`Ad!lh 0[/ P[0S^$ =40d1  @!@! <@40P000 pC0ήP@P1^O 0 D @(̠;O 0D0(:zo  (0BQ0C"*C 0 !1122 * n_Q0E+(+E! Q  1*!E1()! !b## "@" ""11;(~0 0 !^ 0  > 08   0 (P׷T0 @8 ͷ ᡷ0 0P <U P&@ @<0۷PmB@BBT(, D0H _  e(P \0 4 \圴800 咴0 0@ ㅴ ] Y@ TDH$0P 0c@Ὼ x@Psqo<4i#D04D1ʶ* ": 2  0. |e48 D"}H2  0/ D04D1垶*0B081営* "] 2  0.׶ h@@@ֶ"}3 0/öᬶ]*02 20,0吹LPc4y ` 0 .0 13p0࠶ ቶgP8,ҴY ὶ {40S 01 o( dz?ó忳7<^4平 V 0,0Q( K 0,0?@<嗳L64味ϳ@8@Dɳ[t %  0,0p(n᯹ h ᦹ ᣹8ᔳ lO-@-Pǟ` @M`⺟$0Ds堣@00T0 0" &  @T( 0 `   P3 $0*b S b 0 ,+.; 0 2 0[/ P[0Sf, 0800  $0x 000 00p0X0@00080yZ0000k \ \Q ,%(5  0/} f0S 0[/BPR[ 0P0R 0 2 B0Q0P ȲP P {xP wd0S"ߍ 0224 $0 /30 1 J0 80}D喳ߍ`P 00!xP p ȋ 4  p$Í ÍÍÍ/΍+;Íύ ÍX\p ჲW㤐k D(p0<0*1200[0p0,0T 0q]0 qT0T 0, $ Pzz 'zhgz:Ss0S000p 0WT(Zk 0 c0Cb` CQ<0!T !ځ T  ڂ0Tڃ! !(00S(040Y ᰴ 0TJ  QT D Q  B" lCn` AP 0!T ! T 0T!ǃ !ǎ0y0080l Bdx P`ZxPȋ1X \1, !(0$0040q X 0D !<0P  #1T @/2L H0,0SU(pT40E♯0,0!0T{ +z  {  C S K  R:T)<  BR "lp*n` AQ 0!T!!ځ T  ڂ0T!!!,0pST*<0S 0bHp*c` CST0 TڂT  ځ0!T!!ڃ!!!@0P 0S@0(00(0q0L $忶Pz'zhz`ZxPȋ1X\!$0<0(0 Y  D0, @"!L0c4H02P0<0SVH0ZpT(0EY0,0!0Ty +  * {  C S K  R:T ),  BR "l`*n` AP 0!T !ځ T ڂ0T!ǁ !pWT*,0SP 0b`*c` CSL0 TڂT ځ0!T !ڃ! !400S40@0rS00  $Pzz 'zhgz:Ss06:S00s008GWU T _X1 0D !00H  <#1L P0?@0,0S.(pT40E⹟ύ,0 z ZzzZ !0T0@ $嶵Pzuz 'zhz,0pST]00S0JeP$ cQp` E20QbD p*c` C) 0Qbd p*c` C 00Qb p*c` C @0Qb p*c` C P0Qb p*c` C `0bp*c` CL0 TڂT  ځ0!T!!ڃ!!!<0H 0S<0(00(0elT~ z_z0 B\H!,JbPip` B; Pi@p*n` N2 Pi`p*n` N) 0Pi􀐁p*n` N @Pip*n` N PPip*n` N P`ip*`` @ p ap*b` B 0!T!!1ځ T *ڂ0T!!!nz_zWB Tz:Y <0 D0 H"0 T0cP L0@<0S;L0pZ?40T (0EyYύ,0 ,尠ᐪ,gz YzzY !0T04 $刴Pzz_ 'zhgz:Ss06:S00s00p WT]00S0JeT$ c`Q` E20QbD `*c` C) 0Qbd `*c` C 00Qb `*c` C @0Qb `*c` C P0Qb `*c` C `0b`*c` CP0 TڂT ځ0!T !ڃ! !@00S@0H0ZX0!0T| 0 B\H!,JbPh`` B; Ph@`*n` N2 Ph``*n` N) 0Ph􀀁`*n` N @Ph`*n` N PPh`*n` N `Ph`*n` N p a`*b` B 0!T !8ځ T1ڂ0T!ǁ !&0#0l0ep@b&6 0/O8h@P&6 0/=&#8P \P XxP Td0S D單ϰ  ᡭP =O-0R-qM0 0 E"D#88Se M0@1D1ԲğTm Pp 04 0%.p`ίX% p@宭P k;U% 1V0] YZ0I PSb{)1S+;(`0+2;. S+;(`4+6;' S+;(`8+:; S+;(`<+>; S+;(`@+B; S+;(`D+F; S+;(`H+J; +;`L N0 S -Y!  0Y 1 !0@(0 @Y P  0(0$94@Y8 ᓬP  @0K(PU A080*A     Y$Hptu`8`0` E$ɰTt $0S 0[/BPR[i 0P$`S L(0 0C` Q" $0, 0 P D& ( L" z0,(00S5 00  4 PP`"$`& (U PcYT @0~  (08@HPX`hpxBh<TDXl((0S 0[/BPR[ 0PS`& (0 0C` Qʸ0PPYP@ 0  ' x (00\S pD000^ D 1!17 0%.w`0Q 0 D"D#88S p 0  0 $ K0 B04p!D@0@0 000 @0@@孫0S 0[/BPR[ 0P0R & ( B0Qʴ0P t0S 0[/BPR[ T 0Pt0Rx   B0TQ|0P r @$`T% PP$0S 0[/BPR[+  0$PR㏊(0 0CP Q,00P 8@KT `V qߍ8@V0 ,(00  @mD厰@@T P 0 %.004`0ር00SM(@P0 2DD @0x $ 0 B@!K$ @幭DңK P0 0RŰN°)0xD⿣ k?<ت6/@-@ᓬ@-@ 0@0/O-Mh`@ lHSQP0AS!!Q0"*cS `0P QH `$ `+  Q 0Q  0Q00œ0ᵮ또 Ƞ ߪMpدQt 02@@B0DBT@YP` t0 )P 0ᶬ)P@ ᆫH  Ѝ 0  80 0 A٩  0  Ω ᦬ ᢬ ឬp0 8@P@T00<0l 0᪫@ 'r 0e - ᯩ ᭩᫩ JkO-@-ᘤ@ Mp 0A6 000 0렀 %듪` {z퓬p @Pp^PPQᔩUy 0PPL 8%%&& R*   a BP \! 0AW Ϫ`yY@ ` 0   0  XO-p@: `:JA MFASC S6 大  P W G  BB 0"!!.  0^ W `F: `F:B &aa""T l  ЍU5U5AQQ P  O-  Mp0KA1Z SP R @`bXA @H 0@DVU10A # 3> R?   cS B0P!!00@A X  K0 BR! -  cP A0R10 AU ` ЍyY@ ` ㉑ 0 X0O-` MPp@ A0EC2L SB  ݦ 0T   0 XV1 DB0#03V00*S * 00 bP A T  E B 0"" 0 aR @V ᙩ ЍyY    00   TzO--PMPD0>@HX , (0`% 9(00 1$1hD@0P@\  0j/,40(@ $ 0Ȋ @F_  (` 0 0 `{* L@0PzzGz* 凫 P  0  @0>+@;: <Q4/1S 0[/BPR[ !0P1R!j l B0Qr?P 31S 0[/BPR[ d!0P1R!\ ^ B0dQʌ>P L1SJO 0[/BPR[JO ,!0PL1RP!N P B0,QTV?P 0 P Y Z \0 0(HAL+N;ܠH J4@DPTL 00 s0AᎥ $坧0Sɚ$pP@`j`p  (V* a `{{zzG 00qS00@p. 0FL!Z,`@ P &ڰ0⸰00-DT! @B ,G000 S 0 R  0Q 0  00 00S0q `00CSOV $0S D1S 0[/BPR[  $!0PD1RH!L N B0$QL40P 3 1S 0[/BPR[ 0P 1R!> @ B0Q00P ߍ1<0 A 3 ?8Oh0H0/0Cx0$0100l0%Ph@ 0<0pC @ B0P00P 0,0.\ 8828"0(LꨣLfJ2P $0S(L&(c"៥O--@PL@M ``ABCgP ᛦ P ᗦP $0 b Sj l b.!v/1n p! 0[/ P[0S, j_1    H*I:( P0DRCOA $ "8<H@DBL 8 #D0 LH <<2S 0[/BPR[ "P0<2R @" B0QDP EP 1S 0[/BPR[ !P01Rn p! B0Qv?P d0Sߍj_ ᚣsߍj_01h"Lӥ P7LǢP^? 0q!01K谍0( 0 0a{*   +; .+0;:+<;΍ a{ @ 0j_ 20㬱 1@ 20z 2@10l 3@1P $ អ("<2 S$ 0[/BPR[ "P0<2R @" B0QD?P k$0| }SD!K $ J F H @ @F,(,04D@ $΍8͍<}P X1IP0P00 0 ᩣ PLQ$0 J PR?. /$0 T0X\`dtp΍0h΍R Tl厡00, 忠00 嶠-DT! @BxxH`0A0$ 坠0 04 㐠{  :{{"z{$z0 z_ [ W4 ST040  0g0L bP0  \0 0 W0 R( 0 M 0h00l00h  Bឦ0S$T ̡,P NLJ\Y5pP0p0t0ͥrǿ p  0820  ڢâOxP80x0|0婥rp0p \  0"2  0ᵢអ$0 (,04D@"΍ 8 ͍<噠: ޟܟڟd0S $ 1T Q 24 S@ 0[/BPR[I !P02R| ~" B0Q !>P ΟTj X0 $A ᖟ$唟 ,ᣥ3T U 0(,04D@"΍ 8 ͍<*ˡ入m$k ,g ecad0S ᅠ뾢ᛟP 7ᕟ00እ<BO-p@: `:JA MFASC S6   P W G  BB 0"!!.  0^ W `F: `F:B &aa""[T ѡ  ЍU5U5AQQ P  Q/0S/A-Pp TPQ00T00S@X `@1SW  B-@0A-A@^@p`@PV<F Tࠣ^ Q@@a0 !^AO-B M᫿ 0p˰ Q?@0P Ea 1S\X` [@ 0\$ BRANPaόY SYZa0 ЍQA  aR JόR  aO-@AM@PsRPpV 0 0 A0pKB!/a \_S\ZX\hS\ZaPap0  `p0!``qW^WXLpYWYZ\0 F@P[p@aFȀ0 P:XH07 `G F!P.VЍP^PZ\S  \ R^00P0S0zO-P -PMP M@ 40`A˰B080000 000̻0#Z#M(088UP `P\  0^%5 ( 0!L;0x ( 0p 0:z! `{PzGz:`$0BUtP@.utPy@pBXI.h0 J~D00 t h.x㜄jAd#=0Ĉ,08\p@!4 ˷ 0XPP H0 p<``ʪ@@P@Lp YVX a `{{z숚yz<`@@0S;$0PC0_SP48 Z 0b q0IY  0S Xڐ* j jzzzgW&zgz:000! !Y: 0:0JR $0Sd0/$D1D C1 0000 0X PpX00XPp1 S !S !S !S !SmWP 0 0 0R`Pp0NUC1 /o b0 = `0 d00CC14 jR0S )$ qXP@ B* `0 0Lj* `{ 0C0S0LC&cz0C:zzwjzgjz@T,0PP 000PP `P p(0PP ލ Ѝ h0 SC Pd !#]✄PĈ,P˷XX p P,0 0 #M7088{0``0p`\  0 V0 |  0( 00mKD0 C⥜d0A`P p(0PP WR,0PP z000PP sO--@0@M0`4 P Pp0+x0<00S00zT  `*00$ 8 (0 z@ 'ډJ8 p+x | l0'B `!j{ {;+  C S @`  C SS AP  < lP0 A tQ( 7T pPZP  T P0` @S,04  \$Y/@P`Qp(PD0 TnU P  l@\V0J1 !!!!(b^+b 0W  [0TP[0TJ[0TD[0T>[0T8[0T2[0T,[0T& [0T  [0T [0T [0T [0TX0 T R0  PS 0 s 0A{ T劜u X儜 0p`f 0 -DT!@L>5<˟00S@Gq -DT!??Wk  0S z0T !*X犸x008h H | `Ȋ  @ J\%j_ pȋ `n{* Ț0C0S 80B    /z8f8-h-g{: PCPSPCU` `P@@PK @kz*jj00;0B ( *{2#SX`@`W 0$0( S 0p`F`0S P P8pQ`\PB{@ RyUP 0 c0J[1 45J0fCf1 ZfAZ(nfZ(dZ(l(`bR `;X 0 W[Q W[J W RD W R> W R8 W R2 W R, W R& W  R W  R W  R W  R W  R 0 WR0W \d0 ,0S|40@ C dPQ`0S z: P :J0\0 0c0 40纸-DT! @5<zʇP0S 00鋟0C00000 S0 00 04  $  0 8 R  0SO X0@CT0pC0:0:~ >n N - ` , @ tJ p `{: jCSZ+.C0C j& Fj?!?C1Fzzzz jz0C0S0@#  0?0#V0Z 0@TV0Fz0h(00E 00e,0(0 S ,l0 CA @ITp Q H @0喜 zH @0zx p Szzg)z'jz jzzwz z < @lT 0x Q 0@))H @Dx0R p G0|@ 㒉)< 0LC1 R 0Ll00]`0Sd@Ph lQd@6-DT!??tȄx:0 0: P0 0 ` R4 0B40h lQ Z ZJ@ `$#zzJ0<z|0h l0A@C1T:d0S dX0S T0S \0S [ hP ݚЍ< h%l0h@0l$\0Y0 0X0T0`0S,0S+080I  i H<` 0x0|0a1P0 10 < w`4x 7< x0|0F@RP0`P^   0 0 P# 0L <30˵J˴'pP+0p0t0ƛrp p \  0"2 L ⰰ0 㸰Θᷘ۵^? 0ᰖ!01L{谍+;0 00 :0 .+0;:+<;+b{ ΍ `{偖 60j_ 20㬱 1@ 20z 2@10l 3@1/P $ ߖ("<2 S$ 0[/BPR[ "0P<2R@"  B0QD?P $0 SN-DT! @BĂ~pH$~Ѐ~}!M $ J F H @ @F((,04D@ $΍8͍<P 0z,MH0 , *ڗ MP~DQ$0 { PR? L $  0 X\`dtp΍R Th΍l00( 0A0$ 0 0ߔ{  {*z(z ᯗ ᫗L0,0  0㿚0D ẚ0 ᵚP0  ᯚ 0 0d 1`0b0`  ᢖ0S$崔 ,(尔 ᮔ嬔媔wK+ H*LI:j_ Cἕߍ j_01j᝚ᚚhP0h0l0 q p  000 L QP8000pp0p \  0P P0 L 0ߖB|z|wzLqvdy 0 (,04D@"΍ 8 ͍<Дq \0S 5$ P Tq P0 $A ='͓$˓ C(ڙ)[ \ 0(,04D@"΍ 8 ͍<a弙ᤓ$埓 (囓 ᙓ嗓啓\0S ṔΓP jȓ%"00k BO-` -@P 0@QM`` `ABCD۰E˰T(`8` / X%Bo)01 1ȘHǟ p W  03 ' \ 060ҕổU  p pT 0D#Q< B"DQ) `+000变pƟ  Z  0y4&46 l 0 嗕ပ0   R  R BoT01 1^T 1%5 0\ w`0S0S A01 1D\A P%P5 0\ ]F0L` 8Lp`vUH*I:l U_ US Ѐ000ğdœ `崠 0|4 0\ ⴡ# [$`040`F0CaCb0Q``VpN o0򩒠RP+0 +\00 0`D, P0. 2 &+*i 0#"+, [m  0K0S 0[/BPR[& 0P0R * , B0QP 2[0pP P 0S 0[/BPR[ d 0P0R   B0dQʌ0P Qߍ  R R RBoVu08pa@0 @0R`+T`YB00<: 8 0< @ @1P @9:D00`30@B@Ѐ0<@D##H@00凗0S 0[/BPR[ᐗ 0P0R 8 : B0Q P; 9 Bv0rtDHq$uphsuLpsto rPP+0   R00 0`"D, P0. 2 &+*  0  , L+0 M `L+M 0`  }BoA A塖Ÿr勓 p 020 \ 嶓៓ <@偖xŸt   0T20}Ϡ | 吓y )\졟   010}Ϡ | kT01 nЀ  5`\   0<10}Ϡ | D-0 2)E$0P _ P [幐ٓᯐ᭐` `Bmihl<*Li4*)h) )h)O- -0p C;MM@B+j(AƐ/T0P [0 (0SV@L000嬕DL 8)4009  0Œᮒ1ȯSZ01[ 0D#((R BDR @+000偕ȟ  X  0yh(h8 l 0 剒r0  Ph  Re T000QT $'7 0 jS0@ 8 L 0h0傔0@0WC p000%LǟLGU @` 0(7 0 aP6@P 0 0Q0@000Mߍ  Rp Rm R@hS0S!R01R0 ʫ0$ @PX@w 5 ,6 T 0@00Vj0 X:  0PD0  5 T |0D 00  Γ0PH0}  t5 T x0H 00  0  DR 0  HKz 窴^gNzJNzzz*z'j:zgZjz:Zz⑓@P? ˎ 4 T t0@00㉓`P, 㺎 D4 T l0`000 8  0080  `00R p#1d00B800p \,00A4<0ں̈́DX H@40Q 4P@P@ 0L0pL0S000 P00D6 : 0S 0 0 *犸: ( @ ʱJz㪊h*(zzh (*z'zgjfj* z'Gz jfj:zggz .Z %%>L aHd`(b 8#Z ҧQN>#^ҧQN>#XҧQN>#WҧQN>#VҧQN>#UҧQN>#T ҧQ B2#  R97S  S000000 0 S 0 0 S000V*P:0 00Rߍ0 <0RR`0 o 000mO-@ -P(p 0`MM0MT0 0N(h00p00t00ᄀ00(X001 `{:S-:Spp 00R0$%0R  l h0T 0C B?d0/`  0 0S p0t ^  8n  `7nYX0P`  P( p `$PP1 凑! \!h  @  兑\Nz + +ra;;c V Nz ;*;s UNz ;;s* X;z;s* Y#WzI;;s* V zI;;s* UzI;;s* X;z;s* $Y#WzI;;s* V zI;;s* U zI;;s* X; z;s* (Y#W zI;;s* V z I;;s* Uz I;;s* X+zr*    P Ya {WUa \ <X~*PPd:zx0 0x0R9Cݍ Ѝ0  000O-P(CM @,M0p0! (`P00h , 40100l00` 0S!``,0 p R,   40\ 0CP ?X0 B/T  0 v0Sp``(0 80^ | bx`   0#Xl000p1b J 8@Pt@0@,,0, 0t, !0C0D00 0H<$L0(Q \QxsPrS004R  0h  ln$ <0 $ L 0<0RH00 0H0D <0T`X0FD  @SR1@ *`|PΉ␰x@2" 000h0匐0^00 zS 0 zS+ `Z; ZS j jS  z{ zS\k* J: * [u0@ [$ S0`F8P 0` p\`P *l 4 @#lWl0 @  8<4p,P(@$00`hpd(,010101 01 0,00 8a ,00SJZ1zR;*;s YzR;;s* X zR;;s* WzR;;s* VzR;;s* UzR;;s* TzR;;s* ^ zR0;;s* [ (0$  R(0dPV*4P:t0 0t0RCݍ,Ѝ0  000\1\0` @-R0@00 [?CPS[= @P0L Q`0 Bd  B0@Qhl0P _i(0S 0[/BPR[ P0 Q(0 B,  B0Q040P =iink<"oog\1\0` @-R0@00 [?CPS[= @P0L Q`0 Bd  B0@Qhl0P i(0S 0[/BPR[ P0 Q(0 B,  B0Q040P hnj<nn8f| P1P0` @-R0@00 [?CPS[: @P0L Q`0 Bd  B0@Qhl0P h(0S 0[/BPR[ P0 Q(0 B,  B0Q040P hm<onlndP1P0` @-R0@00 [?CPS[: @P0L Q`0 Bd  B0@Qhl0P Qh(0S 0[/BPR[ P0 Q(0 B,  B0Q040P /h[m<nnlc| p@-@PkP&0 $0 n PS L n L$0 P(, 04 0[/ P[0S , ,0  p wip00mpO-M(@| ( @@@ 01 ,0000  t0`00x( 001 `{:SS 00\0  BAH d/S` ?l0t0SBڼ2 0CR?o20\0(0S7H0` 00h0d0p0x@|P0`,,, h@$  0!"DX ( QD!` Q* l R*S\0S 0 S$00 SDXQ0`00140 0xS00w  Q00  @k0P`40S000 2Sp 0@2S2A 2SH0X*d0W* " %i " i"i"i /0@ 0(0 0?@p z'p @ . 0@  0,0 ,0HpGNLFⲠ 0 b! 0*97SS00X0X0SV 0S S Sw S2 $0 SDX0000C140 0 C< , 080 `0   ,2!0 ,0L@<0P80p0ap097SS00 ^0040 S$0 A00$"0  (  Qh0t 0h0RߍS\0S $0 A\00@2A*$0 A0X_ 0SU0\QW0A Rh Sp<0p ES^BD 0PAX ༒p 0pS00v  Q00= 000P@pU~ Y` Y2∁/P_ 0S]H H0 RV0[ R S V0` f nc097Ss0S000가2刁 g 0 g $g g00 $`/Ϡ ! `* /` 0,0  $ ZV0S \ p0՜00P$00$ R 048<L0T000PD0aX0傀00 P 0@220 piP炚 @d4凕8J !0p ` P@l0l4pTP `P E IGTt@T@@9@@7SS8 00Q0@$0$ A00 0 0@80Sp $ R 0X480L0傰00市D0<1P0 P0 ! `@0 cp> gP n9Lu 4`9 <0p`0Wɗ8`Yy@V4Y)L'Rr R 9 L7SSP 00R0L$0 A$00  0 j0LP0Sp p 0 $Y 0 $S0$ O $0 J@DWf"40 ( 0 Ef.f+ffxlO-JM( M(@00P 0Q00 00 00$0000 ,@001 `{:Sq:S  00 R0  BAX t/Sp ?0cڌ0S @ Qo0l0$CH0P(LC4dC8hXP0C@00x0t <  @\ @ 0P,,, x@  ! D"` $ RD !p Q*  R*Sl0S 0S0 SD P`q @僠| 1Դ000vS00x  Q008  ,8g0p@00S1 [` [4 7 [X0V*t0X* d Pd Td `dP T0Ϡ , &"  ,`&`P , , ,0!\0BJ`F LADJZZzzgjzjzz%zgz^:^RR0  Il0  $  RAx0 0x0R%Jލ ЍSF 0S] SO S S0 S3D `Q p 00Ф`C\  02<@@!"JJ Z B  Z@0:0z:0:0zg:jzjzz%zgz:S:S00T0P0X`00  I0" $ RT0S 0S0 S `D  AP `0R"T2J P J* Z* jZ*( z *zg$zjzz%zgz:S:S00Q00  I0 $ RS감4 |0  I0" $ R@V0S 0 QX0r R S` m ` SzD `A|僀 p 1Ԕ000pS00u  Q00K ,00000@pS YP `Y4b<Px0SvX X0 RU0t R S o ደ0:0:0:0:zZJzgZZj$zjzz%zgz:Ss06:S00s00`4b !c P c Tc cP T0/Ϡ,! , ;"   * /P,, ,00#000:[U0S \ň0՜| 0  I0# $ R[ S `P D  A0`1 1!4"J0ZZj j* *( z *H jf*L $z'*zj'z*::%jzJzjfj*Rr6'z:R rGz*R@r 6:R r @ 4hp* `z8* * z*d 0$z'zgJJ:z$zjJZzz*Zj%zGz:Ss06&z:S00s0gz*R0@:R00\0@0  I0! $ R @ ToS `Pň0Ր0S 0ŜՑvq0TE0 0R0 S D` ! 0P`0@5%4BjP0P*ZP:ZP:@ZzJ@J(@z@J4@@&z'J8@0zg:JJ"zzZZz%zjj#zGz:Ss06z:S00s0gzJT0A:T 00R0A0  I0! $ R@ @A^  0 S~ `@ D  Q0`0 >.4"J0Z:Z j* * z*( z*4 jfz'zg*8 *Jjj$z*H z*L 0:*:JjzzJZjjfj:Ss 6zz:S00s Gz:S @s06:S00s0gz*R0@:R00Q0@0 0I#$ R 00 @U $ 0 R `  $ 0 R,0L@Ca< 2040  0awata3b뤫O-KM(@M(0p`@  @@PQ0ɠOp,@@p@ O ``0`01 `{: Ps06:S 00 0R  BAd /S| ?0Lڔ0Sb@ Qo0x0,CT0P<XC@pChtEdP0CH000 Y_OD  @4 @ 0 ,,$@P , ! (P"l , QP!| Q*  R*Sx0S0 S$0= SPlq!0L\8 (ܔ 0uS00v  Q00  0tb0p80S YP` Y4 Yd0U*0V* ` @ ` `` P`Ϡ`0 0 %"L `0P%LP0 @,L@00 L040BJPE\`L@ JJZZ0:0z:0:0zg:jzjzz%zgz:ITs06:SO@0R0SW 0S SS S S $0\ S,Pla(0C180 0HD@!"24J  JB PZZ0:0z:0:0zg:jzjzz%zgz:ITs06:S 00U00`80S$0  A0($"( , Q0 00RKލЍSx0S $0$ Ax0( ( 가4$0 L A\0U 0S0 PV0{ Rm P SjL0 P4SP lA08`(p܄ 0pS00u  Q00M 000080@pS XP `X4b>Pz 0Sxd d0 RU0v R S q ደ0:0:0:0:zZJzgZZj$zjzz%zgz:)Rs06:` S 00`4b ^ L ^ \^ ^L \0/Ϡ0! 0 ;"   * /L0, 000#000:[U0S \Ő0՜  $0` A$(0#( Sl`(@Pؤq8@ 08@!#"8@ J0 Z* Z* *j* j* *< z *T jf*X $z'zj'z*::%jzJzjfj)Rq6'z:Q Gz*Y@Ur 6:R  @ t@* hz* *@ zPp 0$z'zgJJ:z$zZJZzz*Zj%zGz*9Sr 6&z:R  gz: @Qs06:S 000@ W~ $0$ A(0!( V P QŐ0Ց P 0S0ŤՐvq$0 SP_l@< `(t0(2J툀JZZ퐊jzzg$zjzz%zgz:Xs06:S 000^ $0$ A(0 ( $0 S lP@hP( `t!O0ᲀ0:#j0*0::0::0J:0:0z:<00z:@00&z':0zg:J"zzZZz%zjj#zGz9Sx6z:X gz:ⴀAZs06:S 00 0A\ $0$ A(0!(  $0 SxlP`hP(Ap؄0 Რ02" J Z0 :* Z* ** * j* * z*< z*@ jfz'zg* Jjj$z*T z*X 0:*:JjzzJZjjfj*9Sr 6zz:R  Gz: @Zs 6:S  gz: @Zs06:S 000@T  $0$0A(#(00  0 $  0 $ $0 00L@C\< 2040  0\\\]XO-MM(`@(a000,  0#1000ܸ0  (00@T1 {z  BAT x/St ?0zڔ0S/ 0K?o\2 0p0(0 ADS4 1 HAXdA\ h`Tx l0  !8 !  A< | @ 0P ,,, |@  !$@"` ( R@ !t Q*  R*Sp0S 0S 0 S@ `$`僰lp 1000y S00t  Q00  ,]00`S Z@ PZ8R ZT0 Sx0T*  [ Lz[ Pu[ p[L P0Ϡ , )"! @,)  @L, @,@  ,0 00zzZzgzSZjjzzzzzSD 0S S S* S 0/ Sy@ ` 0ܨQ$`plظ吠  02!"!< @8zzZzgzTZjjzzzzzP `X 00ܨ I0$l "$ (  R|0 0|0RލЍSp0S 0  I p0$!$ ( RP8RC 0倐 I0Y?0 S5 0 P1T0* R  S0! _ S@ `A僀$p 1000pS00u  Q00: ,00000@pS~ ZP `Z8b+P_0S]T T0 RU0[ Re S V! JzZZzjzgjz$zz%zz`8b JZ L EZ P@Z ;ZL P0/Ϡ,!J , ;"!z /L,,  ,0Z0#1Z[U0S \Ō0՜ꀐ 0$ I 0!$ ( R) SI `$ 0@ ܨ qظ0 W"#z4Z1@jz:z'*j:H@J@DzgJ\@j`ZXPh%z@dzz#z&zzzAzzjzZz'Z:j:zgJjJzZ%z#zzz&zzzA0 0$ I ܨ"$ ( 0 R  QŌ0Ց 0S 0ŤՐ 0 S ``@ 0 Q$4pظ0 U#"z1Z@zJzgZjjzzzzz0 0$ I 0!$ ( R{` 0 S ``$ 0@ ܨ QXp\ظ0 U"#z4Z1@jz*z':j:0JzgJjZz%z#zzz&zzz@0 0$ I ܨ!$ ( 0 R5  0 SP ``$ 0 @ ܨ QXp\ظ 0 U0">#z4Z1@Jjzjg *z'Z*D@:@H0jzg:JJ jzzjz%z#jzjAzzzA0 0$0I ܨ#( R$00 ( 0 R ( 0 R,0LPC2Y< 2040 0 0YYqYY0ԉO-BM4M(`@(a000,  0100000C=0C= 0( 0@T1  BAP p/Sl ?|0ڐ0S? 0K?o\2 0h0(0A@S41 DAT`AX#`Pp d0  !8 ! A t @ 0P ,,, t@  !$<"\ ( R< !l Q* | R*Sh0S 0S 0# SL< \q$P僰d` 1x000xS00t  Q00  ,Z00pPS Z@ C=Ⱀ0Z0 ZP0Sp0T* W HW LW WH L0Ϡ , ("! @,( @H, @,@ ,0 0j0jzzzjZJ ; `+S  SN 0S S ST S 0C S< \A q`C=00C=0$Pd刐匠  "0jj#zz8 1 z jZJ ; `+^  @PWC=00 0 I0$d "$ (  R t0 0t0RBݍ4ЍSh0S 0  I h0$!$ ( RC=Ⱀ00 3 0x I0XM0SC 0 P?T08 R*  S'0!O S(< \Ax僀$p 1000pS00u  Q00@ ,0 00@pS ZP C=`0Z0b1Pe0ScP P0 RU0a R S \!+K;zj zz ` * C=`00b dV H _V LZV UVH L0/Ϡ,!+ , ;"! /H,, ,0K0#1;[U0S \ń0՜x 0$ I 0!$ ( R Si<\ C=0pC=0$ a0 ⠀0 @V B#z4j1 ++`KzD;@` zX@{PTk@` Z+J+:++BB +`{k `+   B BC=00$ 0  I0"$ ( R  Qń0Ց 0S 0ŤՐ 0 S \`< 0C=0 Q$4p 0"U#zj 1z@+[K `z;*   0 0$ I 0!$ ( RUJ 0 S \`$ 0< TpC=0 QC=0X0 U"#z4j1 +@`{zk0[z `K;* * * @ @C=00$ 0  I0"$ ( R  0 SZ \`$ 0< TpC=0 QC=0X0 U0">#z4j1 @;+ +`z`@@{@Dz0k[ `K:+ :+ :+ +A A AC=00$ 0 0I#( R$00 ( 0 R ( 0 R,0LPC,U< 2040 @ 0UU7TUyuyO-P-[MM8HI PPW P_ bOH>1U4#00,3 P 0TT 300S@31M1<1T"2 0` TT!01 !1! 00(1$1X0H0110 0YT200S DBD@ H1S @[ލЍ200S] B @ 20PU A@ z.ej!!f/: 0zzggj7zBjR0 0!X  0:?O(100 0 1 01011O$10H00101(1011 11!1z 0D!0L19?O0劐H0!2@1X0 2<11411010,1,14S  Ө L!s01!0X00Z0 @P0=Gyxty,y`Hytxdx`hh x`8f4gw`` bhhv`Po`Z0h jjgj&Fj ijVp6`1:P`oj0jgj&Fj ijV:Po`Z0D jjgj&Fj ijVp6`1:P`oj0jgj&Fj ijV:Po`Z0 jjgj&Fj ijVp6`1:P`oj0zgjgfj izV:Pgo0 U @ zjjgj&Fj ijVp6`1:P`oj0jgj&Fj ijVm*p`o>N1[ ̓ⰰᲀqᴰᶀqḰẀqἰ㾀q~QQQQaaaPaoᲑᶑẑᾑ΃ⶀopPPPP?]ⶰo>`ppᲀᶀ ᰱᴱaappẀḱaᾀἱa!!!! 0CRCRCRCRCRCRCRCRCRCRCRCRCRCRCRRCj.[!,!.**::JJ:0 S z!z'&zwbjjdZCZvZdjjc Z% f%j& BfzzzvzzwzwzB X0000 1010100 1|! 1@0 O(OH0$OPO1PP QP=mff@- M@0p0 `0QPR RUO0S 0C[/ Q[0 0 O ЍjQU  0bQOYPOVPp@-@-P 0@P0[ 0`0P0[ 0@ f@ $ @ @pqRX0P` P` FNeR00P@ P@ DN X O-@-4P0MU|00l P0p ~h S`P``0X`@0x0P 0 ΍ Fύa<>A8:AAAPdN<0JLS8A>FH@1R?P H1S 0[/BPR[ !0P1R!f h B0Qʴn?P Ht1S 0[/BPR[x T!0Pt1Rx!X Z B0TQ|=P Hꀰ00 Sp0  t0z0zzggz:0)Rp6zggz*2:P @" Pr 6:R 0 \R 0Tp0!t0z0zzggz:0Ɂ\q6zggz 2:Q @ Q|6:\/  0P@\0&p0!t0z0zzggz:0ɀ\p6zggz 2:P @  P |6:\ 0P@\ 0p0 t0z0zzggz: 0)R|6zggz*2:\ @"ɂ\r 61:R  \ 0000S00CSz,0 `040000000( *4 6HK1S 0[/BPR[ !0R! B0QʴnO2"P~+;1 !b+d;1f h G1.A!S$T ?PP+;0! ~+;2 2! }G0|*< 400Q, 0``|\0M `0@^M A0QU,P@@  \@RT1#3PQ O b| O D8`/M 21+ 210@8MdDMM< 0 \R  \Q  \Q \Q \Q \Q 0\0 R Pµ0S0ǵ008L8L3d0` XIK`F8FDFFhFJ`FF BO-MP 2 @Gqp`~GzGT@*GP 0 ߍ`GT$2SY41400, <T0@D00 I 4H,~/~?1!1!ZJ,2#0D S00 S@T@8p2HNHL0 0BJDQ= 0  4LDF0P HGHOIl"JJ II`P (  IFJ? $0F0 1> @ 111P$1 1<1>!1H1c p (!0R GV? (0FP0Z $  ` D!! 11; !  C>! 1n?!! 10a9 !< 11S00CS1S P(b`pH! 1 0t ]HFH!0R 0b2@0 `0张H 2 +,2S 6z8j5zZf9jZ@ZJJ Z Z:J7ZEJzgz'9zj&6zjf5jz$8jzgezz7z:z BG(BFxQ  00 2@`0 0`Hp0 0$ 9E0  0 ( ,,E렀 0  !EP: @3D 0@D0 @E G, G G Gd1`!S0 C10G0 0FFK AE ?E(DD$D1SP8J0㤠1@㼠`00* 2@00 HEx b}G`yGH6H K E E(DD$D fG;Fb``O-M`\$2 @✂EPEpJT` TCEP 0<040X XV[00,0@ 180Xʨ4"0 0R|0 l 40 TG0NF80XPPEP 2J0#ZZT p1P0 MFT0t0x0tpcFV3080[ c` tpVFPPtpRF40O 080tp P`?HtpF2S 0C[/ Q[2 "t0x F T 00 J /D0P< PT P  L  CN?@ 80DL 0 1 1 1B D$14101P>(1> ",1X1c DP8!0R }EZ? 40DH nE2HSAA 00H0P@P0A2DA10Q10!1011>1r?1011S00CS1S` @Hf_BeF4!, 01 0 RF;F!0R 0f_2@6 B0PF2 ;2S= + Kb;K@Kk{ [ [kKe{ `a ;c+b;f+ `  BhC lB8Bp?9> < h;p;GF:t:[  00 2@B6 0ԀF0 0,8 C렰 0 4 C븐 0  CP0P* T102#0 "0  B,  E E E Ep<t1@06G E0 0 D, 'I"C C4BB8ByE ND0E,ߍ0,0,ߍ20#T00S& 0<040% @hl l20 :'>Atp1X0D\ tpD`tpPD80tpdDO8 0 tp{B?P0  tpsBV4[7 # n8tp40 d$0` \0dX P }FtpE1S 0C[/ Q[1!t0x E< [ 3080# c`,w1S@0P1@PB000 2@06 B xHsBqB4-B+B8)BD C0PEEf_BBf_DBDDO-MXp P(娓E? `0 0D&SH &GPu CEP  BP EP"n29CEP$?00C EP)(CL "0`R  bCEP?0C"?R"RP033?GlP F`.`> 0 XDAD"02R. 3 RSPH S >0QH[P 3$00X"2R QS0 S& ArW- \LRPp,Q*`^ `P ^H d$ b  p\q p ^P ^P\q o0r ύP #3 0夣c Т0 Q^졍8s<0@3$0D30NS.!Q0"*cR `0P ^H d$ b  ^!  0^ 0^0 0œ  zG 0PSGF2A0A.A,A\0Sߍ,"R-("R@)S S( SI(; 0100CP0SL oo$9 mB  hB? 0aB \BLjCt* p: 0 WC@CSQJ <VC0*s,: 0 CC,CX"82 CPp0 3 XCL SC"3R. -C)9 0 CCk(AߍAPhrW \rW0G•PV'Q Š*`\ `P \HId `   Q^ \P\PW Qp0 D P13A@  ??`jAL)`d40 ZC?t"0022Dt R"R0A2S 0C[/ Q[2"p0t AA0`S$0C 0100/A`+A`(A0` \`Ct`#000Dt RO#RF0A0S 0C[/ Q[0 p0t AAh`VE 3 BT0 000AP zo0 S0~+; ΍z |ύ!A C0 0 0@ >0 0 0H >0 0 0D >1S1C"01 $  00 u>1S0 R0BSM"1Q 2 `S)bPPH)d `;  R R  RŐ?oR20Se  A A A$  A81@x0B|@0x @uDp>?0@,@H&><$>D">@ >0S1 \0S2 (A?/BH:26tD4.26-h23-11*T/11).`T10 0 *!&&!<&h*T!%rW \LRP,P,Q*`^ `P ^HId `  ,PP UQ,P ^,\PŞ\P5 S6hrW\1 0100@P@d@L!P1 0 Q@:@p0 H<K@!r1 0 8@!@;@!!1 0 (@00@P z0A2@+;10  3$3034311?(33>,3OC==1 #01h00u0 #2RH?!1 0 ?0P0?$P 0 `d^0?$! 1 0 ??9 A jpP4P TL( 000 < < ? ? ? ?BP<)L $(h$V 1S Q1!Ւ)0AS!1Q@ 2 bRId PR()b `; Q  R R  SQ VaV !R1ՔՑ)0BS~"1Q@ 2 aSIdPQ()b `; R RRőRSf Tf R1,!!(@an8T 041 @!1 3<<A1,!JL1LR La!H!10!H00J L81@1D1;+1S0 Q1!Ւ'0AS!1Q@ 2 bSId PR()b `; Q  Q Q  ŒQS,;&t0@p@T!aR aV!M1F`b`t0@Wp?Pl`000Al RS200,0!>0S 0C[/ Q[0 h0l >1S Q1!Ւ'0ASc!1Q@ 2 bRId PR()b `;  Q  Q   Q  ŒSQ ,k;h?l 01NA1<11NLAH1>1H,I;0 q B " ,D! 00 0 )==0=,=H:<:D:@:\0S (<=>{=;M<o=m=j=g=c=^=::::S=:L=J:F=C=?=@9=4=1= 0PS?'=#=O--t0DPSaMM<0U@00x >0  H@T````>x0 0X PRp "DD| ! .\ TjO H (<dN Ttl$ $`P` DXpRdP0C+;p P S P @@T#*+J(;J|P, 0 P@0 0 0 J0 0 0 0 x0 t0 0J\ 0t@ T,@ P cJ & J$J 0 00 0J0 x0J|0 =TA, _$B0ċ1D0040d0tQCX0P ( <8 0hz<0( +PK; @0 aa{j` ``{zp8Yk{"0 @  d@nJn PHd b~` 0*dt@(bpBr "$. "O,0S& $0H@0D 1 0 0B%C5Xr 6:R  Xs06:S/ 0^0 40  8 00S00Ph(0S@0PxAP Q TP@)+*; @ Q BlP B 0J 0JP \P JA A A A @ @ +J ;J@ @ @ @ @ @ P  JJ 6;0S 0[B@/BPR[x 40P S0 JJ0C@4 R 0JP :9L0S 0[/BPR[Q l 0PL0 RH  JJ B0lQD@0JP 90S 0[/BPR[2 0P0 R & J$J B0Q|x0JP 80S 0[/BPR[  0P0 R 4 J2J B0Qʴ0JP $0` P$P80 H@ 0T0 0x00cX p X RIa܍ЍYk{0 0 @JnHnjj hn Pdt@lf 0*nv`(bA |r J! TEr|v`t@H R%!JbB(bB ",$&dOM H,0S @$0L0 1HD 0 0 C2BY~6:^ B%^r 6:R  @Q0 20L@,P08@ T@ 00 咣# A l@,  @ B\@ B0 0 0J( $ Q @ @ @  4  0J      J ( 90S 0[/BPR[6 4 0P0 R  JJ B04Q 0JP 70` H@$0 0T$ 0 0x00^0t0(0Fl=T=J=\=\=J7l7;\7T7O--D@H0T-fMMX0@0,h ;0X  R0L0;h0 0D PR\ «û"Dl X R,噾( <`K A$H <0V8d@T( PLD`Rl0CHp@\ @ S PP#ߪ $ 4PN8 8 08 8 8 8 8 `и @̸ 8 4h X ,X H 0H  x8 ڐ f{{@{d{{j!{'{.{]Z{"{7eKK! d $ ]Z  pG{*9Sr 6`{::R  Ƀ \s06:S000Q B@@A00S0P,0ZP|PP@NK $0 @TB B 00C 8  0    @  0NY  N  i88S 0[/BPR[R 4(P>KR  80C4( R00 0CP r6L8S 0[/BPR[" l8P.KS0 H(L8  B0lQDd0P O68S 0[/BPR[ (0P8 RH  ( B0Q<0|0P +68S 0[/BPR[ 8P.KS0 (8  B0Q$00P 0LP0 0@6(0X 0C(0h0R0xD \ D RWfݍЍTK P f @!{dj{a_]Zqe a  ]Z  pa{:)Rq6`{*:QQp6:P \020004 Y @P&8 Y TP$00( X B8P00C,H @( B$H h h X D8 @ @   4  0D     D H78S 0[/BPR[. 48P.KS08  ( B04Q00 0CP P5 0L (0 0 A( X Rh00G@.;T+;<0(C';8$;8!;<0(CJ5TH5h88E5@C5AO--Ppğ@ M430s088Pz?0K968P">0=062+;PA^+`;T@l+n; T㬱్䱍 0 bb d 0V`=p r1j?☱1n?✱1>бԱ8 1~ VP T T02S- $Qf0AHS!!Q0"*cS `0P SH d$ b+  Q 0Q  0Q00œQRN_ V W0`0 G0Go?oᩒ2 W o80 X \^ύ4΍5^?40>0I8P^?40>05^?404400# W00S$ 8 W00 X΍  00\5 >08PB>0w5>04\4W Dpo᪢ Do 0 B  0S+ P @(R Q ˆ*b R `P \H d$ b+ P    PBl` PŜPR    0Sp00 @D8Oop p Bͫλ ͋Λ @   @0  L< !8! ! , 0 Q咤",p !4)$#0呄# 0E<0S0S0S0X2\29`rp0p\  0(0  "6 6 0@T000S _W~0 @`034333d1Sߍ0S0 S$p0@@ @PPP * @? * ;G 0  ! C4 0 c  ' p , X  M@@0PP80X!0O0p0 zgz Pq6:Q zgz^q6:Q  Rp====BBBBT,00S 0S0 p ' ¶ ' X ,M 80SZ0 O8q1 zgz Pq6:QzgzɁ\q6:Q0Sp6 H4 C4 ^?40>0:4A>040x!0R \20 2@X251S4 Q0AS!!Q0"*cS ` P RH d$ b;  Q  R   Q  ŒQS 0 1R S0R 2422~2d1S `3ߍ0 SV V _^?40>04#I3 0 44 >0~6W 0 pGoSr T00Sy T00 StDo᪢>0^?40>04#S3 0 44y  >030|_S0 0$O `J0*1 MCaAr B4j0DF SFf6*b&Tm B&ApDF`Vf5j7JFfdFr- TmJpMJRb@fdB@ YP!`S_0p ``F?@儠 @߂c=p 儐c0C0@pc Cc0*C@0&JCN`0 @0*c HP0 0 c B@0 X >@0 YJc`0!DjcP0Fߪcr%܁J(`v`t@zbBb"fdj\aPVeƈhh`1hMHM*J=C80 SI  ㈀Wj_8O0 q1zz&z'Gz* Pq6zggz :Q  Q|6:\ 0 S "p sx!  X> ^ NR.Q *bR ` P RHId ` !  ^ !  !   ^      ^Ŝ   R^ 88  0|_`S3p <0& O b@0*1 Aba M.ADr 0SF n <JvapJrJfAjd&BVJp-JA*BYP!`a A`<08 RY !Z [p j jzz%jzjz  [j jzz%jzjz [ j"* jzz%jzjz  [* j"*jzz%jzjz  [* j " *pjzz%jzjzd   Rᐊj    jzz%jzjzK 0 S j " *jzz%jzjz1 0p0 j* 2*:jzz%jzjz/ߍ T 0` p0 0DSTA=j_ R zz&z7zwzz!Xz z&z7zwzz Xz z&z7zwzz!Xz z&z7zwzz Rz z&z7zwzz Xzz&z7zwzz0!X zz&z7zwzz q0:0z:z&z7jwzj 1!zVW0_`0f0 @ ` p0i!  7!z_  pXjzjv'z7jzPz Xj'z7jvjz@z Xj'z7jvjz0 z Xj'z7jvjz z Xj'z7jvjzz Xj'z7jvjz0X0zj'z7jvjz0!p0*:zj'z7zvzzWg0 p`_0(2,"0\20 2@X2/3WN0_` p00` p_00ꄠ0Qꄐ! ud.)N`.40Z/l10\ 2@h12>0=-;-4K.)NG...-,-  0  0O      #0 ` p0Z00c8@S$T#>00>0,,4,,,d1S - 0^?40F/>0A/,8@D,^?403/>0>0,,,,00c8@S$T 8@D,0O-@-VMM PE`I Pp ŝ崵ᰥ810  <ȅ1ŝ8 05 <0\`80BS<1 .s<1.\`8Vaڼ5J+F K;* d `aa{:0 ``{:0\0SX l@<0D  S 8 +U;,  到*N @0  0[/ Q[ RD 0  t04pD *gS0 *A<d B  T  0[/ Q[T R| 0  5T0Q5(,a15 01"$0AxS!!Q0"*cR ` P QH d$ b; Q  Q Q  Œ`D: 10 S 0[/BPR[ 0PD S0 B 0 B0Qd0P +0S 0[/BPR[| 0P S0 B 0 B 0Q @ps,@P i+08P P /t0S 0[/BPR[S T 0Pt0Rx   B0TQ|0P @+<0S 0[/BPR[(  0P<0R@   B0QD(PP +VލЍX0\ Y4000 D000 0D040Z00 4D$08P P . + +(..D*O-WMğ0p@ Pl.1`-P0F0 -P 2+P-PK.P +.Pxp+ Q.V !P0R ,o.P0,0+,1S(1S 01R FH@x0VP+S000C`S 0"D@  @B;qF+q D0 0  0S] 8B080<0/B ."2 0 ,, R 0 0 @ B0Q P *0S 0[/BPR[ 0P0R 0 2 B0Q0P )0S 0[/BPR[ | 0P0R " $ B0|Qʤ0P ) )40SWߍ CP000/,0@僊 @  0T00  ,,, 01RP H@  02@FH0LP0>+@;1: < 111P0T0Q/ )))P=- P1!e0>   H |P 40S X*H1c : + Kb;K@Kk{ [ [kKe{ `a ;c+b;f+ `   +!u 1  0 + +S *i *[ *v *Wߍ0S8 , P=* P8r) P31!e0>   H $P" ..,.(,(( (40S ) , G+D+>+B,O-`-KM@qPp x|00  Q!-p \u t1p-X 8匰<0` 8Sp+;   0 *K F p  0[/ Q[ RD 0  t0p Ԁ+;S0P  *A H PT  0[/ Q[T R| 0  1TB0Q1D11F1H0AxS!!Q0"*cR `0P QH d$ b+  Q 0Q  0S00* -0 S 0[/BPR[ 0P0R  H B0QP '0S 0[/BPR[q 0P0R  F B0QʸP ',t0S 0[/BPR[R T 0Pt0Rx   B0TQ|0P '<0S 0[/BPR['  0P<0R@   B0QDH0P y'KߍX0\ j  00%-/  00- R- O-m L- I- 0E,Ӿ h' f'* b'c| O-_M0ş(P` **0PN0141,ğt墋 p 040  ))B*P 'P:*P *PZP5( *PpG-( Q0!419 P N0R e(*P4 ( `0R`; !0JP US00C PSA^? A110F2D$00J /1< 10S; @@B0@0D0$, B *#3 0 =)&) R 0 0D`2@ @0)1  1 01 0X0P P0P \0 `'1S 0[/BPR[ 0P1R !B D B0Q$ P b&0S 0[/BPR[ 0P0R 4 6 B0Q0P @&0S 0[/BPR[ 0P0R & ( B0Qʴ0P &t0S 0[/BPR[ T 0Pt0Rx   B0TQ|0P %,0SO_ߍ 4\TV&P) P1!j0>  L P ,0S &004`1@D`000 2@@0 �c L  ;' 6'P 0' &_ߍP `i j0@2@P+R;00L NP1T1`1d111N?X1>\1a+%%0S@@ L) Pi}& Pd% P_1!j0>  L PN K+(H+E+D B+l% j%h%f%,0S H&(''V%Bp@-@-PH10A MA`@(C  )])0P0 7+8;*C C0(,  $0)4!A'0z Rz ɛ0 +i` hz+ +H  Ѝp% Ѝp0S %(9RFߑ?BL,O-MH4@`0 F Pd(P+;(0*C 0 C( 0, $04(,& 0 xpR`0d0h0l0|0x0P0X  \ p0tpn 8D0H00z3P尀萍+##: .D;0gz,+0  000 @ @L (;C6;⬀0䐍JX\@DZ혢圲倡儱Z':ejz ze V T R dj J& f d j%*X+*Z+*<+JD*KNK+\+fj^b آܲı*: b:JJZjfz Gzv cjt *r dh+"DZ**$+z#*jZ%x+*z+*>+*Fj%+l+*nj@+k*H+gz|+帠j(Z`8`Jg,jHP+̐@p@pjJ:ZzJ:JjzX;F;jKn{:\{N ZL ZJHr`J T R P f d b l j h [p;^;Kk,pz(z``x~ | z jjP Pt v ++ + %0S 0[/BPR[g 0P0R!: < B0Q P +"0S 0[/BPR[I 0P0R , . B0Q BB0m m P !0S 0[/BPR[ l 0P0R   B0lQʔP !ߍ'''( c$ }0  0 P$ 9$t0h1 | !!!!$ &$A-M`@r%PP" 0S$0S P@ 0P0T0& ğtw p 0030  $#0  S0 %:%PP@"0S0S SnH0( `0  00;! Kc+@k[ [1k `+b Kd;cK `b  ;+t0S 0[/BPR[ T P0t0R x  B0TQ|0P !<0S 0[/BPR[p  P0<0R @  B0QDH0P Ѝ!`1  0 s#\# a"< \"0S0SpH0( `0 z00z!! Zjgj%jGz:@j 0k j1kz*Jgz za;c[aKd `+c[+{{zkz{j{z{zzb&l& # ## @ 8C-PMp@I$`P!A$PHp}!0 $Px 800 0%Ÿ 0 @ T  0Π!1  0""X  "l0S 0[/BPR[K L P0l0R p  B0LQtx0P  40S 0[/BPR[,  P040R 8  B0Q<@0P Ѝ x!| s!0 U$P%%V"#뤺C-PMp@#`P #PHp} 0 &$Px 800 0%Ÿ 0 @ T  0!1 .0%""X  >!l0S 0[/BPR[K L P0l0R p  B0LQtx0P l40S 0[/BPR[,  P040R 8  B0Q<@0P JЍ  |  0 #P!%%!DBb"$TO-MM@P` pP0P + ;3#P P 0,#P   0$# h0R S0R ء01@80X00 2@H0 00 H<@bX Ђ آЁ8p L`\P 1S 0[/BPR[{ P01RB D ! B0Q$J?P 0S 0[/BPR[\ P00R4 6  B0Q0P 0S 0[/BPR[4 P00R& (ڰ  B0Qʴ0P oMߍ0h0l0#ᨐ屬  00 I/0  T;$8$5$ ][Yy!hO-MM@P` pP0P + ;G"P P 0@"P   08" h0R S0R ء01@80X00 2@H0 00 H<@bX Ђ آЁ8p L`\P"1S 0[/BPR[{ P01RB D ! B0Q$J?P 0S 0[/BPR[\ P00R4 6  B0Q0P 0S 0[/BPR[4 P00R& (ڰ  B0Qʴ0P Mߍ0h0l0"ᨐ彬  00 M/0TO#L#I#qom l@O-mM`@Pp @0@ ر + ;Z!@ @0S! 04+6;(!S.8 :0!N/,1 B+D;4F H8AP 9,1S 0[/BPR[i !0P,1R0!F H B0 Q40P 0S 0[/BPR[J 0P0R 8 : B0Q<P 0S 0[/BPR[ 0P0R * , B0Q0P mߍB0 1!!!T!sB!! 4B',( G- -0@AM PXp `B   0cI  H0H SQ00 00 䁟ל  01 0. 0R 0P2@ 0|0S 0[/BPR[: \ P0|0R ڀ  B0\Qʄ0P 1D0S 0[/BPR[ $ P0D0R H  B0$QLP0P Ѝ  ~9̧4G-MP0P`p00@ 0  x0p@ SQ00 0 0@  01 0Y/Q: 0R 0 P2@ 0t0S 0[/BPR[9 T P0t0R x  B0TQ|0P <0S 0[/BPR[  P0<0R @  B0QDH0P mЍV S zxD$G-MP0P`p00@ 0l x0p@ SQ00 0 0  01 0- 0R 0 P2@ 0=t0S 0[/BPR[9 T P0t0R x  B0TQ|0P <0S 0[/BPR[  P0<0R @  B0QDH0P Ѝ<(O-UM8P@`@ @p0ᨀP  @@0@@x@@@ +"; @P W  0Fo!<+>;pp!8 :!!1 -  0pp఍pp<1S 0[/BPR[ !P0<1RJ L@! B0QDR?P OZ఍(5 0 0 00఍e఍ <1S 0[/BPR[!P0<1RJ L@! B0QDR?P 0S0S( 0Q  P@p,@  ( H =1S 0[/BPR[ P01R< >! B0Q  P 0S 0[/BPR[w P00R. 0  B0Q0P 0S 0[/BPR[X  Bt P00R "ژ  B0tQʜP \0S 0[/BPR[4 < P0\0R `  B0<Qdh0P nUߍX( 0`  sA Cf@=:dpp఍] [YWUuO-P-hßhc @}M` MdKlh0OP  P Pf+;vOύ+D;0(  T+G;!(  ` A*Ahr*L10 l"02011111122(2,282<2`2d2p2t2r?1?42P?D0濍x"K0`R  d΍ KX ͍8E2`001S1 Ry 0DX0 0` ͍8 2S2 R[ 0 ` ͍`8h0@  2΍TD?P00 @P \K@  @K Í@XÍ ͍@@A$ \8c1S 0[/ Q[d2S 0[/BPR[ 0G80KBXD" =80D"P0d2R h" B0DQʘ1Q@2ʜ1Sʤ!D2LHl2  T1! S d2`" 0[/ Q[2S 0[/BPR[ |"0P2RD  |ڠ" B0|Q@2Qx2D2SLl"H|22  2PDPOK[0(PpK0CK[d:`R+;0㜒 kR 0_+D;*JB Í +G;Í ÍÍÍ@ÍDÍPÍ{HsTÍ Í姛Í*IS(P LSP+K;2ÍÍ帳 xÍ|ÍÍÍ(S_Í+΍`S4\p0D40@P+; D0+K;( P`2P帳ÍÍÍÍ 2Pu+v; 0+K;( @`帳ÍÍÍÍPPpG iPW+X;0,+K;( a帳ÍÍÍÍQr }NV z0":0Szzwz0S&1Zp2 H0!@0F @00L01,0N?0V?<0"V82QB$ (0$ڐz@0zS"zzwH0G 0 CQL0S B-DT!@L!Vz0Vzz<0KC00@0 P100 T1 0843 0 h  X0T8 O0B8D:0K.\0X P -8 @# D3 0j/Jl}ލ ЍV㐳dvc~ =80$pPJ@  `TI 0 # 0R$ 0R000S7zV"1R 狸8".ڐaFx @pJ  z z[YK:* Vcbkk{z{z0@ P0S 0S?00?2P0? 09>\0 =80Vc p0S`$ p -DT! @B0 `d\ Pkf?hT0 #ύ __ZʏO J00 N( 11΍ D/>!930 Í H x1ύ|1111122222222333303\P pB43 G83<3L3H3h3l3p3t333(0@|3?xÍD3#0`R 2 d+΍D4 $#3R(3X P0  C 0 帀+΍4\3S`3[L 0  +΍42Sʸ2[E 0D 40 0 Ȱ̀}2S2[ 0  0аԀnh0@000W 0000PP ;300 0 ,3 lP0`E $`!PEl 8B? 0 04 o> (0 00 cN? 0 0 W> ,0 0 KTE D0 Gύ\@0  ` !@@" @  DB  1 J1S 0[/ Q[3S 0[/BPR[ 3Sڰ#0 B0Qh1Q3l1St!p33  #ȋx1vORj3|1D`31 0@0C:1z3zz( 0DX0 00 T`0  00 C00G80 00` D` 0㠀夰00Q0` Ch0`0`0 0 \`X0 @d8  4p 0@ Db r@A$!z x vtr p0S> l;$?008@2x2Dus1@2B D00`0000x2S 0C[/ Q[x2|"D0  \6@pd `0 0f/,3S) 3S0S%83S" 2.040h1 #3k\W0S l\>X0 =80D8`XT =80D$^\O M K0I4G E+>240DD|\2s q o0m4k\h>X0 =80O-P-`ğ`D @M@xT\X0ZP  P P 0` b1111111122 2$2H2L2X2\2b?d+f;1>r+t;1=+;1z?+;1~?n p2">| ~2#> P2?T2P&>L0ޟ`" 0`R  Tnύ P΍8͍(P!2R`1XF n? P00΍8͍`(1S1X@ > 800͍Ȁ`(X0@ ?L  00  # !@# "@ @@# P͍ xC|S CSCSCS(DÍs1S 0[/ Q[2S 0[/BPR[# d"P02R ڈ" B0dQʀ1Q`2ʄ1S(LPdKf[0 P@@K[ JkO*KZ+;]Í[Í(Í,Í8Í  B-DT!@l  1+;0+;4+;<Í妋`ÍdÍpÍtÍÍÍÍÍύ+;hÍύ $7΍+;lÍ-΍ `力SC(? $01 ->0P 0  SC+;` ÍÍÍÍ -> 0 P 0  SC+;` ÍÍÍÍ   P 0  SC+;` ÍÍÍÍ  V z0":0SzzwzXkp&1@2D00F@00H01<0>40N?00>,0!V 2QB 0ڐz@0zS"zzwD0G 0 CQH0V !Vz0Vzz$00, 0$@04< 8TJ PP |V xÍ xV 3@<PP#zz Q `a{zw{zzpW1 /-$+O -DT! @B`p<tpX;1吊V!狸 r022ڐj`hP绸 J  "z zk[J:Q `d+c  {z{z0@P0S? 0 =0->0=(0X0L`@Pp8  P@0 Tb sD  Í @ÍxC|SCSCSCSm(|0S#ߍ1V1S0S1S n?P01V1S0S2S >80 |0\hߍ!d2lh2  T$ P(0ޟ __ 10Vύ`1d1h1l1|1x1222222222222p^ύT Vt*΍  ͍ ύ ύ33 3$34303P3T3X3\3l3h31> (33>,3?`3?d3&>x#L0`0R Tύ ͍ύ$-΍k #3R`3W8 ? 0 0  ύp$-΍gD3SH3V- = 0 0 -΍`$Q2Sʠ2V$ ? $0 0 -΍k?2S2V -> 0 0 k/X0P000T  500 0 5  p0 0t@4 0 0 0$ ΍,1 B? (0 0 ΍,# > 40 0 ΍, N? 00 0 ΍, U L 0>򊿍80 0 1@ (2 0 2@1 0,,~ h1S 0[/ Q[3S 0[/BPR[ |3Sژ#0 B0|QP1Qx3:T1S7\t!X|33  #ʫ`1Rpj3d1 3l130z0Ch`r:(bzz jz|jnzj( fn?P0 0z08 u0-p0a/k0 f0L a0 \LP 0p`00 P 0 M`X0P $P008 pP0T,Q ~ `bdrp hblrpbtrxb|r @(; E 6 4 2 0 . ,, |0S \P L91`2d L倀%뀀`2S 0C[/ Q[`2d"L0 @kj@P >,0j4 ʫj`r(bjzz'z&znz:z0 n?P00 0 0L 늿0 WL0!011hL08 00 L `r(b( {4 w0 s0-0a/0L 0 z>,0 , 3S3S0S 3S ? 0L3S@3S0 SX3S =02W2S0S2S ?$02W2S0S2S ->0P1 #x3 sL>,0  H F D B $@ ,> |0S \b >,0? 0 =0?$0->0>,0>,0Lj>,0  & >,0>,0LULO M 8K PI (G n?P0>80=(0 ->0: 8 6 4 $2 / A-`Qp@p  0  0`00P`U0[/BPR[ @0 0R L 0A0/2/O-P-@+;]M M@p0Jo<0XphP8  0@D(PTA`dhl`ß+F; Ha L @ E 0 ΍ 0 (0#S0S( 0@0E>0} >0>0r80PTf?A401P tA>0 00(00S(`ZP  0SI 0 ʐ14 00S000S<d:l T狸0`  0ڐ*H˺i0A$ p Pꪷ  P Z   j;+[ QKJKK{z{z0Pp0S0`$ 0R0SY>00480jύ( d ` 0 l0 ;+` N h@T 0[/BPR[U `@T 0[/BPR[0  ]ލ ЍB-DT! @pV_   0΍DP f̍.0  F! !@ "@! 4吁唑  PPPPPP : (?  A$ 0L*PB4B8,B[ 0!4p00t x0|0唱.{㔱  T 0  0BD0 ! @Ȱ@䰍@A0000001 1ڐ:0Szzwz0Sb$1ࠍp2 D,00$ 00<0000 0d Tl0` Pڐz$0 zSzw_,0G 0 CQ00T !Tz0Tzz0 00 T0 zzwzR  B T0 `!Pzz Q `a{zw{zz0pW40PP00S D<N>0s  0 0m/` I -0N>0]  0 0m/J 3 >0] P0@ 0R!  003/-DT!@]4NR `MR 0@ 0R   003/ 12/2/40PP ' D>0 hP ~`P ~ >0 v >0s O-P -@+;MM@ʰx0n@0`pP$  0HL(XA\hlp`tXß+F; ` PaT < E0`( 0 0#S0S "fO2  0-  0 p@ E  $0Pl0W,0t0009, zT相0  0 `.ڐJPʷ ျpX 0 ۸ʪZ  K;YQ `L+J  {z{z0P `p0S0$0΍ (0`  " ;+` H 9 p@T 0[/BPR[; h@T 0[/BPR[ L1S 0[/BPR[0 ,!0PL1R  P! B0,Q0T(0P rݍЍ B-DT! @|dK P^ (0  DP Bύ0 HN P H!@P  P"@P!P P  L< #,!?0R(A4! 0TB4+B8*x010| 嘁+BS 8100 1.s11 T @0  0B"D0  ! @A A00000011ڐ:0SzzwzWV$12 D80B?4 000H,00(000l Tt0` P ڐ40 zSzwB80G 0 CQ T 0 !Tz0Tzz0(0"b T0 `P!zz Q `a{zw{zzYHPPQ , @0D(0l0,0t0000 0< 0R 003/ 0< 0R 003/0CC 2/2/HPP Da -DT!@J?L0pP Z|hP V|LNn J?L0A Q/0G- 0CQQa 0AP 00 NSQ2 C@2`P@Lđ CRR: Qp p0Wp!qU  EP 0  0 AS:UŒ L P  L0 BXP10!#3>Q   € c\ A0R1 0  P  pp偁 0 0 \ O-@0T 0   0p`PD1= S2 ]  fTK  D0 BXW10!#3>Q#  cS A0\10 ₡W 'yY 0TO-@ -p`AM0P∐P  0 @0   " $& (* ,. 0+먀"*z gz8#Jzz+zjt$*, jj^`jr%j-jj&:.Yajv&:.jjRAjs/:jj'jsZv0*ZZ(Z)Z1JnZ51JZZ)ZgDub80< BQQ SY1:" $ C& ( @PS Dp6 8p 0$0( ,  6 8Ȁ 0S 0[/BPR[ 0P0R 6 8 B0QP 8@'7 (Z0*)Z1JOHOGȰH 2 pB*3 :5*eZx:pZd:6j6:fjujZ4j`1Zr7q 3ctʍD7ڷ!jzwjZ'ZhFz7ZZgzh(z%zZ:!:1SR?,z-Zzwz(Z'Zuz%ZzgzZZ:!:1SRl.z/Zzwz(Z'zgZuzZzZZ:*1!SRC0z1Zzwz(Z'Zuz%ZzgzZZ:!:1SRpXX *z+zzzZZj 8j2j3jMjjZZZZj 8%j2j3j7ZZZZj 8%j2j3j#jjZZZZj 8%j2j3j jj|+z8@<#jTjj@"J@*z-/:Zj, .0*lfZZZ!:*ZuZ*ZJ) 0 0ZiLʱk:Z+JZCZ5Zu1JZj)0 ZZi0 KjZej6j0B0C?o2S%j$ ZjfZ,ZZJjZuZZi 0 0 J+Z!Z**)d:EJeZJBZ+ZdJseZuJj)0 ZZi0 jZej6j0B0C?o2S`'j& ZjfZ,ZZJjZuZZi 0 0 J+Z!Z**)d:EJeZJBZ+ZdJseZuJj)0 ZZi0 jZej6j0B0C?o2S)Z!j(Z*e %:iijJ))+:Jjzaj:jjy0 0 jj 0Djy0 j0B0C?o2Sji#J"*kj$*&:$J)fjDjjhfjv%jJ(:hKjJ :j'ja 0 0& hcD:`J*JaqJ3z)0 JJ)0 JzDzzgzwz0B0C?o2S|-z$J), z'Jz:hDz7z'z( 0 0:zJ(&(cD:GJ :Az*z:qGz4:zi0 zz)0 zzzwz0B0C?o2S6/z$J). z'Jz:gDz7zz' 0 0:zJ(&(cD:GJ :Az*z:qGz4:zg0 zz)0 zzzwz0B0C?o2S1J$Ji0: $j((d&jh$J)J$Z) j*jJZdzyz8zfzx0 0 EZ4zz 0Z0 0B0C?o2S8 AR!LJ p0Y C !*Z퉡Z jjzuzgFz5zzJ C^*0CCc^Bjj C3Z=Z=: !pB ^\<0P RȀRPP0A p"D1 0 0 0 06 8000 p0 0 006 8u0S 0[/BPR[~ 0P0R 6 8 B0QP |8P 340S!Aߍ 000p  0\!\1 p0SAߍ @0S 0000<>@0S 000$*0"*<#J%j'j)Z&:(Z@0S 000$*0"*<#J%j'j)Z&:(Z@0S 000$*0"*<#J%j'j)Z&:(Zm.(Ax@A@0S| 000(Z0*z<+z)Z@0S` 000, 0+z<*z-/:jj1J.0*@0S? 000, 0+z<*z-/:jj1J.0*@0Q 000, 0+z<*z-/:jj1J.0*D@A%j-&:.'j/:(Z0*)Z1J$0 8+z<*zjj, -./:0*1J' 8+z<*zjj, -./:0*1JM 8+z<*zjj, -./:0*1Js 8<*z+z(Z)Z 8<"*#J$*%j&:'j(Z)Z 8q<"*#J$*%j&:'j(Z)Z 8d<"*#J$*%j&:'j(Z)Z 8W<Ia880< B^ R< X$*, %j-&:. Kz>8P 40S UQ/; ;+t9Dzz JP{z/P0/ ư>@ zg Q/5z z'z^0Ez]Q/(?@ z j jQ/zzQgjjzz/6?@ p@--z Q a@P @   V p>@-@Q-MAzzg J @ JTȋzzЍȋ Tzz@-R-@M> Q0nYf{ffffjzPQzZfj&'Z&z'zgZ :J*y{wx{zkv IH `1 0z ' V 0 0ɛȋ m DЍQ0~ g!gggzzPPZg'j'jgJ:* y{wx{zzjf{ffffggggO--P RPOMl@      *D+ QZPeJeJe:e:e*e*eeeZj jPzfzQ&&f& & g*''Z5'JZ'*':'J:0 H8 (p┠̠D`␐Ȑ@@@@, @: p0`>党j*:jzzIJhJCZBZHZZ jjzzJuZuJj6ZfjjGzjgzjzzzzpȠ@11B?H p ( 8 75P 0S 0[/BPR[= 0P0R ( * B0QʼP Oߍzx@B0CnJ@0kQ/5Z_ 0#eJeJe:e:e*e*eej zzPS*&1J:qZ'J:'*2Z r eJeJe:e:e*e*eeeZeZ_eJeJe:e:e*e*ee00z3jSz7 O-@-`@۰&M M0$A0L0B,cPB΍ $0*bS b @+B;$1D F !(,04 0[/ P[0S, <0,1  pP0GP0 0 L @0 TPP001 R VP+;0 +I;N0I <1@ 0㈕V5555@1D1Y>85X5S 0[/ Q[$1S 0[/BPR[b !0P$1R  T(! B0Q`5Q1Yd5SVl%h1 ,1  5I%S $1  ! 0[/Bσ\R[' d%0P5R%  B0dQʌ(0P 1Tȋ0۷ɋ'JPj`F0 CZfz%@@V`0 IXB?0< 0,ZP@@`F Dz ;z@ V V`5d5]   0x00 l   0C01 B4 #<\8.4.|- 00800(00N/BSP -<18!.s<1ʄX8 T󭫟0 0TH0 1  ӸP< "!D20@00 0T 0 ᔚ ?O p` 0 +7#``p`zzZH0Z0 Vo˟jjT0zZGz  0z0 TZzwzgZu%zz z 980S   3/T 0 0z0T p  0z0T `{z`pF0  Zj z z' zV' z O NJ  K i HJjj@00(0080D0(0$0080> >44T0^ ek0 e{eez T0zSZg'j'jgJ:* {w[ukvyxVZ I+H 1 0L@DDz ' :0 p00t00ɛȋ  GI$0h% |5x50pō2Dtō`50l%( 550㈕dō%555S 0[/BPR[T d%0P5R%  B0dQʌ(0P $1S 0[/BPR[5 !0P$1R  (! B0Q0,(0P 0S&ݍ Ѝ20(008020(008020<00@00VBS`d5 .sd5/`! U%1D  28 P0 0E X00˷T0H 0 0U/D 㚟hp` ؂?O`\@V @ P 0㒋 P@ᛓ)0PLzzZH0ZP\@`0 4j`jZzzU0p:Z:sJ .fZ5Jt dJ'J Z' Z @ iJ80 p  S 9<0S;  3/U00z R pt+/ 0z `{zR0 `V0  z -z* z J  L j ZzZz:vjN7uwO6~cZ.J-JjJZJJZJJJ$Z4Ŋ~ɻ~ 00S 09`P P x0 l00@00<0X00@00<0D00@00<00@0(00<0>44P#("""!"0 qVP000\``gq ` 00 0 p0(0P8P2`000p p 000  0@0`<`  zIt LjzjzzvGz6zzzzwMʛHINEH 00S 0P080PP V0 TP0@ CR< D0Rg !Tb0T]0M   (03/:ʛZzzZM  @03/X0SP0P CRT0U !U0U0Z$Z5z pzZjj80jj ZZ 9zzlL&ݍ Ѝ`51Veke{eeJP080PP K0S L  ` PPO-pR-`@NM M⨠@AB 8P0E@0 㠠0 Ph@+00{Wp0嘐0+00t0唐  (`D 0h0`FpJ+ s'0I@$@@{ H  0S 0[/BPR[Y l 0P0R   B0lQʔ P T0S 0[/BPR[; 4 0PT0RX   B04Q\(PP PP Nލ Ѝ@J ppFX1X!u0 00(10[DQ(`0F p$p 0#p p  000}Ϡ , 2 t0h 1|pM P P :B`L  0R /0P//@-@P 003/0@0/@-@?p@-@t,3,SP00P0 1S 0[/BPR[ P0 Q1 B ! B0QE?P /0S 0[/BPR[ P0 Q0 B  B0Q0P 0S 0[/BPR[i xP0 Q0 Bڜ  B0xQʠ0P `0S 0[/BPR[J @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[+ P0 Q(0 B,  B0Q040P h0000~pTst<|Ȕܞ p@-@t 3 SP00P0 91S 0[/BPR[ P0 Q1 B ! B0QE?P \0S 0[/BPR[ P0 Q0 B  B0Q0P :0S 0[/BPR[f xP0 Q0 Bڜ  B0xQʠ0P `0S 0[/BPR[G @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[( P0 Q(0 B,  B0Q040P \0000pWvt<| O-` - s@MpABCD۰E˰n@gP3+;L <P00N00䠄0*E @ $0,4(0040D80*I AD\0dl`0hl0p0x0|00 B| .t0000000 L0000*J A1 E1111 1JK021t1x1|1N@pRTVXۄZ˄䛴䫴仴| ໴ Z˴ ˴0CX00S00 0 f!1 !0 l!000 P@ @[/ Q[[/Bσ\R[ Ѝ 00Q P 003/ 03/Ѝ 1/YtP /-t+ P0000 Bf@L` G-@ -P!.: <00>+@;QL+N;(H J$ HAL1Pq $0 b S  b/ ("#.$2 ,"04 0[/ P[0S, ,2  1S 0[/BPR[ 0(0 0R! B0Q,$2 "P+; 1 !:+<;2> @ , 2Q!S, #>P z {P0! +; 2 $2! P>$0cP $0 b S  b/ ("#.$2 ,"04 0[/ P[0S, ,2  D1S 0[/BPR[M >$0$!0RH! B0$QL0$2 "P+;D1 @!H+J;2L N ?0 2HAL!S, #>P  P0P! +;Bo@B \  2 $2T! 0 (~@ 0 $wTJ%VHP;!Q; !Q@P " " $@z gzz0 tgzȱ倛hX傛H\儛톛w 0PS   BV0SItHP;H1 R;  L1R@ ,w2,0#0o$@z gzz0 tgzȑ倛hX傛H\儛톛)0PS 10  B0P  b __10!1H 1"@10Z+\;x1|11111112 2>"V X1儑d0  01@2 P  2P 022CT @崠 03 0 ⴡP  $0 b# S  b/$2("  ,0"4" 0[/ Q[0SA, ,2  2  x0 <011KE@0P@\  0DHP5 0  @V?| P@RP@0BSI"Q 0*cQ `(Q b$ `; @qTA @QpQP*00 "SN0Q 0 20 C2P| Rʀ0P:$2S 0[/BPR[ "0P$2R("  B0Q, P U|1S 0[/BPR[' \!0P|1R!Z \ B0\Qʄ P 4D1S 0[/BPR[( $!0PD1RH!L N B0$QL00P  1S 0[/BPR[ 0P 1R!> @ B0Q,0P 0S 0[/BPR[ 0P0R 0 2 B0Q80P 0S 0[/BPR[ | 0P0R " $ B0|Qʤ40P D0S4 ߍ蔕#@ꔵ+ @(21(2LH1} 0(0>$0  >$0  7 2RR /R<t ߍ0p@@1 x90S 0[/BPR[| x00|0S00C@| Rʤ41!Pd+f;h j)+ ;1" $ 44 1  S`ڸ10@ 1 0S 0[/BPR[8 000S00C@ R81!Pr+t;v x-,+.;10 2 8 1P S1070 2( >$00  P  P0  v+x;1r t1   =P P0  h+j;1d f1 4 202>$0jD02d0S 0[/BPR[ x00|0S00C| Rʤ41!Pr+t;v x)+ ;1" $ 4 1  S0000P+;01r+t;1v x0S 0[/BPR[ 000S00C@ R81!Pd+f;h j-,+.;10 2 >8 1P SL0000PR+S;01d+f;1h j 2RA   >$00(06B($ Rp 1~A 0u1$ 弁!0tB00x00x00.00k ND0S <>$0$( 00N  x00@-P@-0L@DMA۰B 0HH 0S S !;+*  0H˰H0 P+ : * pq;` `aˢ:@ + ++b ^ ;@˵ ; ;;c ^ x+ (L{ { @ J p `+ p p ̋@ ·  O8!? ڻa?(0 8H *0 0> [ B Kckc{  cckc{z z p+dq+ e+ bkg+b{N `;h `N 0S;s I [ KۄJ  `;`;N;DЍ@ ^  `^+X +C8`G080<0\G P!P1 04 ++;+[HH8`080<00 +0 p( 0p000@ N 0H˰H+;0; +8; +0=9RFߑ?-DT! -DT!@-DT! @  X @ | op@--0LMX@\P [ KHH0  +QP: * pq;` `a@C ˰ ˵˴L ^  6۰ (J y : @ kJ N; +˴I;J; @ cg ! e` p b+ p _ Y+ p  R M 0NЍp@ ۰? ۵۴M ^ 9 ˰@ .  `^+( +`G00 0 G  200 4 0$˰ ˰۰HHp=9RFߑ?-DT! -DT!@-DT! @ < O-` -zTM绸 zK9;+ p竸 ) `;sq ; 9pZ V)E +    0J*z p `q 1^ሒ^' @   +0 0C 2 a 0: p g˸@ ۱7J 0 0 - *`)ZTЍ 0 0pp @ PJ J@ L JX@@:TЍ G-\$- ^ \p`P˸ 相 9 <0ހ@ 9J 3  yJ@狸 9H@:I TۨM :0 0C: ʫ :૴H<J @˰ @۰J `  `z jJ9z ˸ 0 0C:相@۰ ` 0J8 J @ @U  @ ^@  I@Tr۷K }I˰ Rk0BJ0@ : !. ) Y V S@-`-pdMX @J @` GP `` `  @4KPUX J` ) +p+L+p+9+p+&+p+ p X aJ`  +p++p++p++p+i p GX ?J`  +p++p+j+p+G+p+$ p X J`  +p++p++p++p+ p uH dЍ+[K{k;b+ k[kK[;K; ` @ [K{k;a+k[kK[;K;Z` @l w [K{k;a+k[kK[;K;Z` @N T -DT! @ [K{k;a+k[kK[;K;{Z` @- ) [K{k;a+k[kK[;K;]Z` @  O ` @+BZ` @ +4Z` @ +&Z` @ +Z` @ +[K{k;b+ k[kK[;K; ` @ [K{k;a+k[kK[;K;Z` @ [K{k;a+k[kK[;K;Z` @q [K{k;a+k[kK[;K;Z` @S v [K{k;a+k[kK[;K;Z` @5 S Y+`+a+p }` @"w G+`+a+^Z` @ _ 4+`+a+KZ` @ = !+`+a+8Z` @ 4 +`+a+% ` @ -DT! @VO-@ p+ a -MM 墋a 0T+ N`   @0@R P @(`@0{0 p0  Nt0K[000X0x00P4pPpK[|P+;Dp{ ` G{{ˀ  N0 4p@ 0A @ @< D)p1 @0t0S 0[/BPR[ T 0Pt0Rx   B0TQ|P Gz| rHz@ n :!*H Jfd0 Ic  ˉ>P0  P˼5/0S 0[/BPR[m 0P0R 6 8 B0Q0P 0S 0[/BPR[N 0P0R ( * B0Qʼ0P |0S 0[/BPR[/  -DT! @f@'WA @BoP`?\ 0P|0R   B0\Qʄ0P qtj x1jJP 0C8PC1 V| PUq t 0! 0" R < _10 ` 0 0 #0C*R H+ @1 SJ ;+ pNK;s +r;q+KK [ ;+k ;+k {Q{zkz{jz 0zD  H  L 001S11S~21S @1Sڀ1 Q " 10P Mߍ Z? H+ IPy @1SX m(0S 0[/ Q[`0<`S 0[/BPR[@ P0LPR`0 ENd  B0@Q0Q<00S0 @0h0  0$ (Pp cp1@ E\  `P0Gy ʣ~4 Q * y Q ' nXUXR Pdp M^0<0( FS9k0P G-MxşHpP@ ( P? $0 b S$ & b 0( *  0[/ P[0S, 0  (0S 0[/BPR[  P 0PR(0,  A B0P04`0 P$+&;( **E A"0 0 0`, S 0P P04  (+*;0$ &08 0S- Q0A,S!!Q0"*cR `0P QH d$)b+  Q 0Q  0Q00œRQPK000K "2 0\ 0X0h0 x0 0 "0@11S021{ʀ p0 P` PPT "DP0A 嘐C2 0`0( * 000帐`0 80D 00( *P 0S 0[/BPR[8 0P0R ( * B0QʼP !01S11S621S~P pP `P PP L0SЍ0S0Sx `00,0+ |2Ѝ B0  p Pt0㸐DRC`( *  !$0 ( *0S 0[/BPR[ 0P0R ( * B0QʼP 21S 0P㸐P CD`!  ( *    00  ( *I0S 0[/BPR[R 0P0R ( * B0QʼP P6` Pd0㸐DRC`( * ( "40 ( *0S 0[/BPR[ 0P0R ( * B0QʼP  0 `00P 0GL0S "P pP `P PP JO-p -@`QMPV S@x KHppV Vg V+ 000Dß@  0 0#0 30@0 0SH Qߍ H Qߍ P0`T,  @ @`PCS CS ʛ@˰I 됪T a `!+ q!8Vq Pk`0T  @ @`PCS CS ˛ڌ됪竸*I 됺 J H 0P7`0T  @ @`PCS CS ʛX@I U됚  ` 8Y 0S h㈵>t|n 8 G-0- @MM(p@Nn`dčhP0EF 0 01@0H 00   p 0@S 0[/BPR[I d P00R ڈ  B0dQʌ(PP {L0S 0[/BPR[$ , P0L0R P  B0,QTX0P YPP @PP H ލЍ52\ZPP @PP o`3K;c+ [  p`[ u `q!!K$   p` q `D1 ;#   p` qK`C 0 //h㈵>z- z 7j-M fjw @ +Jjj 7 fz7 z @ -J zF 0 zw @ J+;q+  pH H N `qЍ  zz  jj h㈵>%[+: K  p`K t `qzzz K  p`K t `q//h㈵>O-M;p8P<@`t[jZ Zz*KqaKta+p++4*Jkqakva+r++$00 0$唵   010    jz ZZj7zzJjvZJ*;`aeZ Zj `;Z$ qã p00C0S CS@oЍ u4h㈵> B qw++P&Zn [J;a p++ \e+ P 0 +[+ pYݢa :+/+ZG 4J;a p++ />+ ) 0 +4+ p2ݢa /{  &K: #a2cS+J/Z/+J +b+J+bf@v@H}m?h㈵>C-P`B`IP0剁a@ 0-pz Mz@ G1g 0  ! M 8N"0  큑 0zzG1g 0 0 ! M 9NU@E@DQA 0z zG1g 0 I+H !KK MKtNd (P@[K[tΥ[te P6J P+;   pqaH:ȋዴ  `^ad+z++ow+ `^aI:ɛᛴ a a N `d:ʫ૴Z ЍeKd+HJ PWk[ [[u  p `H:ȋM0 `H9ʖɚh: )ʪ @ JP@ژ@l8.˟  `̊x H9ɚh: )ʪ ˀ@ eJ@m8 ͊x `  ˴S Ѝf@-DT! @v@h㈵>IP  `[`[N[eI:ɛ围0 H9zzɚK: )ʪ ˱@ I^J^H^K^L۰)J@۵g8/  `Gz;zI @ J@˵zx?_ Ⱥ{ `a  ᛴ Ѝ0v zz0P@zh>zk? . ˱zA-0j(M@0*@[j;z K  p`K t `rJ k  p`k v `qfz7Qzw+bfj : ++: Q> a`Q- ! (Ѝ p`P 0$0&ᔅ   000  6z z*jj (Ѝ  Q } P @ h㈵>t p C- -@pM` d pPt``l h\0T!@I@DA1H9ʓɚh: )ʪ @ iJ 0k{@l8j ̊x  `&  @PJ + g W++a@ P Ѝ + 9hh;igfKag;b;"+c[h+c[;+{zkj {zi+{z{zP ` @bd EbFh[fKg;kj P@ H 0{kP  h㈵>O-,MTXP`\0!LPq AU@EP @@ A P  ;P P @p@p!02P 0 $0 0 ,ЍO--0@kM4(1H 81L aP $0 b S\ ^ b^/1!.` b! 0[/ P[0S, > 01  0  P HPp100CS>(0(P 0  0M2HZ `1dAu>x00 HTAP V HdZ `@P 1S 0[/BPR[ t!0P1R!` b B0tQʜ>00P 04A  @D$1AQ$TPЛp`0̋0D00$0, . 0 2 4 6 8 : < 100V0F0 0zʓLz7ڐZO=!z %ڷ @ e+^M;^L^O^aKJ0@Kgz|ʓ o? `e @ K۰ ۀJ@z| ~ `: K+ +۴   p` q `b=۰۴}0n۟> ʓ0 0zjzw:f? # +@ cK^O[^nz^f^b J$0@ ~ʙa6c@ KJ@+zw z| ` K D` 0p @{0P0ʓ % 1p$0>j?6~ 0  `  M 0NP 00ʓ h㈵>f@-DT! @v@dh g 0i |l l l l tl n 0GW, 08 1A/@ @ ,0` 0p@ @8(P0` @A zzG1g 0 e0  ` 9 _M 0N}PG01  jZzjez7zZF? % ;@ eK^O+^e^Fz^c J, 0@ zuzfjvajej@ KJ@;z~ fzw `* K  +  p`+ r `a0 W 0 cB$ 1: ,0`  0< C/l2 n`p@B4 01允P z BzC G1 7 _0 _ `  _M 0NPp 01 z  ڑʒzL=ڷG? - @ M+^O;^L^G^aKJ, 0@Kgz|ʓ Az7 `zM z@ K۰ ۀtJ@z| ~ `: K+ +۴6J` 0p @G0P 016z02zړ4ʝM77Z3jj75c8 ڷʷ*ajvF?+b J:#+ o klkx;;HKވKc;<`T 0 U00E0;j1 cjz=J6 ڒJtZ:z 0cs x[0YX  .k ( m,0! 0 bF/   2D F /0P. |0!0 0!E0&P2zDZFZ 6z8ڝE7EG 3Z77j9j5jv4Ze?ʷ*ڷ+baJ 0 t14nxP1T1n .> 04 xx hLb c$1(!) \$(! >J ;'P$K$Q0(a D$q0(a,+;0,+;s,[z00, 0zjjvz[K*nz7 ": I;K+zzj;K+zzjF;[zjZj01 j JzJtZZjJz[GZ5 $* ;+; j00 j 0zZgZ5Z; JZu $Z +N+K[ z+K[ zV+;z+;zzz01 z jlj6jK*zjv ": U&+$"k z{[K; jz~00z 0ZjJEj6Zj ;ZuK[{ -z "k$&+ ZJ[ZJ0P $ P }x((@P O-P -@(0MP|hPU, X@T`1P+Q; `p2dIt0p0l d`aacdecbbx0YX`ep0SPd0P t Rab0jj McHf8 R9` ` (` `t ` `tIhl!njh!hf!!jx0nl Sẫjnl(r+ 2[X dP@@  ̿YDڲ  ſY8ڴP    ̿Y,ڶ   ſY ڸP    ̿Yں0   ſYڼ  ÿEX @` PؠءE_ÿآ ФТ\0,С#C0@P#C ?#$ ?$ `l0p00h0S4",",#+%+$*#*!)!) ($(l|@h e b _ \ Y V S PЍ 03O-P -@(0MP|hPU, X`T1PKQ[ `p2dIt0p0l d`aacdecbbx0YX`ep0SPd0P t Tad0hh M*#Hf R `t ` `t ` `tIh!lhh!hf!!hx0l嫨j Sḋhlj(r+ 2[X dP@@  ̿ UD   ſY8P    ̿Y,   ſY P    ̿Y0   ſY  ÿEX @` PؠءE_ÿآ ФТ\0,С#C0@P#C ?#$ ?$ `l0p00h0S4",",#+%+$*#*!)!) ($(6|@2 / , ) & #   Ѝ 03(0P A-PMP `p@U@0~,0gggggggggkT0>5ck 0c[cKz:0 T+aKt a[ukv; Q:+a }zx{wykk {P PЍckc[cK(0P A-PMP `p@XU?0~,0ggggggggg{T0>4ck 0c[cK:0T +`Kt`[ukv; Q:+a }zx{wy{{ {P |PЍckc[cK-MU +++P k ;+K [@@@ ެ`Ϋ`ijk{qgkk{k{&h+j;{K;+;j[+ d{@ {[KJ `Kdk`[d"k;d([+d*;`,+Kd$ `.K& ЍK Kk[;+ { <O-(-P(0;`M0;SD00H0+_'cP0+ C   qP0F p  , 0F +8 4< @0 40PV ! 0q<0``a 0 'chX82*R6J LV! d)j@H$IdbDh&nRbIjl8* V 0j 0@0 L P @LP P@@ PF @DTRP @ \G H@`h&@lal!l JnT4^`(&X`H&x fZb5Jp&4 f(b`Pid~bFh5J(bL&vdnt)*jhhnRj(bh`h(bhfnnNh&l㫨j^hf$@(bljkf+b[K$ 0   @V0   PV0  ~@V0  tPV0  j@V0  `PV0  V@V0  LPV0  B @V0  8 PV0  . @V0  $ PV0   @V0   V0   0  P@@@Q!\@@h0PB$pWlP 后(@P%`@!0 P0P T 0X0tpPdzD0z zz zz zz z z  Ѝ``a 0-@PKKJJIIHHGGFFEEDDCCBBAA@@0/;Y @-M @;K;R ; [ {+ k@[+@;+@ [b ;aeKK[K;[ktf;Kk${e$Kc{{K+e{c{k + @ b[k+J `+b; k"";{"(kb*{K ,+b$K `.+& Ѝ+ ;K[k{ [+ <O-`-PPiMMpPN0E040 +Yp Cp0St0S  0l0Sd0iލЍWPm@PXBύ8 $0*bS b 6+8;0: <   0[/ P[0S, 0@01  0 @PP0ESqW|U\U U- U U3 x )t0 0  0 040800 @0L N t DM L  P(0 0PSS@00H 8X`0l 0 0` P6R  \h P E 0> B Q>BP"\  E  ,@\) 0x 0 |娀iE]0 0^  6 2 0  LG. 8 A 0 9Y $, R{\pa{kK ۔ ˔ p(`K{k(,0  zVSK:[ zV+zVk[zV{0::  e0EK zVKE;e;`jk*;sk;zVmzV k&{;:K{K[mnF*dk[K[[K;xkv>{w,;%<*?/:$9#={k ۄ ˄1S 0[/BPR[? B H F H !0P1R!  B0Pʬ>P  5)+02 2`` p`\  0 0  `0  `& Y$10 08F/0+\;S8!  @!D!DD+F;41H J0<  0[/ Q[ R!<1  t0Sp`{R !L, *C Z V]Pp`FHp VT `P` [  E0S 03/0S{ ; K+[kTl1zSk[K;+  [ ˔۔ gbkbg{{k | kji{;+r{{+kk{[;xkv'{rk[1{/p[~[u }[;s$K ;K 0[/BPR[ L!0Pl1Rp!  B0LQt(0PX ȿp` pWtt0* R* d 041S 0[/BPR[ !0P41R  8! B0Q<D0P 0S 0[/BPR[ 0P0R8  ! B0Q80(0P qp` pVʦ),0 !0D aan∡ጐ@@P aN1S 0[/ Q[l1S 0[/BPR[j L!P0l1R _p! B0LQʀ1QH1Lʄ1SIʌ!L1TPt1  1! Sl1h!  0[/BPR[7 !0P1R!  B0QʬP پ KdkK+b[e+{g[;c{n ;h kfmk w 1H1 @01eG@30 0430 080C0@0VV0¾0 @Pp@P0ESW 2GU1 zzK;J:W;$K#0~00g[g{gkgggg+ggU@**  Sᡋq+ph+b`akq(" #pcda@+ (`5+$ iaKh[bkb9`; xi;hK[{%+2{k|{@  00;;<+;>[>Kzv;y+r[x$[%9k: v{g[#k&{#{' ko{nml +"k+k00 0m@qKx00 0c p?>??UUUUUU?UUUUUU?UUUUUUUUUUUUUUUUUU?UUUUUUſ L< t< : ; `,00054  X  0ep00 x  A*ᄽ Ⴝ 200ḽ ᶽ崽@岽l0S 4唾8 b ` ؾ p@-M1@ `P0$+0, S(K+b";.&*[Kt{d[u ske $ d{gs;p+bg+ {f+hkpk,(;.+*k;+ a `[bKac[K[K Ѝp5Ѝp0A-XM2@P`0(   0 iPn $0*b S b( D0H P @+ ;L PT 0[/ P[0SW, L0  09P00Splq p 0T10  fO0吽D0S 0[/BPR[' $ P0D0R H  B0$QLP0P 0SXЍ +᤽XЍ 0$0T  ⭼0S ᏽȿ9 7 8 P+;O-PEM0 pHP@+;`80 <0H0L0@pDP 0pS P  0<0S 0[/BPR[  0R@  B0QD'+;P #+;T0  >T0DP@pS|m 0P P0H  +;p0 t0L &p 0 1@ ` 0屾TQ  <0،+ Ь "{${&k([*K,;.+r  {/Sk[K;+" 0[/BPR[F  0P<0R@   B0QDP ̻Eߍx0D@0 @ @+0-0 00 $ A*D0S; 00S8 R5P B0 2@T` P0r9 B<5 3 p4 ុ뾾 ᚻA-pPM`P@ T`00æ? 09 00  ݽT@@@A ЍX T07 00 p pݽƽý낾1 83 |1 2 @-pPMP`@# TP00å? 0 0F0 D 0 峽 圽Tڄ@@A ЍT  Ѝd 0 0X0 D 0 pp喽  |; y80 02 `0 1 p@-@P>0T" J0C s pQPp@-@MP= "[kaK k{{;kfa{f[aKaed!!m[ek njeK! aKo+h+g;fa[kbco+g[ea{d`x+[+; [;{ x{ЍpH `D0] 0X  & ˽. 0 //////////////////////////////@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/@-@P 003/0@0/O-MDH @p\0pG ` i0BB#1!0  僢10WF0ڃ!A0 S !! 0SOP@W;+  0 0KkcK[bk;tKa[+v`Ku t\ ;Z P @+DD D0^@0@PW  0 0` q\0 S@0 0S@0000ЍO-,MpPX\T`0 `F PlL1 L V@EڀqP  Pp@OVjjzzZJFZZfJj5ZGZjtgZz5zu Sj@pXjz z  @@TAppVz zgz'zw S@zPPPP ,Ѝ@O-ዶW\ H0H @-0@ 0P00 ,P (upWl H0H @-0@ 0P00 P _W H0H @-0@ 0P00 P IVpH0H @-0@ 0P00 P 3hVH0H @-0@ 0P00 ԧP ЧVH0H @-0@ 0P00 P U H0H @-0@ 0P00 P `U $0$ 0@-@000Ե U 000 0@-@000ǵ㪦T $0$ 0@-@000巵T 000 0@-@000媵㍦dT $0$ 0@-@000嚵$T|000 0@-@000卵pS|$0$ 0@-@000}S 000 0@-@000pS|S $0$ 0@-@000`0?l0備?l0x0P|000Y000Sx?l0›t5 Sp 00h00* 3S- #R0BSS"Q0*cQ `0P RH d$ b \ 0R  0R00œQRel5-G>0 l@čDčxč|čs3S 0[/BPR[?l0H#0R# B0Q=0_*cM>0$ cP4+;#3 4 ?l084:.S#S4Y #03-+; P*BM. 0 4 B4:l%0 h5 0l5l5S?l0厖PpH l5S~ #3Sy  0. Q  SJ D?P l0 0 0 @`1č=΍d1334444?+;3> h0;č33SPp.h Q8n@@T13#0%#0S 0  ᙙd4qqd!R$Rh"1S 0C[/ Q[1!`1@d! T3PUYp%lu 000d0SPt5Ps0wt5@= @pWl5S PExx0p0d Ѐ T|Q @0 004000TB@ t7 p, d dԴ ȯ | 0G0!x4Sy Pm 00$0( d,0p t0@ |xUP0  0Pl5Sj l%pp5RtU`AP0T0p0h50t00@ 1x0$1|0Җ ϖ` 0 d ᚔO> 0d ᓔ徖p5SP0d1 `G=3(20 ;003S 0[/BPR[y #0P3R#  B0Q?P SލЍ?l0壘00/4 l 4,0Sqf P  0T30  \ ` ܖM/0 1@l 4$巘#3P8HhKlU l50C ,h5 x$-G>|0@ Dč;3S 0[/BPR[l#0R# B0Q=0_*cM>0$ cP4+;#3 4 4:.S#S4.$3O>04#M>4-*++; P*BM. 0 4 B40l533[03吙$3O>04#M>4 #03 B?l0)X[Xd 00R00S l5S͍01@ /@40l 0D$0h500em ZN++; P*BA. 0(4x BC. ,484<4p1t1> t0A>044$僘 h p000%+4 4 >t0ј4ß0CU @  0 30  h P ɕ;00>t0PD  $0 bS @ bM. 4 BM.$O. $ 0[/ P[0S, 4  G>0͍ p0 00 2@ x4;00|434S 0[/BPR[ $0P4RM. B$ B0QO>00P 4SP! .t Q=@x0@T44$0%#0S 0  ᦖt 4x!!$t!R3$R*t.1S 0C[/ Q[1!xp1t!  B| 0 | z? |0? x0 G>0@!`p0R 0 뒏 l5S S p/0t 2@ 0@J>P0?x0=d0B\ | TbP=Ý #83L< BL B༔0p@4=0D ڕÝ #83 F< I0c a⤔3 #`F<83 I a`0c`嗔p 0S l%0R  0 @ @p ӑm 0 @@ Aɑ ᡔ ᝔0x ᳗0/ᮗ-0 ᨗ0d ᣗ0t ភ0/ᙗR `0 B@吓Y pp⡑l5PSG>W0Cߊd0DD40DD4DD C8Ch01Dx4pf4PUd0Sh1?000p%Sl1?00t5s000S @<Pፐ 0S0Sh1Sl1S @t倒,4S 0[/BPR[ $0P,4RA. B0$ B0 Q40P TX l0 401@4 A>h% @啐0@1t0PvU@x@PT000 Ϗ0PJ 4C@DᅐQl~0Q0x宔 h p000N3+; 0|  bA0 RS1?000S1?001x0OST x0 t0R 0010  t@0V >0 =0 F1P!RNT!RJQSH!UU) PhP@,UQphP@pL 0`(΍000C0\ 00C0NP E. 01*B-1 B`4d4p4t4=0h4G>l400X1ܒP ͍ $0 bS L bM. 4 B č$M.$ 0[/ P[0S, 4  ͍ |d0p 02@ x42 00H$00>00RL4Sj/¤ Ð ʌ  Rl$P " R 0  ᒒ 4!!!Ri$R_1S 0C[/ Q[1!1! L4t1Œpm 0| ;pP0 0A1@   00/0}/0. 0/0/; 0 0>t0彏B` > @0 pQKbU;TP+`cN 3p0 Qx  !4S @^/| 0 x0T\ɏL3 8 0ѓ@P@z? x0h͍0 000 QP`响[ L x E0 0x 傍 Z0 čn @0  l D0 čX0 čQ0 čJ0@S6@A TM0N/:@ ᖓOMxKÎf h10Y0@0VPPB+0 4 > t0 : @W0 0  >t01|wH$000c<h rrrܑ ܑ ԑ  t p  \ 1!0 <000C0x0Sx 0 0 0 0 h0C0ݎ1S0 0p 0Q  !Ɛĝ\ 0p0Xf 0TxPhL HD@ 00p@<Q8P(4$P0,卐p0SF1 箏~ @G 0bᇌP&͍PR 0   ? x0 3 Pn_N OS!!!!!!-n p!.!F S 0[/ Q[1S 0[/BPR[ 00!R3R !1  3S ,#11  !3R #13!1$31L Btj\ji=>0 Ý3th0 phPT!Lp3 BLt BM.T t0 2@4壏hPT! Np3 Nt 0cakhPT! Np3 N0c a\ ΍? x0]0  0㚋 r0 č冑h噌1S1C!1p0ڏP!p0T! G 10hl0 Gg 0b 0 B\ p0  x Z 20pS 0 0 I ! 0V/5 ᑑJHxFᾌႋt<0ST ٍ@ y|T300b96 p0xJ> xE0p0 \tw 04>0K >0富D@hPLp@@Ph@ h@  Lptފ {l8v tptˊ >0xd bt`p帊ᶊ崊|岊@[R反 p0S HDꌋ@ Tސpې ?l040 .ˊh*@# ywxu ᳐ljxhc?@Ӌ >t0喊 ;00>t0 ዊoU GdTw ،txԌn@/O-P Q-  Z00 X00[00dM Y00S`(pk0(0,0圏 k o$^80 4  0㵌ឌ8▏0SPᏊ0dSd00-T$0( VP1 D0#03R00S $0  cS B0T  T!0T00 00dЍ000(p 0  $ߊTl80D`!V\1 # 3S00S  0 n 0 0*^1 @02j0J3*1 j@*@JA B0TF  RAT< T7T2 T-T( T#T T T T T  T0T !L0S 0[/BPR[' , P0L0R P  B0,QTX0P^ FdЍ0A V RL`F@0\00VdS ᥋dp P ̅ 0@-@PM 000Ѝ0D P@0 0 @ @埋ላᅋD~ O-M@ ذ̌묟 P4 $0*b S b 0 + ; " $ 0[/ P[0S, 0  0Pp0u` 0_Pvo`URh@40h0l0&묮@ 000 @\  0k1@`.0 P>L 0/0`SiSWU WE W W W0Np቙= h@0@PPD`0 00000 0$0(00Bx aR RC t-p= 0C/ي x0p0 c0 $0C@1AS*1P$0hP , p p[?0/R[PDh@'0h0l0呍x\P `P\  0 3 ,, 0 <0჊WN W> W W* W h@ ۋ+; 0 ~gH0S 0[/BPR[ | 0P0R " $ B0|Qʤ0P LJЍ xFVSx0|0o0PwPᲘ: x08@Q<`` 0000Q0h@0 0$0(0B ` B h0l0<ʟ8z p 0: 0F/  x0p0 0 $0C@1AS*1P$0hP !x   0PP[ς\[[A^Q[X003/T0p;8 h@x0`PPd`0 Q000Q00 0$0(0B ` B h0l0儌tȟph ` 0P8 0 啉~ x0p0 0 $0C@1AS*1P$0hP 㪆   0pp[ς\[[A^Q[003/xⳌ0P腆P7 x00@Q4`` 0000Q0h@0 0$0(0B ` B h0l0 Ɵv p 0x6 0I/ x0p0 0 $0C@1ASa*1P$0hP (/   0PP[ς\[[A^Q[f003/b0pIP5 h@x0XPP\`0 Q000Q00 0$0(0B ` B h0l0咋ğd ` 04 0 壈ገ x0p0 0 $0C@1AS*1P$0hP 㸅   0pp[ς\[[A^Q[003/C wmC s0㏅pʖh3 h@0PPPT`0 00000 0$0(00Bx aR RC D"2 0 1 x0p0 0 $0C@1AS*1P$0hP ?F\" p p[?0/R[0P0Pk2 0(@h@,`` 000000 0$0(00Bx aR RC !1 0.҇ệ x0p0 E0 $0C@1AS*1P$0hP   P P[?0/R[2&x 8| h pȂ <{ ~ H } y \} X} ty | P w 8{ ` t} u \y l { t pw < y 4r u hw @p s \ Pv n Dr @s Xl o 4lr j `n  0p $i l 0P蕄PЕX0 0 @h@$`` 000000 0$0(00Bx aR RC J 0 0O/7  x0p0 0 $0C@1AS*1P$0hP ELd! P P[?0/R[07pr1 h@0HPPL`0 00000 0$0(00Bx aR RC $0"42 0,ن† x0p0 L0 $0C@1AS*1P$0hP " p p[?0/R[9-C ⹄C ⵄC ⱄC ⭄~0PȃPd3 0@h@`` 000000 0$0(00Bx aR RC }#3 0R/jS x0p0 0 $0C@1AS$*1P$0hP xp$ P P[?0/R[C JsC FC BC >P P OP Kᘔ0kx⤃ĆhP > P 2P |0O$hP օЅ˅ƅÅὅ᷅᱅᫅O--`pM P@60$0P $0*b S bx 0 +; " 0[/ P[0SM, p000  0` v0o`{VRH40H0 L0I눥@ 000 @\  0k1@% @ 0L (50R ;P @0 1@T P00(0,0004080<0X0\0'R H 0 L @HT@ P8P 0[/Bσ\R[   - RS 0 0 `` 208 @000 ( ppp;#3$8 0R@00@ 0[Aσ\Q[ 0P 0[/Bσ\R[ (P 0[/Bσ\R[ 0S 0[/BPR[ t 0P0R  " B0tQʜ0P Ѝp0 0ሃ   (P 0[/Bσ\R[003/  x0  0P 0[/Bσ\R[003/ G[ S `W`S@, 0DTSH 0S] T3  T2 3 @    =p0t0a003/u003/d003/R003/ 僇r 0ST .0 o@ d f T_ b H  $ (0  0U/ ߃ 0S T0 T/ T. 툋 σ8P p0P l(P h ]}@P XPP SPP N@@GO-GMP򀁝@x "ta  ^V B$|0(0p S t x x $ |q嘱(-  P: aY`310cqp 0)p P @H!x`H !& 0L  ਀㈐p 0p` ᰀ崀p嬐a @``H``0 (WL1ZP!򐫁0 U0P!B4o82 r L!Z00 006 0.0  P: Q@P31P0S0 900DQ$Pp0W!S0D!B48L0@10 00 !!!!1  0H qP: pP310s 0@P 90 !0\p @` ,T,HqHXpDLpPp7/l1[p@0p1D0d1H0h1L0 ,0 P9/p[1S 0[/BPR[; 0P1R!< > B0Q P 0S 0[/BPR[ 0P0R . 0 B0Q0P (P 0[/Bσ\R[ 0S 0[/BPR[ t 0P0R  " B0tQʜ0P Gߍ2D8D!Q3"@ xQUH@P 00IH10 Y9 H!0D2D8D!Q3"3 aQ@!0c0H@10X9@0x2D8D!Q3" JQ 0vp X H)p }>Qjp 0) 60QH10 @P9,0Q@1.0 9003/{H@P0@0D0宄ßܣ   030 [/ %廁ᤁH 0@00$ 0040冄LßH   0(30 [/$  %咁 {@!0s000_Ÿ   020 " [/% lU 0dÄ 彄 003Ÿ   010 [/B+|88<   0x1 0l! [/  봀HpLp$ Qr P  000 [/p쐝~(P }~띁y~׀Ԁр됁΀덁$ˀǀ V  V H p 4U  T | x T S O-|MpP@`0U Q3 0  00  XTPLHD@8P<40,($|Ѝ  /Yʤ W0 R0SrP 00S񏐴?3E&0h  h00l0s.P }0 X00 000 70S173WS'0h  h00l0ns0h  h00l0Zs0h  h00l0Ks0h  h00l0Ks00rP+ dV000 00a v0+a+q+a+m+a+iX0 0R00000S- S0  C0`0CA Bl h``0Ct0p ` @@0P@d>s  /0  C0`0CA Bl h``0Ct0p ` @@0P@dr`{:Ss0S00Y0k 0 `{:Ss0S00Y0^ 0 `{:Ss0S00Y0Q 0 `{:Ss0S000ER@ O-UMƟxh@ lQሀPW $0*b S b 0 *+,; . 0 0[/ P[0S;, 0  0S- Q)0ASa!!Q0"*cR `P \H d$)b;  Q !   Q Q  ŒSQpx1@|1tOP@u_PTXʠ`40㨠00峁d@ 00`0 `@\  0k1$d@ 0L 40~~x1娠@|1PMP1S +S R- Q'0AS!!Q0"*cR ` P QH d$ b; \  Q   Q  ŒQS1FO ᨠ0|0S 0[/BPR[ 0R  B0QP<18!PF+H;0J L *+,;1. 0 {1 P SDv R?P P0  J+L;81F H<1 {!x1 |1 01 ᨠZP+ $0 b S8 : b !.1< > ! 0[/ P[0S, 1  0 | ᨠ& P3 ᨠ{P- ᨠH~P'ʄ1S$19 ````x1Q|1 R 1娠 10$1@ 1:|h0  0F/1 00P B؏ pJ 1SrFO0㨠1@H 1\+Pdx1H|! G10Cr'|!哌(x10 p{0S 0[/BPR[ Ḁ 0R  B0QP<18!PF+H;0J L *+,;1. 0 z1 P SD{ R?P P0  J+L;81F H<1 z01UW;b  ᨠ~0S 0[/BPR[N 0P0R . 0 B0Q0P fz|0SUߍ0   ⨠{FO 0`R  F { ~P+ $0 b SF H b.8@!R/<1J LD!HL 0[/ P[0S, D1   B  {!p0RR$ U 0` pppp d tppp`0|x們$pH!dڧX PሑP%0pQtp`(尠L^؀P`,ppHa 0hT \P40(@00!D80R <`0P${<1S 0[/BPR[ !0P<1R@!J L B0QDR?P y1S 0[/BPR[| 0P1R!< > B0Q >P y0S 0[/BPR[] 0P0R . 0 B0Q0P by|0S l_zUߍ0001 :0㨠0lKzUߍp | |.ᄰ`dppt1@10@100  `0 ꨠ ~>%yᨠ{ y|0S lz:|yᨠypO-,M @PP TpX`0z|j 0  pP $0S,Ѝy,Ѝ$0S y|넀O-GMp@`Pp `0`|`` 0|P 0+;aa8+:;< >\Qaan1 a Pp40ࠍP0T0}, 0  \  08" 0.20{zࠍ 0   P0 0@0 +@ 0 @0@00$@4PD    + 6{1S 0[/BPR[` P01R< >! B0Q P -x0S 0[/BPR[B P00R. 0  B0Q0P x0S 0[/BPR[# t P00R "ژ  B0tQʜ0P wGߍ p0R S0RGj }}}ࠍOz www{ BC ; ? O-,M @PP TpX`DH{j 0  pP $0S,Ѝx,Ѝ$0S xz{O-Mş@@ `X,$ h{S{Pd $0*b S bp 0 +;   0[/ P[0S, 0  x0S- lQ0AS!!Q0"*cR ` P QH d$)b; Q  Q Q  ŒSQO&N?.|h (x0S 0[/BPR[ l 0R  B0lQʔP2"P+;0  +;d2  hvd2p P SN )>P P0  +;2 2 v0@PtO(0@u(0_PTW(40h 11.|뼢 @ 000 @\  0k1t"  @ 0L \207y y@hPyPhjzP $0*b S b 0 (+*; , . 0[/ P[0S, 0  W+X;P&N 06+8;P R Bύd : <`Rw zP $0*b S bF/418!-0D+F;d+f;p1^?r+t;t1b?+;1>R T1=` b1n?n p(0z?| ~1~?2R?$0">2v`R?$0 0 P5/2S 0[/BPR[j "0P2R#  B0Q?40P t2S 0[/BPR[> "0P2R"  B0Q->00P t2S 0[/BPR[ l"0P2R"  B0lQʔoP t n?(0堀lv`0 P5/2S 0[/BPR[ "0P2R#  B0Q40P t2S 0[/BPR[ "0P2R"  B 0QBB00P Ut2S 0[/BPR[ l"0P2R"  B0lQʔP 4t$0n/⠀( d20 1@`2xPt#k?l堀$ p# 0H0X  d  @@X`nύ( \ (,v 0P ] _\_ \!@d2~0X 2@+;`20 H2L2X2\2`0d0h2l2#>P2?T2uXP ~u0d1@~`2 P _r2S 0[/BPR[>xl"0P2R"  B0lQʔ?PW ;rU 1R^`G 41S 0[/ Q[0S` 0[/BPR[`h⠀^x P00R: <! B0Q1Q01S^P ]q2S 0[/BPR[ @\Qa aFo1a X40蠍X0\0r넣 0  \  0>H# 0g/430onW00p 蠍0 W X0 0@+0((0 0H0@H088H!,@ @ B0QP *l0S 0[/BPR[L 0P0R 0 2 B0Q0P l0S 0[/BPR[- | 0P0R " $ B0|Qʤ0P kIߍ0p p蠍kflj x0R S0R1Tqq q蠍?n kkkn B , O-GMp@`Pp `0`o`` 0oP 0+;aa8+:;< >\Qaan1 a Pp40ࠍP0T0p, 0  \  08" 0k/20mmࠍ 0   P0 0@0 +@ 0 @0@00$@4PD    + #k1S 0[/BPR[` P01R< >! B0Q P k0S 0[/BPR[B P00R. 0  B0Q0P j0S 0[/BPR[# t P00R "ژ  B0tQʜ0P jGߍ p0R S0RGj pppࠍ9m jjjm BX H O--p@KM M0xP00 00n0ISp@P\0p0 00tkSnP8 $0*bS b *H`X h \0 d hl 0[/ P[0S, d0  DpPZ@@zttl J0D+pp*:  k Z@ ;  800S Td0ZH`  k 0@ :  Z `  ` T (01@ 00 2@,(0lpPP m\0S 0[/BPR[ < 0P\0R`   B0<Qdh0P i0SwKލ Ѝ'0p0t0?o  \  0Z"001 !0 Il2l# J0DZ+Zpt*: _800SmTd0ZHڊ`  =k 0@ :  S `{z ` Tk8 k!@Ef0p0t0nf mY"0 x 0 kk gjKލ Ѝ0<0oHoari -DT!@G L     k0S HjlkpPP lNmO-@-MmP $0*b S b 0 (+*;, .  0[/ P[0S*, 0  0S0S& &O 01@ 20 2@H `20 x0p0"L0d2j묀 pt 000S \0S 0Q % 0-2@&K 0 ~?0">0?0>008` |~PP20  20㠂22 2$2221lp 02嘂0㠲2&l 020 2lnp}0 ሱ` 1ln? 0A0p 2L1Vn2S 0[/BPR[T "0P2R"  B0Q_P ^hp 01帱01k0A2Lb 1 n2S 0[/BPR[$ "0P2R"  B0QP )h2S 0[/BPR[ d"0P2R"  B0dQʌ)>P hL2S 0[/BPR[ ,"0PL2RP"  B0,QT?P g2S 0[/BPR[  BB!0P2R"  B0Q0Pp gpt0 0C1Z:L0 2H0 d20 1@202@`2tlp@t`T% PP$0S 0[/BPR[M  0$PR㏊(0 0CP Q,00P- 8@ygTp`V -j0S 0[/BPR[ 0P0R , . B0Q0P Pgߍ8@Vpt0 0C1 S{+m h)XhRHloLQoᨂ x -&K@ < @㳋 0 $ 08` $堂ढ022j>p P (00㘂R夢2jR/p0 ᜢ堂2zj}` dhPlp  kj<0PS$` 2_222h2l2*>⦋` dB2Rl `db l `dr l(` `dB l `db l `d" }l2S 0[/BPR[ "0P2R"  B0QP f1S 0[/BPR[i !0P1R!d f B0Qʬ>P dfl1S 0[/BPR[J L!0Pl1Rp!V X B0LQt^?P Bf41S 0[/BPR[+ !0P41R8!H J B0Q<=P f0S 0[/BPR[  0P0R!: < B0QB?P 0PPept0@ 0C1U:A0zύ"D/)^8 -4Pn_!~/"#.$ύnp1|~1劋팛1嘋횛1r t2 2  2 $2H2L2X2\22222 PP"8 ΍T"/"4 2"2嘲Rk(>/☲0 2yk?☲02 pkᘲ園 ik 0 XP00T \ p ,0 " i000@0& 2L0Mk2S 0[/BPR[u "0P2R"  B0Q_P Ue 0p0 000000h, 0@2L" 0k2S 0[/BPR[A "0P2R"  B0QP e0p0 0 0圠000h,0@2L" 0j2S 0[/BPR[ "0P2R"  B0QP d 0p0 00嘀000dh,0@2L" 0j2S 0[/BPR[ "0P2R"  B0QP d2S 0[/BPR[ d"0P2R"  B0dQʌ40P dL2S 0[/BPR[ ,"0PL2RP"  B0,QT80P od2S 0[/BPR[g !0P2R"  B0Q0P Md1S 0[/BPR[H !0P1R!r t B0QD0P +d0p t0@0C 1Sm jjIj jiii(i$iie iViui iiiii 00iHiz0S 0[/BPR[i 0P0R , . B0Q0Pl cj$cLXhHcf(cccc ccc cccc ccO-@-`@ȟP M MPgJgP  $0*b S b 0 ,4+6; 8 : 0[/ P[0S , 0   gP  $0*b S b.,10!N/(B+D;4!F H8< 0[/ P[0S , 41  fPi  $0*b S bR/d1h!.`P+R;l!T Vpt 0[/ P[0S , l1  0!S0R R" En0`P4T4[hşE R @ 0  015P0keTe0S00CS 0!0^ E~0pP4T4/hDş@E_ @` 0 5 0 aP@e)eP1S0 DPz 0@hS !Q 0"*cR ` P RH d$ b 1P  P0 P00œ?oQ20S :c@@6c0P  Sjύ4!!!!!!!!" """-^ `!^/b+d;H n/p+r;!.~+;"l nz |l 4H@ A E΍ @čB΍DA E΍>E΍@F΍0@ F΍ P@Bo}< zODSb4!Bo } A @čB΍ E΍@E΍F F@1΍zO0A  DcčbP1S1 D!R 0BhSi "Q0*cQ `0P RH d$ b  R 0R  0R00œoR  Rk 1P0+1;%p/ ͍H"L&."S/0"@2-.D2P2T2x2|22222222222 t x  +;+; BT+ d  8 X P L @ P +;+;| 3$303433>"0 ?+;(3 ,#- Q 0AS !!Q0"*cR ` P RH `$ b;  Q  Q   R  QSH0č@PčE΍@B  "^ύdPzOL)΍TT0ύ(̍$bD0@č@PčE΍B o )΍L`zO0ύTd(̍$b0@č ÍB΍ >~d E΍@P ύSzO)^(!@ zO?S(04<# $0xdP $0 b S  b -X`#/\3 d#hl 0[/ P[0Sm , ?T0d3  @38CDS 0T00!0C S @`0P4T4e d$$$40 0$ bb83@0D#S 0ddP $0 b S  b/#:.3 # 0[/ P[0S , 7>803  E. 01LP4 ?0T4,a 8`0C 0oS  U pC0 \  ,   B h#TSHC$ #X e S $0A ,a⣱X0X! ᣡ0Nha` 嘀`` h\ `   ` Sڐ`  @  JS ` QT `\V Q @ P@ QR Q En`P4T4e\`G!^ @  070  Pbah!0^ En0`P4T4dGR @ 0 8  0Paa`Q@P. 0S7 倡$0L\I X00ቑXQ ,\ ` X `  PBͱ `   @  JKU`[ABpG@wP3S 0[/BPR[J t#0P3R#  B0tQʜ:>P ^\3S 0[/BPR[% <#0P\3R`#  B0<Qd?P ^( 00zOTt# "@P$E.<3 0 1@83p3< $0 T4bPr< $0 b S  b;.#/3 # 0[/ P[0S, 3  8bbPCt $0 b S  b/$A.4  $ 0[/ P[0SL, 4  娓3YP!S0 U3  C80#4 PR" 1044c\l`0p`\  00`,0 <4 0``00CS`044c fb,< 04 ``0P   #[baPoTA $0 bS @ bB. <4 BB.@$-8 D$HL 0[/ P[0S, D4  ($3RJ 3Sj A8oQ   T A, AYX\H` \v X8PokA\pE⼰a`Ꭱᬁ@T,刑\ TT `h@ @@@@@A@ T+P p  + pWT 0 0 @ P `[@W PK`+;` e; qK+K+ʘ0hP2 h\ P4T0T P \3S 0[/BPR[ #0P3R#  B0Q?P \$B0 čzO ETč @č@Pč&a`$P03@P4E>0TTzO 101@P4E>TT0zO 2 {]0 zO[bB.T01@ zO`4P`PE $0 bS @ bF.t4 BE. px$-|$ 0[/ P[0S , |4  PDT@0DSX4 \ĝFR`PE C V_`LT`  R0.01@b;bV Z K*  R[+;qP 0U q4St4S 0[/BPR[% T$P0t4RF. Bx$ B0TQ|=P [4S @ 40$+: $3P `zS+az  0[/BPR[ #0P$3R(#  B0Q,0P [2S 0[/BPR[ "0P2R"  B0Q|0P n[2S 0[/BPR[ "0P2R"  B0Qʼx0P L[|2S 0[/BPR[k \"0P|2R"  B0\Qʄt0P *[D2S 0[/BPR[F $"0PD2RH"  B0$QLp0P [ 2S 0[/BPR[! < P d 8 4 !0P 2R"~  B0Ql0P Z1S 0[/BPR[ !0P1R!p r B0Q0P Z1S 0[/BPR[ |!0P1R!b d B0|Qʤ0P Zd1S 0[/BPR[ D!0Pd1Rh!T V B0DQl>P tZ,1S 0[/BPR[ !0P,1R0!F H B0 Q4N?P RZ0S 0[/BPR[ 0P0R 8 : B0Q<P 0Z0SPݍ ЍHp>^`0č Tč @č@ÍB΍P E΍ "΍zOdύ L)΍C0ύ(̍$[D@čÍB΍0 E΍T  @P "΍Cdύ L)΍0ύ(̍$Z^+ ^-0P 0\0^0S r^r B[g  =[ B8[? <zOT0<$0.[' zO([}7> 80![x [($3RP000^ep ` 05 04 p\[($3SP000^<@fp ` 0`6 04 p[[3($r8 <ZT zOZ4BL  L @ EÍE@čF΍}F΍@H1zO<0A sDZjBo}D0zO],1 S8 :b d! 0[/ Q[1S>D0 0[/BPR[>D0 !P01Rp r! B0Q1Q1` 1S]4!11  d1(,!SF Hp r! 0[/ Q[ 2S 0[/BPR[w !P0 2R~ l" B0Q@1Q1D1SLl!H12  `E>d!T VA0P1~  "R0.0 1@b;bV Z [z* R K+q;P 0Uh^ ^0P0\0^HXENt0@P4T4\@t z[L$L4  0 YYXH1L1!OTP0T hH1L\$0" A a,#0NX` !a` `嘀hz`\zgz zzgzSڐ` z @ J `Sȋ Q h\A Q @ PX@$A8`j,pFPA@T@,@\`Tk ,h00 Ḱ @A PPPPPTPT  QPhjTz\zwzz  zj zwzzW#h @ T P `j@WzPz z `:*[`J d[ q;+{z{zʘPV \ PZhhTT00[ 0 ,pC\ 0B ἰ708t3[ 0D1[.B0 1[04[B<03[0zOT4[0TzO<3<$0[0zO3[thQ@Pz  hPhTT \8 A,'0HH[B[z [UH[0D[ z[d[L[0[k([F$[! >4T[8[[<[[[k0P0QT h0帰0P&0Q"!0x10S| |11  z0 0 Y}zOPBo0[BoDP}zO([0 h0帰`h0` \GU+S V\!` h0+7%``$9Uȋ V$`:0%PBo}zO0[TH>PBo}D0zO'[ 11\@11zOPBo}[* ` U0 S ]k `0Tȋ0S (9$U<"UzOU$PU(U0ULUdUBo}UDUH U UUU0S U!XPZWWWPBoPBo}PLWBo}PFWBo}<@WzOT9W5WP1WBo}P+WBo}P%WBo}8TTzOT<$0WO- -( M@M>`(@`P 1V?U'P1  x0 BPT.pTVP000= 1BRx5( .r|%VDx0F S0cV bS x0 <  A0R bQ0cR 1w@C0H1L1Yw X/? /0 Vx00<0V(0S0G0 D0@(p`CW@Wx0S (0p @` C 0t ,   ! t    00@ @` `p pȀ!̐ؠA䰍耝 !  %"@A@A@A A A0$A Aؠ1,A A`0BR4D .r$QT0E S0cU bS 0 H  A0R bQ0cR 0w@C000Tw S'7 0 Q00H0QD0S 0F 0 T0@D`PC S@V0S%DT AX 0B|1C!`  1\0: :J@0 0d ,   Cx 100 B40 0 !0P !h  4, 0Sl0## ^p0!#t0~ 0 @00 H@@@@C80<0APL0D, Q0 0#0P P `dp` ,PT 0B\ $(0z 0 jS0 z70!1zvzzgzz0z 0z01zzgzzzC UX0$ S(P0h ,0z0z ^1!jzzwzg&z7zz40 S0 0|0 P0 0zzgRzz40 S:Xo4K[ ;@0ȉxPl嫰ઠደ A B8 0 00@ < 10^ g@x P0*l n0 F[᭪` -B @ P ` p-H @*A D B*l n F`-B-H @*A D B Rp 1t j 0 zzPjzzwzg&z7zgz'zzl0 R40H0 S0PP Q00PP QލЍ0 0C, ^   SPN \  R) .@P  l B^ p W !`W```P W@  0 000$T0= 01SQQ5P0PP ^Q00PP WQP <<<<<0 O-MM ( >(DP@t啻&0F? 1 8 BP.pO 00,0=1BR854 .r<%OL80E S0cU bS 0 @  A0R bQ0cR 0w@C01 1Rw Q.> 0 O00@0O40S 0F0 L0@4`PC Q@V0St@P`40 @ P @PH Ct0 p@ PP !``qGL嫑|B  dT `|H 40Xb 000  J` * *J<  Cx 1 10 B00\0 0 0, 0Sp0## ^h0!#l00$00 @PPPC80,0a@ND04, Q0># 0I H TL (pBX P\`0 S0 2 01!100! 000C! 0WP0( S 0p` Cd`0 P' 0Q1 !100$ Sr0$00, 1  TR1t#3PQ 0F`AXH pM `,  W*A A*N L|[ 0t0Q100ڠ00Q100ڴ00Q10000Q10000Q10000Q10000 10 000$ Sx0P`0S<0! pp p AL8 0  @,0  ! m$phPl@ xp0 ᭊb0S bx xEj!pEp aƈhl H`*bx b(btE`ĨjHff`(bt@f(fxpBr QdAhM DMJE$p @BS !lPh  b0TᭊlpEp*n`Hd(bp(bf(fpr "M'AM@ R hA l@B L^P1 # 3\  R P@ F A,$  QA`$ G!P@VP` PE@D (00`*ap aJf` ⏪gI`abfl(nHdpjr%`(bjHdpr zt@" *$MNM @P$(0 R0x P@!! h`Y!lp  R$Q b! Y! !  R$Q Q !  Y! !  R$Q @! Y! !  R$Q / !  Y! !  R$Q !0Y! !  R$Q  ! 01 0 S4R#0 p0 R00@0 S881PP N00PP NލЍ 0H C0@D0R100!1`p P@0 W! ! B# A# 0 L,0^0   PSN \  R; @P M lM BRp W `W`W```W```W```W``  W  w1<%L0{A C0@ 0PfMMPL81PP yM00PP rMM괜   O-MM ( >(D`P@tU'0F? 1 8 BP.pK00,0=1BR854 .r<%KL80F S0cV bS 0 @  A0R bQ0cR 0w@C01 1Nw M.> 0 K00@0K40S0G 0 L0@4p`C!M@W0St@`p40@`@`H Ct0 @ `P !ppHL奡|B  dT p|H 40X b 00 0 (  K` * *J<  Cx 1 10 B00\0 0 0, 0Sp0## ^h0!#l0000 @```C80,0q@JD04, Q0 0 J H0pTL0\`CX0( $0 R ඀0 ! 111 C ! 1  p B1 ^P0 S$`0`@(d0 p#"Q0 1 ! 100 Sr000, 1   TR1t#3\Q 0GpAM l`0* 1 Xr%p*A A*F N|U 0t 0R100ڠ00R100ڴ00R10000R10000R10000R 10 00 010 000 Sx0P`0S<0! p娀 ሀ AJ8 0  @,0 ! ! i$@ hp0l`x*` (f0⭪bS @ Jaz(b `Hjfb(btEa|`l`|xzfHf`(bxt@pr ($B Qh"M FMJG$ @BS!l` h  n0fTJb*lt`(d`tEr%`(fpr ""MAM'@ R` hF l@B N\Q1 # 3^  R ,@`F JA Hঁ!@VP` @DN $``*fp f`J` ⏪gI`fb`l(nHdpjr%`(bjHdpr zt@" *$MLM AQ$ R0z @p `! ! hZ!l  R'Q c! Z! !  R'Q R !  Z! !  R'Q A! Z! !  R'Q 0 !  Z! !  R'Q !0Z! !  R'Q  ! 01 0 S7R#0 p0 R00@0 S881PP :J00PP 3JލЍH0 @0@D0R100!1 p ` @0 W  ! R( P( 0  L,0^0   PSN \  R; @P M lM BR p W `W`W```W```W```W``  W  w1<%L0~A C0@  0PfJJtH81PP I00PP I&I8 ( O-p-@q(0 唻& M MP 00HPx 80pG 000BR@04 P0.r rGP0D S0cT bS x0 D  A0R bQ0cR 0w@C000JTw IH%H5 0 Hx00D0G40S 0F0 P0@4`PC BI@Vx0S4P AT 0B2C(!1\00 00X * 0C|01L0 2d0*J0`< 10000000|@, 0hQ lR pt0| 0 <00 D@@@@C80@0AGH04, Q0 0#0P L ``pX (PP ,B\ $0 0 +S0 p0!1 r ` 0 001 `  C UT0 S$P0d (, 0 ^1!+ p `q 00 S00L0!0 `R  00 S00S<0 hNL B8000N!1lB@@ PV;t0p P@  0+ p `q `a Uh0x R002D0 S00PP H0PP H ܍ Ѝ L,0P0  1@R@F00PP G0PP GzGOHNH?} | ~ O--0SMMhl / P0@h S( 1Q@ 2 bRId0PS()b `  P!  0P 0P00œQPi;`0  ('ZS `XIhşhE d5@0 ( PmFVF0T( h0p (0ٱ t 00`0 10BS L8.s@L8EP0 $ T BSO>0M>(4u0@.s$4zE8(Xt 00R00SVI;@0  @('H G#3i 0( FE0H)! `P?؋ٛ"@0 0+S  0(00 d0l [Ed0 UE[ T0XhT !0{0 Hj(f`JB*CS0 S T0[  1( 0 \!080 p!q@0T P`0S(0 0 80@`PC F@V0S80剠 Cgh gh1 8 00!X0@ 0|00D00|, 0 1#D x00|000Rrg6f6Fp0Dp0$Pl Jhf?Hd:a;A!aA!jN NJH*GH  L@ TpRP`RP `RP PR` PaPRR Pp QWpR RP P P `PRpR P pQ V`R pRP` pP`Q@RVP` PRp `QaWpRl `RP p P Piڄ  `RQQp`RR``R  ``p@R@`Rp`Rp@R p  2 @QR@`p@`RRAR `@@R``@R@R`R p  < 01(PSEA4 @L $@!EPPATR1#3Qࠓ^y !PVP d p0`? cl>*@ 8ʈ C%0X9 6*72J1 3*^anA!a*̒+, vetEr%p(b&<*Hd=`jAJ!,A!JN*N  F 0( 0@QP\ `\@P !   (0>S;  Hp`<PRR @RP რ@ PR RP@RP 0Xh VH  ,0  BP .AT .AX 0\00+ S1  A!@  @ !(  !0 S d_ ] _ ] l[ x] R Y Y Y # S0 1D 0 B@\@P @B @ P@   0 BSP `BV&!4 , $@ a! NL@r@PO d@a OJ%POjd@f Oe P0*1 k!{r%p llOeOd(b`!!*B R A a  P@pRPR@8P*OC!? $lOl! R%Lr%p(b`!!*A A`0!(` V\P\ !s!V \@ @\ ! !b!V \@ @\ ! !Q!V \@ @\ ! !@!V \@ @\ ! !/!V \@ @\ ! !!0V @Q Q !  ! ! P P ! !(0s`Spp!\P@RRR@ᰰ @R R@R @ 0VԣEL0` 0L0S`p< hşhE d5@0 @ P;:0  ( `0p (0ّ| l 00\0 10BS L8.s@L8:P 0 $ BS<0N>(4p 0@.s$4~m:0(Xl 00R00SRALI< @('= t<#3i 0@ ::0H`+!܋ݛ?P@ 0"0S, I,0(00 0d :0 :Y  0XhT!,0{0 Hj(f`JB*CQ0 S 0Y  1( 0 Y ! 080 p!q@0T P` 0S(0 0 00@ `PC ;@V|0S 0勠 0Cjkx0 0jk0001<00X00t00D00t, 0 1#D p00t000R3g6f6Fh0Dh0d l*OC!? jOn! RJr%p)fd d!!*A Ap0!(p W\@@`\! !l! W @^PP@^!  !\ !W @^PP@^!  !L! W @^PP@^!  !< !W @^PP@^!  !,! W @^PP@^!  ! !0W Q@@Q!  ! ! QQ !  !(0pS!@T48`RP@R`RR PRR`APPQ0W48@WD0X 0D0SXp< x00 0C0(4$.{P$ L50(YD 00R00SeY;P0 P('}8 P7#3i 0L 550I$!Ջ֛`?" +0 0 S P0$00( 0

  090 d 0/0P -P51P $0 b S@ B bB/ (!.$1D F,!04 0[/ P[0S, ,1  S ό!]_0t0R 00x.0P $0 b SN P b-X`!Z/\1R Td!hl 0[/ P[0Sd, Nd1  10 ST S\ SL Sb 'e7 0d txs/\/0t7( 0  3/\1S 0[/BPR[: P ,`0S wߍ .JN . -wߍ01 12:E0 P :-б0,0P[-2U40 00PS d/0 <08 S& 0/? 0< 808Q<Pd0S h Rڀ0c0S0b0SP0001 p0$4K 0l ..0 @0,<]_ 080R 00tx-0 D0,00S 0 0,P0<00T 80 -80H-008P, +i?L0,  +40PSڄ 0-80l ,0v?1< LL 00 4 H P/3( .XP  00{.+P$ ,0%.D+@~+;2( 02( 0N0<1 O12( 0 ~1 {1\2( 0N 0 @ E+ 0 D :+ . .PT0@t00x0/0000| -  t0| - n1,0-D#+@!+[ `0S C,0 a 0P0#<40 ))(04SC@$O+ h4< 0 @8 9- D@  +<*)PZq P3 P,< 0/+)P$ * +, )0 )v2 02 0B0 1 .2 0 / /2 0B 0 0 (а 0 , ( + + m+  X0P * /:* a+,(0([& d0S )A@m00 0 x1 +| 0. 0. cR`0  5+41 +  0.@!(;d(+S`b e) +,u(0s(d0S )+ ++ ( ( .  Im 8 (    l  l Xh t O-@-PxƟ` |M(p+X@@ D-8Ɵ4N   060  * *(P, P +P $0 b S  bH `h p d0 l pt 0[/ P[0S , @l0   0  H,( P@< d0S 0[/ Q[$0S 0[/BPR[  0PR$0(  J B0Q@0Q0[D0SXl 0,0  &  J"V @@@D($ (40 0 0:(@Vd0S 0[/BPR[ D P0d0R h  B0DQlp0P y'0S |Ѝ@ (g "-i(|Ѝ@ '  0  +"* P@> X0S 0[/ Q[0S 0[/BPR[Z)0SY 0 B0Q@0Q0GD0SDd 0$0   P0R0T00%!V @ @@D)$ )40 0 0'@V &0Sw 't@0D0 , ,S@00, )@0  0 &0S '* E) &> $  A-M0P@h`0p @@*@@ 0*W ph 00R S0R# 60 0$0,B@0@^   0 k6! 0 10)( 0!@2@ 0  0P `$`  '0S 0[/BPR[8 l P00R ڐ  B0lQʔ0P H&T0S 0[/BPR[ 4 P0T0R X  B04Q\`0P &&Ѝ, ,(4&2&R)   A-M0P@h`0p @@'*@@ 0 *W ph 00R S0R# 60 0$0X+B@0@^   0 s6! 0 10c(L( 0!@2@ 0  0P `$`  %0S 0[/BPR[8 l P00R ڐ  B0lQʔ0P %T0S 0[/BPR[ 4 P0T0R X  B04Q\`0P x%Ѝb+_+'%%( L P p@-PPM` P V`@@ *Tb&00ЍpD @@0| 0 P P'''v(  O-`-@\M 00 %V Pz 0! P0P73@0 0< %V0 10 7rpw0Z 0FS&!P򐻨 0"Cc)hS b V ` `; 2BV 1a R a0 0 aQpM* & 0& *V#H ` ૛ `V Z@ 0 S & 0r'*0S ` ;)V\Ѝ)JI+ Z+b{JI `{Zp<@/0<0@0)QP pP^   0 v10 p&&3J+  0:b;P* ;c{: ba{*aQnp*000)@ 00@\   0 6t @ 0L00&&C %&Q'&N'?P p | 0d SO-M1C0 ,0pP@UH0I pGJ00 0I0 10Z00 l L05# `{  C S AR! X񏐡|HdU/Yt 0@ 0T0@PUЍYt 0@0 T  0@Yt 0`0VCCCPUYt 0C^PUYt 0C^ 0@Y 0t @@@B@@BBS0@ R  ` t @@ @BBV Yt Yt ! 0@|Yzt`0C x^ L@  x^[ 00@bQbkaKO-p@ { ` p{+w[+{@+^@C@S@L T; @ PP PUPZ; s  ڢ;E `p{zU `5k0,&{ p zL VPDJ q f  v`+ pb N @{zpQ/ MbP?QO-{$ Tk@L`` ` +p{ ;xK;{+@;^CS@  ^ ࠡ \ q ڣ@LA`{z\7 PNQ KEp@PTP1 pP#P3 [PPU{= Nˠ`+QGLR @P`JD[ APUz  ^Pz@zpN` r  g ` w`;c N{zQ$01$0`\z$0`` MbP?O-zt@xP-,  0lMp1,`4pz '&d00\(D8< l@L04! 0H!#1 @@A2 PG0 0 $00bH00HL01P01T0$H  0 P00_P, 0080SA 00,00! P 000 [00Z< S900~q0pY [  0[0 S  !{7Z ^p{z0 S0'j  0(0 PED 0(0S$0@ 0$000 0lЍvzgzPh, <00Q 0 ӓ, J0X`LpC4`$\`P Pd@ Z0O݂! 0|00@T 0+; p+ p pq 0V|V qV q 0V1 0Šq1 ͠qΤa[X`\`Pd@< <80S~T "y$0$ 0@-@000 &Eh$0$ 0@-@000%D( $0$ 0@-@000%DH $0$ 0@-@000%D $0$ 0@-@000%LD\p@-(MXPPAP8`\@<@00 `0 $30L(S2,!Q0"*cS ` P RH `$ `; \  \ \  ŒP: Z&@@%(Ѝp 00 @@{%#D\p@-(MXPPAP8`\@<@00 `0 $30L(S2,!Q0"*cS ` P RH `$ `; \  \ \  ŒP: %@@.%(Ѝp 00 @@%,#B p@-(MXPPAP8`\@<@00 `0 $30L(S2,!Q0"*cS ` P RH `$ `; \  \ \  ŒP: %@@$(Ѝp 00 @@$"(AH p@-(MXPPAP8`\@<@00 `0 $30L(S2,!Q0"*cS ` P RH `$ `; \  \ \  ŒP: F%@@v$(Ѝp 00 @@g$t"?( p@-(MXPPAP8`\@<@00 `0 $30L(S2,!Q0"*cS ` P RH `$ `; \  \ \  ŒP: $@@$(Ѝp 00 @@ $"H>h000 0@-@000#  <h000 0@-@000#  <( 000 0@-@000#  h<H 000 0@-@000# ~ (< 000 0@-@000# n ;\O-ztPx@-,  0TM1 ($ 4z '"d0TU  0 ,08 4 @ 00ZZ0080(0 0S 04 0B BD , #1!<  2010,0S <  (00 00 00Rx@l L0$@00#TQ 080S 00Z P0!#@  Z 0PS Q00` 0P!Hp4DL0 Z0z!0 |0z@Tz 0jjzwjzwzw'z70Y|Yz'z7Yz'z7 0Y1z 0'z71z'z7[z(zؤ,0 S{0  1xp00<0 0 0$00C0Y0jz0zW/ @cz00t `0 QP\Y  0Yz 0 S 'z7@W TPz0 S0'jj0 15zGzTЍL\L c @ QCbMD @ @ @0PC(0PP0 00S:PL\1 @ `\ 0*a J` @Ja-B @ @ D0O-P( `-ڡ MM@@8@0S<0040s<0 040?@80 Y aq0咆( 0 `0,p 0 0V, 00000 `,0& p, 0$0 000(00SP"Ȋ#% [l [0z [ [B S,z *1!   Q V 0 S  0S000 0   ` S0 00  00Rw000S0   WS,z0 1 ! K00V;+++K+;++0S,0Ũz 0V!+ S, z0 1 0KV+;++S,z0 1 ! 0+Vk;[K+;;+gY00 0`0Y`40S ݍЍ iV0, 00000  O--@唰@0WM@M1.0 Ld (!P,`P p,`00唰P(P0h `0[0D H0 C     B " $ & ( C !0KSK+1D S+;)`[r%(b*B S+;)`r%(b+; S+;)`r%(b+ ; +; `p`  R W[ W 0[W0!15L00 0( Q@1,0 1ነ0!0JP \0 0T00?([0x !A0BPH0耍 @ pW`p`P`@pT@TuTPn @TQ 0a'qPQn@ 0Za'qPU 00 Q00L00@0Y00l QL0(1#0@0, 0ChPl#1 p0僂0JptJx`Z| Z0jjzzĺŚzjZJ  p;X +^  0 ` @^ ^;j;K[kP{+j\\\P+j  j;;+K[ k;{+VV ;+ ;+ ;+ ;+ ;+;D+D D D0 !0R,l1h@zP pPpt`zpxpK| aZ;j+jZz z JZJ# j: z*, * _Y  a  . , * = R  a    . , * 0 @P   a 0 , (0 !, @ 0(0Sx(Qd0`U`U`V WލЍU 0W>D0P  0 !A0`0X! 0Ct 1|`P80\0TH42D  $ <0 0p4 0$0  $0 WK0\j 0Sp0 `0 P`APzR 0 CzX  C+ `Z; ZR jz0 jR1 { zk zR[* J: *   0B`p W Pb00 `! z1 +V  R001:R 0JU 0CU01p80 S<0`FXT 00 4O-VMP M┐J/P0P1< \ !P$`@ p$`'0唐@ P0` X0Y04 80 C     B  " $ & F !0IS[)14 S+;)`Kr%(b*B S+;)`r%(b+; S+;)`r%(b+ ; +; `p`  R VYV 0YV0!15<0 0 Q01 0`0劰D01@0d0H0h0L0l0P0?Y0x ! 0BP80  @ pW`p`P`@pT@TgTP` @T R 0a'qPRa@0[a'qPU 0Ԡ S  <  0 ] 0zSl0jLzjJjzj0D HL1P ; g+S !   0 ! 0 00S A\0`T`T`V Vލ ЍT 0V>0@ 407 0 0Ԡ  !CX08! 0Ct 1|`p(00$4T 2  ,00P$00  0 U+0\I YO 0 0AzR 0jR CX  0+1 `zKzR; *  0I P Ub 00`! BR001 *z1 +V 01PR 0JW 0CW(0 S,0`FT'00" pO-PM┰MP0P-1P 0t 8!P`0<`@p<`b따@8P0x [H0D  C2 4 6 8 : <  B" $ & ( * , C !0KS[+1D S+;)`Kr%(b*B Sz+{;)`r%(b+; Su+v;)`r%(b+ ; q+r; `p`  R  [   0 R0!15P0  Q81(0x0<01T0|0@0x ?[0!0BPH0 @pW`p`P`@pU@TTP @TQ 0a'qPQ@  0Ya'qPU0 [0P0080( 0lzSL0j z2.*,0 @C<0  Œ 0   Qb[SKS b%$ B BQ Qb[SKS\ b%$ B B01 S/@@`!X0d @0;0TD!Ilp! At1|@儐P0h0@L`@2X@$ 0@ !<@ T0<0L@ <0@0@000 0080,0 00SB0Tf $0QnQ00(@40,PP0 AཱྀS T rSP` AhSᇆp`瀎SS |S p`SS $0@0A(200S0a0CP80 0P Q001:Q 0JY 0CY,0000000P0< S0T 0C0{D000@000} :O-UM` M@N/`0`01Ll 0!BP4pP .p4p 00@P0P0p h0T0H P0 C     B " $ & ( * F!0DSk$1H S+;)`[r%(b*B S+;)`r%(b+; S+;)`r%(b+ ; +; `p`  R UTU 0RU0!14L0 004 0P080p0X01T0t0\00$0x0`0|0d00?4T0x !/0BPP0p W`p`R`BpQQqQ!Rj Q R 0a'qPRk@0Ya'qPU00 Y  j0 4l0Q8L `p0C\0XPC`0@Cd0C0 !0"(#6C;SS00Y0L004 0 @S804 0800Ql0pUpUpW Uލ ЍY0Q@0U>0T H0@00  0Ih  Bt1|@儐@00@<P@1H@ , (@ D0(0< (0,0  ,0X,0^L 0SU 0 0$ 0 S PAaSp@P Ybp%`S@S!'@ Ё0B X100a!0 BCP R001 *@ 0U 0000R 0JY 0CY@0( S0D 0C0000000 CO-`VM@M`0`-1T0t 8!BP@0<pP.p<fp4@P8P0x TX0P  C2 4 6 8 : <  B" $ & ( * , C!0DSBk$1P S}+~;)`[r%(b*B Sx+y;)`r%(b+; Ss+t;)`r%(b+ ; o+p; `p`  R VQ V 0TV0!14T0 0 P000x0401`0|080?T0x !0BPX0p W`p`R`BpUQQ!R Q R 0a'qPR@ 0Za'qPU 0 R00R `A0Vl0L ᓰ+ˤ+8040 0 PB*`0@B `0r @J p0bT@""SᏪe~ 2dz@BB n|*@ j$p.V`, jdn+R\ PZr |p(Rz(RPPr pb"``b @  B S 8@PB!PE4p% `@QP1@#@3RP1#3 Uࠓ^ )R˨pn ` P0@*'|@Jn0R @ J't@l*fT@j%r x)" dV`npId~xI$)bxi& `n|R t@T@r ~V`pl`Hd(blHd(b`t@|pr ,$"B R.$ @P R! 8p4@ ` Q AERAEPYA@ADBADA@ADBADAANANAba@ A RFbAF` A@ADBADA@ADBADAANANA/A`P ADBADA B"AB(A( B!  B"AB(A( B!  B"AB(A( B!  01 S88@`4PQ!B"@B(@( B! '!PB"NB(N( B! !0SB"AB(A( B! !B"AB(A( B! T0 0 @S00 000 8Qt0pUpUpW SVލЍU@!0V>P0` @0 0B\0SX0 0d0P0 0h00t ( | 0, 0 /\0d1$ 0C<0(0! H  D , 0L0h0pl0 0 S0@ 000 (0@C 0pC0`C,00PS S  S l`  $0 S H0L D  R0500500< S\0C SA000@Q @NDBNDN@  @NDBNDN@@NDBNDN@R@NDBNDN@!?$00p 1l0$0p ,0(0l  00 0Sd0 h0 (0@LPC@0p,0`  Sa  $0S  0R050\0 S000` O--`@`0VM` M1R/<hD| BP@!tpDP .pD=p<0@P@P0 x0T0d l0 C     B$ & ( * , . F! E0DSk$1d S+;)`[r%(b*B S+;)`r%(b+; S+;)`r%(b+ ; +; `p`  R VTV 0TV0!14h0 <0@ P0劰1D01p0%<?@T0x !0B0Pl0p W`p`R`BpQQQ!R Q R 0a'qPR @0Ya'qPUԠ0< S  <0D0Cl 0SL0zL@z0#jjH00zP00zT00jX0:j;:;:;:;XX@ pT0`PLPt0H  *   iMD[GB; i@`0 pS ` PȇȂ($MB EJ`FtMJ GX jn evMLp lfj` gzMN[xMB(0 JC0*C0*c(0JcP P I (0Jc0*c0 K*C0 K*cP P I 0 K*cQF@8ܥ0T"H 1L@P XT  0zzj'zgZjzzj&zjzgz\:\^h0<@ 0 @SD0@ 1D0@Q|0pUpUpW Vލ Ѝ^ 0V>0p d0@ 00Ԡ<Ix lt B✐1|`p 008d2 (00P800  0 U00\P YU 0 00 J C X@JR@ZJ z 0ZR00 zg:j$zjzz%zz0I P Ub 00z`! BR001 *0j 0V:zz0PzR 0JW 0CW0 S(0`F00@' eO-`UM@ M`0`N/1Dl 0!BP4pP.p4+pW @P0P0p TH0@  C0 2 4 6 8 :  B " $ & ( * F! 0DSk$1@ S+;)`[r%(b*B S{+|;)`r%(b+; Sv+w;)`r%(b+ ; r+s; `p`  R UTU 0RU0!14D0 0 P1(0p0d 801P0t0<0x ?T0!0BPH0p W`p`R`BpUQQ!R Q R 0a'qPR@ 0Ya'qPU 0 R0( 0ljPCL0Uj FL2,FlI80 @<0 C c @*b-BPፊa 0⏪a @ J-H*B B00CP(0!<@C80@DPP0 z0 zQz&ZZSzfz%zzzBzzQz&ZZS^zfz%zzzB@0P/<@`18P R zzzfzz  Q zzzfzz P zzzfzz 0 0zzjf'jjD0 @0  S(01(00Ql0pUpUpW  Uލ ЍU@/0U>0P @0@ 0# 0BL0SH0 0T0@0 0X0t0 0|0$000 /L0T1 0C,0 0!0  4 $ d X0h`\00 S0  0 0P$@`C0zQ 1!p 0jQ[zZz'Zjzgzzzz0 S 004 0Z1@0@@00,0 SL0hpCS0` d$0` 0\ P0ST0X0 0 $ @C0j V1zzjzgzz 0S 0U100L0pS00!?0p0` 1\0  O-M`M@.`0`1DT !BPpP .pp 0@PP0X P0T0@ H0 C     B   " $ C! 0DSk$1@ S+;)`[r%(b*B S+;)`r%(b+; S{+|;)`r%(b+ ; w+x; `p`  R  T   0T0!14D0 0 0P1 0X0劰001L0\040`080d0<0?T0x !F0B0P؀H0p W`p`R`BpQQQ!R Q R 0a'qPR@ 0Ya'qPUԠ0 Y  | 0Cl0L Y  #zj0jZG,FLFlE4@0p0p n B፪l 0`Y @ Da P ` p F H B n Bl` Da F H B S0 1<@ 480zJzfJ\Zz$zzzD0 0 @S 0 1 0GQT0pUpUpW b ݍЍU@^ 0=@0L @ 0S0Ԡ}IP Ht B✐1|`p (00$@2 ,00P$00  0 U(0\F YK 0A 0@0 z CX Zz 0J1zgjZzjzzzz0I P Ub 0z_`! BR001 *z1 jVz0PzR 0JW 0CW(0 S,0`F0A00 8 O--P@P0WMPM1.,h H!BPLp` .pLp*,0@`HP0 t0T0d l0 C     B& ( * , . 0 C!B0DSg[$1d S+;)`kr%(b*B S+;)`r%(b+; S+;)`r%(b+ ; +; `p`  R WQ W 0RW0!14h0 ,00 0P140g 1 0J0劐 P0 000H !p T00 倐X00L \00`00D0,?0T0x !0BPl0Bp W`p`R`BpQQ<Q!R5 Q R 0a'qPR5@  0Za'qPU 0, S   4B, 0@^0lL ;0$,L + ;0+;D0e؅`D *b -D^ ` L " * -F N"  " 0* -HX F-JR D B B0QLP14@ H`PpzTXz \`Zzgjz j:z*J :ZDJj R Zzzjzzzzzzt PPzPzjzgZzj:z*J:ZDJ jZzzjzzzzzzKP @zQD@zjzgZzj:z*J:Z JjZzzjzzzzzz" 0 zz Zzgjj z*z:: 0JJZZjzjzzzzzzzh0,0 0 @S400 140Ha0pVpVpW WލЍU@0W>d0p @_00 ,!Atا! At1|`P <0倐0l@8d@2 $@( @0$0p8$0(0  (0 WD0\c 0Sg0A `0P `@P0 z CX jRz Cjzg*z* :&z:0 J1 ZJ jZjz zzzzzzz 0B `p WPb0/z `! z1 jVz R001:R 0JU 0CU0pz<0$ S@0`FX00Q O--`@`0WM` M1V/Dld BPP!xpTP .pT^p}D0@PPP0 0T0h p0 C     B( * , . 0 2 F!0DS7k$1h S+;)`[r%(b*B S+;)`r%(b+; S+;)`r%(b+ ; +; `p`  R WTW 0TW0!14l0 D0H 0P1L0I1ኰt09?O|0D?HT0x !0BPp0p W`p`R`BpQQQ!R Q R 0a'qPR&@0Xa'qPU0D X  0DCQl0LTHL #zzP00jX00j\00z`0:zjj;: ;:;: ;s\ Px`0`0P Xp@ T0d0C  ( X g@*h!`0[bMJdG  P P G0[G g @0*h `!` 00bR 0 P @H󈂶(*M 0> 0 D EJcM@*a#0F؍ rMNb dp*cjeMJ f0[ rMLp $ tP P G0[ hP _ H _P _ HUF@d S&P@!|pX0o\0`0T0 Qzzj'zgZjzzj&zjzgz:ITs06:S00U0l0DH 0 @SL0H 1L0PQ0pUpUpW HWލ Ѝ0W>0t h0@00DH Ԩ Bt1|`p 00p@h@ 2 @@00P00  0 U00\P YV 0 00 J C X@JR@ZJ z 0ZR00 zg:j$zjzz%zz0I P Ub 02z`! BR001 *0j 0V:zz0PzR 0JW 0CW0 S@0`F h00c00# O-`-@``0UM M1N/0BP@l p0!PP\04.p4p@P0P0p TD0<  C0 2 4 6 8 :  B " $ & ( * F!0DSk$1< S+;)`[r%(b*B S+;)`r%(b+; S+;)`r%(b+ ; +; `p`  R UTU 0TU0!14@0 0 P1,01L0lx ? T0!00BPD0p W`p`R`BpQQ{Q!Rt Q R 0a'qPR@0Ya'qPU 0 R0F,0l ʑpCL0WpLL 1#0t00WPPL!@P0`*j @0[Ҷ% *j@bT ` PmȇȂhM H: 0E b @"ZJc*e D0[ލ Mb mP P J m WP P JQ@ ,@00CSK0 CN0 0jjj,ZZjljFj:SsP6%j:S00sPfj:SPs06:S00s0j0jj,ZZjljFj:Ss06%j:S00s0fjZU0:U 00\0@@@0T\1 0jjjl jfj:S:S00s000QD 1 0jjjljfj:S:S00s0 00R,1 0jjjljfj:S:S00s0@00T0!@0jjzl&zgz:Ss06:S00s0 0@0 @0 S,01,00Ql0pUpUpW Uލ Ѝ P\B|0U>0L <0@)0 0BH0SD0 0T0<0 0X0t0$0|0(000 /H0T1 0C00$0!4  8 ( hX0\`d00S0@0!$0`( PpC0 Z0ZRY0:jzzz'zgjzzzz0 S408 @0X00:zzzz00 SH0hpCSG0` \(0`$0d P0ST0X0$0 ( @C0j V0j0:0z:zzg&zz 0S 0U00:zzH0pS 00!?0p0` 1d0 =O--P@P0ZMPM1-, BPx!p|` .p|p+0@`xP< 0T0 0 C     B2 4 6 8 : < C!N0DS[$1 S+;)`kr%(b*B S+;)`r%(b+; S+;)`r%(b+ ; +; `p`  R ZT Z 0TZ0!140 0 0P10 1!00K 0 00?T0x !n0B0PN0p W`p`R`BpQQQ!R Q R 0a'qPR@0Ya'qPU0 S ʈ  Bl RL 儐,"0; 0ˬK+l ; P``0甠ᐰ4 ߪhL00[w ߪh @0 p S 0 ` P 0 00 @ 000 00`lO K 0J+TM cH只c H0 nj+F lVm 󉰋pM nF lpm `D `a~MaD~mb*"~HjcMcR H0m0[L @p0 C`0CP0*C@0JC00jC 0ߊC 0ߊc00jc@0JcP0*c`0cp0 cP P HNp0 c`0cP0*c@0Jc00jc 0ߊc~`0 CP0*C@0JC00jC 0ߊC 0ߊc00jc@0JcP0*c`0 cPm P H#`0 cP0*c@0Jc00jc 0ߊc]Q@ꐰ ᔠ00CS0ќ0 0C℀0C00`P@  0`P@0p*p*::JJZZjjzj"zjbz"ڕʔzbj  !j/zz.jj-z zjjzz*j j)z zjjzz!jj!z!zjFj:jSs6jjzz:S00sfj:S㰀s6:S00sGz:S㲀s06:S00s0gzX0:X `P00Y0@p0 0000 S p1   @zĐz Pj`'zg:j J#zJZp*0Z*j&z:jz!zz"zzgz:S:S00s0 0 0Sx1 z :'zg   0*z*: zz!zz"zzgz:S:S00s0 0 0RO1 z :'zg   0*z*: zz!zz"zzgz:S:S00s0 0 0R&1  @z 0'zg**:#z:zz$zz%zz&zgz:Ss06:S00s0 00 0 @S0 10Yxa0pVpVpW ZލЍ ⶀY`P@p0Z>0 @ 0\0uI ᜐ Bt1|`P @00嬐02 P00p00 0  0 WT0\u 0Sy0A `0 P`@P0 z CXZR*R  Cz : :Rzg  J JR  Zj%z   000jz zz:Zzjzjzzzz 0B`p W Pb03z `! 0j 0V:zz R001:R 0JU 0CU0pz@0 SP0`Fu{0000 T'O--P@P0[MPM1. BP!p` .pp0@`P> 0TB? 0 C     B6 8 : < > @ C!R0DS[$1 S+;)`kr%(b*B S+;)`r%(b+; S+;)`r%(b+ ; +; `p`  R [T [ 0T[0!140 0 0P101ሠ! 0 0HR/0 0ༀ09?O0吰?T0x !g0Bఀ0Pp W`p`R`BpQQQ!R Q R 0a'qPR@0Ya'qPU0 Y plL !+@0 0C$S ˠ  0 0 Ԡ` PK  + | 0x @t0  p M  X g@*i!`0[bMJdG CP P G00[q g@0*i P!`S0 `b 000 00H 0 0 00 00刂0 00(*O ^0 k { *c-F Jk MH c F0jkmH$半n􈰋-JlxMNn JlxmN`-La MJ` LamJbczML-LcbzmL0[ LP P G00[}Py _ I tP _ IU@ 00CS0Ѡ0 0C̐0C00p0 ` 0Pp@`P@*$0*혀::JJZZjjzj"zjbz"ڗʖzbj  !j/zz.jj-z zjjzz*j j)z zjjzz!jj!z!zjFj*j9Sr 6jjzz:R?0 fj: [s 6:S/ Gz: [s 6:S/ gz: [s06:S/ 00Zp`P@0 0000 S 1p @zАԠz Pj`'zg:j J#zJZp*0Z*j&z:jz!zz"zzgz:)Rs06:S/0$ 0 0S1 z :'zg   0*z*: zz!zz"zzgz:)Rs06:S/0$ 0 0RS1 z :'zg   0*z*: zz!zz"zzgz:)Rs06:S/0$ 0 0R'1 @ z 0'zg**:z#z:z$zz%zz&zgz:)Rs06:S/0$ 00 0 @S0 10Sʈa0pVpVpW m[ލЍ0[>0 @0_0x!I开!ᜠ At1|`P (00崠2 $ 800p0$0  $0 WT0\u 0Sy0A `0 P `@P0 z CYZR*R Cz : :Rzg  J JR  Zj%z   000jz zz:Zzjzjzzzz 0B`p W Pb03z `! 0j 0V:zz R001:R0JU0CU0pz(0 S80`Fu{0000 UO-`-@``0VMM1-0BPDt p8!TP`0<.p<p@P8P0x TH0@  C2 4 6 8 : <  B" $ & ( * , C!0DSk$1@ S+;)`[r%(b*B S+;)`r%(b+; S+;)`r%(b+ ; +; `p`  R VT V 0RV0!14D0 0$ P1,01P09?O<0 0 x/$T k AH0Pp W`p`R`BpUTQ!R Q R 0a'qPR@0Ya'qPU R 0{, l BR L xJJ $ M " | TPx@tt `p p( 00; , X i@*k!`0[bMLdG󤲶XP P I0[3 i@@0*k p!`T PbH󈂶(+M 0 0E"^ "^Jm*c e0[-P P Ij0[!P _ K^P _ KUU@M(00  BTO _B@0P @0h R 0 BL RH X @ \ t | (  L X!4 B0 `8(\ l dh p00S0@0! 0`( PpC0 Z0ZR[0:jzzz'zgjzzzz0 S408 @0Y00:zzzz00 SL lBp0R d( `p h ` RX \  @(PB0 0j j0W:0z:zzg&zz0 R  V *zzL R  @_/  d!h T\1\0` @-R0@00 [?CPS[= @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[ P0 Q(0 B,  B0Q040P x<$ \1\0` @-R0@00 [?CPS[= @P0L Q`0 Bd  B0@Qhl0P d(0S 0[/BPR[ P0 Q(0 B,  B0Q040P Bn<'$긋8 \1\0` @-R0@00 [?CPS[= @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[ P0 Q(0 B,  B0Q040P <L \1\0` @-R0@00 [?CPS[= @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[ P0 Q(0 B,  B0Q040P g<qn \1\0` @-R0@00 [?CPS[= @P0L Q`0 Bd  B0@Qhl0P S(0S 0[/BPR[ P0 Q(0 B,  B0Q040P 1] <t \1\0` @-R0@00 [?CPS[= @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[ P0 Q(0 B,  B0Q040P < \1\0` @-R0@00 [?CPS[= @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[ P0 Q(0 B,  B0Q040P {V<`]꜄@\1\0` @-R0@00 [?CPS[= @P0L Q`0 Bd  B0@Qhl0P B(0S 0[/BPR[ P0 Q(0 B,  B0Q040P L<0\1\0` @-R0@00 [?CPS[= @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[ P0 Q(0 B,  B0Q040P <āH\1\0` @-R0@00 [?CPS[= @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[ P0 Q(0 B,  B0Q040P jE<OLX \1\0` @-R0@00 [?CPS[= @P0L Q`0 Bd  B0@Qhl0P 1(0S 0[/BPR[ P0 Q(0 B,  B0Q040P ;<~\1\0` @-R0@00 [?CPS[= @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[ P0 Q(0 B,  B0Q040P <}d\1\0` @-R0@00 [?CPS[= @P0L Q`0 Bd  B0@Qhl0P {(0S 0[/BPR[ P0 Q(0 B,  B0Q040P Y4<>;|\1\0` @-R0@00 [?CPS[= @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[ P0 Q(0 B,  B0Q040P *<zD\1\0` @-R0@00 [?CPS[= @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[ P0 Q(0 B,  B0Q040P ~<;\ P1P0` @-R0@00 [?CPS[: @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[ P0 Q(0 B,  B0Q040P *<Z8 P1P0` @-R0@00 [?CPS[: @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[ P0 Q(0 B,  B0Q040P <HY P1P0` @-R0@00 [?CPS[: @P0L Q`0 Bd  B0@Qhl0P p(0S 0[/BPR[ P0 Q(0 B,  B0Q040P Nz<63WP1P0` @-R0@00 [?CPS[: @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[ P0 Q(0 B,  B0Q040P "<V P1P0` @-R0@00 [?CPS[: @P0L Q`0 Bd  B0@Qhl0P (0S 0[/BPR[ P0 Q(0 B,  B0Q040P <(U P1P0` @-R0@00 [?CPS[: @P0L Q`0 Bd  B0@Qhl0P h(0S 0[/BPR[ P0 Q(0 B,  B0Q040P Fr<.+SH0O-P( `-0ّ FMM@@8@00BS<0040 .s<0K0040>@80 Q (a000(`0" 0[, 0,00 0 `(0& p, 00 0000$00PS"#% Zi Z0v Z Z@ S(0 j!1zz&zzQ V0 S  0S 0,0 0zzgzW000 Ss000S0zzzzWS(0z 1! j 00VZjz'jzjzZjjzj'zjz0S(0ū 0zV!jzzzS( 0j 10zVzZjz&zzzS(0j 1! 0zVJjZzZzjzjzzm0S7,0 0!^S1 # 3\  R1 \ , b CQ Q P!,`p0 W00W00 0 0040S FލЍ@ \[0, 0,00 0 O-`-0( FM0M@10000 480BS<0@0.s<0Q0@8 ZP ` qY"$`, p  + r0Y, 0000($ 0(0p ,& 0 0Q(, 0P 5%$ M0S S S S0w S00, j A 1zQz&zz V 0 S, 0S0A zgz:SS000Rz'zhzB0 , 0000 0 S 0RzzgzB0S0 zzzzW 0 SZ0 zgz:SS0000BZ8@400T0T0S FލЍS, z0 1VzZ 0j0jj'zjzj z Zjj'zjzs0S,0o 0jSV!zz&zzb0S_,Z0 1 V* 0j zzj%zzzzG0SD, j0 1V 0J0ZzZzjZ&zZ&zzz$00BZhs ?Yr0, 0000 Tz0O-P( `-ڡ FMM@@8@0BS<0040.s<0E040l@80 Y  aq0咆( 0 `0,p 0 0V, 00000 `,0& p, 0$0 000(00PS"#% [} [0 [ [K S, j 1zz&zzQ V 0 S $ 0 S0 00A zgz:Sz:S00ӈzgR0zB0 00  00R000S0 zzzzWS, z0 1VjJzZ  00j'zjZzjjzj'zjz0S,0Ř 0 jSV!zz&zzS, Z0 1V0z z jj%zzzznSl, j0 1V00ZzJzZjZ&zZ&zzzKY00L zgz:S:S 00Y040S FލЍ 0Y HV0, 00000  0O-P( `-ّ FM MH@@@0BSD00<0.sD0H0<0 @@0 Xp a0v' 0 `0, 0  0 V, 04000 ,0 P%), 0O8$0 0 ` 0( 0S"#+ Z Z0 Z ZM S, j 1zz&zzQ U 0 S& 0S00040A 8zgz:Ƀ\s06:S0 0zR0zgzB 0 p 00R0S0 zzzzV0S, z0 1UjJzZ  00j'zjZzjjzj'zjz0S,0ŗ 0 jSU!zz&zzS, Z0 1U0z z jj%zzzzmSk, j0 1U00ZzJzZjZ&zZ&zzzJ0X40NO _zgz:Ƀ\s06:S00 0X<0S aFލ Ѝ V0, 04000 O-zt@x-,0PtMq0P,*< (0z'd0YX  0008 4 @ 40 ,0 0R $0*< O0B0 BP #1 2T00 \010 00S\ 5 0$ 0 0S xl0(Lp Z4R 0 8Q  6 @U@ R@ U' U,0Z0$0Z 0 Z @00 0 0C10BT0TX0X000C10BT0TX0X000C10B fZڀ@p@D`LP    ( x0BT 00V0 Ӱ X800@t p 0 5z\V 0Vڃ0 S z'z7@T T*z'jfj:)Rs06:S/ 0 R 0 zGztЍh P ZQJ MlM` `(b`(b`r p"" bM BR, Z $ 4ڎ X 0 D0J@0 0H0D0L0 d H ` D0H 0d`p pH W S1#3 PS1J # 3 I\  R  R!"Mg<*MC`= !!!(b`r p"B RMJCR 0S07 p!Z   B! %ځpZ    B! ڀpZ   B! ځpZ    B! ڀpZ   B! ځ0Z    B! ڃ 10 0000C10h t(3  #0 ,0Z0$0RJpJ0@@1TX0X 000C10AT0TX0X 000C10AT0TX0X 000C10AT0T^X0X 000C10A mZ J0"! M aM*` ``p MC\!T8RN0X p 00 00L0PC10:0GUS0080S1 L O-zt@x-,0P|Mq0P0*@ ,0z'd0YX  040< 4 D 80 00 0R$ (0,@$0AA #1d20 0l01 040h$!0P X0 40SX X$0( 0$0Sxl0,Lp Z8R 0 <Q  6 @UD R@ U U00Z0(0R 0 Z @00 0 0C10BT0TX0X000C10BT0TX0X000C10B `ZHPp@@P@ 100 S0 z 0|0z^0 刀0Ḁ0 0 0:z'z7 0U#|Uz'z7 Uz'z70U00:z'z7 000:z'z7z(Gz:SR:S 00R0HP40 SD   , x0BP 00V0 Ӱ X900@t p 0 6z0\V 0Vڃ0 S z'z7@T T*z'jfj:S:S00 R 0  0RWzGz|Ѝ X < ZNJ MlM` `(b`(b`r p"" bM BR0 Z ( 1ڎ T 0 0JD0 0H00L0 ` H \ 0H 0`\p pH W S1#3 PS1J # 3 I\  R  R!"Mg<*MC`= !!!(b`r p"B RMJCR 0S06 p!Z   B! $ځpZ    B! ڀpZ   B! ځpZ    B! ڀpZ   B! ځ0Z    B! ڃ 10 0000C10pd t(  h0l  00Z0(0RJpJ0@@1TX0X 000C10AT0TX0X 000C10AT0TX0X 000C10AT0T^X0X 000C10A oZ J0"! M aM*` ``p MC\!Vj?!ah(bhf`r xpv`("&" 2*" BR0S r 0 p 0 0W00C1 0aڂ00 0W00C10Rځ0 0 0W00C10Cڂ00 0W00C104ځ0 0 0W00C10%ڂ00 0W00C10ځ0 0 0W00C10ڂ00 0W00C10ځ0 0 0W00C10ڂ00  0W00C10ځ0 0 0W00C10ڂ00  0W00C10ځ0 0 0W00C10ڂ0 W 0000C10ډ  0 0000C1 0zgzV [@@040` [pB [W  0Y@0 0`00C10@ T0TV0 V000C10@ T0TV0 V000C10@Y` PpBDP !Qӓ+# 0|$0@0QQ0 0 00 0U|U U 0U 0 00 zzggz:S S`00Y0 000`0YPdЍ  x XT t80(0  0 Yp0G4 C@0! P 0@HL   0L SP1H#3 XP1 # 3 @ Q  R R`,!"  ` 0 *` bSራ ≻ `:J*b; b*`bk0*1 {45J b*KjA[n!bjJA!:;A!hHd(b`t@xpr ($"B R*$ H0X 0  0000C100000 0@ 0PC100  0@00 00C10 0 0 000C10i 0Xp 000 0pC10000000C10 0 0 000C10 00000C102 pp 0p 00 0 0C100 0000C1 00 0000C1 0 0 0000C1 0P0E[q0SpC  0ᩑ  *c b2 3*SQ8jS9*PQPQPp  Ap0  0 `@ @0T`V0 V000C10@ T0TV0 V000C10@ T0TV0 V000C10@ T0T TV0 V000C10@ 0 I 00 000 PC10N0G[S0000rppYW PßO-pM@S *i@$ p ` iQP 8d ԛ @ O-M␂@(p`(0<0lŸP @ pA(`@! , 080 t 0 0!1R!开$01  00pȰ`@ C?Q80A(SJ!!Q0"*cS ` P RH `$ `;  Q  Q   Q  Œ8@: (80 080T RcЍ0 0@ 0 0G/0  . ,8=JoE, O-M␂@(p`(0<0lŸP @ pA(`@! , 080  t 0 0!1R!开$01  00pȰ`@ C?Q80A(SJ!!Q0"*cS ` P RH `$ `;  Q  Q   Q  Œ8@: (0 080 Ѝ0 0@ 0 0M/0  8bxd< l ؘ O-M␂@(p`(0<0lŸP @ pA(`@! , 080 `t \ 0 0!1R!开$01  00pȰ`@ C?Q80A(SJ!!Q0"*cS ` P RH `$ `;  Q  Q   Q  Œ8@: (0 080  Ѝ0 0@j 0 0S/W@0 7 8@ $ O-M␂@(p`(0<0lŸP @ pA(`@! , 080 t 0 0!1R!开$01  00pȰ`@ C?Q80A(SJ!!Q0"*cS ` P RH `$ `;  Q  Q   Q  Œ8@: (10 080M K\Ѝ0 0@ 0 0Y/0  ' %86C>8 ԓ  p O-M␂@(p`(0<0lŸP @ pA(`@! , 080 t  0 0!1R!开$01  00pȰ`@ C?Q80A(SJ!!Q0"*cS ` P RH `$ `;  Q  Q   Q  Œ8@: (0 080 Ѝ0 0@ 0 0_/0  z x8k\ P 0S*p@-`@PP P `BUPp.u\p/IO-P-p@M Mh`A030 0 H{:: H{:$0勛Б@ ` x ȫɻF SZ: ` y CSTU0?SSP LIn  +=0,80+(m0  0 000ʍV똠 [1 0< @0 x0 C00 4 C0?PS S SP (@90 0@ B0w4 , ލ Ѝ@P1 pUpp| y(0 E80 $0>$i @ 0  V0 IWP* 0 , "'^ 0  늟zO I  I0 0u <| ܍ ( < 0 36p3@0(@ Xl 0P 0 , i 0  _⊟ E   E0 I0,AUP5  uP/ 1S,0008 p0 z'>0  0p 1 p  0P:i0 ,4Pf 0  R늟zO Iw " I08 03 [!\ 00UPDMH J늟LI  0XLH0l@D 01 HLb/0D Jύ PV.,>!1.>H!L10T[0.000001 111$1 181<1@1D1T1P12 4> @J LV Xh1Dl1p1t1x! 11111111(0 @|!1 U\X0pp PP 0 :i$j :0zz  0@ (WQ:S 0C[/ Q[:*(x0| @>D1 $ 00PpGPG 0 , mzO 0  b[  8 4(@0 0 BFD[TYPWLUHS0 BH  ( X0 #i, E0@ (ܣ:S 0C[/ Q[:*(x0| 0 O 00*P#_EpR 0@ @000$0B?t2 06B?680BT: 0:80.s:40   p0H O ' #0 F90 F4    (D8T6P4L2H004$ (,&((b[ 80PP 0PP pPP (('O--Ppc@M`M΍00A p캝:*S. ૴J໴J[00140! [ z:: 1S0X0!ja{:(0 k`{*$ Sa> 0zL @+H{::80 I{:0` x SJ0>p t0 ƍ0ʝƍ5Z?(0 : ƍ$0:ƍ([c [00 S[ Y(2Z0  18PU00S *000 0@]S F6 * *@S6T @ 0 H (0p⠐@'V$I  0 N01B?1` V 0S  ^ 10 V`0 `pt5/00PPo m:::;::+: z 5: ` y CS^80 SR(0 \0a Y <ԧ0S 1@ኋȋH h ( zP:: :?;:K++r++Z::K++r++Z0:h @ ʝ0H :ʝ00 ƍƍ} LH @Y8 40 0e/F/ꚙ?H| tw y ,(0[ \0 p(0P`<01 8 X00S \ $00l0. z/!1S1 1\ (Q!$ a!0 0ڗ ?ڷ*! LpL!GL0Q0K"0p˵4pT 00l P01|00xD!(@@NHpppp 캍  hp4:*S 0 0  p{jjz0C0S0A:jzw8SG<0P 4@\ Q4 ʀ jRzG0H R  T1^n+T`(d`*CSP0S X0^ ^01 ^0  01:S{ S gj}zj0SU z^jzggz:)Rs06:S)/O00z0Njzggz:)Ry:S)/O00U0t z=jzggz:)Rs06:S)/O00z0-jzggz:)R:S)/O00U0S zjzggz:)Rs06:S)/O00z0 jzggz:)Rg: ES)/O00U0* z j_zggz:)Rs06:S)/O00z0j_zggz:)Rh:S)/O000 []ڄ0  C0A ` 0R S^PX K` 0 M cM BR0S ; 0B[ 20 C R0) 0B S  0 C R0 0B S 0 C [0  0L000(0 S@0D00p캝$0Sڅ0 ` BN 嬀p㴐`۶˾U zzzggz*Qr 6:RO  z zzggz*Qj:RO  U ` zzzggz*Qr 6:RO  z zzggz*Qt:RO  U ? zzzggz*Qr 6:RO  z zzggz*Q\:RO  U  zzzggz*Qr 6:RO  z zzggz*Qe:RO  Ѿ $0 S1 z[p l pL{犽:zz C S[ C0*!NJȊ7 [ zxz0SV U  ]U | VL0[&$0l A\00 1S!ࠣ࠳Rx 0  b CS0 S 00 C[1! 0 C[1! 0 C1! SF<h i{:  C S Cz {zz:jzCS0C:ȊȊ7zx0! h{ 0C0S0Az kjzߝwz jjCS@zzvkQ 0zh00<gE4(Z8zz'zzJjxgjZ$jzZj&gzNz%zhZZz&z'ejhZjZzxZzwzwz>J7jj&jjgZ}:fZjZJJ'Z%fj%j&jMzzMz$jzzjgjfz}jzwzwzjr Us00Gj_zJz.;p0 C0;wmj ``m e p0Nj}0;vkj+Qu[ztJfZj}j=fjzZFja{gnj=Zjbj} gmhnFjZ{jaƚfj jZ}iZ=jn`ez#k&h aiEzh[bgz k&;g`{i{hk&;cKh +;c[{jw[jvkjv[jvKjvKjv;*v;*r"jZ&zfZj&@zZfjJfZB@ B DJ&:?j< > -DT! @;f;f?4z_犴9J8.;p00 C ;H#/ /O ;0 p00Nhzx [+Sgzknz8J GzNzxj `NJagzjFj8hb `Fjfz8jio/hGz zfjxlaǪ `ifjgzxj[{ahlgzkkb ij `{g;l;kj `;k{+ `K[$Jukjt[zvKzw;zw;zwkzwKzwzZ'j'8Z%Zg9jJ':Z:';J8 : D#:g4:&jg5:$z'6j7z4 6 r s0Ihzbs0r ` Q0h04 00 P t 0 ^ 0 P11TğA  0 0($(4 @0$ 1P$ P;P02D10 0 C 11= 8@0@l+(+p;f?2 14 6 8 푶@D`F0JX!0k 6{.; j4+2 `8[Kfh gK Kq[u2K8[R P0 1@h00"@$0x   `l0p<0 $ |0`0`  x Ph ijjk 1S 0[/BPR[ !0P1R!h j B0Qʼ@0P |1S 0[/BPR[ \!0P|1R!Z \ B0\Qʄb?P ۲D1S 0[/BPR[ $!0PD1RH!L N B0$QL>P 1S 0[/BPR[ 0P 1R!> @ B0QF?P sߍ =TI I D TE 000,A  0 0T 1 d00@(1!h^HQ@(!>Jj`DpN@DNP@D P$4`p,BLP0@X\娛cb zfg t{ CSuLD@ P*{CSLP@ P*{{kCSND@P*zzkCSN@\Zz(`T0p>Y00:0 *P@  J  0Z:JdZ%z#:JJZJzZJZ:JZzJ Z:jJZJzZz` pZ 7 {{ ǻ 0C0S0@ :CSYp @ q[{Ejvgz6 pZfqjgz%'ze@(01 Zz%JZzZz jzzT0(L4(H4\?cZ(P{ Jǻ CS @CSD@堻s Pq{qgjvG* @`\-*p ǫ0 @`L@ p{GZv&Z'je'z'Zg0:0X:0:0z:zg:zJzJ$zz0P Zk {\,p`L p@`j`zWj'z'Zzz0@P@ #T\P@XC0 P  * ZP* * Z%*:ZJZJZZ , <8߶!$ܶ@g <8$ [MO-Mx8@`00 ``Hp耝4P d` b0@ P 푴|0S1C¤ @AU dXh0`D0`l0   0p0$  (  0t0,  0 000P0T[   SU1 # 3[  R   l BRT D  T@ Z<* T7 T2$T-(T(,T#0T T T  T  T T   T Ӈ…P/ `V   ` 0P00S 0[/BPR[0 | 0P0R " $ B0|Qʤ0P ЍOЍ/ CE pRX wT0 0 HPLP}f44յ`4: P; O- 0*`1S0 T!R0BxSy"1Q@2 `SId0PS()b ` ^ 0S 0S0 0 oR \0 t1S 0[/BPR[OT!0Pt1R  x! B0TP|=P K0SލЍ L<   x*NP!0`R  P5nύ $0*bS b b+d;1f h! 0[/ P[0S, b?01  0S"5022f QP0`P^   0 _!00p1 t!0 r[0 `0 0 $94@V8PᒥP@ 0+;  0S*AJA0 8    p0 sP@ +;0PP `V *BJB0 08000 P1(HQ-PS0+;S  rPp+r; !!!!$ *""ުŸ ` PU  0.l20 L" ҧP1S0!R R" 3022崪 RP0`P^   0 s!001 !0 ᩧx!0SQ00! 322刪hQP0`P^   0 v!001 !0 }0|0 Y 00dSd0|0 @0`NT`"+#;~@b>(b ` DT@0TK t1S 0[/ Q[$0S 0[ B(  |    0 0 ( /BPR[  P0PR$0 Eu(  B0QP1Q0T1SJڈU0p! t1 E"@0T8 1S 0[/ Q[$0S 0[/BPR[=  P0PR$0 E2(  B0Qʈ1Q0ʌ1Sڔ0! 1 E"0Sq|PGQ@8@3.04僦  Y0S0SK  0 o l"4( #0R0 2@h2 0b G  G08@S68`D 0 S0⩟Q㪯ɐʠY ZPSPX1\ >0b? 0v 0 S0S0Y0S1XS\1P 00#.40S 80e˟ef 0<00@( $0 ` S D `2  B$"(, 0[/ P[0S7, $2  0 "1:0 (l00 xp00 ዷhhNR Ӱ ՠ ʌ 0p R 000l0S p 0C00 Bt0 000h00d0 Bh d0 h l 0d0S000 0S d 0S h0t T d P@0`0X zx`zHzwgz:zd0\0A0zjwfj*t 8 L2#h 0l (0z7Gz:R p0$zwgz S0\??O0C0@ #1a AD1L000H<00P04,$0< Sx(0, 0 pS A `S΍ S G,  FN! ( P  A   pS`SS G FN! (  P  A    pS`SS G FN! (  P        pS`SS G FN! (  P      $  0R, L(0H 0(0$0 S(0ꎍ`pN 0F G1!8(00 R 000,00,00 00$0Xa(0΍p `N0A Ga1!h8(00 R 000,00,0000$0X?(0΍p `N0A Ga1!h8(00 S 000,00,0000$0X(0΍ ` p N0F G1!8(00 R 000,00,0000P0 C(0剐 0(0800 #"0800 @ S40D 040(00(040,SD :X`Tp z [; zKz+ ;cc{*Kdd{:RS+bb{aa{  ``{- A`Bꎍ@@pCVPL`fAWpgQ`H`X``j `X @| T0 P^`A 0C@CC\ @ xt0 p 0t0S0 0 00002S 0[/BPR[ !0P2R   " B0Pʘ0$(0P 00C0@=0t80C0q1S 0[/BPR[ !0P1R  ! B0P0P @`T% PP$0S 0[/BPR[e  0$PR㏊(0 0CP Q,00PA 8@V`V ᢣ@`T% PP$0S 0[/BPR["  0$PR㏊(0 0CP Q,00P  8@V`V t1S 0[/BPR[ !0P1R  ! B0Pʨ0(0P t1S 0[/BPR[ T!0Pt1R  x! B0TP|=P r0S& o#0C01r܆#p 8P QP(`P@"D`8&X0" <@D(4rHLPTd`\  'D P0pH 820H0<1  0 H0P 010@00CS"gN$0p6t6ߓUP `P\  0>X% 0d D50Ր P0R B0"gN40p6t6崓TP0`P\  0e1$ 0d 40᪐P` 0 F, @ BQ? UL0#>(20 ! ,R(   D   u,R2( 0Sg>0D0p6 0st6$0p(_o ZRR+00S^P!+ p! T! t   ~_"D (0H!00@P! p#[ {^+$ b;,0Zn11>1=`[10!2D!z/110AA f+dh;v;zK 1!@0S j" fjz0zSRzzjv'j6$0"ÐD(  0᥊%z(0 zRPzzHz7zw Ca+ Cb+` C `+C CEp ⤰0 8   @ @<00Nq0崐A BZ0( ER2 222$2 2  "D0 !  !l1,Sˀ p 0[/BPR[  rL!0Pl1Rp!  B0LQ BBܹD00t"P2 U\l1`dqX!h K1  1p!tS (0P P0x! +; E|!22 ܌  "D E1! S"ˀ"( " R "$"  0[/BPR[$  r!0P1R  ! B0Q(0"P2 U1q! H1 1( !SP (0P y zP0! +; E!22 v \!!B B! "DR!( " < [? CQS[ |C0!P1R   !P B0QP 0+U; Pp" $*B1  + 1  !S (0P  P0! +; E!22  BB V<0pE@C80 p CP0 @    p    0夰堀尀: 0 l "咣.\ 1!0( 2D10220R "$2 [? CQS[! | AL!P0l1R  p!P B0LQP0t+U;xpP|儐 hl*K1   1p!tS> (0P __P0x! +; E|!22 t $0p 0\"" 1!0( 2D r10r220R" 2$29 [? CQS[ 2$0!0P1R   ڨ!P B0QP (0+U;P$0hlt0p 夁+B;1  1( !S (0P __P0! +; E!22 , \0"" ! ! ! "DR!( " 22 [? CQS[= 2 $0!0P1R   !, B0Q, 0+U;P$0\`X0d  ܑ*B1  1  !Sd (0P P0! +; E!22 0S#@0CS ( 0z0 zRWz Hz7 q `z C+zw +p+b+C;+q p ` C<0PE򤰍C80 C00 P 00 Q@ @岍 V `1 ++   V+ pɫ0ʫ⫴* 9ɛᛴ.{0 : 9{{ʫɛw7ɪz q q;aq+ p{zlzzjzM0EzwNgzzzMzw0z1S 0[/BPR[Z !0P1R  ! B0Q 0P 1S 0[/BPR[1 !0P1R  ! B0Q0(0P l1S 0[/BPR[  B:0yE>f@-DT! @V@4C`H@L!0Pl1Rp!  B0LQt0P pD0PP -L0(0PP &41S 0[/BPR[ !0P41R4  8! B0Q40<(0P W0SMލ Ѝ V1 21C2tp1212tp1^21021F?40> H0᱊ pq  pn p $p , $8t6D00 @ JT @ Jz_" gzj0jSRzw&z7$0"ÐD(  0᥊%z(0 zRPHz7zw Ca+ Ca+b C `+C C[( z 0Wzw :pazwB++q+b+B;+ pq ` BC40C0H1e!z_H2 ᔎ0呎厎勎刎C ᅎk ႎ0H|0y<80㰠pCⴠᐄ}   040 p !2)!~_pE11ō $}   0H50 p ԊὊT1H!t1)\Y!9 V p)EKᩊpD0PP ҋL0(0PP ˋ ᙊ604 2ᎊH+0S T FညO-p-@MċPs $0*b S bp 0 +;   0[/ P[0S, h0  0  5h`P0HS"N$011#0UP P \  0}2$ 0t 400PV00 G"N4011TP0P \  02\$ 0t H40P 򠰍ؐ  0 `,+.;( *xP咉N.R?0(H $jVZX j!0fjz0zSQzzjv'j6 0%;zR ; zzzwOz7  +` `+a 001@ܰ00A2L81F *^ 0  Œj+>+  a SKzk{$k n z{;dnk+j[f+&zkk &ka'{'!c'l{cǻcK&b[(dx{K{${[dba*! vkbkbjkeK[{da)a,# "{aˮiD۰EkKxl[lb,a+a+al{gx{kgj{˭૬ۥkav{Kd{&a{Bk{a[jKKkKd˩v + `k~+b,ۢd$[ K[+kK+ k ˥#;aۦt퇛 B|=\Hbl+{b+[b+b;jk˪xK#x;{kax lv&[+lk `;cKd!kfjn{+ [+j;Kkz ;K{[n+k+ ;Kk|;qxwp{[ula^mRTgV[+xfhr{oX+;Kt\;kvg{Kd w`K{lZ kf;dbk{;lmmP 0 X H8<00L2@BOH0mX00L001 10141@1D1P0T0`0d00\P1F?8810:+<;AH+J; 0( P [K `;+ ` ` ` ` x0P X T0\L02@#nh0x00l 1$10141 2$20242p0t000B?|P(1?X(20D+F;,+;,b@ B`0 d0叆2 ; + @ J,"  ;+  ) @ J,   ; + k ૴` @@K΢ @ J   ;+ k `N @CKN @ J  ! ; + k `N @CKN @ J +;#;kJ;@C4#KN;k퉻[K;퉫˅ۃ `J[ LK EJn ;k!j+˴gkk{n&- mI++cb{{K YZKl j$L:c  ! +j@  b]J 껽|=B;f?V@K;m Kz [z {|+q蛠%k';+b[" *5@ ۱ >HJ+_ _q! - b @ 9' _@ )* _0̫` ^ = 9۷ɛڇȋڴ< _ 0ڇ  T0l1@ h0呆0 0 G$2S 0[/BPR[ "0P$2R("  B0Q,P $1S 0[/BPR[ !0P$1R(!D F B0Q, P _0S 0[/BPR[ 0P0R 6 8 B0QP0P =0S 0[/BPR[t 0P0R ( * B0Qʼ0P ߍ 01@ 21@ B0 Gꐀ ቁMz_!0gzj0jSQzw&z7 0奊%;zU ; zwHz7  +a `+a 0 ;k!j+˴Zkk{n&- mI++cb{ ʣꐀ00x izHᧅ ᤅb ᡅ>ចK Q ;Q+R# ` Kʂ  2 k kyKsKn,"2,'g,"2,9`,"2Z,"2, 렂ށz x v-DT!?f@-DT! @@-DM1` P@0P߂PT $0*b S b ,00 8 (+;4  8< 0[/ P[0SA, p40  0. J,0S 0[/BPR[- P0,0R 0  B0 Q480P ~0S DЍp qDЍp0 0ᖄɄ~0S  A-JMM0(`hPp E 0 `Pd@ DD0`1@D0 ~X  THW 00L0S 0[/BPR[ , P0L0R P  B0,QTX0P ~`PP .JލЍk~`PP 믁O-P-PPpVMM@@I  D"88SW t0 P ~0Sq 0S R FoK011尃K $404  0ɀᲀ0/0 @ P< S08X0\0`0d000  Fo11冃< Y0$C>0(4  0㟀ሀ ~ PR@뛟WɛI VލЍ@For HDL8 ҃$!,`0\$\* ă$!,0\$J*d0 ` 0@DX0J0 0@PJ:00@狸:  ퟃH J˰ JJJ$! 0,\$o*z[۸z狸G zT00 z턫i8k . f+}++0B0SS\!nwlZ+TJh}+x f+_f+[Z @0Sk f ii+o + pi2L00΀1PJJ-  +if+ :<H0MT@DMH@0SO( 8L0Q0 P ( S 9DP I~5JI m@0SOh  p1L00΀1P iHLMNI- <h㈵>h㈵wJ?z`wTyPzvx4c[cKj U zzP* Kt[u;sSK[;QjS P  ZzZQzUj*Ŋz j+rq pKt[uK;s[;U0z \qSQ 1zz Sz pqUG0NE.d{Œdkd[jjPzzP\:* [ukv{wKtS[k{K0CQ#1jP0P JjUJzZzUZ:ĺ*Ś ;s+rq p[ukv[{wkKt{Kc[cKx0Nd{dkd[G-0CP @US U0 T Tc T T؄q`G℀U0U qS\+  pq`Q0S؄@1pA`P@   p p  p p S0S؄@1PA@   p p SU0>c[`cK@`UJ+ Kt[u;sSK[;؅Ppp`S @Q +QjPJ{  k+rq pKt[uK;s[;U0څ ^  qS؅P0 *S + pqUS0NE`,d{adkd[@PPPV;J+ [ukv{wKtS[k{K0C P#1Ⴢ0 pPU:`QU;@Qz0UQ+j J: ;s+rq p[ukv[{wkKt{KXc[cKc0Nd{dkd[O-$M0CHPP P) Us U U U iPp ` A PS A \ @D U$Ѝ0Sڅp`a @F` \R1`#`3YR1┅$#3 CP `X R1`#3TR1`#`3Q R1p#p3 #p ` f`*l`*f``*l`*f P` L\ `@q`Aa^ A `p S0q00000 @ 1`P0 0000y0Svڅ `\R1ALp#3TR1`#3CPQR1#3 #qr` f`*n`*fP` NPE @q`SaA9`pS0000-0P $ЍP@Z ZJ\̅PP%a0P&!`A` @jn0Hd\jn(bjd``㐛2UP`58 PK48P␋0{[1  @ @ pP P p P`APp PAp PSpP``@S  @D@ Np Lp P P ʰP@\ P*l`\`\ `K  QP @ PPP@P P@ @S@1AL @@R$ЍPa@@P$A@*n T`K[0k1@SP`  Bb0C#1p0Y 0C@0 A0 L P` 0C@` C BP0Q0008 Bap0PQ0p0P000&@@PpOPp`0`P@G- M`0C@@V V( T Th T: TچpV VS P\PN p Q Ѝ0SCP`qr`PO eP0*OJl1 OeP!OjlP!OJe !!*L LP ` pPp`P`p PS`Pp`pS`p`  p`p`` p `S `Pp`pS`p` x p`p`` p `SbPp P`pP` PS00 01L` 0P @0P@00 00180S5CPPqPr`M f 0*Mjn1 PMJe!!*L LP ` P`P^P pP`pS`p`pS`pP`pS`p`pS`p `PS`0P001000001 ЍVF JPA0P`$ff0MlPOlaahf@㫨jTᩈh@kfjh I PpVP>ڇpPpVpP3ڈP pVP(ڇpP pVpPڈPpVPڇpP@pVpPڄ@P@p@SP@چ`@pSPpGQ@pQ PE @D` (VFPP M*` P`P ` @V@@V@@PV@PV @PV@VSچ`1A@R ЍVFP @Phhh@MlPOlhPnUlQ᫨jhnlj KW pV p @Jڈp Vp @=ډp V p @0ڈp Vp @#ډpV p @ڈpPVp @ څpPppP@S@  BW0CP00 ⃀0`PpQU0C`Q pG0QUpUQ `F0C@@ m B4_: @@@P^G-0CP @US U0 T Tc T T؄q`G℀U0Ug qS\ g g+ pq`Q0S؄@1pA`P@g g  pg pg  pg p S0S؄@1PA@g g  pg p SU0>c[`cK@`UJg+gg Kt[u;sSK[;؅Ppp`S @Q g+QjPggJg{ g gk+rq pKt[uK;s[;U0څ ^ g qS؅P0 *Sg g+ pqUS0NE`,d{adkd[@PPPVg;Jg+gg [ukv{wKtS[k{K0C P#1Ⴢ0 pPU:`QUg;@Qz0UQgg+jg gJg:g g;s+rq p[ukv[{wkKt{KXc[cKc0Nd{dkd[O-LM0CpPP P( U6 Uh Uv UڀpP @P@S `^@`@Dp QLЍ0SCP`qr`@O d@0*OJl1 Od@!OjlP!OJd !!*L LP p`@ሀp`@Ḁ`p@S `@p`฀pSᶐ`p`  `p`฀pSᶐ`p`  p@`pᶠ`᷐` p `Sx p`pᶠ`᷐` p `Sb@p @`᷐p@ᶀ` @S00 01L` 0@ P0`@00 00180S5CP@q@r`M f 0*Mjn1 PMJd!!*L LP ` @`@^@ p@`pSᶀ`p`pSᶀ`p@`pSᶀ`p`pSᶀ`p `@S`0@001000001LЍPn@Z ZJ\̅PPja0P&a````` @M*n0\OJnO*dapW?p>kK[=$⏨ ⏸  @`@$P h ` 君P变@Phk7 1P@PPP@ P  P@ I @@PP@ >ڎ@PP 3ڄ@ @PP@ (ڎ @PP ڄ@@PP@ ڎpPP ڇpP S ڀ``@S @DpQP@QN PL  P@\PM*l\`\ ` @PPP@PPPP`PP`P P`PP P Sڀ1A@L RLЍPg@\,@gP AbM l\A!pkWᐫq[42K53`P@ pp`ಀpP@8`Sc[`cK@`UJg+gg Kt[u;sSK[;Pp P`QPg+@Qzp@Sggjg{g Jgk+rq pKt[uK;s[;UqE0A ^ g qSE0C  A0:^g g+ pqU0NTd{`E``dkd[@PPPVg;Jg+gg [ukv{wKtS[k{K0CP000pQPU :`QUg;@Qz0UQXgg+jg gJg:g g;s+rq p[ukv[{wkKt{K0c[cK]d{dkd[O-MP0C@U U) P P P P`U@p U~@S@ \ N~@@R`Ѝ0Sڀ@@@@` VR1pp@#@3 XR1 P` p#p3 @@pCW@@V R1`#3VR1 @#3Q R1@#3  Pp @ g p0*Jd1 @g p!jd \@!Jg P!!M*DO D\ @ p@p `@L` @PHS PP@Ѝ0Sڀ@` PDU R1pp#3TR1pC`#`3 `QR1`#`3W ~ #r`r f 0* je1 \ Jd!!M*NO N\P @PS`P` PPPDP`SpP`@P@@8P@`SpP`P,P`SpP`@P@@ P@`SpP`PP`SpP`@P@@P@`SpP`PP`SpP`@P@@P @`SpP`PP `SpP`@P@@P @`SpP`PP `SpP`@P@@P @`SpP`Pp S`P000 0@00UE J,P.B0P`$ff0 lPlaaV`ZVX`+\] ^+RQ P ː @p Up|~p p Up|~p p  Up|~p p U p|~p p Up|~pt p Up|~ph p Up|~p\ p Up|~pP p Up|~pD p Up|~p8 p! U p|~p, p$" U#p|~p p'% U&p|~p p*`(U)p|~pp+`,@|~pSP@@` pTQH`T pGQ F`D Sx~pʟUEPP *` PHP\ T P U @UpO@UpI@UpC@Up=@Up7@Up1@Up+@Up% @Up @Up @Up @Up  @Up Up pS1E0A@L pRЍUqE;P @qP$hhh@ ,P,8Xp(^T\qZ;S+RQ P;S+RQ P Kː ` U| @~t@p  U  @|~t@p U  @|~t@p  U  @|~t@p  U  @|~t@p  U  @|~t@p  U  @|~t@pt  U  @|~t@pe $! U "# @|~t@pV (% U &' @|~t@pG ,) U *+ @|~t@p8 0- U ./ @|~t@p) 41 U 23 @|~t@p 8p5U 67 @|~t@p p9:p;`@|~t@pSA OB 0CP0 0p0P`UIU0Q QH0U F`Q @0Cy0~t@s@Q MB0N@0p BA@Q `@0N`P@0P@p BA@Q@@-`=@@pO-0C-\\M \' P  P Pn P p\@P\@S@P`^PE@Ap Q\Ѝ0Sڀ@` @@@p WR1@#@3 VR1` Pp#3C @`@^@@W R1p``#3WR1 @`#`3Q R1@#3  @ P` d @0*e1 P>jd? @2je0J3*d1 Pa0@! \p @[ @␻@p@ @ `@含6@p$@@p[7@0⏨(@4,@⏈` p @ 9`@$@p@`(@,@p0@p`4@P` @`\p`Pz`p\Pq` p\`Ph ` p\ P_` p\`PV`p\PM`p\`PD`p\P;`p\`P2`p\P)`!p\ `P $`"p\#P`'%p\&`P*@(`\)P+@,PSP6 `@PP @pQSQ `FpQ@DNPP\#LP"P *`2JP3*` ^ ` F @P\AP@\<@P\7P@\2@P\-P@\(@P\#P@\ @P\ P@\ @P\ P@\ @P\@\SL1 A@L R\Ѝ\L P @P $abbb `0JP1 a!P㐋TK8Q{k: ; hhx␫xp2`K3  p`p` @\ p ` P\ p` P p P @`HpSL`PT  BE0C 0 0@Q0\P\0C@\ PEpQ`0\PQ @D8p0C<`@DQ  B#@Np BA@0Q000 @0@PL0CPL  BAp0`Q0p0`0006PPP(`p`pPq@-@b@-@b@-@b@-@zb@-@tb@-@nb@-@hb@-@bb@-@\b@-@Vb@-@Pb@-@Jb@-@Db@-@>b@-@8b@-@2b@-@,b@-@&b@-@ b@-@b@-@b@-@b@-@b@-@b@-@a@-@a@-@a@-@a$0$ 0@-@000pAx 000 0@-@000p alAx $0$ 0@-@000p,AT000 0@-@000p a@T$0$ 0@-@000p@D000 0@-@000p a@D$0$ 0@-@000pD@000 0@-@000p xa@$0$ 0@-@000up?l000 0@-@000hp [a?l$0$ 0@-@000Xp\?d000 0@-@000Kp >a(?d$0$ 0@-@000;p>000 0@-@000.p !a>$0$ 0@-@000pt>000 0@-@000p a@>$0$ 0@-@000p>000 0@-@000o `=$0$ 0@-@000o=l000 0@-@000o `X=l$0$ 0@-@000o=000 0@-@000o `<$0$ 0@-@000o<$000 0@-@000o `p<$$0$ 0@-@000o0<` 000 0@-@000o s`;` $0$ 0@-@000po; 000 0@-@000co V`; $0$ 0@-@000SoH; 000 0@-@000Fo 9`; $0$ 0@-@0006o: 000 0@-@000)o `: 808 @-0@0P00 `$o\:|808 @-0@0P00 `o: 808 @-0@0P00 `o9 808 @-0@0P00 `n9808 @-0@0P00 `n<9x808 @-0@0P00 `n8808 @-0@$0P00 {`n8808 @-0@0P00 i`nd8x 808 @-0@0P00 W`n8 808 @-0@0P00 E`n7`808 @-0@0P00 3`pn7 808 @-0@0P00 !`^nD7\O-R-0(gM0 10@00T(10 x0H8  R gߍ6 SJ H!R (R;&LlDK[FTFk{DFRJJ&(K*[fFfF k"{T$+;hFf$&^!.0k2{fFD8:X& H@&B m@ˍBۍ ˝۝ `L-\ @  N@  "NNH܆ ˍۍD˝F۝$&Z* Z VD46D,K.[Df8:XFJ<>p,K.[hF(*@ @ Br&@fFֆNnf02&FDTJJFN \X@(ˍ*ۍ˝۝lL(*$˝&۝Hx&N &BJjJƦtFFk{LX 0K2[DFN^F "4K6[FF^f@k{ $ˍ&ۍL8:,.<>tJFDNߊmVDDf k"{k{hFk{†Br&*mHf@+B; +;ffB&nF k{PfNNz ( * B8:z&H @ ,+.;+; B0+2;xJʦ46H&Llfd@FDvfF0K2[zFLk{nfBN|& <˝>۝̦Br&LDXF(* K [pF@8:FXf R&k{xf ʆH4+6;vF& fDJ\f(+*;$+&;J†~BL " @BJ&Jmr&H` -@FD&B PF02VFh( *؆HFD "@,.H &BfF  "H& ZΆN~46FLR& fNxLHDfF`B&BJfF@ N;&\lTK[FTFk{4ˍ6ۍ(K*[fFfV k"{T$DFhFf$&RZJ&0k2{fFT8:+;X^!.P@ˍBۍ&RX& ˝۝ m `\-\  Pˍۍ  ^P "^NX܆D˝F۝ VT$&Z* Z46D,K.[Df8:XFZ<>p,K.[hF(*P @ Br&PfVֆ^nf02&FTTZJFN\X@(ˍ*ۍ˝۝l\(*$˝&۝Xx&^ &RZjZƦtFVLX0K2[DF^^F "4K6[k{$ˍ&ۍ\8:FF^f,.P<>tZFTk{^ߊmVTDf  k"{k{hFk{†Rr&*mHf@+B; +;ffR&nF k{Pf^Nz( *R8:z&XP ,+.;+;R0+2;xZʦ46X&\lfdPFTvfV0K2[zF\k{nfR^|&<˝>۝̦Rr&\DXF (*K [pFP8:FXf R&k{xfʆX4+6;vF&fTZ\f(+*;$+&;Z†~R\ " @BZ&Jmr&X` -PFT&R PF02VFh( *؆XFT "P,.H&RfV  "H& ZΆ^~46F\R&f^x\HTfV`R&RZfVPO N010 1S,!SC4! 0SPCt! PRPἀ,!0Ѽ`p!ЀR4!@р@0@ᴀ@`尀V0 p局00开0@က堀0Ḁᰀ尀 局0嵀P@PPPPPXQPPPQPHLPQRQ Q S0P000R P``R0p `1`0\S 0Sʀ0T1Sz0pS  Q000Rက0` Tࠡ࠱@^  0Tࠡ࠱@\࠱ ࠡ @\`@\ @@^ࠡR@@ T`` R@ @ S 0p倀X p \! X `Q   R QSp0 V h Rl00 T1  `!  Xd!  0 10 0S 0SP0 S 0S;ʰ 0R0 00  Q S0P R  P0R0000P0@0 U1SX1P !SL !@ 0H@0Q @`  R@Q  P00 ^@Sࠡ࠱0P``࠱R PPPR VU0PT``@ ^@ @@ VPP`P@@T@PU``P ^`@ @ @ ࠡ0@R @T``0\00P0 @@Q`` V 00 `QR@@ XP   S@``PX\ 00ѐ000S`1 P`0S0hPR Pp R T0@0S0S0V`S0Rl0\P  R \U@ P\R`\!`dV R QR \$! S 00Q S Sp@SP`0A$0C 0PT0G0<1 @(! b0010f$!00A`Pp000@0 CR1 ࠱ࠡS<1$`  @ !,!T1  (!000@0@0 0QY,1 Q`PAp0P@S P0@,10ᰀVᰐpp0R` P @@ VᵐPP`R00 Y UP Sp p 0X@R W pT@R Z pT@ TY0@0 0 pR 1Rpp 0Q @0S 0QpC0p`P`P0`0p0A尐`0p   @OJaAOb O` Oaf BO dXFOjbFT O aA0O*`nTFSOa&RfV&nTPXrFP^|R&RZ\FXfVRnTFT&VfTP&VRO B @00p 0GS0 ?O g2*zFfpOiF.3*0 Q<1 =jffndf"bdtFbrF$x& &`h``Fd&bh`jfffֆh`Fd&bFdb$" 2O*G@,AP^ @pP@`@UT`T VP `V`Z @V@@`@\@`@p@WPT`+T. Vp `VPZ @U@P\P@P@`@PVp@`WPPY pp `WPT` V `P U PVP`\aP|@pP@`@VT`T  VP `V`Z @V@a\(a@^@`@p@WPTpT W ` pWPZ @U@0Q\4Q@@@P @P@@p@W`TPT U p PUPZ @U@@Q\ P@ @ P@PU``@PPP^Ppp^࠱^ࠡQ^ 8X 0@Xp``S`#@\``^S1P@p#p3TS1`P#P3P ap`MjnM d67j0*MJg1 4b`5J&b`hjbf`&ljhff&b`&hf"B RMJEU@,A^ @P`Upp@VPP@T@VPUPV@U@@P@\ڱP@pT``PU@@PUPT@T@UPT@P\P@~ڱ`@PTpp`U@@`V`U@T@U`PT@\Q@aڱP@pT``PU@@PVPT@T@UPT@Q\(Q@Dڱ`@ PTpp`U@@`V`U@T@U`0QT@\4Q@'ڱp `PWW@U @T@WPT@@Q@\ڰ` P@TdTVPQPQ 0WPp@Pp`@TPPp@A@LPCPB0p@p`ppP^P@@ࠡW```VppQW QW@QUQPQQS <10C 8Q8, BP勰 <00@0 00a$    T!p00`p0000000000X0@PP 0`S@VQ100#3ZQ10#03R Q10P#3^00  0O*nOjl23*6O n7j00JPhb1 &bhFd`Fd`$" 2O*L 1, S 0 `V \ a \P^o`^ࠡ \p` \P^`[`ᴠ^ࠡ \` \P^`G`ᴠ^ࠡ \` \P^`3 `ᴠ^ࠡ \` \P^` ⺠`Z ࠱\ \`P^ ڼ0 @SPP0T@T0081  pS@0 2@E0D` 0B`A@PU^ࠡ^࠱^^ࠡ^࠱^Up@PpP`@TppP@UT``P@!`@P`PpWTPPp@P@pPp`VTpp`@#p@`p`PU@FV`p&P U@@ࠡPA@0`BPC PQQ^QZ# @^PT PQP@@p@@p`@`08;&\lTK[FTFk{4ˍ6ۍ(K*[fFfV k"{T$DFhFf$&RZJ&0k2{fFT8:+;X^!.P@ˍBۍ&RX& ˝۝ m `\-\  Pˍۍ  ^P "^NX܆D˝F۝ VT$&Z* Z46D,K.[Df8:XFZ<>p,K.[hF(*P @ Br&PfVֆ^nf02&FTTZJFN\X@(ˍ*ۍ˝۝l\(*$˝&۝Xx&^ &RZjZƦtFVLX0K2[DF^^F "4K6[k{$ˍ&ۍ\8:FF^f,.P<>tZFTk{^ߊmVTDf  k"{k{hFk{†Rr&*mHf@+B; +;ffR&nF k{Pf^Nz( *R8:z&XP ,+.;+;R0+2;xZʦ46X&\lfdPFTvfV0K2[zF\k{nfR^|&<˝>۝̦Rr&\DXF (*K [pFP8:FXf R&k{xfʆX4+6;vF&fTZ\f(+*;$+&;Z†~R\ " @BZ&Jmr&X` -PFT&R PF02VFh( *؆XFT "P,.H&RfV  "H& ZΆ^~46F\R&f^x\HTfV`R&RZfVPO N010 1S,!SC4! 0SPCt! PRP,!0`p!R4!@р@0@@`V0 p000@က堀0ᰀ 0P@PPPPPXQPPPQPHLPQRQ Q S0P000R P``R0p `1`0\S 1Sʀ0T0Sz1pS  Q000Rက0` Tࠡ࠱@^  0Tࠡ࠱@\࠱ ࠡ @\`@\ @@^ࠡR@@ T`` R@ @ S 0p倀X p \! X `Q   R QSp0 V h Rl00 T0  `!  Xd!  0 10 0S 0SP0 S 0S;ʰ 0R0 00  Q S0P R  P0R0000P0@0 U1SX1P !SL !@ 0H@0Q @`  R@Q  P00 ^@Sࠡ࠱0P``࠱R PPPR VU0PT``@ ^@ @@ VPP`P@@T@PU``P ^`@ @ @ ࠡ0@R @T``0\00P0 @@Q`` V 00 `QR@@ XP   S@``PX\ 00ѐ000S`1 P`0S0hPR Pp R T0@0S0S0V`S0Rl0\P  R \U@ P\R`\!`dV R QR \$! S 00Q, S Sp@SP`(0A$0C 0PT0G01<1 @! b000f$!00A@p000`P00 CR1 ࠱ࠡS<1$`  @ !,!T1  ! 00 @0@0 0QY,1 Q`PAp0P@S P0@,10Vpp0R` P @@ VPP`R00 Y UP Sp p 0X@R W pT@R Z pT@ TY0@0 0 pR 1Rpp 0Q @0S 0QpC0pP`P0`0p0Aࠀ尐`0`p   @ OJaO`AO dOb F BOafFTOjbXnT O aAFO*`0&VOa&RfVTn^PXrFP&R|RZ\fVFXRnTFT&VfTP&VRO B @00p 0GS0 jp?O*)67jOJ' |fpO i&n*0J^1 Jlffnhf bx &bd& dF hbjv&dlfn֦j&bFh`Fd`$" 2O*GP,AT` @P@`pT`@W`PYp p @WPTPp@ T @` U PT@\@ @`P@pV`@WPYp p @WPT@ T @ U PT@\@ @pP@`pV`@W`PYp p @WPTq@ T @` U PT@\q@ @`P@pV(`@WPYp p @WPT@ T @ U PT@\0@c @p P@`pV`@W`PYp p @WPT4q@ T @` U PT@\@q@; @`P@Vp`YP P @UPYp p @U PUP TDq @U@ P\@ @ pP@U``@QzQT@T@VT08Q0 r@^`PPRP#^`@pp\PPRp#^``PࠃࠓR#s Q`PM hMjd01 6*MJf7j4Vb`5J&b`hjfbd`&jffl`&b`&f"B RMJNP@,^ @ P`Upp࠱^PP࠱^UPUP^ࠡUࠡPP\Pp^``PU࠱ࠡPUP^࠱^ࠡUP^࠱P\P~`P^pp`U`V`Uࠡ^ࠡU`Q^࠱\QaPp^``PU࠱ࠡPVP^࠱^ࠡUP^࠱(Q\0QD` P^pp`U`V`Uࠡ^ࠡU`4Q^࠱\@Q'p `PWWࠡ^ ࠱^ࠡWP^࠱DQ\` P^,^QQPQ00 |A@HPBpC@`@`p`p`Qp@@W```ࠡPppQW PW@PQP^ࠡPUS <10C 8Q%, BP勰 <00@0 00a$    T!p00`p0000000000X0@PP 0`S@VQ100#3ZQ10#03R Q10P#3^00  0OjnO l67j0On1 0:PFh&`;hFd&b`Fdb$" 2O*L 1,\ 0 `V \ a \P^o`^ࠡ \p` \P^`[`^ࠡ \` \P^`G`^ࠡ \` \P^`3 `^ࠡ \` \P^` `Z ࠱\ \`P^ 0 @^PP0T@T0081  pS@0 2-E0D` 0B`A@PU^ࠡ^࠱V^ࠡ^࠱^PQPP~PPUV`p_0P0 PU@@P? U 0p``A@p@`CPB@Q࠱ࠡ@P@PT Q࠱P^࠱ VGQPQ V=0@0 ^PP@\ 0@0pG`Fp0`PB@A0^0S0 S 0^S00Pf ^\0 ^p ࠡp 00 08质x000 0@-@000> ;耨x$0$ 0@-@000>@d 000 0@-@000>(w; d D0D @-0@0P00 B<J(b;ȧ D0D @-0@0P00 -<jJ(M;tx D0D @-0@0P00 <UJ(8; |D0D @-0@0P00 <@J(#;̦ D0D @-0@0P00 ;+J(;x D0D @-0@0P00 ;J(:$xD0D @-0@0P00 ;J(:ХD0D @-0@$0P00 ;I0:|D0D @-0@0P00 ;I(:(D0D @-0@0P00 ;I(:Ԥ D0D @-0@0P00 p;I(:耤\D0D @-0@0P00 [;I({:,`O--@CM( 0T0@1G000@@0` 00P ,@U,0@0!"#= R/0刀0P Q0*< z0   G z: zG  G  ژ0@p0 0t&t0ll64 `8 p6 f@@*g!`A0L PlJ P 100p0, .8 :*b c @+;pLpmJpH-B`+;*m-B*M+ ;-B+ ;b0Qt  4 0  0縀 ;80`[:<6j:8<*hj6jb&fFlh "*adAb+; ! %` lbh+;&`b-jlb'LLx04 C0=x0cP P4 Fk9x0c800[tx08C=x0cPl _8 GX9x0ce"^An˝۝Qߊ-@ʀMDJzd!eh1i @ JJZZJ'J4'Z5ZuJt.A0P@0z 0` <0pBW`J0IpgV*`fS0c`0jQ1zjzgz'J4'ZZ'J0 000[zzZ'EZ:0ZgeZ:0JgdJ:0000000S`@^. R0C<80040< P4 M 0Q:@0ʸL y P!@1 p + g@@*h!` 0bMLAPdGJJ `  1000 28 : e*b @m@` J m @ M?a0 0 0* :* Fj* fj4jGz5jgz6z7z4 68 :%H.0[Lǹ .<P P Gk8 00[ !<P _ H^8ꠣ  @Z*ߪ-Qz_ʀJhh!i1i @ Jjj'j6jv0A @@<4P0z0`0FSj0c\z1Zzgjv'j40 040R8 &zgz:08 ?)CߍO-- UMQ? R0 p(0&0 0}̀00  ,@,`PQ@1H$2#Pm Q J0(1,1;(&(6 0` ` % 880SA  `@P0PQʓړ0L  L  M ";$ &+ JPş@LL5 HLPP 0.ʍ`P/0ڍMJk@AD$0jfAddMHdGJG :K<[ JKL[jh1006K8[JKL[JhMd +;0ASt H F حJX-LXJ @H   @   @ [ 0L  0 0 1Jlj`c!faj a@d" +";&`hA` `ml  j)%fgbMj*n`+;0[$+&;dG @ @0L ߪC:0ߪcP PL K 70ߪcP00[d0PߪC:0ߪcP\ _P F60ߪcU.ʝ `/0ڝQ^An  @MDzd!en1o @ G:JJ:':3'J4Jt:s.A 0$@ * !ZZLjujzujzMz6zwzzwzgzjz C SP N*!*jzzwjvz"zg'JJ':':30` 000V0 0zzJ'JgJ:gJC:C0 0000 S@0S `@@pPP0p Q  ;z  zp J8`48 ,0(8Nؚiie  i`@$0*k!`b-Hb'bF*G dMh B D J L*h101> @J L h ` 0ASMD MBt @XmN   @ @ 0(  n 00 1 0$1F HJ L(LMn0[ dG( 9P P( I5800[89P} _8 K5x Q̠L z_jj!k1k @ GZZ'Z5Zu% a :0$!`z JjgzvzzgzjzCSR N Jjzzwjvz$zg'ZZu0@T`0%zz`0`˝۝UߍI67O-EM4M0@4 ( 1S0P00 D008@00@#Pp,000T0ZD0SQ4 NH?LA0!$ ` P `  0dp<0p00h0@T l8(H \5L X540s%0S8+8V0 0pYU [Ġ 0 R#21pW0S`0 0Y0 Y!pY [Ġ 0 [#21pU R0 S 0S00XC\`$0dp8``00 0W  R00W  W00W  Wi00Wg  Wf 00Wd$  Wc(00W,  W000W~4  W}800W0  " 0W 0W \@0 Sv U7 U $0S[00  0C"N!0QC2N0!1 B! QB"N 1!0C10Q\NC200!1 B! PH010PB"!C201P!N !1 010P,C2001 !0Sc 00, S* 00Z0 00Z2X\`( <0 ( D 0<0S@00@0 <0 h (00l 80@0000P00c0T00c 0[Ġ 0 [#21pU[Ġ 0 R#21pW 0"   00( S: 0 0CSʚ0  0 V  0\C"N!0PC2N0!1 B! PN1B" 0C1Q!1H010QN"!C20Q101N2, 01 !90 0CSi 0  0 40S%0C 0KB8 \@"A2!H1@! !80 0 T0 0P00(080@000Eݍ4Ѝ80 0)N0t106```f ` 0D00  333p4VhR4VO--0M1MS00(! B0/e00tP >5  00 0` !P0@0P2S R0 2D@J0 P20 \ 0  p S !ڠ" n``P@!4At@A!0K  !|, p  $  p`P0CSPP 0 0  "p TP}2$\@x20p@`0Cv` \=0R 0 0#20᳐ ೐ 0 ))) \ 20᳐ ೐(1SY0 q!00#20ᳰ⳰ 0 +++ \ 20ᳰ⳰0 Sp0 W 000S6 C t0! "A0TA" 0,1\00000!@tl2!1 410S/@0#"001 ,!0$1 000T0S02|0,l0TP \p@kጐ0#20L0 ,ˆ, 20L0#20 0 ,ˆ,U 20 l 0 B Cp0$฀ @RQO*baO c Q RQḑἑ O Ca 0PC CCCX1S`0 S&  0O k m*c\ RO cO*Ko*`Po @0 SOT0Cl'l7` 0X 0 00 0l0p Y 0 0O k 2m*c Ro cO*KqQo*aPPo A0Q0P Q PpQpP0Q0P_ Q P=pQpP0Q0PppP  P00Pp pP00PppP|00P[ppP9M01140 5 0 1P1 0 d0 0 X0000 0|0 @0` RY00Ch03T0到pAht\P`␀xp 0Bo lSp00C0X2 Ym*c wPojcm*ao LoJnBTo aoJNoJl Ro*Lo*nPo Nxp到吀l0 O k h0tp0"0m*bPo*b O Ko bPo B pP pP  P0 P' Pr Pi P P P| PQ PH P( P P P1 PM0113"2 0 000 00T0Y000l T0 l 00S0 00 0"> 00">0000000000 0 !00R0  0 S H00S 0ލЍD00! tP BTh  \| @@r/ @T   xp\pr 0o ` 2R m*c Rr o co*@o*lPo LxpY|0Q 򐛠 PT0`K[퓥#P*``\ b r2 IV c)VK[*@dPPKHK|OMJ|JAEDC|>>S| 0lp 少S ᾀSpS `SPS @SSSᴰᶠ 0 $0 1Q!Q1Qp!Q`1QP!Q@1Q ( !Q0Qyxwp Q0Q  Qv`QuP t@|000p Q{ z0Q !$ 0!s0Q !$0 " >-⸐CᶀCpC`CP@BBB Z \ BBC C$C>C崰CᲠCCV X B0 S(2T 0 Bd <" 00`0 X00 x0 X dl0R00p 2k{*cbh+;: bPk{ BsPP*0R0P! R P Po 00S0 Rd R P Qm 00S0 Rb R Q 00S0P0Q 000 R  P Q 000 R  P Q 000 R  P Q 000 R  P QM01110( t4 0 /. |0 t"0P x PKX RT ᾰ ` @ Ph0t0p0$00 014018010101001,01(010`0T@dPQ\0YhA P |XR\LP< pEP`$pPE@``P `F$PP@D@PE@H D@p@D  NLp ఑z沁I HQ4PE N @8N0P@a8 ἱ1A0C(Kq  F,`0 sd$0Dἄ2 0y040380u00|00q000r0,0{0(010}|0  >P pC`C$ @C C.⾀B 庠BB, R T E C( C C=4 C8 C C C0 N P x l0p0 2*b RRk{Jc(Rt0P*B BB 0P 0Q 0Q 0Q 0Q 0QR 0QL  Q00Q!0QE! Q?10Q9!0Q! Q10Q!0Q !0QM0110)9M 0 --x X0 x T 0X0S(00T`r X0PV@|0P N N` 0\+;s0 eS 0Žs0K[(TJlP+; E|000 X0SU| Q 0d0X K[+T `*e"0`@\0 b r" IV b)VK[*E70 2 000 CK PF(00! t0d0P0X0000 00 (0  Pp 0X00d 0000 CP00 C0 CP00 C000! ,00! =0:;d0p<0X08910P670?045 023>0I*+p-0()d0P,0X0&'!0$%0/0"# 0. +0L0J800! 400! Z[p]0XYd0P\0X0VWQ0TU0_0RS 0^PM0JKd0PL0X0HIA0FG0O0DE 0BCN@0P  CWP00 CQ00@00! {<00! v}0z{d0P|0X0xyq0vw00tu 0rs~pm0jkd0pl0X0hia0Pfg0o0de 0bcn` 0d0p0X00P00 0o 0d0P0X0000 0Rp0d0P0X0000 04L00! H00! 0K 0I0G0  CP0 0 C0 CP0 0 CP00 C0 C~P0 0 Cx0  Csp0d0P0X0000 00d0P0X0000 0 p0d0P0X0000 0 0d0P0X0000 0 00! +$00! &d00! !X00!  p0d0P0X0000 0PP00! 0l0j0h 0f 0dM011-Ph P 000  `**0((**0S *G+**~*z*9+(2-1O--@|pMM606l0(p`(00Qd0-X [hPd0S X d0P 09 9p0p'(Q @ݍЍz'(Qt60S0t&?00x60Sp6x&0?00<0Qp($-p6 0000`J*d0@KύSBp>0pWppptp=|ƝpP0PP 1 㬐BO10P10 1'|6U00 1010M(`+0A0!)'PP p6p` =0 (:\$ 02 h*Pl  P ) Q  PUP Tڇ T 10T`TT@ T`T  !R `0Q` QڅPR`)RS``TppW(h(l( `p 0&dp t0&t6-`x0px01%p6| 00((.0|4$0 <,8  (xtp` p@lh*1@A0DC*1PE1*p7)` P 0g,w&P)!0Px*P @(p6p`H(@'G& = S( 1010)p6p` WWp0SVʘ0S0SWV1 [[I Q`@][hRfP`@h0^*  B *h00J h0Q* =1 5Rt&0x6 0x |0001.|50p0h:*00C0'd''''' d 0夠%d(0 %0S̄l0S `0t C'  LdXPPH` Dh @|x0< 8@`pTP40,(p$b*3 (`0$1(1 *PPIO 0 @C+ ) 0q+P (U@ 0P` 0 & %P00 8%` (h0 p#+DQ`UhQE\2&d1px)0`SpP!1 qp0$q E+0 E* E0*0 C0*p P0  $ '0S .j :0zzz*P'P0E/&@&+$GO~'tW[V@@Q`@!P 耟00p0`@  !P`@M'"&$(C'*$XaP$ \0~.(0X.\.d ( D\%@%&p@-@-P`@50 $0(0,000`Pa0 0 `{::/+   {+0C0S0A 0:+q B0R E 0Up`ATO- "M!hRpP@`@[ D?/oð?o"2{TQL@DOoB0J?o20J?o2UZ  R#Z00SZ@@T #@ 57000#   0@@[ς\[[A^Q[*003/& #@47000#   0@@[ς\[[A^Q[ Ѝ #@4x6000#\   0@@[ς\[[A^Q[003/0Z 0 0)Z '%505 4 0'& &5 U#@p4|5000K#`   0@@[ς\[[A^Q[003/ *#@E44000 #   0@@[ς\[[A^Q[f003/b "@444000"   0@@[ς\[[A^Q[;003/7 "@33000"t   0@@[ς\[[A^Q[003/ "@32000"   0@@[ς\[[A^Q[003/003/ z"@382000p"   0@@[ς\[[A^Q[003/@0  @i&!S>0|1 4 0 %$E 8"@S3D1000."(   0@@[ς\[[A^Q[t003/p ($% $~% $z%S` x 0 "` ( l $@  S@$O-- !!8kRp`PM@@H[ D?/oð?o"2TQV@DOoB0J?o2 0J?o2{Z00SC0J?o2Jo᪢ G . (!@2(*0 0 0 $00!   0@@[ς\[[A^Q['003/#0h!H @a!X   0@@[ς\[[A^Q[B Ѝ(@!@k2(0 0 0 $000!   0@@[ς\[[A^Q[003/0Z 0 0&Z %':507 D 0# #'( @!2'0 0 0 $00    0@@[ς\[[A^Q[003/( @1'0 0 0 $00    0@@[ς\[[A^Q[S003/O( @1D&0 0 0 $00    0@@[ς\[[A^Q["003/(c @1%0 0 0 $00S T   0@@[ς\[[A^Q[003/(2 @]1$0 0 0 $00"    0@@[ς\[[A^Q[003/003/(@(1$0 0 0 $00   0@@[ς\[[A^Q[003/(@0D#0 0 0 $00   0@@[ς\[[A^Q[Z003/V(@0"0 0 0 $00T   0@@[ς\[[A^Q[)003/%@0  @#!Z501 D 0'""E(S@~0|!0 0 0 $00CH   0@@[ς\[[A^Q[003/(=!" !" !"0.!"Ix L4 ` \ xP  $ ` D  |G-`Q-00c@VS@M P0HpS00 0}$Ÿ廦㨒  02 0!x!P+;0*C 0 CX0 $04(,` !p0F;s+:s V( 0FU;C﫺< X 00 z Q 8!0  a SЍ!00z Pz 8 0 z `{zRЍ y 0P X #%sX0 ZP p ) #V 8ZP p #V  8! ! B333333??K| @ O-@-0@P`ADMx@S@* RpT00 0#PT "D%60<5  0  0@0``N`NV` I $$$0S 0[/BPR[  0PR$0(  J B0Q,0,0( P+; *D J" 0  0 ,( S4~ 80P P00  +;(0 ,04 0Qo  H #$0S 0[/BPR[  0P`R$0(  F B0Q,0@,0( P+; *E F" 0  0 ,@( S4y 80P P00  +;(0 ,04 DЍ0SA> VAa+ `{* 0S/- R+p( ?00,(00QH9y ɛZT $0S 0[/ Q[$0S 0[/BPR[:# P0`R$0 FB(  B0Q0Q00S)"" j F"00,(0DЍ  VAa+ `{:00 Rʑ""=, 0,0  007 t3 B0C0΍`00 0DR @  @1S 0[/BPR[ d!0P1R!  B0dQʌ0P L1S 0[/BPR[s ,!0PL1RP!  B0,QT(@P ~0SݍЍ0S`0S $nݍЍ5 P) 00P$_ݍЍ 0D0  ,00 1@4P00唠8p PY. !>0`PP\ \ ^ ^00^ 00 !!c Bh2xn@#P,0S So0P!~ύp $0 b S  b,2 (0r48< 0[/ P[0S#, 42  >80  B0<  },2S 0[/BPR[ "0P,2R  0" B0 Q04(0P 1S00cS 1S 0[/BPR[ !0P1R8  ! B0Q80(0P p[0 1S 0[/BPR[9 d!0P1R!  B0dQʌ0P KL1S 0[/BPR[ ,1 PL!SP1 0C , QT(@P *   %P\000  !> pC00B4PV $0 b S F b/d2 `h"'.pl"t 0[/ P[0SK, l2  >@00 d2S 0[/BPR[6 D"0Pd2Rh"  B0DQl'>P 1S00cSp0 CD0fD0, R$0C ,0Sh0l S0t C1p00< H0@ " 4 H ͍0640Ly0SH0 @<0 T0 6B  0P@c0S KL 0H0 0 P4 ,0S ,0S 0=Pq 4D0  SL 0  LNPZUT0 0C(0004 0  0 0 0 (  0  0 0 0 x0S$0C_p 0D 0(40(1S 0[/BPR[i !0P1R@  ! B0Q<P 4 30pC0 2^<0D2QD0dK+Sac;T`c |1( X 00Z)810010H0$1( y 00@@J0@o<mk i0S $K44Y(PM h ؞ tLO-P-`X6@Tv0MfύpD T00cSs ?(0022rƟ  ^  0'%5  ℀0}fTP 1SGߍP  P P> $0*b S b#.L2P"/H+;T" X\ 0[/ P[0SC, T2  P?("0`0R   hP $0 b S  b/").2 " 0[/ P[0S, 2  0DP /0 0L!+;*.2 222"p"82R L2S 0[/ Q[2S 0[/BPR[q 2PS0 2" B0Q(2Q2,2Sڊ_&H"L2 " 2"0) S> SA S& 8"~42W  0  2S 0[/BPR[ "0P2R"  B0QL1P 2S 0[/BPR[ d"0P2R"  B0dQʌ)>P L2S 0[/BPR[ ,"0PL2RP"  B0,QT?P PڅDߍ Bh!|dL, ~ r n   `p_p @aq&t @brb rbrQB2(21 CSR,Q0APSu!!Q0"*cS `0P SH d$ b  Q!  0Q 0Q0 0œ 0L 0CJ  0C0S&T D2S 0[/BPR[( "0P2R"  B0QL1P 2S 0[/BPR[ d"0P2R"  B0dQʌ)>P L2S 0[/BPR[ ,"0PL2RP"  B0,QT?P 1S D &'.3 0&11c`0p`\  0> # 0 40 *Gf(22H024 L&0d2%0,2 0_~&1 02@11=4T"022  )d бZn-03:j[h0D0e j[ >4 0  n?0 0x㰡Z 5#qW 022v0P 0?0 o C ᄠc0 0 0 sP& DkiȂ!<T(d2`#Qhp8 Q `P  <@PHdQ@0t10@Ql10A@10e110C\1 1X1 0@h D@P|Qp1PDd1T!_@xh1HpQ10QT1``T1P@d!Sh1 aA W;H1 S @1W2@BDFKH[lOb/ K[D@@$"K$[B+D;l+;FoBBo&+;k{k{.k0{ofobb//b+;2+4;&+(;/:K<[b*/jjD+;OOd JKL[K [/`O$+ ; +;HK[O,@ n/(& (n@68ho,"K$[* ,NLL.˝۝k{o(h >K@[ȏNn(24:ˍ<ۍJ˝L۝jjLFHD H$OOb.+0;`"@/"oFh/fƏHJo.N .n BDnO$Hb. 0B" $l@"$B+ ;bo&/. 0d/NOd*.+0;j@D,h/ ʯ(6 8LD& (*K,[24@˝۝D O` k{&k {fol*,B:+<;hb>k@{oHbN/"D/j JDK[&(OƏDdo& K[dOJ:k<{K[.K0[d,k{OJnFo jDOf`o`*@.K0[ObbO"+$;bb2+4;hbH6+8;"b//llo 24,BD,ff oDnjOhȯJ>@68ȯBb/hD@$`O,@ ˝۝X(F Lo& ,oF*,"k${o(hBB+D;k{odJˍۍ2˝4۝DONF>@Ho&/*OdB+D;+ ;B/ l:<2+4;//l&(L`.0/B LhL/@*`JoFJ@/B>@J lO$ l" $FO$68n.BDon24jON/,`LOdoF`//b/offoBjHpH W<1lS GP1 SGp1!WZ<100WP1TpŪzJ퀠 J**0  :j:퀐 j z:EZ ʑ:Z:^E^:^:^zj^: ^:azސ::^a^z:^:^G^:^:^ȺaZ^:^:H:Z:^zE^:^:^G^:^z:ꊴEz::Ějސ: :D:J:^D^隴:^:^JI^: ^:KJ: ⺴:^K*^J: ^:^ĺd*^:^:^KJ^: ^:bސ:J:^JD*^:^:^d^:^J:*DJ::ẴI*: :^⊴K^: ^:bސ::^za*^:^:dzސ:J:*aJސ::JG*::^DZ^:^:iސ: Z:^ꚴE^:^:^I^: ^Ś:E::Jjސ: :JaJސ::^ǚdZ^:^:*G::^銴b^:^:^:H^:^:B::*:^B ^::^:^jc ^:^:hjސ:Ê:^h:^j:^:^ŠF:^:^:^ h*^:^:C :*:^jB:^:^:^F:^:^j::Bj::Zc:ސ::JZ: :^J ^Z: ^:^je ^:^:zAj::Lz: ʴ:^jL^: ^:gjސ::^ʴAz^:^:^ L^: ^:g ސ:窴:^Jz^: ^:^AZ^j:^:^fZ^:^:zJ: : fzސ::ʴe ސ::^:L^: ^:g:ސ::^jhz^:^:Aj ::^@j^:^:zhސ:::@z::ªF:::^ J*^: ^:e ސ:*:^jBZ^:^:^f:^:^j:ZBj::誴cZސ::hސ::^jA*^:^:z@j::^Zg:^:^::FZ::^ʴC ^:^810L^:s㺴ZK:^Z5 E ^ Jc ^ J4ZuJ暴eJ^jvJDj^ `j^qƊj6zaj^z7jJz7:Jtk:^J*CJ^zwzzwz'z7jfz^ze`1xAt!S81081|1; &劲& ( &Y &7&_Qy `!R R .0  E CX!1S:!R: > 02`1Sp d1  0 0> 0 / P> 0 pyPdQP x l2S 0[/BPR[ L"0Pl2Rp"  B0LQt?P V 0S2ݍ Ѝ  V HBp|p2/A@0L04X"2R0  +  iV`, VP `6P `0` Ѓԓ@؃ܓ䓍胍쓍@֏⒟ÍP`HÍLÍXÍ\ÍÍÍhÍlÍ3΍+;H P4dPÍT圓   D ucQ  0   DP :  5 Y  f0ej p 绸@ z@` P相 )Z I @ Jˋ ( (X30 !g#0 P` UpW1 ]8 0@QD H0eL00` P30AS!!Q0"*cR `0P SH d$ b+  Q 0Q  0Q00œ`,* Q@@ 0 D L3S 0[/BPR[x ,3 PL#SP3 0C p,QTP0P , B | ̿x< ݍ Ѝ?0Sp2A 0K@ H00?C)X"2R  k iV` )IjV?濍40`p 0p ] 0Գ1@3 00 ,3S 0[/BPR[ #0P3R#  B0Q?P $ &+ p J,0P 4  00``6^9Í+;@ЃԓÍ؃ܓ@䓍(Í ÍÍÍÍÍÍ0Í4Íύ胍쓍LPP,SÍa  ,0S3@3 +wQ+  0: % 6 p: 2 & :$J pzP') !D"  ڐz   Zjf0˸ T`@ 吪@`P相 )Z I @ fJ̋ ( (~30 !#1c#0 P` UZ1 ]8 L0P0 T`A Da $HqG!Q30@S) !Q0"*cR `0P PH d$ b+  P0P >Bd 0P00œL,*  Dk i 0g 3S 0[/BPR[ d#0P3R#  B0dQʌP0P 0L2=Q PbF  H\ [1`0XV kˁ˾ i+I V0 ``{:Sz 0XP@0P? d000" Q81<1@1D1T1P1J?J LT0>H1>L1 , 0@6>濍 X L00 1@#T 3 0d# "@`#   sh010P P @ DPi0P 됚x0|PPppp4 @ l@t` Dz4`0@۸ -J M @ cJ΋ ( (F P1!Pg#0 @ `TpW t`Xpp0l@@ p0   0 l0000$ |1 000.P  000S00 818  `0t僑 0`S40 ,0 PxH{ Hx |? DB> >|0 ˍH@ x 4`dS 대0t 00 01 T0PP! BxF hPP DㄐRDRDP "" ύ"4"P SSPRR4P  -"D 2 2蒍33 nh1l1p1tV XR2^$Í`P @ ##/Sb_t11111111111111133>x1=|1>#0Pb dÍn pS1>1=1/>@0>1 /> @0n0 2@㜓3 0 0T 00d L? 0H 0P ] 0   W L S H O  K $ 20  0 YP n0lVj3S 0[/BPR[ "0P3R#  B0Q`0P o2S 0[/BPR[ 2PS 2\ 0C P BphtS S 40P >lpDPT d XU 0S <) )Ijp0 ]00?40  T 0 0E/0 ]00?40f < 9 H!H1 0,h 02 2" Q p2" 0m40 ]2@6 0P ,H L  0000`2040l2000Td}X{ P$2` 00l  00  0@s tp h&%$P5TQdOXM40S <l ]  ]?40?40 ]0DHq, ]?40 ] ]LdlpD ]W@@d  ]?40W D0  8 0V@-t+ ] ]O-0\1  5%S00 S  R Q00P  dh\`4050   0`Q0!l R p 2p\d0 `6/lP 0[/Bσ\R[ T1S 0[/BPR[ 4!0PT1RX!  B04Q\(@P ?1S 0[/BPR[k 0P1R !  B0Q$J?P X0SVލ ЍP  -R\0`0\ d zNO0D 0YVލ Ѝ\ ` 5SS0$00(05 X,0,0U $0?PW(0?pUP 0S P   8UW$0S(0SH0 C  0flT @pP \ L tD[V>%0 ό1x$30Z=30@ PC 0 pC0AdPP  0NOD S,0 0 DtP0 $00D 0   0 0 (0 $  (0 00 00 0[LH0S @@0t 00@$KT X0S 5M/i[Zύc 5  0>  LZ P 003/r00D041$q D09Cz 00#-X0S $}{lP wꌶ HG wC-,M @H `PpPi0f 0 0  $0S,Ѝk,Ѝ$0S d O-@-` 0@M@Pxp@@ Ap@ @0i0` + ;S0" $ ,+.; 0 2`@@|  0[/ Q[| Rʤ 尐0  h0 0PS 0@Y00040yY L$4T 0N/{X ZZ Z I 0 $P@H 4 @0  0R# 300040E0 ^   0 d?# 0N/30P90S 0[/BPR[ 0P0R 0 2 B0QP 0S 0[/BPR[ | 0P0R " $ B0|Qʤ0P zd0S 0[/BPR[p D 0Pd0Rh   B0DQlp0P XЍ  0$P1@4 00 2@00 `감00 X0@ Ѱ 0 00 00 $P@4 @0(,8<7I0  $P@H 4@0(,8 00V0  0 Q a0 PS``j+Z`+BB@0l RP!UQ * B !1!0 C: <Ѝ0`00040aTŸTr␠ p 002 0.r[0@aoi: 00  0 C R2l,`!(l p$ ll ` `@ZP- 0UT1 0#03R00S(  0 b*c` CQ0 S 0 Z000 $ 0 Z000(0 0000 C P\ ,PE0  ^0P  0 @BI@`l ilO-P-@DM 00@tp`CZ QO  0BQ1BQVF] K0JJ P10J0僲1 00  0cd 1 {QG"P`E*`pN f`L(bje Pb ```fHmFGjN jf(b*A  Q*l ` @ Z|Qa \QL `{zl ZP`pL `{z\ \P`pL `{zL  ZP`pL `{z< ZP`pL `{z, ZP`pL `{zZ  P `A `{z   0 0B* `{z0I0y 00FQ P`E*`pN f`L(bje Pb ```fGjN jf(b*A  Q*l ` @ Z04@`$ApP`,`` UV1(`#3 UV1$`#3PU1 #3V H ,pJ e!*g\`(`&jl`*@ E P`*e f`jl`&`*@ EP QaZQ @zz}Z P ` @zz o 0 0B*zz0cDЍQZa AzzRZPpAzzDZPpAzz6 4PZpAzz(ZPpAzzZPpAzz ZPAzz` 0 0B*zz08p080<0Ё  01 0_/0 qMG: 00  0BQpJ'qp2qZ  *b a` BR ZQZPQPZ  P Z        P B^0P  0@J@pp/b^bO-@- \M@ D0; @ 0L00AQt@00S @ BSJ1BAYC 0I800 <@0C(00< 0c 1 <$0a } (0SN  Lp @:` *$P ,H5*jJ!BJk [!bK[bHP P JC 0 [@ *jȂ!B,0Jk Ab(0`d N pV ` Ȃ b`, @ b`*  ) b`,)L b [`* pP P J 0 [ P _ K P _ K(0S$0 (P0B@ b@0JnAS*l(bJ` `BRBGDJn(b*L*a ` B R ! Rr@R@@@^$ B ! Rr@R@@@^$ B y ! Rr@R@@@^$ B d ! Rr@R@@@^$ B O ! Rr@R@@@^$ B : ! Rr@R@@@^$ B % ! RrR0\$ B  ! RrR$1 B 80sD0 800C80@00H,0S 0! A@J ``{*Rr R 0 S$0 @D@ 0! A@J ``{*Rr R 0 S$0!@D@ 0! A@J ``{*Rr R 0 S$0!@D@ 0! A@J ``{*Rr R 0 S$0!@D@ 0! A@J ``{*Rr R 0 S$0!@D@g 0! A@J ``{*Rr R 0 S$0!@D@L 0!  ``{*Rr R 0 S$ !A1  ! ``{*Rr R $ 1A\ЍPP0P0T0ŸbOq ` 01 0b/p SQSM:@ 00  2@ 0BQ0PC%QP2QP@  *b a` BR PaqP`a`pPp pp ` Pp    @    @ `BVG0`0P@  0@`C0Q?  W0SVO-@- \M@ D0; @ 0L00A Q@00S @ BSb1BAX[ 0H800 <@0C,00< 0c 1$<(0a | ,0SN   p+ @ L; P(` H4*iJ!BJj [!bK[bHP P IN0 [? *iȂ!B,0JjAbX0 d N p `` M0 b`, @ b`*  + b`,+L b [`* pP P I0 [P _ J P _ J,0S8( ` 0 CP@ c@A JeR*l(bJ` `BRMJNJd(b*L*a ` C 00S$0 @10Ss6:Sp(P P 0CU0$0 @10Ss6:S|(PP0CU0$0 @10Ss6:S|(PP0CU0n$0 @10Ss6:S|(PP0CU0W$0 @10Ss6:S|(PP0CU0@$0 @10Ss6:S|(PP0CU0)$0 10Ss6:Sq(@ @0CT0$0 10Ss6:Sq(!0C080D s 00 0 800C80@00H0S$0! 1 0: ``{*R:R (@r @0CT0$0 1 0: ``{Q:Q(@q!@0CT0$0! 1 0: ``{*R:R (@r @0CT0$0 1 0: ``{Q:Q(@q!@0CT0}$0! 1 0: ``{*R:R (@r @0CT0a$0 1 0: ``{Q:Q(@q!@0CQ0E$0! 1 0: ``{*R:R (@r @0CT0)$0  1 ``{:Ss06:S00s0(!0L\ЍPP0P0T0Ÿbr ` 01 0e/p {SQSM:@ 00  %@` 0BQl0PC%QP2Q^  *b a` BR ^Aq^@A@p^p pp @ ^p       @ BP/ 0P@  0@`C0Qs2@  JFJG-PQ0@  B`CUP 00p10CS":U 0X㈀ ` V F   yP児Z MO-p-$P@ -M(00@11|0 \  0W@=0ఀ开က -  0 ` F 0 ` F P $0*b S b 1!.8+:; !< > 0[/ P[0S\, 1  P $0 b SF H b.8@!R/<1J LD!HL 0[/ P[0S-, D1  W P 00030+,;` 0  + I20T `00C8 <0  0, (0X0l0<0S80` 0C0 B0 0 0R (008*C0*S,P`(q "  PD@@ `0PP 0c`pN cNDJf0*`L1 jg4J5jp Jn6ʈ74jg5JpB\Bf"V`L>h?E lXbT: ;*<&8`B9=bV"RK[^BPPb RP\^R\P^jBTO OD @OH0O EZ P b*g0J1pA2 f3*`@PZX"01*zxRbڢzx"vPVZ v`\@PVZ OjGOJA O O* 0< 00R[h`0S8l \0 T !Z0L, $0P  D1!@0L0|0(0(00( `, \0h H0 0x00 Bpt < H@R( 040@0Tp0X\0|0hP `  @pL@r L,0@ND0 $0AU0t p Pt0 $0 x d00 0Pp0q E@00H I s0PtC@$08 Sl @HDuP0H@d pA(P@ wp0P@@D0CP00P,0@p04 S00P 0L 00,00,0(0\ H0( 40p`04 Sr<1S 0[/BPR[ !0P<1R@!J L B0QDR?P 1S 0[/BPR[h 0P1R!< > B0Q >P 0S 0[/BPR[C 0P0R . 0 B0Q0P 0SUߍ(00040 40hP,0!4L!0@!#(0,0TSXP0(0h0@ $0C, D0<0D`S( @0@0\0|0Z  @Lr PN 4LAH0 p`T00d0 0 0`p0q FP00H I s0TuC@$08 Rl PHHv`0DPd pA(`@ wp0`PPE0C`40`00P\ ,0( 0` ,0R40P 0L 4000000t0Pd0`ph0@Ppd0 Q 4 6 'x''L'&%$%$$`0S0C,0<00,00R(0I0X00l0<0S=0h0Uߍ7011>똀0 \  0V 0 00 0 G0I0 "00c01^00Y0X0l0n 00S 0A 12/ /!/ 0A2B" /0A0 R12 020cB/0A0 0R12 020cB/-S20"c @   ( ,  0 4L$ /P0 C C/P   B/P/ 0B@/a0 A/0S//G-PA `QR @ IAB p Gq !"0@1000@-AQ @ Ž!!10G-@P `  p    0    Gp@-M@P`   ZzjZZjzJ : p;s* `+rq 0C0S@Ѝpp@- @P EQR `  0"Pp0-"O- ,0S = { x>8 Dt(d 0p@-A"P   0 QA`FFb @@T P @T0 0p 0 O- B4MR"$  t l&  00$ 00Sp `P6000100 @ P 3  "   p W ((Gs,  0D50  p  p W ((,ğ   040  p  ] p XW ((,0ğ0t p  0 40I    2 p -W ((,hßs p  0l30J  w`p `V>+  P U! ("(p,p7RP pP\  0N3" 0 20D-  P U! ("(, 0RP pP\  0O3! 0 10      P (T(,|T p!5>0h1  01  1  1  Po (W(,W  Q300  0X4Ѝrolifc`]     $ D d       h   L  O-p: @:J M D`APB!S S000 BH p0 RH  B BP S1!#3> \  aQ LR000V F A B  ! 0㐈(C 0  SV L  D૚ B⪚B0"! Yw)QP0  e% J` 0 jc*a C00SjN @0JN A0*L 0YP0 T    T A  @   0㓉(WP PP TW 000 ЍUU5U5AR4R6 00 00+00 QX y0[ 6P \9  bR L Q!0 00 0 00 Q  pZ0  0tP $Ѝ JJZp^$Ѝ [0  0  RzP O-@-`40,M( Uf 0  pP p P P P0f 0  P  0 P ~P 0 0X  0Iɒ Yt͋`͛D 0"P zzZZJjj*zzzwqZ:jh evq{7zb lg{6k:[ue+a `;s+ [ef[  , )Z  c`Y+  [ EP Mp ;0R 0 0c PX  7`Y0@S,Ѝ ,ЍP LX<A-M0P`0< 0 S p@1c ?0@  BT: 0SЍsЍ 0S l O-@-`20,MP P zR*`:* ɚ j:0zjz'zgzfS0 0 S00$0 0jxz9 j zw7xg9 Ql 0  A 00\Y  pp00 00 0   ` p 0 R 0 M 0 H    0$`S,Ѝ,Ѝ   0S  @-M a0 00 0@( 00, 0 00 004 $0 M%Ѝ P VP R0 R0 0CS/A-M` pP0P0CU$*B P@0S\2 0c Q` 000000 0 0Ѝ ᢟ 0S/@-@  00 000 C-SPM 00PE00R 00Q0Ѝ`pᦒ U @00u2 aR1R   0C 0U)` 03!0 1<@ 1412@! S  0QT Ѝ O-pP: :J` MJA@S S  0V  :  F  B @000!UX10#3"Qs 0 \,Ja 00*a\  k0 JK*K A 0^ 0     㛀+ V1  J  B@0!PO @0 ᑴ$Jc *n 0 00 lRJA*A N 0P@0         0㓰+U   Ѝ: :@PmP p  d 0   V 00 O-S -H00ȂLM0 0$0(0,0LЍ@pRQX0  x"0`R!Q B  $  (,X0O@ bPU!@  1PQP ` 161P 0P!+ QU Q +  0 48< @D @XS FLЍ0 0gO-KMM` #1ĝ$  !T T pL0D @L0U01H0f !6T T0Q 4 #1P0) 0A0S T BW00.wp=e00Z2 10>00cC0c0H0q @ 0g0 000[ @000U  0 0:11g+ [  Z0  U`0 0P;V H@H@`$RLpTnP G Ht 4!q b0N H @lpB !@ b, n8 g K   dDhx|X l Zd0H  H h @, `| [,Hx 0 0<080 (pp\$@@` 0Z,P$0 0* 000g  `D D0(0XK0804P000q00(0$`  0pQ  !   *0g;qS0P+ qp  @X$ ZL  C  *T;Cg+ q P0C00C10 0Z< `S0p0@0nH04 0` H0t0@\ ` 0X  X Q80S KލЍT4S 0Z q CpgL0G `  100c0C 0H0pg 00 0 F P [0@! ! 0[\ 0`$00R0KލЍU 4S Z 1qc B0gL 0NT ! b A`n$ LH   l   0B00 C$0@0[P00K00. 0g; +  0[r 0@^ 0 $00R 0 0 0000KލЍ00p0(0X40P8000000(00$"0ؤ  !  *0+SP  g 0ؤ `0 011 R0` O-KMM`#1ĝ$ "!T T pL0D L0U01H0S T T0Q 4 #1P00A0@ T| BW00.wp' 00Y qူ0gH@ 0Z   U z @JAAgj Zzzz Y  U` PzzVH @ H @`$RP 剱LpT B G H !8 !qa b H< l g A p JAD  ad  htx|0X l Yd0H  H h @0 `| Z0Hx$0 0@0<0 (pp\,@@`$0Y0,0 4*$0*0gz0zzg> mz(0 PXz P0<z80('z70P00(0z0,X0pQ  !  z*fj 0 0SqjP&z'z7zpDX&YL C    *TjCzfjz'zwzP0C40C10 $0Y@ `S0p0@0qH08 0` H0t0@\ `$0X  X Q;0S DKލЍT4S0Y q CpgL0G ` 100c0C0H0pg000 F P Z0@! ! 0Z\ 0`$00R0KލЍU 4S0Y q C0gL T !$ bA`l( CH     B0c 00 C(0@z_Z0P00z 0j_ 0zgjz'j  0Zzvz 0@^ 0  $00R0$ 0 0000KލЍ00p0'( 0X80P<000000(00,"0ؔ !  * 0 jSP Gzz0ؔ`0  R0`O-KMM` #1ĝ$ "!T t L0DQ dL0W01H0E  ZT T0qz 4 #1P0M 0A02 Tn BX00.x㌀00[ 1တHP b0 0@@ZW    Z [ W`pVP H@H@`$RP 勑LPT B E H !, !Qat Hl ApA  bda < eh8 Jx  |0X Dl Yd0H  H h @0 `| [xH (p 0 0@0 p<00P $@\` 0Y0$0 4 00n07 (0 0,@X00<000080000000(0$V80ؔ ؤ0A !   .0 S @ؤ ؔDX Y@L  C   T.CP@0C40C1@0@0 0Y@ `S0Pp00000yH0, 0` H0t0@\ ` 0X  X QD0S KލЍT4S0[ q CpgL0G `  100c0C 0H0pg 00 0 F P Z0@! ! 0Z\ 0`$00R0KލЍW 4S [ 1 BcT L0 !  b1 B( H c00@ A0 00`$00 00$ @C0 `( 0 P0Z p   0 0 !, ! 0Z0@`PT  0  $00R0 0 0 00 0KލЍ00㌀08 @(X,0$0<000000(00$(0ؔA !   0 .S @ؔ00`00  R 0``O-JM Mp褝#1ĝ$  !H Д `@0DQ @0Y01<0s ! H T0 4 #1D00A0` T BV00.v`!20|0xZ0>x`<0 !bQe@0@0C0 00z[zz"Y z00 @0@ 0[Jg+ j&z7gzzzz @ Z0z z Yp`00;0W<@x`$RD@P0>Hp! Eb n8 !8P Gp @ ( pPdPQ  b pG\al nh K`p  XPt L 0` YX0<  < \ @ `t Z lP<0 0h,0d@pPP@T0pP0YZz0 $* 0G0z GzaC 0 800; 00 0z pzwz  (0Z jz  jvzwz 0GZ YZ0z5zjfzZu%j6f+j  10 p 0 R1zj'zwzwzwz00Z(z@0Y0Bz71400z0:40GjjZv%ZvZ H0GK0B1+ rD0zw B B$0!z'zwzj0Y, @`S0Pp00e<0( 0P <0p0@T `0L  L Q0|0S xjJލ ЍT4S 0Z C0l@  P< ppGa` E @[` sj_0  0[zzjvzwz P0P4S0Jލ ЍY 4S 0Z AQ C e0d@0NH  <p``l 0A000C0000  Cz_[zK00j_0 0 0z[ g; +zjv q&zwz  0^  0 $00R0 0 0 00 0Jލ Ѝx00`|0 0 00 0zzwzGZ gz0 0 0[j&z7gzzzz0x`/O-KMMP#1ĝ$  "!P ؔ pH0Da H0Y01D0k  P T0 4 #1L00A0X T BW00.wpL00ZAڀ` D `p 0  0[pp0Y j0 fj [gzzzz0'j'j6jj Z0pYP@0`0p0U A  D  @$RLP`HP A! F Epb!x ! ` 8Q `FPG btP Q K @ `da  lph``P|0pT h Z`0D  D d @0 | [l0Dp,t 0 0 (@X\ <0$ 0ZVj(p 4*0 0Gz0jz'Jg> , 0j[08@0$ z'z7zz$z7zjz,jv&z7z(bgj 0`PZ'zuz 0 Z :0fzR10@j'j6Jjujjjvjzjz7&z7z7z@0[&jZH00Bzv1z ZGzj7j5j P0z0B1j'J$z6zL0jv B B40!pz&jwjz 0Z< S000000 00 0000$00$0cD08 0\ D0x0@X  0T  T Q.0S KލЍT4S 0Z C0lH  pD PpGa` E @[` yj_0  0[zzjvzwz P0P4S0KލЍY 4S 0Z  0C `H0P0 00 D0`aPl0 00000C0000 p @C[j0 FZ0 0j[Zzgz'jZuzvz6zz 0@T 0 $00R 0 0 0000KލЍ00p0,008 [ $0z'z7zjz,jv&z7z(/gj@` 0ؤZ'zuz0 Z:0fzS1'j6ZuZjzZz7%z7z7Jz 0ؤ@gj gj z 0 0 Sj&z7gzzzz 0က{O-M MP1ŝ$  !H p@0Da '@0[01<0Z  H T0 4 1D00A0G T W00wpL0|0xY0Nx`< ` 0p p0ZKK[ 0.0 b; Zg 0+;s;+ Y0K [P@0`0K0Ux B`  <  @%RD0~@ HP! Npb E!, ! P @ bhp PE`PPGdPQa\l np JXP  t$L 4` [X0<  < \ @$ `t Y$l<@Ph0 0dTp@P00 P0[0 (*$ 0g0{kkf3  0{0 p p  ,0Y +   +r p  aK [[u;gKt;s+;k 0 p 0 R1 + q p p 40Y' @0[0Bp180 00:80g+KqKrK H0+0B1;kkskD0 p B B(0!+ r 0[0 @`S 0p0P 0m<0, 0P <0p0@T `0L  L Q;|0S xݍ ЍT5S 0Y C0l@  0>< ` Pa`Fp E@;Z0ã+  0Z +r p P0p[P0ݍ Ѝ[ 5S 0Y C0`@0nH   < `aPl     B000 p @CZkk 0>0cK 0+Z[g ;Kt s+r+ 0@T 0  %00R 0 0 0000ݍ Ѝx00p|0/000 0 p aK 0 0 0Z qg  30x`G@O-M Mpŝ1$  !D `<0DQ <0X0180g  D T0 4 1@0p0A0T T V00v`0|0xY0Nx`8P `0p p  0[KK0X 0.0 b; [g 0+;s;+ Y0K XP@0`0K0Zx B  8  @%R 0~@< PBD`! Npb F " @p !, !` RPGlPQ b\ah ndp KT` XP`  t$H 4T XX08  8 \ @$ t Y$hpP8` d 00l000`@Lp@p`PP 0X0 (*$ 0g0{KKd=  0{0 p p  ,0Y +   +r p  *a[ kX vg ;[u;s+;K 0 p 0 R1 + q p p 40Y( 0X <00B 00p0: 01g+[q[ D00B1;KKsK@0 p B B(0! q +00X @S0pP0`0k80, 0P 80p0@L 00H  H Q5|0S xSݍ ЍT5SY0n 0>< ``F 8@a p b 0P ;[0é+ ڃ 0[ +r p   \ 05S0pݍ ЍX 5SY0`< 0n D 8`a Pl b  B000  p@[kk 0>0cK 0[+[g ;Kt s+r+ 0@T  0  %00R 0 0 0000ݍ Ѝx00`|00000 p a[ 0 0 0[ qg  " 0x6 O-M Mpŝ1$ !D `<0DQ <0X0180h  D T0 4 1@0p0A0U T V00v`0|0xY80>x`0ap pp 0 00 0[;00;0X00 a+ P[ 0  +r+ Y0; Xp@0`0; 0Zpx0 B00800@5S00n@< CDP1 L`c E 2 Ap01,01P F`!0c\ bh00ld`0 0KTP00Xl00t$ H04T0XX p80080\0@$0t0Y8h$ `d `@00l0@p0pPL 00 `0X$ P000(*kKa: 0 0k0 p p  ,0Y +   +r p  'a; X[ u +;s+rK+ 0 p 0R1 + q p p 40Y$ 0X+<0Pr0BZ1 ;p;q; D0K0B1KqK@0+r B B(0!+q+ 0X0 @S0p00 0`0 0m80, p0L 80p0@P H0%0H0R8|0S xݍ ЍT5SY0n0>< ``F 8@a p b 0P ;[0æ+ ڃ 0[ +r p   \ 05S0pݍ ЍX 5SY0`< 0^D 8`a Pl b  B000  p@[[[ 0>0cK 0[+ ;Kt s+r+ 0@T  0  %00R 0 0 0000ݍ Ѝx00`|00 00 0 p a;  0 0[ q   & px;O-KM M#q!ĝ$ 18  `X0PpQD H0X!L  !?X0T0 4 #1T0p20A0s T BV00.v`qn00Zg0.8 QL`0e!h 0 bp0 p0[000Xz: 00 p z[zz0 'z7z Z0X`@00+000Z80 080h0 L  @04STQ 00>P` CXp1 Fc0eH01aH @ GhP Q@PQ0cl`|0 `0e !0 0KD bp00tx`4 \080Zl 0p 80L00L0t0@4004Sx4 ( L 0080|$@00` 0d  ,000Z4Wz0$z< 000z `V (H0@ 0; P0@0 0zq'z7zjz(jv&z7z$ygj$0PZpzu`4 0R0001@ z0zjjv&j6*jPz jz7z7q%z7z4DS&zZ0'zwP00B1zzjjw&jvj X0Q0B1+ r T0ĝ'z7 B< B0!0jz6zz,0Z$0,0R000000000 00 0 00 0^8 @0 8 L 0L0&@` \0$0\0R$0S Kލ ЍT4SZ 0`P pLH! b0 08P `@[p}z0  j[z&z7zwz0@PZ8 0 8 $00R0Kލ ЍX 4SZ Q l0eX0>LP`` pa$ A   0B 00008000z_[0z00;0 z0 0 0j@ [ z* &z7 qzwz 0Z8 0 8 $00R0$ 0 0000Kލ Ѝ00`0(0 P@  0z'z7zjz(jv&z7z$0gj$0ऍ@Zpzu`4 0R1 Pzzjjv&j6jzjz7z7%z7 z0झT gj Tgj  0  pz R0'z7zzzO-KMMp#!ĝ$ؔ "14 `P0HQD ᛽0Y!D x  㒽P0T0 4 #1L0pᅽ0A0e T BV00.v`U00ZK qP0gD 4@ 00 0[z0 `CBzz0 Y  z0 Gj z[0zzzjvjz Z0z z Y@P 0z0z000Z40A040000D00@4SL 0H` BPp C1 Fc !1 PGx01< !a0c``0`H 0K @ ad b 0h0lt`|0p T040[` 0d 40D00D0h0@00|04Sl0 $t D 0040p @,0X 0\  (0,0[0 Rz0 z8,00Z'zD $@ 4zx`(p0a ! 0  0 0 0[;00;0X00 a+  Pz[0  +r+ Z0; Xp@ 0`0;000Z(0 B 0(0x0p00800@5S00n@ < CDP1 N E @`c1001Q!0cTPX PF b\d00n`` 0 0Kp0 1hPl00t$ H04(0XT 0X (080080\0@$0pt0Z$ d8 @``PhL00(0@` 000 X$ z0P, kKaB  0k0 p p  00Z +   +r p  /a; X[z u +;s+rK+ 0 p 0R1 + q p p 40Z#0+XQ<0z0B1r ;p;q; D0K0B1KqK@0+r B B,0!+q+ 0X@00Z0p000`00p(0l 00 (0800L 80p0@P pH0%0H0R7|0S xlݍ ЍT5SZ0l< 0>8 H!@b0 0(` pP[;0.0 z [ +r p 0P`Z( 0 ( %00R0ݍ ЍX 5SZ0lD0^8 Q<  `a!pb  0B000 0(0000[[00[00> cK 0z@ [+ ;Kt s+r+ 0Z( 0 ( %00R0 0 0 00 0ݍ Ѝx00`|0 0000 p a; P 0z 0[ q   xp5O-M Mpᣁŝ$ 1, `H0@QD ᰸0Y!< d  㧸H0T0 4 1D0pᚸ0A0Q T V00v`ָ0|0xZڊq0>0gxP ,@<0 00[0 `CB;;0 Y00 a+   [0 +r+ Z0; Y@P00;000Z,0 B0,0x000<00@5SD0n@ r0HP L C1`c A E140X1Fl!0c` bh00ld`0 0Kpp 00\t( L08,0YX 0\ ,0<00<0`0@(0t0Zh<ppG!b ,P `@[;00 + [ q p 0@PZ,0 0,05S0ݍ ЍY 5SZ lH0^<@0 Pa1`c 000C000,0p 0[[[00> 0cK+@ [ ; Kt sq 0p0Z00, 0 , %00R0 0 0 00 0ݍ Ѝx00`|0"0000q`;  0   [0q 3xKŸo@- Q (M^?@AOoB R R @o   RZDT P0@H L <0 804 09UAo: RDT P0@H L <0 804 0:R: RM R@] @o  R RDT P0@H L <0 804 0hP\ Ru z/ @H3 <#0  $᩶(ЍDT P0@H L <0 804 0(ЍDT P0@H L <0 804 0DT P0@H L <0 804 0KDT P0@H L <0 804 0DT P0@H L <0 804 0DT P0@H L <0 804 0DT P0@H L <0 804 0pPR  [ DT P0@H L <0 804 0VP\ R@DT P0@H L <0 804 0;뢶onO-MpU @XP\cYA0400800 ,040S00,0V0000hP  P\ ,0Aᾟ`0P<0  0`PbR嘴P $0 b S  b".8@"/<2 D"HL 0[/ P[0S, D2  ĶP $0 b S  b/px" -t2 |" 0[/ P[0SG, |2  P  0)./ 2+;2+;2 22D 22H2"r삍UP~ 00  0 bR mP& $0 b S  b, #/3 $#(, 0[/ P[0S, $3    2S 0[/BPR[ "0R" B0Qʴ3#P+;2 "+;2  ?L0ED 2r"S$I ?P G HP0" +;3 3" , ҵP < 0 bR啳 P- $0 b S  b, #/3 $#(, 0[/ P[0Si, $3  BTt  n2S 0[/BPR[e "0R" B0Q3#P+;2 "+;2  m⽱H 2삍"S$ ?P P0" +;3 3" 80 $$02 02` 0H20 ,P4(242S 0[/BPR[ "0P2R"  B0QP l2S 0[/BPR[ "0P2R"  B0QʴP Kt2S 0[/BPR[ T"0Pt2Rx"  B0TQ| =P )<2S 0[/BPR[ "0P<2R@"  B0QD?P 0S ߍ Ⅎ %*@ߍ 32 32G02堶 Bؤ bb@`d` ၴP }PaP P }`ᐱP, 0BS0R0V0S,墲V ڸ00`00H`吴00X0峳pP 0h፰Pp \ 02I 02D%0T2?%rDo l` i?L0d m` > P4P1 P. V`*P&V,00 RS ,?0<V0CD" `T D`(l20X0KP 0 @`Q QQQ$Q QJ PP00 8<@DTP΍`H΍ĐJ LL뾟 0 T  m 0 AH  0 L APP

P+R;(!^+`;,!l+n;P!> @T!L N`!Z \d!h j!!!!!!!!$X\a1q vO 0+T1S 0[/BPR[ ^4!0RX! B04Q\1!Pv+x;T1z |P!L+N;1P R 00۬1\aXS2r `!0d1T1P S!z+|;!v x 0[/ Q[1S 0[/BPR[ P01RB D ! B0Q01Q041S`00K1PT!SP RB D! 0[/BPR[g !0P1R"z | B0Q?P iY 0 0 00グ1S 0[/BPR[> !0R! B BBM$LN0Q1!Pv+x;1z |!h+j;1l n Z& 1q!S2 !011P . _-_S!z+|;!v x 0[/ Q[1S 0[/BPR[ l!P01R^ `ڐ! B0lQʠ1Qh1ʤ1SZ  ᖱ1!Sl n^ `! 0[/BPR[ !0P1R"z | B0Q?P U0D1@܁ @00x 2@$P 14 0 00$P2@400  00  @Я 0R Q011Q ů"2C 0  1S 0[/BPR[Q !0P1R!l n B0QP W1S 0[/BPR[* l!0P1R!^ ` B0lQʔ0P 5T1S 0[/BPR[ 4!0PT1RX!P R B04Q\P 1S 0[/BPR[ 0P1R !B D B0Q$0P 0S 0[/BPR[ 0P0R 4 6 B0Q 0P Ъ0S 0[/BPR[ 0P0R & ( B0Qʴ0P t0S 0[/BPR[ T 0Pt0Rx   B0TQ|0P ߍ@!1R!x1RYvOvO0D1@܁@00$2@ 14x 0  00"\1?2>X!2"1?2>!260D1@܁@00$P2@ 1x 0 !l1tp1  X<\!80$1  d?Z wZ A^00 010f1h100JZ ^Z00  Z^T0Z0^00O-M$吪댳 Aⱪ뺬pA@P,00S0 0D3`0P绬 ᕫᒫᏫp0 @[, 0 @ pw 0UxPp ժЍ$ 0S0Sr  0 8  @@ 0  (Xp0 0QM0AS[!!Q 0"*cS ` P RH `$ `; Q  Q Q  Œ 80ʫ0 8@0 ڮ ừ,040卫 @ ,04 ˪p'0  0S0S0S0S0 0?0  ¨:"`h < \\;A-P0'a!Be B@`(b(M:(b A'F aa{ R  ``{:^00 Q  B&`'Fu 00P  C l^P p0 0$0ß唀   0h3 0`#   7e`d``F0Sʸ0S 0 00 $0S0S 0 00 $1S1Qr 0 00 $֨$0ώ S(0SS 0 0 0 $¨ώT0PSX0Q4 0 0 0 $宨ώ0Sʈ0S 0 0 0 $嚨  7e`d``F(Ѝ0 S0S0 S0S\0 SP0S0 Sh0S,0\ 0S0 S80S1S1S0S(1S0Sm0S0Si0Spe0SQ0S0SM0STI65YYWO-p-`02D M,10"".111111111222 222$2 282<2@2D2T2P2h2l2"#.  H"%.p2t222222222222222223333&>L"x2 = |2)> 2+> 2 =2.>2/>31> 3P jO011嶬8Ÿ4R嬐 P 020  ɩᲩP jO011唬Q子 P 010  姩ᐩ^_ ǩjO © v'v 0  j s0 ,0w0 <0q0 (0k0 (S. 0,!.48!-01$E0  P000P G  w$P 蠍  ᠥ  ᜥ0pp刀10 A 3! 0B" $0 p00t p僥Ro0 ^_0  \` @ XF?X 00tP 1@p00 2@1H pᨤᦤWᢤ ᠤ ឤkߍ ?0L 1@ H0岧Hp@Z$垥400(%Pm 0,0(0<2 窧$儦(0 00w8@0 TwPp ԥ喨V pkߍ   ,1@@0全 0 0D !p0 0  < ᾦ0@ p Z垧 0,0(0~@ \B`V < IIሦ %ޣO-]MMPp ᱦ@!D1aRS`kڙ0PW^ _ 0000000000 110, .008 :001B?1O K򈀍0  0P 2@$ `0P 00` 2@ 0$ `ۣ p0tP 1@` p00$ Tpw usq]ߍ Dp]ߍ BPQ < DDL8  1100i[ 040000$,00  $ 0$  0$k` E B(,?< 0  $ (0(< 0 ᵥ (Ppd` ᰣ ᫣ 0 B A00g ᗣpp 0  ҢXP 0  Ǣ@ 0  㼢  ᔥ ᐥ ጥL4@H1t0pX0P 0 ᗤpᬢ ᪢ᨢ ]ߍDP  000$0, 40N$ 04000$00,0Bͨᆢ ᄢႢ 弦P`P`m kigɥO-@-p0@-M *`$ Q `1`!11p1t1R?P+R;dT V h1l [?0/R[ R , l1  ! `  0@S!0 d010 D000 00D1Sa 720p3t3墧VP0`P\  0C2& 0 x60௤ᘤd0 S: SN R 5 70 0 2@p3=t33@1d 00SS000 p3t3aşEKR @  050  PpY H 00S5 0L 0S/@` 00R0S7p3t3+şEOb @P 04 0 Q`<%Y0 RP @,Íң 00800S00[ 080H1+L!@B: B  ``{:T0S@@aa{:R0S@10LHS@ )0$SژΏLpP L1^$`D0G 0HSP   F8 \Q@ (0 jύ8 P͍۟ 1;@ 0 p$0!\0,->T0?4 0d1`!SP+R;" T V""+;2 D! 0[/ Q[D!Rl!2  B@=L?@=p>?@<=hH8hL0P@ tSx3$0|30p3H1 L|30tSxÍp3D0Sy 80 S h:nB$@0 ( p#|3QxÍ ^ tCc )p#4 , <0x# 2S 0[/BPR[= ?<0"0R" B0Q3#P+;2 "+;t3   t3" "S PP0" ˍۍ3 3" 00<  pstÍH#2R ?8#0<00 H  t302@p3 ÝL\d?0#<03 @4/\3S 0[/BPR[ <#0P\3R`#  B0<Qd?X0P $3S 0[/BPR[ #0P$3R(#  B0Q,3 P |2S 0[/BPR[} "0P2R"  B0Q0Pc ZD0pS$0P@_0P @t(0`@l @(0 c$ R z | c01122>~ 2 "R0 [?0P[0Sc 0, 2  4 @A/z?0᪢ z AL1 BLH1(@+8p$`0LP0Cĝ 0 t~X 4 0\  @<o0S2020xd0P* ˟۟32! 0(0 020z?0">\000剢Ý(`0  @4p0 a\ @D@PLP` T`G(p @LV@ @,`p`DHA p`p4@`F4@GpWl` @`࠱ VT `tp`^@0 000$@4a 0t@J pÍN "S0!1 `6/0 81 0<100141妠$3S 0[/BPR[ #0R(# B0Q,3# P+;$3  #+;t3  4 t3,(#S :>PP00# ˍۍ3 34# ޜ`0pSx 80S 0:nW \x3p0ˁ0B$S|(tp#  c 0 P )p#!1  J PpI r@0x40q#8QP` 000@Z R0S 0[/BPR[ 0S 0[/BPR[ 2S 0[/BPR[ !0P 2R"~  B0Q0P P 0[/Bσ\R[ 1S 0[/BPR[ !0P1R!p r B0Q0P 1S 0[/BPR[j |!0P1R!b d B0|Qʤ0P ʚd1S 0[/BPR[K D!0Pd1Rh!T V B0DQl0P P _ߍ˽7[0p3t3 [ ֞-=M 0 70p3t3`dM&^ @  0=0  P3,p(3`0STI 80S 0:nW \x3p0ˁ0B$S|(tp#  c 0 )P p#!1 H pr@I 0x40q#8<33O3S 0[/ Q[$3S 0[/BPR[ #P0$3R (# B0Qp3Q3t3S|#x3 ,3  3# S$3  # 0[/BPR[g t#0P3R#  B0tQʜP < 0$1@ 10104!2@t#J p3N ʚ 0 @ |v 0 4@t0N @pÍ El l0<@t8Í @pÍ 4'd`2 @x 0C|P@0CH t 4<@܋0@8ÍN ދ ⋍L0@$ 0000T'q\ 03 F3,(3 2:n"+;S3 #/+;# ##c" 0[/ Q["R!ʼ"3  X מ5  <0 J t30 2@p3I 5H0t3庞7 A0 00R=$0pPD0W@p33{ ٞd֞02嚞h32C_ 11A}  0H70 pS<|3p#@ 1$1 Ɵ   060 & $ @/@|3p#Ý\3:nX#+;S3 #/+;# ##c<# 0[/ Q[<#Rd#3  =p33uX U[H)N/ 0\Xύ<1 0"2"2"2"2R3S 0[/BPR[ t#0P3R#  B0tQʜ:>P^ )\0141卝ğ   040 $ $ 圚ᅚ|3p#Ý nHtd\<H9ݝ~0t3?<0埝?<0Н` R 00Sژ0P1 \0 R S,  R2'  0D1xfCE}0$L00P z01h)?H <0@B  0T0  \ @# |3p#N003/;003/C003/ni;zfF crP` ]ᇗ%倗 ~<|Hztx\v0S w 0S r j?<0 e<cP  ^P\ ZP vSW Hᣙ@堙?<0:ᘙ?<0Ꮩጙ቙z?0H?<0候}z?0;!@ B $ 0[/ P[0SM, 001  p?Pp4 $0*b S b.L1P!V/HJ+L;T!N PX\ 0[/ P[0S, JT1  0Up0D ZO@0/ 0  \302@ X3[U//X\ `d0hl/pt  @DB|L @ @x 0  0\2@ X3)0 PNL8P 40 0vύx+z; `0t v$6/3S 0[/BPR[ #P03R # B0QP ޔ3S 0[/BPR[ #P03R # B0QP 3S 0[/BPR[ d#P03R ڈ# B0dQʌ P  0|1@ x2壔X?P 0 t u0(!΍+; `0,8< (046/3S 0[/BPR[R #P03R # B0QP V3S 0[/BPR[. #P03R # B0QP 53S 0[/BPR[ d#P03R ڈ# B0dQ B< P  _0 nD'@(@(L))**+x0 |20x X\3 = ,00 n☓(Y a&{k*["K$+ `,;>z   狸?z+"( p (' Y J _$Zn 0?CX#\3`#d3h#l3p#t3弘,2S 0[/BPR[ "P0,2R 0" B0 Q4(0P 1S 0[/BPR[ !P01Rx z! B0Q$0P q1S 0[/BPR[ !P01Rj l! B0Q 0P O1S 0[/BPR[Z d!P01R\ ^ڈ! B0dQʌ>P -L1S 0[/BPR[5 ,!P0L1RN PP! B0,QTV?P 1S 0[/BPR[ P01R@ B! B0Q>P 0S 0[/BPR[ P00R2 4  B0Q0P ǒጓX *P0  0;J p 5g0 0.4 )40  |2n0 1@x2姒XP 0'`2 Dd2 `/p2t20h"l+;, 6/3S 0[/BPR[=\#P03R # B0QP Z3S 0[/BPR[9#P03R # B0QP 73S 0[/BPR[6d#P03R ڈ# B0dQʌ P P eL1S 0[/BPR[U ,!P0L1RN PP! B0,QTV?P C1S 0[/BPR[- P01R@ B! B0Q>P !0S 0[/BPR[ P00R2 4  B0Q0P Cލ Ѝ0O/ 0 J \302@X3 ZO70X3\3K젟@ 000 @\  0 <@  0|0, 0P9d I`0 0, XÍ\Í@)00_p?Xh0

P 2S 0[/BPR[  B"P02R " B0Q?P 2S 0[/BPR[ "P02R ڨ" B0Qʬ+>P k@țJ 00\c2@ X3 d2S 0[/BPR[z D"P0d2R h" B0DQlD0PK 8I0d1sJ0,1 00ߓ6rN= *6 =6=4C 0Y4lߓGܓٓ ֓ӓ0Г| ͓]ʓ8/Ǔ 6ē,従=⻓H a,ݍۍ4ٍ0׍Ս Ӎэύnˍ,n⼍nn0nⱍn ʐƐn4n➍nO-`-@hpPM` y0P 0 2U1<000YY "G0 2 $2G '7N 0@ ڏ Ï^? (0 |1Y ( |1Y"V 0 2$2叒$V b'7S 0@ 㨏 吏=P zP8ِPNO $0*b S b.,10! B+D;(F H4A8!01d1P`!P+R;,1T V(!B+D;D1F H D1.4A0!Sl0N810<11P!l+n;d1p r`!P+R;1T V c1R/lAh!Si P P0p! p+r;1l n1t! K!1R ( " 0 0!00`` P $0 b S^ ` b-!j/1b d! 0[/ P[0S6, 1  1zx!dcR 0 0( z oU/ U  E0R 3 #US 00 00E?o2: RzP 0 2U{ | 2z |2 2 @2SzD2P2T20*++,,--.?~+; l0 `>"%.2?+;h H2L"K 4`@0 0d0ᜰn < @( @֏808 10< 1@10n2L000( 000奌0 ;4 2+ 68 ; 0C0SUPPU * 0@S,;.+a 0 ! B< h<t0 x`\ 0*++,` @ ۱EJ@ɋCJ02S,0 L1PH!,"1@0H0D 1Si LRH 5!Q0B!TPBAR [aQအ TA\,J$`p L\PX@P0倰1$QPT00ހ`@pP0000 ȋ$0 P[ ` p @0SȊM ~ L0S @ 0,0D 00H  +^;q+qq p0SY 0 M NJ@ J `  ዷqXGPYA zT" 葝 N 2Y}X"70 2 $2<@ 000 @\  0 M4 @ # 0@ 30 YY ` 0O1@MNSo <0;S+ pK*+p+rM ⋡ !  SK;+, p;p+s ⋡  S+;.K pp;q ㋤  +;0K p+p;r 䋣 )N `Z,>6!\0P0X0000D2S 0[/BPR[ $"0PD2RH"  B0$QLh0P 2S 0[/BPR[q !0P 2R"~  B0Ql0P ʉ1S 0[/BPR[+ |!0P1R!b d B0|Qʤj?P d1S 0[/BPR[ D!0Pd1Rh!T V B0DQl>P ,1S 0[/BPR[ !0P,1R0!F H B0 Q4N?P d0S5ߍ̊t2 00b0S `Rߍ= 80͊B? 40Ɗ^ (* z" 葝 2Y `+ߍ00: 80NO10140@ n 1d0< 001@102@058010n 1@1 [0HDJ@,1lh1h!>4l1@0!R?h1pB04 1嗎(0|1咎 08D1匎᠌ PYNjP8: 0103/Ph11"txJS @ 0:0 P P51RHSL 5!Pw u4僎8倎(}11$(K_ @ 0D; 0P P02,08 \kdY( 0?C!1!1!1!1cD2S 0[/BPR[Q $"0PD2RH"  B0$QLh0P : 2S 0[/BPR[, !0P 2R"~  B0Ql0PN LP< 0103/I[ 1 $0[Ld I އ8 4 0S `% b_ d(V Q LO-oMp 0V_`JbOP`@ <  0 @ $ 8<@DTP`d 2 4 ,> @!.X!.J LH!.\aL! 0匁庋PUPaV00011ތ  ! 0>0h 00ډ0gA> 0  1$P 0ᾉ1PȀ` ፈ oߍ B| T< 88%  ᠇ 0Ӊ0q0 4 BA p000 U  兇j Rzzz z ⨠P0  1@@0Ȁ0 00r"{hp0 2@08$+Ȁ @@{&( {zz{{zz l@hp0 tڇ 0l 1@ h0A*[HV,+[.0 ["Z z[#ZJ[$Zj%Z$Z'Jjz&ZgjzZ j6zwj VZJgdZJzwZJ%JzwJ_ zZjfj&jz%jzzZ  0?C*++,`QO800 30 0 *0 0 !   0.0e/0( 0 0, X  0 0` DH`⨠0 1@ @, Ȁ0堆 򈐍hp0 Ȁ @l@h@ @${,z 0㬀 1@0, }j z z&fj{zzzzdJ00 娅0 0 埅0 0 喅 n j f0.|0e/w0( r80 l 0gr ċ}{wusՈȀȀȀ ȀȀ%O-OMpᜆB_ 0Dx`@   0  2@ a10* ,0000000000001100000000}X3x R@đW1@ .$0 "@ 0ᯇ"P  Oߍ ᢅ؀ ᝅY^ P0DP 1@@00 H0L0)Xp@ e{000(0+{ { z z{{ z z 0  ᶄ0 0㭄 ᅇ ၇0.ᗊ0E/ᒊ 0ፊ8   C0p 0ႆފᗄᕄ0DP 1@@0 ΅Xp@   (0  {0zh0  0_ 7 30.I0E/D0 ?Bx < @<ODžKI뫇FሊO-eMpx 0DN$P ׅ  4`Y310 ' 0ᵆ(P` ᅅeߍ  ᫄ ᦄ<0 ! B80 A00bp0 0ᐄ  0 ( *4 6(`Xp@0 0а @ @@X`,@(  D \ ᫃ 0\ 1@X ZX00p1t1x1|111`0d0Z?1b?1`P@ `0 0u00 l0 0c ; 70N/M0O/H )   0 09`ᕉN LJH F D5 AṄ롆 <а00 642/pʅ뉆 B < O-eM`X 0,N$P ᷄ 4p910  0ᕅP` eeߍ  ዃ> 0ᅃ<0 ! B80 A00 Ap  p  0 ( *4 6(0X@p0 0А @ @@X,@(  D \ዂ~ 0X Zp1t1x1|111Z?1b?1`P@ `0 0[0 0R0  0I ! 0N/30O/.    0p 0`{4 20 .,*;'ៃ뇅"А00  Vᰄo Bh < \XO-eMNP` ل`qd1弔WS ppé1 0$ᓃւx4 `10 H p0„rP Ceߍ ip c<0 ! B80 A00pP N  0 ( *4 6΁(0X`@0 0 @ @@(X,@  D \Ʌh 0X Zp1t1x1|111Z?1b?1pPERPNL J H{41@бpo HEA 0 0 p- l0  ể .PpQ ዂeߍp00 0  00 0 ḃ ᴃ0N/ʆ0O/ņ ᦃ  w0 0ᶂp w B < hh<L d `l0 탄<0 `Px`PN U Uz U; UY 1S 0[/BPR[& 0P1R !B D B0Q$J?P r~0S 0[/BPR[ 0P0R 4 6 B0Q0P P~ߍk  a0 {0k03&(1{ 0j0z000p偁P 0;0;0S񏐶? 0  ` kPDDh0{!1k1( @w':{s:0"   00PACP  0+SWl H @   aX 0(婐{ 3& 娀PA{:qp0 0 00P  +{[ _m   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~d€P@V0, A0pS񏐳b _ \ Y V $L I   ap 0{@3&Q(zȋ{㕀Pz G HlW* ; H  a؇0H"&(q   S񏐳, ) & # S񏐪 [ FQ@ 0@JbTB@ C p[ Vj0, ~0SB(2 __SL N __SP R S __T Vy S __X Zs S __\ ^m S __` bg S __d fa S __h j[ S __l nU S __p rO S __t vI S __x zC S __| ~= S __ 7 S __ 1 __  X;[0FF0C ^ 0  00(00,00S0  0p#0p qW^pBBpSS SpqW^pBB0V 0#.V01S 00#( 0V1S0 0#~,0V1S0001S00P S 0[ FQ@ 0@ bT@@ C p[ V0, p}  } W~ ,g}y[ FQ@ 0@ bTB@ C p[ Vb0, p} } WU ,g}P[ FQ@ 0@ bTB@@ C p[ V90, }0S(2d eSL N b cSP R S_ `T V S] ^X Z S[ \\ ^ SY Z` b SW Xd f SU Vh j SS Tl n SQ Rp r SO Pt v SM Nx z SK L| ~ SI J  SG H  F G  X ,h7}   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#0123@ABC<=>?PQRSLMNOXYZ[\]^_`abcTUVWHIJKdefghijklmnopqrsDEFG89:;xyz{|}~tuvw,-./4567()*+$%&'  [C FQ@ 0@JbTD@ C p[ V0, pS|  O| W 0g,gSM{"2S㲋__`k_{_h`8K_7[_H`C+_B;_(&(`k_{_h`$"*"(2*J. SO_N_`ZK_Y[_H`+_;_&((`k_{_h`$"*"(2*A Sq_p_`xK_w[_H`+_;_&((`k_{_h`$"*"(2*A 0S㏋_펛_`K_[_H`+_;_&((`k_{_h`$"*"(2*A @S__`K_[_H`+_;_&((`k_{_h`$"*"(2*A PS__`K_[_H`+_;_&((`k_{_h`$"*"(2*A `S__`K_[_H`+_;_&((`k_{_h`$"*"(2*A pS__`K_[_H`+_;_&((`k_{_h`$"*"(2*A  S`K[H`+;&((`k{h`$"*"(2*A~  S`K[H`+;&((`k{h`$"*"(2*Ah  S`K[H`+;&((``$b"r*"&2*AR  Sk{h`K[H`+;(&(`k{h`$"*"(2*A<  Sًڛ`K[H`+;&((`ڋۛ`$b"r*"&2*A& S0k{h`K[H`+;(&(`k{h`$"*"(2*C ࠊK[H`+;(`Ыѻ&$`"B R($ J0Rp  #>0 RqC 0# S!A  # R1A| 0# S!Av  # R1Ap 0# S!Aj  # R1Ad 0# S!A^ # R1AX 0# S!AR # R1AL 0# S!AF # R1A@ p#>0 W!C#>0qC70 ~0SPF+0 0{000F0P0AO*a0 OJl#PSCP !FAFMJLO*LV_AA  \ ^1#3XQ2 O*lF#Z򡁠X!XO*N O*l#Z!XO*N Q0; \V2^V)^V ^V^V 0^V 0S00ñ0 0P0 S0@:0S7P򉰠F+0 00F0P0LAO*a0 OJlPScP !BADMJLO*LVXpAA  \ ^1#3WQ* OJlF#ZqW!TO*N OJl#Z!TO*N Q04  RV,pR࠳V$pR࠳VpR࠳VpR࠳V 0R࠳V 0R000 PS 0@0SP򉰠F+0 00F0P0AO*a0 OJlRScT !BADMJLO*LVXpAA  \ ^1#3WQ OJlF#TqW!TO*N OJl#T!TO*N Q04  RV,pRࠣV$pRࠣVpRࠣVpRࠣV 0RࠣV 0R000 PS 0@40S1F+0 0000F00000Q0>@O*`0 OJl&RSFT MJLO*LVg@L p PW1#3^ࠓ W Z1#3  OJ`F#Tol^!VO*G pOJ`#XadOjG\0; pRڱ V2 pRڱ V) pRڱ V  pRڱ V pRڱ V 0 RڱV 0R 0P0 S0@{0SPF+0 0{000F0P0ŰAO*a0 OJl#RSCT !FAFMJLO*LV_AA  \ ^1#3XQ O*lF#R򡁠X!XO*N O*l#R!XO*N Q0; \V2^V)^X ^V^V 0^V 0S00ӱ0 0P0 S0@0SP򉰠G+0 00G0P0+AOa0 Ojl#PSCP !BADMJLO*LWX`AA  \ ^1#3VQ OJlG#ZaV!TO*N OJl#Z!TO*N Q04  R3W,`R3W$`R3W`R3W`R3W 0R3W 0R0300 PS 0@0SP򉰠G+0 00G0P0ìAOa0 Ojl#XSCV !BADMJLO*LWX`AA  \ ^1#3VQ OJlG#TaV!TO*N OJl#T!TO*N Q04  R#W,`R#W$`R#W`R#W`R#W 0R#W 0R0#00 PS 0@ 0SG+0 0000G00000Q0@O*`0 OJl&RSFT MJLO*LWg@L ` PV1#3^ࠓ V [1#3 ^ OJ`G#Tol^!VO*F `OJ`#XadOjF\0; `R1 W2 `R1 W) `R1 W  `R1 W `R1 W 0 R1W 0R: 0P0 S0@{v0SsPG+0 0尋000G0P0ÊAO*a0 OJl#PPCP !BAFMJLO*LW_`AA  \ ^1#3VQN O*lG#ZaV!XO*N O*l#Z!XO*N Q0; \W2`^ࠑࠃW)`^ࠑࠃW `^ࠑࠃW`^ࠑࠃW 0^ࠑࠃW 0S000 0P0 S0@0Sډ0P G+000尋0G0P 0AO*a0 OJl#RPCT !BAFMJLO*LW_`AA  \ ^1#3VQ9 O*lG#RaV!XO*N O*l#R!XO*N Q0; \W2`^ࠁࠓW)`^ࠁࠓW `^ࠁࠓW`^ࠁࠓW 0^ࠁࠓW 0S0000P0 S0@\XZz FpR0ÉC⏊c.@ja^N@  0 !BADJA*AVT1jzjfVjIjzjf Vj>jzjf Vj3 jzjf Vj(jzjf Vjjzjf VjjzjfVj00jzjfjp @XPXtz FpR0C⏊c.hja^Nf  0 !BADJA*AVT1jzGj^VjIjzGj^ Vj>jzGj^ Vj3 jzGj^ Vj(jzGj^ VjjzGj^ VjjzGj^Vj00jzGj^jp @XPlXiFp^0Õ C*c/bJb^Od 0 JB*BVT1 z zzMVzI  zzzM Vz>  zzzM Vz3  zzzM Vz(  zzzM Vz  zzzM Vz  zzzMVz0 0zzzMzp @XPXzz FpR0C*c.@Ja^N@  0 !BADJA*AVT1jzjhVjIjzjh Vj>jzjh Vj3 jzjh Vj(jzjh Vjjzjh VjjzjhVj00jzjhjp @XP~X|z FR0 C*c.bJaRNd  0 !BADJA*AV\1jzGj^HjNVjPjzGj^HjN VjDjzGj^HjN Vj8 jzGj^HjN Vj,jzGj^HjN Vj jzGj^HjN VjjzGj^HjNVj00jzGj^HjNj @ XPQV@چaPf`0    S`QQVpچa@fP`0   v S@`QQVpچaP`f0  dJ S PUQVpچaf`0  < S`VQVpچaf`0   S`Qt@ @@:@@k S@ S@ S  S `g Sd-sP `0 [ ' H R:V   4P`p!(P偐ᆰ08@Lኀ<",  F4  DpH  T U1  # 3TS1#3 \P oLM*bTRRM A V9 Q( V 1 Q, V )0 Q4 V 8 Q< V @ QD V L QP V H Q  P R @ RV   P`p!(P偐ᆰ08@Lኀ<",  F4  DpH  T U1  # 3TS1#3 \P oLM*bRRRM A V9 Q( V 1 Q, V )0 Q4 V 8 Q< V @ QD V L QP V H Q  P R @ RV   !p(偐Pᆠ08@Lዀ<",  F4  DpH  T U1  # 3TS1#3 \PG o,M bPRM A V9  R ( V1 R , V)0 R 4 V 8 R < V@ R D VL R P VH R  P R @ RV   ڦ!"P` {,@偠T(4<DPዐL0F8 H T U1  # 3TS1#3 \P o,M bRRTM A( V@ R, V 7 R0 V .4 R8 V $< R@ V D RH V P RT V L R ð  P R @ RV   !"P` ,{T偐0H(4<DኀLF8 @P T U1  # 3TS1#3 \P o,M bPRTM A( V@ R, V 7 R0 V .4 R8 V $< R@ V D RH V P RT V L R Ӱ  P R @^d?pP p0 Re K! RKW  E!`"P` (偰L08@HG<删P,4D` T U1 # 3TS1#3 YP oLM*bTRRM A W9 Q( 3W 1ڻ Q, 3W )0 Q4 3W 8 Q< 3W @ QD 3W H QL 3W P Q 3 P R @ RW  !`"P` (偰L08@HG<删P,4D` T U1 # 3TS1#3 YP> oLM*bRRRM A W9 Q( #W 1ڻ Q, #W )0 Q4 #W 8 Q< #W @ QD #W H QL #W P Q # P R @. R+W  %!`" (L偰08@HG<删P,4D` T U1 # 3TS1#3 YP o,M bPRM A W9  R !( W1ڰ R !, W)0 R !4 W 8 R !< W@ R !D WH R !L WP R ! P ^ @ RW  !`"P` (尋P,4<DLG@劰T08H` T U1 # 3TS1#3 YP o,M bRRTM A WA R( W 8, R0 W .4 R8 W $< R@ W D RH W L RP W T R P ^ @ RW   `P`!,H偰Pᰋ4<DGLᆠ"@   08T( ` T U1( # 3TS1#3 YPW o,M bPRTM A W@ R, W 7ڻ R0 W .4 R8 W $< R@ W D RH W L RP W T R  P R @mpRڱ V pRڱ V pRڱ V pRڱ V pRڱ V pRڱ V pRڱ V Rڱ V} p Rڱ Vt p Rڱ Vk p Rڱ Vb p Rڱ VY p Rڱ VP pRڱ VG0 RڱV>0R86 RVpRࠣVpRࠣVpRࠣVpRࠣV{ pRࠣVs pRࠣVk R Vd pRࠣV\ pRࠣVT pRࠣVL pRࠣVD pRࠣV<pRࠣV40RࠣV,0R00&\V?^V6^V-^V$^V ^V ^V \ V ^V ^V ^V ^V ^V^V0^V RVpR࠳V pR࠳VpR࠳VpR࠳V pR࠳V pR࠳V R V pR࠳V pR࠳V pR࠳V pR࠳V pR࠳VpR࠳V0R࠳V0R00\V^V^V^V^V ^V ^V\ V ^V ^V ^V ^V ^V^V0^VdjPz!zWnR7XVa@`f0 zzzzSPX @XVa@`f0 zzz[SPX @XV@n0 zzzMSzPX @xXvVra@`f0 zzz.SP^ @]X[VW@n0 zzzJSpPX @CSSzSz|SSz0XZ #. \1BS #\@M#\!@G #\@A#\!@; #\@5#\!@/ # R@) # Q!@# #\@ #\!@ #\@ #\!@ #.0 \B#. 1B0X #. Q1B # R@# Q!@ # R@# Q!@ #\@# Q!@ # R@ #\!@ # R@ #\!@ # R@ #\!@#.0 SB#. 1Bv\W `^ࠁࠓW`^ࠁࠓW`^ࠁࠓW`^ࠁࠓW `^ࠁࠓW `^ࠁࠓW\ W `^ࠁࠓW `^ࠁࠓW `^ࠁࠓW `^ࠁࠓW `^ࠁࠓW`^ࠁࠓW0^ࠁࠓW\W`^ࠑࠃW`^ࠑࠃW`^ࠑࠃW`^ࠑࠃW `^ࠑࠃW `^ࠑࠃW\ W `^ࠑࠃW `^ࠑࠃW `^ࠑࠃW `^ࠑࠃW `^ࠑࠃW`^ࠑࠃW0^ࠑࠃWxq R#WM`R#WE`R#W=`R#W5`R#W- `R#W% `R#W R# W `R#W `R#W `R#W `R#W `R#W`R#W0R#W0R0#0 R3WM`R3WE`R3W=`R3W5`R3W- `R3W% `R3W R3 W `R3W `R3W `R3W `R3W `R3W`R3W0R3W0R030`R1 W `R1 W `R1 W `R1 W `R1 W `R1 W `R1 W R1 W ` R1 W ` R1 W ` R1 W ` R1 W ` R1 W{ `R1 Wr0 R1Wi0Rc*a0H00600[000 00_ht,h,e@@@L@R@'D\RBRp>D\RRpDpPRRDp\RVRQDp\RRD`\:RRᲀD`\*R@Rᲀ<D`P:RRD`\*RRD`\:R]RX00J@x @1 !0 3ee !@1 0 "e ee$b beeD!@@1x 0 ed!x1  0H 04d dd d @0x 0, dd| @x0U 0< ddddXHFFH0FGEdGE GPEFO-@-@gM MhP0E A002$ 0,0e?  o@)-,0$/0`/\P2L2xV@} 324P= QP \` `  R F@ Rke.G 6 _5_ 0 B+ ;Jc)9݊CQ+ ;f0``F,`:^jȋ*0>A0: * `+ `;b^P `8 b _ȋ01!rꞯ90x2 |2cxA@0P@\  0w5!  010` `1APT@0(0 @Q_P :01+c ?a Pb4^^^^`}^p{^y^w^0 p `{]?^c$0pS> PX: l.^ 0E0`b]P 08040T3, 9`0$ (Cg>01  _` _Wڤ300垯40  00`E 0 ( _ _ \Pg S^aLl"H22  + a^U(0iʽ7 0x2|2LbD@0P@\  0 5  $ 0 50U_ >_Q@28%D5  0 x|C_ ,_[SP<ʐ*相:EF0D2Yb0 2Rbt{I*  000@P:  P狸r 61:R O  ^$   s @ RQ @/oS" R5 0? !L cx"|2v]{I:    @P*0S狸s06:S00s0Rd$b 0@0 /RPQ 0E2@ x2|aE01a:C 狸RxO7 0x2|2{aG@0P@\  0 z5  L( 0 l80^ m^auEaP(a,aa&Fa:相\Rgʐ:相e@22X, =40a@( =40a0 0 R/SMʐ  K B/oS" RAP00Q0S2 `8 `8N? (0\X P0 ` \Z? <0\X {* 000B:ȋt qࠍ `XP P0`( PP"[1L0PP< @0[oPF+;f_  +F;0( lhb`dpt i]0F40P0`0H0k\P F_ 0+; G⎿(,8<04A] `DG\v_0PE+; T+E; 0 (Q]E _T \P  w]L s]H o]D k] g]1S 0[/BPR[ !0P1R!  B0Q(PP Z,2S 0[/BPR[s "0P,2R0"  B0 Q4 P Zd2S 0[/BPR[U D"0Pd2Rh"  B 0DQ Bإl(`P XZ@0ts^p180C@m^D\0p4 0 \P^`<Z(Z [O^U)00] 08040\QO`i `4 `3Z1Z4/Z<Y(Y a[#^h0S 0 [B] \Z w\` n\ j\Z =404YY,Y(Y _ R\O-@-ƟP @CM M(pA Y]]P $0*b S b` |0 x+;   0[/ P[0S, 0  X0NOS0SX00cX C/o" R"#8! ! 0 20'ZZ000S 0 0  ꐰ8!<1 @!D1H!L1P!T1\0S 0[/BPR[ W] 0P0R ( * B0Qʼ0P TW|0S 0[/BPR[X3]\ 0P|0R   B0\Qʄ0P 0W,0SD -XA8X 吋H 0R  X<吰B @P @+8Z[ XCލ Ѝ0 w pv"0X 81吰 <1_\TP P\  06$ 0 40lYUYHX0\0\900\X0P H 0   ΍Z00D+F;2@ H00R+T; 1$10141X1\1h1l1P0T0B?@ B(1=N PL$,`1dY$1S 0[/ Q[\1S 0[/BPR[ 7?Kd[cK!5[ >="5="3 ?J+/˧4M56C H x+;k`K`[[`;{ K + [ ;```{{dec  [ ;{w  " $&{( t[u{ p,[;s* .;qV+;k[{ +Xz [0H x[`;[q ;[ {+qq;p``kmKk ``[; [``i;F k [```{m; {" 5`K+r K+ve[mk[|k o kj{ {oKk { K  ;z K4 Lf[K{k~Kl"K"[ ; ;{ vkv z+|* ts$Ky"k~&K+},k[u.+ x[{ (U;[ { +Wj +0H xkp;r+s;skv.;nk+ u``|`[```K`;` [ K ;`k`{`{ k s`q k{mk{e;dKc[ij{ k [ K ; ; [~kvKtb+a [ K ; k {; {kK[ z+| pyx{7 [u&{{w,[v"{}Kt$s*K[<.([|UV4 0H x+``k` k`{`[;b`K{[sK``; ;bk {[K+sq * , $ +& k+75" k툋4(.EUЍO-p-`PzMM HTPt b͍ $0*bS b `+b;!.1d f! 0[/ P[0SC , 1  TP8 zύ $0*bS b n+p;1r t! 0[/ P[0S , n?01  kTP ~΍ $0*bS b |+~;"".2 " $ 0[/ P[0SY , 2  ?TP #ύ $0*bS b +;L2 H"PTX\ 0[/ P[0S( , TT2  T T00 Tm1 h͍ 0    QSP8&΍ $0*bS b +;").2 " 0[/ P[0S , 2  P+; T0*/|+;" 2222a h T͍00  0 ]QSPn8 }p $0 bS @ bm.6 Bo.v& 0[/ P[0S- , 6  2S 0[/BPR[ "0R" B0Q|-m΍(0*bP&6 l"2+A;6  _O|6( "S  P mo>q rP"0 *A" A66 sO 0gPP^[+\;^ -?x p_.2a^ B0 2D*I20  ÍÍƍƍƍƍ V7/5S R 0S x0 0  HZR6S 0[/BPR[ %P06R_. B& B0Q BD0 P O\7S 0[/BPR[ <'0P\7R- B`' B0<Qdv>00P N$7S 0[/BPR[ 'P0$7Rq. B(' B0Q,s>0P N6S 0[/BPR[d &0P6Rm. B& B0Qo>00P N!Pύ1R0S002D 304 333(3,383<3\  R 0 0 _ HQ82 -P S0 h# 7.0 2Dl#@30D3H3L3`3d3p3t30 ,2S CPR #Q *bQ `P QHId `+  S S  Ső/oS" R ^Z.h H0ō  PLUP6S R: 0S > 0$  H &Q6S 0[/BPR[2 &P06Rm. B& B0Qo P M2S0 1S" CRe #Q *bQ ` P RHId ` S  S S  Œ/oQ" RF !1R oS CR; #Q *bQ `P SHId `+ Q^ SPSőR  RP "DQ&Pm.}즍p B v&&&&&&& Q > 0  Hda`uPM6S 0[/BPR[ &P06Rm. B& B0Q P $M03 RS -0_66RWP pP\  0g 80P ( POuOh3 0R SR! 10_66TR|XP0pP\  0h 80 ( bOKOS0L _ LRx  M LP͍W^+; 0 LW΍2D Z~*Ex3 0|333333355550 ōu:/p5S R 0S> > 00 0C^ H0pt1O5S 0[/BPR[ t%P05R- B% B0tQʜP YL\7S 0[/BPR[ <'0P\7R- B`' B0<Qd0P 6L$7S 0[/BPR[ 'P0$7Rq. B(' B0Q,0P L6S 0[/BPR[ &0P6Rm. B& B0Q0P K|6S 0[/BPR[j \&0P|6Rf. B& B BHp0\Qʄ=0P KD6S 0[/BPR[I $&P0D6Rc. BH& B0$QLe>P K 6S 0[/BPR[$ %0P 6R_. B& B0Qa>0P xK\5S 0[/BPR[2 <%0P\5R- B`% B0<QdV>0P TK43 0 0 RS    R R R RQ ^066Px^!oOs 2 "0 MM!R 1 v }p1  Rۓ  ˓ R   R     R       ͍0P  G   n΍̍?[3p00300z";p2 \7*+ - "R[0BSS"Q0*cQ `P RH `$ b; aR Q`QSR  T2 T`X Z/ \ m.=00n  km[nKn;oo. 0  + k{Tf{z zz z 0\/9,:);c [{ ;{Kc;c+dc r{[[h{h[Hh{Hh[`h[t[e`{{%+ma+K+%+;`+K`f;K;f ;fKK;sd+@;  K ; +  # ; p+r;cd T{ ` aak  {'G{ @@8Txp W3S 0[/BPR[ |#0P3R  # B0|Qʈ0(0P Id3S 0[/BPR[} D#0Pd3R  h# B0DQl0P I,3S 0[/BPR[V #0P,3R  0# B0 Qʀ04(0P I2S 0[/BPR[/ "0P2Rx  " B0Q0P jI2S 0[/BPR[ "0P2R|  " B0Q|0(0P FI2S 0[/BPR[ d"0P2R  " B0dQʌ)>P #IL2S 0[/BPR[ ,"0PL2R  P" B0,Qʌ0T(0P H2S 0[/BPR[ !0P2R  " B0Q">P H1S 0[/BPR[m !0P1R  ! B0Qʘ0(0P H1S 0[/BPR[. !0P1R  ! B0Qʬ>P HzލЍ2 T`&IZV 055Mᛰ   0(6 00& J J2`  ्䥍M00 & J J#>C 0IT @mTZV 055M$ᝰ   0H70 T' J J0@       @(P}Q&\m΍&D&p&o& L&&v즍N Q 00pC>  HaK.H6S 0[/BPR[% &P06Rm. B& B0Q P G QPN \ 1S1RS0A?o20S  L0 L_I͍ 0 ͍ m΍_ m΍ Lp&> 0I=0n? 0 I> 0I =  0H62 H0`0ASAQ?  Q';SkP}Q&\m΍&D&p&& L즍&&vd Q = 0  HDa@dJx|G6S 0[/BPR[ &P06Rm. B& B0Q Pp G!1RoS]M66pL@ CKI 00 $ 0 IsI;~0 1_K3S R 0S 0 00 PCH: PJ3S 0[/BPR[L#0P3R#  B0Q>>PE FC!0"4pIH 0 p7/s}pF FF!tJ01ALB~  \K 4S R 0S > 0  4aH0ID4S 0[/BPR[ $$P0D4RC. BH$ B0$QLE>P LFZt5 ύK0 0C0F SFI~5   KxtFEF0d2K0C0,2K01K0C01Ks  pA J3S Rz 0S < 0  aH#I 4S 0[/BPR[h #P0 4R/ B$ B0QA>0P EE^ P JX4S RB 0S > 0  TaHPH|4S 0[/BPR[" \$0P|4RF. B$ B0\Qʄ=0PK EI06FK00C0E xET2 RS]hKedK `Ki ]KDsYK VKbSKPKMKJKh0CFK@CK|0C?Kx & C}  - P!R) [?0Q[6S 0[/BPR[ 6Pm.S06 B& B0Qʸ1Q6 ʼ1S!66  1!6m> & C0PCSD6II0pCI\3  H:D D \4  H -D C*"R) [?0Q[6S 0[/BPR[} 6Pm.S06 Bq& B0Q1Q671S4"66  2"6m> & CeW^$4 oHCC C CsIC lI2I_dIo`I]I ZI.(",2&!1&;0@      @_0@   @X0@U!1&7I~ aC_HHHx_HH_4H__ DCxH%_E_6C4C2C0C.C,C*CJF%C`H  C_ yE CCMH C C CBBBBB BFE_?0B ;E 8E1E.E|O-@-Pp`IM MlH7FnFP $0*b S b.<1@!R/8F+H;D!J LHL 0[/ P[0S , D1  DFP $0*b S bV/t1x!-pT+V;|!X Z 0[/ P[0S4, >X0|1  FP $0*b S b.1!n/b+d;!f h 0[/ P[0S, 1  EP4 $0*b S br/1!.p+r;!t v 0[/ P[0S, 1  @?!0`0R   ^CEP$ $0*b S b,2 "/~+;$" (, 0[/ P[0S, $2  "(1R $AT EPࠡ࠳ 0P @ ^ #0 @P T 0`d&΍@\ @ύ @+;@ X\C$0P 0 0ύD `@'΍+; CP 0-O Dd Í Íύh@.΍ÍCBBP+; ;~0O2Do P3 0Í Í+;ÍT0Í4Í8p@ÍDÍÍÍÍÍ8C$007D3S 0[/BPR[M 3PS0 #3 B0Q80P @T4S 0[/BPR[( 4$P0T4R- BX$ B04Q\F>P @4S 0[/BPR[ B0 #0P4R+ B $ B0Q$B>0P @3S 0[/BPR[ #0P3R#  B0Q?>P z@ 0 X*΍0 2H<}3F?Í,0b?(0~?001>$0?40C!1Rg oS CR##Q *bQ `P QHId `+ AS S@SőR  R>P QD\5N_H үL#P#T#h#l#x#|#pCtS Q b? 0 (00@ 2H01C1S 0[/BPR[ !0R! B0QʴnOl3h#P+;1 !b+d;L3f h b?(0?L3.A!StN P P0! +;h3 l3! ?1S- !R;0BS"Q0*cQ `0P SH `$ b \ 0R  0R00œRQ</04 2H 3}F?#,0b?(0~?001>$0PE3 A0T`үaHP㜋x0P0p0L0F?,0b?(0~?001>$0Z L@D TH 0@@}` y @'EP堐D @ 0E먀00 P E<H#p$R (0耍 $@ @4`, `0 `4 @8 젍< @ D,00@@ ܠ찍048<> @ B D @3S 0[/BPR[ #0P3R#  B B0Q?P >3S 0[/BPR[ #0P3R#  B0Qʬ80P >l3S 0[/BPR[ L#0Pl3Rp#  B0LQt?P 0P~> AU 30 0 APT43S 0[/BPR[ #0P43R8#  B0Q<T0P O>2S 0[/BPR[ "0P2R#  B0Qh0P ->2S 0[/BPR[y "0P2R"  B0Qd0P >2S 0[/BPR[T l"0P2R"  B0lQʔ`0P =T2S 0[/BPR[/ 4"0PT2RX"  B04Q\\0P =2S 0[/BPR[" !0P2R "  B0Q$?P =1S 0[/BPR[ !0P1R!t v B0Q>P =1S 0[/BPR[ !0P1R!f h B0Qʴn?P a=t1S 0[/BPR[ T!0Pt1Rx!X Z B0TQ|=P ?=<1S 0[/BPR[v !0P<1R@!J L B0QDR?P =0SIލ ЍC2 BX Bw} 0 ύ0 2H43F?Í,0b?(0~?001>$0#@zSʐ\1S b? (0 0Fύ" ,}~ύ01΍$ύ4? (0Fύ},~ύ#301΍#3$ύ#34#3A FE>F ~@>"(1R`033BtŸpBP @ 0T2 0 P,??  > b>l> X0>;l=Iލ Ѝp311 QPE \~F01#Bү3  1΍$:A43S 0[/BPR[  #0R8# B0Q<Tl3h#P+;43 0#+;L3  1>$03$0qA#0R8# B0Q<T3#P+;43 0#+;3  1>$0c;T 38C<#S%80<3;>80 3c83Pu+v;03+;3 Zb?(01AJ1RS0A?o20SK b?(0[0@30D3 @0!RH) [?0Q[l3S 0[/BPR[ L3PS0 l3p# B0LQʈ1QH3ʌ1Sʔ!L3TPt3  !1f hh# l3b? (0@ B 3  ?l3S 0[/BPR[ L#0Rp# B0LQt3#P+;l3 h#+;3  :3tSpCS3tp3ŧ ?P C _B_P0x# +;3 3|# : u@l3S 0[/BPR[M L#0Rp# B0LQt3#P+;l3 h#+;3  \:3tSpCS0x30|3P+_;_03+;3 p1>$01@!1H#F b?(0(@, %@s80t3;>80 3cp3 @ A: ?:$F?,0x?}b?(0~?00*><0?404k?<i?D*:@(:0&:$:(":X :,:0S l;9= :} F?,0N?~?001>$0?40$F?F?,0F?,0b$09F?,0F?,0b?(0F?},0b?(0F?,0F?},0b?(0~?009 9 }9O-wMPp@` P@0@=@ @0= 0"+$; S & ( 0 0+2;4 6@@  0[/ Q[ Rʴ 0    0=  0=P Z  f_Z?N!^+`;!Z \!!吱Q0K   0Zύc=1S 0[/BPR[s Z?0l!0R! B0lQʔ1!Ph+j;1l n!Z+\;1^ ` 91Q吱S1 >P P0! l+n;1h j1! 8x 0 PS 4011Y>, 0  \  01! 0$ 10f;O;@@00 p@$`0@4@ D   j q=1S 0[/BPR[ l!0P1R!^ ` B0lQʔP 8T1S 0[/BPR[ 4!0PT1RX!P R B04Q\>P u81S 0[/BPR[  B(ET 0P1R !B D B0Q$J?P J80S 0[/BPR[q 0P0R 4 6 B0Q 0P (80S 0[/BPR[R 0P0R & ( B0Qʴ0P 8t0S 0[/BPR[6 T 0Pt0Rx   B0TQ|0P 7wߍ00=n11 P0R S0R =C=k====Z?0=3:7 77777:7O-MP@㸐p` @0@;@@  0;p @@0;!P`1[RVo@+B;1Z?W X1NkP{!XKZ[HA\+^;LAJ LXA\AAAPTa0 [?0Q[0S*!1  P r?X+ , 0N>!j+l;J!f h!!1  0JS;L1S 0[/BPR[ Jf =BJ,!0RP! B0,QT1!Pt+v;L1x zH!J+L;1N P f61TaPS1!T1<1v?P!1L1P 8 _7_S!x+z;!t v 0[/ Q[1S 0[/BPR[ !P01Rj l! B0Q(1Q1,1Sf f<1HL!SN Pj l! 0[/BPR[ !0P1R!x z B0Q P 6! __0(1@t vP 0 00@@0P0,8<HLX\ p x z$P0v?10S04D@TPhl` ` 0P0 @ 0p x|dpt;1S 0[/BPR[. !0P1R!x z B0Q P &6p!1R 2011; 0  \  01<$ 04 X408|81S 0[/BPR[ !0P1R!j l B0Q0P 51S 0[/BPR[ d!0P1R!\ ^ B0dQʌ0P 5L1S 0[/BPR[ ,!0PL1RP!N P B0,QTP 51S 0[/BPR[y 0P1R!@ B B0Q>P y50S 0[/BPR[Z 0P0R 2 4 B0Q0P W50S 0[/BPR[; 0P0R $ & B0Qʬ0P 55ߍ X!0\1B!81R(0d1:4T!011  h;d; :::f::0:e(11Ff :.5 5 5 5 5 55%8ff4JfZ7O-M@( ͍ 0@0@ `$BR8P  @@0F@}@^oA A0A4A@ADAhAlAxA|AN:+<;H"P20+;n?L" X"\"T0  0nύR_΍\81S 0[/BPR[J n?0!0R! B0Q2" P+;1 !n+p;d2r t ?D0 48 d2䱍!S2 !011P 3 4S"+;"  0[/ Q[L2S 0[/BPR[ ,"P0L2R P" B0,Qʸ1Q(2  BB1Sڊ?D0p92!Sr tH L" 0[/BPR[ d"0P2R"  B0dQʌ)>P 3X00P 00 00R_΍70S 0[/BPR[ 00 0R! B0Q2" P+; /6+8;d2: < R3< d2!S> )>P ~ _}_P0! +;2 2 ! 93Y>0O 0 0 00΍R_M741S 0[/BPR[F >0!0R8! B0Q<2"P+;41 0!D+F;d2H J 2@ d2P __P0@! +;2 2D! 2 0SR_P 0 000R_6l1S 0[/BPR[R_8R_L!0Rp! B0LQt2"P+;l1 h!R+T;d2V X 24 d2tap!Sz )>P P 0x! +;2 2|! 201@P0`0Pp00(0 ! T0R  0" aHt$!d00  p `d @@& P `8"1R; 20`2d27̂0 \  0&1" 0H |2044L2S 0[/BPR[? ,"0PL2RP"  B0,QT00P 22S 0[/BPR[  !0P2R"  B0Q,0P 11S 0[/BPR[ !0P1R!r t B0Q P 11S 0[/BPR[ !0P1R!d f B0Qʬ>P 1l1S 0[/BPR[ BtL!0Pl1Rp!V X B0LQtP 141S 0[/BPR[ !0P41R8!H J B0Q<P l10S 0[/BPR[h 0P0R!: < B0Q P K10S 0[/BPR[J 0P0R , . B0Q0P )1ߍ2tp18"1R$016"1)>2?!22<81&21!,240T2  C6W6u6(6666$66=n?D06006g>061(2 ?D06R_00>0000(03R_n?000>00$0?D0'3D000R_00>0?D00?R_D00?R_D00>0?D0O-`-pp M ͍X \`CO20t0P+V7C0 7C>Ch  C~? C04Fl .+p + p t v x  0O B"D^r _082<25/w4#N?02 d 022Y 0 B"D#88S| _K082<25K/W4";102 d 022 0 `t0Z` 0BD#((R RP Q PRA Q< _082<2K5,4!R?01 d 0d2M2 000ɠBD  01  000 %0 @ @ j?0  X  0 B"D#88S R 0S 0C?oQ20R00S&_082<24P 3D W10<0  @BB,d$,pH}@d 011P0 /[G 0BD #8B8S( ?0000 0S  R B/oQ" R܀0004!p3"a102 d 011᠀0 10 /  0A q/0YS P [  0P 0030$3 Q 0 P  p>3 F YN J+P;   2p(010N,0I0@"P%fPd; \((ih`+Z XK^[ i\kb{툋")x!+ kp'{ykf{gkH{{ , 0{z z Q  \ ړ ەڷZBk>C= & ) v`x;zkj p+DlK!r[n{tD˰D ˨i#"kq@k& $˩%'<(; , +LK @BB|H~`W dÝ\T  iTk[f+ {;k[h{eKx`rO Kyga `KsaKdl@O K  e ga{l<!$( | 튫 iO  OKa h{agk k {xk yga&h[cm a[;`&ki[;[;$[!;D$;~KD D+ + K+;q;@ p;+r!;C B+b `" +M 0 q @ sZ%TP;+ K-%TP;+ Kcߍ RQPW \~\{^xPUu QRr^\o  RkS0 0CSgP0 0CScy R0S|0C?oQ20R00Sq P0@BA+DA;> ` 3)0CS܀F\/0/0/0/0/0A-(M (0P `p{DC@@D0 @(Ѝ A-!MP`@p1P $0*b S b 0 0+2; 4 6 0[/ P[0S[, 0  0P $0*b S b,1 !J/>+@;$!B D(, 0[/ P[0SJ, $1  0P $0*b S bN/T1X!.L+N;PP R\!`d 0[/ P[0S, \1  (0P(2 $0*b S b.1!f/Z+\;^ `! 0[/ P[0S, 1  ,q0Pu,2 $0*b S bj/1!.h+j;l n! 0[/ P[0S, 1    00CS0S 03#S vO0111 0+;{ 0 .. R 0a v -0P $0 b Sv x b.1"/z |"  0[/ P[0SX,0 00 ɠ0BDPP , S U !0 P 0P0PB4( B8$P  01 PS HBDPP!<Š  ,Q4L<DP 0@B4B88 PP 408 0dɠS BD !1 Q!$0xPh`P ^XB4\B8T P0T 2 loQ0AS!!Q 0"*cR `0P SH d$)b+ PaQQ P0Q`0Q00œR  R QU1 oQY0AS!!Q 0"*cR `0P SH d$)bk  qQ!  0Qp0Q00œVP P@aV1 4oQX0AXS!!Q 0"*cR `0P QH d$)b{  Q!  0S0Q00œWPh `#>0PP 41S 0[/BPR[d !0P1R"z | B0Q?P *1S 0[/BPR[? !0P1R!l n B0Q>P *1S 0[/BPR[ l!0P1R!^ ` B0lQʔf?P *T1S 0[/BPR[ 4!0PT1RX!P R B04Q\>P *1S 0[/BPR[ 0P1R !B D B0Q$J?P ^*0S 0[/BPR[ 0P0R 4 6 B0Q0P <*!ލ + +6 + ,+ (Z+{ +K! SPQ?a 0B4PB80P pQt1 R P{Q?h 0B4|B8Pl0lpt x i8vOX8<pQt/+/Z////>p 0j P`0` p0))Z)))),+)p~TqsA-(M (0P `p{DC@@D0 @.(Ѝ O-@-P`@IMMh0 -P $0*b S b^/1!.\+^;!` b 0[/ P[0S, >11  ,Pf $0*b S b.1!v/j+l;!n p 0[/ P[0S, j?11  Mop !*H *1/ pAA04B0B2D0 910A,h@@D2DL"J20zz/"".ύ $(b,brz2282<241 @"DH81<1b(041 C00P G(4S 0[/BPR[$ #P04R+ B$ B0QB>P %(3S 0[/BPR[ #0P3R#  B0Q?P (!1RS2!!3#0C S+%23'! SR00$ !3.3?\ X0L-lA@ `@\  0V20! 0 10Y*B* 0 ΍0 2@\3?ÍX0* 00 2@ 3?X03*zM?0J?0?`0>d0=ʴ0 =T00@0gHwh Bw?m _`i[(]z `@aHڸ / " @KOONh ONH @N0 T z4`0 Jd zzH@zj z'zg z'zgzzTpR V @aDZ IJTX d\ P 팒`ÍY,(1lz *bzznq ! @ JZ:q; a Zz>z /! / 1J J N b ` )J J N e( ` a( 0P1T1^,@D  0 01x2 0k)T) @a@00@0 SQzP h 0d `d˺)΍ύ jg h+; jzzj&jv&z'=jzgz7zwzGz^zjz@@D`Az?z((2H D  04   6 " $ & ( * , . 0 2 K(0  Te00"h0PS 22%Tz`=z0ހdK.KϺi[d;JKK;cKi;;[Kc ";qc `;툫e+[ ,+ .0k 2kM Mli{M+xik@+k6; ";4+{K v4K wKb6+;bM++bM++{z{zh0`PS j0zpAz@ @ۍzw zg K˰    Ϛ i Ίq+` !; 0@ JZ +Kq+c ` ` ;h iS Zozz~'"(˺ ,˴˴Z˿M X"iaTKKK@ JJJ $k@ [J:%Kb[#[ +e `bL # &: +8 a &8 { )(-q=Wb V;[#+kkKc%+ k K ;b;@;#[;;c +!;M[pW ` +b `Kd;b ; q  p rEXT022* 崐 00 0 㴑T'T'M 0J˰J L z0 00S4 S` `P 0T/NTd5$d X@\hlύ+;P `B"'2S 0[/BPR[ "0P2R"  B0QP $2S 0[/BPR[ "0P2R"  B0Qʴ 1P $t2S 0[/BPR[s T"0Pt2Rx"  B0TQ|1P z$(P 1'4P -'<2S 0[/BPR[@ "0P<2R@"  B0QD1P P$2S 0[/BPR[ !0P2R"| ~ B0Q 1P .$1S 0[/BPR[ !0P1R!n p B 0QBp\NPv?P $1S 0[/BPR[ t!0P1R!` b B0tQʜ>P #= IލЍ @ KJJM[$kWNJ$kM[P0.3\ /3X *)8 'D!D1U 0 C&,&> 1/%j? 1(%"0T`R   %a'PZ4 $0 b S  b/"/.2 " 0[/ P[0Sc, 2  T0d10Z 2@`16)'2S 0[/BPR[J "0P2R"  B0Q/>P~ <#|0t1(! T$j01(B)\)X) ) )# )`)c?)B(T(8T02(T( +" +F:+8;"F:+8;DHF[:k8 ;+"HF[:k8 ;+kF:K8 ;+"F:K8 ;+XT"`" >\0"΄?X0 >\0C%?X0=% "(P v%4PX"\"""%i%>\0?X0>\0?X0>\0?X0T%>\0%?X0G-Rp8M`QP  R&@-  '  Y   0 /20 " $$U @ B"D$88S @!00 0'L  \  06 20 ! $$@1S9 T 0ISA^. 0S+ K00 0'K Z&D 1  |!0 $ $0@!pP @1D  @ X$:"8Ѝ0  R!%@PT 0ISW00 0K'W &? 0  0 e$ N$0Sy0Sv0Sr A$%>$$;$$ 8$$TXDXWXWWWVVxVUUO-MPxp0@㰀  0@@+ ;%@ @0%x X`0R @S0PR0@D04PE @D PEb!0@ Т@AH88آ@ ` jmJFf ?h*n k {B&gDFefmue-k{F kMeu ke jFf hn+ ; D K[" $ J  8HG FE.RA-@! \QL0C pe ` ^ 0S T0@Ⲁz퐊zzwzR0D\&PD PE ` 1 ``0J j`RZzj`RJSj`RjSz7jZzzj%ZuzwZCz6zCz^P T،0 !0z:0Tz'zwz؃1 Tzz'zwz؂0!0 Tz:z'zwz،0 0z:z'zwzG-R-hM`' V V; @thЍCPXP@ pM*eg\0 Jd @PB0j1*ffb&MDJN n @ NpGWP@M e0jJd1*\ff @b&MDJN n @ NCPZp PM%@0 \0phH0 O%8PPE$ei!@U$2J3*uhdFb&dMD-FK[A@@+;45JldFl-FMH+;0*1 b&K[`b-H J+;  N`D@ IHRp@-P \pL0C @`n \ p0S U0zzzwzS0E\@E 1 @D` `0z0 jzSjS'j6ZSzSjvjjCzjR%z7zwzzCS@ Up 1 @Uzzzwzp @ Uzzzwzp  Uzzzwzp 00zzzwzpO-R-lMP+ U UA lЍCXP`@ `pDf`N\0 gJf0*1 (b`%!H-D*F*d @!B n @ N  \L `ጂpF n@ *g^ @ D*f ` d @ DSCP@0@0 i0`D0ND0 efp` Y`@0**1 (buhN%(`BE'lJU'8pB!BeflLb-Nuf@+;!@@F p-H J+;폵  keN`uFwR@-! \QL0C @`e \ 0S ^0@pzzgjzzzS0N\*PN@ PE ` 1 `A`0Z j`RZSjGJjjSzgJzZZZZC`Rj`RGZjzgZzjjjjCTP ^ 0 !z:0^jgzzz 1z* ^jgzzz0!z ^:jgzzz 0 z:gjzzzO-R -AMX8 QP Q[ XkAߍ pCW @ nP*d @\r(L a0@P0*1 )R P2J3jd&ff0J-H1 dF*E`& e @ E d @ D a @ ApGW nP @ a0@0*\1 )R P2J3jd&ff0J-H1 dF*E`& e @ E d @ D a @ AC[ P@ d0H``xp eP \0pLd@E !@U 2j3JiV!@@IT26Xj70jJjDiV9*4248B&j6 7@jFn@m68lej5JdF:k<{3*ui1 )RE(ʭmJU'-&( P.k0{ef*+,; klmD23*lk{ kueMF k@K[ KENU@bF k0*eJ1 b&uIlmF`b-Hk { khMH"+$; JK[  8HG FERA-P" \AL0C pd ` ^ 0S U0@Ⲁz퐊gjzzzR0E\*@E @D ` 1 ``0J j`RJSj`RF*Zj`RZSjf*G:g:jjzzJJJZJCZZZC^@ U،0 !0z:0Ujgzzz؃1 Uzjgzzz؂0!0 Uz:jgzzz،0 0z:gjzzzO-R-*@;j`=J!BaF @ADb&`< ff@dF`-BmF @MDb`? j@`i @ `ML@ NmJK[ k{ JIjRp@-P \pL0C @`n \ p0S U0zzzzS0E\@E 1 @D` `0z0 ZRjjSjzzSjjjCjjRzzzzC^@ Up 1 @Uzzzzp @ Uzzzzp  Uzzzzp 00zzzzpO-R-lM`0 VP@ VG @lЍS@C P eNpL0 jh UᏪg0*1 n (bh%!F@-B @-J*G*l B L  \pL qᇂ@PL*d -B^Je d @-D*E*l B L S@C0 0 i0PNN0L0 %p P Y`0*E*1 (b(L%U(`BBeg!BLug8p-B%lDb-H%N@+;!@@L-B @nFlJb-L` N Kp+;  kE UeL`uElR@-! \QL0C @`e \ 0S ^0@pzg+ S0N\*PN @ PE `1 `A` 0[S j`RKSj;S+S G{gk[K[CKC`Rj`RG[jgK ;+;C+CTP ^ 0!:0^+g  1* ^+g 0! ^:+g  0:g+ - MPw ЍRA-P" \AL0C pd ` ^ 0S U0@Ⲁ퐊g+ R0E\*@E @D `1 `` 0{S j`RkSj`RF[Sj`RKSj;f+Gg {k{C[kCK[CKC^@ U،0!0:0U+g ؃1 U+g ؂0!0 U:+g ،00:g+ - MPr ЍSG- $@(( \!PNaLP p@A f\ 0S T 0z퐪fjzzzS0E\4pE` pG `0 ` @ 1j@0TjS퐊^DJzTzS퐊EZZJ%j$jjCj^TEZ^VT吊ZFjj%z&zzzCp U 0 z: 0j:0UGzzz0jz:0UGzzz U1jzGzzz 0 !z: 0fj:zzzO-S-M \!@ R Ri \!X PЍX!pBW @n P b `jd@\Jb0 @aFAD6*47 )R5J P2J3jd&ff0J-H1 dF*D`& d @ D e @ E b @ BX pGW @ nP d @\Jb0*1 0 4j@5J)R P2J3jd&ff0J-H1 dF*E`& e @ E d @ D b @ BX!R B @ `0 p  E.0LL 0HP`@0p f0 e``[U.xu`!@2*@*j!iX5jMJ E!h(K*[7JU!6 dFhmD@dMFk{?@ eh^ K"[2Jue dF, .*< =3* P|RMFb&0 461*@K[bdB&n@@N> ?@02n pH B 46<  =@lBHmJ D$&k{  LA@ HE DNy SO-$(,* \ᄀ!N QL@ p@A e` T 0S Y0ರz퐺fjzzzR 0I\5`I@ `FPp p@ 1PpJ@0zpTZSzp^B*zzpTzSzp^*zpTzp^UC:zpTz:dJZFjj"J#ZJzZC&zzzC` Y،0 @0z:0JYGzjzz؃@1PY@zZJjGzzz؎0@ Y0zJ:jGzzz،0 0z*:fjzzzO-S-M6 ZP ZU LЍ\@LP p` e0 MjgXMJfpRn ADaF46*jb&7 5J`-BdF-H @*L*l B L \Lp@`QrM dMjf0*1 T6Jnb& h7j`-Bff-D @*L*l B L\L0p` hP@0L0 Med X0p0`pRMe%Oudp@Ou%!@PL2A@n k@@4ʐ53JLƻdFl!@E)~ L$K&[U%@en23L-DunJF+;J*dFnb&tMJ0 1 -N`@lJp HLdMF l HK[  J  @IE L`NBSC-p $@"  T  @DpG@p P`T ` P0S X0zjzzzS0GT%`G1`FP0Qz0Zz^Z^jjS'jzzS%jjjCZj UZ^j^%z&zzzC`@@W1`P Wzjzzz P ` Wzjzzz@ P Wzjzzz 0 0jzzzzO-S-ML? PP@ P] LHhЍH@X@PpE`D⏊n˂jg PᏪfmFˀ2* 2*0 (b0 %`!F-H*Ljd @*e P-BjlB F LH P@ p@PrE`D l*n Jf W-B @ N e P*d @-@ n @ NH@Z0@0 0D0L ehD0p`P P`@፥! E)2*uhL2*! (bU(hvmJkH`% Kj`|LaBE'HpH KB~N%*,!B k0 uf0 %P` k k {mFE!.k0{k{-FU!2+4;+;-B kxPeI!@uHb-D kmJ+ ;-H!@@b-F` H"+$;& ( keL`uA 4SO-$(`,( \!LN pIAhP\P0S V 0@ g+*  S0F\4F J 0  @1 0p^@␺PT;Sg{+SSkz Sg[ZK;+;C+C^Tp^YᐺPTg[Kzg;Z+ C C V A 0 +:0Vg @Q0 VJ+g @1 VJ +g ! 0 g+: @-M@@ZЍSO-$(,* \ᄐ! aLNA P@fp@ U@0S Z0 g+  Q 0J\5J@ IP P@1pⲰ^@`^ 0zpTPTj`^zpTfXZPT{SKSS Sgkz[jg;ZG+{K{CKC C C Z،0Q@0 ZJ+g ؃@1PZ@ Z+Jg ؎0@ Z0 J+:g ،0 0 *g+: @-M@@SЍSG- $(& \A!qL`N ` gP V P 0S X0@zz*   R0H\-`H A `FPp p@1QJ@ 0ZjzUJTZTjTzTĺ{SKSS SŚjZ:*{K{CKC C C` X 1A0 zXz* 1P@ 0Xzz* 1@  Xzz* 1! zz* @-M@@_ЍSC-p $@"  T  @DpG∑@p P`T ` P0S X0 +  S0GT%`G1`F P0Q 0[\^K^;S+S;S S+;C+C[\;\ UK^+^ C C`@@W؄1`P W +  P ` W + @ P W + 0 0+ @-M@@sЍjRp@- jv! \pPNL0C @Q\p0S ^ @0z`Rzgjzzz0N\*@N @D P` 1 `!Z0`Pjj`UZfzjzSj&JZZjZCz&j`Uzfj`UjZjzzzzCR@ ^p ! 0z:0zf^zzzp!0z:0zf^zzzp!0z ^:zfzzzp  0z:jfzjjp RA-M@ p @oЍpGW-{@{GGP jn `mF@ e0PT0Jn1*fMD:J e;j89DFFfjh~M~m-B @JHmFMD-B @jL@JN*F E@jRA-P jv" \aL0C pf @ ^ 0S U@0zzgzzzR0E\*E N@` 1 `!`0ZS@j`TjzzSj`TZfj`Tjj&z&zf:JJZZjZCzjzzzCR U 0zU zf*zzz0 zU0zf:zzz1 z U zf*zzz z0jf:zjj R@- M p p k Ѝ \"{L`@Qb{GGM d0j*l1JTff ldF-BmFMD @-B @*N LE ЍzRp@-P @z7 \pL0C @`n\p0S U 0zjzgRzz0E\#@E 1 @D` `0Z0 j%ZgJRZjSzSj'ZjZC&jgjZR'zgjjzjCzC^@ Up 1 @Uzj'zg&zzp @ Uzj'zg&zzp  Uzj'zg&zzp 00zj'z'zzp RA-M p p xЍ \!{`L @aᆂ{GlG,PD l @ Je MD\ @ NJd @MD n @ @ NSЍ?=;97531/-+)'%#!   /,08 (0@-@ * \p@-@PPTp8RB` PR R@&DpT@E@T B@dT@0BUo @ 0T@CUT@BT*p~|zxvp@-P`@oPp0S@DTpP Aopp@-P@`XP 0SDPp@OQ Bo@-D@-?@-:@-5@-0p@-P@(Pp0SDPppp@-P@P 0SDPp@p@-P@P 0SDPp@0S P P P0S P Q*\#30S Q @-P P P @-@ zzG 00g 0S `  z  /0S\0BRSQ/R R R \ Q0SP/ @--0 )z;*G q`z  B+Z :*aKktK&b[KZ[1k%+ {tg[P S O@LIp@-@-P 0S@` S S :p@8hzzG00g0S 'P `a*** SZ::CJcJ(JTp@ZjkCS @ ꚙ?p@-@-P 0S@` S S p@hzzG00g0S P `a*** SZ::CJcJ(JTp@ZjkCS @ ꚙ? @-9 50:G+ r`z a;;PB;;&ZJa[KuakkTb[kZk2a++F;uH[R R \^SP @\^SP -D @0: g+q:`KKRA+K2Zja[;5`{&{ScK{%Z[1`#E+{5& GK*  \^ࠓࠃS00Q0 R+A-@p`P#P0SP"P VUGPG-$`(P4pDH@P 0SP  RVUPGGP@-accumulateaccumulateSquareaccumulateProductaccumulateWeightedvoid cv::accumulateWeighted(cv::InputArray, cv::InputOutputArray, double, cv::InputArray)void cv::accumulateProduct(cv::InputArray, cv::InputArray, cv::InputOutputArray, cv::InputArray)void cv::accumulateSquare(cv::InputArray, cv::InputOutputArray, cv::InputArray)void cv::accumulate(cv::InputArray, cv::InputOutputArray, cv::InputArray) -D HAVE_MASK -D DOUBLE_SUPPORT-D %s%s -D srcT1=%s -D cn=%d -D dstT1=%s%s -D rowsPerWI=%d -D convertToDT=%saccumulate_src.sameSize(_dst) && dcn == scn/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/accum.cpp_mask.empty() || (_src.sameSize(_mask) && _mask.type() == 0)func != 0_src1.sameSize(_src2) && stype == _src2.type()_src1.sameSize(_dst) && dcn == scn_mask.empty() || (_src1.sameSize(_mask) && _mask.type() == 0)ACCUMULATEACCUMULATE_SQUAREACCUMULATE_PRODUCTACCUMULATE_WEIGHTEDicvApproximateChainTC89cvApproxChainsapproxPolyDPMatcvApproxPolyvoid cv::approxPolyDP(cv::InputArray, cv::OutputArray, double, bool)((((chain)->flags & (((1 << 2) - 1)<<12) ) == (1 << 12) && (chain)->elem_size == 1) && (((chain)->flags & (1 << (2 + 12))) != 0))/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/approx.cppheader_size >= (int)sizeof(CvContour)npoints >= 0 && (depth == 4 || depth == 5)total() == 0 || data != __null/home/hisilicon/OpenCV3.3/sources/modules/core/include/opencv2/core/mat.inl.hppUnsupported sequence typeNULL storage pointer header_size is negative. Pass 0 to make the destination header_size == input header_sizeInput curves are not polygonal. Use cvApproxChains firstInput curves have uknown typeNew header size must be non-less than sizeof(CvContour)Unknown approximation methodAccuracy must be non-negative((src_seq)->flags & ((1 << 12) - 1)) == (((4) & ((1 << 3) - 1)) + (((2)-1) << 3)) || ((src_seq)->flags & ((1 << 12) - 1)) == (((5) & ((1 << 3) - 1)) + (((2)-1) << 3))Invalid approximation methodN2cv18BlendLinearInvokerIhEEN2cv18BlendLinearInvokerIfEEblendLinearvoid cv::blendLinear(cv::InputArray, cv::InputArray, cv::InputArray, cv::InputArray, cv::OutputArray)depth == 0 || depth == 5/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/blend.cppsize == _src2.size() && size == _weights1.size() && size == _weights2.size()type == _src2.type() && _weights1.type() == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3)) && _weights2.type() == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3))-D T=%s -D cn=%d -D convertToT=%sblendLinearvirtual void cv::parallelCanny::operator()(const cv::Range&) constN2cv13parallelCannyEN2cv9finalPassECannycvCannyCannyvoid cv::Canny(cv::InputArray, cv::InputArray, cv::OutputArray, double, double, bool)void cv::Canny(cv::InputArray, cv::OutputArray, double, double, int, bool)deque::_M_new_elements_at_backdeque::_M_new_elements_at_front -D L2GRAD_src.depth() == 0/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/canny.cpp(_dst.getObj() != _src.getObj() || _src.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3))) && "Inplace parameters are not supported"Aperture size should be odd between 3 and 7-D WITH_SOBEL -D cn=%d -D TYPE=%s -D convert_floatN=%s -D floatN=%s -D GRP_SIZEX=%d -D GRP_SIZEY=%d%sstage1_with_sobel-D WITHOUT_SOBEL -D cn=%d -D GRP_SIZEX=%d -D GRP_SIZEY=%d%sstage1_without_sobel-D STAGE2 -D PIX_PER_WI=%d -D LOCAL_X=%d -D LOCAL_Y=%dstage2_hysteresis-D GET_EDGES -D PIX_PER_WI=%dgetEdgessrc.size == dst.size && src.depth() == 0 && dst.type() == 0_dx.dims() == 2_dx.type() == (((3) & ((1 << 3) - 1)) + (((1)-1) << 3)) || _dx.type() == (((3) & ((1 << 3) - 1)) + (((3)-1) << 3))_dy.type() == _dx.type()_dx.sameSize(_dy)OpenCLfinalPassglobal_hysteresishysteresismagnitudegradientN2cv6detail8PtrOwnerEN2cv5CLAHEEapply virtual void {anonymous}::CLAHE_Impl::apply(cv::InputArray, cv::OutputArray)*N12_GLOBAL__N_110CLAHE_ImplE*N12_GLOBAL__N_118CLAHE_CalcLut_BodyIhLi256ELi0EEE*N12_GLOBAL__N_118CLAHE_CalcLut_BodyItLi65536ELi0EEE*N12_GLOBAL__N_124CLAHE_Interpolation_BodyIhLi0EEE*N12_GLOBAL__N_124CLAHE_Interpolation_BodyItLi0EEE*N2cv6detail12PtrOwnerImplIN12_GLOBAL__N_118CLAHE_CalcLut_BodyIhLi256ELi0EEENS_14DefaultDeleterIS4_EEEE*N2cv6detail12PtrOwnerImplIN12_GLOBAL__N_118CLAHE_CalcLut_BodyItLi65536ELi0EEENS_14DefaultDeleterIS4_EEEE*N2cv6detail12PtrOwnerImplIN12_GLOBAL__N_124CLAHE_Interpolation_BodyIhLi0EEENS_14DefaultDeleterIS4_EEEE*N2cv6detail12PtrOwnerImplIN12_GLOBAL__N_124CLAHE_Interpolation_BodyItLi0EEENS_14DefaultDeleterIS4_EEEE*N2cv6detail12PtrOwnerImplIN12_GLOBAL__N_110CLAHE_ImplENS_14DefaultDeleterIS3_EEEE_src.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3)) || _src.type() == (((2) & ((1 << 3) - 1)) + (((1)-1) << 3))/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/clahe.cppcalcLut-D CPU -D WAVE_SIZE=%dtransformUnsupported typevoid cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::mRGBA2RGBA]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGBA2mRGBA]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::Luv2RGB_f]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::Luv2RGB_b]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::Lab2RGB_f]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::Lab2RGB_b]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB2Luv_f]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB2Luv_b]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB2Lab_f]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB2Lab_b]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::HLS2RGB_f]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::HLS2RGB_b]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::HSV2RGB_f]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::HSV2RGB_b]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB2HLS_f]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB2HLS_b]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB2HSV_f]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB2HSV_b]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::XYZ2RGB_f]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::XYZ2RGB_i]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::XYZ2RGB_i]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB2XYZ_f]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB2XYZ_i]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB2XYZ_i]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::YCrCb2RGB_f]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::YCrCb2RGB_i]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::YCrCb2RGB_i]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB2YCrCb_f]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB2YCrCb_i]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB2YCrCb_i]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::Gray2RGB5x5]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB5x52Gray]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::Gray2RGB]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::Gray2RGB]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::Gray2RGB]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB2Gray]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB2Gray]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB2Gray]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB5x52RGB]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB2RGB5x5]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB2RGB]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB2RGB]void cv::CvtColorLoop_Invoker::operator()(const cv::Range&) const [with Cvt = cv::RGB2RGB]29TegraCvtColor_rgb2bgr_Invoker30TegraCvtColor_rgb2bgrx_Invoker30TegraCvtColor_rgb2rgbx_Invoker30TegraCvtColor_rgbx2bgr_Invoker30TegraCvtColor_rgbx2rgb_Invoker31TegraCvtColor_rgbx2bgrx_Invoker32TegraCvtColor_rgb2bgr565_Invoker32TegraCvtColor_rgb2rgb565_Invoker33TegraCvtColor_rgbx2bgr565_Invoker33TegraCvtColor_rgbx2rgb565_Invoker30TegraCvtColor_rgb2gray_Invoker30TegraCvtColor_bgr2gray_Invoker31TegraCvtColor_rgbx2gray_Invoker31TegraCvtColor_bgrx2gray_Invoker30TegraCvtColor_gray2rgb_Invoker31TegraCvtColor_gray2rgbx_Invoker31TegraCvtColor_rgb2ycrcb_Invoker31TegraCvtColor_bgr2ycrcb_Invoker32TegraCvtColor_rgbx2ycrcb_Invoker32TegraCvtColor_bgrx2ycrcb_Invoker29TegraCvtColor_rgb2hsv_Invoker29TegraCvtColor_bgr2hsv_Invoker30TegraCvtColor_rgbx2hsv_Invoker30TegraCvtColor_bgrx2hsv_Invoker30TegraCvtColor_rgb2hsvf_Invoker30TegraCvtColor_bgr2hsvf_Invoker31TegraCvtColor_rgbx2hsvf_Invoker31TegraCvtColor_bgrx2hsvf_InvokerN2cv20CvtColorLoop_InvokerINS_7RGB2RGBIhEEEEN2cv20CvtColorLoop_InvokerINS_7RGB2RGBItEEEEN2cv20CvtColorLoop_InvokerINS_7RGB2RGBIfEEEEN2cv20CvtColorLoop_InvokerINS_10RGB2RGB5x5EEEN2cv20CvtColorLoop_InvokerINS_10RGB5x52RGBEEEN2cv20CvtColorLoop_InvokerINS_8RGB2GrayIhEEEEN2cv20CvtColorLoop_InvokerINS_8RGB2GrayItEEEEN2cv20CvtColorLoop_InvokerINS_8RGB2GrayIfEEEEN2cv20CvtColorLoop_InvokerINS_8Gray2RGBIhEEEEN2cv20CvtColorLoop_InvokerINS_8Gray2RGBItEEEEN2cv20CvtColorLoop_InvokerINS_8Gray2RGBIfEEEEN2cv20CvtColorLoop_InvokerINS_11RGB5x52GrayEEEN2cv20CvtColorLoop_InvokerINS_11Gray2RGB5x5EEEN2cv20CvtColorLoop_InvokerINS_11RGB2YCrCb_iIhEEEEN2cv20CvtColorLoop_InvokerINS_11RGB2YCrCb_iItEEEEN2cv20CvtColorLoop_InvokerINS_11RGB2YCrCb_fIfEEEEN2cv20CvtColorLoop_InvokerINS_11YCrCb2RGB_iIhEEEEN2cv20CvtColorLoop_InvokerINS_11YCrCb2RGB_iItEEEEN2cv20CvtColorLoop_InvokerINS_11YCrCb2RGB_fIfEEEEN2cv20CvtColorLoop_InvokerINS_9RGB2XYZ_iIhEEEEN2cv20CvtColorLoop_InvokerINS_9RGB2XYZ_iItEEEEN2cv20CvtColorLoop_InvokerINS_9RGB2XYZ_fIfEEEEN2cv20CvtColorLoop_InvokerINS_9XYZ2RGB_iIhEEEEN2cv20CvtColorLoop_InvokerINS_9XYZ2RGB_iItEEEEN2cv20CvtColorLoop_InvokerINS_9XYZ2RGB_fIfEEEEN2cv20CvtColorLoop_InvokerINS_9RGB2HSV_bEEEN2cv20CvtColorLoop_InvokerINS_9RGB2HSV_fEEEN2cv20CvtColorLoop_InvokerINS_9RGB2HLS_bEEEN2cv20CvtColorLoop_InvokerINS_9RGB2HLS_fEEEN2cv20CvtColorLoop_InvokerINS_9HSV2RGB_bEEEN2cv20CvtColorLoop_InvokerINS_9HSV2RGB_fEEEN2cv20CvtColorLoop_InvokerINS_9HLS2RGB_bEEEN2cv20CvtColorLoop_InvokerINS_9HLS2RGB_fEEEN2cv20CvtColorLoop_InvokerINS_9RGB2Lab_bEEEN2cv20CvtColorLoop_InvokerINS_9RGB2Lab_fEEEN2cv20CvtColorLoop_InvokerINS_9RGB2Luv_bEEEN2cv20CvtColorLoop_InvokerINS_9RGB2Luv_fEEEN2cv20CvtColorLoop_InvokerINS_9Lab2RGB_bEEEN2cv20CvtColorLoop_InvokerINS_9Lab2RGB_fEEEN2cv20CvtColorLoop_InvokerINS_9Luv2RGB_bEEEN2cv20CvtColorLoop_InvokerINS_9Luv2RGB_fEEEN2cv22YUV420sp2RGB888InvokerILi0ELi0EEEN2cv22YUV420sp2RGB888InvokerILi0ELi1EEEN2cv22YUV420sp2RGB888InvokerILi2ELi0EEEN2cv22YUV420sp2RGB888InvokerILi2ELi1EEEN2cv24YUV420sp2RGBA8888InvokerILi0ELi0EEEN2cv24YUV420sp2RGBA8888InvokerILi0ELi1EEEN2cv24YUV420sp2RGBA8888InvokerILi2ELi0EEEN2cv24YUV420sp2RGBA8888InvokerILi2ELi1EEEN2cv21YUV420p2RGB888InvokerILi0EEEN2cv21YUV420p2RGB888InvokerILi2EEEN2cv23YUV420p2RGBA8888InvokerILi0EEEN2cv23YUV420p2RGBA8888InvokerILi2EEEN2cv22RGB888toYUV420pInvokerILi0ELi1EEEN2cv22RGB888toYUV420pInvokerILi2ELi1EEEN2cv22RGB888toYUV420pInvokerILi0ELi2EEEN2cv22RGB888toYUV420pInvokerILi2ELi2EEEN2cv21YUV422toRGB888InvokerILi0ELi0ELi0EEEN2cv21YUV422toRGB888InvokerILi0ELi0ELi1EEEN2cv21YUV422toRGB888InvokerILi0ELi1ELi0EEEN2cv21YUV422toRGB888InvokerILi2ELi0ELi0EEEN2cv21YUV422toRGB888InvokerILi2ELi0ELi1EEEN2cv21YUV422toRGB888InvokerILi2ELi1ELi0EEEN2cv23YUV422toRGBA8888InvokerILi0ELi0ELi0EEEN2cv23YUV422toRGBA8888InvokerILi0ELi0ELi1EEEN2cv23YUV422toRGBA8888InvokerILi0ELi1ELi0EEEN2cv23YUV422toRGBA8888InvokerILi2ELi0ELi0EEEN2cv23YUV422toRGBA8888InvokerILi2ELi0ELi1EEEN2cv23YUV422toRGBA8888InvokerILi2ELi1ELi0EEEN2cv20CvtColorLoop_InvokerINS_10RGBA2mRGBAIhEEEEN2cv20CvtColorLoop_InvokerINS_10mRGBA2RGBAIhEEEEH YNyqH YNyq?jq=ʾJ @?6 ?#%L!8}#%L-$#%L!8}#%L-$>E?x=`?m>>E?x=+6?Nb?>E?x=#%LMat#%LRGB2HSV_bRGB2Lab_bRGB2Lab_fRGB2LuvfloatLuv2RGBfloatcvtTwoPlaneYUVtoBGRcvtThreePlaneYUVtoBGRcvtBGRtoThreePlaneYUVcvtOnePlaneYUVtoBGRocl_cvtColorcvtColor ->>8>mY>7?W͓=Vb= 0 && coeffs[i*3+1] >= 0 && coeffs[i*3+2] >= 0 && coeffs[i*3] + coeffs[i*3+1] + coeffs[i*3+2] < 2*(1 << xyz_shift)c[0] >= 0 && c[1] >= 0 && c[2] >= 0 && c[0] + c[1] + c[2] < softfloat((int)LAB_CBRT_TAB_SIZE)coeffs[i*3] >= 0 && coeffs[i*3+1] >= 0 && coeffs[i*3+2] >= 0 && softfloat(coeffs[i*3]) + softfloat(coeffs[i*3+1]) + softfloat(coeffs[i*3+2]) < softfloat(1.5f)whitePt[1] == softdouble::one()Unknown/unsupported color conversion codeREVERSEORDER -D SRC_CONT -D USE_OPTIMIZED_LOADHLSRGBA2mRGBAmRGBA2RGBALuvLab -D SRGB-D depth=%d -D scn=%d -D PIX_PER_WI_Y=%d scn == 3 || scn == 4-D dcn=%d -D bidx=0 -D %s(dcn == 3 || dcn == 4) && scn == 2 && depth == 0-D dcn=%d -D bidx=%d -D greenbits=%dRGB5x52RGB(scn == 3 || scn == 4) && depth == 0-D dcn=2 -D bidx=%d -D greenbits=%dRGB2RGB5x5scn == 2 && depth == 0-D dcn=1 -D bidx=0 -D greenbits=%dBGR5x52Grayscn == 1 && depth == 0-D dcn=2 -D bidx=0 -D greenbits=%dGray2BGR5x5-D dcn=1 -D bidx=%d -D STRIPE_SIZE=%dRGB2Grayscn == 1-D bidx=0 -D dcn=%dGray2RGB-D dcn=3 -D bidx=%dRGB2YUVdcn == 3 || dcn == 4-D dcn=%d -D bidx=%dYUV2RGBsz.width % 2 == 0 && sz.height % 3 == 0 && depth == 0-D dcn=%d -D bidx=%d -D uidx=%dYUV2RGB_NVx-D dcn=%d -D bidx=%d -D uidx=%d%sYUV2RGB_YV12_IYUVsz.width % 2 == 0 && sz.height % 2 == 0-D dcn=%d -D bidx=%d -D uidx=%d -D PIX_PER_WI_X=%dRGB2YUV_YV12_IYUV-D dcn=%d -D bidx=%d -D uidx=%d -D yidx=%d%sYUV2RGB_422RGB2YCrCbscn == 3 && (dcn == 3 || dcn == 4)YCrCb2RGBRGB2XYZXYZ2RGB(scn == 3 || scn == 4) && (depth == 0 || depth == 5)RGB2-D hrange=%d -D bidx=%d -D dcn=3RGB2HSV-D hscale=%ff -D bidx=%d -D dcn=3scn == 3 && (dcn == 3 || dcn == 4) && (depth == 0 || depth == 5)-D dcn=%d -D bidx=%d -D hrange=%d -D hscale=%ffscn == 4 && depth == 0-D dcn=4 -D bidx=3BGR2%s-D dcn=%d -D bidx=%d%sc0 >= 0 && c1 >= 0 && c2 >= 0 && c0 + c1 + c2 < (lab ? softfloat((int)LAB_CBRT_TAB_SIZE) : softfloat(3)/softfloat(2))%s2BGRdepth == 0 || depth == 2 || depth == 5scn == 1 && (dcn == 3 || dcn == 4)scn == 4 && dcn == 4 && depth == 0src.depth() == dst.depth()dst.data == dst0.dataN2cv8colormap8ColorMapEN2cv8colormap6AutumnEN2cv8colormap4BoneEN2cv8colormap3JetEN2cv8colormap6WinterEN2cv8colormap7RainbowEN2cv8colormap5OceanEN2cv8colormap6SummerEN2cv8colormap6SpringEN2cv8colormap4CoolEN2cv8colormap3HSVEN2cv8colormap4PinkEN2cv8colormap3HotEN2cv8colormap6ParulaEN2cv8colormap12UserColorMapEinitargsortsortMatrixRowsByIndicesoperator()applyColorMapinterp1)"=)===)">,K>=s>8>)>n۶>,>}>=>A?8?a?)"?˲,?n6?A?,K?UUU?}_?i?=s?}???????????????????????????????????????!=%I=9=i>1 C>k>(>y>-˲>r>m>>!?0 ?fY? ?*?M4?>?$I?5MS?u]?zg?q?{??????????????!%I>)">-2>1 C>5MS>9c>=s>!>(>%I>i>)>>-˲>>1 >,>5M>m>9>>=>>!?b?( ?8?%I?fY?i?y?)"?j&?*?.?-2?n6?:?>?1 C?rG?,K??A?1 C?QE?rG?$I?,K?4M?>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>9c<9<*=9c=8==r=9=>8>q>*>8>rG>UUU>9c>q>>r>8>UU>q>9>>DZ>>>r>8>UU>q>9>>>>?9?r? ?8??UU??q? ?9#?r'?0,?1?v]7?8>q>*>8>rG>UUU>9c>q>>r>8>UU>q>9>>>R>$>>w>j>\l>O>>!?? ? ???}?f$?O)?8.?!3? 8?'> 0>fD> X>k>R>B{>5M>'>> ð>>f>8> >>>>>?9?r? ?8??UU??q? ?9#?r'?*?8.?1?UU5?8?q>>??333?L?fff???33s?fff?Y?L?@?333?ff&?? ???{?~w?=s?o?k?zg?9c?}_?m[?v]W?5MS??:?n6?-2?.?*?j&?)"?y?i?fY?%I?8?( ?b?!?>=>>9>m>5M>,>1 >>-˲>>)>i>%I>(>!>=s>9c>5MS>1 C>-2>)">%I>!>9=1 =)=!=1 C=!=!< >9c>HY>>>>>9>[>3j>j?HY ? ??? ?%?*?W/?3?PW8?٭Js6>R>يk> >HY>W>>>Ӯ>Js>|>>V>>(>t> >ي>[> >P>LY?.j?8?:?-?9_?f#?G(?S-?1?!"6?υ:?>?ZC?rG?K"K?$O?R?7V?e|Z?(^?Ra?Se?h?j?Fl?m?1o?ģp?r?,s?t? Vv?`w?"y?z?[{?F}?T~??=W>Js6>R>يk> >HY>W>>>Ӯ>Js>|>>V>>(>t> >ي>[> >P> ??G?w?HY ? ?Z=??W?G? ???/ ?V"?au$?&?h(?*?,?Ӯ.?#0?ޛ2?14?yG9?>?/D?skI?N?2S?\X?~]?Ra?Uf?j?1o?,s?`w?[{????????????????????????????o?m[?rG?-2?y?( ?>1 >i>9c>%I>!=!=+`=# >1 C>>:y>&>-˲>3>:>!??'?*?)"=)===)">,K>=s>8>)>n۶>,>}>=>A?8?a?)"?˲,?n6?A?,K?UUU?}_?i?=s?}?????????????{?zg?5MS?>?*?fY?!?m>-˲>(>1 C>9=!=!<1 =-2>!>>5M>>%I?j&?:?TA<.=<`>\?#Y?|?y?(>'>?'?^9?w??:?N?{?†?a?T?F??y>>Ǻ8>`=???????????=s?m[?1 C?*?%I?=>1 >%I>1 C>1 =1 =1 C>%I>1 >=>%I?*?1 C?m[?=s????????????1 =1 C>%I>1 >=>%I?*?1 C?m[?=s??????????????????????=s?m[?1 C?*?%I?=>1 >%I>1 C>1 =1 =1 C>%I>1 >=>%I?*?1 C?m[?=s??????????????????????=s?m[?1 C?*?%I?=>1 >%I>1 C>1 =1 C=1 =%I>1 C>=s>%I>>1 >m>=>b?%I?y?*?n6?1 C?*>1 C>m[>=s>b>%I>y>>n۶>1 ><>m>z>=>?b?0 ?%I?a?y?I$?*? 0?n6?>&>6>F>V>f>v>>>>>>>>>>>>>>>>>?? ??????"""?&&&?***?...?222?666?:::?>>>?BBB?FFF?JJJ?NNN?RRR?VVV?ZZZ?^^^?bbb?fff?jjj?nnn?rrr?vvv?zzz?~~~?????????????????????????????????????????????????????????????????|||?xxx?ttt?ppp?lll?hhh?ddd?```?\\\?XXX?TTT?PPP?LLL?HHH?DDD?@@@?<<>">2>B>R>b>r>>>>>>>>>>>>>>>>>?? ? ?????!!!?%%%?)))?---?111?555?999?===?AAA?EEE?III?MMM?QQQ?UUU?YYY?]]]?aaa?eee?iii?mmm?qqq?uuu?yyy?}}}?????????????????????????????????????????????????????????????????}}}?yyy?uuu?qqq?mmm?iii?eee?aaa?]]]?YYY?UUU?QQQ?MMM?III?EEE?AAA?===?999?555?111?---?)))?%%%?!!!????? ? ???>>>>>>>>>>>>>>>>r>b>R>B>2>">>>====H==<;??? ????? ?$$$?(((?,,,?000?444?888?<<>>?:::?666?222?...?***?&&&?"""?????? ???>>>>>>>>>>>>>>>>v>f>V>F>6>&>>>====X==<;applyColorMapvoid cv::colormap::ColorMap::operator()(cv::InputArray, cv::OutputArray) constunused method in UserColormap init(%d)./home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/colormap.cppcv::argsort only sorts 1D matrices.cv::sortRowsByIndices only works on integer indices!cv::LUT only supports tables of size 256.cv::ColorMap only supports source images of type CV_8UC1 or CV_8UC3cv::LUT only supports tables CV_8UC1 or CV_8UC3.(x.type() == Y.type()) && (Y.type() == xi.type())(x.cols == 1) && (x.rows == Y.rows) && (x.cols == Y.cols)Unknown colormap id; use one of COLORMAP_*N2cv19connectedcomponents18LabelingWuParallelIihNS0_4NoOpEE22FirstScan8ConnectivityEN2cv19connectedcomponents18LabelingWuParallelIihNS0_4NoOpEE22FirstScan4ConnectivityEN2cv19connectedcomponents18LabelingWuParallelIihNS0_4NoOpEE10SecondScanEN2cv19connectedcomponents21LabelingGranaParallelIihNS0_4NoOpEE9FirstScanEN2cv19connectedcomponents21LabelingGranaParallelIihNS0_4NoOpEE10SecondScanEN2cv19connectedcomponents18LabelingWuParallelIihNS0_9CCStatsOpEE22FirstScan8ConnectivityEN2cv19connectedcomponents18LabelingWuParallelIihNS0_9CCStatsOpEE22FirstScan4ConnectivityEN2cv19connectedcomponents18LabelingWuParallelIihNS0_9CCStatsOpEE10SecondScanEN2cv19connectedcomponents21LabelingGranaParallelIihNS0_9CCStatsOpEE9FirstScanEN2cv19connectedcomponents21LabelingGranaParallelIihNS0_9CCStatsOpEE10SecondScanEoperator()operator()connectedComponents_sub1operator()operator()operator()operator()connectedComponentsoperator()operator()connectedComponents_sub1operator()operator()operator()operator()connectedComponentsWithStatsimg.rows == imgLabels.rows/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/connectedcomponents.cppimg.cols == imgLabels.colsconnectivity == 8vector::_M_fill_insertL.channels() == 1 && I.channels() == 1connectivity == 8 || connectivity == 4ccltype == CCL_GRANA || ccltype == CCL_WU || ccltype == CCL_DEFAULTiDepth == 0 || iDepth == 1imgLabels.rows == img.rowsimgLabels.cols == img.colsunsupported label/image typethe type of labels must be 16u or 32sN2cv6detail12PtrOwnerImplI12CvMemStorageNS_14DefaultDeleterIS2_EEEEcvStartFindContours_ImplicvFindContoursInIntervalcvStartReadChainPointscvReadChainPointcvSubstituteContourcvFindNextContouricvTraceContour_32sicvTraceContouricvFetchContouricvFetchContourEx_32sicvFetchContourExcvEndFindContourscvFindContours_ImplfindContoursSeqvoid cv::findContours(cv::InputOutputArray, cv::OutputArrayOfArrays, int, int, cv::Point)void cv::findContours(cv::InputOutputArray, cv::OutputArrayOfArrays, cv::OutputArray, int, int, cv::Point)/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/contours.cpp[Start]FindContours supports only CV_8UC1 images when mode != CV_RETR_FLOODFILL otherwise supports CV_32SC1 images onlystep >= 0size.height >= 1NULL storage pointerNULL double CvSeq pointerContour header size must be >= sizeof(CvContour)Input array must be 8uC1 or 8sC1scanner->img_step >= 0ptr != __nulli3 != __nulli4 != __nullpar_info != 0Nonzero offset is not supported in CV_LINK_RUNS yet(_contours.kind() == _InputArray::STD_VECTOR_VECTOR || _contours.kind() == _InputArray::STD_VECTOR_MAT || _contours.kind() == _InputArray::STD_VECTOR_UMAT)_contours.empty() || (_contours.channels() == 2 && _contours.depth() == 4)!_seq || _seq->elem_size == sizeof(_Tp)/home/hisilicon/OpenCV3.3/sources/modules/core/include/opencv2/core/core_c.hci.isContinuous()isContourConvexcvConvexityDefectscvCheckContourConvexityconvexHullcvConvexHull2isStorageOrMatconvexityDefectsvoid cv::convexityDefects(cv::InputArray, cv::InputArray, cv::OutputArray)void cv::convexHull(cv::InputArray, cv::OutputArray, bool, bool)total >= 0 && (depth == 5 || depth == 4)/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/convhull.cppInput sequence is not a sequence of pointsFloating-point coordinates are not supported hereConvex hull must represented as a sequence of indices or sequence of pointersConvex hull is neither sequence nor matrixThe matrix should be 1-dimensional and continuous array of int'sConvex hull is larger than the point sequencehull_next != __null && hull_cur != __nullInput sequence must be polygon (closed 2d curve)_points.getObj() != _hull.getObj()points.isContinuous()Destination is not CvMemStorage* nor CvMat*/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/precomp.hppThe hull matrix should be continuous and have a single row or a single columnThe hull matrix size might be not enough to fit the hullThe hull matrix must have the same type as input or 32sC1 (integers)Point sequence can not be empty if the output is matrixnpoints >= 0hpoints > 00 <= hcurr && hcurr < npoints0 <= hnext && hnext < npointsextractCovDatacornerEigenValsVecspreCornerDetectcvCornerMinEigenValcvCornerHarriscvCornerEigenValsAndVecscvPreCornerDetectvoid cv::preCornerDetect(cv::InputArray, cv::OutputArray, int, int)void cv::cornerEigenValsAndVecs(cv::InputArray, cv::OutputArray, int, int, int)void cv::cornerHarris(cv::InputArray, cv::OutputArray, int, int, double, int)void cv::cornerMinEigenVal(cv::InputArray, cv::OutputArray, int, int, int) -D SCHARR/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/corner.cppsobel%d-D BLK_X=%d -D BLK_Y=%d -D %s -D SRCTYPE=%s%s-D anX=%d -D anY=%d -D ksX=%d -D ksY=%d -D %s -D %scornersrc.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3)) || src.type() == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3))type == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3)) || type == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3))preCornerDetectsrc.size() == dst.size() && dst.type() == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3))src.rows == dst.rows && src.cols*6 == dst.cols*dst.channels() && dst.depth() == 5BORDER_CONSTANTBORDER_REPLICATEBORDER_REFLECTBORDER_REFLECT101CORNER_MINEIGENVALCORNER_HARRIScornerSubPixvoid cv::cornerSubPix(cv::InputArray, cv::InputOutputArray, cv::Size, cv::Size, cv::TermCriteria)count >= 0/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/cornersubpix.cppwin.width > 0 && win.height > 0src.cols >= win.width*2 + 5 && src.rows >= win.height*2 + 5src.channels() == 1N2cv17Bayer2RGB_InvokerIhNS_24SIMDBayerInterpolator_8uEEEN2cv18Bayer2Gray_InvokerIhNS_24SIMDBayerInterpolator_8uEEEN2cv18Bayer2Gray_InvokerItNS_26SIMDBayerStubInterpolator_ItEEEEN2cv17Bayer2RGB_InvokerItNS_26SIMDBayerStubInterpolator_ItEEEEN2cv29Bayer2RGB_EdgeAware_T_InvokerIhNS_24SIMDBayerInterpolator_8uEEEN2cv29Bayer2RGB_EdgeAware_T_InvokerItNS_26SIMDBayerStubInterpolator_ItEEEE?>*>>==(I==demosaicingvoid cv::demosaicing(cv::InputArray, cv::OutputArray, int, int)depth == 0 || depth == 2/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/demosaicing.cpp!src.empty()scn == 1 && dcn == 1Bayer->Gray demosaicing only supports 8u and 16u typesBayer->RGB demosaicing only supports 8u and 16u typesscn == 1 && dcn == 3Bayer->RGB Edge-Aware demosaicing only currently supports 8u and 16u typesUnknown / unsupported color conversion codegetScharrKernelsgetSobelKernelsMat????@@@@ocl_Laplacian5cvSobelcvLaplacevoid cv::Laplacian(cv::InputArray, cv::OutputArray, int, int, double, double, int)void cv::Scharr(cv::InputArray, cv::OutputArray, int, int, int, double, double, int)void cv::Sobel(cv::InputArray, cv::OutputArray, int, int, int, int, double, double, int)/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/deriv.cppdx >= 0 && dy >= 0 && dx+dy == 1The kernel size must be odd and not larger than 31dx >= 0 && dy >= 0 && dx+dy > 0ksize > orderKERNEL_MATRIX_XKERNEL_MATRIX_Y-D %s %s%ssepFilter3x3_8UC1_cols16_rows2KERNEL_MATRIX-D %s %slaplacian3_8UC1_cols16_rows2kernelX.cols == kernelY.cols-D BLK_X=%d -D BLK_Y=%d -D RADIUS=%d%s%s -D convertToWT=%s -D convertToDT=%s -D %s -D srcT1=%s -D dstT1=%s -D WT1=%s -D srcT=%s -D dstT=%s -D WT=%s -D CN=%d laplacian-D ONLY_SUM_CONVERT -D srcT=%s -D WT=%s -D dstT=%s -D coeffT=%s -D wdepth=%d -D convertToWT=%s -D convertToDT=%s%ssumConvertsrc.size() == dst.size() && src.channels() == dst.channels()BORDER_REFLECT_101N2cv15DTColumnInvokerEN2cv12DTRowInvokerEdistanceTransformtrueDistTransgetDistanceTransformMaskdistanceTransform_L1_8UdistanceATS_L1_8uvoid cv::distanceTransform_L1_8U(cv::InputArray, cv::OutputArray)void cv::distanceTransform(cv::InputArray, cv::OutputArray, int, int, int)void cv::distanceTransform(cv::InputArray, cv::OutputArray, cv::OutputArray, int, int, int)src.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3))/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/distransform.cpplabelType == DIST_LABEL_PIXEL || labelType == DIST_LABEL_CCOMPMask size should be 3 or 5 or 0 (precise)src.size() == dst.size()src.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3)) && dst.type() == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3))distType == CV_DIST_C || distType == CV_DIST_L1 || distType == CV_DIST_L2Unknown metric typesrc.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3)) && dst.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3))     HJYZ[\]^_`abcdefghijklmnopqr $K) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B v !"#$%&'()*+,-./01234<JE TUVWefghijklmnopqrstuvwxyz{|}~X0$K56789:;<=>?@ABCDEFGHIJKLMN            U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t   $K   ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 '()*+,-./0123456789:;<=>?@HJ              $J[ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t       $KO P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h 7        $Kghijklmnopqrstuvwxyz{|}~E3456789:;<=>?@ABCDEFGHIJKLTUVWXv<JMNOPQRSTUVWXYZ[\]^_`abcdefgetFontDataLineIteratorzriaYRKD>82-($  fillConvexPolyfillConvexPolycvClipLinecvInitLineIteratorcvInitFontcvGetTextSizeV<=F^V=܎=~= ==e>^0 >1>ocC>T>Yf>`w>탄>X >>z7>ద>B>{>p̿> >?>ma>-r>qq>^>8>??˨?vm ?D'??y???$!?$?|'?%L+?r.?"1?5?&8?9;?>>?4A?|D? F?I?`sL?O?Q?;T?V?Y?Qo[?׳]?_?b?d?]f?h?i?6k?[m? n?p? r?pxs?dt??v?Fw?Mex?Rpy?gz?K{?]|?$|?6}?~?~??\`?/??????/?\`??~?~?6}?$|?]|?K{?gz?Rpy?Mex?Fw??v?dt?pxs? r?p? n?[m?6k?i?h?]f?d?b?_?׳]?Qo[?Y?V?;T?Q?O?`sL?I? F?|D?4A?>>?9;?&8?5?"1?r.?%L+?|'?$?$!???y??D'?vm ?˨???8>^>qq>-r>ma>?> >p̿>{>B>ద>z7>>X >탄>`w>Yf>T>ocC>1>^0 >e>= =~=܎=F^V==V<VF^V܎~ ֽe^0 1ocCTYf`w탄X z7దB{p̿ Ⱦ?оmaؾ-rqq辕^8˨vm D'y$!$|'%L+r."15&89;>>4A|D FI`sLOQ;TVYQo[׳]_bd]fhi6k[m np rpxsdt?vFwMexRpygzK{]|$|6}~~\`//\`~~6}$|]|K{gzRpyMexFw?vdtpxs rp n[m6kih]fdb_׳]Qo[YV;TQO`sLI F|D4A>>9;&85"1r.%L+|'$$!yD'vm ˨8^qq-rmaؾ?о Ⱦp̿{Bదz7X 탄`wYfTocC1^0 e ֽ~܎F^VVV<=F^V=܎=~= ==e>^0 >1>ocC>T>Yf>`w>탄>X >>z7>ద>B>{>p̿> >?>ma>-r>qq>^>8>??˨?vm ?D'??y???$!?$?|'?%L+?r.?"1?5?&8?9;?>>?4A?|D? F?I?`sL?O?Q?;T?V?Y?Qo[?׳]?_?b?d?]f?h?i?6k?[m? n?p? r?pxs?dt??v?Fw?Mex?Rpy?gz?K{?]|?$|?6}?~?~??\`?/????linePolyLinecvPutTextrectanglerectanglepolylinespolylinescircleellipseellipsefillPolyfillPolycvDrawContoursdrawContoursvoid cv::drawContours(cv::InputOutputArray, cv::InputArrayOfArrays, int, const Scalar&, int, int, cv::InputArray, int, cv::Point)void cv::polylines(cv::InputOutputArray, cv::InputArrayOfArrays, bool, const Scalar&, int, int, int)void cv::fillPoly(cv::InputOutputArray, cv::InputArrayOfArrays, const Scalar&, int, int, cv::Point)void cv::fillConvexPoly(cv::InputOutputArray, cv::InputArray, const Scalar&, int, int)void cv::putText(cv::InputOutputArray, const cv::String&, cv::Point, int, double, cv::Scalar, int, int, bool)void cv::polylines(cv::Mat&, const Point* const*, const int*, int, bool, const Scalar&, int, int, int)void cv::fillPoly(cv::Mat&, const Point**, const int*, int, const Scalar&, int, int, cv::Point)void cv::fillConvexPoly(cv::Mat&, const Point*, int, const Scalar&, int, int)void cv::ellipse(cv::InputOutputArray, const cv::RotatedRect&, const Scalar&, int, int)void cv::ellipse(cv::InputOutputArray, cv::Point, cv::Size, double, double, double, const Scalar&, int, int, int)void cv::circle(cv::InputOutputArray, cv::Point, int, const Scalar&, int, int, int)void cv::rectangle(cv::Mat&, cv::Rect, const Scalar&, int, int, int)void cv::rectangle(cv::InputOutputArray, cv::Point, cv::Point, const Scalar&, int, int, int)void cv::arrowedLine(cv::InputOutputArray, cv::Point, cv::Point, const Scalar&, int, int, int, double)void cv::line(cv::InputOutputArray, cv::Point, cv::Point, const Scalar&, int, int, int)void cv::ellipse2Poly(cv::Point2d, cv::Size2d, int, int, int, int, std::vector >&)bool cv::clipLine(cv::Rect, cv::Point&, cv::Point&)bool cv::clipLine(cv::Size2l, cv::Point2l&, cv::Point2l&)vector::_M_default_appendvector::reserveUnknown font type/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/drawing.cpp0 <= shift && shift <= XY_SHIFTpoints.checkVector(2, 4) >= 0pt1 && pt2iterator != 0font != 0 && hscale > 0 && vscale > 0 && thickness >= 0text != 0 && _font != 00 <= thickness && thickness <= MAX_THICKNESS0 <= shift && shift <= XY_SHIFT && thickness >= 0thickness <= MAX_THICKNESSpts && npts && ncontours >= 0 && 0 <= thickness && thickness <= MAX_THICKNESS && 0 <= shift && shift <= XY_SHIFTp.checkVector(2, 4) >= 0radius >= 0 && thickness <= MAX_THICKNESS && 0 <= shift && shift <= XY_SHIFTaxes.width >= 0 && axes.height >= 0 && thickness <= MAX_THICKNESS && 0 <= shift && shift <= XY_SHIFTbox.size.width >= 0 && box.size.height >= 0 && thickness <= MAX_THICKNESSpts && npts && ncontours >= 0 && 0 <= shift && shift <= XY_SHIFTreader.ptr != __nullelem_type == (((4) & ((1 << 3) - 1)) + (((2)-1) << 3))0 <= contourIdx && contourIdx < (int)lastnpoints > 0hierarchy.total() == ncontours && hierarchy.type() == (((4) & ((1 << 3) - 1)) + (((4)-1) << 3))cvCalcEMD2icvInitEMDicvFindBasicVariablesicvNewSolutionfloat cv::EMD(cv::InputArray, cv::InputArray, int, cv::InputArray, float*, cv::OutputArray)The arrays must have equal number of columns (which is number of dimensions but 1)/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/emd.cppThe array must have equal typesThe signatures must be 32fC1The flow matrix size does not match to the signatures' sizesThe flow matrix must be 32fC1Only one of cost matrix or distance function should be non-NULL in case of user-defined distanceThe lower boundary can not be calculated if the cost matrix is usedThe cost matrix size does not match to the signatures' sizesThe cost matrix must be 32fC1In case of user-defined distance Distance function is undefinedNumber of dimensions can be 0 only if a user-defined metric is usedBad or unsupported metric typesignature1 must not contain negative weightssignature2 must not contain negative weightssignature1 must contain at least one non-zero valuesignature2 must contain at least one non-zero valueu != 0 && v != 0leave_x != __nullcur_xgoodFeaturesToTrackocl_goodFeaturesToTrackcvGoodFeaturesToTrackvoid cv::goodFeaturesToTrack(cv::InputArray, cv::OutputArray, int, double, double, cv::InputArray, int, int, bool, double)qualityLevel > 0 && minDistance >= 0 && maxCorners >= 0/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/featureselect.cpp_mask.empty() || (_mask.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3)) && _mask.sameSize(_image))sizeof(Corner) == corners_buffer.elemSize()eig.type() == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3))-D OP_MAX_EIGEN_VAL -D WGS=%d -D groupnum=%d -D WGS2_ALIGNED=%d%smaxEigenVal-D OP_MAX_EIGEN_VAL -D WGS=%d -D WGS2_ALIGNED=%d -D groupnum=%dmaxEigenValTask-D OP_FIND_CORNERS%sfindCorners_corners && _corner_countN2cv9RowFilterIhiNS_21SymmRowSmallVec_8u32sEEEN2cv18SymmRowSmallFilterIhiNS_21SymmRowSmallVec_8u32sEEEN2cv9RowFilterIffNS_19SymmRowSmallVec_32fEEEN2cv18SymmRowSmallFilterIffNS_19SymmRowSmallVec_32fEEEN2cv9RowFilterIhiNS_8RowNoVecEEEN2cv9RowFilterIhfNS_8RowNoVecEEEN2cv9RowFilterIhdNS_8RowNoVecEEEN2cv9RowFilterItfNS_8RowNoVecEEEN2cv9RowFilterItdNS_8RowNoVecEEEN2cv9RowFilterIsfNS_8RowNoVecEEEN2cv9RowFilterIsdNS_8RowNoVecEEEN2cv9RowFilterIffNS_8RowNoVecEEEN2cv9RowFilterIfdNS_8RowNoVecEEEN2cv9RowFilterIddNS_8RowNoVecEEEN2cv12ColumnFilterINS_13FixedPtCastExIihEENS_11ColumnNoVecEEEN2cv12ColumnFilterINS_4CastIfhEENS_11ColumnNoVecEEEN2cv12ColumnFilterINS_4CastIdhEENS_11ColumnNoVecEEEN2cv12ColumnFilterINS_4CastIftEENS_11ColumnNoVecEEEN2cv12ColumnFilterINS_4CastIdtEENS_11ColumnNoVecEEEN2cv12ColumnFilterINS_4CastIfsEENS_11ColumnNoVecEEEN2cv12ColumnFilterINS_4CastIdsEENS_11ColumnNoVecEEEN2cv12ColumnFilterINS_4CastIffEENS_11ColumnNoVecEEEN2cv12ColumnFilterINS_4CastIddEENS_11ColumnNoVecEEEN2cv12ColumnFilterINS_13FixedPtCastExIihEENS_19SymmColumnVec_32s8uEEEN2cv16SymmColumnFilterINS_13FixedPtCastExIihEENS_19SymmColumnVec_32s8uEEEN2cv21SymmColumnSmallFilterINS_13FixedPtCastExIihEENS_19SymmColumnVec_32s8uEEEN2cv12ColumnFilterINS_4CastIisEENS_25SymmColumnSmallVec_32s16sEEEN2cv16SymmColumnFilterINS_4CastIisEENS_25SymmColumnSmallVec_32s16sEEEN2cv21SymmColumnSmallFilterINS_4CastIisEENS_25SymmColumnSmallVec_32s16sEEEN2cv12ColumnFilterINS_4CastIffEENS_20SymmColumnSmallNoVecEEEN2cv16SymmColumnFilterINS_4CastIffEENS_20SymmColumnSmallNoVecEEEN2cv21SymmColumnSmallFilterINS_4CastIffEENS_20SymmColumnSmallNoVecEEEN2cv16SymmColumnFilterINS_4CastIfhEENS_11ColumnNoVecEEEN2cv16SymmColumnFilterINS_4CastIdhEENS_11ColumnNoVecEEEN2cv16SymmColumnFilterINS_4CastIftEENS_11ColumnNoVecEEEN2cv16SymmColumnFilterINS_4CastIdtEENS_11ColumnNoVecEEEN2cv12ColumnFilterINS_4CastIisEENS_11ColumnNoVecEEEN2cv16SymmColumnFilterINS_4CastIisEENS_11ColumnNoVecEEEN2cv12ColumnFilterINS_4CastIfsEENS_20SymmColumnVec_32f16sEEEN2cv16SymmColumnFilterINS_4CastIfsEENS_20SymmColumnVec_32f16sEEEN2cv16SymmColumnFilterINS_4CastIdsEENS_11ColumnNoVecEEEN2cv16SymmColumnFilterINS_4CastIffEENS_11ColumnNoVecEEEN2cv16SymmColumnFilterINS_4CastIddEENS_11ColumnNoVecEEEN2cv6detail12PtrOwnerImplINS_12FilterEngineENS_14DefaultDeleterIS2_EEEEN2cv8Filter2DIhNS_4CastIfhEENS_11FilterNoVecEEEN2cv8Filter2DIhNS_4CastIftEENS_11FilterNoVecEEEN2cv8Filter2DIhNS_4CastIfsEENS_11FilterNoVecEEEN2cv8Filter2DIhNS_4CastIffEENS_11FilterNoVecEEEN2cv8Filter2DIhNS_4CastIddEENS_11FilterNoVecEEEN2cv8Filter2DItNS_4CastIftEENS_11FilterNoVecEEEN2cv8Filter2DItNS_4CastIffEENS_11FilterNoVecEEEN2cv8Filter2DItNS_4CastIddEENS_11FilterNoVecEEEN2cv8Filter2DIsNS_4CastIfsEENS_11FilterNoVecEEEN2cv8Filter2DIsNS_4CastIffEENS_11FilterNoVecEEEN2cv8Filter2DIsNS_4CastIddEENS_11FilterNoVecEEEN2cv8Filter2DIfNS_4CastIffEENS_11FilterNoVecEEEN2cv8Filter2DIdNS_4CastIddEENS_11FilterNoVecEEEN2cv6detail12PtrOwnerImplINS_18SymmRowSmallFilterIhiNS_21SymmRowSmallVec_8u32sEEENS_14DefaultDeleterIS4_EEEEN2cv6detail12PtrOwnerImplINS_18SymmRowSmallFilterIffNS_19SymmRowSmallVec_32fEEENS_14DefaultDeleterIS4_EEEEN2cv6detail12PtrOwnerImplINS_9RowFilterIhiNS_8RowNoVecEEENS_14DefaultDeleterIS4_EEEEN2cv6detail12PtrOwnerImplINS_9RowFilterIhfNS_8RowNoVecEEENS_14DefaultDeleterIS4_EEEEN2cv6detail12PtrOwnerImplINS_9RowFilterIhdNS_8RowNoVecEEENS_14DefaultDeleterIS4_EEEEN2cv6detail12PtrOwnerImplINS_9RowFilterItfNS_8RowNoVecEEENS_14DefaultDeleterIS4_EEEEN2cv6detail12PtrOwnerImplINS_9RowFilterItdNS_8RowNoVecEEENS_14DefaultDeleterIS4_EEEEN2cv6detail12PtrOwnerImplINS_9RowFilterIsfNS_8RowNoVecEEENS_14DefaultDeleterIS4_EEEEN2cv6detail12PtrOwnerImplINS_9RowFilterIsdNS_8RowNoVecEEENS_14DefaultDeleterIS4_EEEEN2cv6detail12PtrOwnerImplINS_9RowFilterIffNS_8RowNoVecEEENS_14DefaultDeleterIS4_EEEEN2cv6detail12PtrOwnerImplINS_9RowFilterIfdNS_8RowNoVecEEENS_14DefaultDeleterIS4_EEEEN2cv6detail12PtrOwnerImplINS_9RowFilterIddNS_8RowNoVecEEENS_14DefaultDeleterIS4_EEEEN2cv6detail12PtrOwnerImplINS_12ColumnFilterINS_13FixedPtCastExIihEENS_11ColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_12ColumnFilterINS_4CastIfhEENS_11ColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_12ColumnFilterINS_4CastIdhEENS_11ColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_12ColumnFilterINS_4CastIftEENS_11ColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_12ColumnFilterINS_4CastIdtEENS_11ColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_12ColumnFilterINS_4CastIfsEENS_11ColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_12ColumnFilterINS_4CastIdsEENS_11ColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_12ColumnFilterINS_4CastIffEENS_11ColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_12ColumnFilterINS_4CastIddEENS_11ColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_21SymmColumnSmallFilterINS_13FixedPtCastExIihEENS_19SymmColumnVec_32s8uEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_21SymmColumnSmallFilterINS_4CastIisEENS_25SymmColumnSmallVec_32s16sEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_21SymmColumnSmallFilterINS_4CastIffEENS_20SymmColumnSmallNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_16SymmColumnFilterINS_13FixedPtCastExIihEENS_19SymmColumnVec_32s8uEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_16SymmColumnFilterINS_4CastIfhEENS_11ColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_16SymmColumnFilterINS_4CastIdhEENS_11ColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_16SymmColumnFilterINS_4CastIftEENS_11ColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_16SymmColumnFilterINS_4CastIdtEENS_11ColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_16SymmColumnFilterINS_4CastIisEENS_11ColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_16SymmColumnFilterINS_4CastIfsEENS_20SymmColumnVec_32f16sEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_16SymmColumnFilterINS_4CastIdsEENS_11ColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_16SymmColumnFilterINS_4CastIffEENS_11ColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_16SymmColumnFilterINS_4CastIddEENS_11ColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_8Filter2DIhNS_4CastIfhEENS_11FilterNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_8Filter2DIhNS_4CastIftEENS_11FilterNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_8Filter2DIhNS_4CastIfsEENS_11FilterNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_8Filter2DIhNS_4CastIffEENS_11FilterNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_8Filter2DIhNS_4CastIddEENS_11FilterNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_8Filter2DItNS_4CastIftEENS_11FilterNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_8Filter2DItNS_4CastIffEENS_11FilterNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_8Filter2DItNS_4CastIddEENS_11FilterNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_8Filter2DIsNS_4CastIfsEENS_11FilterNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_8Filter2DIsNS_4CastIffEENS_11FilterNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_8Filter2DIsNS_4CastIddEENS_11FilterNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_8Filter2DIfNS_4CastIffEENS_11FilterNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_8Filter2DIdNS_4CastIddEENS_11FilterNoVecEEENS_14DefaultDeleterIS6_EEEEapplyproceedMatgetKernelTypeSymmColumnVec_32s8uRowFilterSymmRowSmallFilterRowFilterSymmRowSmallFilterRowFilterRowFilterRowFilterRowFilterRowFilterRowFilterRowFilterRowFilterRowFilterRowFiltergetLinearRowFilterColumnFilterColumnFilterColumnFilterColumnFilterColumnFilterSymmColumnFilterSymmColumnSmallFilterColumnFilterSymmColumnFilterSymmColumnSmallFilterColumnFilterSymmColumnFilterColumnFilterSymmColumnFilterColumnFilterSymmColumnFilterColumnFilterSymmColumnFilterColumnFilterSymmColumnFilterColumnFilterSymmColumnFilterColumnFilterSymmColumnFilterSymmColumnFilterSymmColumnFilterinitstartColumnFilterSymmColumnFiltergetLinearColumnFilterSymmColumnSmallFilterSymmColumnSmallVec_32s16sSymmColumnVec_32f16screateSeparableLinearFiltersepFilter2Dpreprocess2DKernelFilter2DFilter2DFilter2DFilter2DFilter2DFilter2DFilter2DFilter2DFilter2DFilter2DFilter2DFilter2DFilter2DgetLinearFilternormalizeAnchorcreateLinearFiltercvFilter2Dvoid cv::sepFilter2D(cv::InputArray, cv::OutputArray, int, cv::InputArray, cv::InputArray, cv::Point, double, int)void cv::filter2D(cv::InputArray, cv::OutputArray, int, cv::InputArray, cv::Point, double, int)virtual void cv::FilterEngine::apply(const cv::Mat&, cv::Mat&, const Size&, const Point&)N2cv13BaseRowFilterEN2cv16BaseColumnFilterEN2cv10BaseFilterEN2cv12FilterEngineE(symmetryType & (KERNEL_SYMMETRICAL | KERNEL_ASYMMETRICAL)) != 0kernel.type() == DataType::type && (kernel.rows == 1 || kernel.cols == 1)kernel.type() == DataType

::type && (kernel.rows == 1 || kernel.cols == 1)(symmetryType & (KERNEL_SYMMETRICAL | KERNEL_ASYMMETRICAL)) != 0 && this->ksize <= 5this->ksize == 3_kernel.type() == DataType::typesrc.type() == srcType && dst.type() == dstType/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/filter.cppwholeSize.width > 0 && wholeSize.height > 0src && dst && count > 0srcY >= startYdstY <= roi.height_kernel.channels() == 1cn == ((((bufType) & ((512 - 1) << 3)) >> 3) + 1) && ddepth >= std::max(sdepth, 4) && kernel.type() == ddepthUnsupported combination of source format (=%d), and buffer format (=%d)columnBorderType != BORDER_WRAProwFilter && columnFilterbufType == srcType0 <= anchor.x && anchor.x < ksize.width && 0 <= anchor.y && anchor.y < ksize.heightroi.x >= 0 && roi.y >= 0 && roi.width >= 0 && roi.height >= 0 && roi.x + roi.width <= wholeSize.width && roi.y + roi.height <= wholeSize.heightconstVal != __nullcn == ((((bufType) & ((512 - 1) << 3)) >> 3) + 1) && sdepth >= std::max(ddepth, 4) && kernel.type() == sdepthUnsupported combination of buffer format (=%d), and destination format (=%d)cn == ((((_dstType) & ((512 - 1) << 3)) >> 3) + 1) -D INTEGER_ARITHMETICNO_EXTRA_EXTRAPOLATIONEXTRA_EXTRAPOLATIONNO_BORDER_ISOLATED-D BLK_X=%d -D BLK_Y=%d -D RADIUSX=%d -D RADIUSY=%d%s%s -D srcT=%s -D convertToWT=%s -D WT=%s -D dstT=%s -D convertToDstT=%s -D %s -D srcT1=%s -D dstT1=%s -D WT1=%s -D CN=%d -D SHIFT_BITS=%d%ssep_filter-D RADIUSX=%d -D LSIZE0=%d -D LSIZE1=%d -D CN=%d -D %s -D %s -D %s -D srcT=%s -D dstT=%s -D convertToDstT=%s -D srcT1=%s -D dstT1=%s%s%srow_filter_C1_D0-D RADIUSY=%d -D LSIZE0=%d -D LSIZE1=%d -D CN=%d -D srcT=%s -D dstT=%s -D convertToDstT=%s -D srcT1=%s -D dstT1=%s -D SHIFT_BITS=%d%s%scol_filterkernelX.type() == kernelY.type() && (kernelX.cols == 1 || kernelX.rows == 1) && (kernelY.cols == 1 || kernelY.rows == 1)ktype == 0 || ktype == 4 || ktype == 5 || ktype == 6cn == ((((dstType) & ((512 - 1) << 3)) >> 3) + 1) && ddepth >= sdepthanchor.inside(Rect(0, 0, ksize.width, ksize.height))/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/filterengine.hppUnsupported combination of source format (=%d), and destination format (=%d)-D cn=%d -D ANCHOR_X=%d -D ANCHOR_Y=%d -D KERNEL_SIZE_X=%d -D KERNEL_SIZE_Y=%d -D PX_LOAD_VEC_SIZE=%d -D PX_LOAD_NUM_PX=%d -D PX_PER_WI_X=%d -D PX_PER_WI_Y=%d -D PRIV_DATA_WIDTH=%d -D %s -D %s -D PX_LOAD_X_ITERATIONS=%d -D PX_LOAD_Y_ITERATIONS=%d -D srcT=%s -D srcT1=%s -D dstT=%s -D dstT1=%s -D WT=%s -D WT1=%s -D convertToWT=%s -D convertToDstT=%s %sfilter2DSmall-D LOCAL_SIZE=%d -D cn=%d -D ANCHOR_X=%d -D ANCHOR_Y=%d -D KERNEL_SIZE_X=%d -D KERNEL_SIZE_Y=%d -D KERNEL_SIZE_Y2_ALIGNED=%d -D %s -D %s -D %s%s%s -D srcT=%s -D srcT1=%s -D dstT=%s -D dstT1=%s -D WT=%s -D WT1=%s -D convertToWT=%s -D convertToDstT=%sfilter2DfloodFillint cv::floodFill(cv::InputOutputArray, cv::Point, cv::Scalar, cv::Rect*, cv::Scalar, cv::Scalar, int)int cv::floodFill(cv::InputOutputArray, cv::InputOutputArray, cv::Point, cv::Scalar, cv::Rect*, cv::Scalar, cv::Scalar, int)Number of channels in input image must be 1 or 3/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/floodfill.cppConnectivity must be 4, 0(=4) or 8lo_diff and up_diff must be non-negativeSeed point is outside of imagemask.rows == size.height+2 && mask.cols == size.width+2mask.type() == 0getGaborKernel/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/gabor.cppN2cv16GeneralizedHoughEN2cv23GeneralizedHoughBallardEN2cv20GeneralizedHoughGuilEbuildFeatureListgetContourPointscalcHistcalcEdgessetTemplateImplconvertToMatfilterMinDistdetectImplprocessTemplcalcPositionfindPosInHistcalcScalecalcOrientationvoid {anonymous}::GeneralizedHoughBallardImpl::calcHist()*N12_GLOBAL__N_120GeneralizedHoughBaseE*N12_GLOBAL__N_127GeneralizedHoughBallardImplE*N12_GLOBAL__N_124GeneralizedHoughGuilImplE*N2cv6detail12PtrOwnerImplIN12_GLOBAL__N_127GeneralizedHoughBallardImplENS_14DefaultDeleterIS3_EEEE*N2cv6detail12PtrOwnerImplIN12_GLOBAL__N_124GeneralizedHoughGuilImplENS_14DefaultDeleterIS3_EEEElevels_ > 0/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/generalized_hough.cppedges.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3))dx.type() == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3)) && dx.size == edges.sizedy.type() == dx.type() && dy.size == edges.sizeimageEdges_.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3))imageDx_.type() == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3)) && imageDx_.size() == imageSize_imageDy_.type() == imageDx_.type() && imageDy_.size() == imageSize_levels_ > 0 && r_table_.size() == static_cast(levels_ + 1)dp_ > 0.0cannyLowThresh_ > 0 && cannyLowThresh_ < cannyHighThresh_templEdges_.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3))templDx_.type() == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3)) && templDx_.size() == templEdges_.size()templDy_.type() == templDx_.type() && templDy_.size() == templEdges_.size()!hasVotes || voteOutBuf_.size() == posOutBuf_.size()!hasVotes || voteOutBuf_.size() == oldSizeimageDx_.type() == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3)) && imageDx_.size() == imageEdges_.size()imageDy_.type() == imageDx_.type() && imageDy_.size() == imageEdges_.size()templFeatures_.size() == static_cast(levels_ + 1)imageFeatures_.size() == templFeatures_.size()posThresh_ > 0votesThreshold_ > 0minScale_ > 0.0 && minScale_ < maxScale_scaleStep_ > 0.0scaleThresh_ > 0minAngle_ >= 0.0 && minAngle_ < maxAngle_ && maxAngle_ <= 360.0angleStep_ > 0.0 && angleStep_ < 360.0angleThresh_ > 0cvBoxPointspointPolygonTestintersectConvexConvexMatfloat cv::intersectConvexConvex(cv::InputArray, cv::InputArray, cv::OutputArray, bool)double cv::pointPolygonTest(cv::InputArray, cv::Point2f, bool)NULL vertex array pointer/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/geometry.cpptotal >= 0 && (depth == 4 || depth == 5)p1.depth() == 4 || p1.depth() == 5p2.depth() == 4 || p2.depth() == 5n >= 0 && m >= 0temp.ptr() == dstcheckMaskoperator()calcInverseCovAndDetermGMMaddEdgesmaxFlowgrabCutinitGMMsMataddTermWeightsinSourceSegmentvoid cv::grabCut(cv::InputArray, cv::InputOutputArray, cv::Rect, cv::InputOutputArray, cv::InputOutputArray, int, int)minWeight > 0i>=0 && i<(int)vtcs.size()/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/gcgraph.hppj>=0 && j<(int)vtcs.size()w>=0 && revw>=0i != jmask is empty/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/grabcut.cppmask must have CV_8UC1 typemask must have as many rows and cols as imgmask element value must be equal GC_BGD or GC_FGD or GC_PR_BGD or GC_PR_FGDcovDeterms[ci] > std::numeric_limits::epsilon()dtrm > std::numeric_limits::epsilon()_model must have CV_64FC1 type, rows == 1 and cols == 13*componentsCountimage is emptyimage must have CV_8UC3 type!bgdSamples.empty() && !fgdSamples.empty()MWRMNV RMVV PSTSMWOMOV OMSMUNUPSQ OQSQURUUSVOVMXVNTMRMPNOPOSPURVTVVUMWOMOV OMRMTNUPUSTURVOVMWOMOV OMUM OQSQ OVUVMVOMOV OMUM OQSQMXVNTMRMPNOPOSPURVTVVUVR SRVRMWOMOV UMUV OQUQPTRMRVNUSMSTRVPVOTOSMWOMOV UMOS QQUVMVOMOV OVUVLXNMNV NMRV VMRV VMVVMWOMOV OMUV UMUVMXRMPNOPOSPURVSVUUVSVPUNSMRMMWOMOV OMSMUNUQSRORMXRMPNOPOSPURVSVUUVSVPUNSMRM STVWMWOMOV OMSMUNUQSROR RRUVMWUNSMQMONOOPPTRUSUUSVQVOUMWRMRV NMVMMXOMOSPURVSVUUVSVMMWNMRV VMRVLXNMPV RMPV RMTV VMTVMWOMUV UMOVMWNMRQRV VMRQMWUMOV OMUM OVUVMVOMOV OMUMMWRMNV RMVV NVVVMXRMPNOPOSPURVSVUUVSVPUNSMRM QQTR TQQRMWRMNV RMVVMWOMUM PQTR TQPR OVUVMWOMOV UMUV OMUMMWOMRQOV OMUM OVUVMWNONNOMPMQNRPRV VOVNUMTMSNRPLXRMRV PONPNSPTTTVSVPTOPOLXRMRV NOOPOSQTSTUSUPVOMXOVQVOROPPNRMSMUNVPVRTVVVMWSMMV SMUV OSTSMWQMNV QMTMVNVPSQPQ SQURUTTURVNVLXVPUNTMRMPNOONQNSOUPVRVTUUTMXQMNV QMUMVOVQUTTURVNVMVQMNV QMVM PQSQ NVSVMVQMNV QMVM PQSQLXVPUNTMRMPNOONQNSOUPVRVTUUSRSMXQMNV WMTV PQUQPUTMQVOVUMSSRUQVPVOUOTMVQMNV VMOS RQTVNVRMOV OVTVLYPMMV PMQV XMQV XMUVMXQMNV QMTV WMTVLXRMPNOONQNSOUPVRVTUUTVRVPUNTMRMMWQMNV QMUMVNVPUQSRPRLXRMPNOONQNSOUPVRVTUUTVRVPUNTMRM QVPUPTQSRSSTTVUWVWMWQMNV QMUMVNVPUQSRPR QRRUSVTVUUMWVNTMRMPNPPQQTRUSUUSVPVNUMVSMPV PMVMLXPMNSNUOVRVTUUSWMMWOMQV WMQVKXNMNV SMNV SMSV XMSVNWQMTV WMNVNWQMSQQV WMSQMWQMWMNVTVLXNMRV VMRV NMVMMWNLVXLXRONU ROVUMWNVVVPVRMUQMWMMOKQKTMVMWKNWQPTPUQUV URQSPTPUQVSVUUMWOMOV OSPURVTUUSTQRPPQOSMWUQSPRPPQOSPURVSVUUMWUMUV USTQRPPQOSPURVTUUSMWOSUSTQRPPQOSPURVTVNVUNTMSMRNRV PPTPMWUPUVTXRYPY USTQRPPQOSPURVTUUSMWOMOV OSPQRPTQUSUVPTRLQMRNSMRL RPRVPUSLRMSNTMSL SPSXRYQYPXNWPMPV UPPT RSUVKYMPMV MSNQOPPPQQRSRV RSSQTPUPVQWSWVMWOPOV OSPQRPTQUSUVMWRPPQOSPURVTUUSTQRPMWOPOY OSPURVTUUSTQRPPQOSMWUPUY USTQRPPQOSPURVTUUSNVPPPV PSQQSPTPNWUQTPQPPQPRQSTSUTUUTVQVPUNVRMRUSVTVUU PPTPMWUPUV OPOSPURVTUUSNVOPRV UPRVLXNPPV RPPV RPTV VPTVMWOPUV UPOVMWOPRV UPRVQXPYOYMWOPUPOVUVMXVPUSTURVPUOSPQRPTQUUVVMWOTQVSVTUTSSRPQRQTPUOUNTMRMQNPPOTNYMXNQOPQPRQRSQW VPURSTQWPYMWTNSMRMQNQORPTQUSTURVPUOSPQRPNWUQSPQPPQPRQS SSQSPTPUQVSVUUNWTMSNSOTP UPSPQQPSPUQVSWSXRYQYLXNQOPPPQQQSPV QSRQTPUPVQVSUVTYLXNQOPPPQQQURVSVTUUSVPVNUMTMSNSPTRUSWTOVRPQSQURVSVTUMWQPOV UPTPRQPS PSQUSVTVMWOMPMQNRPUV RPOVLYPPMY UPTSSUQVPVOUOS TSTUUVVVWUMWNPOPOV UPTSRUOVNWTMSNSOTP UPSPQQQRRSTS SSQTPUPVQWSXSYRZQZMXOQQPVP QPQRPV TPTRUVMWOSPURVTUUSTQRPPQOSNYMXVPRPPQOSPURVTUUSTQRPMXOQQPVP SPRVKXMQNPOPPQPUQVSVTUUSVPMXPPOQOSPURVSVUUVSVQUPTPSQRSQYMWOPPPQQSXTYUY UPTRPWOYKYTMRY MQNPOPPQPUQVTVUUVSWPLXOPNRNTOVQVRTRR UPVRVTUVSVRTLWTSSQQPOQNSOUQVSUTS UPTSTUUVVVMWQMOSPURVTUUSTQRPPQOSMWUQSPRPPQOSPURVTVLWTSSQQPOQNSOUQVSUTS VMTSTUUVVVMWOSTSURUQSPRPPQOSPURVTVOVVMUMTNSPQVPXOYNY QPUPMXUSTQRPPQOSPURVTUUS VPTVSXRYPYOXMVQMNV OSPQQPSPTQTRSTSUTVUVPUSMSNTNTMSM QPRPSQSRRTRUSVTVOUSMSNTNTMSM QPRPSQSRRVQXPYOYNXNVRMOV UPTPRQPS PSQUSVTVOTSMQSQURVSVJYKPLPMQMSLV MSNQOPQPRQRSQV RSSQTPVPWQWRVTVUWVXVMWNPOPPQPSOV PSQQRPTPUQURTTTUUVVVMXNPOPPQPSNY PSQUSVUUVSUQSPQQPSMXUSTQRPPQOSPURVTUUS VPSYMVOPPPQQQSPV UQTPSPRQQSNVTQSPQPPQPRQSRSSTSURVPVOUNUSMQSQURVSV PPTPMWNPOPPQPROTOUPVRVSUTS UPTSTUUVVVMWNPOPPQPROTOUPVRVTUURUPKYLPMPNQNRMTMUNVPVQURSSP RSRUSVUVVUWRWPMWOQPPQPRQRUSVTVUU VQUPTPSQQUPVOVNUMWNPOPPQPROTOUPVRVSUTS UPSVRXQYOYNXNVUPOV PQQPSPTQ PUQVSVTUMWUSTQRPPQOSPURVTUUSUPTNRMQMMWUQSPRPPQOSPURVSVUU OSSSMWRMQNPPOSOVPWRWSVTTUQUNTMRM PRTRMWTMQY RPPQOSPURVSVUUVSUQSPRPMWUQSPQPOQOSPTRUSVSWRXQXKYTPTSUTVTWSWQVOUNSMQMONNOMQMSNUOVQWSWUV TQSPQPPQPSQTSTTSMWUNORUVMWONUROVOUTKQKQYTYOUPKSKSYPYOUTKSLRNROSQQRSSRURVSXTYOUPKQLRNROQQSRQSRURVQXPYLYPMQNQOPPOPNONNOMPMSNUNWMNV USTTTUUVVVWUWTVSUSPTNVMWRMPNOPOSPURVTUUSUPTNRMMWPORMRVMWONQMSMUNUPTROVUVMWONQMSMUNUPSQ RQSQURUUSVQVOUMWSMSV SMNSVSMWPMOQQPRPTQUSTURVQVOU PMTMMWTMRMPNOPOSPURVTUUSTQRPPQOSMWUMQV OMUMMWQMONOPQQSQUPUNSMQM QQOROUQVSVUUURSQMWUPTRRSPROPPNRMTNUPUSTURVPVPURURVSVSURUPUSVRVRUSUSWRYPURPRQSQSPRP RURVSVSURUPURPRQSQSPRP SVRVRUSUSWRYPURMRR SMSR RURVSVSURUNWPNRMSMUNUPRQRRSRSQUP RURVSVSURUPTRMRQNVPMPQ TMTQNVQMPNPPQQSQTPTNSMQMMWRKRX UNSMQMONOPQQTRUSUUSVQVOUMWVLNXOUTKRNQQQSRVTYOUPKRNSQSSRVPYPTRKRYLXNRVRLXRNRV NRVRLXNPVP NTVTMWOOUU UOOUMWRORU OPUT UPOTPURQRRSRSQRQPUSMRORQSQSPRPPUSNRNRMSMSORQLXSOVRSU NRVRMXQLQY TLTY OQVQ OTVTLXVRURTSSURVOVNUNSORRQSPSNRMPMONOPQSSUUVVVLXNNOQOSNV VNUQUSVV NNQOSOVN NVQUSUVVLYRQQPOPNQNSOTQTRSSQTPVPWQWSVTTTSSRQH\NRMQLRMSNR VRWQXRWSVRH\MPLQLRMSNSOROQNPMP MQMRNRNQMQ WPVQVRWSXSYRYQXPWP WQWRXRXQWQI[KRYRH\RUJPRTZPRUF^ISJQLPNPPQTTVUXUZT[Q ISJPLONOPPTSVTXTZS[Q IYJWLVNVPWTZV[X[ZZ[W IYJVLUNUPVTYVZXZZY[WF^ISJQLPNPPQTTVUXUZT[Q ISJPLONOPPTSVTXTZS[Q IW[W I[[[CaGO]OXI L[GU]UD`F^^^^FFFF^KYQVOUNSNQOOQNSNUOVQVSUUSVQV SVVS QVVQ OUUO NSSN NQQNH\IR[RH\IR[R IQ[QLYPFSCSP RDRP OPVP MRXR OVOWNWNVOUQTTTVUWWVYTZQ[O\N^Na TTUUVWUYTZ N`O_P_S`V`W_ P_SaVaW_W^LYPFSCSP RDRP OPVP MRXR OVOWNWNVOUQTTTVUWWVYTZ TTUUVWUYTZ RZTZV[W]W^V`TaQaO`N_N^O^O_ TZU[V]V^U`TaLYPFSCSP RDRP OPVP MRXR VVVWWWWVVUTTRTPUOVNYN^O`QaTaV`W^W\VZTYQYN[ RTPVOYO^P`Qa TaU`V^V\UZTYLYPFSCSP RDRP OPVP MRXR QTOUNWOYQZTZVYWWVUTTQT QTPUOWPYQZ TZUYVWUUTT QZO[N]N^O`QaTaV`W^W]V[TZ QZP[O]O^P`Qa TaU`V^V]U[TZLYOEOFNFNEODQCTCVDWFVHTIQJOKNMNP TCUDVFUHTI NOONPNSOVOWN PNSPVPWNWM MRXR OVOWNWNVOUQTTTVUWWVYTZ TTUUVWUYTZ RZTZV[W]W^V`TaQaO`N_N^O^O_ TZU[V]V^U`TaLYOEOFNFNEODQCTCVDWFVHTI TCUDVFUHTI RITIVJWLWMVOTPQPOONNNMOMON TIUJVLVMUOTP MRXR QTOUNWOYQZTZVYWWVUTTQT QTPUOWPYQZ TZUYVWUUTT QZO[N]N^O`QaTaV`W^W]V[TZ QZP[O]O^P`Qa TaU`V^V]U[TZLYOCNI OCVC ODSDVC NIOHQGTGVHWJWMVOTPQPOONNNMOMON TGUHVJVMUOTP MRXR QTOUNWOYQZTZVYWWVUTTQT QTPUOWPYQZ TZUYVWUUTT QZO[N]N^O`QaTaV`W^W]V[TZ QZP[O]O^P`Qa TaU`V^V]U[TZLYNCNG VERLPP WCTIQP NEPCRCUE NEPDRDUEVE MRXR QTOUNWOYQZTZVYWWVUTTQT QTPUOWPYQZ TZUYVWUUTT QZO[N]N^O`QaTaV`W^W]V[TZ QZP[O]O^P`Qa TaU`V^V]U[TZLYOCNI OCVC ODSDVC NIOHQGTGVHWJWMVOTPQPOONNNMOMON TGUHVJVMUOTP MRXR VVVWWWWVVUTTRTPUOVNYN^O`QaTaV`W^W\VZTYQYN[ RTPVOYO^P`Qa TaU`V^V\UZTYLYPFSCSP RDRP OPVP MRXR SVSa TTTa TTM]X] QaVaLYOEOFNFNEODQCTCVDWFVHTI TCUDVFUHTI RITIVJWLWMVOTPQPOONNNMOMON TIUJVLVMUOTP MRXR SVSa TTTa TTM]X] QaVaF^YXWZU[R[PZMXKWIWHXHZI[K[MZOWPURQTKWGYFZF[G\H[IZH[G[FZFYFWGVHTLRPPVNZMZ OPUPE^P[MZJXHUGRGOHLJIMGPFTFWGYI[L\O\R[UYXVZS[P[ NJNW OJOW LJSJVKWMWNVPSQOQ SJUKVMVNUPSQ LWQW SQTRUVVWWWXV SQURVVWWE^P[MZJXHUGRGOHLJIMGPFTFWGYI[L\O\R[UYXVZS[P[ UKVJVNUKSJPJNKMLLOLRMUNVPWSWUVVT PJNLMOMRNUPWE_IM[M IR[R IW[W K[YICaHQGRHSIRHQ RQQRRSSRRQ \Q[R\S]R\QE_NWLTIRLPNM LPJRLT JRZR VWXT[RXPVM XPZRXTJZWNTLRIPLMN PLRJTL RJRZ WVTXR[PXMV PXRZTXF^ZJSJOKMLKNJQJSKVMXOYSZZZ SFS^F^JJQJUKWLYNZQZSYVWXUYQZJZ QFQ^F^JJQJUKWLYNZQZSYVWXUYQZJZ ORZRH\LBL[ RBR[ XBX[I[RFJ[ RFZ[ MTWTG\KFK[ KFTFWGXHYJYLXNWOTP KPTPWQXRYTYWXYWZT[K[H]ZKYIWGUFQFOGMILKKNKSLVMXOZQ[U[WZYXZVG\KFK[ KFRFUGWIXKYNYSXVWXUZR[K[H[LFL[ LFYF LPTP L[Y[HZLFL[ LFYF LPTPH]ZKYIWGUFQFOGMILKKNKSLVMXOZQ[U[WZYXZVZS USZSG]KFK[ YFY[ KPYPNVRFR[JZVFVVUYTZR[P[NZMYLVLTG\KFK[ YFKT POY[HYLFL[ L[X[F^JFJ[ JFR[ ZFR[ ZFZ[G]KFK[ KFY[ YFY[G]PFNGLIKKJNJSKVLXNZP[T[VZXXYVZSZNYKXIVGTFPFG\KFK[ KFTFWGXHYJYMXOWPTQKQG]PFNGLIKKJNJSKVLXNZP[T[VZXXYVZSZNYKXIVGTFPF SWY]G\KFK[ KFTFWGXHYJYLXNWOTPKP RPY[H\YIWGTFPFMGKIKKLMMNOOUQWRXSYUYXWZT[P[MZKXJZRFR[ KFYFG]KFKULXNZQ[S[VZXXYUYFI[JFR[ ZFR[F^HFM[ RFM[ RFW[ \FW[H\KFY[ YFK[I[JFRPR[ ZFRPH\YFK[ KFYF K[Y[HYLFL[ LFXFI[RFJ[ RFZ[ J[Z[G]PFNGLIKKJNJSKVLXNZP[T[VZXXYVZSZNYKXIVGTFPF OPUPI[RFJ[ RFZ[I[KFYF OPUP K[Y[G]KFK[ YFY[ KFYFI[KFRPK[ KFYF K[Y[I[KKKILGMFOFPGQIRMR[ YKYIXGWFUFTGSIRMH\RFR[ PKMLLMKOKRLTMUPVTVWUXTYRYOXMWLTKPKH\KFY[ K[YFG]RFR[ ILJLKMLQMSNTQUSUVTWSXQYMZL[LH\K[O[LTKPKLLINGQFSFVGXIYLYPXTU[Y[G[G[IZLWOSSLVFV[UXSUQSNQLQKRKTLVNXQZT[Y[F]SHTITLSPRSQUOXMZK[J[IZIWJRKOLMNJPHRGUFXFZG[I[KZMYNWOTP SPTPWQXRYTYWXYWZU[R[PZOXH\TLTMUNWNYMZKZIYGWFTFQGOIMLLNKRKVLYMZO[Q[TZVXWVG^TFRGQIPMOSNVMXKZI[G[FZFXGWIWKXMZP[S[VZXXZT[O[KZHYGWFTFRHRJSMUPWRZT\UH\VJVKWLYLZKZIYGVFRFOGNINLONPOSPPPMQLRKTKWLYMZP[S[VZXXYVH\RLPLNKMINGQFTFXG[G]F XGVNTTRXPZN[L[JZIXIVJULUNV QPZPG^G[IZMVPQQNRJRGQFPFOGNINLONQOUOXNYMZKZQYVXXVZS[O[LZJXIVITF^MMKLJJJIKGMFNFPGQIQKPONULYJ[H[GZGX MRVOXN[L]J^H^G]F\FZHXLVRUWUZV[W[YZZY\VIZWVUTSQROQLQIRGSFUFVGWIWLVQTVSXQZO[M[KZJXJVKUMUOVJYT^R[PVOPOJPGRFTFUGVJVMURR[PaOdNfLgKfKdLaN^P\SZWXF^MMKLJJJIKGMFNFPGQIQKPONULYJ[H[GZGX ^I^G]F\FZGXIVLTNROPO ROSQSXTZU[V[XZYY[VI\MRORSQVOXMYKYHXFVFUGTISNRSQVPXNZL[J[IZIXJWLWNXQZT[V[YZ[X@aEMCLBJBICGEFFFHGIIIKHPGTE[ GTJLLHMGOFPFRGSISKRPQTO[ QTTLVHWGYFZF\G]I]K\PZWZZ[[\[^Z_YaVE]JMHLGJGIHGJFKFMGNINKMPLTJ[ LTOLQHRGTFVFXGYIYKXPVWVZW[X[ZZ[Y]VH]TFQGOIMLLNKRKVLYMZO[Q[TZVXXUYSZOZKYHXGVFTFRHRKSNUQWSZU\VF_SHTITLSPRSQUOXMZK[J[IZIWJRKOLMNJPHRGUFZF\G]H^J^M]O\PZQWQUPTOH^ULTNSOQPOPNNNLOIQGTFWFYGZIZMYPWSSWPYNZK[I[HZHXIWKWMXPZS[V[YZ[XF_SHTITLSPRSQUOXMZK[J[IZIWJRKOLMNJPHRGUFYF[G\H]J]M\O[PYQVQSPTQUSUXVZX[ZZ[Y]VH\H[JZLXOTQQSMTJTGSFRFQGPIPKQMSOVQXSYUYWXYWZT[P[MZKXJVJTH[RLPLNKMINGQFTFXG[G]F XGVNTTRXPZN[L[JZIXIVJULUNVE]JMHLGJGIHGJFKFMGNINKMOLRKVKXLZN[P[RZSYUUXMZF XMWQVWVZW[X[ZZ[Y]VF]KMILHJHIIGKFLFNGOIOKNOMRLVLYM[O[QZTWVTXPYMZIZGYFXFWGVIVKWNYP[QC_HMFLEJEIFGHFIFKGLILLK[ UFK[ UFS[ aF_G\JYNVTS[F^NLLLKKKILGNFPFRGSISLQUQXRZT[V[XZYXYVXUVU ]I]G\FZFXGVITLPUNXLZJ[H[GZGXF]KMILHJHIIGKFLFNGOIOKNOMRLVLXMZN[P[RZTXVUWSYM [FYMVWT]RbPfNgMfMdNaP^S[VY[VH]ULTNSOQPOPNNNLOIQGTFWFYGZIZMYPWTTWPZN[K[JZJXKWNWPXQYR[R^QaPcNfLgKfKdLaN^Q[TYZVI[JFR[ ZFR[ JFZFG]IL[bE_RJIZ RJ[ZI[J[Z[I[J[Z[ZZJZJ[I\XMX[ XPVNTMQMONMPLSLUMXOZQ[T[VZXXH[LFL[ LPNNPMSMUNWPXSXUWXUZS[P[NZLXI[XPVNTMQMONMPLSLUMXOZQ[T[VZXXI\XFX[ XPVNTMQMONMPLSLUMXOZQ[T[VZXXI[LSXSXQWOVNTMQMONMPLSLUMXOZQ[T[VZXXMYWFUFSGRJR[ OMVMI\XMX]W`VaTbQbOa XPVNTMQMONMPLSLUMXOZQ[T[VZXXI\MFM[ MQPNRMUMWNXQX[NVQFRGSFREQF RMR[MWRFSGTFSERF SMS^RaPbNbIZMFM[ WMMW QSX[CaGMG[ GQJNLMOMQNRQR[ RQUNWMZM\N]Q][I\MMM[ MQPNRMUMWNXQX[I\QMONMPLSLUMXOZQ[T[VZXXYUYSXPVNTMQMH[LMLb LPNNPMSMUNWPXSXUWXUZS[P[NZLXI\XMXb XPVNTMQMONMPLSLUMXOZQ[T[VZXXKXOMO[ OSPPRNTMWMJ[XPWNTMQMNNMPNRPSUTWUXWXXWZT[Q[NZMXMYRFRWSZU[W[ OMVMI\MMMWNZP[S[UZXW XMX[JZLMR[ XMR[G]JMN[ RMN[ RMV[ ZMV[J[MMX[ XMM[JZLMR[ XMR[P_NaLbKbJ[XMM[ MMXM M[X[H]QMONMPLRKUKXLZN[P[RZUWWTYPZM QMSMTNUPWXXZY[Z[I\UFSGQIOMNPMTLZKb UFWFYHYKXMWNUORO ROTPVRWTWWVYUZS[Q[OZNYMVI\JPLNNMOMQNROSRSVR[ ZMYPXRR[P_ObI[TMQMONMPLSLVMYNZP[R[TZVXWUWRVOTMRKQIQGRFTFVGXIJZWOVNTMQMONOPPRSS SSOTMVMXNZP[S[UZWXJYTFRGQHQIRJUKXK XKTMQONRMUMWNYP[S]T_TaSbQbP`H\IQJOLMNMONOPNTL[ NTPPRNTMVMXOXRWWTbG\HQIOKMMMNNNPMUMXNZO[Q[SZUWVUWRXMXJWGUFSFRHRJSMUPWRZTLWRMPTOXOZP[R[TYUWI[OMK[ YNXMWMUNQROSNS NSPTQUSZT[U[VZJZKFMFOGPHX[ RML[H]OMIb NQMVMYO[Q[SZUXWT YMWTVXVZW[Y[[Y\WI[LMOMNSMXL[ YMXPWRUURXOZL[JZTFRGQHQIRJUKXK UKRLPMOOOQQSTTVT TTPUNVMXMZO\S^T_TaRbPbJ[RMPNNPMSMVNYOZQ[S[UZWXXUXRWOVNTMRMG]PML[ UMVSWXX[ IPKNNM[MI[MSMVNYOZQ[S[UZWXXUXRWOVNTMRMPNNPMSIbI][MQMONMPLSLVMYNZP[R[TZVXWUWRVOUNSMH\SMP[ JPLNOMZMH\IQJOLMNMONOPMVMYO[Q[TZVXXTYPYMG]ONMOKQJTJWKYLZN[Q[TZWXYUZRZOXMVMTORSPXMbI[KMMMOOU`WbYb ZMYOWRM]K`JbF]VFNb GQHOJMLMMNMPLULXMZO[Q[TZVXXUZP[MF]NMLNJQITIWJZK[M[OZQW RSQWRZS[U[WZYWZTZQYNXML\UUTSRRPRNSMTLVLXMZO[Q[SZTXVRUWUZV[W[YZZY\VM[MVOSRNSLTITGSFQGPIOMNTNZO[P[RZTXUUURVVWWYW[VMXTTTSSRQROSNTMVMXNZP[S[VYXVL\UUTSRRPRNSMTLVLXMZO[Q[SZTXZF VRUWUZV[W[YZZY\VNXOYQXRWSUSSRRQROSNUNXOZQ[S[UZVYXVOWOVSQUNVLWIWGVFTGSIQQNZKaJdJfKgMfNcOZP[R[TZUYWVL[UUTSRRPRNSMTLVLXMZO[Q[SZTY VRTYPdOfMgLfLdMaP^S\U[XY[VM\MVOSRNSLTITGSFQGPIOMNSM[ M[NXOVQSSRURVSVUUXUZV[W[YZZY\VPWSMSNTNTMSM PVRRPXPZQ[R[TZUYWVPWSMSNTNTMSM PVRRLdKfIgHfHdIaL^O\Q[TYWVM[MVOSRNSLTITGSFQGPIOMNSM[ M[NXOVQSSRURVSVUTVQV QVSWTZU[V[XZYY[VOWOVQSTNULVIVGUFSGRIQMPTPZQ[R[TZUYWVE^EVGSIRJSJTIXH[ IXJVLSNRPRQSQTPXO[ PXQVSSURWRXSXUWXWZX[Y[[Z\Y^VJ\JVLSNROSOTNXM[ NXOVQSSRURVSVUUXUZV[W[YZZY\VLZRRPRNSMTLVLXMZO[Q[SZTYUWUUTSRRQSQURWTXWXYWZVKZKVMSNQMUGg MUNSPRRRTSUUUWTYSZQ[ MZO[R[UZWYZVL[UUTSRRPRNSMTLVLXMZO[Q[SZ VRUUSZPaOdOfPgRfScS\U[XY[VMZMVOSPQPSSSTTTVSYSZT[U[WZXYZVNYNVPSQQQSSVTXTZR[ NZP[T[VZWYYVOXOVQSSO VFPXPZQ[S[UZVYXV PNWNL[LVNRLXLZM[O[QZSXUU VRTXTZU[V[XZYY[VL[LVNRMWMZN[O[RZTXUUUR URVVWWYW[VI^LRJTIWIYJ[L[NZPX RRPXPZQ[S[UZWXXUXR XRYVZW\W^VJZJVLSNRPRQSQZR[U[XYZV WSVRTRSSOZN[L[KZL[LVNRLXLZM[O[QZSXUU VRPdOfMgLfLdMaP^S\U[XY[VLZLVNSPRRRTTTVSXQZN[P\Q^QaPdOfMgLfLdMaP^S\WYZVJ\K[NZQXSVUSWOXKXIWGUFSGRHQJPOPTQXRZT[V[XZYYI[WUWRVOUNSMQMONMPLSLVMYNZP[R[TZVXWUXPXKWHVGTFRFPGNIJZWNUMRMPNNPMSMVNYOZQ[T[VZ MTUTJ[TFRGPJOLNOMTMXNZO[Q[SZUWVUWRXMXIWGVFTF NPWPH\VFNb QMNNLPKSKVLXNZQ[S[VZXXYUYRXPVNSMQMI[XOWNTMQMNNMOLQLSMUOWSZT\T^S_Q_DaWNVLTKQKOLNMMOMRNTOUQVTVVUWS WKWSXUYV[V\U]S]O\L[JYHWGTFQFNGLHJJILHOHRIUJWLYNZQ[T[WZYYF^ZIJRZ[F^JIZRJ[KYOBOb OBVB ObVbKYUBUb NBUB NbUbKYTBQEPHPJQMSOSPORSTSUQWPZP\Q_TbKYPBSETHTJSMQOQPURQTQUSWTZT\S_PbF^[FYGVHSHPGNFLFJGIIIKKMMMOLPJPHNF [FI[ YTWTUUTWTYV[X[ZZ[X[VYTH\QFNGLJKOKRLWNZQ[S[VZXWYRYOXJVGSFQFH\NJPISFS[H\LKLJMHNGPFTFVGWHXJXLWNUQK[Y[H\MFXFRNUNWOXPYSYUXXVZS[P[MZLYKWH\UFKTZT UFU[H\WFMFLOMNPMSMVNXPYSYUXXVZS[P[MZLYKWH\XIWGTFRFOGMJLOLTMXOZR[S[VZXXYUYTXQVOSNRNOOMQLTH\YFO[ KFYFH\PFMGLILKMMONSOVPXRYTYWXYWZT[P[MZLYKWKTLRNPQOUNWMXKXIWGTFPFH\XMWPURRSQSNRLPKMKLLINGQFRFUGWIXMXRWWUZR[P[MZLXMWRYQZR[SZRYMWSZR[QZRYSZS\R^Q_MWRMQNROSNRM RYQZR[SZRYMWRMQNROSNRM SZR[QZRYSZS\R^Q_MWRFRT RYQZR[SZRYI[LKLJMHNGPFTFVGWHXJXLWNVORQRT RYQZR[SZRYNVRFRMJZNFNM VFVMKYQFOGNINKOMQNSNUMVKVIUGSFQFH\PBP_ TBT_ YIWGTFPFMGKIKKLMMNOOUQWRXSYUYXWZT[P[MZKXG][BIbKYVBTDRGPKOPOTPYR]T`VbKYNBPDRGTKUPUTTYR]P`NbNVRBRbE_IR[RE_RIR[ IR[RE_IO[O IU[UG]KKYY YKKYJZRLRX MOWU WOMUMWRQQRRSSRRQMWSFRGQIQKRLSKRJMWRHQGRFSGSIRKQLE_UMXP[RXTUW IR[RG]OFOb UFUb JQZQ JWZWE_\O\N[MZMYNXPVUTXRZP[L[JZIYHWHUISJRQNRMSKSIRGPFNGMIMKNNPQUXWZY[[[\Z\YG]IIJKKOKUJYI[ [IZKYOYUZY[[ IIKJOKUKYJ[I I[KZOYUYYZ[[F_\Q[OYNWNUOTPQTPUNVLVJUISIQJOLNNNPOQPTTUUWVYV[U\S\QKYOBO[ UBU[F^RBR[ I[[[F^[BI[[[E_RIQJRKSJRI IYHZI[JZIY [YZZ[[\Z[YF^RHNLKPJSJUKWMXOXQWRU RHVLYPZSZUYWWXUXSWRU RUQYP\ RUSYT\ P\T\F^RNQKPINHMHKIJKJOKRLTNWR\ RNSKTIVHWHYIZKZOYRXTVWR\F^RGPJLOIR RGTJXO[R IRLUPZR] [RXUTZR]F^RTTWVXXXZW[U[SZQXPVPSQ SQUOVMVKUISHQHOINKNMOOQQ QQNPLPJQISIUJWLXNXPWRT RTQYP\ RTSYT\ P\T\F^RRR[Q\ RVQ\ RIQHOHNINKONRR RISHUHVIVKUNRR RRNOLNJNIOIQJR RRVOXNZN[O[QZR RRNULVJVIUISJR RRVUXVZV[U[SZRF^ISJSLTMVMXLZ ISIRJQLQMRNTNWMYLZ RGPIOLOOQUQXPZR\ RGTIULUOSUSXTZR\ [S[RZQXQWRVTVWWYXZ [SZSXTWVWXXZ KVYVPSSRRSQSPRPQQPRPSQSSRUQV QQQRRRRQQQPTQPPQPSQTSTTSTQSPQP RQQRRSSRRQNVPOTU TOPU NRVRMWRKQMOPMR RKSMUPWR RMOQ RMUQ ROPQ ROTQ QQSQ MRWRMWMRMQNOONQMSMUNVOWQWR PNTN OOUO NPVP NQVQ MRWRLRLFLRRRLF LIPQ LLOR LOMQMWRKQMOPMR RKSMUPWRMWWRWQVOUNSMQMONNOMQMRG]]R]P\MZJWHTGPGMHJJHMGPGRMWMRMSNUOVQWSWUVVUWSWRLXLPNRQSSSVRXPRURUTTURTPRORVRRUPVNVLUKTKNRRROPNNNLOKPKMWWHVGTFQFOGNHMJMLNNOOUSVTWVWXVZU[S\P\N[MZG]IWHVGTGQHOINKMMMONPOTUUVWWYW[V\U]S]P\N[MG]RRTUUVWWYW[V\U]S]Q\O[NYMWMUNTOPUOVMWKWIVHUGSGQHOINKMMMONPORRH\KFK[ HF[FQP[Z ZV[Y\[ ZVZY WYZY WYZZ\[KYUARBPCNELHKLKRLUNWQXSXVWXUYR KPLMNKQJSJVKXMYPYVXZV]T_R`Oa>f>RfRD`D``DRRR>RfD`DD``D`DR`RF^FY^KKYK^YFKYKFY^F^FK^YKYKRYRMWMWWMMWMMWWD`DOGQKSPTTTYS]Q`OPUUDSGQKPPPTQYS]U`OTODQGSKTPTTSYQ]O`D`DUGSKQPPTPYQ]S`UKYRJYNKVRZJZJRNKVYZRKYKVKNYVYNJZLXJPZTXLJZJ]L]O\Q[TXUVVSVOULTJSIQIPJOLNONSOVPXS[U\X]Z]I]]Z]X\U[SXPVOSNONLOJPIQISJTLUOVSVVUXT[Q\O]L]JJZZGXGUHSIPLONNQNUOXPZQ[S[TZUXVUVQUNTLQIOHLGJGG[GJGLHOIQLTNUQVUVXUZT[S[QZPXOUNQNNOLPISHUGXGZE[EPFRHTJUMVQVUUXSZP[NZLWLSMQNNPLSKVKYL\M^EYETHVKWPWSVVTXQYNYLXKVKSLPNNQMTMYN\P_OUQOOQOSQUSUUSUQSOQO QPPQPSQTSTTSTQSPQP RQQRRSSRRQD`DRJR ORUR ZR`RD`DUDO`O`UJZRDJR RDZRD`DR`R JYZY P`T`D`DR`R DRRb `RRbKYQKNLLNKQKSLVNXQYSYVXXVYSYQXNVLSKQKLXLLLXXXXLLLKYRJKVYVRJLXRHLRR\XRRHJZRIPOJOOSMYRUWYUSZOTORIKYRKRY KRYRMWMMWW WMMWMWRLRX MOWU WOMUNVQNOONQNSOUQVSVUUVSVQUOSNQN OQOS PPPT QOQU RORU SOSU TPTT UQUSNVNNNVVVVNNN OOOU POPU QOQU RORU SOSU TOTU UOUUMWRLMUWURL ROOT ROUT RRQT RRSTLULRUWUMLR ORTU ORTO RRTS RRTQMWRXWOMORX RUUP RUOP RRSP RRQPOXXROMOWXR URPO URPU RRPQ RRPSLXRLNWXPLPVWRL RRRL RRLP RRNW RRVW RRXPMWRLRX OOUO MUOWQXSXUWWULXRLRX LQMOWOXQ PWTWKYMNWX WNMX OLLOKQ ULXOYQI[NII[ VI[[ MM[[ WMI[ NIVI MMWMI[RGRV MJWP WJMP IVL\ [VX\ IV[V L\X\G[MJSV KPSL G\[\[RG\LXPLPPLPLTPTPXTXTTXTXPTPTLPLKYYPXNVLSKQKNLLNKQKSLVNXQYSYVXXVYT YPWNUMSMQNPOOQOSPUQVSWUWWVYTKYRJKVYVRJ RZYNKNRZG]PIPGQFSFTGTI GZHXJVKTLPLKMJOIUIWJXKXPYTZV\X]Z GZ]Z QZP[Q\S\T[SZJZRMRS RSQ\ RSS\ Q\S\ RMQJPHNG QJNG RMSJTHVG SJVG RMNKLKJM PLLLJM RMVKXKZM TLXLZM RMPNOOOR RMPOOR RMTNUOUR RMTOURJZRIRK RNRP RSRU RYQ\ RYS\ Q\S\ RGQIPJ RGSITJ PJRITJ RKPNNOMN RKTNVOWN NOPORNTOVO RPPSNTLTKRKSLT RPTSVTXTYRYSXT NTPTRSTTVT RUPXOYMZLZKYJWJYLZ RUTXUYWZXZYYZWZYXZ MZOZRYUZWZJZRYQ\ RYS\ Q\S\ RYUZXZZXZUYTWTYRZOYMWLUMVJUHSGQGOHNJOMMLKMJOKRMTKTJUJXLZOZRYJZRYQ\ RYS\ Q\S\ RYVXVVXUXRZQZLYIXHVHTGPGNHLHKIJLJQLRLUNVNXRYI[IPKR LKNP RGRO XKVP [PYRQSRQQRRSSRRQPTQPPQPSQTSTTSTQSPQPNVQNOONQNSOUQVSVUUVSVQUOSNQNMWQMONNOMQMSNUOVQWSWUVVUWSWQVOUNSMQMG]PGMHJJHMGPGTHWJZM\P]T]W\ZZ\W]T]P\MZJWHTGPGAcPALBJCGEEGCJBLAPATBXCZE]G_JaLbPcTcXbZa]__]aZbXcTcPbLaJ_G]EZCXBTAPAfRAPCMDJDGCEA>H@JAMAZB]D_G`M`PaRc RATCWDZD]C_AfHdJcMcZb]`_]`W`TaRcAcRAPCMDJDGCEABGAKAPBTDXG\L`Rc RATCWDZD]C_AbGcKcPbT`X]\X`Rc BHbHH[WPVQWRXQXPVNTMQMNNLPKSKULXNZQ[S[VZXX QMONMPLSLUMXOZQ[ LbXFKYRKMX RNVX RKWX OTTT KXPX TXYXJZNKNX OKOX LKSKVLWNVPSQ SKULVNUPSQ OQSQVRWTWUVWSXLX SQURVTVUUWSXKYVLWKWOVLTKQKOLNMMPMSNVOWQXTXVWWU QKOMNPNSOVQXJZNKNX OKOX LKSKVLWMXPXSWVVWSXLX SKULVMWPWSVVUWSXJYNKNX OKOX SOSS LKVKVOUK OQSQ LXVXVTUXJXNKNX OKOX SOSS LKVKVOUK OQSQ LXQXK[VLWKWOVLTKQKOLNMMPMSNVOWQXTXVW QKOMNPNSOVQX TXUWVU VSVX WSWX TSYSJ[NKNX OKOX VKVX WKWX LKQK TKYK OQVQ LXQX TXYXNWRKRX SKSX PKUK PXUXLXSKSURWQX TKTUSWQXPXNWMUNTOUNV QKVKJZNKNX OKOX WKOS QQVX RQWX LKQK TKYK LXQX TXYXKXOKOX PKPX MKRK MXWXWTVXI\MKMX NNRX NKRU WKRX WKWX XKXX KKNK WKZK KXOX UXZXJZNKNX OMVX OKVV VKVX LKOK TKXK LXPXKZQKOLNMMPMSNVOWQXTXVWWVXSXPWMVLTKQK QKOMNPNSOVQX TXVVWSWPVMTKJYNKNX OKOX LKSKVLWNWOVQSROR SKULVNVOUQSR LXQXKZQKOLNMMPMSNVOWQXTXVWWVXSXPWMVLTKQK QKOMNPNSOVQX TXVVWSWPVMTK PWPUQTSTTUUZV[W[XZ TUUXVZW[JZNKNX OKOX LKSKVLWNWOVQSROR SKULVNVOUQSR LXQX SRTSUWVXWXXW SRUSVWWXKZVMWKWOVMULSKQKOLNMNOOPQQTRVSWT NNOOQPTQVRWSWVVWTXRXPWOVNTNXOVKZRKRX SKSX NKMOMKXKXOWK PXUXJ[NKNUOWQXTXVWWUWK OKOUPWQX LKQK UKYKKYMKRX NKRU WKRX KKPK TKYKI[LKOX MKOT RKOX RKUX SKUT XKUX JKOK VKZKKZNKVX OKWX WKNX LKQK TKYK LXQX TXYXLYNKRRRX OKSR WKSRSX LKQK TKYK PXUXLYVKNX WKOX OKNONKWK NXWXWTVXKXOKOX PKPX MKWKWOVK MXRXKYRKLX RMWX RKXX MWVW LXXXKZQKOLNMMPMSNVOWQXTXVWWVXSXPWMVLTKQK QKOMNPNSOVQX TXVVWSWPVMTK QOQT TOTT QQTQ QRTRKYRKMX RNVX RKWX KXPX TXYXJZMJLM XJWM PPOS UPTS MVLY XVWY MKWK MLWL PQTQ PRTR MWWW MXWXJ[NKNX OKOX VKVX WKWX LKYK LXQX TXYXK[MKRQ NKSQMX MKWKXOVK NWWW MXWXXTVXKZMONLOKPKQLRORX XOWLVKUKTLSOSX MONMOLPLQMRO XOWMVLULTMSO PXUXKZRKRX SKSX QNNOMQMRNTQUTUWTXRXQWOTNQN QNOONQNROTQU TUVTWRWQVOTN PKUK PXUXJ[RKRX SKSX LPMONOOSQU TUVSWOXOYP MONROTQUTUVTWRXO PKUK PXUXKZMVNXQXMRMONMOLQKTKVLWMXOXRTXWXXV OUNRNOOMQK TKVMWOWRVU NWPW UWWWKYTKKX SMTX TKUX NTTT IXNX RXWXJYPKLX QKMX NKUKWLWNVPSQ UKVLVNUPSQ OQRQTRUSUUTWQXJX RQTSTUSWQXKXVLWLXKWNVLTKRKPLOMNOMRMUNWPXRXTWUU RKPMOONRNVPXJYPKLX QKMX NKTKVLWNWQVTUVTWQXJX TKULVNVQUTTVSWQXJYPKLX QKMX SORS NKXKWNWK OQRQ JXTXUUSXJXPKLX QKMX SORS NKXKWNWK OQRQ JXOXKYVLWLXKWNVLTKRKPLOMNOMRMUNWPXRXTWUVVS RKPMOONRNVPX RXTVUS SSXSJ[PKLX QKMX XKTX YKUX NKSK VK[K OQVQ JXOX RXWXNWTKPX UKQX RKWK NXSXLXUKRUQWPX VKSURWPXOXMWLUMTNUMV SKXKJZPKLX QKMX YKOR RPTX SPUX NKSK VK[K JXOX RXWXKXQKMX RKNX OKTK KXUXVUTXI\OKKX OMPX PKQV YKPX YKUX ZKVX MKPK YK\K IXMX SXXXJZPKLX PKTX QKTU XKTX NKQK VKZK JXNXKYRKPLOMNOMRMUNWPXRXTWUVVTWQWNVLTKRK RKPMOONRNVPX RXTVUTVQVMTKJYPKLX QKMX NKUKWLXMXOWQTROR UKWMWOVQTR JXOXKYRKPLOMNOMRMUNWPXRXTWUVVTWQWNVLTKRK RKPMOONRNVPX RXTVUTVQVMTK OWOVPUQURVRZS[T[UZ RVSZT[JZPKLX QKMX NKUKWLXMXOWQTROR UKWMWOVQTR SRTWUXVXWW SRTSUWVX JXOXKZWLXLYKXNWLUKRKPLOMOOPPUSVT ONPOURVSVVUWSXPXNWMULXMWNWKZTKPX UKQX PKNNOKZKYNYK NXSXJ[PKMUMWOXSXUWVUYK QKNUNWOX NKSK WK[KKYOKPX PKQV YKPX MKRK VK[KI[NKMX OKNV TKMX TKSX UKTV ZKSX LKQK XK\KKZPKTX QKUX YKLX NKSK VK[K JXOX RXWXLYPKRQPX QKSQ YKSQQX NKSK VK[K NXSXLYXKLX YKMX QKONPKYK LXUXVUTXKZMHX\JZRMLW RMXWLZQOPPPQOQOPQOTOVQVWWXXX TOUQUWWX URRSPTOUOWPXSXTWUU RSPUPWQXJYNKNX OKOX ORPPROTOVPWRWUVWTXRXPWOU TOUPVRVUUWTX LKOKLXVQUQURVRVQUPSOQOOPNRNUOWQXSXUWVV QOPPOROUPWQXL[VKVX WKWX VRUPSOQOOPNRNUOWQXSXUWVU QOPPOROUPWQX TKWK VXYXLXOSVSVRUPSOQOOPNRNUOWQXSXUWVV USUQSO QOPPOROUPWQXLWTKULUMVMVLTKRKPMPX RKQMQX NOSO NXSXLYQOOQOSQUSUUSUQSOQO QOPQPSQU SUTSTQSO TPUOVO PTOUOXPYTYVZ OWPXTXVYV[T\P\N[NYPXJ[NKNX OKOX ORPPROTOVPWRWX TOUPVRVX LKOK LXQX TXYXNWRKRLSLSKRK RORX SOSX POSO PXUXNWSKSLTLTKSK SOSZR\ TOTZR\P\O[OZPZP[O[ QOTOJZNKNX OKOX WOOU RSVX SSWX LKOK TOYO LXQX TXYXNWRKRX SKSX PKSK PXUXF_JOJX KOKX KRLPNOPORPSRSX POQPRRRX SRTPVOXOZP[R[X XOYPZRZX HOKO HXMX PXUX XX]XJ[NONX OOOX ORPPROTOVPWRWX TOUPVRVX LOOO LXQX TXYXLYQOOPNRNUOWQXTXVWWUWRVPTOQO QOPPOROUPWQX TXUWVUVRUPTOJYNON\ OOO\ ORPPROTOVPWRWUVWTXRXPWOU TOUPVRVUUWTX LOOO L\Q\KYUOU\ VOV\ URTPROPONPMRMUNWPXRXTWUU POOPNRNUOWPX S\X\KXOOOX POPX PRQPSOUOVPVQUQUPVP MOPO MXRXLYTOUPUQVQVPTOQOOPORQSTTVU OQQRTSVTVWTXQXOWOVPVPWQXLWPKPVRXTXUWUV QKQVRX NOTOJ[NONUOWQXSXUWVU OOOUPWQX VOVX WOWX LOOO TOWO VXYXKYNORX OORV VORX LOQO TOXOI[LOOX MOOU ROOX ROUX SOUU XOUX JOOO VOZOKYNOUX OOVX VONX LOQO TOXO LXPX SXXXKYNORX OORV VORXP[N\M\L[LZMZM[L[ LOQO TOXOLXUONX VOOX OONQNOVO NXVXVVUXK[QOOPNQMSMUNWPXQXSWUUWRXO QOOQNSNUOWPX QOSOUPWWXX SOTPVWXXYXKXRKPMOOMUK\ QLPNNTL\ RKTKVLVNUPRQ TKULUNTPRQ RQTRUTUVTWRXQXOWNT RQSRTTTVRXKYLQNOPORPSSSXR\ LQNPPPRQSS WOVRSXQ\KYSOQOOPNQMSMUNWPXRXTWUVVTVRUPRNQLQKRJTJUKVM QOOQNSNVPX RXTVUTUQSO QLRKTKVMLXVPTOQOOPOQPRRS QOPPPQRS RSOTNUNWPXSXUW RSPTOUOWPXLWRKQLQMSNVNVMSNPOOPNRNTOVPWRXSYS[R\P\O[ SNQOPPOROTPVRXIYJRKPLONOOPOQMX MONPNQLX OQPPROTOVPVRS\ TOUPURR\IYJSKQLPNPOQOVPX MPNQNUOWPXQXSWTVUTVQVNULTKRKQLQNRPURWS QXSVTTUQUNTKNWROPVPWQXSXUWVU SOQVQWRXKYOOLX POMX UOVPWPVOTORQOR ORPSRWTXVWWU ORQSSWTXLXLKNKPLWX NKOLVX RPMX RPNXKZOOK\ POL\ NUNWOXQXSWTV VOTVTWUXWXXWYU WOUVUWVXJYNOMX OONUMX VRVOWOVRTUQWNXMX LOOOMXRKQLQMSNVN TNQOPPPRRSUS TNROQPQRRS SSPTOUOWQXSYTZT[S\Q\ SSQTPUPWQXKXQOOPNQMSMUNWPXRXTWUVVTVRUPSOQO QOOQNSNVPX RXTVUTUQSOIZPPMX PPNX TPSX TPTX KQMOXO KQMPXPJXSOQOOPNQMSJ\ QOOQNSK\ SOUPVRVTUVTWRXPXNWMU SOUQUTTVRXK[YOQOOPNQMSMUNWPXRXTWUVVTVRUPYP QOOQNSNVPX RXTVUTUQSOKZSPQX SPRX MQOOXO MQOPXPJXKRLPMOOOPPPROUOWPX NOOPORNUNWPXQXSWUUVRVOUOVPKZOPNQMSMUNWPXRXUWWUXRXPWOUOTPSRRUO\ MUNVPWRWUVWTXR XQWPUPSR RUQXP\KXMONOPPS[T\ NOOPR[T\U\ VOTRNYL\I[TKQ\ UKP\ JRKPLONOOPOVPWSWUVWT MONPNTOWPXSXUWWTXRYOJZNPPPPONPMQLSLUMWNXPXQWRUSR LUNWPWRU RRRWSXUXWVXTXRWPVOVPWP RUSWUWWVKZVOTVTWUXWXXWYU WOUVUWVX USUQSOQOOPNQMSMUNWPXRXTV QOOQNSNVPXJXOKMR PKNRNVPX NROPQOSOUPVRVTUVTWRXPXNWMUMR SOUQUTTVRX MKPKKXUPUQVQUPSOQOOPNQMSMUNWPXRXTWUV QOOQNSNVPXKZWKTVTWUXWXXWYU XKUVUWVX USUQSOQOOPNQMSMUNWPXRXTV QOOQNSNVPX UKXKKWNURTTSURUPSOQOOPNQMSMUNWPXRXTWUV QOOQNSNVPXMXWKXLXKVKTLSNPYO[N\ VKULTNQYP[N\L\L[M\ POVOKYVOTVSYR[ WOUVTYR[P\M\L[M[N\ USUQSOQOOPNQMSMUNWPXRXTV QOOQNSNVPXKZPKLX QKMX OQPPROTOVPVRUUUWVX TOUPURTUTWUXWXXWYU NKQKMWSKSLTLTKSK NROPPOROSPSRRURWSX QORPRRQUQWRXTXUWVUMWTKTLULUKTK ORPPQOSOTPTRRYQ[O\M\M[N\ ROSPSRQYP[O\KXPKLX QKMX VPUQVQVPUOTORQPROR ORPSQWRXTXUWVU ORQSRWSX NKQKNVSKPVPWQXSXTWUU TKQVQWRX QKTKF^GRHPIOKOLPLQJX JOKPKQIX LQMPOOQOSPSQQX QORPRQPX SQTPVOXOZPZRYUYWZX XOYPYRXUXWYX[X\W]UJ[KRLPMOOOPPPQNX NOOPOQMX PQQPSOUOWPWRVUVWWX UOVPVRUUUWVXXXYWZUJYKRLPMOOOPPPQM\ NOOPOQL\ PQROTOVPWRWTVVUWSXQXOVOT TOVQVTUVSX J\O\KYVOR\ WOS\ USUQSOQOOPNQMSMUNWPXRXTV QOOQNSNVPX P\U\LXMRNPOOQORPRQPX POQPQQOX RQSPUOVOWPWQVQWPLYVPVQWQVPTOQOOPORQSTTVU OQQRTSVTVWTXQXOWNVOVOWNWSKPVPWQXSXTWUU TKQVQWRX POUOIZJRKPLONOOPORNUNWOX MONPNRMUMWOXQXSWTV VOTVTWUXWXXWYU WOUVUWVXH\IRJPKOMONPNRMUMWNX LOMPMRLULWNXOXQWRV TORVRWTX UOSVSWTXUXWWYUZRZOYOZPJZMRNPPOROSPSR QORPRRQUPWNXMXLWLVMVLW XPWQXQXPWOVOTPSRRURWSX QUQWRXTXVWWUIYJRKPLONOOPORNUNWOX MONPNRMUMWOXQXSWTV VOTVSYR[ WOUVTYR[P\M\L[M[N\KYWOWPVQNVMWMX NQOOROUQ OPRPUQVQ NVOVRWUW OVRXUXVVH[RKSLSMTMTLRKOKMLLNLX OKNLMNMX XKYLYMZMZLXKVKTMTX VKUMUX JOWO JXOX RXWXJ[UKVLWLWKQKOLNNNX QKPLONOX VOVX WOWX LOWO LXQX TXYXJ[WKQKOLNNNX QKPLONOX UKVLVX WKWX LOVO LXQX TXYXF_PKQLQMRMRLPKMKKLJNJX MKLLKNKX YKZL[L[KUKSLRNRX UKTLSNSX ZOZX [O[X HO[O HXMX PXUX XX]XF_PKQLQMRMRLPKMKKLJNJX MKLLKNKX [KUKSLRNRX UKTLSNSX YKZLZX [K[X HOZO HXMX PXUX XX]XNWRORX SOSX POSO PXUXLXVPTOROPPOQNSNUOWQXSXUW ROPQOSOVQX OSSSLYSKQLPMOONRNUOWPXRXTWUVVTWQWNVLUKSK SKQMPOOSOVPX RXTVUTVPVMUK OQVQKZTKQ\ UKP\ QONPMRMUNWQXTXWWXUXRWPTOQO QOOPNRNUOWQX TXVWWUWRVPTOLXUPVRVQUPSOQOOPNRNTOVRX QOOQOTPVRXSYS[R\P\I[VKWLXLVKSKQLPMOOLYK[J\ SKQMPOMYL[J\H\H[I\ ZK[L[KYKWLVNSYR[Q\ YKXLWNTYS[Q\O\O[P\ LOYOIZVKWLXLXKSKQLPMOOLYK[J\ SKQMPOMYL[J\H\H[I\ VOTVTWUXWXXWYU WOUVUWVX LOWOIZVKWL XKSKQLPMOOLYK[J\ SKQMPOMYL[J\H\H[I\ WKTVTWUXWXXWYU XKUVUWVX LOVOF^SKTLTM ULSKPKNLMMLOIYH[G\ PKNMMOJYI[G\E\E[F\ ZK[L\L\KWKUL TMSOPYO[N\ WKUMTOQYP[N\L\L[M\ ZOXVXWYX[X\W]U [OYVYWZX IO[OF^SKTLTM ULSKPKNLMMLOIYH[G\ PKNMMOJYI[G\E\E[F\ ZK[L \KWKUL TMSOPYO[N\ WKUMTOQYP[N\L\L[M\ [KXVXWYX[X\W]U \KYVYWZX IOZOMWNROPPOROSPSRRURWSX QORPRRQUQWRXTXUWVULYQKOLNONTOWQXTXVWWTWOVLTKQK QKPLOOOTPWQX TXUWVTVOULTKLYPNSKSX RLRX OXVXLYOMONNNNMOLQKTKVLWNVPTQQROSNUNX TKULVNUPTQ NWOVPVSWVWWV PVSXVXWVWULYOMONNNNMOLQKTKVLWNVPTQ TKULVNUPTQ RQTQVRWTWUVWTXQXOWNVNUOUOV TQURVTVUUWTXLYSMSX TKTX TKMTXT QXVXLYOKNQ OKVK OLSLVK NQOPQOTOVPWRWUVWTXQXOWNVNUOUOV TOUPVRVUUWTXLYVMVNWNWMVLTKRKPLOMNPNUOWQXTXVWWUWSVQTPQPNR RKPMOPOUPWQX TXUWVUVSUQTPLYNKNO VMRTPX WKTQQX NMPKRKUM NMPLRLUMVMLYQKOLNNOPQQTQVPWNVLTKQK QKPLONPPQQ TQUPVNULTK QQORNTNUOWQXTXVWWUWTVRTQ QQPROTOUPWQX TXUWVUVTURTQLYOVOUNUNVOWQXSXUWVVWSWNVLTKQKOLNNNPORQSTSWQ SXUVVSVNULTK QKPLONOPPRQSNVRVQWRXSWRVNVSWRXQWRVSWSYQ[NVROQPRQSPRO RVQWRXSWRVNVROQPRQSPRO SWRXQWRVSWSYQ[NVRKQLRSSLRK RLRO RVQWRXSWRVLYNNONOONONNOLQKTKVLWNWOVQSRRSRTST TKVMVPUQSR RWRXSXSWRWOVRKRP SKRPLXOKOP PKOP UKUP VKUPMWQKPLPNQOSOTNTLSKQKMWRJRP OKUO UKOOKZXHM\MWUHSJQMPPPTQWSZU\ SJRLQPQTRXSZMWOHQJSMTPTTSWQZO\ QJRLSPSTRXQZMWPHP\ QHQ\ PHUH P\U\MWSHS\ THT\ OHTH O\T\LWSHRIQKQMRORPPRRTRUQWQYR[S\ RIQM QKRO RUQY QWR[MXQHRISKSMRORPTRRTRUSWSYR[Q\ RISM SKRO RUSY SWR[MWTHPRT\MWPHTRP\OURHR\MWPHP\ THT\I[LRXRI[RLRX LRXRJZRMRX MRWR MXWXJZRMRX MMWM MRWRJZMMWW WMMWNVRQQRRSSRRQI[RLQMRNSMRL LRXR RVQWRXSWRVI[LPXP LTXTI[WLMX LPXP LTXTI[LNXN LRXR LVXVJZWLMRWXJZMLWRMXJZWKMOWS MTWT MXWXJZMKWOMS MTWT MXWXH[YUWUUTTSRPQOONNNLOKQKRLTNUOUQTRSTPUOWNYNJZLTLRMPOPUSWSXR LRMQOQUTWTXRXPJZMSRPWS MSRQWSNVSKPO SKTLPONVQKTO QKPLTOLXNKOMQNSNUMVK NKONQOSOUNVKNVSLRMQLRKSLSNQPNVSKQMQORPSORNQONVQLRMSLRKQLQNSPNVQKSMSORPQORNSOJZWMQMONNOMQMSNUOVQWWWJZMMMSNUOVQWSWUVVUWSWMJZMMSMUNVOWQWSVUUVSWMWJZMWMQNOONQMSMUNVOWQWWJZWMQMONNOMQMSNUOVQWWW MRURI[TOUPXRUTTU UPWRUT LRWRMWRMRX OPPORLTOUP PORMTOI[POOPLROTPU OPMROT MRXRMWRLRW OTPURXTUUT PURWTUKYVSUPSOQOOPNQMSMUNWPXRXTWUVVTWQWNVLTKQKPLQLRK QOOQNSNVPX RXTVUTVQVNULTKJZLKRX MKRV XKRX LKXK NLWLG[IOLORW KORX [FRXI[XIXJYJYIXHVHTJSLROQUPYO[ UITKSORUQXPZN\L\K[KZLZL[I[XIXJYJYIXHVHTJSLROQUPYO[ UITKSORUQXPZN\L\K[KZLZL[ QNOONQNSOUQVSVUUVSVQUOSNQNH\ZRYTWUVUTTSSQPPONNMNKOJQJRKTMUNUPTQSSPTOVNWNYOZQZRJZXKLX OKPLPNOOMOLNLLMKOKSLVLXK UTTUTWUXWXXWXUWTUTJ[YPXPXQYQYPXOWOVPUTTVSWQXOXMWLVLTMSORRPSNSLRKPKOLONPQUWWXXXYW OXMVMTOR ONPPVWWXJ[UPSOQOPQPRQTSTUS UOUSVTXTYRYQXNVLSKRKOLMNLQLRMUOWRXSXVWKZQHQ\ THT\ WLVLVMWMWLUKPKNLNNOPVSWT NNOOVRWTWVVWTXQXOWNVNUOUOVNVKYPKP[ TKT[ MQWQ MUWULXTLSLSMTMTLSKQKPLPNQPTRUS PNQOTQUSUUSW QPOROTPVSXTY OTPUSWTYT[S\Q\P[PZQZQ[P[LXRKQLRMSLRK RMRQ RQQSRVSSRQ RVR\ POONNOOPPOTOUNVOUPTOLXRMSLRKQLRMRQQRSURV RQSRQURVRZQ[R\S[RZ POONNOOPPOTOUNVOUPTO PXOWNXOYPXTXUWVXUYTXLYVKVX NKVK QQVQ NXVXH\QKNLLNKQKSLVNXQYSYVXXVYSYQXNVLSKQK RQQRRSSRRQLYQKPLPMQN TKULUMTN RNPOOQORPTRUSUUTVRVQUOSNRN RURY SUSY OWVWLYRKPLONOOPQRRSRUQVOVNULSKRK RRRX SRSX OUVUH\QKNLLNKQKSLVNXQYSYVXXVYSYQXNVLSKQK RKRY KRYRJYRRPQOQMRLTLUMWOXPXRWSUSTRR WMRR RMWMWR RMVNWRJZLLMKOKQLRNRPQRPSNT OKPLQNQQPS VKUX WKTX NTXTJYNKNU OKNR NROPQOSOUPVQVTTVTXUYVYWX SOUQUTTV LKOKLYONRKRQ VNSKSQ RQPROTOUPWRXSXUWVUVTURSQ RTRUSUSTRTJZRKRY MKMPNRPSTSVRWPWK LMMKNM QMRKSM VMWKXM OVUVJYNKNX OKOX LKSKVLWNWOVQSROR SKULVNVOUQSR LXVXVUUXLYWKTKQLONNQNSOVQXTYWY WKTLRNQQQSRVTXWYJZRRPQOQMRLTLUMWOXPXRWSUSTRR SLQQ WMRR XQSSKYPMTW TMPW MPWT WPMTJ[OUMULVLXMYOYPXPVNTMRMONMOLQKTKVLWMXOXRWTUVUXVYXYYXYVXUVU NMPLULWMJ[OOMOLNLLMKOKPLPNNPMRMUNWOXQYTYVXWWXUXRWPUNULVKXKYLYNXOVO NWPXUXWWF^KHK\ LHL\ XHX\ YHY\ HH\H H\O\ U\\\H]KHRQJ\ JHQQ JHYHZMXH K[X[ J\Y\ZWX\KYVBTDRGPKOPOTPYR]T`Vb TDRHQKPPPTQYR\T`KYNBPDRGTKUPUTTYR]P`Nb PDRHSKTPTTSYR\P`KYOBOb PBPb OBVB ObVbKYTBTb UBUb NBUB NbUbJYTBQEPHPJQMSOSPORSTSUQWPZP\Q_Tb RDQGQKRN RVQYQ]R`KZPBSETHTJSMQOQPURQTQUSWTZT\S_Pb RDSGSKRN RVSYS]R`KYU@RCPFOIOLPOSVTYT\S_Ra RCQEPHPKQNTUUXU[T^RaOdKYO@RCTFUIULTOQVPYP\Q_Ra RCSETHTKSNPUOXO[P^RaUdAXCRGRR` GSRa FSRb X:RbF^[CZD[E\D\C[BYBWCUETGSJRNPZO^N` VDUFTJRVQZP]O_MaKbIbHaH`I_J`IaH\RFK[ RFY[ RIX[ MUVU I[O[ U[[[G]LFL[ MFM[ IFUFXGYHZJZLYNXOUP UFWGXHYJYLXNWOUP MPUPXQYRZTZWYYXZU[I[ UPWQXRYTYWXYWZU[G\XIYLYFXIVGSFQFNGLIKKJNJSKVLXNZQ[S[VZXXYV QFOGMILKKNKSLVMXOZQ[G]LFL[ MFM[ IFSFVGXIYKZNZSYVXXVZS[I[ SFUGWIXKYNYSXVWXUZS[G\LFL[ MFM[ SLST IFYFYLXF MPSP I[Y[YUX[G[LFL[ MFM[ SLST IFYFYLXF MPSP I[P[G^XIYLYFXIVGSFQFNGLIKKJNJSKVLXNZQ[S[VZXX QFOGMILKKNKSLVMXOZQ[ XSX[ YSY[ US\SF^KFK[ LFL[ XFX[ YFY[ HFOF UF\F LPXP H[O[ U[\[MXRFR[ SFS[ OFVF O[V[KZUFUWTZR[P[NZMXMVNUOVNW TFTWSZR[ QFXFF\KFK[ LFL[ YFLS QOY[ POX[ HFOF UF[F H[O[ U[[[I[NFN[ OFO[ KFRF K[Z[ZUY[F_KFK[ LFRX KFR[ YFR[ YFY[ ZFZ[ HFLF YF]F H[N[ V[][G^LFL[ MFYY MHY[ YFY[ IFMF VF\F I[O[G]QFNGLIKKJOJRKVLXNZQ[S[VZXXYVZRZOYKXIVGSFQF QFOGMILKKOKRLVMXOZQ[ S[UZWXXVYRYOXKWIUGSFG]LFL[ MFM[ IFUFXGYHZJZMYOXPUQMQ UFWGXHYJYMXOWPUQ I[P[G]QFNGLIKKJOJRKVLXNZQ[S[VZXXYVZRZOYKXIVGSFQF QFOGMILKKOKRLVMXOZQ[ S[UZWXXVYRYOXKWIUGSF NYNXOVQURUTVUXV_W`Y`Z^Z] UXV\W^X_Y_Z^G]LFL[ MFM[ IFUFXGYHZJZLYNXOUPMP UFWGXHYJYLXNWOUP I[P[ RPTQURXYYZZZ[Y TQUSWZX[Z[[Y[XH\XIYFYLXIVGSFPFMGKIKKLMMNOOUQWRYT KKMMONUPWQXRYTYXWZT[Q[NZLXKUK[LXI\RFR[ SFS[ LFKLKFZFZLYF O[V[F^KFKULXNZQ[S[VZXXYUYF LFLUMXOZQ[ HFOF VF\FH\KFR[ LFRX YFR[ IFOF UF[FF^JFN[ KFNV RFN[ RFV[ SFVV ZFV[ GFNF WF]FH\KFX[ LFY[ YFK[ IFOF UF[F I[O[ U[[[H]KFRQR[ LFSQS[ ZFSQ IFOF VF\F O[V[H\XFK[ YFL[ LFKLKFYF K[Y[YUX[I[NFN[ OFO[ KFZFZLYF K[R[H\RFJ[ RFZ[ RIY[ KZYZ J[Z[G]QFNGLIKKJOJRKVLXNZQ[S[VZXXYVZRZOYKXIVGSFQF QFOGMILKKOKRLVMXOZQ[ S[UZWXXVYRYOXKWIUGSF OMOT UMUT OPUP OQUQH\RFK[ RFY[ RIX[ I[O[ U[[[G]KEJJ ZEYJ ONNS VNUS KWJ\ ZWY\ KGYG KHYH OPUP OQUQ KYYY KZYZF^KFK[ LFL[ XFX[ YFY[ HF\F H[O[ U[\[H]KFRPJ[ JFQP JFYFZLXF KZXZ J[Y[ZUX[I\KKKILGMFOFPGQIRMR[ KIMGOGQI ZKZIYGXFVFUGTISMS[ ZIXGVGTI O[V[H]RFR[ SFS[ PKMLLMKOKRLTMUPVUVXUYTZRZOYMXLUKPK PKNLMMLOLRMTNUPV UVWUXTYRYOXMWLUK OFVF O[V[G^RFR[ SFS[ IMJLLMMQNSOTQU JLKMLQMSNTQUTUWTXSYQZM[L TUVTWSXQYM[L\M OFVF O[V[G]JXK[O[MWKSJPJLKIMGPFTFWGYIZLZPYSWWU[Y[ZX MWLTKPKLLINGPF TFVGXIYLYPXTWW KZNZ VZYZH\UFH[ UFV[ THU[ LUUU F[L[ R[X[F^OFI[ PFJ[ LFWFZG[I[KZNYOVP WFYGZIZKYNXOVP MPVPXQYSYUXXVZR[F[ VPWQXSXUWXUZR[H]ZH[H\F[L[JZHYGWFTFQGOIMLLOKSKVLYMZP[S[UZWXXV TFRGPINLMOLSLVMYNZP[F]OFI[ PFJ[ LFUFXGYHZKZOYSWWUYSZO[F[ UFWGXHYKYOXSVWTYRZO[F]OFI[ PFJ[ TLRT LF[FZLZF MPSP F[U[WVT[F\OFI[ PFJ[ TLRT LF[FZLZF MPSP F[M[H^ZH[H\F[L[JZHYGWFTFQGOIMLLOKSKVLYMZP[R[UZWXYT TFRGPINLMOLSLVMYNZP[ R[TZVXXT UT\TE_NFH[ OFI[ [FU[ \FV[ KFRF XF_F LPXP E[L[ R[Y[LYUFO[ VFP[ RFYF L[S[I[XFSWRYQZO[M[KZJXJVKULVKW WFRWQYO[ TF[FF]OFI[ PFJ[ ]FLS SOW[ ROV[ LFSF YF_F F[M[ S[Y[H\QFK[ RFL[ NFUF H[W[YUV[E`NFH[ NFO[ OFPY \FO[ \FV[ ]FW[ KFOF \F`F E[K[ S[Z[F_OFI[ OFVX OIV[ \FV[ LFOF YF_F F[L[G]SFPGNILLKOJSJVKYLZN[Q[TZVXXUYRZNZKYHXGVFSF SFQGOIMLLOKSKVLYN[ Q[SZUXWUXRYNYKXHVFF]OFI[ PFJ[ LFXF[G\I\K[NYPUQMQ XFZG[I[KZNXPUQ F[M[G]SFPGNILLKOJSJVKYLZN[Q[TZVXXUYRZNZKYHXGVFSF SFQGOIMLLOKSKVLYN[ Q[SZUXWUXRYNYKXHVF LYLXMVOUPURVSXS_T`V`W^W] SXT^U_V_W^F^OFI[ PFJ[ LFWFZG[I[KZNYOVPMP WFYGZIZKYNXOVP RPTQURVZW[Y[ZYZX URWYXZYZZY F[M[G^ZH[H\F[L[JZHYGVFRFOGMIMKNMONVRXT MKOMVQWRXTXWWYVZS[O[LZKYJWJUI[JYKYH]UFO[ VFP[ OFLLNF]F\L\F L[S[F_NFKQJUJXKZN[R[UZWXXU\F OFLQKUKXLZN[ KFRF YF_FH\NFO[ OFPY \FO[ LFRF XF^FE_MFK[ NFLY UFK[ UFS[ VFTY ]FS[ JFQF ZF`FG]NFU[ OFV[ \FH[ LFRF XF^F F[L[ R[X[H]NFRPO[ OFSPP[ ]FSP LFRF YF_F L[S[G][FH[ \FI[ OFLLNF\F H[V[XUU[H\KILKXWYYY[ LLXX KIKKLMXYY[ PPLTKVKXLZK[ KVMZ LTLVMXMZK[ SSXN VIVLWNYNYLWKVI VIWLYNH\QIK[ SIY[ RIX[ MUVU I[O[ U[[[ QBOCNENGOIQJSJUIVGVEUCSBQBG]IB[bF^RJIZ RJ[ZI]NONPMPMONNPMTMVNWOXQXXYZZ[ WOWXXZZ[[[ WQVRPSMTLVLXMZP[S[UZWX PSNTMVMXNZP[G\LFL[ MFM[ MPONQMSMVNXPYSYUXXVZS[Q[OZMX SMUNWPXSXUWXUZS[ IFMFH[WPVQWRXQXPVNTMQMNNLPKSKULXNZQ[S[VZXX QMONMPLSLUMXOZQ[H]WFW[ XFX[ WPUNSMQMNNLPKSKULXNZQ[S[UZWX QMONMPLSLUMXOZQ[ TFXF W[[[H[LSXSXQWOVNTMQMNNLPKSKULXNZQ[S[VZXX WSWPVN QMONMPLSLUMXOZQ[KXUGTHUIVHVGUFSFQGPIP[ SFRGQIQ[ MMUM M[T[I\QMONNOMQMSNUOVQWSWUVVUWSWQVOUNSMQM ONNPNTOV UVVTVPUN VOWNYMYNWN NUMVLXLYM[P\U\X]Y^ LYMZP[U[X\Y^Y_XaUbObLaK_K^L\O[G]LFL[ MFM[ MPONRMTMWNXPX[ TMVNWPW[ IFMF I[P[ T[[[MXRFQGRHSGRF RMR[ SMS[ OMSM O[V[MXSFRGSHTGSF TMT_SaQbObNaN`O_P`Oa SMS_RaQb PMTMG\LFL[ MFM[ WMMW RSX[ QSW[ IFMF TMZM I[P[ T[Z[MXRFR[ SFS[ OFSF O[V[BcGMG[ HMH[ HPJNMMOMRNSPS[ OMQNRPR[ SPUNXMZM]N^P^[ ZM\N]P][ DMHM D[K[ O[V[ Z[a[G]LML[ MMM[ MPONRMTMWNXPX[ TMVNWPW[ IMMM I[P[ T[[[H\QMNNLPKSKULXNZQ[S[VZXXYUYSXPVNSMQM QMONMPLSLUMXOZQ[ S[UZWXXUXSWPUNSMG\LMLb MMMb MPONQMSMVNXPYSYUXXVZS[Q[OZMX SMUNWPXSXUWXUZS[ IMMM IbPbH\WMWb XMXb WPUNSMQMNNLPKSKULXNZQ[S[UZWX QMONMPLSLUMXOZQ[ Tb[bIZNMN[ OMO[ OSPPRNTMWMXNXOWPVOWN KMOM K[R[J[WOXMXQWOVNTMPMNNMOMQNRPSUUWVXW MPNQPRUTWUXVXYWZU[Q[OZNYMWM[NYKZPFPWQZS[U[WZXX QFQWRZS[ MMUMG]LMLXMZP[R[UZWX MMMXNZP[ WMW[ XMX[ IMMM TMXM W[[[I[LMR[ MMRY XMR[ JMPM TMZMF^JMN[ KMNX RMN[ RMV[ SMVX ZMV[ GMNM WM]MH\LMW[ MMX[ XML[ JMPM TMZM J[P[ T[Z[H[LMR[ MMRY XMR[P_NaLbKbJaK`La JMPM TMZMI[WML[ XMM[ MMLQLMXM L[X[XWW[G^QMNNLPKRJUJXKZN[P[RZUWWTYPZM QMONMPLRKUKXLZN[ QMSMUNVPXXYZZ[ SMTNUPWXXZZ[[[G\TFQGOIMMLPKTJZIb TFRGPINMMPLTKZJb TFVFXGYHYKXMWNTOPO VFXHXKWMVNTO POTPVRWTWWVYUZR[P[NZMYLV POSPURVTVWUYTZR[H\IPKNMMOMQNROSRSVRZOb JOLNPNRO ZMYPXRSYP^Nb YMXPWRSYI\VNTMRMONMQLTLWMYNZP[R[UZWWXTXQWOSJRHRFSEUEWFYH RMPNNQMTMXNZ R[TZVWWTWPVNTKSISGTFVFYHI[XPVNTMPMNNNPPRSS PMONOPQRSS SSNTLVLXMZP[S[UZWX SSOTMVMXNZP[I[TFRGQHQIRJUKZKZJWKSMPOMRLULWMYP[S]T_TaSbQbPa ULQONRMUMWNYP[G]HQIOKMNMONOPNTL[ MMNNNPMTK[ NTPPRNTMVMXNYOYRXWUb VMXOXRWWTbF]GQHOJMMMNNNPMUMXNZO[ LMMNMPLULXMZO[Q[SZUXWUXRYMYIXGVFTFRHRJSMUPWRZT SZUWVUWRXMXIWGVFLXRMPTOXOZP[S[UYVW SMQTPXPZQ[H\NMJ[ OMK[ XMYNZNYMWMUNQROSMS OSQTSZT[ OSPTRZS[U[WZYWH\KFMFOGPHQJWXXZY[ MFOHPJVXWZY[Z[ RMJ[ RMK[F]MMGb NMHb MPLVLYN[P[RZTXVU XMUXUZV[Y[[Y\W YMVXVZW[H\NML[ OMNSMXL[ YMXQVU ZMYPXRVUTWQYOZL[ KMOMIZTFRGQHQIRJUKXK UKQLOMNONQPSSTVT UKRLPMOOOQQSST STOUMVLXLZN\S^T_TaRbPb STPUNVMXMZO\S^I[RMONMQLTLWMYNZP[R[UZWWXTXQWOVNTMRM RMPNNQMTMXNZ R[TZVWWTWPVNG]PNL[ PNM[ VNV[ VNW[ IPKNNM[M IPKONN[NH[LVMYNZP[R[UZWWXTXQWOVNTMRMONMQLTHb R[TZVWWTWPVN RMPNNQMTIbH][MQMNNLQKTKWLYMZO[Q[TZVWWTWQVOUNSM QMONMQLTLXMZ Q[SZUWVTVPUN UN[NH\SNP[ SNQ[ JPLNOMZM JPLOONZNH\IQJOLMOMPNPPNVNYP[ NMONOPMVMYNZP[Q[TZVXXUYRYOXMWNXOYR XUYOG]ONMOKQJTJWKYLZN[Q[TZWXYUZRZOXMVMTORSPXMb JWLYNZQZTYWWYU ZOXNVNTPRSPYNbI[KMMMONPPU_VaWb MMNNOPT_UaWbYb ZMYOWRM]K`JbF]UFOb VFNb GQHOJMMMNNNPMUMXOZRZTYWVYS LMMNMPLULXMZO[R[TZVXXUYS[MF]JQLOONNMLNJQITIWJZK[M[OZQWRT IWJYKZMZOYQW QTQWRZS[U[WZYWZTZQYNXMWNYOZQ QWRYSZUZWYYWH]XMVTUXUZV[Y[[Y\W YMWTVXVZW[ VTVQUNSMQMNNLQKTKWLYMZO[Q[SZUWVT QMONMQLTLXMZH[PFLSLVMYNZ QFMS MSNPPNRMTMVNWOXQXTWWUZR[P[NZMWMS VNWPWTVWTZR[ MFQFI[WPWQXQXPWNUMRMONMQLTLWMYNZP[R[UZWW RMPNNQMTMXNZH]ZFVTUXUZV[Y[[Y\W [FWTVXVZW[ VTVQUNSMQMNNLQKTKWLYMZO[Q[SZUWVT QMONMQLTLXMZ WF[FI[MVQUTTWRXPWNUMRMONMQLTLWMYNZP[R[UZWX RMPNNQMTMXNZKZZGYHZI[H[GZFXFVGUHTJSMP[O_Na XFVHUJTNRWQ[P^O`NaLbJbIaI`J_K`Ja OMYMH\YMU[T^RaObLbJaI`I_J^K_J` XMT[S^QaOb VTVQUNSMQMNNLQKTKWLYMZO[Q[SZUWVT QMONMQLTLXMZH]PFJ[ QFK[ MTOPQNSMUMWNXOXQVWVZW[ UMWOWQUWUZV[Y[[Y\W MFQFLYUFTGUHVGUF MQNOPMSMTNTQRWRZS[ RMSNSQQWQZR[U[WYXWLYVFUGVHWGVF NQOOQMTMUNUQR[Q^P`OaMbKbJaJ`K_L`Ka SMTNTQQ[P^O`MbH\PFJ[ QFK[ XNWOXPYOYNXMWMUNQROSMS OSQTSZT[ OSPTRZS[U[WZYW MFQFMYUFQTPXPZQ[T[VYWW VFRTQXQZR[ RFVFAbBQCOEMHMINIPHTF[ GMHNHPGTE[ HTJPLNNMPMRNSOSQP[ PMRORQO[ RTTPVNXMZM\N]O]Q[W[Z\[ ZM\O\QZWZZ[[^[`YaWF]GQHOJMMMNNNPMTK[ LMMNMPLTJ[ MTOPQNSMUMWNXOXQVWVZW[ UMWOWQUWUZV[Y[[Y\WG\HQIOKMNMONOPNTJb MMNNNPMTIb NTOQQNSMUMWNXOYQYTXWVZS[Q[OZNWNT WNXPXTWWUZS[ FbMbH\XMRb YMSb VTVQUNSMQMNNLQKTKWLYMZO[Q[SZUWVT QMONMQLTLXMZ ObVbIZJQKOMMPMQNQPPTN[ OMPNPPOTM[ PTRPTNVMXMYNYOXPWOXNJ[XOXPYPYOXNUMRMONNONQORVVWW NPOQVUWVWYVZS[P[MZLYLXMXMYKYTFPTOXOZP[S[UYVW UFQTPXPZQ[ NMWMF]GQHOJMMMNNNQLWLYN[ LMMNMQKWKYLZN[P[RZTXVT XMVTUXUZV[Y[[Y\W YMWTVXVZW[H\IQJOLMOMPNPQNWNYP[ NMONOQMWMYNZP[Q[TZVXXUYQYMXMYOC`DQEOGMJMKNKQIWIYK[ IMJNJQHWHYIZK[M[OZQXRV TMRVRYSZU[W[YZ[X\V]R]M\M]O UMSVSYU[H\KQMNOMRMSOSR QMRORRQVPXNZL[K[JZJYKXLYKZ QVQYR[U[WZYW YNXOYPZOZNYMXMVNTPSRRVRYS[G\HQIOKMNMONOQMWMYO[ MMNNNQLWLYMZO[Q[SZUXWT ZMV[U^SaPbMbKaJ`J_K^L_K` YMU[T^RaPbH\YMXOVQNWLYK[ LQMOOMRMVO MOONRNVOXO LYNYRZUZWY NYR[U[WYXWG^VGUHVIWHWGUFRFOGMILLL[ RFPGNIMLM[ \G[H\I]H]G\FZFXGWIW[ ZFYGXIX[ IM[M I[P[ T[[[G]WGVHWIXHWGUFRFOGMILLL[ RFPGNIMLM[ WMW[ XMX[ IMXM I[P[ T[[[G]VGUHVIWHWGUF XFRFOGMILLL[ RFPGNIMLM[ WHW[ XFX[ IMWM I[P[ T[[[BcRGQHRISHRGPFMFJGHIGLG[ MFKGIIHLH[ ]G\H]I^H]G[FXFUGSIRLR[ XFVGTISLS[ ]M][ ^M^[ DM^M D[K[ O[V[ Z[a[BcRGQHRISHRGPFMFJGHIGLG[ MFKGIIHLH[ \G[H\I]H]G[F ^FXFUGSIRLR[ XFVGTISLS[ ]H][ ^F^[ DM]M D[K[ O[V[ Z[a[MXRMR[ SMS[ OMSM O[V[IZWNUMRMONMPLSLVMYNZQ[T[VZ RMPNNPMSMVNYOZQ[ MTUTI\TFQGOJNLMOLTLXMZO[Q[TZVWWUXRYMYIXGVFTF TFRGPJOLNOMTMXNZO[ Q[SZUWVUWRXMXIWGVF NPWPG]UFOb VFNb QMMNKPJSJVKXMZP[S[WZYXZUZRYPWNTMQM QMNNLPKSKVLXNZP[ S[VZXXYUYRXPVNTMI[TMVNXPXOWNTMQMNNMOLQLSMUOWSZ QMONNOMQMSNUSZT\T^S_Q_G]LMKNJPJRKUOYP[ JRKTOXP[P]O`MbLbKaJ_J\KXMTOQRNTMVMYNZPZTYXWZU[T[SZSXTWUXTY VMXNYPYTXXWZE_YGXHYIZHYGWFTFQGOINKMNLRJ[I_Ha TFRGPIOKNNLWK[J^I`HaFbDbCaC`D_E`Da _G^H_I`H`G_F]F[GZHYJXMU[T_Sa ]F[HZJYNWWV[U^T`SaQbObNaN`O_P`Oa IM^MF^[GZH[I\H[GXFUFRGPIOKNNMRK[J_Ia UFSGQIPKONMWL[K^J`IaGbEbDaD`E_F`Ea YMWTVXVZW[Z[\Y]W ZMXTWXWZX[ JMZMF^YGXHYIZHZGXF \FUFRGPIOKNNMRK[J_Ia UFSGQIPKONMWL[K^J`IaGbEbDaD`E_F`Ea [FWTVXVZW[Z[\Y]W \FXTWXWZX[ JMYM@cTGSHTIUHTGRFOFLGJIIKHNGRE[D_Ca OFMGKIJKINGWF[E^D`CaAb?b>a>`?_@`?a `G_H`IaH`G]FZFWGUITKSNRRP[O_Na ZFXGVIUKTNRWQ[P^O`NaLbJbIaI`J_K`Ja ^M\T[X[Z\[_[aYbW _M]T\X\Z][ DM_M@cTGSHTIUHTGRFOFLGJIIKHNGRE[D_Ca OFMGKIJKINGWF[E^D`CaAb?b>a>`?_@`?a ^G]H^I_H_G]F aFZFWGUITKSNRRP[O_Na ZFXGVIUKTNRWQ[P^O`NaLbJbIaI`J_K`Ja `F\T[X[Z\[_[aYbW aF]T\X\Z][ DM^MLYMQNOPMSMTNTQRWRZS[ RMSNSQQWQZR[U[WYXWH\QFNGLJKOKRLWNZQ[S[VZXWYRYOXJVGSFQF QFOGNHMJLOLRMWNYOZQ[ S[UZVYWWXRXOWJVHUGSFH\NJPISFS[ RGR[ N[W[H\LJMKLLKKKJLHMGPFTFWGXHYJYLXNUPPRNSLUKXK[ TFVGWHXJXLWNTPPR KYLXNXSZVZXYYX NXS[W[XZYXYVH\LJMKLLKKKJLHMGPFTFWGXIXLWNTOQO TFVGWIWLVNTO TOVPXRYTYWXYWZT[P[MZLYKWKVLUMVLW WQXTXWWYVZT[H\THT[ UFU[ UFJUZU Q[X[H\MFKP KPMNPMSMVNXPYSYUXXVZS[P[MZLYKWKVLUMVLW SMUNWPXSXUWXUZS[ MFWF MGRGWFH\WIVJWKXJXIWGUFRFOGMILKKOKULXNZQ[S[VZXXYUYTXQVOSNRNOOMQLT RFPGNIMKLOLUMXOZQ[ S[UZWXXUXTWQUOSNH\KFKL KJLHNFPFUIWIXHYF LHNGPGUI YFYIXLTQSSRVR[ XLSQRSQVQ[H\PFMGLILLMNPOTOWNXLXIWGTFPF PFNGMIMLNNPO TOVNWLWIVGTF POMPLQKSKWLYMZP[T[WZXYYWYSXQWPTO PONPMQLSLWMYNZP[ T[VZWYXWXSWQVPTOH\XMWPURRSQSNRLPKMKLLINGQFSFVGXIYLYRXVWXUZR[O[MZLXLWMVNWMX QSORMPLMLLMIOGQF SFUGWIXLXRWVVXTZR[MWR[QZRYSZS\R^Q_MWRMQNROSNRM R[QZRYSZS\R^Q_MWRFQHRTSHRF RHRN RYQZR[SZRYI[MJNKMLLKLJMHNGPFSFVGWHXJXLWNVORQRT SFUGVHWJWLVNTP RYQZR[SZRYNVRFQM SFQMJZNFMM OFMM VFUM WFUMJZRFRR MIWO WIMOKYUBNRUbKYOBVRObKYOBOb UBUbF^RJR[ JRZR J[Z[F^RJR[ JJZJ JRZRMWQQQSSSSQQQ RQRS QRSRE_RIQJRKSJRI IR[R RYQZR[SZRYE_YIK[ IO[O IU[UE_IM[M IR[R IW[WF^ZFJMZT JVZV J[Z[F^JFZMJT JVZV J[Z[F_[WYWWVUTRPQOONMNKOJQJSKUMVOVQURTUPWNYM[MF^IUISJPLONOPPTSVTXTZS[Q ISJQLPNPPQTTVUXUZT[Q[OG]JTROZT JTRPZTLXTFOL TFUGOLLXPFUL PFOGULH\KFLHNJQKSKVJXHYF KFLINKQLSLVKXIYFMWRHSGRFQGQIRKSLMWQFRGSISKRLQKRJE[HMLMRY KMR[ [BR[F^ZJSJOKMLKNJQJSKVMXOYSZZZF^JJJQKULWNYQZSZVYXWYUZQZJF^JJQJUKWLYNZQZSYVWXUYQZJZF^JZJSKOLMNKQJSJVKXMYOZSZZF^ZJSJOKMLKNJQJSKVMXOYSZZZ JRVRE_XP[RXT UMZRUW IRZRJZPLRITL MORJWO RJR[E_LPIRLT OMJROW JR[RJZPXR[TX MURZWU RIRZI\XRWOVNTMRMONMQLTLWMYNZP[R[UZWXXUYPYKXHWGUFRFPGOHOIPIPH RMPNNQMTMXNZ R[TZVXWUXPXKWHUFH\JFR[ KFRY ZFR[ JFZF KGYGAbDMIMRY HNR[ b:R[F^[CZD[E\D\C[BYBWCUETGSJRNPZO^N` VDUFTJRVQZP]O_MaKbIbHaH`I_J`Ia QKNLLNKQKSLVNXQYSYVXXVYSYQXNVLSKQKF_\S[UYVWVUUTTQPPONNLNJOIQISJULVNVPUQTTPUOWNYN[O\Q\SF^[FI[ NFPHPJOLMMKMIKIIJGLFNFPGSHVHYG[F WTUUTWTYV[X[ZZ[X[VYTWTF_[NZO[P\O\N[MZMYNXPVUTXRZP[M[JZIXIUJSPORMSKSIRGPFNGMIMKNNPQUXWZZ[[[\Z\Y M[KZJXJUKSMQ MKNMVXXZZ[E`WNVLTKQKOLNMMPMSNUPVSVUUVS QKOMNPNSOUPV WKVSVUXVZV\T]Q]O\L[JYHWGTFQFNGLHJJILHOHRIUJWLYNZQ[T[WZYYZX XKWSWUXVH\PBP_ TBT_ XIWJXKYJYIWGTFPFMGKIKKLMMNOOUQWRYT KKMMONUPWQXRYTYXWZT[P[MZKXKWLVMWLXJZUITJUKVJVIUGSFQFOGNINKOMQOVR OMTPVRWTWVVXTZ PNNPMRMTNVPXU[ NVSYU[V]V_UaSbQbOaN_N^O]P^O_JZRFQHRJSHRF RFRb RQQTRbSTRQ LMNNPMNLLM LMXM TMVNXMVLTMJZRFQHRJSHRF RFRT RPQRSVRXQVSRRP RTRb R^Q`RbS`R^ LMNNPMNLLM LMXM TMVNXMVLTM L[N\P[NZL[ L[X[ T[V\X[VZT[I\XFX[ KFXF PPXP K[X[E`QFNGKIILHOHRIUKXNZQ[T[WZZX\U]R]O\LZIWGTFQF ROQPQQRRSRTQTPSORO RPRQSQSPRPJ[PFNGOIQJ PFOGOI UFWGVITJ UFVGVI QJOKNLMNMQNSOTQUTUVTWSXQXNWLVKTJQJ RUR[ SUS[ NXWXI\RFOGMILLLMMPORRSSSVRXPYMYLXIVGSFRF RSR[ SSS[ NWWWD`PFMGJIHLGOGSHVJYM[P\T\W[ZY\V]S]O\LZIWGTFPF RFR\ GQ]QG`PMMNKPJSJTKWMYPZQZTYVWWTWSVPTNQMPM ]GWG[HUN ]G]M\IVO \HVNF\IIJGLFOFQGRIRLQOPQNSKU OFPGQIQMPPNS VFT[ WFS[ KUYUI\MFMU NFMQ MQNOONQMTMWNXPXRWTUV TMVNWPWRTXTZU[W[YY KFNFI\RNOOMQLTLUMXOZR[S[VZXXYUYTXQVOSNRN RHNJRFRN SHWJSFSN RSQTQURVSVTUTTSSRS RTRUSUSTRTG^QHRFR[ THSFS[ JHKFKMLPNRQSRS MHLFLNMQ [HZFZMYPWRTSSS XHYFYNXQ NWWWG]LFL[ MFM[ IFUFXGYHZJZMYOXPUQMQ UFWGXHYJYMXOWPUQ I[Y[YVX[H[YGUGQHNJLMKPKSLVNYQ[U\Y\ YGVHSJQMPPPSQVSYV[Y\F_OQMQKRJSIUIWJYKZM[O[QZRYSWSURSQROQ SHPQ ZJRR \QSTH\OKUY UKOY KOYU YOKUF^NVLUKUIVHXHYI[K\L\N[OYOXNVKRJOJMKJMHPGTGWHYJZMZOYRVVUXUYV[X\Y\[[\Y\X[VYUXUVV JMKKMIPHTHWIYKZMF^NMLNKNIMHKHJIHKGLGNHOJOKNMKQJTJVKYM[P\T\W[YYZVZTYQVMUKUJVHXGYG[H\J\K[MYNXNVM JVKXMZP[T[WZYXZVI[KYYK QLULYKXOXS ULXLXOI[YKKY LQLUKYOXSX LULXOXI[YYKK SLOLKKLOLS OLLLLOI[KKYY QXUXYYXUXQ UXXXXUF_JMILIJJHLGNGPHQIRKSP IJKHMHOIPJQLRPR[ [M\L\J[HYGWGUHTISKRP \JZHXHVIUJTLSPS[F^IGJKKMMOPPTPWOYMZK[G IGJJKLMNPOTOWNYLZJ[G PONPMQLSLVMXOZQ[S[UZWXXVXSWQVPTO PPNQMSMVNY VYWVWSVQTPF^MJMV NKNU VKVU WJWV IGKIMJPKTKWJYI[G IYKWMVPUTUWVYW[YF^[ILIJJILINJPLQNQPPQNQLPJ[J IMJOKPMQ QMPKOJMI IXXXZW[U[SZQXPVPTQSSSUTWIW [TZRYQWP STTVUWWXF]OUMTLTJUIWIXJZL[M[OZPXPWOUJPINIKJILHOGSGWHYJZLZOYRVUUWUYV[X[YZZX MSKPJNJKKILH SGVHXJYLYOXRVUG_HKKHMKMV JILLLV MKPHRKRU OIQLQU RKUHWKW[ TIVLV[ WKZH[J\M\P[SZUXWUYP[ YIZJ[M[PZSYUWWTYP[F^ISMSLRKOKMLJNHQGSGVHXJYMYOXRWS[S ITOTMRLOLMMJOHQG SGUHWJXMXOWRUT[T KXYX KYYYF_GLJIMLMX IJLMLX MLPISLSX OJRMRX SLVIYLYW[Y UJXMXXZZ]WG]ZIJY ZIWJQJ XKUKQJ ZIYLYR XKXNYR QRJR PSMSJR QRQY PSPVQYF^HOJKOU JMOWRPWPZO[M[KZIXHWHUITKTMUPVRWUWXUZ WHVIUKUMWQXTXWWYUZF^IOLLPN KMOORLUN QMTOWLYN VMXO[L IULRPT KSOURRUT QSTUWRYT VSXU[RF^JHNJPLQOQRPUNWJY JHMIOJQLRO RRQUOWMXJY ZHWIUJSLRO RRSUUWWXZY ZHVJTLSOSRTUVWZY IP[P IQ[QNVQQQSSSSQQQ QQSS SQQSJZMPQRTTVVWYW[V]U^ MQST MRPSTUVWWYJZWKVMTOPQMR SPMS UFVGWIWKVNTPQRMTH\SMONLPKRKTLVNWQWUVXTYRYPXNVMSM XNSM VMQNLP ONKR LVQW NWSVXT UVYRJ[SMPNNPMRMTNVPWRWUVWTXRXPWNUMSM OPUM NRVN MTWO NUXP OVWR PWVTJZOGO^ UFU] MNWL MOWM MWWU MXWVJZNFNX VLV^ NNVL NOVM NWVU NXVVJZNBNW NNQLTLVMWOWQVSSUQVNW NNQMTMVN UMVOVQUSSUE_HIHL \I\L HI\I HJ\J HK\K HL\LJZMNMQ WNWQ MNWN MOWO MPWP MQWQJZMLWX MLONQOTOVNWMWKUKUMTO ONTO QOWM VKVN ULWL WXUVSUPUNVMWMYOYOWPU UVPU SUMW NVNY MXOXJZPOOMOKMKMMNNPOSOUNWL NKNN MLOL MMSO POUN WLWYA^GfHfIeIdHcGcFdFfGhIiKiNhPfQdR`RUQ;Q4R/S-U,V,X-Y/Y3X6W8U;P?JCHEFHEJDNDREVGYJ[N\R\V[XZZW[T[PZMYKWITHPHMIKKJNJRKUMW GdGeHeHdGd U;Q?LCIFGIFKENERFVGXJ[ R\U[WZYWZTZPYMXKVITHEfNSOUQVSVUUVSVQUOSNQNOONPMSMVNYP[S\V\Y[[Y\W]T]P\MZJXIUHRHOIMJKLIOHSHXI]KaMcPeTfYf]e`cba KLJNIRIXJ\L`NbQdUeYe]d_cba POTO OPUP NQVQ NRVR NSVS OTUT PUTU aLaNcNcLaL bLbN aMcM aVaXcXcVaV bVbX aWcWD`H@Hd M@Md W@Wd \@\d MMWK MNWL MOWM MWWU MXWV MYWWH\PMMNLOKQKSLUMVPWTWWVXUYSYQXOWNTMPM MNLPLSMUNVPW WVXTXQWOVNTMJZQCVMRTRU ULQS TITKPRRUUY W\UYSXQXOYN[N]O_Ra W\UZSYOYO]P_Ra SXPZN]JZPOOMOKMKMMNNPOSOUNWL NKNN MLOL MMSO POUN WLSYIjNQOOQNSNUOVQVSUUSVQVOUNTMQMNNKPISHWH[I^K`NaRaW`[_]]`ZcVfQiMk WHZI]K_N`R`W_[^]\`YcTgQi POTO OPUP NQVQ NRVR NSVS OTUT PUTU eLeNgNgLeL fLfN eMgM eVeXgXgVeV fVfX eWgWD`H>Hf I>If M>Mf QBSBSDQDQAR?T>W>Y?[A\D\I[LYNWOUOSNRLQNOQNROSQVRXSVUUWUYV[X\[\`[cYeWfTfReQcQ`S`SbQb RBRD QCSC Y?ZA[D[IZLYN RLRNPQNRPSRVRX YVZX[[[`ZcYe R`Rb QaSaAcHBHb IBIb [B[b \B\b DB`B DbMb Wb`bBaGBQPFb FBPP EBPQ EB\B^I[B Ga\a Fb\b^[[bI[X+U1R8P=OANFMNMVN^OcPgRlUsXy U1S6QPBTJTLSNROMRRUSVTXTZPbOfOjPoRsVy T.R2Q5P:P>QCRF R^QaPfPjQoRrTvI\N+R1T5U:U>TBPJPLQNROWRRUQVPXPZTbUfUjToRsNy P.R2S5T:T>SCRF R^SaTfTjSoRrPvI[V.S1Q4O8N=NCOIPMSXT\UbUgTlSoQs S1Q5P8O=OBPHQLTWU[VaVgUlSpQsNvI[N.Q1S4U8V=VCUITMQXP\ObOgPlQoSs Q1S5T8U=UBTHSLPWO[NaNgOlQpSsVv7Z:RARRo @RQo ?RRr Z"VJRrCa].\.[/[0\1]1^0^.],[+Y+W,U.T0S3R:QJQjPsOv \/\0]0]/\/ R:Rj U.T1S:SZRjQqPtOvMxKyIyGxFvFtGsHsItIuHvGv GtGuHuHtGtH\RFJ[ RIK[J[ RIY[Z[ RFZ[ MUWU LVXVH\LFL[ MGMZ LFTFWGXHYJYMXOWPTQ MGTGWHXJXMWOTP MPTPWQXRYTYWXYWZT[L[ MQTQWRXTXWWYTZMZH]ZKYIWGUFQFOGMILKKNKSLVMXOZQ[U[WZYXZV ZKYKXIWHUGQGOHMKLNLSMVOYQZUZWYXXYVZVH]LFL[ MGMZ LFSFVGXIYKZNZSYVXXVZS[L[ MGSGVHWIXKYNYSXVWXVYSZMZI\MFM[ NGNZ MFYF NGYGYF NPTPTQ NQTQ NZYZY[ M[Y[I[MFM[ NGN[M[ MFYF NGYGYF NPTPTQ NQTQH]ZKYIWGUFQFOGMILKKNKSLVMXOZQ[U[WZYXZVZRUR ZKYKXIWHUGQGOHNIMKLNLSMVNXOYQZUZWYXXYVYSUSURG]KFK[ KFLFL[K[ YFXFX[Y[ YFY[ LPXP LQXQNWRFR[S[ RFSFS[J[VFVVUYSZQZOYNVMV VFWFWVVYUZS[Q[OZNYMVH]LFL[M[ LFMFM[ ZFYFMR ZFMS POY[Z[ QOZ[IZMFM[ MFNFNZ NZYZY[ M[Y[F^JFJ[ KKK[J[ KKR[ JFRX ZFRX YKR[ YKY[Z[ ZFZ[G]KFK[ LIL[K[ LIY[ KFXX XFXX XFYFY[G]PFNGLIKKJNJSKVLXNZP[T[VZXXYVZSZNYKXIVGTFPF QGNHLKKNKSLVNYQZSZVYXVYSYNXKVHSGQGH\LFL[ MGM[L[ LFUFWGXHYJYMXOWPUQMQ MGUGWHXJXMWOUPMPG]PFNGLIKKJNJSKVLXNZP[T[VZXXYVZSZNYKXIVGTFPF QGNHLKKNKSLVNYQZSZVYXVYSYNXKVHSGQG SXX]Y] SXTXY]H\LFL[ MGM[L[ LFTFWGXHYJYMXOWPTQMQ MGTGWHXJXMWOTPMP RQX[Y[ SQY[H\YIWGTFPFMGKIKKLMMNOOTQVRWSXUXXWYTZPZNYMXKX YIWIVHTGPGMHLILKMMONTPVQXSYUYXWZT[P[MZKXJ[RGR[ SGS[R[ LFYFYG LFLGYGG]KFKULXNZQ[S[VZXXYUYF KFLFLUMXNYQZSZVYWXXUXFYFH\JFR[ JFKFRX ZFYFRX ZFR[E_GFM[ GFHFMX RFMX RIM[ RIW[ RFWX ]F\FWX ]FW[H\KFX[Y[ KFLFY[ YFXFK[ YFL[K[I\KFRPR[S[ KFLFSP ZFYFRP ZFSPS[H\XFK[ YFL[ KFYF KFKGXG LZYZY[ K[Y[E\XFVHTKQPOSLWIZG[E[DZDXEWFXEY XFWJUTT[ XFU[ T[TYSVRTPRNQLQKRKTLWOZR[V[XZF^UGTHSJQOOUNWLZJ[ THSKQSPVOXMZJ[H[GZGXHWIXHY OLNNMOKOJNJLKJMHOGRFXFZG[I[KZMXNTORO XFYGZIZKYMXN TOWPXQYSYVXYWZU[S[RZRXSU TOVPWQXSXVWYU[H]KHJJJLKNNOQOUNWMYKZIZGYFWFTGQJOMMQLULXMZP[R[UZWXXVXTWRURSSRU WFUGRJPMNQMUMXNZP[F]UGTHSJQOOUNWLZJ[ THSKQSPVOXMZJ[H[GZGXHWJWLXNZP[S[UZWXYTZOZLYIWGUFPFMGKIJKJMKNMNNMOKI\WIVJVLWMYMZKZIYGWFTFRGQHPJPLQNSO TFRHQJQMSO SOQONPLRKTKWLYMZO[R[UZWXXVXTWRURSSRU QOOPMRLTLXMZG\WHVJTORUQWOZM[ QLPNNOLOKMKKLINGQF[FXGWHVKTSSVRXPZM[K[IZHYHXIWJXIY SFWGXG OSPRRQVQXPZMXTG]JIIKIMJOLPOPROTNWKXHXGWFVFTGRIQKPNPQQSSTUTWSYQZO WFUGSIRKQNQRST ZOYSWWUYSZO[L[JZIXIWJVKWJX YSWVUXRZO[F^LLKKKILGOFRFOQMWLYKZI[G[FZFXGWHXGY RFOONRLWKYI[ JTKSMRVOXN[L]J^H^G]F\FZGXJWLURTVTYV[W[YZ[X \FZHXLVRUVUYV[IYWHUKSPQUPWNZL[ YLWNTOQOONNLNJOHQGUFYFWHVJTPRVQXOZL[J[IZIXJWKXJYIZYFWHUKSPPYN] YMWOTPQPOONMNKOIQGUFYFWIVKSTQXPZN]M^K_J^J\KZMXOWRVVUF^LLKKKIMGPFRFOQMWLYKZI[G[FZFXGWHXGY RFOONRLWKYI[ ZGWKUMSNPO ]G\H]I^H^G]F\FZGWLVMTNPO POSPTRUYV[ PORPSRTYV[W[YZ[XI[MILKLMMOOPRPUOWNZK[H[GZFYFWGVHTKPUOWMZK[ VHTLRSQVPXNZK[I[HZHXIWKWMXPZR[U[WZYXD`RFNOKUIXGZE[C[BZBXCWDXCY RFPMOQNVNZP[ RFQJPOOVOZP[ [FWORXP[ [FYMXQWVWZY[Z[\Z^X [FZJYOXVXZY[G^RFQJOPMULWJZH[F[EZEXFWGXFY RFRKSVT[ RFSKTVT[ `G_H`IaHaG`F^F\GZJYLWQUWT[H]SFQGOIMLLNKRKVLYMZO[Q[TZVXXUYSZOZKYHXGWGUHSJQNPSPV QGOJMNLRLVMYO[F]UGTHSJQOOUNWLZJ[ THSKQSPVOXMZJ[H[GZGXHWIXHY OLNNMOKOJNJLKJMHOGRFVFYGZH[J[MZOYPVQTQRP VFXGYHZJZMYOXPVQH]UJULTNSOQPOPNNNLOIQGTFWFYGZIZMYPWSSWPYNZK[I[HZHXIWKWMXPZS[V[XZZX WFXGYIYMXPVSSVOYK[F^UGTHSJQOOUNWLZJ[ THSKQSPVOXMZJ[H[GZGXHWIXHY OLNNMOKOJNJLKJMHOGRFWFZG[I[KZMYNVORO WFYGZIZKYMXNVO ROUPVRWYX[ ROTPURVYX[Y[[Z]XH\NIMKMMNOPPSPVOXN[K\H\G[FZFXGWHVJUMSTRWPZN[ VJUNTUSXQZN[K[IZHXHWIVJWIXI[YHXJVOTUSWQZO[ SLRNPONOMMMKNIPGSF\FZGYHXKVSUVTXRZO[M[KZJYJXKWLXKY UFYGZGG]HJJGLFMFOHOKNNKVKYL[ MFNHNKKSJVJYL[N[PZSWUTVR ZFVRUVUYW[X[ZZ\X [FWRVVVYW[G\HJJGLFMFOHOKNOLVLYM[ MFNHNKLRKVKYM[N[QZTWVTXPYMZIZGYFXFWGVIVLWNYP[Q]QF]ILHLGKGIHGJFNFMHLLKUJ[ LLLUK[ VFTHRLOUMYK[ VFUHTLSUR[ TLTUS[ `F^G\IZLWUUYS[H\PKOLMLLKLIMGOFQFSGTITLSPQUOXMZJ[H[GZGXHWIXHY QFRGSISLRPPUNXLZJ[ ]G\H]I^H^G]F[FYGWIULSPRURXSZT[U[WZYXG]JJLGNFOFQGQIOOORPT OFPGPINONRPTRTUSWQYNZL \FZLWTUX ]F[LYQWUUXSZP[L[JZIXIWJVKWJXG\ZHYJWOVRUTSWQYOZL[ SLRNPONOMMMKNIPGSF]F[GZHYKXOVUTXQZL[H[GZGXHWJWLXOZQ[T[WZYX VFZG[GH\WMW[X[ WMXMX[ WPUNSMPMNNLPKSKULXNZP[S[UZWX WPSNPNNOMPLSLUMXNYPZSZWXH\LFL[M[ LFMFM[ MPONQMTMVNXPYSYUXXVZT[Q[OZMX MPQNTNVOWPXSXUWXVYTZQZMXI[XPVNTMQMONMPLSLUMXOZQ[T[VZXX XPWQVOTNQNOONPMSMUNXOYQZTZVYWWXXH\WFW[X[ WFXFX[ WPUNSMPMNNLPKSKULXNZP[S[UZWX WPSNPNNOMPLSLUMXNYPZSZWXI[MTXTXQWOVNTMQMONMPLSLUMXOZQ[T[VZXX MSWSWQVOTNQNOONPMSMUNXOYQZTZVYWWXXLZWFUFSGRJR[S[ WFWGUGSH TGSJS[ OMVMVN OMONVNH\XMWMW\V_U`SaQaO`N_L_ XMX\W_UaSbPbNaL_ WPUNSMPMNNLPKSKULXNZP[S[UZWX WPSNPNNOMPLSLUMXNYPZSZWXH\LFL[M[ LFMFM[ MQPNRMUMWNXQX[ MQPORNTNVOWQW[X[NWRFQGQHRISITHTGSFRF RGRHSHSGRG RMR[S[ RMSMS[NWRFQGQHRISITHTGSFRF RGRHSHSGRG RMRbSb RMSMSbH[LFL[M[ LFMFM[ XMWMMW XMMX PTV[X[ QSX[CbGMG[H[ GMHMH[ HQKNMMPMRNSQS[ HQKOMNONQORQR[S[ SQVNXM[M]N^Q^[ SQVOXNZN\O]Q][^[H\LML[M[ LMMMM[ MQPNRMUMWNXQX[ MQPORNTNVOWQW[X[I\QMONMPLSLUMXOZQ[T[VZXXYUYSXPVNTMQM QNOONPMSMUNXOYQZTZVYWXXUXSWPVOTNQNH\LMLbMb LMMMMb MPONQMTMVNXPYSYUXXVZT[Q[OZMX MPQNTNVOWPXSXUWXVYTZQZMXH\WMWbXb WMXMXb WPUNSMPMNNLPKSKULXNZP[S[UZWX WPSNPNNOMPLSLUMXNYPZSZWXKYOMO[P[ OMPMP[ PSQPSNUMXM PSQQSOUNXNXMJ[XPWNTMQMNNMPNRPSUUWV VUWWWXVZ WYTZQZNY OZNXMX XPWPVN WOTNQNNO ONNPOR NQPRUTWUXWXXWZT[Q[NZMXMXRFR[S[ RFSFS[ OMVMVN OMONVNH\LMLWMZO[R[TZWW LMMMMWNYPZRZTYWW WMW[X[ WMXMX[JZLMR[ LMMMRY XMWMRY XMR[F^IMN[ IMJMNX RMNX RPN[ RPV[ RMVX [MZMVX [MV[I[LMW[X[ LMMMX[ XMWML[ XMM[L[JZLMR[ LMMMRY XMWMRYNb XMR[ObNbI[VNL[ XMNZ LMXM LMLNVN NZXZX[ L[X[K[UUTSRRPRNSMTLVLXMZO[Q[SZTX PRNTMVMYO[ VRTXTZV[XZYY[V WRUXUZV[LZLVNSPO SFMXMZO[P[RZTXUUURVVWWXWZV TFNXNZO[LXTSSTTTTSSRQROSNTMVMXNZP[S[VYXV QROTNVNYP[K[UUTSRRPRNSMTLVLXMZO[Q[SZTX PRNTMVMYO[ ZFTXTZV[XZYY[V [FUXUZV[LXOYQXRWSUSSRRQROSNTMVMXNZP[S[VYXV QROTNVNYP[OXRRUOWLXIXGWFUGTIKdKfLgNfOcPZQ[S[UZVYXV TISNRRO[M`KdK[UUTSRRPRNSMTLVLXMZO[Q[SZTX PRNTMVMYO[ VRPd WRT[R`PdOfMgLfLdMaO_R]V[YY[VL[LVNSPO SFL[ TFM[ OUQSSRTRVSVUUXUZV[ TRUSUUTXTZV[XZYY[VNVSLRMSNTMSL QROXOZQ[SZTYVV RRPXPZQ[NVSLRMSNTMSL QRKd RRO[M`KdJfHgGfGdHaJ_M]Q[TYVVLZLVNSPO SFL[ TFM[ URUSVSURTRRTOU OURVSZT[ OUQVRZT[U[XYZVNVNVPSRO UFOXOZQ[SZTYVV VFPXPZQ[E^EVGSIRKSKUI[ IRJSJUH[ KUMSORPRRSRUP[ PRQSQUO[ RUTSVRWRYSYUXXXZY[ WRXSXUWXWZY[[Z\Y^VI[IVKSMROSOUM[ MRNSNUL[ OUQSSRTRVSVUUXUZV[ TRUSUUTXTZV[XZYY[VKYRRPRNSMTLVLXMZO[Q[SZTYUWUUTSRRQSQURWTXVXXWYV PRNTMVMYO[L[LVNSPO QLHg RLIg OUQSSRTRVSVUUXUZV[ TRUSUUTXTZV[XZYY[VK[UUTSRRPRNSMTLVLXMZO[Q[SZ PRNTMVMYO[ VRPdPfQgSfTcT[V[YY[V WRT[R`PdLZLVNSPRRSRUP[ PRQSQUO[ RUTSVRWRVU VRVUWWXWZVNZNVPSQQQSTUUWUYTZR[ QSSUTWTYR[ NZP[U[XYZVNVNVPSRO UFOXOZQ[SZTYVV VFPXPZQ[ PNVNK[NRLXLZN[O[QZSXUU ORMXMZN[ VRTXTZV[XZYY[V WRUXUZV[KZNRMTLWLZN[O[RZTXUUUR ORNTMWMZN[ URVVWWXWZVH]LRJTIWIZK[L[NZPX MRKTJWJZK[ RRPXPZR[S[UZWXXUXR SRQXQZR[ XRYVZW[W]VJZJVLSNRPRQSQUPXOZM[L[KZKYLYKZ WSVTWTWSVRURSSRUQXQZR[U[XYZV QSRU SSQU PXQZ QXOZK[NRLXLZN[O[QZSXUU ORMXMZN[ VRPd WRT[R`PdOfMgLfLdMaO_R]V[YY[VLYLVNSPRRRTSTVSXPZN[ RRSSSVRXPZ N[P\Q^QaPdNfLgKfKdLaO^R\VYYV N[O\P^PaOdNfH\QFNGLJKOKRLWNZQ[S[VZXWYRYOXJVGSFQF OGMJLOLRMWOZ NYQZSZVY UZWWXRXOWJUG VHSGQGNHH\NJPISFS[ NJNKPJRHR[S[H\LKLJMHNGPFTFVGWHXJXLWNUQL[ LKMKMJNHPGTGVHWJWLVNTQK[ LZYZY[ K[Y[H\MFXFQO MFMGWG WFPO QNSNVOXQYTYUXXVZS[P[MZLYKWLW POSOVPXS TOWQXTXUWXTZ XVVYSZPZMYLW OZLXH\UIU[V[ VFV[ VFKVZV UILV LUZUZVH\MFLO NGMN MFWFWG NGWG MNPMSMVNXPYSYUXXVZS[P[MZLYKWLW LOMOONSNVOXR TNWPXSXUWXTZ XVVYSZPZMYLW OZLXH\VGWIXIWGTFRFOGMJLOLTMXOZR[S[VZXXYUYTXQVOSNRNOOMQ WHTGRGOH PGNJMOMTNXQZ MVOYRZSZVYXV TZWXXUXTWQTO XSVPSOROOPMS QONQMTH\KFYFO[ KFKGXG XFN[O[H\PFMGLILKMMNNPOTPVQWRXTXWWYTZPZMYLWLTMRNQPPTOVNWMXKXIWGTFPF NGMIMKNMPNTOVPXRYTYWXYWZT[P[MZLYKWKTLRNPPOTNVMWKWIVG WHTGPGMH LXOZ UZXXH\WPURRSQSNRLPKMKLLINGQFRFUGWIXMXRWWUZR[P[MZLXMXNZ WMVPSR WNUQRRQRNQLN PRMPLMLLMIPG LKNHQGRGUHWK SGVIWMWRVWTZ UYRZPZMYMXRXQYQZR[S[TZTYSXRX RYRZSZSYRYMXTZS[R[QZQYRXSXTYT\S^Q_ RYRZSZSYRY S[T\ TZS^MXRMQNQORPSPTOTNSMRM RNROSOSNRN RXQYQZR[S[TZTYSXRX RYRZSZSYRYMXRMQNQORPSPTOTNSMRM RNROSOSNRN TZS[R[QZQYRXSXTYT\S^Q_ RYRZSZSYRY S[T\ TZS^MXRFRTST RFSFST RXQYQZR[S[TZTYSXRX RYRZSZSYRYI\LKLJMHNGQFTFWGXHYJYLXNWOUPRQ LKMKMJNHQGTGWHXJXLWNUORP MIPG UGXI XMTP RPRTSTSP RXQYQZR[S[TZTYSXRX RYRZSZSYRYMXTFRGQIQLRMSMTLTKSJRJQK RKRLSLSKRK RGQK QIRJMXTHSIRIQHQGRFSFTGTJSLQM RGRHSHSGRG SITJ THSLF_\MZMXNWPUVTXSYQZMZKYJWJUKSLRQOSMTKTISGQFPFNGMIMKNNPQUWXZZ[\[ \M\NZNWP ZMXPVVUXSZQ[M[KZJYIWIUJSLQQNRMSKSIRG SHQGPGNH OGNINKONQQVWXYZZ\Z\[I\RBR_S_ RBSBS_ WIYIWGTFQFNGLILKMMNNVRWSXUXWWYTZQZOYNX WIVHTGQGNHMIMKNMVQXSYUYWXYWZT[Q[NZLXNX XXUZG^[BIbJb [B\BJbKYUBSDQGOKNPNTOYQ]S`UbVb UBVBTDRGPKOPOTPYR]T`VbKYNBPDRGTKUPUTTYR]P`NbOb NBOBQDSGUKVPVTUYS]Q`ObJZRFQGSQRR RFRR RFSGQQRR MINIVOWO MIWO MIMJWNWO WIVINOMO WIMO WIWJMNMOF_JQ[Q[R JQJR[RF_RIRZSZ RISISZ JQ[Q[R JQJR[RF_JM[M[N JMJN[N JU[U[V JUJV[VNWSFRGRM SGRM SFTGRMI[NFMGMM NGMM NFOGMM WFVGVM WGVM WFXGVMKYQFOGNINKOMQNSNUMVKVIUGSFQF QFNIOMSNVKUGQF SFOGNKQNUMVISFF^ZIJRZ[ ZIZJLRZZZ[F^JIZRJ[ JIJJXRJZJ[G^OFObPb OFPFPb UFUbVb UFVFVb JP[P[Q JPJQ[Q JW[W[X JWJX[XF^[FYGVHSHPGNFLFJGIIIKKMMMOLPJPHNF [FH[I[ [F\FI[ YTWTUUTWTYV[X[ZZ[X[VYT NFJGIKMMPJNF LFIIKMOLPHLF YTUUTYX[[XYT WTTWV[ZZ[VWTE`WMTKQKOLNMMOMRNTOUQVTVWT WMTLQLOMNONROTQUTUWT VKVSWUYVZV\U]S]O\L[JYHWGTFQFNGLHJJILHOHRIUJWLYNZQ[U[YZ VKWKWSXUZV YV[U\S\O[LZJYIWHTGQGNHLIKJJLIOIRJUKWLXNYQZUZYYYZE_JPLONOPPSTTUVVXVZU[S[QZOXNVNTOSPPTNULUJT ZPXOVOTPQTPUNVLVJUISIQJOLNNNPOQPTTVUXUZT KOJQJSKU YUZSZQYOH]TFQGOIMLLOKSKVLYMZO[Q[TZVXXUYRZNZKYHXGVFTF TFRGPINLMOLSLVMYO[ Q[SZUXWUXRYNYKXHVFH]TJO[ VFP[ VFSIPKNL UIQKNLH]OJPKOLNKNJOHPGSFVFYGZIZKYMWOTQPSMUKWI[ VFXGYIYKXMVOPS JYKXMXRZUZWYXW MXR[U[WZXWH]OJPKOLNKNJOHPGSFVFYGZIZKYMVOSP VFXGYIYKXMVO QPSPVQWRXTXWWYVZS[O[LZKYJWJVKULVKW SPUQVRWTWWVYUZS[H]XGR[ YFS[ YFJUZUH]QFLP QF[F QGVG[F LPMOPNSNVOWPXRXUWXUZR[O[LZKYJWJVKULVKW SNUOVPWRWUVXTZR[H]YIXJYKZJZIYGWFTFQGOIMLLOKSKWLYMZO[R[UZWXXVXSWQVPTOQOOPMRLT TFRGPINLMOLSLXMZ R[TZVXWVWRVPH]NFLL [FZIXLSRQUPWO[ XLRRPUOWN[ MIPFRFWI NHPGRGWIYIZH[FH]SFPGOHNJNMOOQPTPXOYNZLZIYGVFSF SFQGPHOJOMPOQP TPWOXNYLYIXGVF QPMQKSJUJXKZN[R[VZWYXWXTWRVQTP QPNQLSKUKXLZN[ R[UZVYWWWSVQH]YMXOVQTRQROQNPMNMKNIPGSFVFXGYHZJZNYRXUVXTZQ[N[LZKXKWLVMWLX OQNONKOIQGSF XGYIYNXRWUUXSZQ[MXPYOZP[QZPYMXP[OZPYQZQ[P]N_MXSMRNSOTNSM PYOZP[QZMXSMRNSOTNSM P[OZPYQZQ[P]N_MXUFTGRS UGRS UFVGRS PYOZP[QZPYH]OJPKOLNKNJOHPGSFWFZG[I[KZMYNSPQQQSRTTT WFYGZIZKYMXNVO PYOZP[QZPYMXVFTHSJSKTLUKTJMXUHTGUFVGVHUJSLE_\N[O\P]O]N\M[MYNWPRXPZN[K[HZGXGVHTISKRPPROTMUKUITGRFPGOIOLPRQUSXUZW[Y[ZYZX K[IZHXHVITJSPP OLPQQTSWUYWZYZZYH]TBL_ YBQ_ ZJYKZL[K[JZHYGVFRFOGMIMKNMONVRXT MKOMVQWRXTXWWYVZS[O[LZKYJWJVKULVKWG]_BEbKZZBVESHQKOONTNXO]P`Qb VESIQMPPOUOZP_QbJYSBTDUGVLVPUUSYQ\N_Jb SBTEUJUOTTSWQ[N_J[TFTR OIYO YIOONWUFSM VFSMI[PFNM QFNM YFWM ZFWMKZSFQGPIPKQMSNUNWMXKXIWGUFSFH]SFLb YFRb LQZQ KWYWE_^F\GXHUHQGOFMFKGJIJKLMNMPLQJQHOF ^FF[ XTVTTUSWSYU[W[YZZXZVXTG]LFL[ MFM[ IFYFYLXF MPUPXQYRZTZWYYXZU[I[ UPWQXRYTYWXYWZU[F^NFNLMTLXKZJ[ XFX[ YFY[ KF\F G[\[ G[Gb H[Gb [[\b \[\bCbRFR[ SFS[ OFVF GGHHGIFHFGGFHFIGJIKMLONPWPYOZM[I\G]F^F_G_H^I]H^G NPLQKSJXIZH[ NPMQLSKXJZI[G[FZEX WPYQZS[X\Z][ WPXQYSZX[Z\[^[_Z`X O[V[H\LIKFKLLINGPFTFWGXIXLWNTOQO TFVGWIWLVNTO TOVPXRYTYWXYWZT[O[MZLYKWKVLUMVLW WQXTXWWYVZT[F^KFK[ LFL[ XFX[ YFY[ HFOF UF\F XHLY H[O[ U[\[F^KFK[ LFL[ XFX[ YFY[ HFOF UF\F XHLY H[O[ U[\[ N@N?M?M@NBPCTCVBW@F^KFK[ LFL[ HFOF LPSPUOVMWIXGYFZF[G[HZIYHZG SPUQVSWXXZY[ SPTQUSVXWZX[Z[[Z\X H[O[E^MFMLLTKXJZI[H[GZGYHXIYHZ XFX[ YFY[ JF\F U[\[H]KFRV LFSV ZFSVQYPZN[M[LZLYMXNYMZ IFOF VF\FF_RFR[ SFS[ OFVF PILJJLIOIRJULWPXUXYW[U\R\O[LYJUIPI PIMJKLJOJRKUMWPX UXXWZU[R[OZLXJUI O[V[F^KFK[ LFL[ XFX[ YFY[ HFOF UF\F H[\[ [[\b \[\bF]KFKQLSOTRTUSWQ LFLQMSOT WFW[ XFX[ HFOF TF[F T[[[BcGFG[ HFH[ RFR[ SFS[ ]F][ ^F^[ DFKF OFVF ZFaF D[a[BcGFG[ HFH[ RFR[ SFS[ ]F][ ^F^[ DFKF OFVF ZFaF D[a[ `[ab a[abF`PFP[ QFQ[ IFHLHFTF QPXP[Q\R]T]W\Y[ZX[M[ XPZQ[R\T\W[YZZX[CaHFH[ IFI[ EFLF IPPPSQTRUTUWTYSZP[E[ PPRQSRTTTWSYRZP[ [F[[ \F\[ XF_F X[_[H]MFM[ NFN[ JFQF NPUPXQYRZTZWYYXZU[J[ UPWQXRYTYWXYWZU[H]LIKFKLLINGQFSFVGXIYKZNZSYVXXVZS[P[MZLYKWKVLUMVLW SFUGWIXKYNYSXVWXUZS[ PPYPCbHFH[ IFI[ EFLF E[L[ VFSGQIPKOOORPVQXSZV[X[[Z]X^V_R_O^K]I[GXFVF VFTGRIQKPOPRQVRXTZV[ X[ZZ\X]V^R^O]K\IZGXF IPOPG]WFW[ XFX[ [FOFLGKHJJJLKNLOOPWP OFMGLHKJKLLNMOOP RPPQORLYKZJZIY PQOSMZL[J[IYIX T[[[H\XFWGQINKLNKQKULXNZQ[S[VZXXYUYSXPVNSMQMNNLPKS XFWHUIQJNLLN QMONMPLSLUMXOZQ[ S[UZWXXUXSWPUNSMH\MMM[ NMN[ JMUMXNYPYQXSUT UMWNXPXQWSUT NTUTXUYWYXXZU[J[ UTWUXWXXWZU[HZMMM[ NMN[ JMXMXRWM J[Q[F]NMNQMWLZK[ WMW[ XMX[ KM[M I[H`H[[[[`Z[E`RMR[ SMS[ OMVM JNIOHNIMJMKNMRNSPTUTWSXRZN[M\M]N\O[N PTNUMVKZJ[ PTNVLZK[I[HZGX UTWUXVZZ[[ UTWVYZZ[\[]Z^X O[V[I[MOLMLQMONNPMTMWNXPXQWSTT TMVNWPWQVSTT QTTTWUXWXXWZT[P[MZLXLWMVNWMX TTVUWWWXVZT[G]LML[ MMM[ WMW[ XMX[ IMPM TM[M I[P[ T[[[ WNMZG]LML[ MMM[ WMW[ XMX[ IMPM TM[M I[P[ T[[[ WNMZ OGOFNFNGOIQJSJUIVGH\MMM[ NMN[ JMQM NTPTSSTRVNWMXMYNXOWN PTSUTVVZW[ PTRUSVUZV[X[YZZX J[Q[G]NMNQMWLZK[J[IZJYKZ WMW[ XMX[ KM[M T[[[G^LML[ LMR[ MMRY XMR[ XMX[ YMY[ IMMM XM\M I[O[ U[\[G]LML[ MMM[ WMW[ XMX[ IMPM TM[M MTWT I[P[ T[[[G]LML[ MMM[ WMW[ XMX[ IM[M I[P[ T[[[I\RMR[ SMS[ MMLRLMYMYRXM O[V[I[LMR[ MMRY XMR[P_NaLbKbJaK`La JMPM TMZMH]RFRb SFSb OFSF RPQNPMNMLNKQKWLZN[P[QZRX NMMNLQLWMZN[ WMXNYQYWXZW[ SPTNUMWMYNZQZWYZW[U[TZSX ObVbG]LML[ MMM[ WMW[ XMX[ IMPM TM[M I[[[[`Z[G]LMLTMVPWRWUVWT MMMTNVPW WMW[ XMX[ IMPM TM[M T[[[CbHMH[ IMI[ RMR[ SMS[ \M\[ ]M][ EMLM OMVM YM`M E[`[CbHMH[ IMI[ RMR[ SMS[ \M\[ ]M][ EMLM OMVM YM`M E[`[``_[H]QMQ[ RMR[ LMKRKMUM RTVTYUZWZXYZV[N[ VTXUYWYXXZV[E_JMJ[ KMK[ GMNM KTOTRUSWSXRZO[G[ OTQURWRXQZO[ YMY[ ZMZ[ VM]M V[][J[OMO[ PMP[ LMSM PTTTWUXWXXWZT[L[ TTVUWWWXVZT[I\MOLMLQMONNPMSMVNXPYSYUXXVZS[P[NZLXLWMVNWMX SMUNWPXSXUWXUZS[ RTXTDaIMI[ JMJ[ FMMM F[M[ VMSNQPPSPUQXSZV[X[[Z]X^U^S]P[NXMVM VMTNRPQSQURXTZV[ X[ZZ\X]U]S\PZNXM JTPTG\VMV[ WMW[ ZMOMLNKPKQLSOTVT OMMNLPLQMSOT TTQUPVNZM[ TTRUQVOZN[L[KZJX S[Z[H\RFKZ QIW[ RIX[ RFY[ MUVU I[O[ T[[[ KZJ[ KZM[ WZU[ WYV[ XYZ[G]LFL[ MGMZ NFN[ IFUFXGYHZJZLYNXOUP XHYJYLXN UFWGXIXMWOUP NPUPXQYRZTZWYYXZU[I[ XRYTYWXY UPWQXSXXWZU[ JFLG KFLH OFNH PFNG LZJ[ LYK[ NYO[ NZP[G\XIYFYLXIVGTFQFNGLIKKJNJSKVLXNZQ[T[VZXXYV MILKKNKSLVMX QFOGMJLNLSMWOZQ[G]LFL[ MGMZ NFN[ IFSFVGXIYKZNZSYVXXVZS[I[ WIXKYNYSXVWX SFUGWJXNXSWWUZS[ JFLG KFLH OFNH PFNG LZJ[ LYK[ NYO[ NZP[G\LFL[ MGMZ NFN[ IFYFYL NPTP TLTT I[Y[YU JFLG KFLH OFNH PFNG TFYG VFYH WFYI XFYL TLSPTT TNRPTR TOPPTQ LZJ[ LYK[ NYO[ NZP[ T[YZ V[YY W[YX X[YUG[LFL[ MGMZ NFN[ IFYFYL NPTP TLTT I[Q[ JFLG KFLH OFNH PFNG TFYG VFYH WFYI XFYL TLSPTT TNRPTR TOPPTQ LZJ[ LYK[ NYO[ NZP[G^XIYFYLXIVGTFQFNGLIKKJNJSKVLXNZQ[T[VZXZY[YS MILKKNKSLVMX QFOGMJLNLSMWOZQ[ XTXY WSWYVZ TS\S USWT VSWU ZSYU [SYTF^KFK[ LGLZ MFM[ WFW[ XGXZ YFY[ HFPF TF\F MPWP H[P[ T[\[ IFKG JFKH NFMH OFMG UFWG VFWH ZFYH [FYG KZI[ KYJ[ MYN[ MZO[ WZU[ WYV[ YYZ[ YZ[[LXQFQ[ RGRZ SFS[ NFVF N[V[ OFQG PFQH TFSH UFSG QZO[ QYP[ SYT[ SZU[JZSFSWRZQ[ TGTWSZ UFUWTZQ[O[MZLXLVMUNUOVOWNXMX MVMWNWNVMV PFXF QFSG RFSH VFUH WFUGF\KFK[ LGLZ MFM[ XGMR PPW[ QPX[ QNY[ HFPF UF[F H[P[ T[[[ IFKG JFKH NFMH OFMG WFXG ZFXG KZI[ KYJ[ MYN[ MZO[ WYU[ WYZ[I[NFN[ OGOZ PFP[ KFSF K[Z[ZU LFNG MFNH QFPH RFPG NZL[ NYM[ PYQ[ PZR[ U[ZZ W[ZY X[ZX Y[ZUE_JFJZ JFQ[ KFQX LFRX XFQ[ XFX[ YGYZ ZFZ[ GFLF XF]F G[M[ U[][ HFJG [FZH \FZG JZH[ JZL[ XZV[ XYW[ ZY[[ ZZ\[F^KFKZ KFY[ LFXX MFYX YGY[ HFMF VF\F H[N[ IFKG WFYG [FYG KZI[ KZM[G]QFNGLIKKJOJRKVLXNZQ[S[VZXXYVZRZOYKXIVGSFQF MILKKNKSLVMX WXXVYSYNXKWI QFOGMJLNLSMWOZQ[ S[UZWWXSXNWJUGSFG]LFL[ MGMZ NFN[ IFUFXGYHZJZMYOXPUQNQ XHYJYMXO UFWGXIXNWPUQ I[Q[ JFLG KFLH OFNH PFNG LZJ[ LYK[ NYO[ NZP[G]QFNGLIKKJOJRKVLXNZQ[S[VZXXYVZRZOYKXIVGSFQF MILKKNKSLVMX WXXVYSYNXKWI QFOGMJLNLSMWOZQ[ S[UZWWXSXNWJUGSF NXOVQURUTVUXV^W`Y`Z^Z\ V\W^X_Y_ UXW]X^Y^Z]G]LFL[ MGMZ NFN[ IFUFXGYHZJZLYNXOUPNP XHYJYLXN UFWGXIXMWOUP RPTQUSWYX[Z[[Y[W WWXYYZZZ TQURXXYYZY[X I[Q[ JFLG KFLH OFNH PFNG LZJ[ LYK[ NYO[ NZP[H\XIYFYLXIVGSFPFMGKIKLLNOPURWSXUXXWZ LLMNOOUQWRXT MGLILKMMONUPXRYTYWXYWZT[Q[NZLXKUK[LXH\JFJL QFQ[ RGRZ SFS[ ZFZL JFZF N[V[ KFJL LFJI MFJH OFJG UFZG WFZH XFZI YFZL QZO[ QYP[ SYT[ SZU[F^KFKULXNZQ[S[VZXXYUYG LGLVMX MFMVNYOZQ[ HFPF VF\F IFKG JFKH NFMH OFMG WFYG [FYGH\KFR[ LFRXR[ MFSX YGR[ IFPF UF[F JFLH NFMH OFMG WFYG ZFYGF^JFN[ KFNVN[ LFOV RFOVN[ RFV[ SFVVV[ TFWV ZGWVV[ GFOF RFTF WF]F HFKG IFKH MFLH NFLG XFZG \FZGH\KFW[ LFX[ MFY[ XGLZ IFPF UF[F I[O[ T[[[ JFMH NFMH OFMG VFXG ZFXG LZJ[ LZN[ WZU[ WYV[ WYZ[G]JFQQQ[ KFRQRZ LFSQS[ YGSQ HFOF VF\F N[V[ IFKG NFLG WFYG [FYG QZO[ QYP[ SYT[ SZU[H\YFKFKL WFK[ XFL[ YFM[ K[Y[YU LFKL MFKI NFKH PFKG T[YZ V[YY W[YX X[YUI[NFN[ OGOZ PFP[ KFZFZL K[S[ LFNG MFNH QFPH RFPG UFZG WFZH XFZI YFZL NYM[ NZL[ PYQ[ PZR[H\RFJ[ QIX[ RIY[ RFZ[ KYXY KZXZ J[Z[G]QFNGLIKKJOJRKVLXNZQ[S[VZXXYVZRZOYKXIVGSFQF MILKKNKSLVMX WXXVYSYNXKWI QFOGMJLNLSMWOZQ[ S[UZWWXSXNWJUGSF OMOT UMUT OPUP OQUQ ONPP OOQP UNTP UOSP PQOS QQOR SQUR TQUSH\RFKZ QIW[ RIX[ RFY[ I[O[ T[[[ KZJ[ KZM[ WZU[ WYV[ XYZ[G]JEJL ZEZL OMOT UMUT JUJ\ ZUZ\ JGZG JHZH JIZI OPUP OQUQ JXZX JYZY JZZZ JFMH ZFWH KIJK LIJJ XIZJ YIZK ONPP OOQP UNTP UOSP PQOS QQOR SQUR TQUS JVKX JWLX ZWXX ZVYX MYJ[ WYZ[F^KFK[ LGLZ MFM[ WFW[ XGXZ YFY[ HF\F H[P[ T[\[ IFKG JFKH NFMH OFMG UFWG VFWH ZFYH [FYG KZI[ KYJ[ MYN[ MZO[ WZU[ WYV[ YYZ[ YZ[[G]IFPPQQ JFQP KFRPI[ IFYFZLYIWF VFYH TFYG KYYY JZYZ I[Y[ZUYXWYH\JMKILGMFOFPGQIRM LHMGOGPH JMKJMHOHPIQMQ[ RMR[ ZMYJWHUHTISMS[ XHWGUGTH ZMYIXGWFUFTGSIRM N[V[ QYP[ QZO[ SZU[ SYT[G]QFQ[ RGRZ SFS[ NFVF N[V[ OFQG PFQH TFSH UFSG QZO[ QYP[ SYT[ SZU[ OKLLKMJOJRKTLUOVUVXUYTZRZOYMXLUKOK LMKOKRLT XTYRYOXM OKMLLOLRMUOV UVWUXRXOWLUKF^QFQ[ RGRZ SFS[ NFVF N[V[ OFQG PFQH TFSH UFSG QZO[ QYP[ SYT[ SZU[ HMIMJNKQLSMTPUTUWTXSYQZN[M\M LRKNJLILKN HMIKJKKLLPMSNTPU YN[LZLYNXR TUVTWSXPYLZK[K\MG]NYKYJWK[O[MVKRJOJLKIMGPFTFWGYIZLZOYRWVU[Y[ZWYYVY LSKOKLLI XIYLYOXS O[MULPLKMHNGPF TFVGWHXKXPWUU[ KZNZ VZYZH\UFIZ SJT[ THUZ UFUHVYV[ LUTU F[L[ Q[X[ IZG[ IZK[ TZR[ TYS[ VYW[F^OFI[ PFJ[ QFK[ LFWFZG[I[KZNYOVP YGZIZKYNXO WFXGYIYKXNVP NPVPXQYSYUXXVZR[F[ WQXSXUWXUZ VPWRWUVXTZR[ MFPG NFOH RFPH SFPG JZG[ JYH[ KYL[ JZM[H]ZH[H\F[L[JZHYGWFTFQGOIMLLOKSKVLYMZP[S[UZWXXV QHOJNLMOLSLWMY TFRGPJOLNOMSMXNZP[F]OFI[ PFJ[ QFK[ LFUFXGYHZKZOYSWWUYSZO[F[ WGXHYKYOXSVWTY UFWHXKXOWSUWRZO[ MFPG NFOH RFPH SFPG JZG[ JYH[ KYL[ JZM[F]OFI[ PFJ[ QFK[ ULST LF[FZL NPTP F[U[WV MFPG NFOH RFPH SFPG WFZG XFZH YFZI ZFZL ULSPST TNRPSR TOQPSQ JZG[ JYH[ KYL[ JZM[ P[UZ R[UY UYWVF\OFI[ PFJ[ QFK[ ULST LF[FZL NPTP F[N[ MFPG NFOH RFPH SFPG WFZG XFZH YFZI ZFZL ULSPST TNRPSR TOQPSQ JZG[ JYH[ KYL[ JZM[H^ZH[H\F[L[JZHYGWFTFQGOIMLLOKSKVLYMZP[R[UZWXYT QHOJNLMOLSLWMY VXWWXT TFRGPJOLNOMSMXNZP[ R[TZVWWT TT\T UTWU VTWW ZTXV [TXUE_NFH[ OFI[ PFJ[ ZFT[ [FU[ \FV[ KFSF WF_F LPXP E[M[ Q[Y[ LFOG MFNH QFOH RFOG XF[G YFZH ]F[H ^F[G IZF[ IYG[ JYK[ IZL[ UZR[ UYS[ VYW[ UZX[KYTFN[ UFO[ VFP[ QFYF K[S[ RFUG SFTH WFUH XFUG OZL[ OYM[ PYQ[ OZR[I\WFRWQYO[ XFTSSVRX YFUSSXQZO[M[KZJXJVKULUMVMWLXKX KVKWLWLVKV TF\F UFXG VFWH ZFXH [FXGF]OFI[ PFJ[ QFK[ \GMR QOU[ ROV[ SNWZ LFTF YF_F F[N[ R[Y[ MFPG NFOH RFPH SFPG ZF\G ^F\G JZG[ JYH[ KYL[ JZM[ UZS[ UYT[ VYX[H\QFK[ RFL[ SFM[ NFVF H[W[YU OFRG PFQH TFRH UFRG LZI[ LYJ[ MYN[ LZO[ R[WZ T[XX V[YUD`MFGZ MGNYN[ NFOY OFPX [FPXN[ [FU[ \FV[ ]FW[ JFOF [F`F D[J[ R[Z[ KFMG LFMH ^F\H _F\G GZE[ GZI[ VZS[ VYT[ WYX[ VZY[F_OFIZ OFV[ PFVX QFWX \GWXV[ LFQF YF_F F[L[ MFPG NFPH ZF\G ^F\G IZG[ IZK[G]SFPGNILLKOJSJVKYLZN[Q[TZVXXUYRZNZKYHXGVFSF OIMLLOKSKWLY UXWUXRYNYJXH SFQGOJNLMOLSLXMZN[ Q[SZUWVUWRXNXIWGVFF]OFI[ PFJ[ QFK[ LFXF[G\I\K[NYPUQMQ ZG[I[KZNXP XFYGZIZKYNWPUQ F[N[ MFPG NFOH RFPH SFPG JZG[ JYH[ KYL[ JZM[G]SFPGNILLKOJSJVKYLZN[Q[TZVXXUYRZNZKYHXGVFSF OIMLLOKSKWLY UXWUXRYNYJXH SFQGOJNLMOLSLXMZN[ Q[SZUWVUWRXNXIWGVF LXMVOUPURVSXT]U^V^W] T^U_V_ SXS_T`V`W]W\F^OFI[ PFJ[ QFK[ LFWFZG[I[KZNYOVPNP YGZIZKYNXO WFXGYIYKXNVP RPTQURWXXYYYZX WYXZYZ URVZW[Y[ZXZW F[N[ MFPG NFOH RFPH SFPG JZG[ JYH[ KYL[ JZM[G^ZH[H\F[L[JZHYGVFRFOGMIMLNNPPVSWUWXVZ NLONVRWT OGNINKOMUPWRXTXWWYVZS[O[LZKYJWJUI[JYKYG]TFN[ UFO[ VFP[ MFKL ]F\L MF]F K[S[ NFKL PFLI RFMG YF\G ZF\H [F\I \F\L OZL[ OYM[ PYQ[ OZR[F_NFKQJUJXKZN[R[UZWXXU\G OFLQKUKYLZ PFMQLULYN[ KFSF YF_F LFOG MFNH QFOH RFOG ZF\G ^F\GH\NFNHOYO[ OGPX PFQW [GO[ LFSF XF^F MFNH QFPH RFOG YF[G ]F[GE_MFMHKYK[ NGLX OFMW UFMWK[ UFUHSYS[ VGTX WFUW ]GUWS[ JFRF UFWF ZF`F KFNG LFMH PFNI QFNG [F]G _F]GG]NFT[ OFU[ PFV[ [GIZ LFSF XF^F F[L[ Q[X[ MFOH QFPH RFPG YF[G ]F[G IZG[ IZK[ TZR[ TYS[ UYW[G]MFQPN[ NFRPO[ OFSPP[ \GSP KFRF YF_F K[S[ LFNG PFOH QFNG ZF\G ^F\G OZL[ OYM[ PYQ[ OZR[G]ZFH[ [FI[ \FJ[ \FNFLL H[V[XU OFLL PFMI RFNG R[VZ T[WX U[XUH\JFR[ KFRX LFSX JFZFR[ LGYG LHYHI]NPNOOOOQMQMONNPMTMVNWOXQXXYZZ[ VOWQWXXZ TMUNVPVXWZZ[[[ VRUSPTMULWLXMZP[S[UZVX NUMWMXNZ USQTOUNWNXOZP[G\LFL[MZOZ MGMY IFNFNZ NPONQMSMVNXPYSYUXXVZS[Q[OZNX WPXRXVWX SMUNVOWRWVVYUZS[ JFLG KFLHH[WQWPVPVRXRXPVNTMQMNNLPKSKULXNZQ[S[VZXX MPLRLVMX QMONNOMRMVNYOZQ[H]VFV[[[ WGWZ SFXFX[ VPUNSMQMNNLPKSKULXNZQ[S[UZVX MPLRLVMX QMONNOMRMVNYOZQ[ TFVG UFVH XYY[ XZZ[H[MSXSXQWOVNSMQMNNLPKSKULXNZQ[S[VZXX WRWQVO MPLRLVMX VSVPUNSM QMONNOMRMVNYOZQ[KYWHWGVGVIXIXGWFTFRGQHPKP[ RHQKQZ TFSGRIR[ MMVM M[U[ PZN[ PYO[ RYS[ RZT[I\XNYOZNYMXMVNUO QMONNOMQMSNUOVQWSWUVVUWSWQVOUNSMQM OONQNSOU UUVSVQUO QMPNOPOTPVQW SWTVUTUPTNSM NUMVLXLYM[N\Q]U]X^Y_ N[Q\U\X] LYMZP[U[X\Y^Y_XaUbObLaK_K^L\O[ ObMaL_L^M\O[G^LFL[ MGMZ IFNFN[ NQOOPNRMUMWNXOYRY[ WOXRXZ UMVNWQW[ I[Q[ T[\[ JFLG KFLH LZJ[ LYK[ NYO[ NZP[ WZU[ WYV[ YYZ[ YZ[[LXQFQHSHSFQF RFRH QGSG QMQ[ RNRZ NMSMS[ N[V[ OMQN PMQO QZO[ QYP[ SYT[ SZU[KXRFRHTHTFRF SFSH RGTG RMR^QaPb SNS]R` OMTMT]S`RaPbMbLaL_N_NaMaM` PMRN QMROG]LFL[ MGMZ IFNFN[ WNNW RSY[ RTX[ QTW[ TM[M I[Q[ T[[[ JFLG KFLH UMWN ZMWN LZJ[ LYK[ NYO[ NZP[ WYU[ VYZ[LXQFQ[ RGRZ NFSFS[ N[V[ OFQG PFQH QZO[ QYP[ SYT[ SZU[AcFMF[ GNGZ CMHMH[ HQIOJNLMOMQNROSRS[ QORRRZ OMPNQQQ[ SQTOUNWMZM\N]O^R^[ \O]R]Z ZM[N\Q\[ C[K[ N[V[ Y[a[ DMFN EMFO FZD[ FYE[ HYI[ HZJ[ QZO[ QYP[ SYT[ SZU[ \ZZ[ \Y[[ ^Y_[ ^Z`[G^LML[ MNMZ IMNMN[ NQOOPNRMUMWNXOYRY[ WOXRXZ UMVNWQW[ I[Q[ T[\[ JMLN KMLO LZJ[ LYK[ NYO[ NZP[ WZU[ WYV[ YYZ[ YZ[[H\QMNNLPKSKULXNZQ[S[VZXXYUYSXPVNSMQM MPLRLVMX WXXVXRWP QMONNOMRMVNYOZQ[ S[UZVYWVWRVOUNSMG\LMLb MNMa IMNMNb NPONQMSMVNXPYSYUXXVZS[Q[OZNX WPXRXVWX SMUNVOWRWVVYUZS[ IbQb JMLN KMLO LaJb L`Kb N`Ob NaPbH\VNVb WOWa UNWNXMXb VPUNSMQMNNLPKSKULXNZQ[S[UZVX MPLRLVMX QMONNOMRMVNYOZQ[ Sb[b VaTb V`Ub X`Yb XaZbIZNMN[ ONOZ KMPMP[ WOWNVNVPXPXNWMUMSNQPPS K[S[ LMNN MMNO NZL[ NYM[ PYQ[ PZR[J[WOXMXQWOVNTMPMNNMOMQNSPTUUWVXY NNMQ NRPSUTWU XVWZ MONQPRUSWTXVXYWZU[Q[OZNYMWM[NYKZPHPVQYRZT[V[XZYX QHQWRY PHRFRWSZT[ MMVMG^LMLVMYNZP[S[UZVYWW MNMWNY IMNMNWOZP[ WMW[\[ XNXZ TMYMY[ JMLN KMLO YYZ[ YZ[[I[LMR[ MMRY NMSY XNSYR[ JMQM TMZM KMNO PMNN VMXN YMXNF^JMN[ KMNX LMOX RMOXN[ RMV[ SMVX RMTMWX ZNWXV[ GMOM WM]M HMKN NMLN XMZN \MZNH\LMV[ MMW[ NMX[ WNMZ JMQM TMZM J[P[ S[Z[ KMMN PMNN UMWN YMWN MZK[ MZO[ VZT[ WZY[H[LMR[ MMRY NMSY XNSYP_NaLbJbIaI_K_KaJaJ` JMQM TMZM KMNO PMNN VMXN YMXNI[VML[ WMM[ XMN[ XMLMLQ L[X[XW MMLQ NMLP OMLO QMLN S[XZ U[XY V[XX W[XWG^[MZQYTWXUZR[P[MZKXJUJSKPMNPMRMUNVOWQYXZZ[[\[ ZMYQXTWVUYTZR[ LXKVKRLP P[NZMYLVLRMONNPM RMTNUOVQXXYZ[[G\QFNGMHLJKNKb NHMJLNLa QFOGNIMNMb QFSFVGWHXJXLWNVOSP PPTPWQXRYTYWXYWZT[Q[OZNYMW VHWJWLVN WRXTXWWY SFUGVIVMUOSP TPVQWSWXVZT[ KbMbF\HRINKMMMONPOQRRYSb IOKNMNOOPP HRIPKOMOOPPQQTRYRa XMWPVRTUSWR[Qb YMWQ ZMYOWRTVSXR[ XMZM QbSbH\SMQMNNLPKSKULXNZQ[S[VZXXYUYSXPVNSMPLNKMJMHNGPFSFWH MPLSLUMX WXXUXSWP QMONNOMRMVNYOZQ[ S[UZVYWVWRVOUNOKNJNIOHQGTGWHI[SMUNVOWOVNSMQMMNLOLQMRQS SSQSMTKVKXMZP[S[VZXXWXVZ NNMOMQNR MULVLXMY QMONNONQORQS QSNTMVMXNZP[I[QHRGRFQFPGPIQJTKXKYKYJXJUKSLPNNPMRLULWMYNZP[S\U]V_VaUbSbRaR`S`Sa POOPNRMUMWNYOZ UKRMQNOQNTNWOYQ[S\G]JMKNLPL[ KMLNMPMZ HPINJMLMMNNPN[ UMVNWQWb WOXRXa NQOOPNRMUMWNXOYRYb L[N[ WbYbF]IMJNKPKTLWMYNZQ[S[VZWYXWYRYOXJVGTFRFPGOIOKPMSOVP[Q JMKNLPLTMWNY VYWWXRXOWJVHTG GPHNIMKMLNMPMTNXOZQ[ S[UZVXWSWNVJUHSGQGOIKZNMONPPPXQZS[U[WZXX OMPNQPQXRZ LPMNNMPMQNRPRXSZT[G]JMKNLPL[ KMLNMPMZ HPINJMLMMNNPN[ SOUNWNXOXPZPZNXMVMTNQQOTNW XNYOYP PSQSWYYYZX TWWZYZ RTUZV[X[YZZX L[N[H\JGKFMFOGQIXXYZZ[ OHPIWXXY MFNGOIVXXZZ[[[ RMJZJ[K[RMG]KMKb LNLa MMMb VMVXWZX[Z[[Z\X WNWXXZY[ XMXXYZZ[ MXNZP[R[TZUYVW KMMM VMXM KbMbG]JMKNLPMTN[ KMLNMPNTOZ HPINJMLMMNNPOTPZ VVWTXQXMYMZNYQXSVVTXQZN[ XRYOYMJZPGSFRFPGOHOIPJSKVLWKVJSKPLNMMOMQNRPSSTVUWTVSSTOUMVLXLZM[O\S]U^V_VaTbRbOaPaRb OMNONQOR NVMXMZN[ VKSKQLPMOOOQQSST VTSTPUOVNXNZP\S]G]IQJOKNMM[M KOMNZN IQJPLO[O OONZM[LZMWOO UOVZW[XZWWUO [M[O OOMZ UOWZG\QMNNLPKTKb MPLTLa QMONNOMSMb MWNYOZQ[S[VZXXYUYSXPVNSMQM WXXVXRWP S[UZVYWVWRVOUNSM KbMbG]PMMNKPJSJUKXMZP[R[UZWXXUXSWPUNRM LPKRKVLX VXWVWRVP PMNNMOLRLVMYNZP[ R[TZUYVVVRUOTNRM RMZO[N[MPM RMZNH\JQKOLNNMZM LONNYN JQKPMOZO ROQZR[SZRO ZMZO RORZG\JMKNLPLUMXOZQ[S[UZWXXVYRYNXMWMXPXSWWUZ KMLNMPMUNX WMXNXO HPINJMLMMNNPNVOYQ[G]RQQNPMNMLNKOJRJUKXMZP[T[WZYXZUZRYOXNVMTMSNRQ LOKRKULX XXYUYRXO NMMNLQLVMYNZP[ T[VZWYXVXQWNVM RQQb RQRa RQSb QbSbH\LMMNNPT_VaXbZb[a NOOPU_V` INJMLMNNPPV_WaXb VSXPYMZMYOVSN\K`JbKbL_N\F]HNINJPJUKXMZP[T[VZXXYVZRZNYMXMYPYSXWVZ JNKPKULX XMYNYO GPHNIMJMKNLPLVMYNZP[ QFSb RGRa SFQb QFSF QbSbF^NMLNJPISIWJYKZM[O[QZRYSWSTRSQTQWRYSZU[W[YZZY[W[SZPXNVM KPJSJWKY RTRX YYZWZSYP NMLOKRKWLZM[ W[XZYWYRXOVMG]WMUTUXVZW[Y[[Y\W XMVTVZ WMYMWTVX UTUQTNRMPMMNKQJTJVKYLZN[P[RZSYTWUT NNLQKTKWLY PMNOMQLTLWMZN[I\PFNMMSMWNYOZQ[S[VZXWYTYRXOWNUMSMQNPOOQNT QFOMNQNWOZ VYWWXTXQWO MFRFPMNT S[UYVWWTWQVNUM NFQG OFPHI[WQWPVPVRXRXPWNUMRMONMQLTLVMYNZP[R[UZWW OONQMTMWNY RMPOOQNTNWOZP[G]YFVQUUUXVZW[Y[[Y\W ZFWQVUVZ VF[FWTVX UTUQTNRMPMMNKQJTJVKYLZN[P[RZSYTWUT MOLQKTKWLY PMNOMQLTLWMZN[ WFZG XFYHI[MVQUTTWRXPWNUMRMONMQLTLVMYNZP[R[UZWX OONQMTMWNY RMPOOQNTNWOZP[JZZHZGYGYI[I[GZFXFVGTISKRNQRO[N^M`Kb TJSMRRP[O^ XFVHUJTMSRQZP]O_MaKbIbHaH_J_JaIaI` NMYMH]XMT[S^QaOb YMU[S_ XMZMV[T_RaObLbJaI`I^K^K`J`J_ VTVQUNSMQMNNLQKTKVLYMZO[Q[SZTYUWVT NOMQLTLWMY QMOONQMTMWNZO[G]OFI[K[ PFJ[ LFQFK[ MTOPQNSMUMWNXPXSVX WNWRVVVZ WPUUUXVZW[Y[[Y\W MFPG NFOHKXTFTHVHVFTF UFUH TGVG LQMOOMQMRNSPSSQX RNRRQVQZ RPPUPXQZR[T[VYWWKXUFUHWHWFUF VFVH UGWG MQNOPMRMSNTPTSRZQ]P_NaLbJbIaI_K_KaJaJ` SNSSQZP]O_ SPRTP[O^N`LbG]OFI[K[ PFJ[ LFQFK[ YOYNXNXPZPZNYMWMUNQROS MSOSQTRUTYUZWZ QUSYTZ OSPTRZS[U[WZYW MFPG NFOHLXTFQQPUPXQZR[T[VYWW UFRQQUQZ QFVFRTQX RFUG SFTH@cAQBODMFMGNHPHSF[ GNGSE[ GPFTD[F[ HSJPLNNMPMRNSPSSQ[ RNRSP[ RPQTO[Q[ SSUPWNYM[M]N^P^S\X ]N]R\V\Z ]P[U[X\Z][_[aYbWF^GQHOJMLMMNNPNSL[ MNMSK[ MPLTJ[L[ NSPPRNTMVMXNYPYSWX XNXRWVWZ XPVUVXWZX[Z[\Y]WH\QMNNLQKTKVLYMZP[S[VZXWYTYRXOWNTMQM NOMQLTLWMY VYWWXTXQWO QMOONQMTMWNZP[ S[UYVWWTWQVNTMG]HQIOKMMMNNOPOSNWKb NNNSMWJb NPMTIb OTPQQORNTMVMXNYOZRZTYWWZT[R[PZOWOT XOYQYTXWWY VMWNXQXTWWVYT[ FbNb JaGb J`Hb K`Lb JaMbG\WMQb XMRb WMYMSb UTUQTNRMPMMNKQJTJVKYLZN[P[RZSYTWUT MOLQKTKWLY PMNOMQLTLWMZN[ NbVb RaOb R`Pb S`Tb RaUbI[JQKOMMOMPNQPQTO[ PNPTN[ PPOTM[O[ YOYNXNXPZPZNYMWMUNSPQTJ[XPXOWOWQYQYOXNUMRMONNONQOSQTTUVVWX ONNQ ORQSTTVU WVVZ NOOQQRTSVTWVWXVZS[P[MZLYLWNWNYMYMXKYTFQQPUPXQZR[T[VYWW UFRQQUQZ TFVFRTQX NMXMF^GQHOJMLMMNNPNSLX MNMRLVLZ MPKUKXLZN[P[RZTXVU XMVUVXWZX[Z[\Y]W YMWUWZ XMZMXTWXH\IQJOLMNMONPPPSNX ONORNVNZ OPMUMXNZP[R[TZVXXUYQYMXMXNYPCaDQEOGMIMJNKPKSIX JNJRIVIZ JPHUHXIZK[M[OZQXRU TMRURXSZU[W[YZ[X]U^Q^M]M]N^P UMSUSZ TMVMTTSXG]JQLNNMPMRNSPSR PMQNQRPVOXMZK[I[HZHXJXJZIZIY RORRQVQY ZOZNYNYP[P[NZMXMVNTPSRRVRZS[ PVPXQZS[U[WZYWG]HQIOKMMMNNOPOSMX NNNRMVMZ NPLULXMZO[Q[SZUXWT YMU[T^RaPb ZMV[T_ YM[MW[U_SaPbMbKaJ`J^L^L`K`K_H\YMXOVQNWLYK[ XOOOMPLR VORNONNO VORMOMMOLR LYUYWXXV NYRZUZVY NYR[U[WYXVH\WQVOUNSMQMNNLPKSKULXNZQ[S[VZWYXWYSYNXJWHVGSFQFNGMHNHOGQF MPLRLVMX VYWWXSXNWJVH QMONNOMRMVNYOZQ[ S[UZVXWTWMVIUGSFI[UMWNXOYOXNUMRMONMPLSLUMXOZR[U[XZYYXYWZU[ NPMSMUNX RMPNOONRNVOYPZR[ NTTUUTTSNT NTTTH\QFNGLJKOKRLWNZQ[S[VZXWYRYOXJVGSFQF NHMJLNLSMWNY VYWWXSXNWJVH QFOGNIMNMSNXOZQ[ S[UZVXWSWNVIUGSF LPXQ LQXPG]PMMNKPJSJUKXMZP[T[WZYXZUZSYPWNTMPM LPKSKULX XXYUYSXP PMNNMOLRLVMYNZP[T[VZWYXVXRWOVNTM QFSb RGRa SFQb QFSF QbSbH\TMVNXPYPYOWNTMPMMNLOKQKSLUNWPXRYSZT\T^S_Q_O^P^Q_ MOLQLSMUOW PMNNMPMSNURY YPXOH\QFNGLJKOKRLWNZQ[S[VZXWYRYOXJVGSFQF NHMJLNLSMWNY VYWWXSXNWJVH QFOGNIMNMSNXOZQ[ S[UZVXWSWNVIUGSFH\QHQ[ RHRZ SFS[ SFPINJ M[W[ QZO[ QYP[ SYT[ SZU[H\LJLKMKMJLJ LIMINJNKMLLLKKKJLHMGPFTFWGXHYJYLXNUPPRNSLUKXK[ WHXJXLWN TFVGWJWLVNTPPR KYLXNXSYWYYX NXSZWZXY NXS[W[XZYXYVH\LJLKMKMJLJ LIMINJNKMLLLKKKJLHMGPFTFWGXIXLWNTO VGWIWLVN SFUGVIVLUNSO QOTOVPXRYTYWXYWZT[P[MZLYKWKVLUMUNVNWMXLX WRXTXWWY SOUPVQWTWWVZT[ LVLWMWMVLVH\SIS[ THTZ UFU[ UFJUZU P[X[ SZQ[ SYR[ UYV[ UZW[H\MFKPMNPMSMVNXPYSYUXXVZS[P[MZLYKWKVLUMUNVNWMXLX WPXRXVWX SMUNVOWRWVVYUZS[ LVLWMWMVLV MFWF MGUG MHQHUGWFH\VIVJWJWIVI WHVHUIUJVKWKXJXIWGUFRFOGMILKKOKULXNZQ[S[VZXXYUYTXQVOSNQNOONPMR NIMKLOLUMXNY WXXVXSWQ RFPGOHNJMNMUNXOZQ[ S[UZVYWVWSVPUOSNH\KFKL YFYIXLTQSSRWR[ SRRTQWQ[ XLSQQTPWP[R[ KJLHNFPFUIWIXHYF MHNGPGRH KJLINHPHUIH\PFMGLILLMNPOTOWNXLXIWGTFPF NGMIMLNN VNWLWIVG PFOGNINLONPO TOUNVLVIUGTF POMPLQKSKWLYMZP[T[WZXYYWYSXQWPTO MQLSLWMY WYXWXSWQ PONPMSMWNZP[ T[VZWWWSVPTOH\MWMXNXNWMW WOVQURSSQSNRLPKMKLLINGQFSFVGXIYLYRXVWXUZR[O[MZLXLWMVNVOWOXNYMY MPLNLKMI VHWIXLXRWVVX QSORNQMNMKNHOGQF SFUGVIWLWSVWUYTZR[MXRFQGQIRQ RFRTST RFSFST SFTGTISQ RXQYQZR[S[TZTYSXRX RYRZSZSYRYI\MKMJNJNLLLLJMHNGPFTFWGXHYJYLXNWOSQ WHXIXMWN TFVGWIWMVOUP RQRTSTSQRQ RXQYQZR[S[TZTYSXRX RYRZSZSYRYE_[O[NZNZP\P\N[MZMYNXPVUTXRZP[L[JZIXIUJSPORMSKSIRGPFNGMIMLNOPRTWWZY[[[\Y\X KZJXJUKSLR RMSI SKRG NGMK NNPQTVWYYZ N[LZKXKULSPO MINMQQUVXYZZ[Z\YH\PBP_ TBT_ XKXJWJWLYLYJXHWGTFPFMGKIKLLNOPURWSXUXXWZ LLMNOOUQWRXT MGLILKMMONUPXRYTYWXYWZT[P[MZLYKWKUMUMWLWLVKYUBSDQGOKNPNTOYQ]S`Ub QHPKOOOUPYQ\ SDRFQIPOPUQ[R^S`KYOBQDSGUKVPVTUYS]Q`Ob SHTKUOUUTYS\ QDRFSITOTUS[R^Q`F^[FYGVHSHPGNFLFJGIIIKKMMMOLPJPHNF [FH[ [FI[ [FJ[ YTWTUUTWTYV[X[ZZ[X[VYT OGLFIIJLMMPJOG NFJGIK KMOLPH ZUWTTWUZX[[XZU YTUUTY V[ZZ[V H[J[E`VNULSKQKOLNMMOMRNTOUQVSVUUVS OMNONROT QKPLOOORPUQV VKVSWUYVZV\U]R]O\L[JYHWGTFQFNGLHJJILHOHRIUJWLYNZQ[T[WZYYXYWZ WLWSXU VKXKXSYUZVH]TFQGOIMLLOKSKVLYMZO[Q[TZVXXUYRZNZKYHXGVFTF QHOJNLMOLSLWMY TYVWWUXRYNYJXH TFRGPJOLNOMSMXNZO[ Q[SZUWVUWRXNXIWGVFH]TJO[Q[ WFUJP[ WFQ[ WFTIQKOL TJRKOLH]OKOJPJPLNLNJOHPGSFVFYGZIZKYMWOMUKWI[ XGYIYKXMVOSQ VFWGXIXKWMUOMU JYKXMXRYWYXX MXRZWZ MXR[U[WZXXXWH]OKOJPJPLNLNJOHPGSFVFYGZIZKYMXNVOSP XGYIYKXMWN VFWGXIXKWMUOSP QPSPVQWRXTXWWYUZR[O[LZKYJWJULULWKWKV VRWTWWVY SPUQVSVWUYTZR[H]WJR[T[ ZFXJS[ ZFT[ ZFJUZUH]QFLP QF[F QGYG PHUHYG[F LPMOPNSNVOWPXRXUWXUZQ[N[LZKYJWJULULWKWKV VPWRWUVXTZ SNUOVQVUUXSZQ[H]YJYIXIXKZKZIYGWFTFQGOIMLLOKSKVLYMZO[R[UZWXXVXSWQVPTOQOOPNQMS PINLMOLSLWMY VXWVWSVQ TFRGPJOLNOMSMXNZO[ R[TZUYVVVRUPTOH]NFLL [FZIXLTQRTQWP[ RSPWO[ XLRRPUOWN[P[ MIPFRFWI OGRGWI MIOHRHWIYIZH[FH]SFPGOHNJNMOOQPTPWOYNZLZIYGWFSF UFPG PHOJONPO OORP SPWO XNYLYIXG YGUF SFQHPJPNQP TPVOWNXLXHWF QPMQKSJUJXKZN[R[VZWYXWXTWRVQTP RPMQ NQLSKUKXLZ KZP[VZ VYWWWTVR VQSP QPOQMSLULXMZN[ R[TZUYVWVSUQTPH]XNWPVQTRQROQNPMNMKNIPGSFVFXGYHZKZNYRXUVXTZQ[N[LZKXKVMVMXLXLW OPNNNKOI XHYJYNXRWUUX QRPQOOOKPHQGSF VFWGXIXNWRVUUWSZQ[MXPXOYOZP[Q[RZRYQXPX PYPZQZQYPYMXQ[P[OZOYPXQXRYR[Q]P^N_ PYPZQZQYPY Q[Q\P^MXSMRNROSPTPUOUNTMSM SNSOTOTNSN PXOYOZP[Q[RZRYQXPX PYPZQZQYPYMXSMRNROSPTPUOUNTMSM SNSOTOTNSN Q[P[OZOYPXQXRYR[Q]P^N_ PYPZQZQYPY Q[Q\P^MXVFUFTGRT VGUGRT VGVHRT VFWGWHRT PXOYOZP[Q[RZRYQXPX PYPZQZQYPYH]OKOJPJPLNLNJOHPGSFWFZG[I[KZMYNWOSPQQQSSTTT UFZG YGZIZKYMXNVO WFXGYIYKXMWNSPRQRSST PXOYOZP[Q[RZRYQXPX PYPZQZQYPYMXWFUGTHSJSLTMUMVLVKUJTJ UGTITJ TKTLULUKTKMXVIUITHTGUFVFWGWIVKULSM UGUHVHVGUG VIVJULE_\O\N[N[P]P]N\M[MYNWPRXPZN[K[HZGXGVHTISKRPPROTMUKUITGRFPGOIOLPRQURWTZV[X[YYYX L[HZ IZHXHVITJSLR PPQSTYVZ K[JZIXIVJTKSMRRO OLPOQRSVUYWZXZYYH]TBL_ YBQ_ ZKZJYJYL[L[JZHYGVFRFOGMIMLNNPPVSWUWXVZ NLONVRWT OGNINKOMUPWRXTXWWYVZS[O[LZKYJWJULULWKWKVG^_BEbFb _B`BFbJZZBXCUERHPKNOMSMXN\O_Qb SHQKOONTN\ ZBWDTGRJQLPOOSN\ NTO]P`QbJZSBUEVHWLWQVUTYR\O_LaJb VHVPUUSYQ\ SBTDUGVP VHUQTUSXRZP]M`JbJ[TFSGUQTR TFTR TFUGSQTR OIPIXOYO OIYO OIOJYNYO YIXIPOOO YIOO YIYJONOOMWUFTGRM UGRM UFVGRMH\PFOGMM PGMM PFQGMM ZFYGWM ZGWM ZF[GWMKZSFQGPIPKQMSNUNWMXKXIWGUFSF SFPIQMUNXKWGSF UFQGPKSNWMXIUFG^SFKbLb SFTFLb YFQbRb YFZFRb KP\P\Q KPKQ\Q IWZWZX IWIXZXE^^F\GXHUHQGOFMFKGJIJKLMNMPLQJQHOF ^FE[ ^FF[ ^FG[ XTVTTUSWSYU[W[YZZXZVXT PGMFJIKLNMQJPG OFKGJK LMPLQH YUVTSWTZW[ZXYU XTTUSY U[YZZV E[G[E`UQUNTLRKPKNLMMLPLSMUOVQVSUTTUQ OLNMMPMSNU RKPLOMNPNSOUPV VKUQUSVUXVZV\U]R]O\L[JYHWGTFQFNGLHJJILHOHRIUJWLYNZQ[T[WZYYXYWZ WKVQVSWU VKXKWQWSXUZV28EqualizeHistCalcHist_Invoker23EqualizeHistLut_InvokercvReleaseHisticvReadHistcompareHistcompareHistcvClearHistcvThreshHistcvNormalizeHistcvGetMinMaxHistValuecvCompareHistcvSetHistBinRangescvCreateHistcvMakeHistHeaderForArraycvCopyHistcvCalcBayesianProbcvCalcProbDensityequalizeHistcalcHistLookupTables_8uhistPrepareImagescalcHistcalcHist_calcHist_calcHistcalcHistcalcSparseHist_calcSparseHist_cvCalcArrHistcvCalcArrBackProjectPatchcalcBackProjectcalcBackProj_calcBackProj_ocl_calcBackProjectMatcalcBackProjectcalcBackProjectcalcSparseBackProj_calcSparseBackProj_cvCalcArrBackProjectvoid cv::equalizeHist(cv::InputArray, cv::OutputArray)double cv::compareHist(const cv::SparseMat&, const cv::SparseMat&, int)double cv::compareHist(cv::InputArray, cv::InputArray, int)void cv::calcBackProject(cv::InputArrayOfArrays, const std::vector&, cv::InputArray, cv::OutputArray, const std::vector&, double)void cv::calcBackProject(const cv::Mat*, int, const int*, const cv::SparseMat&, cv::OutputArray, const float**, double, bool)void cv::calcBackProject(const cv::Mat*, int, const int*, cv::InputArray, cv::OutputArray, const float**, double, bool)void cv::calcHist(cv::InputArrayOfArrays, const std::vector&, cv::InputArray, cv::OutputArray, const std::vector&, const std::vector&, bool)void cv::calcHist(const cv::Mat*, int, const int*, cv::InputArray, cv::SparseMat&, int, const int*, const float**, bool, bool)void cv::calcHist(const cv::Mat*, int, const int*, cv::InputArray, cv::OutputArray, int, const int*, const float**, bool, bool)opencv-histis_uniformhave_rangesmatbinsthreshint -D HAVE_SRC_CONT-D BINS=%d -D HISTS_COUNT=%d -D WGS=%d -D kercn=%d -D T=%s%scalculate_histogram-D BINS=%d -D HISTS_COUNT=%d -D WGS=%d -D convertToHT=%s -D HT=%smerge_histogram/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/histogram.cppInvalid histogram headerExpected CvMatNDUnknown Histogram type'thresh' node is missingH1.type() == H2.type() && H1.depth() == 5it.planes[0].isContinuous() && it.planes[1].isContinuous()Unknown comparison methoddims > 0 && dims == H2.dims() && H1.type() == H2.type() && H1.type() == 5H1.size(i) == H2.size(i)it.ptr != __nullInvalid histogram header[s]One of histograms is sparse and other is notThe histograms have different numbers of dimensionsThe histograms have different sizesNULL ranges pointerOne of elements is NULLBin ranges should go in ascenting orderNumber of dimensions is out of rangeNull pointerInvalid histogram typeNull histogram header pointerNull data pointerOnly uniform bin ranges can be used here (to avoid memory allocation)Destination double pointer is NULLNULL histogram array pointerToo small number of histogramsThe function supports dense histograms onlyscale must be positiveInvalid histogram pointer[s]All histograms must have 32fC1 type_src.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3))-D BINS=%d -D HISTS_COUNT=%d -D WGS=%dcalcLUTEither ranges, either uniform ranges should be providedchannels != 0 || nimages == dimsimages[j].channels() == 1c >= 0images[j].size() == imsize && images[j].depth() == depthmask.size() == imsize && mask.channels() == 1ranges[i] && ranges[i][0] < ranges[i][1]ranges[i][k] < ranges[i][k+1]j < nimagesdims > 0 && histSizemask.empty() || mask.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3))nimages > 0 && dims > 0rsz == dims*2 || (rsz == 0 && images.depth(0) == 0)csz == 0 || csz == dimsBad histogram pointerNull double array pointerBad normalization factor (set it to 1.0 if unsure)The patch width and height must be positiveInvalid number of dimensionsResultant image must have 32fC1 typeThe output map must be (W-w+1 x H-h+1), where the input images are (W x H) each and the patch is (w x h)dims > 0 && !hist.empty()nimages > 0size == m.size() && depth == m.depth()channels[i] < (int)totalcnidx >= 0-D histdims=1 -D scn=%didx0 >= 0 && idx1 >= 0-D histdims=2 -D scn1=%d -D scn2=%dH0.isContinuous()rsz == dims*2 || (rsz == 2 && _1d) || (rsz == 0 && images.depth(0) == 0)csz == 0 || csz == dims || (csz == 1 && _1d)dims > 0_dst.size() == images[0].size() && _dst.depth() == images[0].depth()N2cv6detail12PtrOwnerImplI5CvMatNS_14DefaultDeleterIS2_EEEEHoughLinesProbabilisticocl_HoughLinesPHoughLinesStandardHoughLinesSDivocl_HoughLinescvHoughLines2isStorageOrMatMatcvHoughCirclesvoid cv::HoughCircles(cv::InputArray, cv::OutputArray, int, double, double, double, double, int, int)void cv::HoughLinesP(cv::InputArray, cv::OutputArray, double, double, int, double, double)void cv::HoughLines(cv::InputArray, cv::OutputArray, double, double, int, double, double, double, double)-D MAKE_POINTS_LIST -D GROUP_SIZE=%d -D LOCAL_SIZE=%dmake_point_list-D FILL_ACCUM_GLOBALfill_accum_global-D FILL_ACCUM_LOCAL -D LOCAL_SIZE=%d -D BUFFER_SIZE=%dfill_accum_localimage.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3))/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/hough.cpprho and theta must be greater 0-D GET_LINES_PROBABOLISTICget_linesimg.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3))max_theta must be greater than min_thetalinesMax > 0max_theta must fall between 0 and pimin_theta must fall between 0 and max_theta-D GET_LINESNULL destinationrho, theta and threshold must be positiveThe destination matrix should be continuous and have a single row or a single columnThe destination matrix data type is inappropriate, see the manualUnrecognized method idThe source image must be 8-bit, single-channeldp, min_dist, canny_threshold and acc_threshold must be all positive numbersN2cv12RemapInvokerEN2cv17WarpAffineInvokerEN2cv22WarpPerspectiveInvokerEremapBilinearremapBilinearremapBilinearremapBilinearremapBilinearinitInterTab2DinitInterTab1DMatocl_warpTransform_cols4ocl_warpTransformremapocl_remapconvertMapswarpAffinewarpPerspectiveMatinvertAffineTransformgetPerspectiveTransformgetAffineTransformcvWarpAffinecvWarpPerspectivecvRemapcv2DRotationMatrixcvGetPerspectiveTransformcvGetAffineTransformocl_logPolarlogPolarcvLogPolarcvLinearPolarvoid cv::linearPolar(cv::InputArray, cv::OutputArray, cv::Point2f, double, int)void cv::logPolar(cv::InputArray, cv::OutputArray, cv::Point2f, double, int)cv::Mat cv::getPerspectiveTransform(const Point2f*, const Point2f*)cv::Mat cv::getRotationMatrix2D(cv::Point2f, double, double)void cv::warpPerspective(cv::InputArray, cv::OutputArray, cv::InputArray, cv::Size, int, int, const Scalar&)void cv::warpAffine(cv::InputArray, cv::OutputArray, cv::InputArray, cv::Size, int, int, const Scalar&)void cv::convertMaps(cv::InputArray, cv::InputArray, cv::OutputArray, cv::OutputArray, int, bool)void cv::remap(cv::InputArray, cv::OutputArray, cv::InputArray, cv::InputArray, int, int, const Scalar&)ssize.area() > 0/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/imgwarp.cppUnknown/unsupported interpolation typeUnknown interpolation methodwarp%s_%s_8u-D ST=%s(M1.type() == 5 || M1.type() == 6) && M1.rows == matRows && M1.cols == 3warpPerspectivewarpAffinedoublefloat-D INTER_NEAREST -D T=%s%s -D CT=%s -D T1=%s -D ST=%s -D cn=%d -D rowsPerWI=%d-D INTER_%s -D T=%s -D T1=%s -D ST=%s -D WT=%s -D depth=%d -D convertToWT=%s -D convertToT=%s%s -D CT=%s -D cn=%d -D rowsPerWI=%d_map1.size().area() > 0_map2.empty() || (_map2.size() == _map1.size())map1.type() == (((5) & ((1 << 3) - 1)) + (((2)-1) << 3)) || (map1.type() == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3)) && map2.type() == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3)))remap_32FC2_16SC2_16UC1Unsupported map types_2_32FC1-D %s -D %s -D T=%s -D rowsPerWI=%d -D WT=%s -D convertToT=%s -D convertToWT=%s -D convertToWT2=%s -D WT2=%s -D T=%s -D T1=%s -D cn=%d -D ST=%s -D depth=%ddst.cols < 0x7fff && dst.rows < 0x7fff && src.cols < 0x7fff && src.rows < 0x7fffnnfunc != 0_src.channels() <= 4ifunc != 0((map1.type() == (((5) & ((1 << 3) - 1)) + (((2)-1) << 3)) || map1.type() == (((3) & ((1 << 3) - 1)) + (((2)-1) << 3))) && map2.empty()) || (map1.type() == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3)) && map2.type() == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3)))(m1type == (((3) & ((1 << 3) - 1)) + (((2)-1) << 3)) && (nninterpolate || m2type == (((2) & ((1 << 3) - 1)) + (((1)-1) << 3)) || m2type == (((3) & ((1 << 3) - 1)) + (((1)-1) << 3)))) || (m2type == (((3) & ((1 << 3) - 1)) + (((2)-1) << 3)) && (nninterpolate || m1type == (((2) & ((1 << 3) - 1)) + (((1)-1) << 3)) || m1type == (((3) & ((1 << 3) - 1)) + (((1)-1) << 3)))) || (m1type == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3)) && m2type == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3))) || (m1type == (((5) & ((1 << 3) - 1)) + (((2)-1) << 3)) && m2->empty())dstm1type == (((3) & ((1 << 3) - 1)) + (((2)-1) << 3)) || dstm1type == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3)) || dstm1type == (((5) & ((1 << 3) - 1)) + (((2)-1) << 3))Unsupported combination of input/output matrices_src.channels() <= 4 || (interpolation != INTER_LANCZOS4 && interpolation != INTER_CUBIC)src.cols > 0 && src.rows > 0(M0.type() == 5 || M0.type() == 6) && M0.rows == 2 && M0.cols == 3_src.total() > 0(M0.type() == 5 || M0.type() == 6) && M0.rows == 3 && M0.cols == 3matM.rows == 2 && matM.cols == 3src.checkVector(2, 5) == 4 && dst.checkVector(2, 5) == 4src.checkVector(2, 5) == 3 && dst.checkVector(2, 5) == 3src.type() == dst.type() && dst.size() == mapx.size()dst0.data == dst.dataM.size() == M0.size()M should be >0-D InverseMap-D ForwardMap -D MEM_SIZE=%dlogPolarcomputeAngleRadiuslinearPolarNEARESTLINEARCUBICnearestlinearcubicBORDER_TRANSPARENTINTER_NEARESTINTER_LINEARINTER_CUBICINTER_LANCZOSrotatedRectangleIntersectionint cv::rotatedRectangleIntersection(const cv::RotatedRect&, const cv::RotatedRect&, cv::OutputArray)intersection.size() <= 8/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/intersection.cppfitLinefitLine2DfitLine3DcvFitLineMatvoid cv::fitLine(cv::InputArray, cv::OutputArray, int, double, double, double)npoints2 >= 0 || npoints3 >= 0/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/linefit.cppUnknown distance typeUnknown distanceline != 0N2cv19LineSegmentDetectorEN2cv6detail12PtrOwnerImplINS_23LineSegmentDetectorImplENS_14DefaultDeleterIS2_EEEELineSegmentDetectorImplcompareSegmentsregion2rectget_thetadrawSegmentsrect_nfadetectvirtual int cv::LineSegmentDetectorImpl::compareSegments(const Size&, cv::InputArray, cv::InputArray, cv::InputOutputArray)virtual void cv::LineSegmentDetectorImpl::drawSegments(cv::InputOutputArray, cv::InputArray)virtual void cv::LineSegmentDetectorImpl::detect(cv::InputArray, cv::OutputArray, cv::OutputArray, cv::OutputArray, cv::OutputArray)N2cv23LineSegmentDetectorImplE_scale > 0 && _sigma_scale > 0 && _quant >= 0 && _ang_th > 0 && _ang_th < 180 && _density_th >= 0 && _density_th < 1 && _n_bins > 0/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/lsd.cppsz.area()_image.channels() == 3img.isContinuous() && I1.isContinuous() && I2.isContinuous()sum > 0!(double_equal(Ixx, 0) && double_equal(Iyy, 0) && double_equal(Ixy, 0))!_image.empty() && (_image.channels() == 1 || _image.channels() == 3)rightmost != __nulltailp != __nullleftmost != __null!image.empty() && image.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3))matchShapesdouble cv::matchShapes(cv::InputArray, cv::InputArray, int, double)/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/matchcontours.cpplineEquationDeterminedByPointscreateConvexHullfindVertexCOnSideBupdateSideBareEqualPoints(p, q) == false/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/min_enclosing_triangle.cpp(pointsMat.checkVector(2) > 0) && ((pointsMat.depth() == 5) || (pointsMat.depth() == 4))The position of the vertex C on side B could not be determined, because the considered lines do not intersect.The position of side B could not be determined, because gamma(b) could not be computed.contourMomentsmomentsHuMomentscvMomentscvGetSpatialMomentcvGetCentralMomentcvGetHuMomentsvoid cv::HuMoments(const cv::Moments&, cv::OutputArray)void cv::HuMoments(const cv::Moments&, double*)cv::Moments cv::moments(cv::InputArray, bool) -D OP_MOMENTS_BINARY-D TILE_SIZE=%d%smomentscontour.depth() == 4 || contour.depth() == 5/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/moments.cppInvalid image type (must be single-channel)hu.isContinuous()moments != 0N2cv14MorphRowFilterINS_5MinOpIhEENS_13MorphRowNoVecEEEN2cv14MorphRowFilterINS_5MinOpItEENS_13MorphRowNoVecEEEN2cv14MorphRowFilterINS_5MinOpIsEENS_13MorphRowNoVecEEEN2cv14MorphRowFilterINS_5MinOpIfEENS_13MorphRowNoVecEEEN2cv14MorphRowFilterINS_5MinOpIdEENS_13MorphRowNoVecEEEN2cv14MorphRowFilterINS_5MaxOpIhEENS_13MorphRowNoVecEEEN2cv14MorphRowFilterINS_5MaxOpItEENS_13MorphRowNoVecEEEN2cv14MorphRowFilterINS_5MaxOpIsEENS_13MorphRowNoVecEEEN2cv14MorphRowFilterINS_5MaxOpIfEENS_13MorphRowNoVecEEEN2cv14MorphRowFilterINS_5MaxOpIdEENS_13MorphRowNoVecEEEN2cv17MorphColumnFilterINS_5MinOpIhEENS_16MorphColumnNoVecEEEN2cv17MorphColumnFilterINS_5MinOpItEENS_16MorphColumnNoVecEEEN2cv17MorphColumnFilterINS_5MinOpIsEENS_16MorphColumnNoVecEEEN2cv17MorphColumnFilterINS_5MinOpIfEENS_16MorphColumnNoVecEEEN2cv17MorphColumnFilterINS_5MinOpIdEENS_16MorphColumnNoVecEEEN2cv17MorphColumnFilterINS_5MaxOpIhEENS_16MorphColumnNoVecEEEN2cv17MorphColumnFilterINS_5MaxOpItEENS_16MorphColumnNoVecEEEN2cv17MorphColumnFilterINS_5MaxOpIsEENS_16MorphColumnNoVecEEEN2cv17MorphColumnFilterINS_5MaxOpIfEENS_16MorphColumnNoVecEEEN2cv17MorphColumnFilterINS_5MaxOpIdEENS_16MorphColumnNoVecEEEN2cv11MorphFilterINS_5MinOpIhEENS_10MorphNoVecEEEN2cv11MorphFilterINS_5MinOpItEENS_10MorphNoVecEEEN2cv11MorphFilterINS_5MinOpIsEENS_10MorphNoVecEEEN2cv11MorphFilterINS_5MinOpIfEENS_10MorphNoVecEEEN2cv11MorphFilterINS_5MinOpIdEENS_10MorphNoVecEEEN2cv11MorphFilterINS_5MaxOpIhEENS_10MorphNoVecEEEN2cv11MorphFilterINS_5MaxOpItEENS_10MorphNoVecEEEN2cv11MorphFilterINS_5MaxOpIsEENS_10MorphNoVecEEEN2cv11MorphFilterINS_5MaxOpIfEENS_10MorphNoVecEEEN2cv11MorphFilterINS_5MaxOpIdEENS_10MorphNoVecEEEN2cv6detail12PtrOwnerImplINS_14MorphRowFilterINS_5MinOpIhEENS_13MorphRowNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_14MorphRowFilterINS_5MinOpItEENS_13MorphRowNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_14MorphRowFilterINS_5MinOpIsEENS_13MorphRowNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_14MorphRowFilterINS_5MinOpIfEENS_13MorphRowNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_14MorphRowFilterINS_5MinOpIdEENS_13MorphRowNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_14MorphRowFilterINS_5MaxOpIhEENS_13MorphRowNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_14MorphRowFilterINS_5MaxOpItEENS_13MorphRowNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_14MorphRowFilterINS_5MaxOpIsEENS_13MorphRowNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_14MorphRowFilterINS_5MaxOpIfEENS_13MorphRowNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_14MorphRowFilterINS_5MaxOpIdEENS_13MorphRowNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_17MorphColumnFilterINS_5MinOpIhEENS_16MorphColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_17MorphColumnFilterINS_5MinOpItEENS_16MorphColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_17MorphColumnFilterINS_5MinOpIsEENS_16MorphColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_17MorphColumnFilterINS_5MinOpIfEENS_16MorphColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_17MorphColumnFilterINS_5MinOpIdEENS_16MorphColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_17MorphColumnFilterINS_5MaxOpIhEENS_16MorphColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_17MorphColumnFilterINS_5MaxOpItEENS_16MorphColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_17MorphColumnFilterINS_5MaxOpIsEENS_16MorphColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_17MorphColumnFilterINS_5MaxOpIfEENS_16MorphColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_17MorphColumnFilterINS_5MaxOpIdEENS_16MorphColumnNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_11MorphFilterINS_5MinOpIhEENS_10MorphNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_11MorphFilterINS_5MinOpItEENS_10MorphNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_11MorphFilterINS_5MinOpIsEENS_10MorphNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_11MorphFilterINS_5MinOpIfEENS_10MorphNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_11MorphFilterINS_5MinOpIdEENS_10MorphNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_11MorphFilterINS_5MaxOpIhEENS_10MorphNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_11MorphFilterINS_5MaxOpItEENS_10MorphNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_11MorphFilterINS_5MaxOpIsEENS_10MorphNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_11MorphFilterINS_5MaxOpIfEENS_10MorphNoVecEEENS_14DefaultDeleterIS6_EEEEN2cv6detail12PtrOwnerImplINS_11MorphFilterINS_5MaxOpIdEENS_10MorphNoVecEEENS_14DefaultDeleterIS6_EEEEgetMorphologyRowFiltergetMorphologyColumnFiltergetStructuringElementnormalizeAnchorocl_morphOpocl_morph3x3_8UC1ocl_morphSmallcvCreateStructuringElementExcvReleaseStructuringElementgetMorphologyFilterMorphFilterMorphFilterMorphFilterMorphFilterMorphFilterMorphFilterMorphFilterMorphFilterMorphFilterMorphFiltercreateMorphologyFilterMatcvErodeocl_morphologyExmorphologyExcvMorphologyExcvDilatevoid cv::morphologyEx(cv::InputArray, cv::OutputArray, int, cv::InputArray, cv::Point, int, int, const Scalar&)void cv::dilate(cv::InputArray, cv::OutputArray, cv::InputArray, cv::Point, int, int, const Scalar&)void cv::morphOp(int, cv::InputArray, cv::OutputArray, cv::InputArray, cv::Point, int, int, const Scalar&)void cv::erode(cv::InputArray, cv::OutputArray, cv::InputArray, cv::Point, int, int, const Scalar&)op == MORPH_ERODE || op == MORPH_DILATE/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/morph.cppUnsupported data type (=%d)shape == MORPH_RECT || shape == MORPH_CROSS || shape == MORPH_ELLIPSEnoconvertsrcT1srcTactual_op <= 3 || haveExtraMatPROCESS(%d,%d) -D %smorph3x3_8UC1_cols16_rows2-D cn=%d -D ANCHOR_X=%d -D ANCHOR_Y=%d -D KERNEL_SIZE_X=%d -D KERNEL_SIZE_Y=%d -D PX_LOAD_VEC_SIZE=%d -D PX_LOAD_NUM_PX=%d -D DEPTH_%d -D PX_PER_WI_X=%d -D PX_PER_WI_Y=%d -D PRIV_DATA_WIDTH=%d -D %s -D %s -D PX_LOAD_X_ITERATIONS=%d -D PX_LOAD_Y_ITERATIONS=%d -D srcT=%s -D srcT1=%s -D dstT=srcT -D dstT1=srcT1 -D WT=%s -D WT1=%s -D convertToWT=%s -D convertToDstT=%s -D PX_LOAD_FLOAT_VEC_CONV=convert_%s -D PROCESS_ELEM_=%s -D %s%sfilterSmall-D RADIUSX=%d -D RADIUSY=%d -D LSIZE0=%d -D LSIZE1=%d -D %s%s -D PROCESS_ELEMS=%s -D T=%s -D DEPTH_%d -D cn=%d -D T1=%s -D convertToWT=%s -D convertToT=%s -D ST=%s%smorphcols > 0 && rows > 0 && anchor.inside(cv::Rect(0,0,cols,rows)) && (shape != CV_SHAPE_CUSTOM || values != 0)_kernel.type() == 0depth == 0 || depth == 2 || depth == 3 || depth == 5 || depth == 6src.size() == dst.size() && src.type() == dst.type()unknown morphological operationOP_ERODEOP_DILATEOP_GRADIENTOP_TOPHATOP_BLACKHATcreateHanningWindowphaseCorrelatemagSpectrumsdivSpectrumsweightedCentroidvoid cv::createHanningWindow(cv::OutputArray, cv::Size, int)cv::Point2d cv::phaseCorrelate(cv::InputArray, cv::InputArray, cv::InputArray, double*)type == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3)) || type == (((6) & ((1 << 3) - 1)) + (((1)-1) << 3))/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/phasecorr.cppwinSize.width > 1 && winSize.height > 1src1.type() == src2.type()src1.type() == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3)) || src1.type() == (((6) & ((1 << 3) - 1)) + (((1)-1) << 3))src1.size == src2.sizesrc1.type() == window.type()src1.size == window.sizetype == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3)) || type == (((5) & ((1 << 3) - 1)) + (((2)-1) << 3)) || type == (((6) & ((1 << 3) - 1)) + (((1)-1) << 3)) || type == (((6) & ((1 << 3) - 1)) + (((2)-1) << 3))type == srcB.type() && srcA.size() == srcB.size()dst.data != srcA.datadst.data != srcB.datapyrUp_pyrUp_pyrUp_pyrUp_pyrUp_pyrDown_pyrDown_pyrDown_pyrDown_pyrDown_pyrDownocl_pyrDownpyrUpbuildPyramidcvPyrDowncvPyrUpcvReleasePyramidcvCreatePyramidvoid cv::buildPyramid(cv::InputArray, cv::OutputArrayOfArrays, int, int)void cv::pyrUp(cv::InputArray, cv::OutputArray, const Size&, int)void cv::pyrDown(cv::InputArray, cv::OutputArray, const Size&, int)std::abs(dsize.width - ssize.width*2) == dsize.width % 2 && std::abs(dsize.height - ssize.height*2) == dsize.height % 2/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/pyramids.cpp!_src.empty()ssize.width > 0 && ssize.height > 0 && std::abs(dsize.width*2 - ssize.width) <= 2 && std::abs(dsize.height*2 - ssize.height) <= 2borderType != BORDER_CONSTANT-D T=%s -D FT=%s -D convertToT=%s -D convertToFT=%s%s -D T1=%s -D cn=%d -D kercn=%d -D fdepth=%d -D %s -D LOCAL_SIZE=%dpyrDownborderType == BORDER_DEFAULT-D T=%s -D FT=%s -D convertToT=%s -D convertToFT=%s%s -D T1=%s -D cn=%d -D LOCAL_SIZE=%dpyrUp_cols2pyrUp_unrolledpyrUp_filter == CV_GAUSSIAN_5x5 && src.type() == dst.type()The number of extra layers must be non negativeThe buffer is too small to fit the pyramidN2cv15resizeNNInvokerEN2cv21resizeGeneric_InvokerINS_13HResizeLinearIhisLi2048ENS_12HResizeNoVecEEENS_13VResizeLinearIhisNS_11FixedPtCastIihLi22EEENS_22VResizeLinearVec_32s8uEEEEEN2cv21resizeGeneric_InvokerINS_13HResizeLinearItffLi1ENS_12HResizeNoVecEEENS_13VResizeLinearItffNS_4CastIftEENS_23VResizeLinearVec_32f16uEEEEEN2cv21resizeGeneric_InvokerINS_13HResizeLinearIsffLi1ENS_12HResizeNoVecEEENS_13VResizeLinearIsffNS_4CastIfsEENS_23VResizeLinearVec_32f16sEEEEEN2cv21resizeGeneric_InvokerINS_13HResizeLinearIfffLi1ENS_12HResizeNoVecEEENS_13VResizeLinearIfffNS_4CastIffEENS_20VResizeLinearVec_32fEEEEEN2cv21resizeGeneric_InvokerINS_13HResizeLinearIddfLi1ENS_12HResizeNoVecEEENS_13VResizeLinearIddfNS_4CastIddEENS_12VResizeNoVecEEEEEN2cv21resizeGeneric_InvokerINS_12HResizeCubicIhisEENS_12VResizeCubicIhisNS_11FixedPtCastIihLi22EEENS_12VResizeNoVecEEEEEN2cv21resizeGeneric_InvokerINS_12HResizeCubicItffEENS_12VResizeCubicItffNS_4CastIftEENS_22VResizeCubicVec_32f16uEEEEEN2cv21resizeGeneric_InvokerINS_12HResizeCubicIsffEENS_12VResizeCubicIsffNS_4CastIfsEENS_22VResizeCubicVec_32f16sEEEEEN2cv21resizeGeneric_InvokerINS_12HResizeCubicIfffEENS_12VResizeCubicIfffNS_4CastIffEENS_19VResizeCubicVec_32fEEEEEN2cv21resizeGeneric_InvokerINS_12HResizeCubicIddfEENS_12VResizeCubicIddfNS_4CastIddEENS_12VResizeNoVecEEEEEN2cv21resizeGeneric_InvokerINS_15HResizeLanczos4IhisEENS_15VResizeLanczos4IhisNS_11FixedPtCastIihLi22EEENS_12VResizeNoVecEEEEEN2cv21resizeGeneric_InvokerINS_15HResizeLanczos4ItffEENS_15VResizeLanczos4ItffNS_4CastIftEENS_25VResizeLanczos4Vec_32f16uEEEEEN2cv21resizeGeneric_InvokerINS_15HResizeLanczos4IsffEENS_15VResizeLanczos4IsffNS_4CastIfsEENS_25VResizeLanczos4Vec_32f16sEEEEEN2cv21resizeGeneric_InvokerINS_15HResizeLanczos4IfffEENS_15VResizeLanczos4IfffNS_4CastIffEENS_22VResizeLanczos4Vec_32fEEEEEN2cv21resizeGeneric_InvokerINS_15HResizeLanczos4IddfEENS_15VResizeLanczos4IddfNS_4CastIddEENS_12VResizeNoVecEEEEEN2cv22resizeAreaFast_InvokerIhiNS_17ResizeAreaFastVecIhNS_25ResizeAreaFastVec_SIMD_8uEEEEEN2cv22resizeAreaFast_InvokerItfNS_17ResizeAreaFastVecItNS_26ResizeAreaFastVec_SIMD_16uEEEEEN2cv22resizeAreaFast_InvokerIsfNS_17ResizeAreaFastVecIsNS_26ResizeAreaFastVec_SIMD_16sEEEEEN2cv22resizeAreaFast_InvokerIffNS_26ResizeAreaFastVec_SIMD_32fEEEN2cv22resizeAreaFast_InvokerIddNS_19ResizeAreaFastNoVecIddEEEEN2cv18ResizeArea_InvokerIhfEEN2cv18ResizeArea_InvokerItfEEN2cv18ResizeArea_InvokerIsfEEN2cv18ResizeArea_InvokerIffEEN2cv18ResizeArea_InvokerIddEEoperator()operator()operator()MatMatresizeGeneric_InvokerresizeGeneric_InvokerresizeGeneric_InvokerresizeGeneric_InvokerresizeGeneric_InvokerresizeGeneric_InvokerresizeGeneric_InvokerresizeGeneric_InvokerresizeGeneric_InvokerresizeGeneric_InvokerresizeGeneric_InvokerresizeGeneric_InvokerresizeGeneric_InvokerresizeGeneric_InvokerresizeGeneric_InvokerresizeresizecvResizevoid cv::resize(cv::InputArray, cv::OutputArray, cv::Size, double, double, int)void cv::hal::resize(int, const uchar*, size_t, int, int, uchar*, size_t, int, int, double, double, int)cn == 4/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/resize.cppksize <= MAX_ESIZE-D USE_SAMPLER -D depth=%d -D T=%s -D T1=%s -D convertToDT=%s -D cn=%dresizeSampler-D INTER_LINEAR -D depth=%d -D T=%s -D T1=%s -D WT=%s -D convertToWT=%s -D convertToDT=%s -D cn=%d -D INTER_RESIZE_COEF_BITS=%dresizeLN-D INTER_NEAREST -D T=%s -D T1=%s -D cn=%dresizeNN-D INTER_AREA -D T=%s -D T1=%s -D WTV=%s -D convertToWTV=%s -D cn=%d -D convertToT=%s -D WT2V=%s -D convertToWT2V=%s -D INTER_AREA_FAST -D XSCALE=%d -D YSCALE=%d -D SCALE=%ffresizeAREA_FASTresizeAREA(dst_width * dst_height > 0) || (inv_scale_x > 0 && inv_scale_y > 0)dsize.area() > 0func != 0 && cn <= 4ssize.width > 0 && ssize.height > 0dsize.area() > 0 || (inv_scale_x > 0 && inv_scale_y > 0)rotatingCalipersvoid cv::boxPoints(cv::RotatedRect, cv::OutputArray)cv::RotatedRect cv::minAreaRect(cv::InputArray)orientation != 0/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/rotcalipers.cppcvGetQuadrangleSubPixcvSampleLinegetRectSubPixcvGetRectSubPixvoid cv::getRectSubPix(cv::InputArray, cv::Size, cv::Point2f, cv::OutputArray, int)/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/samplers.cppcn == 1 || cn == 3Unsupported combination of input and output formatspyrMeanShiftFilteringMatwatershedvoid cv::pyrMeanShiftFiltering(cv::InputArray, cv::OutputArray, double, double, int, cv::TermCriteria)void cv::watershed(cv::InputArray, cv::InputOutputArray)The number of pyramid levels is too large or negative/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/segmentation.cppOnly 8-bit, 3-channel images are supportedThe input and output images must have the same typeThe input and output images must have the same sizesrc.type() == (((0) & ((1 << 3) - 1)) + (((3)-1) << 3)) && dst.type() == (((4) & ((1 << 3) - 1)) + (((1)-1) << 3))pointSetBoundingRecticvMemCopymaskBoundingRectminEnclosingCirclearcLengthcontourAreafitEllipseMatfitEllipseDirectfitEllipseAMScvContourAreaicvContourSecAreacvArcLengthcvBoundingRectcv::Rect cv::boundingRect(cv::InputArray)cv::RotatedRect cv::fitEllipse(cv::InputArray)double cv::contourArea(cv::InputArray, bool)double cv::arcLength(cv::InputArray, bool)void cv::minEnclosingCircle(cv::InputArray, cv::Point2f&, float&)npoints >= 0 && (depth == 5 || depth == 4)/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/shapedescr.cpp(*buf1 != __null || *buf2 != __null) && *buf3 != __nullimg.depth() <= 1 && img.channels() == 1count >= 0 && (depth == 5 || depth == 4)n >= 0 && (depth == 5 || depth == 4)There should be at least 5 points to fit the ellipseOnly curves with integer coordinates are supported in case of contour slicecontour != __null && ((((contour)->flags & ((1 << 12) - 1)) == (((4) & ((1 << 3) - 1)) + (((2)-1) << 3)) || ((contour)->flags & ((1 << 12) - 1)) == (((5) & ((1 << 3) - 1)) + (((2)-1) << 3))))The image/matrix format is not supported by the functionN2cv9ColumnSumIihEEN2cv9ColumnSumIthEEN2cv9ColumnSumIisEEN2cv9ColumnSumIitEEN2cv9ColumnSumIiiEEN2cv9ColumnSumIifEEN2cv26BilateralFilter_8u_InvokerEN2cv27BilateralFilter_32f_InvokerEN2cv6RowSumIhiEEN2cv6RowSumIhtEEN2cv6RowSumIhdEEN2cv6RowSumItiEEN2cv6RowSumItdEEN2cv6RowSumIsiEEN2cv6RowSumIiiEEN2cv6RowSumIsdEEN2cv6RowSumIfdEEN2cv6RowSumIddEEN2cv9ColumnSumIdhEEN2cv9ColumnSumIdtEEN2cv9ColumnSumIdsEEN2cv9ColumnSumIdfEEN2cv9ColumnSumIidEEN2cv9ColumnSumIddEEN2cv9SqrRowSumIhiEEN2cv9SqrRowSumIhdEEN2cv9SqrRowSumItdEEN2cv9SqrRowSumIsdEEN2cv9SqrRowSumIfdEEN2cv9SqrRowSumIddEEN2cv6detail12PtrOwnerImplINS_6RowSumIhiEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_6RowSumIhtEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_6RowSumIhdEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_6RowSumItiEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_6RowSumItdEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_6RowSumIsiEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_6RowSumIiiEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_6RowSumIsdEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_6RowSumIfdEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_6RowSumIddEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_9ColumnSumIihEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_9ColumnSumIthEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_9ColumnSumIdhEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_9ColumnSumIitEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_9ColumnSumIdtEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_9ColumnSumIisEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_9ColumnSumIdsEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_9ColumnSumIiiEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_9ColumnSumIifEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_9ColumnSumIdfEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_9ColumnSumIidEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_9ColumnSumIddEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_9SqrRowSumIhiEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_9SqrRowSumIhdEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_9SqrRowSumItdEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_9SqrRowSumIsdEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_9SqrRowSumIfdEENS_14DefaultDeleterIS3_EEEEN2cv6detail12PtrOwnerImplINS_9SqrRowSumIddEENS_14DefaultDeleterIS3_EEEEoperator()medianBlur_8u_OmmedianBlur_8u_O1getRowSumFiltergetColumnSumFilter?>?>=>>>===`>>`>==getGaussianKernelcreateGaussianKernelsmedianBlurbilateralFilter_8ubilateralFilter_32fbilateralFiltercvSmoothgetSqrRowSumFilteroperator()operator()operator()operator()operator()operator()operator()operator()operator()operator()operator()operator()void cv::bilateralFilter(cv::InputArray, cv::OutputArray, int, double, double, int)void cv::medianBlur(cv::InputArray, cv::OutputArray, int)void cv::GaussianBlur(cv::InputArray, cv::OutputArray, cv::Size, double, double, int)void cv::sqrBoxFilter(cv::InputArray, cv::OutputArray, int, cv::Size, cv::Point, bool, int)void cv::blur(cv::InputArray, cv::OutputArray, cv::Size, cv::Point, int)void cv::boxFilter(cv::InputArray, cv::OutputArray, int, cv::Size, cv::Point, bool, int)sumCount == ksize-1cn == 3/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/smooth.cppcn > 0 && cn <= 4k < 16b < 16 -D NORMALIZE -D SQR-D cn=%d -D ANCHOR_X=%d -D ANCHOR_Y=%d -D KERNEL_SIZE_X=%d -D KERNEL_SIZE_Y=%d -D PX_LOAD_VEC_SIZE=%d -D PX_LOAD_NUM_PX=%d -D PX_PER_WI_X=%d -D PX_PER_WI_Y=%d -D PRIV_DATA_WIDTH=%d -D %s -D %s -D PX_LOAD_X_ITERATIONS=%d -D PX_LOAD_Y_ITERATIONS=%d -D srcT=%s -D srcT1=%s -D dstT=%s -D dstT1=%s -D WT=%s -D WT1=%s -D convertToWT=%s -D convertToDstT=%s%s%s -D PX_LOAD_FLOAT_VEC_CONV=convert_%s -D OP_BOX_FILTER -D BORDER_ISOLATED-D LOCAL_SIZE_X=%d -D BLOCK_SIZE_Y=%d -D ST=%s -D DT=%s -D WT=%s -D convertToDT=%s -D convertToWT=%s -D ANCHOR_X=%d -D ANCHOR_Y=%d -D KERNEL_SIZE_X=%d -D KERNEL_SIZE_Y=%d -D %s%s%s%s%s -D ST1=%s -D DT1=%s -D cn=%dboxFilter((((sumType) & ((512 - 1) << 3)) >> 3) + 1) == ((((srcType) & ((512 - 1) << 3)) >> 3) + 1)((((sumType) & ((512 - 1) << 3)) >> 3) + 1) == ((((dstType) & ((512 - 1) << 3)) >> 3) + 1)Unsupported combination of sum format (=%d), and destination format (=%d)ksize.width > 0 && ksize.width % 2 == 1 && ksize.height > 0 && ksize.height % 2 == 1gaussianBlur3x3_8UC1_cols16_rows2gaussianBlur5x5_8UC1_cols4(ksize % 2 == 1) && (_src0.dims() <= 2 )medianFilter%dmedianFilter%d_u-D T=%s -D T1=%s -D T4=%s%d -D cn=%d -D USE_4OPT-D T=%s -D T1=%s -D cn=%dsrc.depth() == 0 && (cn == 1 || cn == 3 || cn == 4)bilateralbilateral_float4-D radius=%d -D maxk=%d -D cn=%d -D int_t=%s -D uint_t=uint%s -D convert_int_t=%s -D uchar_t=%s -D float_t=%s -D convert_float_t=%s -D convert_uchar_t=%s -D gauss_color_coeff=(float)%f(src.type() == (((0) & ((1 << 3) - 1)) + (((1)-1) << 3)) || src.type() == (((0) & ((1 << 3) - 1)) + (((3)-1) << 3))) && src.data != dst.data(src.type() == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3)) || src.type() == (((5) & ((1 << 3) - 1)) + (((3)-1) << 3))) && src.data != dst.dataBilateral filtering is only implemented for 8u and 32f images-D NORMALIZEboxFilter3x3_8UC1_cols16_rows2dst.size() == src.size() && (smooth_type == CV_BLUR_NO_SCALE || dst.type() == src.type())The destination image does not have the proper typespatialGradientvoid cv::spatialGradient(cv::InputArray, cv::OutputArray, cv::OutputArray, int, int)/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/spatialgradient.cppborderType == BORDER_DEFAULT || borderType == BORDER_REPLICATEksize == 3locatecheckSubdivfindNearestinsertint cv::Subdiv2D::findNearest(cv::Point2f, cv::Point2f*)void cv::Subdiv2D::initDelaunay(cv::Rect)void cv::Subdiv2D::insert(const std::vector >&)int cv::Subdiv2D::insert(cv::Point2f)int cv::Subdiv2D::locate(cv::Point2f, int&, int&)Subdivision is empty/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/subdivision2d.cppedge > 0edgeOrg(e) == edgeOrg(o_next)edgeOrg(e) == edgeOrg(o_prev)edgeDst(e) == edgeDst(d_next)edgeDst(e) == edgeDst(d_prev)edgeDst(o_next) == edgeOrg(d_prev)edgeDst(o_prev) == edgeOrg(d_next)getEdge(getEdge(getEdge(e,NEXT_AROUND_LEFT),NEXT_AROUND_LEFT),NEXT_AROUND_LEFT) == egetEdge(getEdge(getEdge(e,NEXT_AROUND_RIGHT),NEXT_AROUND_RIGHT),NEXT_AROUND_RIGHT) == eedgeDst(edge, &t) > 0edgeOrg( edge, &t ) > 0Subdiv2D::locate returned invalid location = %dintegralcvIntegralvoid cv::integral(cv::InputArray, cv::OutputArray, cv::OutputArray, int, int)void cv::integral(cv::InputArray, cv::OutputArray, int)void cv::integral(cv::InputArray, cv::OutputArray, cv::OutputArray, cv::OutputArray, int, int)/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/sumpixels.cpp-D sumT=%s -D LOCAL_SUM_SIZE=%d%sintegral_sum_colsintegral_sum_rows-D SUM_SQUARE -D sumT=%s -D sumSQT=%s -D LOCAL_SUM_SIZE=%d%ssum.data == sum0.data && sqsum.data == sqsum0.data && tilted.data == tilted0.data  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~F|FxF$tF@pFdlFhFdFaFD]FYFUF@RFNFKFGFDF@F=F9F@6F2F/FD,F)F%F"FdF@F$FFFF F F$F@FdF EEEE EEEHE EEEE EHEEȯE EEEE EȔEEHE EEExE@pEhEaEYE@REKEDE=E@6E/E)E"E@EEE E@E DD DD DD DD DD DD DD@pDaD@RDDD@6D)D@DD@DCCCCCCCaCDC)CCBBBBDBBAAA@??@AAABDBBBBBC)CDCaCCCCCCCC@DD@D)D@6DDD@RDaD@pDD DD DD DD DD DD DD D@E EEE@E"E)E/E@6E=EDEKE@REYEaEhE@pExEEE EHEEȔE EEEE EȯEEHE EEEE EHEEE EEEE EdF@F$F F FFFF$F@FdF"F%F)FD,F/F2F@6F9F=F@FDFGFKFNF@RFUFYFD]FaFdFhFdlF@pF$tFxF|FFFFF F2FHFbFFFȔFF FRFFŸFFBFFҨF FrFȯF"FFFHFF FFFFFFFF FFHFFF"FFrF FFFBFFFFRF FFdGG@GG$GG G G GGGGGGGG$GG@GGdG G"G)$G%Ga'G)G*GD,G-G/G91G2G4G@6G7G9GY;G=G>G@GABGDGEGGGIIGKGLGNGqPG@RGTGUGWGYGi[GD]G!_GaGbGdGfGhGyjGdlGQnG@pG1rG$tGvGxG zG|G~G~}|{zyxwvutsrqponmlkjihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"!  |xtplhd`\XTPLHD@<840,($  p`P@0 @?@@@@@@@AA A0A@APA`ApAAAAAAAAAAAAAAAAABBB BBBBB B$B(B,B0B4B8BC?C@CACBCCCDCECFCGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCXCYCZC[C\C]C^C_C`CaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCqCrCsCtCuCvCwCxCyCzC{C|C}C~CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCcreateconvolve_dftcrossCorrMatMatmatchTemplateMaskmatchTemplatecommon_matchTemplatematchTemplate_CCOEFF_NORMEDcvMatchTemplatevoid cv::matchTemplate(cv::InputArray, cv::InputArray, cv::OutputArray, int, cv::InputArray)-D CALC_SUM -D T=%s -D T1=%s -D WT=%s -D cn=%d -D convertToWT=%s -D WGS=%d -D WGS2_ALIGNED=%dcalcSumthe input arrays are too big/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/templmatch.cpp_image.type() == 5_templ.type() == 5-D FIRST_CHANNEL -D T1=%s -D cn=%d -D PIX_PER_WI_Y=%dextractFirstChannel-D CCORR -D T=%s -D T1=%s -D WT=%s -D WT1=%s -D convertToWT=%s -D convertToWT1=%s -D cn=%d -D PIX_PER_WI_X=%dmatchTemplate_Naive_CCORRimg.dims <= 2 && templ.dims <= 2 && corr.dims <= 2depth == tdepth || tdepth == 5corrsize.height <= img.rows + templ.rows - 1 && corrsize.width <= img.cols + templ.cols - 1ccn == 1 || delta == 0CV_TM_SQDIFF <= method && method <= CV_TM_CCOEFF_NORMED(depth == 0 || depth == 5) && type == _templ.type() && _img.dims() <= 2_img.size().height <= _templ.size().height && _img.size().width <= _templ.size().widthsqsum.data != __nullsum.data != __nullcn >= 1 && cn <= 4-D CCOEFF_NORMED -D T=%s -D T1=%s -D cn=%dmatchTemplate_CCOEFF_NORMED-D CCOEFF -D T=%s -D T1=%s -D cn=%dmatchTemplate_Prepared_CCOEFF-D CCORR_NORMED -D T=%s -D cn=%dmatchTemplate_CCORR_NORMED-D SQDIFF_NORMED -D T=%s -D cn=%dmatchTemplate_SQDIFF_NORMED-D SQDIFF -D T=%s -D T1=%s -D WT=%s -D convertToWT=%s -D cn=%dmatchTemplate_Naive_SQDIFF-D SQDIFF_PREPARED -D T=%s -D cn=%dmatchTemplate_Prepared_SQDIFFresult.size() == cv::Size(std::abs(img.cols - templ.cols) + 1, std::abs(img.rows - templ.rows) + 1) && result.type() == 5N2cv15ThresholdRunnerEthreshGenericthresh_16sthreshGenericthreshGenericthresh_32fthreshGeneric`thresholdadaptiveThresholdcvThresholdcvAdaptiveThresholdvoid cv::adaptiveThreshold(cv::InputArray, cv::OutputArray, double, int, int, int, double)double cv::threshold(cv::InputArray, cv::OutputArray, double, double, int)/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/thresh.cpp-D %s -D T=%s -D T1=%s -D STRIDE_SIZE=%d%sthresholdautomatic_thresh != (CV_THRESH_OTSU | CV_THRESH_TRIANGLE)blockSize % 2 == 1 && blockSize > 1Unknown/unsupported adaptive threshold methodUnknown/unsupported threshold typesrc.size == dst.size && src.channels() == dst.channels() && (src.depth() == dst.depth() || dst.depth() == 0)src.size == dst.size && src.type() == dst.type()THRESH_BINARYTHRESH_BINARY_INVTHRESH_TRUNCTHRESH_TOZEROTHRESH_TOZERO_INVinitUndistortRectifyMapundistortcvUndistort2cvInitUndistortMapcvInitUndistortRectifyMapcvUndistortPointsInternalundistortPointsinitWideAngleProjMapmapPointSphericalvoid cv::undistort(cv::InputArray, cv::OutputArray, cv::InputArray, cv::InputArray, cv::InputArray)m1type == (((3) & ((1 << 3) - 1)) + (((2)-1) << 3)) || m1type == (((5) & ((1 << 3) - 1)) + (((1)-1) << 3)) || m1type == (((5) & ((1 << 3) - 1)) + (((2)-1) << 3))/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/undistort.cppA.size() == Size(3,3) && A.size() == R.size()Ar.size() == Size(3,3) || Ar.size() == Size(4, 3)distCoeffs.size() == Size(1, 4) || distCoeffs.size() == Size(4, 1) || distCoeffs.size() == Size(1, 5) || distCoeffs.size() == Size(5, 1) || distCoeffs.size() == Size(1, 8) || distCoeffs.size() == Size(8, 1) || distCoeffs.size() == Size(1, 12) || distCoeffs.size() == Size(12, 1) || distCoeffs.size() == Size(1, 14) || distCoeffs.size() == Size(14, 1)m1 != __null && m2 != __nullm1f != __null && m2f != __nullm1 != __nulldst.data != src.datamapx0.data == mapx.data && mapy0.data == mapy.data(((_src) != __null && (((const CvMat*)(_src))->type & 0xFFFF0000) == 0x42420000 && ((const CvMat*)(_src))->cols > 0 && ((const CvMat*)(_src))->rows > 0) && ((const CvMat*)(_src))->data.ptr != __null) && (((_dst) != __null && (((const CvMat*)(_dst))->type & 0xFFFF0000) == 0x42420000 && ((const CvMat*)(_dst))->cols > 0 && ((const CvMat*)(_dst))->rows > 0) && ((const CvMat*)(_dst))->data.ptr != __null) && (_src->rows == 1 || _src->cols == 1) && (_dst->rows == 1 || _dst->cols == 1) && _src->cols + _src->rows - 1 == _dst->rows + _dst->cols - 1 && (((_src->type) & ((1 << 3)*512 - 1)) == (((5) & ((1 << 3) - 1)) + (((2)-1) << 3)) || ((_src->type) & ((1 << 3)*512 - 1)) == (((6) & ((1 << 3) - 1)) + (((2)-1) << 3))) && (((_dst->type) & ((1 << 3)*512 - 1)) == (((5) & ((1 << 3) - 1)) + (((2)-1) << 3)) || ((_dst->type) & ((1 << 3)*512 - 1)) == (((6) & ((1 << 3) - 1)) + (((2)-1) << 3)))(((_cameraMatrix) != __null && (((const CvMat*)(_cameraMatrix))->type & 0xFFFF0000) == 0x42420000 && ((const CvMat*)(_cameraMatrix))->cols > 0 && ((const CvMat*)(_cameraMatrix))->rows > 0) && ((const CvMat*)(_cameraMatrix))->data.ptr != __null) && _cameraMatrix->rows == 3 && _cameraMatrix->cols == 3(((_distCoeffs) != __null && (((const CvMat*)(_distCoeffs))->type & 0xFFFF0000) == 0x42420000 && ((const CvMat*)(_distCoeffs))->cols > 0 && ((const CvMat*)(_distCoeffs))->rows > 0) && ((const CvMat*)(_distCoeffs))->data.ptr != __null) && (_distCoeffs->rows == 1 || _distCoeffs->cols == 1) && (_distCoeffs->rows*_distCoeffs->cols == 4 || _distCoeffs->rows*_distCoeffs->cols == 5 || _distCoeffs->rows*_distCoeffs->cols == 8 || _distCoeffs->rows*_distCoeffs->cols == 12 || _distCoeffs->rows*_distCoeffs->cols == 14)(((matR) != __null && (((const CvMat*)(matR))->type & 0xFFFF0000) == 0x42420000 && ((const CvMat*)(matR))->cols > 0 && ((const CvMat*)(matR))->rows > 0) && ((const CvMat*)(matR))->data.ptr != __null) && matR->rows == 3 && matR->cols == 3(((matP) != __null && (((const CvMat*)(matP))->type & 0xFFFF0000) == 0x42420000 && ((const CvMat*)(matP))->cols > 0 && ((const CvMat*)(matP))->rows > 0) && ((const CvMat*)(matP))->data.ptr != __null) && matP->rows == 3 && (matP->cols == 3 || matP->cols == 4)src.isContinuous() && (src.depth() == 5 || src.depth() == 6) && ((src.rows == 1 && src.channels() == 2) || src.cols*src.channels() == 2)(distCoeffs0.cols == 1 || distCoeffs0.rows == 1) && (ndcoeffs == 4 || ndcoeffs == 5 || ndcoeffs == 8 || ndcoeffs == 12 || ndcoeffs == 14)cameraMatrix0.size() == Size(3,3)Unknown projection typecvPointSeqFromMatcvCopyMakeBorderarr != 0 && contour_header != 0 && block != 0/home/hisilicon/OpenCV3.3/sources/modules/imgproc/src/utils.cppInput array is not a valid matrixThe matrix can not be converted to point sequence because of inappropriate element typeThe matrix converted to point sequence must be 1-dimensional and continuousdst.type() == src.type()imgprocwarp_transform__constant short4 vec_offset = (short4)(0, 1, 2, 3); #define GET_VAL(x, y) ((x) < 0 || (x) >= src_cols || (y) < 0 || (y) >= src_rows) ? scalar : src[src_offset + y * src_step + x] __kernel void warpAffine_nearest_8u(__global const uchar * src, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols, __constant float * M, ST scalar_) { int x = get_global_id(0) * 4; int y = get_global_id(1); uchar scalar = convert_uchar_sat_rte(scalar_); if (x >= dst_cols || y >= dst_rows) return; short4 new_x, new_y; new_x = convert_short4_sat_rte(M[0] * convert_float4(vec_offset + (short4)(x)) + M[1] * convert_float4((short4)y) + M[2]); new_y = convert_short4_sat_rte(M[3] * convert_float4(vec_offset + (short4)(x)) + M[4] * convert_float4((short4)y) + M[5]); uchar4 pix = (uchar4)scalar; pix.s0 = GET_VAL(new_x.s0, new_y.s0); pix.s1 = GET_VAL(new_x.s1, new_y.s1); pix.s2 = GET_VAL(new_x.s2, new_y.s2); pix.s3 = GET_VAL(new_x.s3, new_y.s3); int dst_index = x + y * dst_step + dst_offset; vstore4(pix, 0, dst + dst_index); } uchar4 read_pixels(__global const uchar * src, short tx, short ty, int src_offset, int src_step, int src_cols, int src_rows, uchar scalar) { uchar2 pt, pb; short bx, by; bx = tx + 1; by = ty + 1; if (tx >= 0 && (tx + 1) < src_cols && ty >= 0 && ty < src_rows) { pt = vload2(0, src + src_offset + ty * src_step + tx); } else { pt.s0 = GET_VAL(tx, ty); pt.s1 = GET_VAL(bx, ty); } if (tx >= 0 && (tx + 1) < src_cols && by >= 0 && by < src_rows) { pb = vload2(0, src + src_offset + by * src_step + tx); } else { pb.s0 = GET_VAL(tx, by); pb.s1 = GET_VAL(bx, by); } return (uchar4)(pt, pb); } __kernel void warpAffine_linear_8u(__global const uchar * src, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols, __constant float * M, ST scalar_) { int x = get_global_id(0) * 4; int y = get_global_id(1); uchar scalar = convert_uchar_sat_rte(scalar_); if (x >= dst_cols || y >= dst_rows) return; float4 nx, ny; nx = M[0] * convert_float4((vec_offset + (short4)x)) + M[1] * convert_float4((short4)y) + M[2]; ny = M[3] * convert_float4((vec_offset + (short4)x)) + M[4] * convert_float4((short4)y) + M[5]; float4 s, t; s = round((nx - floor(nx)) * 32.0f) / 32.0f; t = round((ny - floor(ny)) * 32.0f) / 32.0f; short4 tx, ty; tx = convert_short4_sat_rtn(nx); ty = convert_short4_sat_rtn(ny); uchar4 pix[4]; pix[0] = read_pixels(src, tx.s0, ty.s0, src_offset, src_step, src_cols, src_rows, scalar); pix[1] = read_pixels(src, tx.s1, ty.s1, src_offset, src_step, src_cols, src_rows, scalar); pix[2] = read_pixels(src, tx.s2, ty.s2, src_offset, src_step, src_cols, src_rows, scalar); pix[3] = read_pixels(src, tx.s3, ty.s3, src_offset, src_step, src_cols, src_rows, scalar); float4 tl, tr, bl, br; tl = convert_float4((uchar4)(pix[0].s0, pix[1].s0, pix[2].s0, pix[3].s0)); tr = convert_float4((uchar4)(pix[0].s1, pix[1].s1, pix[2].s1, pix[3].s1)); bl = convert_float4((uchar4)(pix[0].s2, pix[1].s2, pix[2].s2, pix[3].s2)); br = convert_float4((uchar4)(pix[0].s3, pix[1].s3, pix[2].s3, pix[3].s3)); float4 pixel; pixel = tl * (1 - s) * (1 - t) + tr * s * (1 - t) + bl * (1 - s) * t + br * s * t; int dst_index = x + y * dst_step + dst_offset; vstore4(convert_uchar4_sat_rte(pixel), 0, dst + dst_index); } __constant float coeffs[128] = { 0.000000f, 1.000000f, 0.000000f, 0.000000f, -0.021996f, 0.997841f, 0.024864f, -0.000710f, -0.041199f, 0.991516f, 0.052429f, -0.002747f, -0.057747f, 0.981255f, 0.082466f, -0.005974f, -0.071777f, 0.967285f, 0.114746f, -0.010254f, -0.083427f, 0.949837f, 0.149040f, -0.015450f, -0.092834f, 0.929138f, 0.185120f, -0.021423f, -0.100136f, 0.905418f, 0.222755f, -0.028038f, -0.105469f, 0.878906f, 0.261719f, -0.035156f, -0.108971f, 0.849831f, 0.301781f, -0.042641f, -0.110779f, 0.818420f, 0.342712f, -0.050354f, -0.111031f, 0.784904f, 0.384285f, -0.058159f, -0.109863f, 0.749512f, 0.426270f, -0.065918f, -0.107414f, 0.712471f, 0.468437f, -0.073494f, -0.103821f, 0.674011f, 0.510559f, -0.080750f, -0.099220f, 0.634361f, 0.552406f, -0.087547f, -0.093750f, 0.593750f, 0.593750f, -0.093750f, -0.087547f, 0.552406f, 0.634361f, -0.099220f, -0.080750f, 0.510559f, 0.674011f, -0.103821f, -0.073494f, 0.468437f, 0.712471f, -0.107414f, -0.065918f, 0.426270f, 0.749512f, -0.109863f, -0.058159f, 0.384285f, 0.784904f, -0.111031f, -0.050354f, 0.342712f, 0.818420f, -0.110779f, -0.042641f, 0.301781f, 0.849831f, -0.108971f, -0.035156f, 0.261719f, 0.878906f, -0.105469f, -0.028038f, 0.222755f, 0.905418f, -0.100136f, -0.021423f, 0.185120f, 0.929138f, -0.092834f, -0.015450f, 0.149040f, 0.949837f, -0.083427f, -0.010254f, 0.114746f, 0.967285f, -0.071777f, -0.005974f, 0.082466f, 0.981255f, -0.057747f, -0.002747f, 0.052429f, 0.991516f, -0.041199f, -0.000710f, 0.024864f, 0.997841f, -0.021996f }; uchar4 read_pixels_cubic(__global const uchar * src, int tx, int ty, int src_offset, int src_step, int src_cols, int src_rows, uchar scalar) { uchar4 pix; if (tx >= 0 && (tx + 3) < src_cols && ty >= 0 && ty < src_rows) { pix = vload4(0, src + src_offset + ty * src_step + tx); } else { pix.s0 = GET_VAL((tx + 0), ty); pix.s1 = GET_VAL((tx + 1), ty); pix.s2 = GET_VAL((tx + 2), ty); pix.s3 = GET_VAL((tx + 3), ty); } return pix; } __kernel void warpAffine_cubic_8u(__global const uchar * src, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols, __constant float * M, ST scalar_) { int x = get_global_id(0) * 4; int y = get_global_id(1); uchar scalar = convert_uchar_sat_rte(scalar_); if (x >= dst_cols || y >= dst_rows) return; float4 nx, ny; nx = M[0] * convert_float4((vec_offset + (short4)x)) + M[1] * convert_float4((short4)y) + M[2]; ny = M[3] * convert_float4((vec_offset + (short4)x)) + M[4] * convert_float4((short4)y) + M[5]; int4 ax, ay; ax = convert_int4_sat_rte((nx - floor(nx)) * 32.0f) & 31; ay = convert_int4_sat_rte((ny - floor(ny)) * 32.0f) & 31; int4 tx, ty; int4 delta_x, delta_y; delta_x = select((int4)1, (int4)0, ((nx - floor(nx))) * 64 > 63); delta_y = select((int4)1, (int4)0, ((ny - floor(ny))) * 64 > 63); tx = convert_int4_sat_rtn(nx) - delta_x; ty = convert_int4_sat_rtn(ny) - delta_y; __constant float * coeffs_x, * coeffs_y; float4 sum = (float4)0.0f; uchar4 pix; float xsum; coeffs_x = coeffs + (ax.s0 << 2); coeffs_y = coeffs + (ay.s0 << 2); for (int i = 0; i < 4; i++) { pix = read_pixels_cubic(src, tx.s0, ty.s0 + i, src_offset, src_step, src_cols, src_rows, scalar); xsum = dot(convert_float4(pix), (float4)(coeffs_x[0], coeffs_x[1], coeffs_x[2], coeffs_x[3])); sum.s0 = fma(xsum, coeffs_y[i], sum.s0); } coeffs_x = coeffs + (ax.s1 << 2); coeffs_y = coeffs + (ay.s1 << 2); for (int i = 0; i < 4; i++) { pix = read_pixels_cubic(src, tx.s1, ty.s1 + i, src_offset, src_step, src_cols, src_rows, scalar); xsum = dot(convert_float4(pix), (float4)(coeffs_x[0], coeffs_x[1], coeffs_x[2], coeffs_x[3])); sum.s1 = fma(xsum, coeffs_y[i], sum.s1); } coeffs_x = coeffs + (ax.s2 << 2); coeffs_y = coeffs + (ay.s2 << 2); for (int i = 0; i < 4; i++) { pix = read_pixels_cubic(src, tx.s2, ty.s2 + i, src_offset, src_step, src_cols, src_rows, scalar); xsum = dot(convert_float4(pix), (float4)(coeffs_x[0], coeffs_x[1], coeffs_x[2], coeffs_x[3])); sum.s2 = fma(xsum, coeffs_y[i], sum.s2); } coeffs_x = coeffs + (ax.s3 << 2); coeffs_y = coeffs + (ay.s3 << 2); for (int i = 0; i < 4; i++) { pix = read_pixels_cubic(src, tx.s3, ty.s3 + i, src_offset, src_step, src_cols, src_rows, scalar); xsum = dot(convert_float4(pix), (float4)(coeffs_x[0], coeffs_x[1], coeffs_x[2], coeffs_x[3])); sum.s3 = fma(xsum, coeffs_y[i], sum.s3); } int dst_index = x + y * dst_step + dst_offset; vstore4(convert_uchar4_sat_rte(sum), 0, dst + dst_index); } __kernel void warpPerspective_nearest_8u(__global const uchar * src, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols, __constant float * M, ST scalar_) { int x = get_global_id(0) * 4; int y = get_global_id(1); uchar scalar = convert_uchar_sat_rte(scalar_); if (x >= dst_cols || y >= dst_rows) return; float4 nx, ny, nz; nx = M[0] * convert_float4(vec_offset + (short4)(x)) + M[1] * convert_float4((short4)y) + M[2]; ny = M[3] * convert_float4(vec_offset + (short4)(x)) + M[4] * convert_float4((short4)y) + M[5]; nz = M[6] * convert_float4(vec_offset + (short4)(x)) + M[7] * convert_float4((short4)y) + M[8]; short4 new_x, new_y; float4 fz = select((float4)(0.0f), (float4)(1.0f / nz), nz != 0.0f); new_x = convert_short4_sat_rte(nx * fz); new_y = convert_short4_sat_rte(ny * fz); uchar4 pix = (uchar4)scalar; pix.s0 = GET_VAL(new_x.s0, new_y.s0); pix.s1 = GET_VAL(new_x.s1, new_y.s1); pix.s2 = GET_VAL(new_x.s2, new_y.s2); pix.s3 = GET_VAL(new_x.s3, new_y.s3); int dst_index = x + y * dst_step + dst_offset; vstore4(pix, 0, dst + dst_index); } __kernel void warpPerspective_linear_8u(__global const uchar * src, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols, __constant float * M, ST scalar_) { int x = get_global_id(0) * 4; int y = get_global_id(1); uchar scalar = convert_uchar_sat_rte(scalar_); if (x >= dst_cols || y >= dst_rows) return; float4 nx, ny, nz; nx = M[0] * convert_float4(vec_offset + (short4)(x)) + M[1] * convert_float4((short4)y) + M[2]; ny = M[3] * convert_float4(vec_offset + (short4)(x)) + M[4] * convert_float4((short4)y) + M[5]; nz = M[6] * convert_float4(vec_offset + (short4)(x)) + M[7] * convert_float4((short4)y) + M[8]; float4 fz = select((float4)(0.0f), (float4)(1.0f / nz), nz != 0.0f); nx = nx * fz; ny = ny * fz; float4 s, t; s = round((nx - floor(nx)) * 32.0f) / (float4)32.0f; t = round((ny - floor(ny)) * 32.0f) / (float4)32.0f; short4 tx, ty; tx = convert_short4_sat_rtn(nx); ty = convert_short4_sat_rtn(ny); uchar4 pix[4]; pix[0] = read_pixels(src, tx.s0, ty.s0, src_offset, src_step, src_cols, src_rows, scalar); pix[1] = read_pixels(src, tx.s1, ty.s1, src_offset, src_step, src_cols, src_rows, scalar); pix[2] = read_pixels(src, tx.s2, ty.s2, src_offset, src_step, src_cols, src_rows, scalar); pix[3] = read_pixels(src, tx.s3, ty.s3, src_offset, src_step, src_cols, src_rows, scalar); float4 tl, tr, bl, br; tl = convert_float4((uchar4)(pix[0].s0, pix[1].s0, pix[2].s0, pix[3].s0)); tr = convert_float4((uchar4)(pix[0].s1, pix[1].s1, pix[2].s1, pix[3].s1)); bl = convert_float4((uchar4)(pix[0].s2, pix[1].s2, pix[2].s2, pix[3].s2)); br = convert_float4((uchar4)(pix[0].s3, pix[1].s3, pix[2].s3, pix[3].s3)); float4 pixel; pixel = tl * (1 - s) * (1 - t) + tr * s * (1 - t) + bl * (1 - s) * t + br * s * t; int dst_index = x + y * dst_step + dst_offset; vstore4(convert_uchar4_sat_rte(pixel), 0, dst + dst_index); } __kernel void warpPerspective_cubic_8u(__global const uchar * src, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols, __constant float * M, ST scalar_) { int x = get_global_id(0) * 4; int y = get_global_id(1); uchar scalar = convert_uchar_sat_rte(scalar_); if (x >= dst_cols || y >= dst_rows) return; float4 nx, ny, nz; nx = M[0] * convert_float4(vec_offset + (short4)(x)) + M[1] * convert_float4((short4)y) + M[2]; ny = M[3] * convert_float4(vec_offset + (short4)(x)) + M[4] * convert_float4((short4)y) + M[5]; nz = M[6] * convert_float4(vec_offset + (short4)(x)) + M[7] * convert_float4((short4)y) + M[8]; float4 fz = select((float4)(0.0f), (float4)(1.0f / nz), nz != 0.0f); nx = nx * fz; ny = ny * fz; int4 ax, ay; ax = convert_int4_sat_rte((nx - floor(nx)) * 32.0f) & 31; ay = convert_int4_sat_rte((ny - floor(ny)) * 32.0f) & 31; int4 tx, ty; int4 delta_x, delta_y; delta_x = select((int4)1, (int4)0, ((nx - floor(nx))) * 64 > 63); delta_y = select((int4)1, (int4)0, ((ny - floor(ny))) * 64 > 63); tx = convert_int4_sat_rtn(nx) - delta_x; ty = convert_int4_sat_rtn(ny) - delta_y; __constant float * coeffs_x, * coeffs_y; float4 sum = (float4)0.0f; uchar4 pix; float xsum; coeffs_x = coeffs + (ax.s0 << 2); coeffs_y = coeffs + (ay.s0 << 2); for (int i = 0; i < 4; i++) { pix = read_pixels_cubic(src, tx.s0, ty.s0 + i, src_offset, src_step, src_cols, src_rows, scalar); xsum = dot(convert_float4(pix), (float4)(coeffs_x[0], coeffs_x[1], coeffs_x[2], coeffs_x[3])); sum.s0 = fma(xsum, coeffs_y[i], sum.s0); } coeffs_x = coeffs + (ax.s1 << 2); coeffs_y = coeffs + (ay.s1 << 2); for (int i = 0; i < 4; i++) { pix = read_pixels_cubic(src, tx.s1, ty.s1 + i, src_offset, src_step, src_cols, src_rows, scalar); xsum = dot(convert_float4(pix), (float4)(coeffs_x[0], coeffs_x[1], coeffs_x[2], coeffs_x[3])); sum.s1 = fma(xsum, coeffs_y[i], sum.s1); } coeffs_x = coeffs + (ax.s2 << 2); coeffs_y = coeffs + (ay.s2 << 2); for (int i = 0; i < 4; i++) { pix = read_pixels_cubic(src, tx.s2, ty.s2 + i, src_offset, src_step, src_cols, src_rows, scalar); xsum = dot(convert_float4(pix), (float4)(coeffs_x[0], coeffs_x[1], coeffs_x[2], coeffs_x[3])); sum.s2 = fma(xsum, coeffs_y[i], sum.s2); } coeffs_x = coeffs + (ax.s3 << 2); coeffs_y = coeffs + (ay.s3 << 2); for (int i = 0; i < 4; i++) { pix = read_pixels_cubic(src, tx.s3, ty.s3 + i, src_offset, src_step, src_cols, src_rows, scalar); xsum = dot(convert_float4(pix), (float4)(coeffs_x[0], coeffs_x[1], coeffs_x[2], coeffs_x[3])); sum.s3 = fma(xsum, coeffs_y[i], sum.s3); } int dst_index = x + y * dst_step + dst_offset; vstore4(convert_uchar4_sat_rte(sum), 0, dst + dst_index); } 14b9aef8e98f5e09295cf556e35dbf81warp_perspective#ifdef DOUBLE_SUPPORT #ifdef cl_amd_fp64 #pragma OPENCL EXTENSION cl_amd_fp64:enable #elif defined (cl_khr_fp64) #pragma OPENCL EXTENSION cl_khr_fp64:enable #endif #endif #define INTER_BITS 5 #define INTER_TAB_SIZE (1 << INTER_BITS) #define INTER_SCALE 1.f / INTER_TAB_SIZE #define AB_BITS max(10, (int)INTER_BITS) #define AB_SCALE (1 << AB_BITS) #define INTER_REMAP_COEF_BITS 15 #define INTER_REMAP_COEF_SCALE (1 << INTER_REMAP_COEF_BITS) #define noconvert #ifndef ST #define ST T #endif #if cn != 3 #define loadpix(addr) *(__global const T*)(addr) #define storepix(val, addr) *(__global T*)(addr) = val #define scalar scalar_ #define pixsize (int)sizeof(T) #else #define loadpix(addr) vload3(0, (__global const T1*)(addr)) #define storepix(val, addr) vstore3(val, 0, (__global T1*)(addr)) #ifdef INTER_NEAREST #define scalar (T)(scalar_.x, scalar_.y, scalar_.z) #else #define scalar (WT)(scalar_.x, scalar_.y, scalar_.z) #endif #define pixsize ((int)sizeof(T1)*3) #endif #ifdef INTER_NEAREST __kernel void warpPerspective(__global const uchar * srcptr, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dstptr, int dst_step, int dst_offset, int dst_rows, int dst_cols, __constant CT * M, ST scalar_) { int dx = get_global_id(0); int dy = get_global_id(1); if (dx < dst_cols && dy < dst_rows) { CT X0 = M[0] * dx + M[1] * dy + M[2]; CT Y0 = M[3] * dx + M[4] * dy + M[5]; CT W = M[6] * dx + M[7] * dy + M[8]; W = W != 0.0f ? 1.f / W : 0.0f; short sx = convert_short_sat_rte(X0*W); short sy = convert_short_sat_rte(Y0*W); int dst_index = mad24(dy, dst_step, dx * pixsize + dst_offset); if (sx >= 0 && sx < src_cols && sy >= 0 && sy < src_rows) { int src_index = mad24(sy, src_step, sx * pixsize + src_offset); storepix(loadpix(srcptr + src_index), dstptr + dst_index); } else storepix(scalar, dstptr + dst_index); } } #elif defined INTER_LINEAR __kernel void warpPerspective(__global const uchar * srcptr, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dstptr, int dst_step, int dst_offset, int dst_rows, int dst_cols, __constant CT * M, ST scalar_) { int dx = get_global_id(0); int dy = get_global_id(1); if (dx < dst_cols && dy < dst_rows) { CT X0 = M[0] * dx + M[1] * dy + M[2]; CT Y0 = M[3] * dx + M[4] * dy + M[5]; CT W = M[6] * dx + M[7] * dy + M[8]; W = W != 0.0f ? INTER_TAB_SIZE / W : 0.0f; int X = rint(X0 * W), Y = rint(Y0 * W); short sx = convert_short_sat(X >> INTER_BITS); short sy = convert_short_sat(Y >> INTER_BITS); short ay = (short)(Y & (INTER_TAB_SIZE - 1)); short ax = (short)(X & (INTER_TAB_SIZE - 1)); WT v0 = (sx >= 0 && sx < src_cols && sy >= 0 && sy < src_rows) ? convertToWT(loadpix(srcptr + mad24(sy, src_step, src_offset + sx * pixsize))) : scalar; WT v1 = (sx+1 >= 0 && sx+1 < src_cols && sy >= 0 && sy < src_rows) ? convertToWT(loadpix(srcptr + mad24(sy, src_step, src_offset + (sx+1) * pixsize))) : scalar; WT v2 = (sx >= 0 && sx < src_cols && sy+1 >= 0 && sy+1 < src_rows) ? convertToWT(loadpix(srcptr + mad24(sy+1, src_step, src_offset + sx * pixsize))) : scalar; WT v3 = (sx+1 >= 0 && sx+1 < src_cols && sy+1 >= 0 && sy+1 < src_rows) ? convertToWT(loadpix(srcptr + mad24(sy+1, src_step, src_offset + (sx+1) * pixsize))) : scalar; float taby = 1.f/INTER_TAB_SIZE*ay; float tabx = 1.f/INTER_TAB_SIZE*ax; int dst_index = mad24(dy, dst_step, dst_offset + dx * pixsize); #if depth <= 4 int itab0 = convert_short_sat_rte( (1.0f-taby)*(1.0f-tabx) * INTER_REMAP_COEF_SCALE ); int itab1 = convert_short_sat_rte( (1.0f-taby)*tabx * INTER_REMAP_COEF_SCALE ); int itab2 = convert_short_sat_rte( taby*(1.0f-tabx) * INTER_REMAP_COEF_SCALE ); int itab3 = convert_short_sat_rte( taby*tabx * INTER_REMAP_COEF_SCALE ); WT val = v0 * itab0 + v1 * itab1 + v2 * itab2 + v3 * itab3; storepix(convertToT((val + (1 << (INTER_REMAP_COEF_BITS-1))) >> INTER_REMAP_COEF_BITS), dstptr + dst_index); #else float tabx2 = 1.0f - tabx, taby2 = 1.0f - taby; WT val = v0 * tabx2 * taby2 + v1 * tabx * taby2 + v2 * tabx2 * taby + v3 * tabx * taby; storepix(convertToT(val), dstptr + dst_index); #endif } } #elif defined INTER_CUBIC inline void interpolateCubic( float x, float* coeffs ) { const float A = -0.75f; coeffs[0] = ((A*(x + 1.f) - 5.0f*A)*(x + 1.f) + 8.0f*A)*(x + 1.f) - 4.0f*A; coeffs[1] = ((A + 2.f)*x - (A + 3.f))*x*x + 1.f; coeffs[2] = ((A + 2.f)*(1.f - x) - (A + 3.f))*(1.f - x)*(1.f - x) + 1.f; coeffs[3] = 1.f - coeffs[0] - coeffs[1] - coeffs[2]; } __kernel void warpPerspective(__global const uchar * srcptr, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dstptr, int dst_step, int dst_offset, int dst_rows, int dst_cols, __constant CT * M, ST scalar_) { int dx = get_global_id(0); int dy = get_global_id(1); if (dx < dst_cols && dy < dst_rows) { CT X0 = M[0] * dx + M[1] * dy + M[2]; CT Y0 = M[3] * dx + M[4] * dy + M[5]; CT W = M[6] * dx + M[7] * dy + M[8]; W = W != 0.0f ? INTER_TAB_SIZE / W : 0.0f; int X = rint(X0 * W), Y = rint(Y0 * W); short sx = convert_short_sat(X >> INTER_BITS) - 1; short sy = convert_short_sat(Y >> INTER_BITS) - 1; short ay = (short)(Y & (INTER_TAB_SIZE-1)); short ax = (short)(X & (INTER_TAB_SIZE-1)); WT v[16]; #pragma unroll for (int y = 0; y < 4; y++) #pragma unroll for (int x = 0; x < 4; x++) v[mad24(y, 4, x)] = (sx+x >= 0 && sx+x < src_cols && sy+y >= 0 && sy+y < src_rows) ? convertToWT(loadpix(srcptr + mad24(sy+y, src_step, src_offset + (sx+x) * pixsize))) : scalar; float tab1y[4], tab1x[4]; float ayy = INTER_SCALE * ay; float axx = INTER_SCALE * ax; interpolateCubic(ayy, tab1y); interpolateCubic(axx, tab1x); int dst_index = mad24(dy, dst_step, dst_offset + dx * pixsize); WT sum = (WT)(0); #if depth <= 4 int itab[16]; #pragma unroll for (int i = 0; i < 16; i++) itab[i] = rint(tab1y[(i>>2)] * tab1x[(i&3)] * INTER_REMAP_COEF_SCALE); #pragma unroll for (int i = 0; i < 16; i++) sum += v[i] * itab[i]; storepix(convertToT( (sum + (1 << (INTER_REMAP_COEF_BITS-1))) >> INTER_REMAP_COEF_BITS ), dstptr + dst_index); #else #pragma unroll for (int i = 0; i < 16; i++) sum += v[i] * tab1y[(i>>2)] * tab1x[(i&3)]; storepix(convertToT( sum ), dstptr + dst_index); #endif } } #endif a369fbc4026cb59e20aead1fb3f896f0warp_affine#ifdef DOUBLE_SUPPORT #ifdef cl_amd_fp64 #pragma OPENCL EXTENSION cl_amd_fp64:enable #elif defined (cl_khr_fp64) #pragma OPENCL EXTENSION cl_khr_fp64:enable #endif #endif #define INTER_BITS 5 #define INTER_TAB_SIZE (1 << INTER_BITS) #define INTER_SCALE 1.f/INTER_TAB_SIZE #define AB_BITS max(10, (int)INTER_BITS) #define AB_SCALE (1 << AB_BITS) #define INTER_REMAP_COEF_BITS 15 #define INTER_REMAP_COEF_SCALE (1 << INTER_REMAP_COEF_BITS) #define ROUND_DELTA (1 << (AB_BITS - INTER_BITS - 1)) #define noconvert #ifndef ST #define ST T #endif #if cn != 3 #define loadpix(addr) *(__global const T*)(addr) #define storepix(val, addr) *(__global T*)(addr) = val #define scalar scalar_ #define pixsize (int)sizeof(T) #else #define loadpix(addr) vload3(0, (__global const T1*)(addr)) #define storepix(val, addr) vstore3(val, 0, (__global T1*)(addr)) #ifdef INTER_NEAREST #define scalar (T)(scalar_.x, scalar_.y, scalar_.z) #else #define scalar (WT)(scalar_.x, scalar_.y, scalar_.z) #endif #define pixsize ((int)sizeof(T1)*3) #endif #ifdef INTER_NEAREST __kernel void warpAffine(__global const uchar * srcptr, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dstptr, int dst_step, int dst_offset, int dst_rows, int dst_cols, __constant CT * M, ST scalar_) { int dx = get_global_id(0); int dy0 = get_global_id(1) * rowsPerWI; if (dx < dst_cols) { int round_delta = (AB_SCALE >> 1); int X0_ = rint(M[0] * dx * AB_SCALE); int Y0_ = rint(M[3] * dx * AB_SCALE); int dst_index = mad24(dy0, dst_step, mad24(dx, pixsize, dst_offset)); for (int dy = dy0, dy1 = min(dst_rows, dy0 + rowsPerWI); dy < dy1; ++dy, dst_index += dst_step) { int X0 = X0_ + rint(fma(M[1], (CT)dy, M[2]) * AB_SCALE) + round_delta; int Y0 = Y0_ + rint(fma(M[4], (CT)dy, M[5]) * AB_SCALE) + round_delta; short sx = convert_short_sat(X0 >> AB_BITS); short sy = convert_short_sat(Y0 >> AB_BITS); if (sx >= 0 && sx < src_cols && sy >= 0 && sy < src_rows) { int src_index = mad24(sy, src_step, mad24(sx, pixsize, src_offset)); storepix(loadpix(srcptr + src_index), dstptr + dst_index); } else storepix(scalar, dstptr + dst_index); } } } #elif defined INTER_LINEAR __constant float coeffs[64] = { 1.000000f, 0.000000f, 0.968750f, 0.031250f, 0.937500f, 0.062500f, 0.906250f, 0.093750f, 0.875000f, 0.125000f, 0.843750f, 0.156250f, 0.812500f, 0.187500f, 0.781250f, 0.218750f, 0.750000f, 0.250000f, 0.718750f, 0.281250f, 0.687500f, 0.312500f, 0.656250f, 0.343750f, 0.625000f, 0.375000f, 0.593750f, 0.406250f, 0.562500f, 0.437500f, 0.531250f, 0.468750f, 0.500000f, 0.500000f, 0.468750f, 0.531250f, 0.437500f, 0.562500f, 0.406250f, 0.593750f, 0.375000f, 0.625000f, 0.343750f, 0.656250f, 0.312500f, 0.687500f, 0.281250f, 0.718750f, 0.250000f, 0.750000f, 0.218750f, 0.781250f, 0.187500f, 0.812500f, 0.156250f, 0.843750f, 0.125000f, 0.875000f, 0.093750f, 0.906250f, 0.062500f, 0.937500f, 0.031250f, 0.968750f }; __kernel void warpAffine(__global const uchar * srcptr, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dstptr, int dst_step, int dst_offset, int dst_rows, int dst_cols, __constant CT * M, ST scalar_) { int dx = get_global_id(0); int dy0 = get_global_id(1) * rowsPerWI; if (dx < dst_cols) { int tmp = dx << AB_BITS; int X0_ = rint(M[0] * tmp); int Y0_ = rint(M[3] * tmp); for (int dy = dy0, dy1 = min(dst_rows, dy0 + rowsPerWI); dy < dy1; ++dy) { int X0 = X0_ + rint(fma(M[1], (CT)dy, M[2]) * AB_SCALE) + ROUND_DELTA; int Y0 = Y0_ + rint(fma(M[4], (CT)dy, M[5]) * AB_SCALE) + ROUND_DELTA; X0 = X0 >> (AB_BITS - INTER_BITS); Y0 = Y0 >> (AB_BITS - INTER_BITS); short sx = convert_short_sat(X0 >> INTER_BITS), sy = convert_short_sat(Y0 >> INTER_BITS); short ax = convert_short(X0 & (INTER_TAB_SIZE-1)), ay = convert_short(Y0 & (INTER_TAB_SIZE-1)); #if defined AMD_DEVICE || depth > 4 WT v0 = scalar, v1 = scalar, v2 = scalar, v3 = scalar; if (sx >= 0 && sx < src_cols) { if (sy >= 0 && sy < src_rows) v0 = convertToWT(loadpix(srcptr + mad24(sy, src_step, mad24(sx, pixsize, src_offset)))); if (sy+1 >= 0 && sy+1 < src_rows) v2 = convertToWT(loadpix(srcptr + mad24(sy+1, src_step, mad24(sx, pixsize, src_offset)))); } if (sx+1 >= 0 && sx+1 < src_cols) { if (sy >= 0 && sy < src_rows) v1 = convertToWT(loadpix(srcptr + mad24(sy, src_step, mad24(sx+1, pixsize, src_offset)))); if (sy+1 >= 0 && sy+1 < src_rows) v3 = convertToWT(loadpix(srcptr + mad24(sy+1, src_step, mad24(sx+1, pixsize, src_offset)))); } float taby = 1.f/INTER_TAB_SIZE*ay; float tabx = 1.f/INTER_TAB_SIZE*ax; int dst_index = mad24(dy, dst_step, mad24(dx, pixsize, dst_offset)); #if depth <= 4 int itab0 = convert_short_sat_rte( (1.0f-taby)*(1.0f-tabx) * INTER_REMAP_COEF_SCALE ); int itab1 = convert_short_sat_rte( (1.0f-taby)*tabx * INTER_REMAP_COEF_SCALE ); int itab2 = convert_short_sat_rte( taby*(1.0f-tabx) * INTER_REMAP_COEF_SCALE ); int itab3 = convert_short_sat_rte( taby*tabx * INTER_REMAP_COEF_SCALE ); WT val = mad24(v0, itab0, mad24(v1, itab1, mad24(v2, itab2, v3 * itab3))); storepix(convertToT((val + (1 << (INTER_REMAP_COEF_BITS-1))) >> INTER_REMAP_COEF_BITS), dstptr + dst_index); #else float tabx2 = 1.0f - tabx, taby2 = 1.0f - taby; WT val = fma(tabx2, fma(v0, taby2, v2 * taby), tabx * fma(v1, taby2, v3 * taby)); storepix(convertToT(val), dstptr + dst_index); #endif #else __constant float * coeffs_y = coeffs + (ay << 1), * coeffs_x = coeffs + (ax << 1); int src_index0 = mad24(sy, src_step, mad24(sx, pixsize, src_offset)), src_index; int dst_index = mad24(dy, dst_step, mad24(dx, pixsize, dst_offset)); WT sum = (WT)(0), xsum; #pragma unroll for (int y = 0; y < 2; y++) { src_index = mad24(y, src_step, src_index0); if (sy + y >= 0 && sy + y < src_rows) { xsum = (WT)(0); if (sx >= 0 && sx + 2 < src_cols) { #if depth == 0 && cn == 1 uchar2 value = vload2(0, srcptr + src_index); xsum = dot(convert_float2(value), (float2)(coeffs_x[0], coeffs_x[1])); #else #pragma unroll for (int x = 0; x < 2; x++) xsum = fma(convertToWT(loadpix(srcptr + mad24(x, pixsize, src_index))), coeffs_x[x], xsum); #endif } else { #pragma unroll for (int x = 0; x < 2; x++) xsum = fma(sx + x >= 0 && sx + x < src_cols ? convertToWT(loadpix(srcptr + mad24(x, pixsize, src_index))) : scalar, coeffs_x[x], xsum); } sum = fma(xsum, coeffs_y[y], sum); } else sum = fma(scalar, coeffs_y[y], sum); } storepix(convertToT(sum), dstptr + dst_index); #endif } } } #elif defined INTER_CUBIC #ifdef AMD_DEVICE inline void interpolateCubic( float x, float* coeffs ) { const float A = -0.75f; coeffs[0] = fma(fma(fma(A, (x + 1.f), - 5.0f*A), (x + 1.f), 8.0f*A), x + 1.f, - 4.0f*A); coeffs[1] = fma(fma(A + 2.f, x, - (A + 3.f)), x*x, 1.f); coeffs[2] = fma(fma(A + 2.f, 1.f - x, - (A + 3.f)), (1.f - x)*(1.f - x), 1.f); coeffs[3] = 1.f - coeffs[0] - coeffs[1] - coeffs[2]; } #else __constant float coeffs[128] = { 0.000000f, 1.000000f, 0.000000f, 0.000000f, -0.021996f, 0.997841f, 0.024864f, -0.000710f, -0.041199f, 0.991516f, 0.052429f, -0.002747f, -0.057747f, 0.981255f, 0.082466f, -0.005974f, -0.071777f, 0.967285f, 0.114746f, -0.010254f, -0.083427f, 0.949837f, 0.149040f, -0.015450f, -0.092834f, 0.929138f, 0.185120f, -0.021423f, -0.100136f, 0.905418f, 0.222755f, -0.028038f, -0.105469f, 0.878906f, 0.261719f, -0.035156f, -0.108971f, 0.849831f, 0.301781f, -0.042641f, -0.110779f, 0.818420f, 0.342712f, -0.050354f, -0.111031f, 0.784904f, 0.384285f, -0.058159f, -0.109863f, 0.749512f, 0.426270f, -0.065918f, -0.107414f, 0.712471f, 0.468437f, -0.073494f, -0.103821f, 0.674011f, 0.510559f, -0.080750f, -0.099220f, 0.634361f, 0.552406f, -0.087547f, -0.093750f, 0.593750f, 0.593750f, -0.093750f, -0.087547f, 0.552406f, 0.634361f, -0.099220f, -0.080750f, 0.510559f, 0.674011f, -0.103821f, -0.073494f, 0.468437f, 0.712471f, -0.107414f, -0.065918f, 0.426270f, 0.749512f, -0.109863f, -0.058159f, 0.384285f, 0.784904f, -0.111031f, -0.050354f, 0.342712f, 0.818420f, -0.110779f, -0.042641f, 0.301781f, 0.849831f, -0.108971f, -0.035156f, 0.261719f, 0.878906f, -0.105469f, -0.028038f, 0.222755f, 0.905418f, -0.100136f, -0.021423f, 0.185120f, 0.929138f, -0.092834f, -0.015450f, 0.149040f, 0.949837f, -0.083427f, -0.010254f, 0.114746f, 0.967285f, -0.071777f, -0.005974f, 0.082466f, 0.981255f, -0.057747f, -0.002747f, 0.052429f, 0.991516f, -0.041199f, -0.000710f, 0.024864f, 0.997841f, -0.021996f }; #endif __kernel void warpAffine(__global const uchar * srcptr, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dstptr, int dst_step, int dst_offset, int dst_rows, int dst_cols, __constant CT * M, ST scalar_) { int dx = get_global_id(0); int dy = get_global_id(1); if (dx < dst_cols && dy < dst_rows) { int tmp = (dx << AB_BITS); int X0 = rint(M[0] * tmp) + rint(fma(M[1], (CT)dy, M[2]) * AB_SCALE) + ROUND_DELTA; int Y0 = rint(M[3] * tmp) + rint(fma(M[4], (CT)dy, M[5]) * AB_SCALE) + ROUND_DELTA; X0 = X0 >> (AB_BITS - INTER_BITS); Y0 = Y0 >> (AB_BITS - INTER_BITS); int sx = (short)(X0 >> INTER_BITS) - 1, sy = (short)(Y0 >> INTER_BITS) - 1; int ay = (short)(Y0 & (INTER_TAB_SIZE - 1)), ax = (short)(X0 & (INTER_TAB_SIZE - 1)); #ifdef AMD_DEVICE WT v[16]; #pragma unroll for (int y = 0; y < 4; y++) { if (sy+y >= 0 && sy+y < src_rows) { #pragma unroll for (int x = 0; x < 4; x++) v[mad24(y, 4, x)] = sx+x >= 0 && sx+x < src_cols ? convertToWT(loadpix(srcptr + mad24(sy+y, src_step, mad24(sx+x, pixsize, src_offset)))) : scalar; } else { #pragma unroll for (int x = 0; x < 4; x++) v[mad24(y, 4, x)] = scalar; } } float tab1y[4], tab1x[4]; float ayy = INTER_SCALE * ay; float axx = INTER_SCALE * ax; interpolateCubic(ayy, tab1y); interpolateCubic(axx, tab1x); int dst_index = mad24(dy, dst_step, mad24(dx, pixsize, dst_offset)); WT sum = (WT)(0); #if depth <= 4 int itab[16]; #pragma unroll for (int i = 0; i < 16; i++) itab[i] = rint(tab1y[(i>>2)] * tab1x[(i&3)] * INTER_REMAP_COEF_SCALE); #pragma unroll for (int i = 0; i < 16; i++) sum = mad24(v[i], itab[i], sum); storepix(convertToT( (sum + (1 << (INTER_REMAP_COEF_BITS-1))) >> INTER_REMAP_COEF_BITS ), dstptr + dst_index); #else #pragma unroll for (int i = 0; i < 16; i++) sum = fma(v[i], tab1y[(i>>2)] * tab1x[(i&3)], sum); storepix(convertToT( sum ), dstptr + dst_index); #endif #else __constant float * coeffs_y = coeffs + (ay << 2), * coeffs_x = coeffs + (ax << 2); int src_index0 = mad24(sy, src_step, mad24(sx, pixsize, src_offset)), src_index; int dst_index = mad24(dy, dst_step, mad24(dx, pixsize, dst_offset)); WT sum = (WT)(0), xsum; #pragma unroll for (int y = 0; y < 4; y++) { src_index = mad24(y, src_step, src_index0); if (sy + y >= 0 && sy + y < src_rows) { xsum = (WT)(0); if (sx >= 0 && sx + 4 < src_cols) { #if depth == 0 && cn == 1 uchar4 value = vload4(0, srcptr + src_index); xsum = dot(convert_float4(value), (float4)(coeffs_x[0], coeffs_x[1], coeffs_x[2], coeffs_x[3])); #else #pragma unroll for (int x = 0; x < 4; x++) xsum = fma(convertToWT(loadpix(srcptr + mad24(x, pixsize, src_index))), coeffs_x[x], xsum); #endif } else { #pragma unroll for (int x = 0; x < 4; x++) xsum = fma(sx + x >= 0 && sx + x < src_cols ? convertToWT(loadpix(srcptr + mad24(x, pixsize, src_index))) : scalar, coeffs_x[x], xsum); } sum = fma(xsum, coeffs_y[y], sum); } else sum = fma(scalar, coeffs_y[y], sum); } storepix(convertToT(sum), dstptr + dst_index); #endif } } #endif ad75e82949ec363a8853f25adb4b808e#ifdef DOUBLE_SUPPORT #ifdef cl_amd_fp64 #pragma OPENCL EXTENSION cl_amd_fp64:enable #elif defined (cl_khr_fp64) #pragma OPENCL EXTENSION cl_khr_fp64:enable #endif #endif __kernel void threshold(__global const uchar * srcptr, int src_step, int src_offset, __global uchar * dstptr, int dst_step, int dst_offset, int rows, int cols, T1 thresh, T1 max_val, T1 min_val) { int gx = get_global_id(0); int gy = get_global_id(1) * STRIDE_SIZE; if (gx < cols) { int src_index = mad24(gy, src_step, mad24(gx, (int)sizeof(T), src_offset)); int dst_index = mad24(gy, dst_step, mad24(gx, (int)sizeof(T), dst_offset)); #pragma unroll for (int i = 0; i < STRIDE_SIZE; i++) { if (gy < rows) { T sdata = *(__global const T *)(srcptr + src_index); __global T * dst = (__global T *)(dstptr + dst_index); #ifdef THRESH_BINARY dst[0] = sdata > (thresh) ? (T)(max_val) : (T)(0); #elif defined THRESH_BINARY_INV dst[0] = sdata > (thresh) ? (T)(0) : (T)(max_val); #elif defined THRESH_TRUNC dst[0] = clamp(sdata, (T)min_val, (T)(thresh)); #elif defined THRESH_TOZERO dst[0] = sdata > (thresh) ? sdata : (T)(0); #elif defined THRESH_TOZERO_INV dst[0] = sdata > (thresh) ? (T)(0) : sdata; #endif gy++; src_index += src_step; dst_index += dst_step; } } } } f464151682565a20de380a62e09ae458sepFilter3x3#define DIG(a) a, __constant float kx[] = { KERNEL_MATRIX_X }; __constant float ky[] = { KERNEL_MATRIX_Y }; #define OP(delta, y, x) (convert_float16(arr[(y + delta) * 3 + x]) * ky[y] * kx[x]) __kernel void sepFilter3x3_8UC1_cols16_rows2(__global const uint* src, int src_step, __global uint* dst, int dst_step, int rows, int cols, float delta) { int block_x = get_global_id(0); int y = get_global_id(1) * 2; int ssx, dsx; if ((block_x * 16) >= cols || y >= rows) return; uint4 line[4]; uint4 line_out[2]; uchar a; uchar16 b; uchar c; uchar d; uchar16 e; uchar f; uchar g; uchar16 h; uchar i; uchar j; uchar16 k; uchar l; ssx = dsx = 1; int src_index = block_x * 4 * ssx + (y - 1) * (src_step / 4); line[1] = vload4(0, src + src_index + (src_step / 4)); line[2] = vload4(0, src + src_index + 2 * (src_step / 4)); #ifdef BORDER_CONSTANT line[0] = (y == 0) ? (uint4)0 : vload4(0, src + src_index); line[3] = (y == (rows - 2)) ? (uint4)0 : vload4(0, src + src_index + 3 * (src_step / 4)); #elif defined BORDER_REFLECT_101 line[0] = (y == 0) ? line[2] : vload4(0, src + src_index); line[3] = (y == (rows - 2)) ? line[1] : vload4(0, src + src_index + 3 * (src_step / 4)); #elif defined (BORDER_REPLICATE) || defined(BORDER_REFLECT) line[0] = (y == 0) ? line[1] : vload4(0, src + src_index); line[3] = (y == (rows - 2)) ? line[2] : vload4(0, src + src_index + 3 * (src_step / 4)); #endif __global uchar *src_p = (__global uchar *)src; src_index = block_x * 16 * ssx + (y - 1) * src_step; bool line_end = ((block_x + 1) * 16 == cols); b = as_uchar16(line[0]); e = as_uchar16(line[1]); h = as_uchar16(line[2]); k = as_uchar16(line[3]); #ifdef BORDER_CONSTANT a = (block_x == 0 || y == 0) ? 0 : src_p[src_index - 1]; c = (line_end || y == 0) ? 0 : src_p[src_index + 16]; d = (block_x == 0) ? 0 : src_p[src_index + src_step - 1]; f = line_end ? 0 : src_p[src_index + src_step + 16]; g = (block_x == 0) ? 0 : src_p[src_index + 2 * src_step - 1]; i = line_end ? 0 : src_p[src_index + 2 * src_step + 16]; j = (block_x == 0 || y == (rows - 2)) ? 0 : src_p[src_index + 3 * src_step - 1]; l = (line_end || y == (rows - 2))? 0 : src_p[src_index + 3 * src_step + 16]; #elif defined BORDER_REFLECT_101 int offset; offset = (y == 0) ? (2 * src_step) : 0; a = (block_x == 0) ? src_p[src_index + offset + 1] : src_p[src_index + offset - 1]; c = line_end ? src_p[src_index + offset + 14] : src_p[src_index + offset + 16]; d = (block_x == 0) ? src_p[src_index + src_step + 1] : src_p[src_index + src_step - 1]; f = line_end ? src_p[src_index + src_step + 14] : src_p[src_index + src_step + 16]; g = (block_x == 0) ? src_p[src_index + 2 * src_step + 1] : src_p[src_index + 2 * src_step - 1]; i = line_end ? src_p[src_index + 2 * src_step + 14] : src_p[src_index + 2 * src_step + 16]; offset = (y == (rows - 2)) ? (1 * src_step) : (3 * src_step); j = (block_x == 0) ? src_p[src_index + offset + 1] : src_p[src_index + offset - 1]; l = line_end ? src_p[src_index + offset + 14] : src_p[src_index + offset + 16]; #elif defined (BORDER_REPLICATE) || defined(BORDER_REFLECT) int offset; offset = (y == 0) ? (1 * src_step) : 0; a = (block_x == 0) ? src_p[src_index + offset] : src_p[src_index + offset - 1]; c = line_end ? src_p[src_index + offset + 15] : src_p[src_index + offset + 16]; d = (block_x == 0) ? src_p[src_index + src_step] : src_p[src_index + src_step - 1]; f = line_end ? src_p[src_index + src_step + 15] : src_p[src_index + src_step + 16]; g = (block_x == 0) ? src_p[src_index + 2 * src_step] : src_p[src_index + 2 * src_step - 1]; i = line_end ? src_p[src_index + 2 * src_step + 15] : src_p[src_index + 2 * src_step + 16]; offset = (y == (rows - 2)) ? (2 * src_step) : (3 * src_step); j = (block_x == 0) ? src_p[src_index + offset] : src_p[src_index + offset - 1]; l = line_end ? src_p[src_index + offset + 15] : src_p[src_index + offset + 16]; #endif uchar16 arr[12]; float16 sum[2]; arr[0] = (uchar16)(a, b.s0123, b.s456789ab, b.scde); arr[1] = b; arr[2] = (uchar16)(b.s123, b.s4567, b.s89abcdef, c); arr[3] = (uchar16)(d, e.s0123, e.s456789ab, e.scde); arr[4] = e; arr[5] = (uchar16)(e.s123, e.s4567, e.s89abcdef, f); arr[6] = (uchar16)(g, h.s0123, h.s456789ab, h.scde); arr[7] = h; arr[8] = (uchar16)(h.s123, h.s4567, h.s89abcdef, i); arr[9] = (uchar16)(j, k.s0123, k.s456789ab, k.scde); arr[10] = k; arr[11] = (uchar16)(k.s123, k.s4567, k.s89abcdef, l); sum[0] = OP(0, 0, 0) + OP(0, 0, 1) + OP(0, 0, 2) + OP(0, 1, 0) + OP(0, 1, 1) + OP(0, 1, 2) + OP(0, 2, 0) + OP(0, 2, 1) + OP(0, 2, 2); sum[1] = OP(1, 0, 0) + OP(1, 0, 1) + OP(1, 0, 2) + OP(1, 1, 0) + OP(1, 1, 1) + OP(1, 1, 2) + OP(1, 2, 0) + OP(1, 2, 1) + OP(1, 2, 2); line_out[0] = as_uint4(convert_uchar16_sat_rte(sum[0] + delta)); line_out[1] = as_uint4(convert_uchar16_sat_rte(sum[1] + delta)); int dst_index = block_x * 4 * dsx + y * (dst_step / 4); vstore4(line_out[0], 0, dst + dst_index); vstore4(line_out[1], 0, dst + dst_index + (dst_step / 4)); } a8fb0c872c2ccd041ab86148ae012c62resize#ifdef DOUBLE_SUPPORT #ifdef cl_amd_fp64 #pragma OPENCL EXTENSION cl_amd_fp64:enable #elif defined (cl_khr_fp64) #pragma OPENCL EXTENSION cl_khr_fp64:enable #endif #endif #define INTER_RESIZE_COEF_SCALE (1 << INTER_RESIZE_COEF_BITS) #define CAST_BITS (INTER_RESIZE_COEF_BITS << 1) #define INC(x,l) min(x+1,l-1) #define noconvert #if cn != 3 #define loadpix(addr) *(__global const T *)(addr) #define storepix(val, addr) *(__global T *)(addr) = val #define TSIZE (int)sizeof(T) #else #define loadpix(addr) vload3(0, (__global const T1 *)(addr)) #define storepix(val, addr) vstore3(val, 0, (__global T1 *)(addr)) #define TSIZE (int)sizeof(T1)*cn #endif #if defined USE_SAMPLER #if cn == 1 #define READ_IMAGE(X,Y,Z) read_imagef(X,Y,Z).x #define INTERMEDIATE_TYPE float #elif cn == 2 #define READ_IMAGE(X,Y,Z) read_imagef(X,Y,Z).xy #define INTERMEDIATE_TYPE float2 #elif cn == 3 #define READ_IMAGE(X,Y,Z) read_imagef(X,Y,Z).xyz #define INTERMEDIATE_TYPE float3 #elif cn == 4 #define READ_IMAGE(X,Y,Z) read_imagef(X,Y,Z) #define INTERMEDIATE_TYPE float4 #endif #define __CAT(x, y) x##y #define CAT(x, y) __CAT(x, y) #define float1 float #if depth == 0 #define RESULT_SCALE 255.0f #elif depth == 1 #define RESULT_SCALE 127.0f #elif depth == 2 #define RESULT_SCALE 65535.0f #elif depth == 3 #define RESULT_SCALE 32767.0f #else #define RESULT_SCALE 1.0f #endif __kernel void resizeSampler(__read_only image2d_t srcImage, __global uchar* dstptr, int dststep, int dstoffset, int dstrows, int dstcols, float ifx, float ify) { const sampler_t sampler = CLK_NORMALIZED_COORDS_FALSE | CLK_ADDRESS_CLAMP_TO_EDGE | CLK_FILTER_LINEAR; int dx = get_global_id(0); int dy = get_global_id(1); float sx = ((dx+0.5f) * ifx), sy = ((dy+0.5f) * ify); INTERMEDIATE_TYPE intermediate = READ_IMAGE(srcImage, sampler, (float2)(sx, sy)); #if depth <= 4 T uval = convertToDT(round(intermediate * RESULT_SCALE)); #else T uval = convertToDT(intermediate * RESULT_SCALE); #endif if(dx < dstcols && dy < dstrows) { storepix(uval, dstptr + mad24(dy, dststep, dstoffset + dx*TSIZE)); } } #elif defined INTER_LINEAR_INTEGER __kernel void resizeLN(__global const uchar * srcptr, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dstptr, int dst_step, int dst_offset, int dst_rows, int dst_cols, __global const uchar * buffer) { int dx = get_global_id(0); int dy = get_global_id(1); if (dx < dst_cols && dy < dst_rows) { __global const int * xofs = (__global const int *)(buffer), * yofs = xofs + dst_cols; __global const short * ialpha = (__global const short *)(yofs + dst_rows); __global const short * ibeta = ialpha + ((dst_cols + dy) << 1); ialpha += dx << 1; int sx0 = xofs[dx], sy0 = clamp(yofs[dy], 0, src_rows - 1), sy1 = clamp(yofs[dy] + 1, 0, src_rows - 1); short a0 = ialpha[0], a1 = ialpha[1]; short b0 = ibeta[0], b1 = ibeta[1]; int src_index0 = mad24(sy0, src_step, mad24(sx0, TSIZE, src_offset)), src_index1 = mad24(sy1, src_step, mad24(sx0, TSIZE, src_offset)); WT data0 = convertToWT(loadpix(srcptr + src_index0)); WT data1 = convertToWT(loadpix(srcptr + src_index0 + TSIZE)); WT data2 = convertToWT(loadpix(srcptr + src_index1)); WT data3 = convertToWT(loadpix(srcptr + src_index1 + TSIZE)); WT val = ( (((data0 * a0 + data1 * a1) >> 4) * b0) >> 16) + ( (((data2 * a0 + data3 * a1) >> 4) * b1) >> 16); storepix(convertToDT((val + 2) >> 2), dstptr + mad24(dy, dst_step, mad24(dx, TSIZE, dst_offset))); } } #elif defined INTER_LINEAR __kernel void resizeLN(__global const uchar * srcptr, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dstptr, int dst_step, int dst_offset, int dst_rows, int dst_cols, float ifx, float ify) { int dx = get_global_id(0); int dy = get_global_id(1); if (dx < dst_cols && dy < dst_rows) { float sx = ((dx+0.5f) * ifx - 0.5f), sy = ((dy+0.5f) * ify - 0.5f); int x = floor(sx), y = floor(sy); float u = sx - x, v = sy - y; if ( x<0 ) x=0,u=0; if ( x>=src_cols ) x=src_cols-1,u=0; if ( y<0 ) y=0,v=0; if ( y>=src_rows ) y=src_rows-1,v=0; int y_ = INC(y, src_rows); int x_ = INC(x, src_cols); #if depth <= 4 u = u * INTER_RESIZE_COEF_SCALE; v = v * INTER_RESIZE_COEF_SCALE; int U = rint(u); int V = rint(v); int U1 = rint(INTER_RESIZE_COEF_SCALE - u); int V1 = rint(INTER_RESIZE_COEF_SCALE - v); WT data0 = convertToWT(loadpix(srcptr + mad24(y, src_step, mad24(x, TSIZE, src_offset)))); WT data1 = convertToWT(loadpix(srcptr + mad24(y, src_step, mad24(x_, TSIZE, src_offset)))); WT data2 = convertToWT(loadpix(srcptr + mad24(y_, src_step, mad24(x, TSIZE, src_offset)))); WT data3 = convertToWT(loadpix(srcptr + mad24(y_, src_step, mad24(x_, TSIZE, src_offset)))); WT val = mul24((WT)mul24(U1, V1), data0) + mul24((WT)mul24(U, V1), data1) + mul24((WT)mul24(U1, V), data2) + mul24((WT)mul24(U, V), data3); T uval = convertToDT((val + (1<<(CAST_BITS-1)))>>CAST_BITS); #else float u1 = 1.f - u; float v1 = 1.f - v; WT data0 = convertToWT(loadpix(srcptr + mad24(y, src_step, mad24(x, TSIZE, src_offset)))); WT data1 = convertToWT(loadpix(srcptr + mad24(y, src_step, mad24(x_, TSIZE, src_offset)))); WT data2 = convertToWT(loadpix(srcptr + mad24(y_, src_step, mad24(x, TSIZE, src_offset)))); WT data3 = convertToWT(loadpix(srcptr + mad24(y_, src_step, mad24(x_, TSIZE, src_offset)))); T uval = u1 * v1 * data0 + u * v1 * data1 + u1 * v *data2 + u * v *data3; #endif storepix(uval, dstptr + mad24(dy, dst_step, mad24(dx, TSIZE, dst_offset))); } } #elif defined INTER_NEAREST __kernel void resizeNN(__global const uchar * srcptr, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dstptr, int dst_step, int dst_offset, int dst_rows, int dst_cols, float ifx, float ify) { int dx = get_global_id(0); int dy = get_global_id(1); if (dx < dst_cols && dy < dst_rows) { float s1 = dx * ifx; float s2 = dy * ify; int sx = min(convert_int_rtz(s1), src_cols - 1); int sy = min(convert_int_rtz(s2), src_rows - 1); storepix(loadpix(srcptr + mad24(sy, src_step, mad24(sx, TSIZE, src_offset))), dstptr + mad24(dy, dst_step, mad24(dx, TSIZE, dst_offset))); } } #elif defined INTER_AREA #ifdef INTER_AREA_FAST __kernel void resizeAREA_FAST(__global const uchar * src, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols) { int dx = get_global_id(0); int dy = get_global_id(1); if (dx < dst_cols && dy < dst_rows) { int dst_index = mad24(dy, dst_step, dst_offset); int sx = XSCALE * dx; int sy = YSCALE * dy; WTV sum = (WTV)(0); #pragma unroll for (int py = 0; py < YSCALE; ++py) { int y = min(sy + py, src_rows - 1); int src_index = mad24(y, src_step, src_offset); #pragma unroll for (int px = 0; px < XSCALE; ++px) { int x = min(sx + px, src_cols - 1); sum += convertToWTV(loadpix(src + src_index + x*TSIZE)); } } storepix(convertToT(convertToWT2V(sum) * (WT2V)(SCALE)), dst + mad24(dx, TSIZE, dst_index)); } } #else __kernel void resizeAREA(__global const uchar * src, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols, float ifx, float ify, __global const int * ofs_tab, __global const int * map_tab, __global const float * alpha_tab) { int dx = get_global_id(0); int dy = get_global_id(1); if (dx < dst_cols && dy < dst_rows) { int dst_index = mad24(dy, dst_step, dst_offset); __global const int * xmap_tab = map_tab; __global const int * ymap_tab = (__global const int *)(map_tab + (src_cols << 1)); __global const float * xalpha_tab = alpha_tab; __global const float * yalpha_tab = (__global const float *)(alpha_tab + (src_cols << 1)); __global const int * xofs_tab = ofs_tab; __global const int * yofs_tab = (__global const int *)(ofs_tab + dst_cols + 1); int xk0 = xofs_tab[dx], xk1 = xofs_tab[dx + 1]; int yk0 = yofs_tab[dy], yk1 = yofs_tab[dy + 1]; int sy0 = ymap_tab[yk0], sy1 = ymap_tab[yk1 - 1]; int sx0 = xmap_tab[xk0], sx1 = xmap_tab[xk1 - 1]; WTV sum = (WTV)(0), buf; int src_index = mad24(sy0, src_step, src_offset); for (int sy = sy0, yk = yk0; sy <= sy1; ++sy, src_index += src_step, ++yk) { WTV beta = (WTV)(yalpha_tab[yk]); buf = (WTV)(0); for (int sx = sx0, xk = xk0; sx <= sx1; ++sx, ++xk) { WTV alpha = (WTV)(xalpha_tab[xk]); buf += convertToWTV(loadpix(src + mad24(sx, TSIZE, src_index))) * alpha; } sum += buf * beta; } storepix(convertToT(sum), dst + mad24(dx, TSIZE, dst_index)); } } #endif #endif 3e1ea3c21fc70a7a9166d5cc66b7ff80#ifdef DOUBLE_SUPPORT #ifdef cl_amd_fp64 #pragma OPENCL EXTENSION cl_amd_fp64:enable #elif defined (cl_khr_fp64) #pragma OPENCL EXTENSION cl_khr_fp64:enable #endif #endif #define noconvert #if cn != 3 #define loadpix(addr) *(__global const T*)(addr) #define storepix(val, addr) *(__global T*)(addr) = val #define TSIZE ((int)sizeof(T)) #define convertScalar(a) (a) #else #define loadpix(addr) vload3(0, (__global const T1*)(addr)) #define storepix(val, addr) vstore3(val, 0, (__global T1*)(addr)) #define TSIZE ((int)sizeof(T1)*3) #define convertScalar(a) (T)(a.x, a.y, a.z) #endif enum { INTER_BITS = 5, INTER_TAB_SIZE = 1 << INTER_BITS, INTER_TAB_SIZE2 = INTER_TAB_SIZE * INTER_TAB_SIZE }; #ifdef INTER_NEAREST #define convertToWT #endif #ifdef BORDER_CONSTANT #define EXTRAPOLATE(v2, v) v = scalar; #elif defined BORDER_REPLICATE #define EXTRAPOLATE(v2, v) \ { \ v2 = max(min(v2, (int2)(src_cols - 1, src_rows - 1)), (int2)(0)); \ v = convertToWT(loadpix((__global const T*)(srcptr + mad24(v2.y, src_step, v2.x * TSIZE + src_offset)))); \ } #elif defined BORDER_WRAP #define EXTRAPOLATE(v2, v) \ { \ if (v2.x < 0) \ v2.x -= ((v2.x - src_cols + 1) / src_cols) * src_cols; \ if (v2.x >= src_cols) \ v2.x %= src_cols; \ \ if (v2.y < 0) \ v2.y -= ((v2.y - src_rows + 1) / src_rows) * src_rows; \ if( v2.y >= src_rows ) \ v2.y %= src_rows; \ v = convertToWT(loadpix((__global const T*)(srcptr + mad24(v2.y, src_step, v2.x * TSIZE + src_offset)))); \ } #elif defined(BORDER_REFLECT) || defined(BORDER_REFLECT_101) #ifdef BORDER_REFLECT #define DELTA int delta = 0 #else #define DELTA int delta = 1 #endif #define EXTRAPOLATE(v2, v) \ { \ DELTA; \ if (src_cols == 1) \ v2.x = 0; \ else \ do \ { \ if( v2.x < 0 ) \ v2.x = -v2.x - 1 + delta; \ else \ v2.x = src_cols - 1 - (v2.x - src_cols) - delta; \ } \ while (v2.x >= src_cols || v2.x < 0); \ \ if (src_rows == 1) \ v2.y = 0; \ else \ do \ { \ if( v2.y < 0 ) \ v2.y = -v2.y - 1 + delta; \ else \ v2.y = src_rows - 1 - (v2.y - src_rows) - delta; \ } \ while (v2.y >= src_rows || v2.y < 0); \ v = convertToWT(loadpix((__global const T*)(srcptr + mad24(v2.y, src_step, v2.x * TSIZE + src_offset)))); \ } #else #error No extrapolation method #endif #define NEED_EXTRAPOLATION(gx, gy) (gx >= src_cols || gy >= src_rows || gx < 0 || gy < 0) #ifdef INTER_NEAREST __kernel void remap_2_32FC1(__global const uchar * srcptr, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dstptr, int dst_step, int dst_offset, int dst_rows, int dst_cols, __global const uchar * map1ptr, int map1_step, int map1_offset, __global const uchar * map2ptr, int map2_step, int map2_offset, ST nVal) { int x = get_global_id(0); int y = get_global_id(1) * rowsPerWI; if (x < dst_cols) { T scalar = convertScalar(nVal); int map1_index = mad24(y, map1_step, mad24(x, (int)sizeof(float), map1_offset)); int map2_index = mad24(y, map2_step, mad24(x, (int)sizeof(float), map2_offset)); int dst_index = mad24(y, dst_step, mad24(x, TSIZE, dst_offset)); #pragma unroll for (int i = 0; i < rowsPerWI; ++i, ++y, map1_index += map1_step, map2_index += map2_step, dst_index += dst_step) if (y < dst_rows) { __global const float * map1 = (__global const float *)(map1ptr + map1_index); __global const float * map2 = (__global const float *)(map2ptr + map2_index); __global T * dst = (__global T *)(dstptr + dst_index); int gx = convert_int_sat_rte(map1[0]); int gy = convert_int_sat_rte(map2[0]); if (NEED_EXTRAPOLATION(gx, gy)) { #ifndef BORDER_CONSTANT int2 gxy = (int2)(gx, gy); #endif T v; EXTRAPOLATE(gxy, v) storepix(v, dst); } else { int src_index = mad24(gy, src_step, mad24(gx, TSIZE, src_offset)); storepix(loadpix((__global const T*)(srcptr + src_index)), dst); } } } } __kernel void remap_32FC2(__global const uchar * srcptr, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dstptr, int dst_step, int dst_offset, int dst_rows, int dst_cols, __global const uchar * mapptr, int map_step, int map_offset, ST nVal) { int x = get_global_id(0); int y = get_global_id(1) * rowsPerWI; if (x < dst_cols) { T scalar = convertScalar(nVal); int dst_index = mad24(y, dst_step, mad24(x, TSIZE, dst_offset)); int map_index = mad24(y, map_step, mad24(x, (int)sizeof(float2), map_offset)); #pragma unroll for (int i = 0; i < rowsPerWI; ++i, ++y, map_index += map_step, dst_index += dst_step) if (y < dst_rows) { __global const float2 * map = (__global const float2 *)(mapptr + map_index); __global T * dst = (__global T *)(dstptr + dst_index); int2 gxy = convert_int2_sat_rte(map[0]); int gx = gxy.x, gy = gxy.y; if (NEED_EXTRAPOLATION(gx, gy)) { T v; EXTRAPOLATE(gxy, v) storepix(v, dst); } else { int src_index = mad24(gy, src_step, mad24(gx, TSIZE, src_offset)); storepix(loadpix((__global const T *)(srcptr + src_index)), dst); } } } } __kernel void remap_16SC2(__global const uchar * srcptr, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dstptr, int dst_step, int dst_offset, int dst_rows, int dst_cols, __global const uchar * mapptr, int map_step, int map_offset, ST nVal) { int x = get_global_id(0); int y = get_global_id(1) * rowsPerWI; if (x < dst_cols) { T scalar = convertScalar(nVal); int dst_index = mad24(y, dst_step, mad24(x, TSIZE, dst_offset)); int map_index = mad24(y, map_step, mad24(x, (int)sizeof(short2), map_offset)); #pragma unroll for (int i = 0; i < rowsPerWI; ++i, ++y, map_index += map_step, dst_index += dst_step) if (y < dst_rows) { __global const short2 * map = (__global const short2 *)(mapptr + map_index); __global T * dst = (__global T *)(dstptr + dst_index); int2 gxy = convert_int2(map[0]); int gx = gxy.x, gy = gxy.y; if (NEED_EXTRAPOLATION(gx, gy)) { T v; EXTRAPOLATE(gxy, v) storepix(v, dst); } else { int src_index = mad24(gy, src_step, mad24(gx, TSIZE, src_offset)); storepix(loadpix((__global const T *)(srcptr + src_index)), dst); } } } } __kernel void remap_16SC2_16UC1(__global const uchar * srcptr, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dstptr, int dst_step, int dst_offset, int dst_rows, int dst_cols, __global const uchar * map1ptr, int map1_step, int map1_offset, __global const uchar * map2ptr, int map2_step, int map2_offset, ST nVal) { int x = get_global_id(0); int y = get_global_id(1) * rowsPerWI; if (x < dst_cols) { T scalar = convertScalar(nVal); int dst_index = mad24(y, dst_step, mad24(x, TSIZE, dst_offset)); int map1_index = mad24(y, map1_step, mad24(x, (int)sizeof(short2), map1_offset)); int map2_index = mad24(y, map2_step, mad24(x, (int)sizeof(ushort), map2_offset)); #pragma unroll for (int i = 0; i < rowsPerWI; ++i, ++y, map1_index += map1_step, map2_index += map2_step, dst_index += dst_step) if (y < dst_rows) { __global const short2 * map1 = (__global const short2 *)(map1ptr + map1_index); __global const ushort * map2 = (__global const ushort *)(map2ptr + map2_index); __global T * dst = (__global T *)(dstptr + dst_index); int map2Value = convert_int(map2[0]) & (INTER_TAB_SIZE2 - 1); int dx = (map2Value & (INTER_TAB_SIZE - 1)) < (INTER_TAB_SIZE >> 1) ? 1 : 0; int dy = (map2Value >> INTER_BITS) < (INTER_TAB_SIZE >> 1) ? 1 : 0; int2 gxy = convert_int2(map1[0]) + (int2)(dx, dy); int gx = gxy.x, gy = gxy.y; if (NEED_EXTRAPOLATION(gx, gy)) { T v; EXTRAPOLATE(gxy, v) storepix(v, dst); } else { int src_index = mad24(gy, src_step, mad24(gx, TSIZE, src_offset)); storepix(loadpix((__global const T *)(srcptr + src_index)), dst); } } } } #elif defined INTER_LINEAR __constant float coeffs[64] = { 1.000000f, 0.000000f, 0.968750f, 0.031250f, 0.937500f, 0.062500f, 0.906250f, 0.093750f, 0.875000f, 0.125000f, 0.843750f, 0.156250f, 0.812500f, 0.187500f, 0.781250f, 0.218750f, 0.750000f, 0.250000f, 0.718750f, 0.281250f, 0.687500f, 0.312500f, 0.656250f, 0.343750f, 0.625000f, 0.375000f, 0.593750f, 0.406250f, 0.562500f, 0.437500f, 0.531250f, 0.468750f, 0.500000f, 0.500000f, 0.468750f, 0.531250f, 0.437500f, 0.562500f, 0.406250f, 0.593750f, 0.375000f, 0.625000f, 0.343750f, 0.656250f, 0.312500f, 0.687500f, 0.281250f, 0.718750f, 0.250000f, 0.750000f, 0.218750f, 0.781250f, 0.187500f, 0.812500f, 0.156250f, 0.843750f, 0.125000f, 0.875000f, 0.093750f, 0.906250f, 0.062500f, 0.937500f, 0.031250f, 0.968750f }; __kernel void remap_16SC2_16UC1(__global const uchar * srcptr, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dstptr, int dst_step, int dst_offset, int dst_rows, int dst_cols, __global const uchar * map1ptr, int map1_step, int map1_offset, __global const uchar * map2ptr, int map2_step, int map2_offset, ST nVal) { int x = get_global_id(0); int y = get_global_id(1) * rowsPerWI; if (x < dst_cols) { WT scalar = convertToWT(convertScalar(nVal)); int dst_index = mad24(y, dst_step, mad24(x, TSIZE, dst_offset)); int map1_index = mad24(y, map1_step, mad24(x, (int)sizeof(short2), map1_offset)); int map2_index = mad24(y, map2_step, mad24(x, (int)sizeof(ushort), map2_offset)); #pragma unroll for (int i = 0; i < rowsPerWI; ++i, ++y, map1_index += map1_step, map2_index += map2_step, dst_index += dst_step) if (y < dst_rows) { __global const short2 * map1 = (__global const short2 *)(map1ptr + map1_index); __global const ushort * map2 = (__global const ushort *)(map2ptr + map2_index); __global T * dst = (__global T *)(dstptr + dst_index); int2 map_dataA = convert_int2(map1[0]); int2 map_dataB = (int2)(map_dataA.x + 1, map_dataA.y); int2 map_dataC = (int2)(map_dataA.x, map_dataA.y + 1); int2 map_dataD = (int2)(map_dataA.x + 1, map_dataA.y + 1); ushort map2Value = (ushort)(map2[0] & (INTER_TAB_SIZE2 - 1)); WT2 u = (WT2)(map2Value & (INTER_TAB_SIZE - 1), map2Value >> INTER_BITS) / (WT2)(INTER_TAB_SIZE); WT a = scalar, b = scalar, c = scalar, d = scalar; if (!NEED_EXTRAPOLATION(map_dataA.x, map_dataA.y)) a = convertToWT(loadpix((__global const T *)(srcptr + mad24(map_dataA.y, src_step, map_dataA.x * TSIZE + src_offset)))); else EXTRAPOLATE(map_dataA, a); if (!NEED_EXTRAPOLATION(map_dataB.x, map_dataB.y)) b = convertToWT(loadpix((__global const T *)(srcptr + mad24(map_dataB.y, src_step, map_dataB.x * TSIZE + src_offset)))); else EXTRAPOLATE(map_dataB, b); if (!NEED_EXTRAPOLATION(map_dataC.x, map_dataC.y)) c = convertToWT(loadpix((__global const T *)(srcptr + mad24(map_dataC.y, src_step, map_dataC.x * TSIZE + src_offset)))); else EXTRAPOLATE(map_dataC, c); if (!NEED_EXTRAPOLATION(map_dataD.x, map_dataD.y)) d = convertToWT(loadpix((__global const T *)(srcptr + mad24(map_dataD.y, src_step, map_dataD.x * TSIZE + src_offset)))); else EXTRAPOLATE(map_dataD, d); WT dst_data = a * (1 - u.x) * (1 - u.y) + b * (u.x) * (1 - u.y) + c * (1 - u.x) * (u.y) + d * (u.x) * (u.y); storepix(convertToT(dst_data), dst); } } } __kernel void remap_2_32FC1(__global const uchar * srcptr, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dstptr, int dst_step, int dst_offset, int dst_rows, int dst_cols, __global const uchar * map1ptr, int map1_step, int map1_offset, __global const uchar * map2ptr, int map2_step, int map2_offset, ST nVal) { int x = get_global_id(0); int y = get_global_id(1) * rowsPerWI; if (x < dst_cols) { WT scalar = convertToWT(convertScalar(nVal)); int dst_index = mad24(y, dst_step, mad24(x, TSIZE, dst_offset)); int map1_index = mad24(y, map1_step, mad24(x, (int)sizeof(float), map1_offset)); int map2_index = mad24(y, map2_step, mad24(x, (int)sizeof(float), map2_offset)); #pragma unroll for (int i = 0; i < rowsPerWI; ++i, ++y, map1_index += map1_step, map2_index += map2_step, dst_index += dst_step) if (y < dst_rows) { __global const float * map1 = (__global const float *)(map1ptr + map1_index); __global const float * map2 = (__global const float *)(map2ptr + map2_index); __global T * dst = (__global T *)(dstptr + dst_index); #if defined BORDER_CONSTANT float xf = map1[0], yf = map2[0]; int sx = convert_int_sat_rtz(mad(xf, (float)INTER_TAB_SIZE, 0.5f)) >> INTER_BITS; int sy = convert_int_sat_rtz(mad(yf, (float)INTER_TAB_SIZE, 0.5f)) >> INTER_BITS; __constant float * coeffs_x = coeffs + ((convert_int_rte(xf * INTER_TAB_SIZE) & (INTER_TAB_SIZE - 1)) << 1); __constant float * coeffs_y = coeffs + ((convert_int_rte(yf * INTER_TAB_SIZE) & (INTER_TAB_SIZE - 1)) << 1); WT sum = (WT)(0), xsum; int src_index = mad24(sy, src_step, mad24(sx, TSIZE, src_offset)); #pragma unroll for (int yp = 0; yp < 2; ++yp, src_index += src_step) { if (sy + yp >= 0 && sy + yp < src_rows) { xsum = (WT)(0); if (sx >= 0 && sx + 2 < src_cols) { #if depth == 0 && cn == 1 uchar2 value = vload2(0, srcptr + src_index); xsum = dot(convert_float2(value), (float2)(coeffs_x[0], coeffs_x[1])); #else #pragma unroll for (int xp = 0; xp < 2; ++xp) xsum = fma(convertToWT(loadpix(srcptr + mad24(xp, TSIZE, src_index))), coeffs_x[xp], xsum); #endif } else { #pragma unroll for (int xp = 0; xp < 2; ++xp) xsum = fma(sx + xp >= 0 && sx + xp < src_cols ? convertToWT(loadpix(srcptr + mad24(xp, TSIZE, src_index))) : scalar, coeffs_x[xp], xsum); } sum = fma(xsum, coeffs_y[yp], sum); } else sum = fma(scalar, coeffs_y[yp], sum); } storepix(convertToT(sum), dst); #else float2 map_data = (float2)(map1[0], map2[0]); int2 map_dataA = convert_int2_sat_rtn(map_data); int2 map_dataB = (int2)(map_dataA.x + 1, map_dataA.y); int2 map_dataC = (int2)(map_dataA.x, map_dataA.y + 1); int2 map_dataD = (int2)(map_dataA.x + 1, map_dataA.y + 1); float2 _u = map_data - convert_float2(map_dataA); WT2 u = convertToWT2(convert_int2_rte(convertToWT2(_u) * (WT2)INTER_TAB_SIZE)) / (WT2)INTER_TAB_SIZE; WT scalar = convertToWT(convertScalar(nVal)); WT a = scalar, b = scalar, c = scalar, d = scalar; if (!NEED_EXTRAPOLATION(map_dataA.x, map_dataA.y)) a = convertToWT(loadpix((__global const T *)(srcptr + mad24(map_dataA.y, src_step, map_dataA.x * TSIZE + src_offset)))); else EXTRAPOLATE(map_dataA, a); if (!NEED_EXTRAPOLATION(map_dataB.x, map_dataB.y)) b = convertToWT(loadpix((__global const T *)(srcptr + mad24(map_dataB.y, src_step, map_dataB.x * TSIZE + src_offset)))); else EXTRAPOLATE(map_dataB, b); if (!NEED_EXTRAPOLATION(map_dataC.x, map_dataC.y)) c = convertToWT(loadpix((__global const T *)(srcptr + mad24(map_dataC.y, src_step, map_dataC.x * TSIZE + src_offset)))); else EXTRAPOLATE(map_dataC, c); if (!NEED_EXTRAPOLATION(map_dataD.x, map_dataD.y)) d = convertToWT(loadpix((__global const T *)(srcptr + mad24(map_dataD.y, src_step, map_dataD.x * TSIZE + src_offset)))); else EXTRAPOLATE(map_dataD, d); WT dst_data = a * (1 - u.x) * (1 - u.y) + b * (u.x) * (1 - u.y) + c * (1 - u.x) * (u.y) + d * (u.x) * (u.y); storepix(convertToT(dst_data), dst); #endif } } } __kernel void remap_32FC2(__global const uchar * srcptr, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dstptr, int dst_step, int dst_offset, int dst_rows, int dst_cols, __global const uchar * mapptr, int map_step, int map_offset, ST nVal) { int x = get_global_id(0); int y = get_global_id(1) * rowsPerWI; if (x < dst_cols) { WT scalar = convertToWT(convertScalar(nVal)); int dst_index = mad24(y, dst_step, mad24(x, TSIZE, dst_offset)); int map_index = mad24(y, map_step, mad24(x, (int)sizeof(float2), map_offset)); #pragma unroll for (int i = 0; i < rowsPerWI; ++i, ++y, map_index += map_step, dst_index += dst_step) if (y < dst_rows) { __global const float2 * map = (__global const float2 *)(mapptr + map_index); __global T * dst = (__global T *)(dstptr + dst_index); float2 map_data = map[0]; int2 map_dataA = convert_int2_sat_rtn(map_data); int2 map_dataB = (int2)(map_dataA.x + 1, map_dataA.y); int2 map_dataC = (int2)(map_dataA.x, map_dataA.y + 1); int2 map_dataD = (int2)(map_dataA.x + 1, map_dataA.y + 1); float2 _u = map_data - convert_float2(map_dataA); WT2 u = convertToWT2(convert_int2_rte(convertToWT2(_u) * (WT2)INTER_TAB_SIZE)) / (WT2)INTER_TAB_SIZE; WT a = scalar, b = scalar, c = scalar, d = scalar; if (!NEED_EXTRAPOLATION(map_dataA.x, map_dataA.y)) a = convertToWT(loadpix((__global const T *)(srcptr + mad24(map_dataA.y, src_step, map_dataA.x * TSIZE + src_offset)))); else EXTRAPOLATE(map_dataA, a); if (!NEED_EXTRAPOLATION(map_dataB.x, map_dataB.y)) b = convertToWT(loadpix((__global const T *)(srcptr + mad24(map_dataB.y, src_step, map_dataB.x * TSIZE + src_offset)))); else EXTRAPOLATE(map_dataB, b); if (!NEED_EXTRAPOLATION(map_dataC.x, map_dataC.y)) c = convertToWT(loadpix((__global const T *)(srcptr + mad24(map_dataC.y, src_step, map_dataC.x * TSIZE + src_offset)))); else EXTRAPOLATE(map_dataC, c); if (!NEED_EXTRAPOLATION(map_dataD.x, map_dataD.y)) d = convertToWT(loadpix((__global const T *)(srcptr + mad24(map_dataD.y, src_step, map_dataD.x * TSIZE + src_offset)))); else EXTRAPOLATE(map_dataD, d); WT dst_data = a * (1 - u.x) * (1 - u.y) + b * (u.x) * (1 - u.y) + c * (1 - u.x) * (u.y) + d * (u.x) * (u.y); storepix(convertToT(dst_data), dst); } } } #endif d71b990c30eb48e9063ba2446a0278c6pyramid_up__constant float kx[] = { 0.125, 0.5, 0.75, 0.5, 0.125 }; __constant float ky[] = { 0.125, 0.5, 0.75, 0.5, 0.125 }; #define OP(delta, y, x) (convert_float4(arr[(y + delta) * 5 + x]) * ky[y] * kx[x]) __kernel void pyrUp_cols2(__global const uchar * src, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols) { int block_x = get_global_id(0); int y = get_global_id(1) * 2; if ((block_x * 4) >= dst_cols || y >= dst_rows) return; uchar8 line[6]; uchar4 line_out; int offset, src_index; src_index = block_x * 2 + (y / 2 - 1) * src_step - 1 + src_offset; uchar4 tmp; line[0] = line[2] = line[4] = (uchar8)0; line[1] = line[3] = line[5] = (uchar8)0; offset = max(0, src_index + 1 * src_step); tmp = vload4(0, src + offset); if (offset == 0) tmp = (uchar4)(0, tmp.s012); line[2].even = tmp; offset = max(0, src_index + ((y == 0) ? 2 : 0) * src_step); tmp = vload4(0, src + offset); if (offset == 0) tmp = (uchar4)(0, tmp.s012); line[0].even = tmp; if (y == (dst_rows - 2)) line[4] = line[2]; else line[4].even = vload4(0, src + src_index + 2 * src_step); bool row_s = (block_x == 0); bool row_e = ((block_x + 1) * 4 == dst_cols); uchar4 arr[30]; uchar s, e; s = line[0].s4; e = line[0].s3; arr[0] = row_s ? (uchar4)(s, e, line[0].s23) : (uchar4)(line[0].s0123); arr[1] = row_s ? (uchar4)(e, line[0].s234) : (uchar4)(line[0].s1234); arr[2] = (uchar4)(line[0].s2345); arr[3] = row_e ? (uchar4)(line[0].s345, s) : (uchar4)(line[0].s3456); arr[4] = row_e ? (uchar4)(line[0].s45, s, e) : (uchar4)(line[0].s4567); s = line[1].s4; e = line[1].s3; arr[5] = row_s ? (uchar4)(s, e, line[1].s23) : (uchar4)(line[1].s0123); arr[6] = row_s ? (uchar4)(e, line[1].s234) : (uchar4)(line[1].s1234); arr[7] = (uchar4)(line[1].s2345); arr[8] = row_e ? (uchar4)(line[1].s345, s) : (uchar4)(line[1].s3456); arr[9] = row_e ? (uchar4)(line[1].s45, s, e) : (uchar4)(line[1].s4567); s = line[2].s4; e = line[2].s3; arr[10] = row_s ? (uchar4)(s, e, line[2].s23) : (uchar4)(line[2].s0123); arr[11] = row_s ? (uchar4)(e, line[2].s234) : (uchar4)(line[2].s1234); arr[12] = (uchar4)(line[2].s2345); arr[13] = row_e ? (uchar4)(line[2].s345, s) : (uchar4)(line[2].s3456); arr[14] = row_e ? (uchar4)(line[2].s45, s, e) : (uchar4)(line[2].s4567); s = line[3].s4; e = line[3].s3; arr[15] = row_s ? (uchar4)(s, e, line[3].s23) : (uchar4)(line[3].s0123); arr[16] = row_s ? (uchar4)(e, line[3].s234) : (uchar4)(line[3].s1234); arr[17] = (uchar4)(line[3].s2345); arr[18] = row_e ? (uchar4)(line[3].s345, s) : (uchar4)(line[3].s3456); arr[19] = row_e ? (uchar4)(line[3].s45, s, e) : (uchar4)(line[3].s4567); s = line[4].s4; e = line[4].s3; arr[20] = row_s ? (uchar4)(s, e, line[4].s23) : (uchar4)(line[4].s0123); arr[21] = row_s ? (uchar4)(e, line[4].s234) : (uchar4)(line[4].s1234); arr[22] = (uchar4)(line[4].s2345); arr[23] = row_e ? (uchar4)(line[4].s345, s) : (uchar4)(line[4].s3456); arr[24] = row_e ? (uchar4)(line[4].s45, s, e) : (uchar4)(line[4].s4567); s = line[5].s4; e = line[5].s3; arr[25] = row_s ? (uchar4)(s, e, line[5].s23) : (uchar4)(line[5].s0123); arr[26] = row_s ? (uchar4)(e, line[5].s234) : (uchar4)(line[5].s1234); arr[27] = (uchar4)(line[5].s2345); arr[28] = row_e ? (uchar4)(line[5].s345, s) : (uchar4)(line[5].s3456); arr[29] = row_e ? (uchar4)(line[5].s45, s, e) : (uchar4)(line[5].s4567); float4 sum[2]; sum[0] = OP(0, 0, 0) + OP(0, 0, 1) + OP(0, 0, 2) + OP(0, 0, 3) + OP(0, 0, 4) + OP(0, 1, 0) + OP(0, 1, 1) + OP(0, 1, 2) + OP(0, 1, 3) + OP(0, 1, 4) + OP(0, 2, 0) + OP(0, 2, 1) + OP(0, 2, 2) + OP(0, 2, 3) + OP(0, 2, 4) + OP(0, 3, 0) + OP(0, 3, 1) + OP(0, 3, 2) + OP(0, 3, 3) + OP(0, 3, 4) + OP(0, 4, 0) + OP(0, 4, 1) + OP(0, 4, 2) + OP(0, 4, 3) + OP(0, 4, 4); sum[1] = OP(1, 0, 0) + OP(1, 0, 1) + OP(1, 0, 2) + OP(1, 0, 3) + OP(1, 0, 4) + OP(1, 1, 0) + OP(1, 1, 1) + OP(1, 1, 2) + OP(1, 1, 3) + OP(1, 1, 4) + OP(1, 2, 0) + OP(1, 2, 1) + OP(1, 2, 2) + OP(1, 2, 3) + OP(1, 2, 4) + OP(1, 3, 0) + OP(1, 3, 1) + OP(1, 3, 2) + OP(1, 3, 3) + OP(1, 3, 4) + OP(1, 4, 0) + OP(1, 4, 1) + OP(1, 4, 2) + OP(1, 4, 3) + OP(1, 4, 4); int dst_index = block_x * 4 + y * dst_step + dst_offset; vstore4(convert_uchar4_sat_rte(sum[0]), 0, dst + dst_index); vstore4(convert_uchar4_sat_rte(sum[1]), 0, dst + dst_index + dst_step); } 46bae9fe0213f767045e3c63f9ffc6a0pyr_up#ifdef DOUBLE_SUPPORT #ifdef cl_amd_fp64 #pragma OPENCL EXTENSION cl_amd_fp64:enable #elif defined (cl_khr_fp64) #pragma OPENCL EXTENSION cl_khr_fp64:enable #endif #endif #if cn != 3 #define loadpix(addr) *(__global const T*)(addr) #define storepix(val, addr) *(__global T*)(addr) = (val) #define PIXSIZE ((int)sizeof(T)) #else #define loadpix(addr) vload3(0, (__global const T1*)(addr)) #define storepix(val, addr) vstore3((val), 0, (__global T1*)(addr)) #define PIXSIZE ((int)sizeof(T1)*3) #endif #define EXTRAPOLATE(x, maxV) min(maxV - 1, (int) abs(x)) #define noconvert __kernel void pyrUp(__global const uchar * src, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols) { const int x = get_global_id(0); const int y = get_global_id(1); const int tidx = get_local_id(0); const int tidy = get_local_id(1); __local FT s_srcPatch[LOCAL_SIZE/2 + 2][LOCAL_SIZE/2 + 2]; __local FT s_dstPatch[LOCAL_SIZE/2 + 2][LOCAL_SIZE]; __global uchar * dstData = dst + dst_offset; __global const uchar * srcData = src + src_offset; if( tidx < (LOCAL_SIZE/2 + 2) && tidy < LOCAL_SIZE/2 + 2 ) { int srcx = EXTRAPOLATE(mad24((int)get_group_id(0), LOCAL_SIZE/2, tidx) - 1, src_cols); int srcy = EXTRAPOLATE(mad24((int)get_group_id(1), LOCAL_SIZE/2, tidy) - 1, src_rows); s_srcPatch[tidy][tidx] = convertToFT(loadpix(srcData + srcy * src_step + srcx * PIXSIZE)); } barrier(CLK_LOCAL_MEM_FENCE); FT sum = 0.f; const FT co1 = 0.75f; const FT co2 = 0.5f; const FT co3 = 0.125f; const FT coef1 = (tidx & 1) == 0 ? co1 : (FT) 0; const FT coef2 = (tidx & 1) == 0 ? co3 : co2; const FT coefy1 = (tidy & 1) == 0 ? co1 : (FT) 0; const FT coefy2 = (tidy & 1) == 0 ? co3 : co2; if(tidy < LOCAL_SIZE/2 + 2) { sum = coef2* s_srcPatch[tidy][1 + ((tidx - 1) >> 1)]; sum = mad(coef1, s_srcPatch[tidy][1 + ((tidx ) >> 1)], sum); sum = mad(coef2, s_srcPatch[tidy][1 + ((tidx + 2) >> 1)], sum); s_dstPatch[tidy][tidx] = sum; } barrier(CLK_LOCAL_MEM_FENCE); sum = coefy2* s_dstPatch[1 + ((tidy - 1) >> 1)][tidx]; sum = mad(coefy1, s_dstPatch[1 + ((tidy ) >> 1)][tidx], sum); sum = mad(coefy2, s_dstPatch[1 + ((tidy + 2) >> 1)][tidx], sum); if ((x < dst_cols) && (y < dst_rows)) storepix(convertToT(sum), dstData + y * dst_step + x * PIXSIZE); } __kernel void pyrUp_unrolled(__global const uchar * src, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols) { const int lx = 2*get_local_id(0); const int ly = 2*get_local_id(1); __local FT s_srcPatch[LOCAL_SIZE+2][LOCAL_SIZE+2]; __local FT s_dstPatch[LOCAL_SIZE+2][2*LOCAL_SIZE]; __global uchar * dstData = dst + dst_offset; __global const uchar * srcData = src + src_offset; if( lx < (LOCAL_SIZE+2) && ly < (LOCAL_SIZE+2) ) { int srcx = mad24((int)get_group_id(0), LOCAL_SIZE, lx) - 1; int srcy = mad24((int)get_group_id(1), LOCAL_SIZE, ly) - 1; int srcx1 = EXTRAPOLATE(srcx, src_cols); int srcx2 = EXTRAPOLATE(srcx+1, src_cols); int srcy1 = EXTRAPOLATE(srcy, src_rows); int srcy2 = EXTRAPOLATE(srcy+1, src_rows); s_srcPatch[ly][lx] = convertToFT(loadpix(srcData + srcy1 * src_step + srcx1 * PIXSIZE)); s_srcPatch[ly+1][lx] = convertToFT(loadpix(srcData + srcy2 * src_step + srcx1 * PIXSIZE)); s_srcPatch[ly][lx+1] = convertToFT(loadpix(srcData + srcy1 * src_step + srcx2 * PIXSIZE)); s_srcPatch[ly+1][lx+1] = convertToFT(loadpix(srcData + srcy2 * src_step + srcx2 * PIXSIZE)); } barrier(CLK_LOCAL_MEM_FENCE); FT sum; const FT co1 = 0.75f; const FT co2 = 0.5f; const FT co3 = 0.125f; sum = co3 * s_srcPatch[1 + (ly >> 1)][1 + ((lx - 2) >> 1)]; sum = mad(co1, s_srcPatch[1 + (ly >> 1)][1 + ((lx ) >> 1)], sum); sum = mad(co3, s_srcPatch[1 + (ly >> 1)][1 + ((lx + 2) >> 1)], sum); s_dstPatch[1 + get_local_id(1)][lx] = sum; sum = co2 * s_srcPatch[1 + (ly >> 1)][1 + ((lx + 1 - 1) >> 1)]; sum = mad(co2, s_srcPatch[1 + (ly >> 1)][1 + ((lx + 1 + 1) >> 1)], sum); s_dstPatch[1 + get_local_id(1)][lx+1] = sum; if (ly < 1) { sum = co3 * s_srcPatch[0][1 + ((lx - 2) >> 1)]; sum = mad(co1, s_srcPatch[0][1 + ((lx ) >> 1)], sum); sum = mad(co3, s_srcPatch[0][1 + ((lx + 2) >> 1)], sum); s_dstPatch[0][lx] = sum; sum = co2 * s_srcPatch[0][1 + ((lx + 1 - 1) >> 1)]; sum = mad(co2, s_srcPatch[0][1 + ((lx + 1 + 1) >> 1)], sum); s_dstPatch[0][lx+1] = sum; } if (ly > 2*LOCAL_SIZE-3) { sum = co3 * s_srcPatch[LOCAL_SIZE+1][1 + ((lx - 2) >> 1)]; sum = mad(co1, s_srcPatch[LOCAL_SIZE+1][1 + ((lx ) >> 1)], sum); sum = mad(co3, s_srcPatch[LOCAL_SIZE+1][1 + ((lx + 2) >> 1)], sum); s_dstPatch[LOCAL_SIZE+1][lx] = sum; sum = co2 * s_srcPatch[LOCAL_SIZE+1][1 + ((lx + 1 - 1) >> 1)]; sum = mad(co2, s_srcPatch[LOCAL_SIZE+1][1 + ((lx + 1 + 1) >> 1)], sum); s_dstPatch[LOCAL_SIZE+1][lx+1] = sum; } barrier(CLK_LOCAL_MEM_FENCE); int dst_x = 2*get_global_id(0); int dst_y = 2*get_global_id(1); if ((dst_x < dst_cols) && (dst_y < dst_rows)) { sum = co3 * s_dstPatch[1 + get_local_id(1) - 1][lx]; sum = mad(co1, s_dstPatch[1 + get_local_id(1) ][lx], sum); sum = mad(co3, s_dstPatch[1 + get_local_id(1) + 1][lx], sum); storepix(convertToT(sum), dstData + dst_y * dst_step + dst_x * PIXSIZE); sum = co3 * s_dstPatch[1 + get_local_id(1) - 1][lx+1]; sum = mad(co1, s_dstPatch[1 + get_local_id(1) ][lx+1], sum); sum = mad(co3, s_dstPatch[1 + get_local_id(1) + 1][lx+1], sum); storepix(convertToT(sum), dstData + dst_y * dst_step + (dst_x+1) * PIXSIZE); sum = co2 * s_dstPatch[1 + get_local_id(1) ][lx]; sum = mad(co2, s_dstPatch[1 + get_local_id(1) + 1][lx], sum); storepix(convertToT(sum), dstData + (dst_y+1) * dst_step + dst_x * PIXSIZE); sum = co2 * s_dstPatch[1 + get_local_id(1) ][lx+1]; sum = mad(co2, s_dstPatch[1 + get_local_id(1) + 1][lx+1], sum); storepix(convertToT(sum), dstData + (dst_y+1) * dst_step + (dst_x+1) * PIXSIZE); } } e48abb0036bd5e090ad06600b018eec9pyr_down#ifdef DOUBLE_SUPPORT #ifdef cl_amd_fp64 #pragma OPENCL EXTENSION cl_amd_fp64:enable #elif defined (cl_khr_fp64) #pragma OPENCL EXTENSION cl_khr_fp64:enable #endif #endif #if defined BORDER_REPLICATE #define EXTRAPOLATE(x, maxV) clamp((x), 0, (maxV)-1) #elif defined BORDER_WRAP #define EXTRAPOLATE(x, maxV) ( (x) + (maxV) ) % (maxV) #elif defined BORDER_REFLECT #define EXTRAPOLATE(x, maxV) clamp(min(((maxV)-1)*2-(x)+1, max((x),-(x)-1) ), 0, (maxV)-1) #elif defined BORDER_REFLECT_101 || defined BORDER_REFLECT101 #define EXTRAPOLATE(x, maxV) clamp(min(((maxV)-1)*2-(x), max((x),-(x)) ), 0, (maxV)-1) #else #error No extrapolation method #endif #if cn != 3 #define loadpix(addr) *(__global const T*)(addr) #define storepix(val, addr) *(__global T*)(addr) = (val) #define PIXSIZE ((int)sizeof(T)) #else #define loadpix(addr) vload3(0, (__global const T1*)(addr)) #define storepix(val, addr) vstore3((val), 0, (__global T1*)(addr)) #define PIXSIZE ((int)sizeof(T1)*3) #endif #define SRC(_x,_y) convertToFT(loadpix(srcData + mad24(_y, src_step, PIXSIZE * _x))) #if kercn == 4 #define SRC4(_x,_y) convert_float4(vload4(0, srcData + mad24(_y, src_step, PIXSIZE * _x))) #endif #ifdef INTEL_DEVICE #define MAD(x,y,z) fma((x),(y),(z)) #else #define MAD(x,y,z) mad((x),(y),(z)) #endif #define LOAD_LOCAL(col_gl, col_lcl) \ sum0 = co3* SRC(col_gl, EXTRAPOLATE_(src_y - 2, src_rows)); \ sum0 = MAD(co2, SRC(col_gl, EXTRAPOLATE_(src_y - 1, src_rows)), sum0); \ temp = SRC(col_gl, EXTRAPOLATE_(src_y, src_rows)); \ sum0 = MAD(co1, temp, sum0); \ sum1 = co3 * temp; \ temp = SRC(col_gl, EXTRAPOLATE_(src_y + 1, src_rows)); \ sum0 = MAD(co2, temp, sum0); \ sum1 = MAD(co2, temp, sum1); \ temp = SRC(col_gl, EXTRAPOLATE_(src_y + 2, src_rows)); \ sum0 = MAD(co3, temp, sum0); \ sum1 = MAD(co1, temp, sum1); \ smem[0][col_lcl] = sum0; \ sum1 = MAD(co2, SRC(col_gl, EXTRAPOLATE_(src_y + 3, src_rows)), sum1); \ sum1 = MAD(co3, SRC(col_gl, EXTRAPOLATE_(src_y + 4, src_rows)), sum1); \ smem[1][col_lcl] = sum1; #if kercn == 4 #define LOAD_LOCAL4(col_gl, col_lcl) \ sum40 = co3* SRC4(col_gl, EXTRAPOLATE_(src_y - 2, src_rows)); \ sum40 = MAD(co2, SRC4(col_gl, EXTRAPOLATE_(src_y - 1, src_rows)), sum40); \ temp4 = SRC4(col_gl, EXTRAPOLATE_(src_y, src_rows)); \ sum40 = MAD(co1, temp4, sum40); \ sum41 = co3 * temp4; \ temp4 = SRC4(col_gl, EXTRAPOLATE_(src_y + 1, src_rows)); \ sum40 = MAD(co2, temp4, sum40); \ sum41 = MAD(co2, temp4, sum41); \ temp4 = SRC4(col_gl, EXTRAPOLATE_(src_y + 2, src_rows)); \ sum40 = MAD(co3, temp4, sum40); \ sum41 = MAD(co1, temp4, sum41); \ vstore4(sum40, col_lcl, (__local float*) &smem[0][2]); \ sum41 = MAD(co2, SRC4(col_gl, EXTRAPOLATE_(src_y + 3, src_rows)), sum41); \ sum41 = MAD(co3, SRC4(col_gl, EXTRAPOLATE_(src_y + 4, src_rows)), sum41); \ vstore4(sum41, col_lcl, (__local float*) &smem[1][2]); #endif #define noconvert __kernel void pyrDown(__global const uchar * src, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols) { const int x = get_global_id(0)*kercn; const int y = 2*get_global_id(1); __local FT smem[2][LOCAL_SIZE + 4]; __global uchar * dstData = dst + dst_offset; __global const uchar * srcData = src + src_offset; FT sum0, sum1, temp; FT co1 = 0.375f; FT co2 = 0.25f; FT co3 = 0.0625f; const int src_y = 2*y; int col; if (src_y >= 2 && src_y < src_rows - 4) { #undef EXTRAPOLATE_ #define EXTRAPOLATE_(val, maxVal) val #if kercn == 1 col = EXTRAPOLATE(x, src_cols); LOAD_LOCAL(col, 2 + get_local_id(0)) #else if (x < src_cols-4) { float4 sum40, sum41, temp4; LOAD_LOCAL4(x, get_local_id(0)) } else { for (int i=0; i<4; i++) { col = EXTRAPOLATE(x+i, src_cols); LOAD_LOCAL(col, 2 + 4 * get_local_id(0) + i) } } #endif if (get_local_id(0) < 2) { col = EXTRAPOLATE((int)(get_group_id(0)*LOCAL_SIZE + get_local_id(0) - 2), src_cols); LOAD_LOCAL(col, get_local_id(0)) } else if (get_local_id(0) < 4) { col = EXTRAPOLATE((int)((get_group_id(0)+1)*LOCAL_SIZE + get_local_id(0) - 2), src_cols); LOAD_LOCAL(col, LOCAL_SIZE + get_local_id(0)) } } else { #undef EXTRAPOLATE_ #define EXTRAPOLATE_(val, maxVal) EXTRAPOLATE(val, maxVal) #if kercn == 1 col = EXTRAPOLATE(x, src_cols); LOAD_LOCAL(col, 2 + get_local_id(0)) #else if (x < src_cols-4) { float4 sum40, sum41, temp4; LOAD_LOCAL4(x, get_local_id(0)) } else { for (int i=0; i<4; i++) { col = EXTRAPOLATE(x+i, src_cols); LOAD_LOCAL(col, 2 + 4*get_local_id(0) + i) } } #endif if (get_local_id(0) < 2) { col = EXTRAPOLATE((int)(get_group_id(0)*LOCAL_SIZE + get_local_id(0) - 2), src_cols); LOAD_LOCAL(col, get_local_id(0)) } else if (get_local_id(0) < 4) { col = EXTRAPOLATE((int)((get_group_id(0)+1)*LOCAL_SIZE + get_local_id(0) - 2), src_cols); LOAD_LOCAL(col, LOCAL_SIZE + get_local_id(0)) } } barrier(CLK_LOCAL_MEM_FENCE); #if kercn == 1 if (get_local_id(0) < LOCAL_SIZE / 2) { const int tid2 = get_local_id(0) * 2; const int dst_x = (get_group_id(0) * get_local_size(0) + tid2) / 2; if (dst_x < dst_cols) { for (int yin = y, y1 = min(dst_rows, y + 2); yin < y1; yin++) { #if cn == 1 #if fdepth <= 5 FT sum = dot(vload4(0, (__local float*) (&smem) + tid2 + (yin - y) * (LOCAL_SIZE + 4)), (float4)(co3, co2, co1, co2)); #else FT sum = dot(vload4(0, (__local double*) (&smem) + tid2 + (yin - y) * (LOCAL_SIZE + 4)), (double4)(co3, co2, co1, co2)); #endif #else FT sum = co3 * smem[yin - y][2 + tid2 - 2]; sum = MAD(co2, smem[yin - y][2 + tid2 - 1], sum); sum = MAD(co1, smem[yin - y][2 + tid2 ], sum); sum = MAD(co2, smem[yin - y][2 + tid2 + 1], sum); #endif sum = MAD(co3, smem[yin - y][2 + tid2 + 2], sum); storepix(convertToT(sum), dstData + yin * dst_step + dst_x * PIXSIZE); } } } #else int tid4 = get_local_id(0) * 4; int dst_x = (get_group_id(0) * LOCAL_SIZE + tid4) / 2; if (dst_x < dst_cols - 1) { for (int yin = y, y1 = min(dst_rows, y + 2); yin < y1; yin++) { FT sum = co3* smem[yin - y][2 + tid4 + 2]; sum = MAD(co3, smem[yin - y][2 + tid4 - 2], sum); sum = MAD(co2, smem[yin - y][2 + tid4 - 1], sum); sum = MAD(co1, smem[yin - y][2 + tid4 ], sum); sum = MAD(co2, smem[yin - y][2 + tid4 + 1], sum); storepix(convertToT(sum), dstData + mad24(yin, dst_step, dst_x * PIXSIZE)); dst_x ++; sum = co3* smem[yin - y][2 + tid4 + 4]; sum = MAD(co3, smem[yin - y][2 + tid4 ], sum); sum = MAD(co2, smem[yin - y][2 + tid4 + 1], sum); sum = MAD(co1, smem[yin - y][2 + tid4 + 2], sum); sum = MAD(co2, smem[yin - y][2 + tid4 + 3], sum); storepix(convertToT(sum), dstData + mad24(yin, dst_step, dst_x * PIXSIZE)); dst_x --; } } else if (dst_x < dst_cols) { for (int yin = y, y1 = min(dst_rows, y + 2); yin < y1; yin++) { FT sum = co3* smem[yin - y][2 + tid4 + 2]; sum = MAD(co3, smem[yin - y][2 + tid4 - 2], sum); sum = MAD(co2, smem[yin - y][2 + tid4 - 1], sum); sum = MAD(co1, smem[yin - y][2 + tid4 ], sum); sum = MAD(co2, smem[yin - y][2 + tid4 + 1], sum); storepix(convertToT(sum), dstData + mad24(yin, dst_step, dst_x * PIXSIZE)); } } #endif } a5f2dccf982eb988b2ed0e11453d00b9precornerdetect__kernel void preCornerDetect(__global const uchar * Dxptr, int dx_step, int dx_offset, __global const uchar * Dyptr, int dy_step, int dy_offset, __global const uchar * D2xptr, int d2x_step, int d2x_offset, __global const uchar * D2yptr, int d2y_step, int d2y_offset, __global const uchar * Dxyptr, int dxy_step, int dxy_offset, __global uchar * dstptr, int dst_step, int dst_offset, int dst_rows, int dst_cols, float factor) { int x = get_global_id(0); int y = get_global_id(1); if (x < dst_cols && y < dst_rows) { int dx_index = mad24(dx_step, y, (int)sizeof(float) * x + dx_offset); int dy_index = mad24(dy_step, y, (int)sizeof(float) * x + dy_offset); int d2x_index = mad24(d2x_step, y, (int)sizeof(float) * x + d2x_offset); int d2y_index = mad24(d2y_step, y, (int)sizeof(float) * x + d2y_offset); int dxy_index = mad24(dxy_step, y, (int)sizeof(float) * x + dxy_offset); int dst_index = mad24(dst_step, y, (int)sizeof(float) * x + dst_offset); float dx = *(__global const float *)(Dxptr + dx_index); float dy = *(__global const float *)(Dyptr + dy_index); float d2x = *(__global const float *)(D2xptr + d2x_index); float d2y = *(__global const float *)(D2yptr + d2y_index); float dxy = *(__global const float *)(Dxyptr + dxy_index); __global float * dst = (__global float *)(dstptr + dst_index); dst[0] = factor * (dx*dx*d2y + dy*dy*d2x - 2*dx*dy*dxy); } } 14a94db70b88aa76ff8840f03f3ad556morph3x3#ifdef OP_ERODE #define OP(m1, m2) min(m1, m2) #define VAL UCHAR_MAX #endif #ifdef OP_DILATE #define OP(m1, m2) max(m1, m2) #define VAL 0 #endif #if defined OP_GRADIENT || defined OP_TOPHAT || defined OP_BLACKHAT #define EXTRA_PARAMS , __global const uchar * matptr, int mat_step, int mat_offset #else #define EXTRA_PARAMS #endif #define PROCESS(_y, _x) \ line_out[0] = OP(line_out[0], arr[_x + 3 * _y]); \ line_out[1] = OP(line_out[1], arr[_x + 3 * (_y + 1)]); #define PROCESS_ELEM \ line_out[0] = (uchar16)VAL; \ line_out[1] = (uchar16)VAL; \ PROCESS_ELEM_ __kernel void morph3x3_8UC1_cols16_rows2(__global const uint* src, int src_step, __global uint* dst, int dst_step, int rows, int cols EXTRA_PARAMS) { int block_x = get_global_id(0); int y = get_global_id(1) * 2; int ssx = 1, dsx = 1; if ((block_x * 16) >= cols || y >= rows) return; uchar a; uchar16 b; uchar c; uchar d; uchar16 e; uchar f; uchar g; uchar16 h; uchar i; uchar j; uchar16 k; uchar l; uchar16 line[4]; uchar16 line_out[2]; int src_index = block_x * 4 * ssx + (y - 1) * (src_step / 4); line[0] = (y == 0) ? (uchar16)VAL: as_uchar16(vload4(0, src + src_index)); line[1] = as_uchar16(vload4(0, src + src_index + (src_step / 4))); line[2] = as_uchar16(vload4(0, src + src_index + 2 * (src_step / 4))); line[3] = (y == (rows - 2)) ? (uchar16)VAL: as_uchar16(vload4(0, src + src_index + 3 * (src_step / 4))); __global uchar *src_p = (__global uchar *)src; bool line_end = ((block_x + 1) * 16 == cols); src_index = block_x * 16 * ssx + (y - 1) * src_step; a = (block_x == 0 || y == 0) ? VAL : src_p[src_index - 1]; b = line[0]; c = (line_end || y == 0) ? VAL : src_p[src_index + 16]; d = (block_x == 0) ? VAL : src_p[src_index + src_step - 1]; e = line[1]; f = line_end ? VAL : src_p[src_index + src_step + 16]; g = (block_x == 0) ? VAL : src_p[src_index + 2 * src_step - 1]; h = line[2]; i = line_end ? VAL : src_p[src_index + 2 * src_step + 16]; j = (block_x == 0 || y == (rows - 2)) ? VAL : src_p[src_index + 3 * src_step - 1]; k = line[3]; l = (line_end || y == (rows - 2)) ? VAL : src_p[src_index + 3 * src_step + 16]; uchar16 arr[12]; arr[0] = (uchar16)(a, b.s01234567, b.s89ab, b.scde); arr[1] = b; arr[2] = (uchar16)(b.s12345678, b.s9abc, b.sdef, c); arr[3] = (uchar16)(d, e.s01234567, e.s89ab, e.scde); arr[4] = e; arr[5] = (uchar16)(e.s12345678, e.s9abc, e.sdef, f); arr[6] = (uchar16)(g, h.s01234567, h.s89ab, h.scde); arr[7] = h; arr[8] = (uchar16)(h.s12345678, h.s9abc, h.sdef, i); arr[9] = (uchar16)(j, k.s01234567, k.s89ab, k.scde); arr[10] = k; arr[11] = (uchar16)(k.s12345678, k.s9abc, k.sdef, l); PROCESS_ELEM; int dst_index = block_x * 4 * dsx + y * (dst_step / 4); #if defined OP_GRADIENT || defined OP_TOPHAT || defined OP_BLACKHAT int mat_index = y * mat_step + block_x * 16 * ssx + mat_offset; uchar16 val0 = vload16(0, matptr + mat_index); uchar16 val1 = vload16(0, matptr + mat_index + mat_step); #ifdef OP_GRADIENT line_out[0] = convert_uchar16_sat(convert_int16(line_out[0]) - convert_int16(val0)); line_out[1] = convert_uchar16_sat(convert_int16(line_out[1]) - convert_int16(val1)); vstore4(as_uint4(line_out[0]), 0, dst + dst_index); vstore4(as_uint4(line_out[1]), 0, dst + dst_index + (dst_step / 4)); #elif defined OP_TOPHAT line_out[0] = convert_uchar16_sat(convert_int16(val0) - convert_int16(line_out[0])); line_out[1] = convert_uchar16_sat(convert_int16(val1) - convert_int16(line_out[1])); vstore4(as_uint4(line_out[0]), 0, dst + dst_index); vstore4(as_uint4(line_out[1]), 0, dst + dst_index + (dst_step / 4)); #elif defined OP_BLACKHAT line_out[0] = convert_uchar16_sat(convert_int16(line_out[0]) - convert_int16(val0)); line_out[1] = convert_uchar16_sat(convert_int16(line_out[1]) - convert_int16(val1)); vstore4(as_uint4(line_out[0]), 0, dst + dst_index); vstore4(as_uint4(line_out[1]), 0, dst + dst_index + (dst_step / 4)); #endif #else vstore4(as_uint4(line_out[0]), 0, dst + dst_index); vstore4(as_uint4(line_out[1]), 0, dst + dst_index + (dst_step / 4)); #endif } 69fd431a8819a531ceca227a115c0a07#ifdef DOUBLE_SUPPORT #ifdef cl_amd_fp64 #pragma OPENCL EXTENSION cl_amd_fp64:enable #elif defined (cl_khr_fp64) #pragma OPENCL EXTENSION cl_khr_fp64:enable #endif #endif #define noconvert #if cn != 3 #define loadpix(addr) *(__global const T *)(addr) #define storepix(val, addr) *(__global T *)(addr) = val #define TSIZE (int)sizeof(T) #else #define loadpix(addr) vload3(0, (__global const T1 *)(addr)) #define storepix(val, addr) vstore3(val, 0, (__global T1 *)(addr)) #define TSIZE ((int)sizeof(T1)*3) #endif #ifdef DEPTH_0 #define MIN_VAL 0 #define MAX_VAL UCHAR_MAX #elif defined DEPTH_1 #define MIN_VAL SCHAR_MIN #define MAX_VAL SCHAR_MAX #elif defined DEPTH_2 #define MIN_VAL 0 #define MAX_VAL USHRT_MAX #elif defined DEPTH_3 #define MIN_VAL SHRT_MIN #define MAX_VAL SHRT_MAX #elif defined DEPTH_4 #define MIN_VAL INT_MIN #define MAX_VAL INT_MAX #elif defined DEPTH_5 #define MIN_VAL (-FLT_MAX) #define MAX_VAL FLT_MAX #elif defined DEPTH_6 #define MIN_VAL (-DBL_MAX) #define MAX_VAL DBL_MAX #endif #ifdef OP_ERODE #define VAL MAX_VAL #elif defined OP_DILATE #define VAL MIN_VAL #else #error "Unknown operation" #endif #ifdef OP_ERODE #if defined INTEL_DEVICE && defined DEPTH_0 #define MORPH_OP(A, B) ((A) < (B) ? (A) : (B)) #else #define MORPH_OP(A, B) min((A), (B)) #endif #endif #ifdef OP_DILATE #define MORPH_OP(A, B) max((A), (B)) #endif #define PROCESS(y, x) \ temp = LDS_DAT[mad24(l_y + y, width, l_x + x)]; \ res = MORPH_OP(res, temp); #define ELEM(i, l_edge, r_edge, elem1, elem2) (i) < (l_edge) | (i) >= (r_edge) ? (elem1) : (elem2) #if defined OP_GRADIENT || defined OP_TOPHAT || defined OP_BLACKHAT #define EXTRA_PARAMS , __global const uchar * matptr, int mat_step, int mat_offset #else #define EXTRA_PARAMS #endif __kernel void morph(__global const uchar * srcptr, int src_step, int src_offset, __global uchar * dstptr, int dst_step, int dst_offset, int src_offset_x, int src_offset_y, int cols, int rows, int src_whole_cols, int src_whole_rows EXTRA_PARAMS) { int gidx = get_global_id(0), gidy = get_global_id(1); int l_x = get_local_id(0), l_y = get_local_id(1); int x = get_group_id(0) * LSIZE0, y = get_group_id(1) * LSIZE1; int start_x = x + src_offset_x - RADIUSX; int width = mad24(RADIUSX, 2, LSIZE0 + 1); int start_y = y + src_offset_y - RADIUSY; int point1 = mad24(l_y, LSIZE0, l_x); int point2 = point1 + LSIZE0 * LSIZE1; int tl_x = point1 % width, tl_y = point1 / width; int tl_x2 = point2 % width, tl_y2 = point2 / width; int cur_x = start_x + tl_x, cur_y = start_y + tl_y; int cur_x2 = start_x + tl_x2, cur_y2 = start_y + tl_y2; int start_addr = mad24(cur_y, src_step, cur_x * TSIZE); int start_addr2 = mad24(cur_y2, src_step, cur_x2 * TSIZE); __local T LDS_DAT[2 * LSIZE1 * LSIZE0]; int end_addr = mad24(src_whole_rows - 1, src_step, src_whole_cols * TSIZE); start_addr = start_addr < end_addr && start_addr > 0 ? start_addr : 0; start_addr2 = start_addr2 < end_addr && start_addr2 > 0 ? start_addr2 : 0; T temp0 = loadpix(srcptr + start_addr); T temp1 = loadpix(srcptr + start_addr2); temp0 = ELEM(cur_x, 0, src_whole_cols, (T)(VAL), temp0); temp0 = ELEM(cur_y, 0, src_whole_rows, (T)(VAL), temp0); temp1 = ELEM(cur_x2, 0, src_whole_cols, (T)(VAL), temp1); temp1 = ELEM(cur_y2, 0, src_whole_rows, (T)(VAL), temp1); LDS_DAT[point1] = temp0; LDS_DAT[point2] = temp1; barrier(CLK_LOCAL_MEM_FENCE); if (gidx < cols && gidy < rows) { T res = (T)(VAL), temp; PROCESS_ELEMS; int dst_index = mad24(gidy, dst_step, mad24(gidx, TSIZE, dst_offset)); #if defined OP_GRADIENT || defined OP_TOPHAT || defined OP_BLACKHAT int mat_index = mad24(gidy, mat_step, mad24(gidx, TSIZE, mat_offset)); T value = loadpix(matptr + mat_index); #ifdef OP_GRADIENT storepix(convertToT(convertToWT(res) - convertToWT(value)), dstptr + dst_index); #elif defined OP_TOPHAT storepix(convertToT(convertToWT(value) - convertToWT(res)), dstptr + dst_index); #elif defined OP_BLACKHAT storepix(convertToT(convertToWT(res) - convertToWT(value)), dstptr + dst_index); #endif #else storepix(res, dstptr + dst_index); #endif } } 232e712bff362e53c55027da6e1e1584#if TILE_SIZE != 32 #error "TILE SIZE should be 32" #endif __kernel void moments(__global const uchar* src, int src_step, int src_offset, int src_rows, int src_cols, __global int* mom0, int xtiles) { int x0 = get_global_id(0); int y0 = get_group_id(1); int x, y = get_local_id(1); int x_min = x0*TILE_SIZE; int ypix = y0*TILE_SIZE + y; __local int mom[TILE_SIZE][10]; if (x_min < src_cols && y0*TILE_SIZE < src_rows) { if (ypix < src_rows) { int x_max = min(src_cols - x_min, TILE_SIZE); __global const uchar* ptr = src + src_offset + ypix*src_step + x_min; int4 S = (int4)(0, 0, 0, 0), p; #define SUM_ELEM(elem, ofs) \ (int4)(1, (ofs), (ofs)*(ofs), (ofs)*(ofs)*(ofs))*elem x = x_max & -4; if (x_max >= 4) { p = convert_int4(vload4(0, ptr)); #ifdef OP_MOMENTS_BINARY p = min(p, 1); #endif S += (int4)(p.s0, 0, 0, 0) + (int4)(p.s1, p.s1, p.s1, p.s1) + (int4)(p.s2, p.s2 * 2, p.s2 * 4, p.s2 * 8) + (int4)(p.s3, p.s3 * 3, p.s3 * 9, p.s3 * 27); if (x_max >= 8) { p = convert_int4(vload4(0, ptr + 4)); #ifdef OP_MOMENTS_BINARY p = min(p, 1); #endif S += (int4)(p.s0, p.s0 * 4, p.s0 * 16, p.s0 * 64) + (int4)(p.s1, p.s1 * 5, p.s1 * 25, p.s1 * 125) + (int4)(p.s2, p.s2 * 6, p.s2 * 36, p.s2 * 216) + (int4)(p.s3, p.s3 * 7, p.s3 * 49, p.s3 * 343); if (x_max >= 12) { p = convert_int4(vload4(0, ptr + 8)); #ifdef OP_MOMENTS_BINARY p = min(p, 1); #endif S += (int4)(p.s0, p.s0 * 8, p.s0 * 64, p.s0 * 512) + (int4)(p.s1, p.s1 * 9, p.s1 * 81, p.s1 * 729) + (int4)(p.s2, p.s2 * 10, p.s2 * 100, p.s2 * 1000) + (int4)(p.s3, p.s3 * 11, p.s3 * 121, p.s3 * 1331); if (x_max >= 16) { p = convert_int4(vload4(0, ptr + 12)); #ifdef OP_MOMENTS_BINARY p = min(p, 1); #endif S += (int4)(p.s0, p.s0 * 12, p.s0 * 144, p.s0 * 1728) + (int4)(p.s1, p.s1 * 13, p.s1 * 169, p.s1 * 2197) + (int4)(p.s2, p.s2 * 14, p.s2 * 196, p.s2 * 2744) + (int4)(p.s3, p.s3 * 15, p.s3 * 225, p.s3 * 3375); } } } } if (x_max >= 20) { p = convert_int4(vload4(0, ptr + 16)); #ifdef OP_MOMENTS_BINARY p = min(p, 1); #endif S += (int4)(p.s0, p.s0 * 16, p.s0 * 256, p.s0 * 4096) + (int4)(p.s1, p.s1 * 17, p.s1 * 289, p.s1 * 4913) + (int4)(p.s2, p.s2 * 18, p.s2 * 324, p.s2 * 5832) + (int4)(p.s3, p.s3 * 19, p.s3 * 361, p.s3 * 6859); if (x_max >= 24) { p = convert_int4(vload4(0, ptr + 20)); #ifdef OP_MOMENTS_BINARY p = min(p, 1); #endif S += (int4)(p.s0, p.s0 * 20, p.s0 * 400, p.s0 * 8000) + (int4)(p.s1, p.s1 * 21, p.s1 * 441, p.s1 * 9261) + (int4)(p.s2, p.s2 * 22, p.s2 * 484, p.s2 * 10648) + (int4)(p.s3, p.s3 * 23, p.s3 * 529, p.s3 * 12167); if (x_max >= 28) { p = convert_int4(vload4(0, ptr + 24)); #ifdef OP_MOMENTS_BINARY p = min(p, 1); #endif S += (int4)(p.s0, p.s0 * 24, p.s0 * 576, p.s0 * 13824) + (int4)(p.s1, p.s1 * 25, p.s1 * 625, p.s1 * 15625) + (int4)(p.s2, p.s2 * 26, p.s2 * 676, p.s2 * 17576) + (int4)(p.s3, p.s3 * 27, p.s3 * 729, p.s3 * 19683); if (x_max >= 32) { p = convert_int4(vload4(0, ptr + 28)); #ifdef OP_MOMENTS_BINARY p = min(p, 1); #endif S += (int4)(p.s0, p.s0 * 28, p.s0 * 784, p.s0 * 21952) + (int4)(p.s1, p.s1 * 29, p.s1 * 841, p.s1 * 24389) + (int4)(p.s2, p.s2 * 30, p.s2 * 900, p.s2 * 27000) + (int4)(p.s3, p.s3 * 31, p.s3 * 961, p.s3 * 29791); } } } } if (x < x_max) { int ps = ptr[x]; #ifdef OP_MOMENTS_BINARY ps = min(ps, 1); #endif S += SUM_ELEM(ps, x); if (x + 1 < x_max) { ps = ptr[x + 1]; #ifdef OP_MOMENTS_BINARY ps = min(ps, 1); #endif S += SUM_ELEM(ps, x + 1); if (x + 2 < x_max) { ps = ptr[x + 2]; #ifdef OP_MOMENTS_BINARY ps = min(ps, 1); #endif S += SUM_ELEM(ps, x + 2); } } } int sy = y*y; mom[y][0] = S.s0; mom[y][1] = S.s1; mom[y][2] = y*S.s0; mom[y][3] = S.s2; mom[y][4] = y*S.s1; mom[y][5] = sy*S.s0; mom[y][6] = S.s3; mom[y][7] = y*S.s2; mom[y][8] = sy*S.s1; mom[y][9] = y*sy*S.s0; } else mom[y][0] = mom[y][1] = mom[y][2] = mom[y][3] = mom[y][4] = mom[y][5] = mom[y][6] = mom[y][7] = mom[y][8] = mom[y][9] = 0; barrier(CLK_LOCAL_MEM_FENCE); #define REDUCE(d) \ if (y < d) \ { \ mom[y][0] += mom[y + d][0]; \ mom[y][1] += mom[y + d][1]; \ mom[y][2] += mom[y + d][2]; \ mom[y][3] += mom[y + d][3]; \ mom[y][4] += mom[y + d][4]; \ mom[y][5] += mom[y + d][5]; \ mom[y][6] += mom[y + d][6]; \ mom[y][7] += mom[y + d][7]; \ mom[y][8] += mom[y + d][8]; \ mom[y][9] += mom[y + d][9]; \ } \ barrier(CLK_LOCAL_MEM_FENCE) REDUCE(16); REDUCE(8); REDUCE(4); REDUCE(2); if (y < 10) { __global int* momout = mom0 + (y0*xtiles + x0) * 10; momout[y] = mom[0][y] + mom[1][y]; } } } 1d0545282b5860ed7eeeb6860fa9edc3medianFilter#if cn != 3 #define loadpix(addr) *(__global const T *)(addr) #define storepix(val, addr) *(__global T *)(addr) = val #define TSIZE (int)sizeof(T) #else #define loadpix(addr) vload3(0, (__global const T1 *)(addr)) #define storepix(val, addr) vstore3(val, 0, (__global T1 *)(addr)) #define TSIZE (int)sizeof(T1) * cn #endif #define OP(a,b) { mid=a; a=min(a,b); b=max(mid,b);} #ifdef USE_4OPT #if cn == 1 #define LOAD4(val, offs) (val) = vload4(0, (__global T1 *)(srcptr + src_index + (offs))) #define STORE4(val, offs) vstore4((val), 0, (__global T1 *)(dstptr + (offs))) #define SHUFFLE4_3(src0, src1, src2, dst0, dst1, dst2) { dst1 = src1; \ dst0 = (T4)(src0, dst1.xyz); \ dst2 = (T4)(dst1.yzw, src2); } #define SHUFFLE4_5(src0, src1, src2, src3, src4, dst0, dst1, dst2, dst3, dst4) { dst2 = src2; \ dst0 = (T4)(src0, src1, dst2.xy); \ dst1 = (T4)(src1, dst2.xyz); \ dst3 = (T4)(dst2.yzw, src3); \ dst4 = (T4)(dst2.zw, src3, src4); } #elif cn == 2 #define LOAD4(val, offs) (val) = vload8(0, (__global T1 *)(srcptr + src_index + (offs))) #define STORE4(val, offs) vstore8((val), 0, (__global T1 *)(dstptr + (offs))) #define SHUFFLE4_3(src0, src1, src2, dst0, dst1, dst2) { dst1 = src1; \ dst0 = (T4)(src0, dst1.s012345); \ dst2 = (T4)(dst1.s234567, src2); } #define SHUFFLE4_5(src0, src1, src2, src3, src4, dst0, dst1, dst2, dst3, dst4) { dst2 = src2; \ dst0 = (T4)(src0, src1, dst2.s0123); \ dst1 = (T4)(src1, dst2.s012345); \ dst3 = (T4)(dst2.s234567, src3); \ dst4 = (T4)(dst2.s4567, src3, src4); } #elif cn == 4 #define LOAD4(val, offs) (val) = vload16(0, (__global T1 *)(srcptr + src_index + (offs))) #define STORE4(val, offs) vstore16((val), 0, (__global T1 *)(dstptr + (offs))) #define SHUFFLE4_3(src0, src1, src2, dst0, dst1, dst2) { dst1 = src1; \ dst0 = (T4)(src0, dst1.s0123456789ab ); \ dst2 = (T4)(dst1.s456789abcdef, src2); } #define SHUFFLE4_5(src0, src1, src2, src3, src4, dst0, dst1, dst2, dst3, dst4) { dst2 = src2; \ dst0 = (T4)(src0, src1, dst2.s01234567); \ dst1 = (T4)(src1, dst2.s0123456789ab); \ dst3 = (T4)(dst2.s456789abcdef, src3); \ dst4 = (T4)(dst2.s89abcdef, src3, src4); } #endif __kernel void medianFilter3_u(__global const uchar* srcptr, int srcStep, int srcOffset, __global uchar* dstptr, int dstStep, int dstOffset, int rows, int cols) { int gx= get_global_id(0) << 2; int gy= get_global_id(1) << 2; if( gy >= rows || gx >= cols) return; T c0; T4 c1; T c2; T c3; T4 c4; T c5; T c6; T4 c7; T c8; int x_left = mad24(max(gx-1, 0), TSIZE, srcOffset); int x_central = mad24(gx, TSIZE, srcOffset); int x_right = mad24(min(gx+4, cols-1), TSIZE, srcOffset); int xdst = mad24(gx, TSIZE, dstOffset); int src_index = max(gy-1, 0)*srcStep; c0 = *(__global T *)(srcptr + src_index + x_left); LOAD4(c1, x_central); c2 = *(__global T *)(srcptr + src_index + x_right); src_index = gy*srcStep; c3 = *(__global T *)(srcptr + src_index + x_left); LOAD4(c4, x_central); c5 = *(__global T *)(srcptr + src_index + x_right); #define ITER3(k) { \ src_index = min(gy+k+1, rows-1)*srcStep; \ c6 = *(__global T *)(srcptr + src_index + x_left); \ LOAD4(c7, x_central); \ c8 = *(__global T *)(srcptr + src_index + x_right); \ T4 p0, p1, p2, p3, p4, p5, p6, p7, p8; \ SHUFFLE4_3(c0, c1, c2, p0, p1, p2); \ SHUFFLE4_3(c3, c4, c5, p3, p4, p5); \ SHUFFLE4_3(c6, c7, c8, p6, p7, p8); \ T4 mid; \ OP(p1, p2); OP(p4, p5); OP(p7, p8); OP(p0, p1); \ OP(p3, p4); OP(p6, p7); OP(p1, p2); OP(p4, p5); \ OP(p7, p8); OP(p0, p3); OP(p5, p8); OP(p4, p7); \ OP(p3, p6); OP(p1, p4); OP(p2, p5); OP(p4, p7); \ OP(p4, p2); OP(p6, p4); OP(p4, p2); \ int dst_index = mad24( gy+k, dstStep, xdst); \ STORE4(p4, dst_index); \ c0 = c3; c1 = c4; c2 = c5; \ c3 = c6; c4 = c7; c5 = c8; \ } ITER3(0); ITER3(1); ITER3(2); ITER3(3); } __kernel void medianFilter5_u(__global const uchar* srcptr, int srcStep, int srcOffset, __global uchar* dstptr, int dstStep, int dstOffset, int rows, int cols) { int gx= get_global_id(0) << 2; int gy= get_global_id(1) << 2; if( gy >= rows || gx >= cols) return; T c0; T c1; T4 c2; T c3; T c4; T c5; T c6; T4 c7; T c8; T c9; T c10; T c11; T4 c12; T c13; T c14; T c15; T c16; T4 c17; T c18; T c19; T c20; T c21; T4 c22; T c23; T c24; int x_leftmost = mad24(max(gx-2, 0), TSIZE, srcOffset); int x_left = mad24(max(gx-1, 0), TSIZE, srcOffset); int x_central = mad24(gx, TSIZE, srcOffset); int x_right = mad24(min(gx+4, cols-1), TSIZE, srcOffset); int x_rightmost= mad24(min(gx+5, cols-1), TSIZE, srcOffset); int xdst = mad24(gx, TSIZE, dstOffset); int src_index = max(gy-2, 0)*srcStep; c0 = *(__global T *)(srcptr + src_index + x_leftmost); c1 = *(__global T *)(srcptr + src_index + x_left); LOAD4(c2, x_central); c3 = *(__global T *)(srcptr + src_index + x_right); c4 = *(__global T *)(srcptr + src_index + x_rightmost); src_index = max(gy-1, 0)*srcStep; c5 = *(__global T *)(srcptr + src_index + x_leftmost); c6 = *(__global T *)(srcptr + src_index + x_left); LOAD4(c7, x_central); c8 = *(__global T *)(srcptr + src_index + x_right); c9 = *(__global T *)(srcptr + src_index + x_rightmost); src_index = gy*srcStep; c10 = *(__global T *)(srcptr + src_index + x_leftmost); c11 = *(__global T *)(srcptr + src_index + x_left); LOAD4(c12, x_central); c13 = *(__global T *)(srcptr + src_index + x_right); c14 = *(__global T *)(srcptr + src_index + x_rightmost); src_index = (gy+1)*srcStep; c15 = *(__global T *)(srcptr + src_index + x_leftmost); c16 = *(__global T *)(srcptr + src_index + x_left); LOAD4(c17, x_central); c18 = *(__global T *)(srcptr + src_index + x_right); c19 = *(__global T *)(srcptr + src_index + x_rightmost); for(int k = 0; k < 4; k++) { src_index = min(gy+k+2, rows-1) * srcStep; c20 = *(__global T *)(srcptr + src_index + x_leftmost); c21 = *(__global T *)(srcptr + src_index + x_left); LOAD4(c22, x_central); c23 = *(__global T *)(srcptr + src_index + x_right); c24 = *(__global T *)(srcptr + src_index + x_rightmost); T4 p0, p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20, p21, p22, p23, p24; SHUFFLE4_5(c0, c1, c2, c3, c4, p0, p1, p2, p3, p4); SHUFFLE4_5(c5, c6, c7, c8, c9, p5, p6, p7, p8, p9); SHUFFLE4_5(c10, c11, c12, c13, c14, p10, p11, p12, p13, p14); SHUFFLE4_5(c15, c16, c17, c18, c19, p15, p16, p17, p18, p19); SHUFFLE4_5(c20, c21, c22, c23, c24, p20, p21, p22, p23, p24); T4 mid; OP(p1, p2); OP(p0, p1); OP(p1, p2); OP(p4, p5); OP(p3, p4); OP(p4, p5); OP(p0, p3); OP(p2, p5); OP(p2, p3); OP(p1, p4); OP(p1, p2); OP(p3, p4); OP(p7, p8); OP(p6, p7); OP(p7, p8); OP(p10, p11); OP(p9, p10); OP(p10, p11); OP(p6, p9); OP(p8, p11); OP(p8, p9); OP(p7, p10); OP(p7, p8); OP(p9, p10); OP(p0, p6); OP(p4, p10); OP(p4, p6); OP(p2, p8); OP(p2, p4); OP(p6, p8); OP(p1, p7); OP(p5, p11); OP(p5, p7); OP(p3, p9); OP(p3, p5); OP(p7, p9); OP(p1, p2); OP(p3, p4); OP(p5, p6); OP(p7, p8); OP(p9, p10); OP(p13, p14); OP(p12, p13); OP(p13, p14); OP(p16, p17); OP(p15, p16); OP(p16, p17); OP(p12, p15); OP(p14, p17); OP(p14, p15); OP(p13, p16); OP(p13, p14); OP(p15, p16); OP(p19, p20); OP(p18, p19); OP(p19, p20); OP(p21, p22); OP(p23, p24); OP(p21, p23); OP(p22, p24); OP(p22, p23); OP(p18, p21); OP(p20, p23); OP(p20, p21); OP(p19, p22); OP(p22, p24); OP(p19, p20); OP(p21, p22); OP(p23, p24); OP(p12, p18); OP(p16, p22); OP(p16, p18); OP(p14, p20); OP(p20, p24); OP(p14, p16); OP(p18, p20); OP(p22, p24); OP(p13, p19); OP(p17, p23); OP(p17, p19); OP(p15, p21); OP(p15, p17); OP(p19, p21); OP(p13, p14); OP(p15, p16); OP(p17, p18); OP(p19, p20); OP(p21, p22); OP(p23, p24); OP(p0, p12); OP(p8, p20); OP(p8, p12); OP(p4, p16); OP(p16, p24); OP(p12, p16); OP(p2, p14); OP(p10, p22); OP(p10, p14); OP(p6, p18); OP(p6, p10); OP(p10, p12); OP(p1, p13); OP(p9, p21); OP(p9, p13); OP(p5, p17); OP(p13, p17); OP(p3, p15); OP(p11, p23); OP(p11, p15); OP(p7, p19); OP(p7, p11); OP(p11, p13); OP(p11, p12); int dst_index = mad24( gy+k, dstStep, xdst); STORE4(p12, dst_index); c0=c5; c1=c6; c2=c7; c3=c8; c4=c9; c5=c10; c6=c11; c7=c12; c8=c13; c9=c14; c10=c15; c11=c16; c12=c17; c13=c18; c14=c19; c15=c20; c16=c21; c17=c22; c18=c23; c19=c24; } } #endif __kernel void medianFilter3(__global const uchar * srcptr, int src_step, int src_offset, __global uchar * dstptr, int dst_step, int dst_offset, int dst_rows, int dst_cols) { __local T data[18][18]; int x = get_local_id(0); int y = get_local_id(1); int gx = get_global_id(0); int gy = get_global_id(1); int dx = gx - x - 1; int dy = gy - y - 1; int id = min(mad24(x, 16, y), 9*18-1); int dr = id / 18; int dc = id % 18; int c = clamp(dx + dc, 0, dst_cols - 1); int r = clamp(dy + dr, 0, dst_rows - 1); int index1 = mad24(r, src_step, mad24(c, TSIZE, src_offset)); r = clamp(dy + dr + 9, 0, dst_rows - 1); int index9 = mad24(r, src_step, mad24(c, TSIZE, src_offset)); data[dr][dc] = loadpix(srcptr + index1); data[dr+9][dc] = loadpix(srcptr + index9); barrier(CLK_LOCAL_MEM_FENCE); T p0 = data[y][x], p1 = data[y][(x+1)], p2 = data[y][(x+2)]; T p3 = data[y+1][x], p4 = data[y+1][(x+1)], p5 = data[y+1][(x+2)]; T p6 = data[y+2][x], p7 = data[y+2][(x+1)], p8 = data[y+2][(x+2)]; T mid; OP(p1, p2); OP(p4, p5); OP(p7, p8); OP(p0, p1); OP(p3, p4); OP(p6, p7); OP(p1, p2); OP(p4, p5); OP(p7, p8); OP(p0, p3); OP(p5, p8); OP(p4, p7); OP(p3, p6); OP(p1, p4); OP(p2, p5); OP(p4, p7); OP(p4, p2); OP(p6, p4); OP(p4, p2); int dst_index = mad24( gy, dst_step, mad24(gx, TSIZE, dst_offset)); if (gy < dst_rows && gx < dst_cols) storepix(p4, dstptr + dst_index); } __kernel void medianFilter5(__global const uchar * srcptr, int src_step, int src_offset, __global uchar * dstptr, int dst_step, int dst_offset, int dst_rows, int dst_cols) { __local T data[20][20]; int x = get_local_id(0); int y = get_local_id(1); int gx = get_global_id(0); int gy = get_global_id(1); int dx = gx - x - 2; int dy = gy - y - 2; int id = min(mad24(x, 16, y), 10*20-1); int dr = id / 20; int dc = id % 20; int c = clamp(dx + dc, 0, dst_cols - 1); int r = clamp(dy + dr, 0, dst_rows - 1); int index1 = mad24(r, src_step, mad24(c, TSIZE, src_offset)); r = clamp(dy + dr + 10, 0, dst_rows - 1); int index10 = mad24(r, src_step, mad24(c, TSIZE, src_offset)); data[dr][dc] = loadpix(srcptr + index1); data[dr+10][dc] = loadpix(srcptr + index10); barrier(CLK_LOCAL_MEM_FENCE); T p0 = data[y][x], p1 = data[y][x+1], p2 = data[y][x+2], p3 = data[y][x+3], p4 = data[y][x+4]; T p5 = data[y+1][x], p6 = data[y+1][x+1], p7 = data[y+1][x+2], p8 = data[y+1][x+3], p9 = data[y+1][x+4]; T p10 = data[y+2][x], p11 = data[y+2][x+1], p12 = data[y+2][x+2], p13 = data[y+2][x+3], p14 = data[y+2][x+4]; T p15 = data[y+3][x], p16 = data[y+3][x+1], p17 = data[y+3][x+2], p18 = data[y+3][x+3], p19 = data[y+3][x+4]; T p20 = data[y+4][x], p21 = data[y+4][x+1], p22 = data[y+4][x+2], p23 = data[y+4][x+3], p24 = data[y+4][x+4]; T mid; OP(p1, p2); OP(p0, p1); OP(p1, p2); OP(p4, p5); OP(p3, p4); OP(p4, p5); OP(p0, p3); OP(p2, p5); OP(p2, p3); OP(p1, p4); OP(p1, p2); OP(p3, p4); OP(p7, p8); OP(p6, p7); OP(p7, p8); OP(p10, p11); OP(p9, p10); OP(p10, p11); OP(p6, p9); OP(p8, p11); OP(p8, p9); OP(p7, p10); OP(p7, p8); OP(p9, p10); OP(p0, p6); OP(p4, p10); OP(p4, p6); OP(p2, p8); OP(p2, p4); OP(p6, p8); OP(p1, p7); OP(p5, p11); OP(p5, p7); OP(p3, p9); OP(p3, p5); OP(p7, p9); OP(p1, p2); OP(p3, p4); OP(p5, p6); OP(p7, p8); OP(p9, p10); OP(p13, p14); OP(p12, p13); OP(p13, p14); OP(p16, p17); OP(p15, p16); OP(p16, p17); OP(p12, p15); OP(p14, p17); OP(p14, p15); OP(p13, p16); OP(p13, p14); OP(p15, p16); OP(p19, p20); OP(p18, p19); OP(p19, p20); OP(p21, p22); OP(p23, p24); OP(p21, p23); OP(p22, p24); OP(p22, p23); OP(p18, p21); OP(p20, p23); OP(p20, p21); OP(p19, p22); OP(p22, p24); OP(p19, p20); OP(p21, p22); OP(p23, p24); OP(p12, p18); OP(p16, p22); OP(p16, p18); OP(p14, p20); OP(p20, p24); OP(p14, p16); OP(p18, p20); OP(p22, p24); OP(p13, p19); OP(p17, p23); OP(p17, p19); OP(p15, p21); OP(p15, p17); OP(p19, p21); OP(p13, p14); OP(p15, p16); OP(p17, p18); OP(p19, p20); OP(p21, p22); OP(p23, p24); OP(p0, p12); OP(p8, p20); OP(p8, p12); OP(p4, p16); OP(p16, p24); OP(p12, p16); OP(p2, p14); OP(p10, p22); OP(p10, p14); OP(p6, p18); OP(p6, p10); OP(p10, p12); OP(p1, p13); OP(p9, p21); OP(p9, p13); OP(p5, p17); OP(p13, p17); OP(p3, p15); OP(p11, p23); OP(p11, p15); OP(p7, p19); OP(p7, p11); OP(p11, p13); OP(p11, p12); int dst_index = mad24(gy, dst_step, mad24(gx, TSIZE, dst_offset)); if (gy < dst_rows && gx < dst_cols) storepix(p12, dstptr + dst_index); } f082457348bfbcb2e2de3014f46093a8match_template#if cn != 3 #define loadpix(addr) *(__global const T *)(addr) #define TSIZE (int)sizeof(T) #else #define loadpix(addr) vload3(0, (__global const T1 *)(addr)) #define TSIZE ((int)sizeof(T1)*3) #endif #define SQSUMS_PTR(ox, oy) mad24(y + oy, src_sqsums_step, mad24(x + ox, cn, src_sqsums_offset)) #define SUMS_PTR(ox, oy) mad24(y + oy, src_sums_step, mad24(x + ox, cn, src_sums_offset)) #define SUMS(ox, oy) mad24(y+oy, src_sums_step, mad24(x+ox, (int)sizeof(T1)*cn, src_sums_offset)) #define SQ_SUMS(ox, oy) mad24(y+oy, src_sqsums_step, mad24(x+ox, (int)sizeof(T1)*cn, src_sqsums_offset)) inline float normAcc(float num, float denum) { if (fabs(num) < denum) return num / denum; if (fabs(num) < denum * 1.125f) return num > 0 ? 1 : -1; return 0; } inline float normAcc_SQDIFF(float num, float denum) { if (fabs(num) < denum) return num / denum; if (fabs(num) < denum * 1.125f) return num > 0 ? 1 : -1; return 1; } #define noconvert #if cn == 1 #define convertToDT(value) (float)(value) #elif cn == 2 #define convertToDT(value) (float)(value.x + value.y) #elif cn == 3 #define convertToDT(value) (float)(value.x + value.y + value.z) #elif cn == 4 #define convertToDT(value) (float)(value.x + value.y + value.z + value.w) #else #error "cn should be 1-4" #endif #ifdef CALC_SUM __kernel void calcSum(__global const uchar * srcptr, int src_step, int src_offset, int cols, int total, __global float * dst) { int lid = get_local_id(0), id = get_global_id(0); __local WT localmem[WGS2_ALIGNED]; WT accumulator = (WT)(0), tmp; for ( ; id < total; id += WGS) { int src_index = mad24(id / cols, src_step, mad24(id % cols, TSIZE, src_offset)); T src = loadpix(srcptr + src_index); tmp = convertToWT(src); accumulator = mad(tmp, tmp, accumulator); } if (lid < WGS2_ALIGNED) localmem[lid] = accumulator; barrier(CLK_LOCAL_MEM_FENCE); if (lid >= WGS2_ALIGNED && total >= WGS2_ALIGNED) localmem[lid - WGS2_ALIGNED] += accumulator; barrier(CLK_LOCAL_MEM_FENCE); for (int lsize = WGS2_ALIGNED >> 1; lsize > 0; lsize >>= 1) { if (lid < lsize) { int lid2 = lsize + lid; localmem[lid] += localmem[lid2]; } barrier(CLK_LOCAL_MEM_FENCE); } if (lid == 0) dst[0] = convertToDT(localmem[0]); } #elif defined FIRST_CHANNEL __kernel void extractFirstChannel( const __global uchar* img, int img_step, int img_offset, __global uchar* res, int res_step, int res_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1)*PIX_PER_WI_Y; if(x < cols ) { #pragma unroll for (int cy=0; cy < PIX_PER_WI_Y && y < rows; ++cy, ++y) { T1 image = *(__global const T1*)(img + mad24(y, img_step, mad24(x, (int)sizeof(T1)*cn, img_offset)));; int res_idx = mad24(y, res_step, mad24(x, (int)sizeof(float), res_offset)); *(__global float *)(res + res_idx) = image; } } } #elif defined CCORR #if cn==1 && PIX_PER_WI_X==4 __kernel void matchTemplate_Naive_CCORR(__global const uchar * srcptr, int src_step, int src_offset, __global const uchar * templateptr, int template_step, int template_offset, int template_rows, int template_cols, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols) { int x0 = get_global_id(0)*PIX_PER_WI_X; int y = get_global_id(1); if (y < dst_rows) { if (x0 + PIX_PER_WI_X <= dst_cols) { WT sum = (WT)(0); int ind = mad24(y, src_step, mad24(x0, (int)sizeof(T1), src_offset)); __global const T1 * template = (__global const T1*)(templateptr + template_offset); for (int i = 0; i < template_rows; ++i) { for (int j = 0; j < template_cols; ++j) { T temp = (T)(template[j]); T src = vload4(0, (__global const T1*)(srcptr + ind + j*(int)sizeof(T1))); sum = mad(convertToWT(src), convertToWT(temp), sum); } ind += src_step; template = (__global const T1 *)((__global const uchar *)template + template_step); } T temp = (T)(template[0]); int dst_idx = mad24(y, dst_step, mad24(x0, (int)sizeof(float), dst_offset)); *(__global float4 *)(dst + dst_idx) = convert_float4(sum); } else { WT1 sum [PIX_PER_WI_X]; #pragma unroll for (int i=0; i < PIX_PER_WI_X; i++) sum[i] = 0; __global const T1 * src = (__global const T1 *)(srcptr + mad24(y, src_step, mad24(x0, (int)sizeof(T1), src_offset))); __global const T1 * template = (__global const T1 *)(templateptr + template_offset); for (int i = 0; i < template_rows; ++i) { for (int j = 0; j < template_cols; ++j) { #pragma unroll for (int cx=0, x = x0; cx < PIX_PER_WI_X && x < dst_cols; ++cx, ++x) { sum[cx] = mad(convertToWT1(src[j+cx]), convertToWT1(template[j]), sum[cx]); } } src = (__global const T1 *)((__global const uchar *)src + src_step); template = (__global const T1 *)((__global const uchar *)template + template_step); } #pragma unroll for (int cx=0; cx < PIX_PER_WI_X && x0 < dst_cols; ++cx, ++x0) { int dst_idx = mad24(y, dst_step, mad24(x0, (int)sizeof(float), dst_offset)); *(__global float *)(dst + dst_idx) = convertToDT(sum[cx]); } } } } #else __kernel void matchTemplate_Naive_CCORR(__global const uchar * srcptr, int src_step, int src_offset, __global const uchar * templateptr, int template_step, int template_offset, int template_rows, int template_cols, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols) { int x = get_global_id(0); int y = get_global_id(1); if (x < dst_cols && y < dst_rows) { WT sum = (WT)(0); for (int i = 0; i < template_rows; ++i) { for (int j = 0; j < template_cols; ++j) { T src = loadpix(srcptr + mad24(y+i, src_step, mad24(x+j, TSIZE, src_offset))); T template = loadpix(templateptr + mad24(i, template_step, mad24(j, TSIZE, template_offset))); sum = mad(convertToWT(src), convertToWT(template), sum); } } int dst_idx = mad24(y, dst_step, mad24(x, (int)sizeof(float), dst_offset)); *(__global float *)(dst + dst_idx) = convertToDT(sum); } } #endif #elif defined CCORR_NORMED __kernel void matchTemplate_CCORR_NORMED(__global const uchar * src_sqsums, int src_sqsums_step, int src_sqsums_offset, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols, int template_rows, int template_cols, __global const float * template_sqsum) { int x = get_global_id(0); int y = get_global_id(1); if (x < dst_cols && y < dst_rows) { __global const float * sqsum = (__global const float *)(src_sqsums); src_sqsums_step /= sizeof(float); src_sqsums_offset /= sizeof(float); float image_sqsum_ = (float)(sqsum[SQSUMS_PTR(template_cols, template_rows)] - sqsum[SQSUMS_PTR(template_cols, 0)] - sqsum[SQSUMS_PTR(0, template_rows)] + sqsum[SQSUMS_PTR(0, 0)]); int dst_idx = mad24(y, dst_step, mad24(x, (int)sizeof(float), dst_offset)); __global float * dstult = (__global float *)(dst + dst_idx); *dstult = normAcc(*dstult, sqrt(image_sqsum_ * template_sqsum[0])); } } #elif defined SQDIFF __kernel void matchTemplate_Naive_SQDIFF(__global const uchar * srcptr, int src_step, int src_offset, __global const uchar * templateptr, int template_step, int template_offset, int template_rows, int template_cols, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols) { int x = get_global_id(0); int y = get_global_id(1); if (x < dst_cols && y < dst_rows) { WT sum = (WT)(0), value; for (int i = 0; i < template_rows; ++i) { for (int j = 0; j < template_cols; ++j) { T src = loadpix(srcptr + mad24(y+i, src_step, mad24(x+j, TSIZE, src_offset))); T template = loadpix(templateptr + mad24(i, template_step, mad24(j, TSIZE, template_offset))); value = convertToWT(src) - convertToWT(template); sum = mad(value, value, sum); } } int dst_idx = mad24(y, dst_step, mad24(x, (int)sizeof(float), dst_offset)); *(__global float *)(dst + dst_idx) = convertToDT(sum); } } #elif defined SQDIFF_PREPARED __kernel void matchTemplate_Prepared_SQDIFF(__global const uchar * src_sqsums, int src_sqsums_step, int src_sqsums_offset, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols, int template_rows, int template_cols, __global const float * template_sqsum) { int x = get_global_id(0); int y = get_global_id(1); if (x < dst_cols && y < dst_rows) { src_sqsums_step /= sizeof(float); src_sqsums_offset /= sizeof(float); __global const float * sqsum = (__global const float *)(src_sqsums); float image_sqsum_ = (float)( (sqsum[SQSUMS_PTR(template_cols, template_rows)] - sqsum[SQSUMS_PTR(template_cols, 0)]) - (sqsum[SQSUMS_PTR(0, template_rows)] - sqsum[SQSUMS_PTR(0, 0)])); float template_sqsum_value = template_sqsum[0]; int dst_idx = mad24(y, dst_step, mad24(x, (int)sizeof(float), dst_offset)); __global float * dstult = (__global float *)(dst + dst_idx); *dstult = image_sqsum_ - 2.0f * dstult[0] + template_sqsum_value; } } #elif defined SQDIFF_NORMED __kernel void matchTemplate_SQDIFF_NORMED(__global const uchar * src_sqsums, int src_sqsums_step, int src_sqsums_offset, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols, int template_rows, int template_cols, __global const float * template_sqsum) { int x = get_global_id(0); int y = get_global_id(1); if (x < dst_cols && y < dst_rows) { src_sqsums_step /= sizeof(float); src_sqsums_offset /= sizeof(float); __global const float * sqsum = (__global const float *)(src_sqsums); float image_sqsum_ = (float)( (sqsum[SQSUMS_PTR(template_cols, template_rows)] - sqsum[SQSUMS_PTR(template_cols, 0)]) - (sqsum[SQSUMS_PTR(0, template_rows)] - sqsum[SQSUMS_PTR(0, 0)])); float template_sqsum_value = template_sqsum[0]; int dst_idx = mad24(y, dst_step, mad24(x, (int)sizeof(float), dst_offset)); __global float * dstult = (__global float *)(dst + dst_idx); *dstult = normAcc_SQDIFF(image_sqsum_ - 2.0f * dstult[0] + template_sqsum_value, sqrt(image_sqsum_ * template_sqsum_value)); } } #elif defined CCOEFF #if cn == 1 __kernel void matchTemplate_Prepared_CCOEFF(__global const uchar * src_sums, int src_sums_step, int src_sums_offset, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols, int template_rows, int template_cols, float template_sum) { int x = get_global_id(0); int y = get_global_id(1); if (x < dst_cols && y < dst_rows) { __global const T* sum = (__global const T*)(src_sums + mad24(y, src_sums_step, mad24(x, (int)sizeof(T), src_sums_offset))); int step = src_sums_step/(int)sizeof(T); T image_sum = (T)(0), value; value = (T)(sum[mad24(template_rows, step, template_cols)] - sum[mad24(template_rows, step, 0)] - sum[template_cols] + sum[0]); image_sum = mad(value, template_sum , image_sum); int dst_idx = mad24(y, dst_step, mad24(x, (int)sizeof(float), dst_offset)); *(__global float *)(dst + dst_idx) -= convertToDT(image_sum); } } #elif cn==3 __kernel void matchTemplate_Prepared_CCOEFF(__global const uchar * src_sums, int src_sums_step, int src_sums_offset, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols, int template_rows, int template_cols, float4 template_sum) { int x = get_global_id(0); int y = get_global_id(1); if (x < dst_cols && y < dst_rows) { T image_sum = (T)(0), value, temp_sum; temp_sum.x = template_sum.x; temp_sum.y = template_sum.y; temp_sum.z = template_sum.z; value = vload3(0, (__global const T1 *)(src_sums + SUMS(template_cols, template_rows))); value -= vload3(0, (__global const T1 *)(src_sums + SUMS(0, template_rows))); value -= vload3(0, (__global const T1 *)(src_sums + SUMS(template_cols, 0))); value += vload3(0, (__global const T1 *)(src_sums + SUMS(0, 0))); image_sum = mad(value, temp_sum , 0); int dst_idx = mad24(y, dst_step, mad24(x, (int)sizeof(float), dst_offset)); *(__global float *)(dst + dst_idx) -= convertToDT(image_sum); } } #elif (cn==2 || cn==4) __kernel void matchTemplate_Prepared_CCOEFF(__global const uchar * src_sums, int src_sums_step, int src_sums_offset, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols, int template_rows, int template_cols, float4 template_sum) { int x = get_global_id(0); int y = get_global_id(1); if (x < dst_cols && y < dst_rows) { __global const T* sum = (__global const T*)(src_sums + mad24(y, src_sums_step, mad24(x, (int)sizeof(T), src_sums_offset))); int step = src_sums_step/(int)sizeof(T); T image_sum = (T)(0), value, temp_sum; #if cn==2 temp_sum.x = template_sum.x; temp_sum.y = template_sum.y; #else temp_sum = template_sum; #endif value = (sum[mad24(template_rows, step, template_cols)] - sum[mad24(template_rows, step, 0)] - sum[template_cols] + sum[0]); image_sum = mad(value, temp_sum , image_sum); int dst_idx = mad24(y, dst_step, mad24(x, (int)sizeof(float), dst_offset)); *(__global float *)(dst + dst_idx) -= convertToDT(image_sum); } } #else #error "cn should be 1-4" #endif #elif defined CCOEFF_NORMED #if cn == 1 __kernel void matchTemplate_CCOEFF_NORMED(__global const uchar * src_sums, int src_sums_step, int src_sums_offset, __global const uchar * src_sqsums, int src_sqsums_step, int src_sqsums_offset, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols, int t_rows, int t_cols, float weight, float template_sum, float template_sqsum) { int x = get_global_id(0); int y = get_global_id(1); float sum_[2]; float sqsum_[2]; if (x < dst_cols && y < dst_rows) { int step = src_sums_step/(int)sizeof(T); __global const T* sum = (__global const T*)(src_sums + mad24(y, src_sums_step, mad24(x, (int)sizeof(T), src_sums_offset))); __global const T* sqsum = (__global const T*)(src_sqsums + mad24(y, src_sqsums_step, mad24(x, (int)sizeof(T), src_sqsums_offset))); T value_sum = sum[mad24(t_rows, step, t_cols)] - sum[mad24(t_rows, step, 0)] - sum[t_cols] + sum[0]; T value_sqsum = sqsum[mad24(t_rows, step, t_cols)] - sqsum[mad24(t_rows, step, 0)] - sqsum[t_cols] + sqsum[0]; float num = convertToDT(mad(value_sum, template_sum, (float)0)); value_sqsum -= weight * value_sum * value_sum; float denum = sqrt(mad(template_sqsum, convertToDT(value_sqsum), (float)0)); int dst_idx = mad24(y, dst_step, mad24(x, (int)sizeof(float), dst_offset)); __global float * dstult = (__global float *)(dst+dst_idx); *dstult = normAcc((*dstult) - num, denum); } } #elif cn==3 __kernel void matchTemplate_CCOEFF_NORMED(__global const uchar * src_sums, int src_sums_step, int src_sums_offset, __global const uchar * src_sqsums, int src_sqsums_step, int src_sqsums_offset, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols, int t_rows, int t_cols, float weight, float4 template_sum, float template_sqsum) { int x = get_global_id(0); int y = get_global_id(1); if (x < dst_cols && y < dst_rows) { int step = src_sums_step/(int)sizeof(T); T temp_sum, value_sum, value_sqsum; temp_sum.x = template_sum.x; temp_sum.y = template_sum.y; temp_sum.z = template_sum.z; value_sum = vload3(0, (__global const T1 *)(src_sums + SUMS(t_cols, t_rows))); value_sum -= vload3(0, (__global const T1 *)(src_sums + SUMS(0, t_rows))); value_sum -= vload3(0, (__global const T1 *)(src_sums + SUMS(t_cols, 0))); value_sum += vload3(0, (__global const T1 *)(src_sums + SUMS(0, 0))); value_sqsum = vload3(0, (__global const T1 *)(src_sqsums + SQ_SUMS(t_cols, t_rows))); value_sqsum -= vload3(0, (__global const T1 *)(src_sqsums + SQ_SUMS(0, t_rows))); value_sqsum -= vload3(0, (__global const T1 *)(src_sqsums + SQ_SUMS(t_cols, 0))); value_sqsum += vload3(0, (__global const T1 *)(src_sqsums + SQ_SUMS(0, 0))); float num = convertToDT(mad(value_sum, temp_sum, 0)); value_sqsum -= weight * value_sum * value_sum; float denum = sqrt(mad(template_sqsum, convertToDT(value_sqsum), (float)0)); int dst_idx = mad24(y, dst_step, mad24(x, (int)sizeof(float), dst_offset)); __global float * dstult = (__global float *)(dst+dst_idx); *dstult = normAcc((*dstult) - num, denum); } } #elif (cn==2 || cn==4) __kernel void matchTemplate_CCOEFF_NORMED(__global const uchar * src_sums, int src_sums_step, int src_sums_offset, __global const uchar * src_sqsums, int src_sqsums_step, int src_sqsums_offset, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols, int t_rows, int t_cols, float weight, float4 template_sum, float template_sqsum) { int x = get_global_id(0); int y = get_global_id(1); if (x < dst_cols && y < dst_rows) { int step = src_sums_step/(int)sizeof(T); T temp_sum; __global const T* sum = (__global const T*)(src_sums + mad24(y, src_sums_step, mad24(x, (int)sizeof(T), src_sums_offset))); __global const T* sqsum = (__global const T*)(src_sqsums + mad24(y, src_sqsums_step, mad24(x, (int)sizeof(T), src_sqsums_offset))); T value_sum = sum[mad24(t_rows, step, t_cols)] - sum[mad24(t_rows, step, 0)] - sum[t_cols] + sum[0]; T value_sqsum = sqsum[mad24(t_rows, step, t_cols)] - sqsum[mad24(t_rows, step, 0)] - sqsum[t_cols] + sqsum[0]; #if cn==2 temp_sum.x = template_sum.x; temp_sum.y = template_sum.y; #else temp_sum = template_sum; #endif float num = convertToDT(mad(value_sum, temp_sum, 0)); value_sqsum -= weight * value_sum * value_sum; float denum = sqrt(mad(template_sqsum, convertToDT(value_sqsum), (float)0)); int dst_idx = mad24(y, dst_step, mad24(x, (int)sizeof(float), dst_offset)); __global float * dstult = (__global float *)(dst+dst_idx); *dstult = normAcc((*dstult) - num, denum); } } #else #error "cn should be 1-4" #endif #endif b1f65f1ba4717552e461b432297031d6#define CV_2PI 6.283185307179586476925286766559 #ifdef ForwardMap __kernel void computeAngleRadius(__global float2* cp_sp, __global float* r, float m, float PI2_height, unsigned width, unsigned height) { unsigned gid = get_global_id(0); if (gid < height) { float angle = gid * PI2_height; float2 angle_tri = (float2)(cos(angle), sin(angle)); cp_sp[gid] = angle_tri; } if (gid < width) { r[gid] = exp(gid/m)-1.0f; } } __kernel void logPolar(__global float* mx, __global float* my, __global float2* cp_sp, __global float* r, float cx, float cy, unsigned width, unsigned height) { __local float l_r[MEM_SIZE]; __local float2 l_double[MEM_SIZE]; unsigned rho = get_global_id(0); unsigned phi = get_global_id(1); unsigned local_0 = get_local_id(0); unsigned local_1 = get_local_id(1); if (local_1 == 0) { unsigned temp_phi = phi + local_0; if (temp_phi < height) { l_double[local_0] = cp_sp[temp_phi]; } } if (local_1 == 1) { if (rho < width) { l_r[local_0] = r[rho]; } } barrier(CLK_LOCAL_MEM_FENCE); if (rho= (r_edge) | (_y)<0 | (_y) >= (t_edge) ? (const_v) : SRC((_x),(_y)) #else #define ELEM(_x,_y,r_edge,t_edge,const_v) SRC((_x),(_y)) #endif #define DIG(a) a, __constant WT1 mat_kernelX[] = { KERNEL_MATRIX_X }; __constant WT1 mat_kernelY[] = { KERNEL_MATRIX_Y }; __kernel void laplacian(__global uchar* Src, int src_step, int srcOffsetX, int srcOffsetY, int height, int width, __global uchar* Dst, int dst_step, int dst_offset, int dst_rows, int dst_cols, WT1 scale, WT1 delta) { __local WT lsmem[BLK_Y + 2 * RADIUS][BLK_X + 2 * RADIUS]; __local WT lsmemDy1[BLK_Y][BLK_X + 2 * RADIUS]; __local WT lsmemDy2[BLK_Y][BLK_X + 2 * RADIUS]; int lix = get_local_id(0); int liy = get_local_id(1); int x = get_global_id(0); int srcX = x + srcOffsetX - RADIUS; int clocY = liy; do { int yb = clocY + srcOffsetY - RADIUS; EXTRAPOLATE(yb, (height)); int clocX = lix; int cSrcX = srcX; do { int xb = cSrcX; EXTRAPOLATE(xb,(width)); lsmem[clocY][clocX] = ELEM(xb, yb, (width), (height), 0 ); clocX += BLK_X; cSrcX += BLK_X; } while(clocX < BLK_X+(RADIUS*2)); clocY += BLK_Y; } while (clocY < BLK_Y+(RADIUS*2)); barrier(CLK_LOCAL_MEM_FENCE); WT scale_v = (WT)scale; WT delta_v = (WT)delta; for (int y = 0; y < dst_rows; y+=BLK_Y) { int i, clocX = lix; WT sum1 = (WT) 0; WT sum2 = (WT) 0; do { sum1 = (WT) 0; sum2 = (WT) 0; for (i=0; i<=2*RADIUS; i++) { sum1 = mad(lsmem[liy + i][clocX], mat_kernelY[i], sum1); sum2 = mad(lsmem[liy + i][clocX], mat_kernelX[i], sum2); } lsmemDy1[liy][clocX] = sum1; lsmemDy2[liy][clocX] = sum2; clocX += BLK_X; } while(clocX < BLK_X+(RADIUS*2)); barrier(CLK_LOCAL_MEM_FENCE); if ((x < dst_cols) && (y + liy < dst_rows)) { sum1 = (WT) 0; sum2 = (WT) 0; for (i=0; i<=2*RADIUS; i++) { sum1 = mad(lsmemDy1[liy][lix+i], mat_kernelX[i], sum1); sum2 = mad(lsmemDy2[liy][lix+i], mat_kernelY[i], sum2); } WT sum = mad(scale_v, (sum1 + sum2), delta_v); storepix(convertToDT(sum), Dst + mad24(y + liy, dst_step, mad24(x, DSTSIZE, dst_offset))); } for (int i = liy * BLK_X + lix; i < (RADIUS*2) * (BLK_X+(RADIUS*2)); i += BLK_X * BLK_Y) { int clocX = i % (BLK_X+(RADIUS*2)); int clocY = i / (BLK_X+(RADIUS*2)); lsmem[clocY][clocX] = lsmem[clocY + BLK_Y][clocX]; } barrier(CLK_LOCAL_MEM_FENCE); int yb = y + liy + BLK_Y + srcOffsetY + RADIUS; EXTRAPOLATE(yb, (height)); clocX = lix; int cSrcX = x + srcOffsetX - RADIUS; do { int xb = cSrcX; EXTRAPOLATE(xb,(width)); lsmem[liy + 2*RADIUS][clocX] = ELEM(xb, yb, (width), (height), 0 ); clocX += BLK_X; cSrcX += BLK_X; } while(clocX < BLK_X+(RADIUS*2)); barrier(CLK_LOCAL_MEM_FENCE); } } #endif 3ce3fc1a1c2e6be3a8fd0d2f51afeaf1laplacian3#define DIG(a) a, __constant float kx[] = { KERNEL_MATRIX }; #define OP(delta, x) (convert_float16(arr[delta + x]) * kx[x]) __kernel void laplacian3_8UC1_cols16_rows2(__global const uint* src, int src_step, __global uint* dst, int dst_step, int rows, int cols, float delta) { int block_x = get_global_id(0); int y = get_global_id(1) * 2; int ssx, dsx; if ((block_x * 16) >= cols || y >= rows) return; uint4 line[4]; uint4 line_out[2]; uchar a; uchar16 b; uchar c; uchar d; uchar16 e; uchar f; uchar g; uchar16 h; uchar i; uchar j; uchar16 k; uchar l; ssx = dsx = 1; int src_index = block_x * 4 * ssx + (y - 1) * (src_step / 4); line[1] = vload4(0, src + src_index + (src_step / 4)); line[2] = vload4(0, src + src_index + 2 * (src_step / 4)); #ifdef BORDER_CONSTANT line[0] = (y == 0) ? (uint4)0 : vload4(0, src + src_index); line[3] = (y == (rows - 2)) ? (uint4)0 : vload4(0, src + src_index + 3 * (src_step / 4)); #elif defined BORDER_REFLECT_101 line[0] = (y == 0) ? line[2] : vload4(0, src + src_index); line[3] = (y == (rows - 2)) ? line[1] : vload4(0, src + src_index + 3 * (src_step / 4)); #elif defined (BORDER_REPLICATE) || defined(BORDER_REFLECT) line[0] = (y == 0) ? line[1] : vload4(0, src + src_index); line[3] = (y == (rows - 2)) ? line[2] : vload4(0, src + src_index + 3 * (src_step / 4)); #endif __global uchar *src_p = (__global uchar *)src; src_index = block_x * 16 * ssx + (y - 1) * src_step; bool line_end = ((block_x + 1) * 16 == cols); b = as_uchar16(line[0]); e = as_uchar16(line[1]); h = as_uchar16(line[2]); k = as_uchar16(line[3]); #ifdef BORDER_CONSTANT a = (block_x == 0 || y == 0) ? 0 : src_p[src_index - 1]; c = (line_end || y == 0) ? 0 : src_p[src_index + 16]; d = (block_x == 0) ? 0 : src_p[src_index + src_step - 1]; f = line_end ? 0 : src_p[src_index + src_step + 16]; g = (block_x == 0) ? 0 : src_p[src_index + 2 * src_step - 1]; i = line_end ? 0 : src_p[src_index + 2 * src_step + 16]; j = (block_x == 0 || y == (rows - 2)) ? 0 : src_p[src_index + 3 * src_step - 1]; l = (line_end || y == (rows - 2))? 0 : src_p[src_index + 3 * src_step + 16]; #elif defined BORDER_REFLECT_101 int offset; offset = (y == 0) ? (2 * src_step) : 0; a = (block_x == 0) ? src_p[src_index + offset + 1] : src_p[src_index + offset - 1]; c = line_end ? src_p[src_index + offset + 14] : src_p[src_index + offset + 16]; d = (block_x == 0) ? src_p[src_index + src_step + 1] : src_p[src_index + src_step - 1]; f = line_end ? src_p[src_index + src_step + 14] : src_p[src_index + src_step + 16]; g = (block_x == 0) ? src_p[src_index + 2 * src_step + 1] : src_p[src_index + 2 * src_step - 1]; i = line_end ? src_p[src_index + 2 * src_step + 14] : src_p[src_index + 2 * src_step + 16]; offset = (y == (rows - 2)) ? (1 * src_step) : (3 * src_step); j = (block_x == 0) ? src_p[src_index + offset + 1] : src_p[src_index + offset - 1]; l = line_end ? src_p[src_index + offset + 14] : src_p[src_index + offset + 16]; #elif defined (BORDER_REPLICATE) || defined(BORDER_REFLECT) int offset; offset = (y == 0) ? (1 * src_step) : 0; a = (block_x == 0) ? src_p[src_index + offset] : src_p[src_index + offset - 1]; c = line_end ? src_p[src_index + offset + 15] : src_p[src_index + offset + 16]; d = (block_x == 0) ? src_p[src_index + src_step] : src_p[src_index + src_step - 1]; f = line_end ? src_p[src_index + src_step + 15] : src_p[src_index + src_step + 16]; g = (block_x == 0) ? src_p[src_index + 2 * src_step] : src_p[src_index + 2 * src_step - 1]; i = line_end ? src_p[src_index + 2 * src_step + 15] : src_p[src_index + 2 * src_step + 16]; offset = (y == (rows - 2)) ? (2 * src_step) : (3 * src_step); j = (block_x == 0) ? src_p[src_index + offset] : src_p[src_index + offset - 1]; l = line_end ? src_p[src_index + offset + 15] : src_p[src_index + offset + 16]; #endif uchar16 arr[12]; float16 sum[2]; arr[0] = (uchar16)(a, b.s0123, b.s456789ab, b.scde); arr[1] = b; arr[2] = (uchar16)(b.s123, b.s4567, b.s89abcdef, c); arr[3] = (uchar16)(d, e.s0123, e.s456789ab, e.scde); arr[4] = e; arr[5] = (uchar16)(e.s123, e.s4567, e.s89abcdef, f); arr[6] = (uchar16)(g, h.s0123, h.s456789ab, h.scde); arr[7] = h; arr[8] = (uchar16)(h.s123, h.s4567, h.s89abcdef, i); arr[9] = (uchar16)(j, k.s0123, k.s456789ab, k.scde); arr[10] = k; arr[11] = (uchar16)(k.s123, k.s4567, k.s89abcdef, l); sum[0] = OP(0, 0) + OP(0, 1) + OP(0, 2) + OP(0, 3) + OP(0, 4) + OP(0, 5) + OP(0, 6) + OP(0, 7) + OP(0, 8); sum[1] = OP(3, 0) + OP(3, 1) + OP(3, 2) + OP(3, 3) + OP(3, 4) + OP(3, 5) + OP(3, 6) + OP(3, 7) + OP(3, 8); line_out[0] = as_uint4(convert_uchar16_sat_rte(sum[0] + delta)); line_out[1] = as_uint4(convert_uchar16_sat_rte(sum[1] + delta)); int dst_index = block_x * 4 * dsx + y * (dst_step / 4); vstore4(line_out[0], 0, dst + dst_index); vstore4(line_out[1], 0, dst + dst_index + (dst_step / 4)); } c7b7eb4f034bd214e42f2dccc9ffd970integral_sum#ifdef DOUBLE_SUPPORT #ifdef cl_amd_fp64 #pragma OPENCL EXTENSION cl_amd_fp64:enable #elif defined (cl_khr_fp64) #pragma OPENCL EXTENSION cl_khr_fp64:enable #endif #endif #ifndef LOCAL_SUM_SIZE #define LOCAL_SUM_SIZE 16 #endif #define LOCAL_SUM_STRIDE (LOCAL_SUM_SIZE + 1) kernel void integral_sum_cols(__global const uchar *src_ptr, int src_step, int src_offset, int rows, int cols, __global uchar *buf_ptr, int buf_step, int buf_offset #ifdef SUM_SQUARE ,__global uchar *buf_sq_ptr, int buf_sq_step, int buf_sq_offset #endif ) { __local sumT lm_sum[LOCAL_SUM_STRIDE * LOCAL_SUM_SIZE]; #ifdef SUM_SQUARE __local sumSQT lm_sum_sq[LOCAL_SUM_STRIDE * LOCAL_SUM_SIZE]; #endif int lid = get_local_id(0); int gid = get_group_id(0); int x = get_global_id(0); int src_index = x + src_offset; sumT accum = 0; #ifdef SUM_SQUARE sumSQT accum_sq = 0; #endif for (int y = 0; y < rows; y += LOCAL_SUM_SIZE) { int lsum_index = lid; #pragma unroll for (int yin = 0; yin < LOCAL_SUM_SIZE; yin++, src_index+=src_step, lsum_index += LOCAL_SUM_STRIDE) { if ((x < cols) && (y + yin < rows)) { __global const uchar *src = src_ptr + src_index; accum += src[0]; #ifdef SUM_SQUARE sumSQT temp = src[0] * src[0]; accum_sq += temp; #endif } lm_sum[lsum_index] = accum; #ifdef SUM_SQUARE lm_sum_sq[lsum_index] = accum_sq; #endif } barrier(CLK_LOCAL_MEM_FENCE); int buf_index = mad24(buf_step, LOCAL_SUM_SIZE * gid, mad24((int)sizeof(sumT), y + lid, buf_offset)); #ifdef SUM_SQUARE int buf_sq_index = mad24(buf_sq_step, LOCAL_SUM_SIZE * gid, mad24((int)sizeof(sumSQT), y + lid, buf_sq_offset)); #endif lsum_index = LOCAL_SUM_STRIDE * lid; #pragma unroll for (int yin = 0; yin < LOCAL_SUM_SIZE; yin++, lsum_index ++) { __global sumT *buf = (__global sumT *)(buf_ptr + buf_index); buf[0] = lm_sum[lsum_index]; buf_index += buf_step; #ifdef SUM_SQUARE __global sumSQT *bufsq = (__global sumSQT *)(buf_sq_ptr + buf_sq_index); bufsq[0] = lm_sum_sq[lsum_index]; buf_sq_index += buf_sq_step; #endif } barrier(CLK_LOCAL_MEM_FENCE); } } kernel void integral_sum_rows(__global const uchar *buf_ptr, int buf_step, int buf_offset, #ifdef SUM_SQUARE __global uchar *buf_sq_ptr, int buf_sq_step, int buf_sq_offset, #endif __global uchar *dst_ptr, int dst_step, int dst_offset, int rows, int cols #ifdef SUM_SQUARE ,__global uchar *dst_sq_ptr, int dst_sq_step, int dst_sq_offset #endif ) { __local sumT lm_sum[LOCAL_SUM_STRIDE * LOCAL_SUM_SIZE]; #ifdef SUM_SQUARE __local sumSQT lm_sum_sq[LOCAL_SUM_STRIDE * LOCAL_SUM_SIZE]; #endif int lid = get_local_id(0); int gid = get_group_id(0); int gs = get_global_size(0); int x = get_global_id(0); __global sumT *dst = (__global sumT *)(dst_ptr + dst_offset); for (int xin = x; xin < cols; xin += gs) { dst[xin] = 0; } dst_offset += dst_step; if (x < rows - 1) { dst = (__global sumT *)(dst_ptr + mad24(x, dst_step, dst_offset)); dst[0] = 0; } int buf_index = mad24((int)sizeof(sumT), x, buf_offset); sumT accum = 0; #ifdef SUM_SQUARE __global sumSQT *dst_sq = (__global sumSQT *)(dst_sq_ptr + dst_sq_offset); for (int xin = x; xin < cols; xin += gs) { dst_sq[xin] = 0; } dst_sq_offset += dst_sq_step; if (x < rows - 1) { dst_sq = (__global sumSQT *)(dst_sq_ptr + mad24(x, dst_sq_step, dst_sq_offset)); dst_sq[0] = 0; } int buf_sq_index = mad24((int)sizeof(sumSQT), x, buf_sq_offset); sumSQT accum_sq = 0; #endif for (int y = 1; y < cols; y += LOCAL_SUM_SIZE) { int lsum_index = lid; #pragma unroll for (int yin = 0; yin < LOCAL_SUM_SIZE; yin++, lsum_index += LOCAL_SUM_STRIDE) { __global const sumT *buf = (__global const sumT *)(buf_ptr + buf_index); accum += buf[0]; lm_sum[lsum_index] = accum; buf_index += buf_step; #ifdef SUM_SQUARE __global const sumSQT *buf_sq = (__global const sumSQT *)(buf_sq_ptr + buf_sq_index); accum_sq += buf_sq[0]; lm_sum_sq[lsum_index] = accum_sq; buf_sq_index += buf_sq_step; #endif } barrier(CLK_LOCAL_MEM_FENCE); if (y + lid < cols) { int dst_index = mad24(dst_step, LOCAL_SUM_SIZE * gid, mad24((int)sizeof(sumT), y + lid, dst_offset)); #ifdef SUM_SQUARE int dst_sq_index = mad24(dst_sq_step, LOCAL_SUM_SIZE * gid, mad24((int)sizeof(sumSQT), y + lid, dst_sq_offset)); #endif lsum_index = LOCAL_SUM_STRIDE * lid; int yin_max = min(rows - 1 - LOCAL_SUM_SIZE * gid, LOCAL_SUM_SIZE); #pragma unroll for (int yin = 0; yin < yin_max; yin++, lsum_index++) { dst = (__global sumT *)(dst_ptr + dst_index); dst[0] = lm_sum[lsum_index]; dst_index += dst_step; #ifdef SUM_SQUARE dst_sq = (__global sumSQT *)(dst_sq_ptr + dst_sq_index); dst_sq[0] = lm_sum_sq[lsum_index]; dst_sq_index += dst_sq_step; #endif } } barrier(CLK_LOCAL_MEM_FENCE); } } ed75bf92c46b18f3cbb1b0b85ed3d46dhough_lines#define ACCUM(ptr) *((__global int*)(ptr)) #ifdef MAKE_POINTS_LIST __kernel void make_point_list(__global const uchar * src_ptr, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * list_ptr, int list_step, int list_offset, __global int* global_offset) { int x = get_local_id(0); int y = get_group_id(1); __local int l_index, l_offset; __local int l_points[LOCAL_SIZE]; __global const uchar * src = src_ptr + mad24(y, src_step, src_offset); __global int * list = (__global int*)(list_ptr + list_offset); if (x == 0) l_index = 0; barrier(CLK_LOCAL_MEM_FENCE); if (y < src_rows) { y <<= 16; for (int i=x; i < src_cols; i+=GROUP_SIZE) { if (src[i]) { int val = y | i; int index = atomic_inc(&l_index); l_points[index] = val; } } } barrier(CLK_LOCAL_MEM_FENCE); if (x == 0) l_offset = atomic_add(global_offset, l_index); barrier(CLK_LOCAL_MEM_FENCE); list += l_offset; for (int i=x; i < l_index; i+=GROUP_SIZE) { list[i] = l_points[i]; } } #elif defined FILL_ACCUM_GLOBAL __kernel void fill_accum_global(__global const uchar * list_ptr, int list_step, int list_offset, __global uchar * accum_ptr, int accum_step, int accum_offset, int total_points, float irho, float theta, int numrho, int numangle) { int theta_idx = get_global_id(1); int count_idx = get_global_id(0); int glob_size = get_global_size(0); float cosVal; float sinVal = sincos(theta * ((float)theta_idx), &cosVal); sinVal *= irho; cosVal *= irho; __global const int * list = (__global const int*)(list_ptr + list_offset); __global int* accum = (__global int*)(accum_ptr + mad24(theta_idx + 1, accum_step, accum_offset)); const int shift = (numrho - 1) / 2; if (theta_idx < numangle) { for (int i = count_idx; i < total_points; i += glob_size) { const int val = list[i]; const int x = (val & 0xFFFF); const int y = (val >> 16) & 0xFFFF; int r = convert_int_rte(mad((float)x, cosVal, y * sinVal)) + shift; atomic_inc(accum + r + 1); } } } #elif defined FILL_ACCUM_LOCAL __kernel void fill_accum_local(__global const uchar * list_ptr, int list_step, int list_offset, __global uchar * accum_ptr, int accum_step, int accum_offset, int total_points, float irho, float theta, int numrho, int numangle) { int theta_idx = get_group_id(1); int count_idx = get_local_id(0); if (theta_idx > 0 && theta_idx < numangle + 1) { float cosVal; float sinVal = sincos(theta * (float) (theta_idx-1), &cosVal); sinVal *= irho; cosVal *= irho; __local int l_accum[BUFFER_SIZE]; for (int i=count_idx; i> 16; int r = convert_int_rte(mad((float)x, cosVal, y * sinVal)) + shift; atomic_inc(l_accum + r + 1); } barrier(CLK_LOCAL_MEM_FENCE); __global int* accum = (__global int*)(accum_ptr + mad24(theta_idx, accum_step, accum_offset)); for (int i=count_idx; i threshold && curVote > ACCUM(accum - sizeof(int)) && curVote >= ACCUM(accum + sizeof(int)) && curVote > ACCUM(accum - accum_step) && curVote >= ACCUM(accum + accum_step)) { int index = atomic_inc(lines_index); if (index < linesMax) { float radius = (x - (accum_cols - 3) * 0.5f) * rho; float angle = y * theta; lines[index] = (float2)(radius, angle); } } accum += glob_size * (int) sizeof(int); } } } #elif GET_LINES_PROBABOLISTIC __kernel void get_lines(__global const uchar * accum_ptr, int accum_step, int accum_offset, int accum_rows, int accum_cols, __global const uchar * src_ptr, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * lines_ptr, int lines_step, int lines_offset, __global int* lines_index_ptr, int linesMax, int threshold, int lineLength, int lineGap, float rho, float theta) { int x = get_global_id(0); int y = get_global_id(1); if (y < accum_rows-2) { __global const uchar* accum = accum_ptr + mad24(y+1, accum_step, mad24(x+1, (int) sizeof(int), accum_offset)); __global int4* lines = (__global int4*)(lines_ptr + lines_offset); __global int* lines_index = lines_index_ptr + 1; int curVote = ACCUM(accum); if (curVote >= threshold && curVote > ACCUM(accum - accum_step - sizeof(int)) && curVote > ACCUM(accum - accum_step) && curVote > ACCUM(accum - accum_step + sizeof(int)) && curVote > ACCUM(accum - sizeof(int)) && curVote > ACCUM(accum + sizeof(int)) && curVote > ACCUM(accum + accum_step - sizeof(int)) && curVote > ACCUM(accum + accum_step) && curVote > ACCUM(accum + accum_step + sizeof(int))) { const float radius = (x - (accum_cols - 2 - 1) * 0.5f) * rho; const float angle = y * theta; float cosa; float sina = sincos(angle, &cosa); float2 p0 = (float2)(cosa * radius, sina * radius); float2 dir = (float2)(-sina, cosa); float2 pb[4] = { (float2)(-1, -1), (float2)(-1, -1), (float2)(-1, -1), (float2)(-1, -1) }; float a; if (dir.x != 0) { a = -p0.x / dir.x; pb[0].x = 0; pb[0].y = p0.y + a * dir.y; a = (src_cols - 1 - p0.x) / dir.x; pb[1].x = src_cols - 1; pb[1].y = p0.y + a * dir.y; } if (dir.y != 0) { a = -p0.y / dir.y; pb[2].x = p0.x + a * dir.x; pb[2].y = 0; a = (src_rows - 1 - p0.y) / dir.y; pb[3].x = p0.x + a * dir.x; pb[3].y = src_rows - 1; } if (pb[0].x == 0 && (pb[0].y >= 0 && pb[0].y < src_rows)) { p0 = pb[0]; if (dir.x < 0) dir = -dir; } else if (pb[1].x == src_cols - 1 && (pb[1].y >= 0 && pb[1].y < src_rows)) { p0 = pb[1]; if (dir.x > 0) dir = -dir; } else if (pb[2].y == 0 && (pb[2].x >= 0 && pb[2].x < src_cols)) { p0 = pb[2]; if (dir.y < 0) dir = -dir; } else if (pb[3].y == src_rows - 1 && (pb[3].x >= 0 && pb[3].x < src_cols)) { p0 = pb[3]; if (dir.y > 0) dir = -dir; } dir /= max(fabs(dir.x), fabs(dir.y)); float2 line_end[2]; int gap; bool inLine = false; if (p0.x < 0 || p0.x >= src_cols || p0.y < 0 || p0.y >= src_rows) return; for (;;) { if (*(src_ptr + mad24(p0.y, src_step, p0.x + src_offset))) { gap = 0; if (!inLine) { line_end[0] = p0; line_end[1] = p0; inLine = true; } else { line_end[1] = p0; } } else if (inLine) { if (++gap > lineGap) { bool good_line = fabs(line_end[1].x - line_end[0].x) >= lineLength || fabs(line_end[1].y - line_end[0].y) >= lineLength; if (good_line) { int index = atomic_inc(lines_index); if (index < linesMax) lines[index] = (int4)(line_end[0].x, line_end[0].y, line_end[1].x, line_end[1].y); } gap = 0; inLine = false; } } p0 = p0 + dir; if (p0.x < 0 || p0.x >= src_cols || p0.y < 0 || p0.y >= src_rows) { if (inLine) { bool good_line = fabs(line_end[1].x - line_end[0].x) >= lineLength || fabs(line_end[1].y - line_end[0].y) >= lineLength; if (good_line) { int index = atomic_inc(lines_index); if (index < linesMax) lines[index] = (int4)(line_end[0].x, line_end[0].y, line_end[1].x, line_end[1].y); } } break; } } } } } #endif a2e61a1ff66df95f76ebe1045daf94cchistogram#ifndef kercn #define kercn 1 #endif #ifndef T #define T uchar #endif #define noconvert __kernel void calculate_histogram(__global const uchar * src_ptr, int src_step, int src_offset, int src_rows, int src_cols, __global uchar * histptr, int total) { int lid = get_local_id(0); int id = get_global_id(0) * kercn; int gid = get_group_id(0); __local int localhist[BINS]; #pragma unroll for (int i = lid; i < BINS; i += WGS) localhist[i] = 0; barrier(CLK_LOCAL_MEM_FENCE); __global const uchar * src = src_ptr + src_offset; int src_index; for (int grain = HISTS_COUNT * WGS * kercn; id < total; id += grain) { #ifdef HAVE_SRC_CONT src_index = id; #else src_index = mad24(id / src_cols, src_step, id % src_cols); #endif #if kercn == 1 atomic_inc(localhist + convert_int(src[src_index])); #elif kercn == 4 int value = *(__global const int *)(src + src_index); atomic_inc(localhist + (value & 0xff)); atomic_inc(localhist + ((value >> 8) & 0xff)); atomic_inc(localhist + ((value >> 16) & 0xff)); atomic_inc(localhist + ((value >> 24) & 0xff)); #elif kercn >= 2 T value = *(__global const T *)(src + src_index); atomic_inc(localhist + value.s0); atomic_inc(localhist + value.s1); #if kercn >= 4 atomic_inc(localhist + value.s2); atomic_inc(localhist + value.s3); #if kercn >= 8 atomic_inc(localhist + value.s4); atomic_inc(localhist + value.s5); atomic_inc(localhist + value.s6); atomic_inc(localhist + value.s7); #if kercn == 16 atomic_inc(localhist + value.s8); atomic_inc(localhist + value.s9); atomic_inc(localhist + value.sA); atomic_inc(localhist + value.sB); atomic_inc(localhist + value.sC); atomic_inc(localhist + value.sD); atomic_inc(localhist + value.sE); atomic_inc(localhist + value.sF); #endif #endif #endif #endif } barrier(CLK_LOCAL_MEM_FENCE); __global int * hist = (__global int *)(histptr + gid * BINS * (int)sizeof(int)); #pragma unroll for (int i = lid; i < BINS; i += WGS) hist[i] = localhist[i]; } #ifndef HT #define HT int #endif #ifndef convertToHT #define convertToHT noconvert #endif __kernel void merge_histogram(__global const int * ghist, __global uchar * histptr, int hist_step, int hist_offset) { int lid = get_local_id(0); __global HT * hist = (__global HT *)(histptr + hist_offset); #if WGS >= BINS HT res = (HT)(0); #else #pragma unroll for (int i = lid; i < BINS; i += WGS) hist[i] = (HT)(0); #endif #pragma unroll for (int i = 0; i < HISTS_COUNT; ++i) { #pragma unroll for (int j = lid; j < BINS; j += WGS) #if WGS >= BINS res += convertToHT(ghist[j]); #else hist[j] += convertToHT(ghist[j]); #endif ghist += BINS; } #if WGS >= BINS if (lid < BINS) *(__global HT *)(histptr + mad24(lid, hist_step, hist_offset)) = res; #endif } __kernel void calcLUT(__global uchar * dst, __global const int * ghist, int total) { int lid = get_local_id(0); __local int sumhist[BINS]; __local float scale; #if WGS >= BINS int res = 0; #else #pragma unroll for (int i = lid; i < BINS; i += WGS) sumhist[i] = 0; #endif #pragma unroll for (int i = 0; i < HISTS_COUNT; ++i) { #pragma unroll for (int j = lid; j < BINS; j += WGS) #if WGS >= BINS res += ghist[j]; #else sumhist[j] += ghist[j]; #endif ghist += BINS; } #if WGS >= BINS if (lid < BINS) sumhist[lid] = res; #endif barrier(CLK_LOCAL_MEM_FENCE); if (lid == 0) { int sum = 0, i = 0; while (!sumhist[i]) ++i; if (total == sumhist[i]) { scale = 1; for (int j = 0; j < BINS; ++j) sumhist[i] = i; } else { scale = 255.f / (total - sumhist[i]); for (sumhist[i++] = 0; i < BINS; i++) { sum += sumhist[i]; sumhist[i] = sum; } } } barrier(CLK_LOCAL_MEM_FENCE); #pragma unroll for (int i = lid; i < BINS; i += WGS) dst[i]= convert_uchar_sat_rte(convert_float(sumhist[i]) * scale); } 3bfd6703e639c8a36eb7cdd5f3eefda6gftt#ifdef OP_MAX_EIGEN_VAL __kernel void maxEigenVal(__global const uchar * srcptr, int src_step, int src_offset, int cols, int total, __global uchar * dstptr #ifdef HAVE_MASK , __global const uchar * maskptr, int mask_step, int mask_offset #endif ) { int lid = get_local_id(0); int gid = get_group_id(0); int id = get_global_id(0); __local float localmem_max[WGS2_ALIGNED]; float maxval = -FLT_MAX; for (int grain = groupnum * WGS; id < total; id += grain) { int src_index = mad24(id / cols, src_step, mad24((id % cols), (int)sizeof(float), src_offset)); #ifdef HAVE_MASK int mask_index = mad24(id / cols, mask_step, id % cols + mask_offset); if (maskptr[mask_index]) #endif maxval = max(maxval, *(__global const float *)(srcptr + src_index)); } if (lid < WGS2_ALIGNED) localmem_max[lid] = maxval; barrier(CLK_LOCAL_MEM_FENCE); if (lid >= WGS2_ALIGNED && total >= WGS2_ALIGNED) localmem_max[lid - WGS2_ALIGNED] = max(maxval, localmem_max[lid - WGS2_ALIGNED]); barrier(CLK_LOCAL_MEM_FENCE); for (int lsize = WGS2_ALIGNED >> 1; lsize > 0; lsize >>= 1) { if (lid < lsize) { int lid2 = lsize + lid; localmem_max[lid] = max(localmem_max[lid], localmem_max[lid2]); } barrier(CLK_LOCAL_MEM_FENCE); } if (lid == 0) *(__global float *)(dstptr + (int)sizeof(float) * gid) = localmem_max[0]; } __kernel void maxEigenValTask(__global float * dst, float qualityLevel, __global int * cornersptr) { float maxval = -FLT_MAX; #pragma unroll for (int x = 0; x < groupnum; ++x) maxval = max(maxval, dst[x]); dst[0] = maxval * qualityLevel; cornersptr[0] = 0; } #elif OP_FIND_CORNERS #define GET_SRC_32F(_y, _x) *(__global const float *)(eigptr + (_y) * eig_step + (_x) * (int)sizeof(float) ) __kernel void findCorners(__global const uchar * eigptr, int eig_step, int eig_offset, #ifdef HAVE_MASK __global const uchar * mask, int mask_step, int mask_offset, #endif __global uchar * cornersptr, int rows, int cols, __constant float * threshold, int max_corners) { int x = get_global_id(0); int y = get_global_id(1); __global int* counter = (__global int*) cornersptr; __global float2 * corners = (__global float2 *)(cornersptr + (int)sizeof(float2)); if (y < rows && x < cols #ifdef HAVE_MASK && mask[mad24(y, mask_step, x + mask_offset)] #endif ) { ++x, ++y; float val = GET_SRC_32F(y, x); if (val > threshold[0]) { float maxVal = val; maxVal = max(GET_SRC_32F(y - 1, x - 1), maxVal); maxVal = max(GET_SRC_32F(y - 1, x ), maxVal); maxVal = max(GET_SRC_32F(y - 1, x + 1), maxVal); maxVal = max(GET_SRC_32F(y , x - 1), maxVal); maxVal = max(GET_SRC_32F(y , x + 1), maxVal); maxVal = max(GET_SRC_32F(y + 1, x - 1), maxVal); maxVal = max(GET_SRC_32F(y + 1, x ), maxVal); maxVal = max(GET_SRC_32F(y + 1, x + 1), maxVal); if (val == maxVal) { int ind = atomic_inc(counter); if (ind < max_corners) { corners[ind].x = val; corners[ind].y = as_float(y | (x << 16)); } } } } } #endif cb2cfd26f04e14ae047e2f5eb28c8e11gaussianBlur5x5#define DIG(a) a, __constant float kx[] = { KERNEL_MATRIX_X }; __constant float ky[] = { KERNEL_MATRIX_Y }; #define OP(y, x) (convert_float4(arr[y * 5 + x]) * ky[y] * kx[x]) #define FILL_ARR(s1, s2, n, e1, e2) \ arr[5 * n + 0] = row_s ? (uchar4)(s1, s2, line[n].s23) : (uchar4)(line[n].s0123); \ arr[5 * n + 1] = row_s ? (uchar4)(s2, line[n].s234) : (uchar4)(line[n].s1234); \ arr[5 * n + 2] = (uchar4)(line[n].s2345); \ arr[5 * n + 3] = row_e ? (uchar4)(line[n].s345, e1) : (uchar4)(line[n].s3456); \ arr[5 * n + 4] = row_e ? (uchar4)(line[n].s45, e1, e2) : (uchar4)(line[n].s4567); __kernel void gaussianBlur5x5_8UC1_cols4(__global const uchar* src, int src_step, __global uint* dst, int dst_step, int rows, int cols) { int x = get_global_id(0) * 4; int y = get_global_id(1); if (x >= cols || y >= rows) return; uchar8 line[5]; int offset, src_index; src_index = x + (y - 2) * src_step - 2; offset = max(0, src_index + 2 * src_step); line[2] = vload8(0, src + offset); if (offset == 0) line[2] = (uchar8)(0, 0, line[2].s0123, line[2].s45); #if defined BORDER_CONSTANT || defined BORDER_REPLICATE uchar8 tmp; #ifdef BORDER_CONSTANT tmp = (uchar8)0; #elif defined BORDER_REPLICATE tmp = line[2]; #endif line[0] = line[1] = tmp; if (y > 1) { offset = max(0, src_index); line[0] = vload8(0, src + offset); if (offset == 0) line[0] = (uchar8)(0, 0, line[0].s0123, line[0].s45); } if (y > 0) { offset = max(0, src_index + src_step); line[1] = vload8(0, src + offset); if (offset == 0) line[1] = (uchar8)(0, 0, line[1].s0123, line[1].s45); } line[3] = (y == (rows - 1)) ? tmp : vload8(0, src + src_index + 3 * src_step); line[4] = (y >= (rows - 2)) ? tmp : vload8(0, src + src_index + 4 * src_step); #elif BORDER_REFLECT int t; t = (y <= 1) ? (abs(y - 1) - y + 2) : 0; offset = max(0, src_index + t * src_step); line[0] = vload8(0, src + offset); if (offset == 0) line[0] = (uchar8)(0, 0, line[0].s0123, line[0].s45); if (y == 0) line[1] = line[2]; else { offset = max(0, src_index + 1 * src_step); line[1] = vload8(0, src + offset); if (offset == 0) line[1] = (uchar8)(0, 0, line[1].s0123, line[0].s45); } line[3] = (y == (rows - 1)) ? line[2] : vload8(0, src + src_index + 3 * src_step); t = (y >= (rows - 2)) ? (abs(y - (rows - 1)) - (y - (rows - 2)) + 2) : 4; line[4] = vload8(0, src + src_index + t * src_step); #elif BORDER_REFLECT_101 if (y == 1) line[0] = line[2]; else { offset = (y == 0) ? (src_index + 4 * src_step) : max(0, src_index); line[0] = vload8(0, src + offset); if (offset == 0) line[0] = (uchar8)(0, 0, line[0].s0123, line[0].s45); } offset = (y == 0) ? (src_index + 3 * src_step) : max(0, src_index + 1 * src_step); line[1] = vload8(0, src + offset); if (offset == 0) line[1] = (uchar8)(0, 0, line[1].s0123, line[1].s45); line[3] = vload8(0, src + src_index + ((y == (rows - 1)) ? 1 : 3) * src_step); if (y == (rows - 2)) line[4] = line[2]; else { line[4] = vload8(0, src + src_index + ((y == (rows - 1)) ? 1 : 4) * src_step); } #endif bool row_s = (x == 0); bool row_e = ((x + 4) == cols); uchar4 arr[25]; uchar s, e; #ifdef BORDER_CONSTANT s = e = 0; FILL_ARR(s, s, 0, e, e); FILL_ARR(s, s, 1, e, e); FILL_ARR(s, s, 2, e, e); FILL_ARR(s, s, 3, e, e); FILL_ARR(s, s, 4, e, e); #elif defined BORDER_REPLICATE s = line[0].s2; e = line[0].s5; FILL_ARR(s, s, 0, e, e); s = line[1].s2; e = line[1].s5; FILL_ARR(s, s, 1, e, e); s = line[2].s2; e = line[2].s5; FILL_ARR(s, s, 2, e, e); s = line[3].s2; e = line[3].s5; FILL_ARR(s, s, 3, e, e); s = line[4].s2; e = line[4].s5; FILL_ARR(s, s, 4, e, e); #elif BORDER_REFLECT uchar s1, s2; uchar e1, e2; s1 = line[0].s3; s2 = line[0].s2; e1 = line[0].s5; e2 = line[0].s4; FILL_ARR(s1, s2, 0, e1, e2); s1 = line[1].s3; s2 = line[1].s2; e1 = line[1].s5; e2 = line[1].s4; FILL_ARR(s1, s2, 1, e1, e2); s1 = line[2].s3; s2 = line[2].s2; e1 = line[2].s5; e2 = line[2].s4; FILL_ARR(s1, s2, 2, e1, e2); s1 = line[3].s3; s2 = line[3].s2; e1 = line[3].s5; e2 = line[3].s4; FILL_ARR(s1, s2, 3, e1, e2); s1 = line[4].s3; s2 = line[4].s2; e1 = line[4].s5; e2 = line[4].s4; FILL_ARR(s1, s2, 4, e1, e2); #elif BORDER_REFLECT_101 s = line[0].s4; e = line[0].s3; FILL_ARR(s, e, 0, s, e); s = line[1].s4; e = line[1].s3; FILL_ARR(s, e, 1, s, e); s = line[2].s4; e = line[2].s3; FILL_ARR(s, e, 2, s, e); s = line[3].s4; e = line[3].s3; FILL_ARR(s, e, 3, s, e); s = line[4].s4; e = line[4].s3; FILL_ARR(s, e, 4, s, e); #endif float4 sum; sum = OP(0, 0) + OP(0, 1) + OP(0, 2) + OP(0, 3) + OP(0, 4) + OP(1, 0) + OP(1, 1) + OP(1, 2) + OP(1, 3) + OP(1, 4) + OP(2, 0) + OP(2, 1) + OP(2, 2) + OP(2, 3) + OP(2, 4) + OP(3, 0) + OP(3, 1) + OP(3, 2) + OP(3, 3) + OP(3, 4) + OP(4, 0) + OP(4, 1) + OP(4, 2) + OP(4, 3) + OP(4, 4); int dst_index = (x / 4) + y * (dst_step / 4); dst[dst_index] = as_uint(convert_uchar4_sat_rte(sum)); } ece5030c9920436f23ce25e35dc12303gaussianBlur3x3#define DIG(a) a, __constant float kx[] = { KERNEL_MATRIX_X }; __constant float ky[] = { KERNEL_MATRIX_Y }; #define OP(delta, y, x) (convert_float16(arr[(y + delta) * 3 + x]) * ky[y] * kx[x]) __kernel void gaussianBlur3x3_8UC1_cols16_rows2(__global const uint* src, int src_step, __global uint* dst, int dst_step, int rows, int cols) { int block_x = get_global_id(0); int y = get_global_id(1) * 2; int ssx, dsx; if ((block_x * 16) >= cols || y >= rows) return; uint4 line[4]; uint4 line_out[2]; uchar a; uchar16 b; uchar c; uchar d; uchar16 e; uchar f; uchar g; uchar16 h; uchar i; uchar j; uchar16 k; uchar l; ssx = dsx = 1; int src_index = block_x * 4 * ssx + (y - 1) * (src_step / 4); line[1] = vload4(0, src + src_index + (src_step / 4)); line[2] = vload4(0, src + src_index + 2 * (src_step / 4)); #ifdef BORDER_CONSTANT line[0] = (y == 0) ? (uint4)0 : vload4(0, src + src_index); line[3] = (y == (rows - 2)) ? (uint4)0 : vload4(0, src + src_index + 3 * (src_step / 4)); #elif defined BORDER_REFLECT_101 line[0] = (y == 0) ? line[2] : vload4(0, src + src_index); line[3] = (y == (rows - 2)) ? line[1] : vload4(0, src + src_index + 3 * (src_step / 4)); #elif defined (BORDER_REPLICATE) || defined(BORDER_REFLECT) line[0] = (y == 0) ? line[1] : vload4(0, src + src_index); line[3] = (y == (rows - 2)) ? line[2] : vload4(0, src + src_index + 3 * (src_step / 4)); #endif __global uchar *src_p = (__global uchar *)src; src_index = block_x * 16 * ssx + (y - 1) * src_step; bool line_end = ((block_x + 1) * 16 == cols); b = as_uchar16(line[0]); e = as_uchar16(line[1]); h = as_uchar16(line[2]); k = as_uchar16(line[3]); #ifdef BORDER_CONSTANT a = (block_x == 0 || y == 0) ? 0 : src_p[src_index - 1]; c = (line_end || y == 0) ? 0 : src_p[src_index + 16]; d = (block_x == 0) ? 0 : src_p[src_index + src_step - 1]; f = line_end ? 0 : src_p[src_index + src_step + 16]; g = (block_x == 0) ? 0 : src_p[src_index + 2 * src_step - 1]; i = line_end ? 0 : src_p[src_index + 2 * src_step + 16]; j = (block_x == 0 || y == (rows - 2)) ? 0 : src_p[src_index + 3 * src_step - 1]; l = (line_end || y == (rows - 2))? 0 : src_p[src_index + 3 * src_step + 16]; #elif defined BORDER_REFLECT_101 int offset; offset = (y == 0) ? (2 * src_step) : 0; a = (block_x == 0) ? src_p[src_index + offset + 1] : src_p[src_index + offset - 1]; c = line_end ? src_p[src_index + offset + 14] : src_p[src_index + offset + 16]; d = (block_x == 0) ? src_p[src_index + src_step + 1] : src_p[src_index + src_step - 1]; f = line_end ? src_p[src_index + src_step + 14] : src_p[src_index + src_step + 16]; g = (block_x == 0) ? src_p[src_index + 2 * src_step + 1] : src_p[src_index + 2 * src_step - 1]; i = line_end ? src_p[src_index + 2 * src_step + 14] : src_p[src_index + 2 * src_step + 16]; offset = (y == (rows - 2)) ? (1 * src_step) : (3 * src_step); j = (block_x == 0) ? src_p[src_index + offset + 1] : src_p[src_index + offset - 1]; l = line_end ? src_p[src_index + offset + 14] : src_p[src_index + offset + 16]; #elif defined (BORDER_REPLICATE) || defined(BORDER_REFLECT) int offset; offset = (y == 0) ? (1 * src_step) : 0; a = (block_x == 0) ? src_p[src_index + offset] : src_p[src_index + offset - 1]; c = line_end ? src_p[src_index + offset + 15] : src_p[src_index + offset + 16]; d = (block_x == 0) ? src_p[src_index + src_step] : src_p[src_index + src_step - 1]; f = line_end ? src_p[src_index + src_step + 15] : src_p[src_index + src_step + 16]; g = (block_x == 0) ? src_p[src_index + 2 * src_step] : src_p[src_index + 2 * src_step - 1]; i = line_end ? src_p[src_index + 2 * src_step + 15] : src_p[src_index + 2 * src_step + 16]; offset = (y == (rows - 2)) ? (2 * src_step) : (3 * src_step); j = (block_x == 0) ? src_p[src_index + offset] : src_p[src_index + offset - 1]; l = line_end ? src_p[src_index + offset + 15] : src_p[src_index + offset + 16]; #endif uchar16 arr[12]; float16 sum[2]; arr[0] = (uchar16)(a, b.s0123, b.s456789ab, b.scde); arr[1] = b; arr[2] = (uchar16)(b.s123, b.s4567, b.s89abcdef, c); arr[3] = (uchar16)(d, e.s0123, e.s456789ab, e.scde); arr[4] = e; arr[5] = (uchar16)(e.s123, e.s4567, e.s89abcdef, f); arr[6] = (uchar16)(g, h.s0123, h.s456789ab, h.scde); arr[7] = h; arr[8] = (uchar16)(h.s123, h.s4567, h.s89abcdef, i); arr[9] = (uchar16)(j, k.s0123, k.s456789ab, k.scde); arr[10] = k; arr[11] = (uchar16)(k.s123, k.s4567, k.s89abcdef, l); sum[0] = OP(0, 0, 0) + OP(0, 0, 1) + OP(0, 0, 2) + OP(0, 1, 0) + OP(0, 1, 1) + OP(0, 1, 2) + OP(0, 2, 0) + OP(0, 2, 1) + OP(0, 2, 2); sum[1] = OP(1, 0, 0) + OP(1, 0, 1) + OP(1, 0, 2) + OP(1, 1, 0) + OP(1, 1, 1) + OP(1, 1, 2) + OP(1, 2, 0) + OP(1, 2, 1) + OP(1, 2, 2); line_out[0] = as_uint4(convert_uchar16_sat_rte(sum[0])); line_out[1] = as_uint4(convert_uchar16_sat_rte(sum[1])); int dst_index = block_x * 4 * dsx + y * (dst_step / 4); vstore4(line_out[0], 0, dst + dst_index); vstore4(line_out[1], 0, dst + dst_index + (dst_step / 4)); } dbbc069449fa882036a00c7734ead4c1#ifdef BORDER_REPLICATE #define ADDR_L(i, l_edge, r_edge) ((i) < (l_edge) ? (l_edge) : (i)) #define ADDR_R(i, r_edge, addr) ((i) >= (r_edge) ? (r_edge)-1 : (addr)) #define ADDR_H(i, t_edge, b_edge) ((i) < (t_edge) ? (t_edge) :(i)) #define ADDR_B(i, b_edge, addr) ((i) >= (b_edge) ? (b_edge)-1 :(addr)) #endif #ifdef BORDER_REFLECT #define ADDR_L(i, l_edge, r_edge) ((i) < (l_edge) ? -(i)-1 : (i)) #define ADDR_R(i, r_edge, addr) ((i) >= (r_edge) ? -(i)-1+((r_edge)<<1) : (addr)) #define ADDR_H(i, t_edge, b_edge) ((i) < (t_edge) ? -(i)-1 : (i)) #define ADDR_B(i, b_edge, addr) ((i) >= (b_edge) ? -(i)-1+((b_edge)<<1) : (addr)) #endif #ifdef BORDER_REFLECT_101 #define ADDR_L(i, l_edge, r_edge) ((i) < (l_edge) ? -(i) : (i)) #define ADDR_R(i, r_edge, addr) ((i) >= (r_edge) ? -(i)-2+((r_edge)<<1) : (addr)) #define ADDR_H(i, t_edge, b_edge) ((i) < (t_edge) ? -(i) : (i)) #define ADDR_B(i, b_edge, addr) ((i) >= (b_edge) ? -(i)-2+((b_edge)<<1) : (addr)) #endif #ifdef BORDER_WRAP #define ADDR_L(i, l_edge, r_edge) ((i) < (l_edge) ? (i)+(r_edge) : (i)) #define ADDR_R(i, r_edge, addr) ((i) >= (r_edge) ? (i)-(r_edge) : (addr)) #define ADDR_H(i, t_edge, b_edge) ((i) < (t_edge) ? (i)+(b_edge) : (i)) #define ADDR_B(i, b_edge, addr) ((i) >= (b_edge) ? (i)-(b_edge) : (addr)) #endif #ifdef BORDER_ISOLATED #define ISOLATED_MIN(VAL) (VAL) #else #define ISOLATED_MIN(VAL) 0 #endif #ifdef EXTRA_EXTRAPOLATION #ifdef BORDER_CONSTANT #elif defined BORDER_REPLICATE #define EXTRAPOLATE(x, y, minX, minY, maxX, maxY) \ { \ x = max(min(x, maxX - 1), minX); \ y = max(min(y, maxY - 1), minY); \ } #elif defined BORDER_WRAP #define EXTRAPOLATE(x, y, minX, minY, maxX, maxY) \ { \ if (x < minX) \ x -= ((x - maxX + 1) / maxX) * maxX; \ if (x >= maxX) \ x %= maxX; \ if (y < minY) \ y -= ((y - maxY + 1) / maxY) * maxY; \ if (y >= maxY) \ y %= maxY; \ } #elif defined(BORDER_REFLECT) || defined(BORDER_REFLECT_101) #define EXTRAPOLATE_(x, y, minX, minY, maxX, maxY, delta) \ { \ if (maxX - minX == 1) \ x = minX; \ else \ do \ { \ if (x < minX) \ x = minX - (x - minX) - 1 + delta; \ else \ x = maxX - 1 - (x - maxX) - delta; \ } \ while (x >= maxX || x < minX); \ \ if (maxY - minY == 1) \ y = minY; \ else \ do \ { \ if (y < minY) \ y = minY - (y - minY) - 1 + delta; \ else \ y = maxY - 1 - (y - maxY) - delta; \ } \ while (y >= maxY || y < minY); \ } #ifdef BORDER_REFLECT #define EXTRAPOLATE(x, y, minX, minY, maxX, maxY) EXTRAPOLATE_(x, y, minX, minY, maxX, maxY, 0) #elif defined(BORDER_REFLECT_101) || defined(BORDER_REFLECT101) #define EXTRAPOLATE(x, y, minX, minY, maxX, maxY) EXTRAPOLATE_(x, y, minX, minY, maxX, maxY, 1) #endif #else #error No extrapolation method #endif #else #define EXTRAPOLATE(x, y, minX, minY, maxX, maxY) \ { \ int _row = y - ISOLATED_MIN(minY), _col = x - ISOLATED_MIN(minX); \ _row = ADDR_H(_row, 0, maxY - ISOLATED_MIN(minY)); \ _row = ADDR_B(_row, maxY - ISOLATED_MIN(minY), _row); \ y = _row + ISOLATED_MIN(minY); \ \ _col = ADDR_L(_col, 0, maxX - ISOLATED_MIN(minX)); \ _col = ADDR_R(_col, maxX - ISOLATED_MIN(minX), _col); \ x = _col + ISOLATED_MIN(minX); \ } #endif #ifdef DOUBLE_SUPPORT #ifdef cl_amd_fp64 #pragma OPENCL EXTENSION cl_amd_fp64:enable #elif defined (cl_khr_fp64) #pragma OPENCL EXTENSION cl_khr_fp64:enable #endif #endif #if cn != 3 #define loadpix(addr) *(__global const srcT *)(addr) #define storepix(val, addr) *(__global dstT *)(addr) = val #define SRCSIZE (int)sizeof(srcT) #define DSTSIZE (int)sizeof(dstT) #else #define loadpix(addr) vload3(0, (__global const srcT1 *)(addr)) #define storepix(val, addr) vstore3(val, 0, (__global dstT1 *)(addr)) #define SRCSIZE (int)sizeof(srcT1) * cn #define DSTSIZE (int)sizeof(dstT1) * cn #endif #define noconvert struct RectCoords { int x1, y1, x2, y2; }; #ifdef BORDER_ISOLATED inline bool isBorder(const struct RectCoords bounds, int2 coord, int numPixels) { return coord.x < bounds.x1 || coord.y < bounds.y1 || coord.x + numPixels > bounds.x2 || coord.y >= bounds.y2; } #else inline bool isBorder(const struct RectCoords bounds, int2 coord, int numPixels) { return coord.x < 0 || coord.y < 0 || coord.x + numPixels > bounds.x2 || coord.y >= bounds.y2; } #endif #define float1 float #define double1 double #define uchar1 uchar #define int1 int #define uint1 unit #define __CAT(x, y) x##y #define CAT(x, y) __CAT(x, y) #define vload1(OFFSET, PTR) (*(PTR + OFFSET)) #define PX_LOAD_VEC_TYPE CAT(srcT1, PX_LOAD_VEC_SIZE) #define PX_LOAD_FLOAT_VEC_TYPE CAT(WT1, PX_LOAD_VEC_SIZE) #define PX_LOAD CAT(vload, PX_LOAD_VEC_SIZE) inline PX_LOAD_FLOAT_VEC_TYPE readSrcPixelGroup(int2 pos, __global const uchar * srcptr, int srcstep, const struct RectCoords srcCoords) { __global const srcT1 * ptr = (__global const srcT1 *) (srcptr + mad24(pos.y, srcstep, pos.x * SRCSIZE)); return PX_LOAD_FLOAT_VEC_CONV(PX_LOAD(0, ptr)); } #define LOOP1(VAR, STMT) (STMT); (VAR)++; #define LOOP2(VAR, STMT) LOOP1(VAR, STMT); (STMT); (VAR)++; #define LOOP3(VAR, STMT) LOOP2(VAR, STMT); (STMT); (VAR)++; #define LOOP4(VAR, STMT) LOOP3(VAR, STMT); (STMT); (VAR)++; #define LOOP5(VAR, STMT) LOOP4(VAR, STMT); (STMT); (VAR)++; #define LOOP6(VAR, STMT) LOOP5(VAR, STMT); (STMT); (VAR)++; #define LOOP7(VAR, STMT) LOOP6(VAR, STMT); (STMT); (VAR)++; #define LOOP8(VAR, STMT) LOOP7(VAR, STMT); (STMT); (VAR)++; #define LOOP9(VAR, STMT) LOOP8(VAR, STMT); (STMT); (VAR)++; #define LOOP10(VAR, STMT) LOOP9(VAR, STMT); (STMT); (VAR)++; #define LOOP11(VAR, STMT) LOOP10(VAR, STMT); (STMT); (VAR)++; #define LOOP12(VAR, STMT) LOOP11(VAR, STMT); (STMT); (VAR)++; #define LOOP13(VAR, STMT) LOOP12(VAR, STMT); (STMT); (VAR)++; #define LOOP(N, VAR, STMT) CAT(LOOP, N)((VAR), (STMT)) #ifdef OP_BOX_FILTER #define PROCESS_ELEM \ WT total_sum = (WT)(0); \ int sy = 0; \ LOOP(KERNEL_SIZE_Y, sy, \ { \ int sx = 0; \ LOOP(KERNEL_SIZE_X, sx, \ { \ total_sum += privateData[py + sy][px + sx]; \ }); \ }) #elif defined OP_FILTER2D #define DIG(a) a, __constant WT1 kernelData[] = { COEFF }; #define PROCESS_ELEM \ WT total_sum = 0; \ int sy = 0; \ int kernelIndex = 0; \ LOOP(KERNEL_SIZE_Y, sy, \ { \ int sx = 0; \ LOOP(KERNEL_SIZE_X, sx, \ { \ total_sum = fma(kernelData[kernelIndex++], privateData[py + sy][px + sx], total_sum); \ }); \ }) #elif defined OP_ERODE || defined OP_DILATE #ifdef DEPTH_0 #define MIN_VAL 0 #define MAX_VAL UCHAR_MAX #elif defined DEPTH_1 #define MIN_VAL SCHAR_MIN #define MAX_VAL SCHAR_MAX #elif defined DEPTH_2 #define MIN_VAL 0 #define MAX_VAL USHRT_MAX #elif defined DEPTH_3 #define MIN_VAL SHRT_MIN #define MAX_VAL SHRT_MAX #elif defined DEPTH_4 #define MIN_VAL INT_MIN #define MAX_VAL INT_MAX #elif defined DEPTH_5 #define MIN_VAL (-FLT_MAX) #define MAX_VAL FLT_MAX #elif defined DEPTH_6 #define MIN_VAL (-DBL_MAX) #define MAX_VAL DBL_MAX #endif #ifdef OP_ERODE #define VAL (WT)MAX_VAL #elif defined OP_DILATE #define VAL (WT)MIN_VAL #else #error "Unknown operation" #endif #define convert_float1 convert_float #define convert_uchar1 convert_uchar #define convert_int1 convert_int #define convert_uint1 convert_uint #ifdef OP_ERODE #if defined INTEL_DEVICE && defined DEPTH_0 #define WA_CONVERT_1 CAT(convert_uint, cn) #define WA_CONVERT_2 CAT(convert_, srcT) #define MORPH_OP(A, B) ((A) < (B) ? (A) : (B)) #else #define MORPH_OP(A, B) min((A), (B)) #endif #endif #ifdef OP_DILATE #define MORPH_OP(A, B) max((A), (B)) #endif #define PROCESS(_y, _x) \ total_sum = convertToWT(MORPH_OP(convertToWT(total_sum), convertToWT(privateData[py + _y][px + _x]))); #define PROCESS_ELEM \ WT total_sum = convertToWT(VAL); \ PROCESS_ELEM_ #else #error "No processing is specified" #endif #if defined OP_GRADIENT || defined OP_TOPHAT || defined OP_BLACKHAT #define EXTRA_PARAMS , __global const uchar * matptr, int mat_step, int mat_offset #else #define EXTRA_PARAMS #endif inline WT getBorderPixel(const struct RectCoords bounds, int2 coord, __global const uchar * srcptr, int srcstep) { #ifdef BORDER_CONSTANT #ifdef OP_ERODE return (WT)(MAX_VAL); #elif defined OP_DILATE return (WT)(MIN_VAL); #else return (WT)(0); #endif #else int selected_col = coord.x; int selected_row = coord.y; EXTRAPOLATE(selected_col, selected_row, bounds.x1, bounds.y1, bounds.x2, bounds.y2); __global const uchar* ptr = srcptr + mad24(selected_row, srcstep, selected_col * SRCSIZE); return convertToWT(loadpix(ptr)); #endif } inline WT readSrcPixelSingle(int2 pos, __global const uchar * srcptr, int srcstep, const struct RectCoords srcCoords) { if (!isBorder(srcCoords, pos, 1)) { __global const uchar * ptr = srcptr + mad24(pos.y, srcstep, pos.x * SRCSIZE); return convertToWT(loadpix(ptr)); } else return getBorderPixel(srcCoords, pos, srcptr, srcstep); } __kernel void filterSmall(__global const uchar * srcptr, int src_step, int srcOffsetX, int srcOffsetY, int srcEndX, int srcEndY, __global uchar * dstptr, int dst_step, int dst_offset, int rows, int cols #ifdef NORMALIZE , float alpha #endif EXTRA_PARAMS ) { const struct RectCoords srcCoords = { srcOffsetX, srcOffsetY, srcEndX, srcEndY }; const int startX = get_global_id(0) * PX_PER_WI_X; const int startY = get_global_id(1) * PX_PER_WI_Y; if (startX >= cols || startY >= rows) return; WT privateData[PX_PER_WI_Y + KERNEL_SIZE_Y - 1][PRIV_DATA_WIDTH]; int py = 0; LOOP(PX_LOAD_Y_ITERATIONS, py, { int y = startY + py; int px = 0; LOOP(PX_LOAD_X_ITERATIONS, px, { int x = startX + (px * PX_LOAD_NUM_PX); int2 srcPos = (int2)(srcCoords.x1 + x - ANCHOR_X, srcCoords.y1 + y - ANCHOR_Y); if (!isBorder(srcCoords, srcPos, PX_LOAD_NUM_PX)) { PX_LOAD_FLOAT_VEC_TYPE p = readSrcPixelGroup(srcPos, srcptr, src_step, srcCoords); #ifdef SQR *((PX_LOAD_FLOAT_VEC_TYPE *)&privateData[py][px * PX_LOAD_NUM_PX]) = p * p; #else *((PX_LOAD_FLOAT_VEC_TYPE *)&privateData[py][px * PX_LOAD_NUM_PX]) = p; #endif } else { int lx = 0; LOOP(PX_LOAD_NUM_PX, lx, { WT p = readSrcPixelSingle(srcPos, srcptr, src_step, srcCoords); #ifdef SQR *((WT*)&privateData[py][px * PX_LOAD_NUM_PX + lx]) = p * p; #else *((WT*)&privateData[py][px * PX_LOAD_NUM_PX + lx]) = p; #endif srcPos.x++; }); } }); }); py = 0; LOOP(PX_PER_WI_Y, py, { int y = startY + py; int px = 0; LOOP(PX_PER_WI_X, px, { int x = startX + px; PROCESS_ELEM; int dst_index = mad24(y, dst_step, mad24(x, DSTSIZE, dst_offset)); __global dstT * dstPtr = (__global dstT *)(dstptr + dst_index); #ifdef NORMALIZE total_sum *= (WT)(alpha); #endif #if defined OP_GRADIENT || defined OP_TOPHAT || defined OP_BLACKHAT int mat_index = mad24(y, mat_step, mad24(x, SRCSIZE, mat_offset)); WT value = convertToWT(loadpix(matptr + mat_index)); #ifdef OP_GRADIENT storepix(convertToDstT(convertToWT(total_sum) - convertToWT(value)), dstPtr ); #elif defined OP_TOPHAT storepix(convertToDstT(convertToWT(value) - convertToWT(total_sum)), dstPtr ); #elif defined OP_BLACKHAT storepix(convertToDstT(convertToWT(total_sum) - convertToWT(value)), dstPtr ); #endif #else storepix(convertToDstT(total_sum), dstPtr); #endif }); }); } 791281c9ee1a2ff7234c85b09b6af6bffilterSep_singlePass#ifdef BORDER_CONSTANT #define EXTRAPOLATE(x, maxV) #elif defined BORDER_REPLICATE #define EXTRAPOLATE(x, maxV) \ { \ (x) = clamp((x), 0, (maxV)-1); \ } #elif defined BORDER_WRAP #define EXTRAPOLATE(x, maxV) \ { \ (x) = ( (x) + (maxV) ) % (maxV); \ } #elif defined BORDER_REFLECT #define EXTRAPOLATE(x, maxV) \ { \ (x) = min(((maxV)-1)*2-(x)+1, max((x),-(x)-1) ); \ } #elif defined BORDER_REFLECT_101 || defined BORDER_REFLECT101 #define EXTRAPOLATE(x, maxV) \ { \ (x) = min(((maxV)-1)*2-(x), max((x),-(x)) ); \ } #else #error No extrapolation method #endif #if CN != 3 #define loadpix(addr) *(__global const srcT *)(addr) #define storepix(val, addr) *(__global dstT *)(addr) = val #define SRCSIZE (int)sizeof(srcT) #define DSTSIZE (int)sizeof(dstT) #else #define loadpix(addr) vload3(0, (__global const srcT1 *)(addr)) #define storepix(val, addr) vstore3(val, 0, (__global dstT1 *)(addr)) #define SRCSIZE (int)sizeof(srcT1)*3 #define DSTSIZE (int)sizeof(dstT1)*3 #endif #define SRC(_x,_y) convertToWT(loadpix(Src + mad24(_y, src_step, SRCSIZE * _x))) #ifdef BORDER_CONSTANT #define ELEM(_x,_y,r_edge,t_edge,const_v) (_x)<0 | (_x) >= (r_edge) | (_y)<0 | (_y) >= (t_edge) ? (const_v) : SRC((_x),(_y)) #else #define ELEM(_x,_y,r_edge,t_edge,const_v) SRC((_x),(_y)) #endif #define noconvert #define DIG(a) a, __constant WT1 mat_kernelX[] = { KERNEL_MATRIX_X }; __constant WT1 mat_kernelY[] = { KERNEL_MATRIX_Y }; __kernel void sep_filter(__global uchar* Src, int src_step, int srcOffsetX, int srcOffsetY, int height, int width, __global uchar* Dst, int dst_step, int dst_offset, int dst_rows, int dst_cols, float delta) { __local WT lsmem[BLK_Y + 2 * RADIUSY][BLK_X + 2 * RADIUSX]; __local WT lsmemDy[BLK_Y][BLK_X + 2 * RADIUSX]; int lix = get_local_id(0); int liy = get_local_id(1); int x = get_global_id(0); int srcX = x + srcOffsetX - RADIUSX; int clocY = liy; do { int yb = clocY + srcOffsetY - RADIUSY; EXTRAPOLATE(yb, (height)); int clocX = lix; int cSrcX = srcX; do { int xb = cSrcX; EXTRAPOLATE(xb,(width)); lsmem[clocY][clocX] = ELEM(xb, yb, (width), (height), 0 ); clocX += BLK_X; cSrcX += BLK_X; } while(clocX < BLK_X+(RADIUSX*2)); clocY += BLK_Y; } while (clocY < BLK_Y+(RADIUSY*2)); barrier(CLK_LOCAL_MEM_FENCE); for (int y = 0; y < dst_rows; y+=BLK_Y) { int i, clocX = lix; WT sum = (WT) 0; do { sum = (WT) 0; for (i=0; i<=2*RADIUSY; i++) #if (defined(INTEGER_ARITHMETIC) && !INTEL_DEVICE) sum = mad24(lsmem[liy + i][clocX], mat_kernelY[i], sum); #else sum = mad(lsmem[liy + i][clocX], mat_kernelY[i], sum); #endif lsmemDy[liy][clocX] = sum; clocX += BLK_X; } while(clocX < BLK_X+(RADIUSX*2)); barrier(CLK_LOCAL_MEM_FENCE); if ((x < dst_cols) && (y + liy < dst_rows)) { sum = 0.0f; for (i=0; i<=2*RADIUSX; i++) #if (defined(INTEGER_ARITHMETIC) && !INTEL_DEVICE) sum = mad24(lsmemDy[liy][lix+i], mat_kernelX[i], sum); #else sum = mad(lsmemDy[liy][lix+i], mat_kernelX[i], sum); #endif #ifdef INTEGER_ARITHMETIC #ifdef INTEL_DEVICE sum = (sum + (1 << (SHIFT_BITS-1))) / (1 << SHIFT_BITS); #else sum = (sum + (1 << (SHIFT_BITS-1))) >> SHIFT_BITS; #endif #endif storepix(convertToDstT(sum + (WT)(delta)), Dst + mad24(y + liy, dst_step, mad24(x, DSTSIZE, dst_offset))); } for (int i = liy * BLK_X + lix; i < (RADIUSY*2) * (BLK_X+(RADIUSX*2)); i += BLK_X * BLK_Y) { int clocX = i % (BLK_X+(RADIUSX*2)); int clocY = i / (BLK_X+(RADIUSX*2)); lsmem[clocY][clocX] = lsmem[clocY + BLK_Y][clocX]; } barrier(CLK_LOCAL_MEM_FENCE); int yb = y + liy + BLK_Y + srcOffsetY + RADIUSY; EXTRAPOLATE(yb, (height)); clocX = lix; int cSrcX = x + srcOffsetX - RADIUSX; do { int xb = cSrcX; EXTRAPOLATE(xb,(width)); lsmem[liy + 2*RADIUSY][clocX] = ELEM(xb, yb, (width), (height), 0 ); clocX += BLK_X; cSrcX += BLK_X; } while(clocX < BLK_X+(RADIUSX*2)); barrier(CLK_LOCAL_MEM_FENCE); } } 1335aadebf2523a98cb069063bdd2ba1filterSepRow#ifdef DOUBLE_SUPPORT #ifdef cl_amd_fp64 #pragma OPENCL EXTENSION cl_amd_fp64:enable #elif defined (cl_khr_fp64) #pragma OPENCL EXTENSION cl_khr_fp64:enable #endif #endif #define READ_TIMES_ROW ((2*(RADIUSX+LSIZE0)-1)/LSIZE0) #define RADIUS 1 #ifdef BORDER_REPLICATE #define ADDR_L(i, l_edge, r_edge) ((i) < (l_edge) ? (l_edge) : (i)) #define ADDR_R(i, r_edge, addr) ((i) >= (r_edge) ? (r_edge)-1 : (addr)) #endif #ifdef BORDER_REFLECT #define ADDR_L(i, l_edge, r_edge) ((i) < (l_edge) ? -(i)-1 : (i)) #define ADDR_R(i, r_edge, addr) ((i) >= (r_edge) ? -(i)-1+((r_edge)<<1) : (addr)) #endif #ifdef BORDER_REFLECT_101 #define ADDR_L(i, l_edge, r_edge) ((i) < (l_edge) ? -(i) : (i)) #define ADDR_R(i, r_edge, addr) ((i) >= (r_edge) ? -(i)-2+((r_edge)<<1) : (addr)) #endif #ifdef BORDER_WRAP #define ADDR_L(i, l_edge, r_edge) ((i) < (l_edge) ? (i)+(r_edge) : (i)) #define ADDR_R(i, r_edge, addr) ((i) >= (r_edge) ? (i)-(r_edge) : (addr)) #endif #ifdef EXTRA_EXTRAPOLATION #ifdef BORDER_CONSTANT #define ELEM(i,l_edge,r_edge,elem1,elem2) (i)<(l_edge) | (i) >= (r_edge) ? (elem1) : (elem2) #elif defined BORDER_REPLICATE #define EXTRAPOLATE(t, minT, maxT) \ { \ t = max(min(t, (maxT) - 1), (minT)); \ } #elif defined BORDER_WRAP #define EXTRAPOLATE(x, minT, maxT) \ { \ if (t < (minT)) \ t -= ((t - (maxT) + 1) / (maxT)) * (maxT); \ if (t >= (maxT)) \ t %= (maxT); \ } #elif defined(BORDER_REFLECT) || defined(BORDER_REFLECT_101) #define EXTRAPOLATE_(t, minT, maxT, delta) \ { \ if ((maxT) - (minT) == 1) \ t = (minT); \ else \ do \ { \ if (t < (minT)) \ t = (minT) - (t - (minT)) - 1 + delta; \ else \ t = (maxT) - 1 - (t - (maxT)) - delta; \ } \ while (t >= (maxT) || t < (minT)); \ \ } #ifdef BORDER_REFLECT #define EXTRAPOLATE(t, minT, maxT) EXTRAPOLATE_(t, minT, maxT, 0) #elif defined(BORDER_REFLECT_101) #define EXTRAPOLATE(t, minT, maxT) EXTRAPOLATE_(t, minT, maxT, 1) #endif #else #error No extrapolation method #endif #else #ifdef BORDER_CONSTANT #define ELEM(i,l_edge,r_edge,elem1,elem2) (i)<(l_edge) | (i) >= (r_edge) ? (elem1) : (elem2) #else #define EXTRAPOLATE(t, minT, maxT) \ { \ int _delta = t - (minT); \ _delta = ADDR_L(_delta, 0, (maxT) - (minT)); \ _delta = ADDR_R(_delta, (maxT) - (minT), _delta); \ t = _delta + (minT); \ } #endif #endif #define noconvert #if CN != 3 #define loadpix(addr) *(__global const srcT *)(addr) #define storepix(val, addr) *(__global dstT *)(addr) = val #define SRCSIZE (int)sizeof(srcT) #define DSTSIZE (int)sizeof(dstT) #else #define loadpix(addr) vload3(0, (__global const srcT1 *)(addr)) #define storepix(val, addr) vstore3(val, 0, (__global dstT1 *)(addr)) #define SRCSIZE (int)sizeof(srcT1)*3 #define DSTSIZE (int)sizeof(dstT1)*3 #endif #define DIG(a) a, __constant dstT1 mat_kernel[] = { COEFF }; #if (defined(INTEGER_ARITHMETIC) && !INTEL_DEVICE) #define dstT4 int4 #define convertDstVec convert_int4 #else #define dstT4 float4 #define convertDstVec convert_float4 #endif __kernel void row_filter_C1_D0(__global const uchar * src, int src_step_in_pixel, int src_offset_x, int src_offset_y, int src_cols, int src_rows, int src_whole_cols, int src_whole_rows, __global float * dst, int dst_step_in_pixel, int dst_cols, int dst_rows, int radiusy) { int x = get_global_id(0)<<2; int y = get_global_id(1); int l_x = get_local_id(0); int l_y = get_local_id(1); int start_x = x + src_offset_x - RADIUSX & 0xfffffffc; int offset = src_offset_x - RADIUSX & 3; int start_y = y + src_offset_y - radiusy; int start_addr = mad24(start_y, src_step_in_pixel, start_x); dstT4 sum; uchar4 temp[READ_TIMES_ROW]; __local uchar4 LDS_DAT[LSIZE1][READ_TIMES_ROW * LSIZE0 + 1]; #ifdef BORDER_CONSTANT int end_addr = mad24(src_whole_rows - 1, src_step_in_pixel, src_whole_cols); for (int i = 0; i < READ_TIMES_ROW; ++i) { int current_addr = mad24(i, LSIZE0 << 2, start_addr); current_addr = current_addr < end_addr && current_addr > 0 ? current_addr : 0; temp[i] = *(__global const uchar4 *)&src[current_addr]; } #ifdef BORDER_ISOLATED for (int i = 0; i < READ_TIMES_ROW; ++i) { temp[i].x = ELEM(start_x+i*LSIZE0*4, src_offset_x, src_offset_x + src_cols, 0, temp[i].x); temp[i].y = ELEM(start_x+i*LSIZE0*4+1, src_offset_x, src_offset_x + src_cols, 0, temp[i].y); temp[i].z = ELEM(start_x+i*LSIZE0*4+2, src_offset_x, src_offset_x + src_cols, 0, temp[i].z); temp[i].w = ELEM(start_x+i*LSIZE0*4+3, src_offset_x, src_offset_x + src_cols, 0, temp[i].w); temp[i] = ELEM(start_y, src_offset_y, src_offset_y + src_rows, (uchar4)0, temp[i]); } #else for (int i = 0; i < READ_TIMES_ROW; ++i) { temp[i].x = ELEM(start_x+i*LSIZE0*4, 0, src_whole_cols, 0, temp[i].x); temp[i].y = ELEM(start_x+i*LSIZE0*4+1, 0, src_whole_cols, 0, temp[i].y); temp[i].z = ELEM(start_x+i*LSIZE0*4+2, 0, src_whole_cols, 0, temp[i].z); temp[i].w = ELEM(start_x+i*LSIZE0*4+3, 0, src_whole_cols, 0, temp[i].w); temp[i] = ELEM(start_y, 0, src_whole_rows, (uchar4)0, temp[i]); } #endif #else #ifdef BORDER_ISOLATED int not_all_in_range = (start_xsrc_offset_x + src_cols)| (start_y= src_offset_y + src_rows); #else int not_all_in_range = (start_x<0) | (start_x + READ_TIMES_ROW*LSIZE0*4+4>src_whole_cols)| (start_y<0) | (start_y >= src_whole_rows); #endif int4 index[READ_TIMES_ROW], addr; int s_y; if (not_all_in_range) { for (int i = 0; i < READ_TIMES_ROW; ++i) { index[i] = (int4)(mad24(i, LSIZE0 << 2, start_x)) + (int4)(0, 1, 2, 3); #ifdef BORDER_ISOLATED EXTRAPOLATE(index[i].x, src_offset_x, src_offset_x + src_cols); EXTRAPOLATE(index[i].y, src_offset_x, src_offset_x + src_cols); EXTRAPOLATE(index[i].z, src_offset_x, src_offset_x + src_cols); EXTRAPOLATE(index[i].w, src_offset_x, src_offset_x + src_cols); #else EXTRAPOLATE(index[i].x, 0, src_whole_cols); EXTRAPOLATE(index[i].y, 0, src_whole_cols); EXTRAPOLATE(index[i].z, 0, src_whole_cols); EXTRAPOLATE(index[i].w, 0, src_whole_cols); #endif } s_y = start_y; #ifdef BORDER_ISOLATED EXTRAPOLATE(s_y, src_offset_y, src_offset_y + src_rows); #else EXTRAPOLATE(s_y, 0, src_whole_rows); #endif for (int i = 0; i < READ_TIMES_ROW; ++i) { addr = mad24((int4)s_y, (int4)src_step_in_pixel, index[i]); temp[i].x = src[addr.x]; temp[i].y = src[addr.y]; temp[i].z = src[addr.z]; temp[i].w = src[addr.w]; } } else { for (int i = 0; i < READ_TIMES_ROW; ++i) temp[i] = *(__global uchar4*)&src[mad24(i, LSIZE0 << 2, start_addr)]; } #endif for (int i = 0; i < READ_TIMES_ROW; ++i) LDS_DAT[l_y][mad24(i, LSIZE0, l_x)] = temp[i]; barrier(CLK_LOCAL_MEM_FENCE); sum = convertDstVec(vload4(0,(__local uchar *)&LDS_DAT[l_y][l_x]+RADIUSX+offset)) * mat_kernel[RADIUSX]; for (int i = 1; i <= RADIUSX; ++i) { temp[0] = vload4(0, (__local uchar*)&LDS_DAT[l_y][l_x] + RADIUSX + offset - i); temp[1] = vload4(0, (__local uchar*)&LDS_DAT[l_y][l_x] + RADIUSX + offset + i); #if (defined(INTEGER_ARITHMETIC) && !INTEL_DEVICE) sum += mad24(convertDstVec(temp[0]), mat_kernel[RADIUSX-i], convertDstVec(temp[1]) * mat_kernel[RADIUSX + i]); #else sum += mad(convertDstVec(temp[0]), mat_kernel[RADIUSX-i], convertDstVec(temp[1]) * mat_kernel[RADIUSX + i]); #endif } start_addr = mad24(y, dst_step_in_pixel, x); if ((x+3= 0 ? current_addr : 0; temp[i] = loadpix(src + current_addr); } #ifdef BORDER_ISOLATED for (int i = 0; i < READ_TIMES_ROW; ++i) { temp[i] = ELEM(mad24(i, LSIZE0, start_x), src_offset_x, src_offset_x + src_cols, (srcT)(0), temp[i]); temp[i] = ELEM(start_y, src_offset_y, src_offset_y + src_rows, (srcT)(0), temp[i]); } #else for (int i = 0; i < READ_TIMES_ROW; ++i) { temp[i] = ELEM(mad24(i, LSIZE0, start_x), 0, src_whole_cols, (srcT)(0), temp[i]); temp[i] = ELEM(start_y, 0, src_whole_rows, (srcT)(0), temp[i]); } #endif #else int index[READ_TIMES_ROW], s_x, s_y; for (int i = 0; i < READ_TIMES_ROW; ++i) { s_x = mad24(i, LSIZE0, start_x); s_y = start_y; #ifdef BORDER_ISOLATED EXTRAPOLATE(s_x, src_offset_x, src_offset_x + src_cols); EXTRAPOLATE(s_y, src_offset_y, src_offset_y + src_rows); #else EXTRAPOLATE(s_x, 0, src_whole_cols); EXTRAPOLATE(s_y, 0, src_whole_rows); #endif index[i] = mad24(s_y, src_step, s_x * SRCSIZE); } for (int i = 0; i < READ_TIMES_ROW; ++i) temp[i] = loadpix(src + index[i]); #endif for (int i = 0; i < READ_TIMES_ROW; ++i) LDS_DAT[l_y][mad24(i, LSIZE0, l_x)] = temp[i]; barrier(CLK_LOCAL_MEM_FENCE); sum = convertToDstT(LDS_DAT[l_y][l_x + RADIUSX]) * mat_kernel[RADIUSX]; for (int i = 1; i <= RADIUSX; ++i) { temp[0] = LDS_DAT[l_y][l_x + RADIUSX - i]; temp[1] = LDS_DAT[l_y][l_x + RADIUSX + i]; #if (defined(INTEGER_ARITHMETIC) && !INTEL_DEVICE) sum += mad24(convertToDstT(temp[0]), mat_kernel[RADIUSX - i], convertToDstT(temp[1]) * mat_kernel[RADIUSX + i]); #else sum += mad(convertToDstT(temp[0]), mat_kernel[RADIUSX - i], convertToDstT(temp[1]) * mat_kernel[RADIUSX + i]); #endif } if (x < dst_cols && y < dst_rows) { start_addr = mad24(y, dst_step, x * DSTSIZE); storepix(sum, dst + start_addr); } } e99b92fca8604fe253f3c641802ce117filterSepCol#ifdef DOUBLE_SUPPORT #ifdef cl_amd_fp64 #pragma OPENCL EXTENSION cl_amd_fp64:enable #elif defined (cl_khr_fp64) #pragma OPENCL EXTENSION cl_khr_fp64:enable #endif #endif #define READ_TIMES_COL ((2*(RADIUSY+LSIZE1)-1)/LSIZE1) #define RADIUS 1 #define noconvert #if CN != 3 #define loadpix(addr) *(__global const srcT *)(addr) #define storepix(val, addr) *(__global dstT *)(addr) = val #define SRCSIZE (int)sizeof(srcT) #define DSTSIZE (int)sizeof(dstT) #else #define loadpix(addr) vload3(0, (__global const srcT1 *)(addr)) #define storepix(val, addr) vstore3(val, 0, (__global dstT1 *)(addr)) #define SRCSIZE (int)sizeof(srcT1)*3 #define DSTSIZE (int)sizeof(dstT1)*3 #endif #define DIG(a) a, __constant srcT1 mat_kernel[] = { COEFF }; __kernel void col_filter(__global const uchar * src, int src_step, int src_offset, int src_whole_rows, int src_whole_cols, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols, float delta) { int x = get_global_id(0); int y = get_global_id(1); int l_x = get_local_id(0); int l_y = get_local_id(1); int start_addr = mad24(y, src_step, x * SRCSIZE); int end_addr = mad24(src_whole_rows - 1, src_step, src_whole_cols * SRCSIZE); srcT sum, temp[READ_TIMES_COL]; __local srcT LDS_DAT[LSIZE1 * READ_TIMES_COL][LSIZE0 + 1]; for (int i = 0; i < READ_TIMES_COL; ++i) { int current_addr = mad24(i, LSIZE1 * src_step, start_addr); current_addr = current_addr < end_addr ? current_addr : 0; temp[i] = loadpix(src + current_addr); } for (int i = 0; i < READ_TIMES_COL; ++i) LDS_DAT[mad24(i, LSIZE1, l_y)][l_x] = temp[i]; barrier(CLK_LOCAL_MEM_FENCE); sum = LDS_DAT[l_y + RADIUSY][l_x] * mat_kernel[RADIUSY]; for (int i = 1; i <= RADIUSY; ++i) { temp[0] = LDS_DAT[l_y + RADIUSY - i][l_x]; temp[1] = LDS_DAT[l_y + RADIUSY + i][l_x]; #if (defined(INTEGER_ARITHMETIC) && !INTEL_DEVICE) sum += mad24(temp[0],mat_kernel[RADIUSY - i], temp[1] * mat_kernel[RADIUSY + i]); #else sum += mad(temp[0], mat_kernel[RADIUSY - i], temp[1] * mat_kernel[RADIUSY + i]); #endif } #ifdef INTEGER_ARITHMETIC #ifdef INTEL_DEVICE sum = (sum + (1 << (SHIFT_BITS-1))) / (1 << SHIFT_BITS); #else sum = (sum + (1 << (SHIFT_BITS-1))) >> SHIFT_BITS; #endif #endif if (x < dst_cols && y < dst_rows) { start_addr = mad24(y, dst_step, mad24(DSTSIZE, x, dst_offset)); storepix(convertToDstT(sum + (srcT)(delta)), dst + start_addr); } } 83a29b40287a01ffdb496951c71bc7cd#ifdef BORDER_REPLICATE #define ADDR_L(i, l_edge, r_edge) ((i) < (l_edge) ? (l_edge) : (i)) #define ADDR_R(i, r_edge, addr) ((i) >= (r_edge) ? (r_edge)-1 : (addr)) #define ADDR_H(i, t_edge, b_edge) ((i) < (t_edge) ? (t_edge) :(i)) #define ADDR_B(i, b_edge, addr) ((i) >= (b_edge) ? (b_edge)-1 :(addr)) #endif #ifdef BORDER_REFLECT #define ADDR_L(i, l_edge, r_edge) ((i) < (l_edge) ? -(i)-1 : (i)) #define ADDR_R(i, r_edge, addr) ((i) >= (r_edge) ? -(i)-1+((r_edge)<<1) : (addr)) #define ADDR_H(i, t_edge, b_edge) ((i) < (t_edge) ? -(i)-1 : (i)) #define ADDR_B(i, b_edge, addr) ((i) >= (b_edge) ? -(i)-1+((b_edge)<<1) : (addr)) #endif #ifdef BORDER_REFLECT_101 #define ADDR_L(i, l_edge, r_edge) ((i) < (l_edge) ? -(i) : (i)) #define ADDR_R(i, r_edge, addr) ((i) >= (r_edge) ? -(i)-2+((r_edge)<<1) : (addr)) #define ADDR_H(i, t_edge, b_edge) ((i) < (t_edge) ? -(i) : (i)) #define ADDR_B(i, b_edge, addr) ((i) >= (b_edge) ? -(i)-2+((b_edge)<<1) : (addr)) #endif #ifdef BORDER_WRAP #define ADDR_L(i, l_edge, r_edge) ((i) < (l_edge) ? (i)+(r_edge) : (i)) #define ADDR_R(i, r_edge, addr) ((i) >= (r_edge) ? (i)-(r_edge) : (addr)) #define ADDR_H(i, t_edge, b_edge) ((i) < (t_edge) ? (i)+(b_edge) : (i)) #define ADDR_B(i, b_edge, addr) ((i) >= (b_edge) ? (i)-(b_edge) : (addr)) #endif #ifdef BORDER_ISOLATED #define ISOLATED_MIN(VAL) (VAL) #else #define ISOLATED_MIN(VAL) 0 #endif #ifdef EXTRA_EXTRAPOLATION #ifdef BORDER_CONSTANT #elif defined BORDER_REPLICATE #define EXTRAPOLATE(x, y, minX, minY, maxX, maxY) \ { \ x = max(min(x, maxX - 1), minX); \ y = max(min(y, maxY - 1), minY); \ } #elif defined BORDER_WRAP #define EXTRAPOLATE(x, y, minX, minY, maxX, maxY) \ { \ if (x < minX) \ x -= ((x - maxX + 1) / maxX) * maxX; \ if (x >= maxX) \ x %= maxX; \ if (y < minY) \ y -= ((y - maxY + 1) / maxY) * maxY; \ if (y >= maxY) \ y %= maxY; \ } #elif defined(BORDER_REFLECT) || defined(BORDER_REFLECT_101) #define EXTRAPOLATE_(x, y, minX, minY, maxX, maxY, delta) \ { \ if (maxX - minX == 1) \ x = minX; \ else \ do \ { \ if (x < minX) \ x = minX - (x - minX) - 1 + delta; \ else \ x = maxX - 1 - (x - maxX) - delta; \ } \ while (x >= maxX || x < minX); \ \ if (maxY - minY == 1) \ y = minY; \ else \ do \ { \ if (y < minY) \ y = minY - (y - minY) - 1 + delta; \ else \ y = maxY - 1 - (y - maxY) - delta; \ } \ while (y >= maxY || y < minY); \ } #ifdef BORDER_REFLECT #define EXTRAPOLATE(x, y, minX, minY, maxX, maxY) EXTRAPOLATE_(x, y, minX, minY, maxX, maxY, 0) #elif defined(BORDER_REFLECT_101) || defined(BORDER_REFLECT101) #define EXTRAPOLATE(x, y, minX, minY, maxX, maxY) EXTRAPOLATE_(x, y, minX, minY, maxX, maxY, 1) #endif #else #error No extrapolation method #endif #else #define EXTRAPOLATE(x, y, minX, minY, maxX, maxY) \ { \ int _row = y - ISOLATED_MIN(minY), _col = x - ISOLATED_MIN(minX); \ _row = ADDR_H(_row, 0, maxY - ISOLATED_MIN(minY)); \ _row = ADDR_B(_row, maxY - ISOLATED_MIN(minY), _row); \ y = _row + ISOLATED_MIN(minY); \ \ _col = ADDR_L(_col, 0, maxX - ISOLATED_MIN(minX)); \ _col = ADDR_R(_col, maxX - ISOLATED_MIN(minX), _col); \ x = _col + ISOLATED_MIN(minX); \ } #endif #ifdef DOUBLE_SUPPORT #ifdef cl_amd_fp64 #pragma OPENCL EXTENSION cl_amd_fp64:enable #elif defined (cl_khr_fp64) #pragma OPENCL EXTENSION cl_khr_fp64:enable #endif #endif #if cn != 3 #define loadpix(addr) *(__global const srcT *)(addr) #define storepix(val, addr) *(__global dstT *)(addr) = val #define SRCSIZE (int)sizeof(srcT) #define DSTSIZE (int)sizeof(dstT) #else #define loadpix(addr) vload3(0, (__global const srcT1 *)(addr)) #define storepix(val, addr) vstore3(val, 0, (__global dstT1 *)(addr)) #define SRCSIZE (int)sizeof(srcT1) * cn #define DSTSIZE (int)sizeof(dstT1) * cn #endif #define noconvert struct RectCoords { int x1, y1, x2, y2; }; #ifdef BORDER_ISOLATED inline bool isBorder(const struct RectCoords bounds, int2 coord, int numPixels) { return (coord.x < bounds.x1 || coord.y < bounds.y1 || coord.x + numPixels > bounds.x2 || coord.y >= bounds.y2); } #else inline bool isBorder(const struct RectCoords bounds, int2 coord, int numPixels) { return (coord.x < 0 || coord.y < 0 || coord.x + numPixels > bounds.x2 || coord.y >= bounds.y2); } #endif inline WT getBorderPixel(const struct RectCoords bounds, int2 coord, __global const uchar* srcptr, int srcstep) { #ifdef BORDER_CONSTANT return (WT)(0); #else int selected_col = coord.x; int selected_row = coord.y; EXTRAPOLATE(selected_col, selected_row, bounds.x1, bounds.y1, bounds.x2, bounds.y2 ); coord = (int2)(selected_col, selected_row); __global const uchar* ptr = srcptr + mul24(coord.y, srcstep) + coord.x * SRCSIZE; return convertToWT(loadpix(ptr)); #endif } inline WT readSrcPixelSingle(int2 pos, __global const uchar* srcptr, int srcstep, const struct RectCoords srcCoords) { if (!isBorder(srcCoords, pos, 1)) { __global const uchar* ptr = srcptr + mul24(pos.y, srcstep) + pos.x * SRCSIZE; return convertToWT(loadpix(ptr)); } else { return getBorderPixel(srcCoords, pos, srcptr, srcstep); } } #define __CAT(x, y) x##y #define CAT(x, y) __CAT(x, y) #define vload1(OFFSET, PTR) (*(PTR + OFFSET)) #define PX_LOAD_VEC_TYPE CAT(srcT1, PX_LOAD_VEC_SIZE) #define PX_LOAD_FLOAT_VEC_TYPE CAT(WT1, PX_LOAD_VEC_SIZE) #if PX_LOAD_VEC_SIZE == 1 #define PX_LOAD_FLOAT_VEC_CONV (float) #elif PX_LOAD_VEC_SIZE == 2 #define PX_LOAD_FLOAT_VEC_CONV convert_float2 #elif PX_LOAD_VEC_SIZE == 3 #define PX_LOAD_FLOAT_VEC_CONV convert_float3 #elif PX_LOAD_VEC_SIZE == 4 #define PX_LOAD_FLOAT_VEC_CONV convert_float4 #endif #define PX_LOAD CAT(vload, PX_LOAD_VEC_SIZE) #define float1 float inline PX_LOAD_FLOAT_VEC_TYPE readSrcPixelGroup(int2 pos, __global const uchar* srcptr, int srcstep, const struct RectCoords srcCoords) { __global const srcT1* ptr = (__global const srcT1*) (srcptr + mul24(pos.y, srcstep) + pos.x * SRCSIZE); return PX_LOAD_FLOAT_VEC_CONV(PX_LOAD(0, ptr)); } #define LOOP1(VAR, STMT) (STMT); (VAR)++; #define LOOP2(VAR, STMT) LOOP1(VAR, STMT); (STMT); (VAR)++; #define LOOP3(VAR, STMT) LOOP2(VAR, STMT); (STMT); (VAR)++; #define LOOP4(VAR, STMT) LOOP3(VAR, STMT); (STMT); (VAR)++; #define LOOP5(VAR, STMT) LOOP4(VAR, STMT); (STMT); (VAR)++; #define LOOP6(VAR, STMT) LOOP5(VAR, STMT); (STMT); (VAR)++; #define LOOP7(VAR, STMT) LOOP6(VAR, STMT); (STMT); (VAR)++; #define LOOP8(VAR, STMT) LOOP7(VAR, STMT); (STMT); (VAR)++; #define LOOP9(VAR, STMT) LOOP8(VAR, STMT); (STMT); (VAR)++; #define LOOP10(VAR, STMT) LOOP9(VAR, STMT); (STMT); (VAR)++; #define LOOP11(VAR, STMT) LOOP10(VAR, STMT); (STMT); (VAR)++; #define LOOP12(VAR, STMT) LOOP11(VAR, STMT); (STMT); (VAR)++; #define LOOP13(VAR, STMT) LOOP12(VAR, STMT); (STMT); (VAR)++; #define LOOP(N, VAR, STMT) CAT(LOOP, N)((VAR), (STMT)) #define DIG(a) a, __constant WT1 kernelData[] = { COEFF }; __kernel void filter2DSmall(__global const uchar * srcptr, int src_step, int srcOffsetX, int srcOffsetY, int srcEndX, int srcEndY, __global uchar * dstptr, int dst_step, int dst_offset, int rows, int cols, float delta) { const struct RectCoords srcCoords = { srcOffsetX, srcOffsetY, srcEndX, srcEndY }; const int startX = get_global_id(0) * PX_PER_WI_X; const int startY = get_global_id(1) * PX_PER_WI_Y; if ((startX >= cols) || (startY >= rows)) { return; } WT privateData[PX_PER_WI_Y + KERNEL_SIZE_Y - 1][PRIV_DATA_WIDTH]; int py = 0; LOOP(PX_LOAD_Y_ITERATIONS, py, { int y = startY + py; int px = 0; LOOP(PX_LOAD_X_ITERATIONS, px, { int x = startX + (px * PX_LOAD_NUM_PX); int2 srcPos = (int2)(srcCoords.x1 + x - ANCHOR_X, srcCoords.y1 + y - ANCHOR_Y); if (!isBorder(srcCoords, srcPos, PX_LOAD_NUM_PX)) { PX_LOAD_FLOAT_VEC_TYPE p = readSrcPixelGroup(srcPos, srcptr, src_step, srcCoords); *((PX_LOAD_FLOAT_VEC_TYPE*)&privateData[py][px * PX_LOAD_NUM_PX]) = p; } else { int lx = 0; LOOP(PX_LOAD_NUM_PX, lx, { WT p = readSrcPixelSingle(srcPos, srcptr, src_step, srcCoords); *((WT*)&privateData[py][px * PX_LOAD_NUM_PX + lx]) = p; srcPos.x++; }); } }); }); py = 0; LOOP(PX_PER_WI_Y, py, { int y = startY + py; int px = 0; LOOP(PX_PER_WI_X, px, { int x = startX + px; WT total_sum = 0; int sy = 0; int kernelIndex = 0; LOOP(KERNEL_SIZE_Y, sy, { int sx = 0; LOOP(KERNEL_SIZE_X, sx, { total_sum = mad(kernelData[kernelIndex++], privateData[py + sy][px + sx], total_sum); }); }); __global dstT* dstPtr = (__global dstT*)(dstptr + y * dst_step + dst_offset + x * DSTSIZE); storepix(convertToDstT(total_sum + (WT)(delta)), dstPtr); }); }); } 030d23b1d64d51e6485f8941af1e3fc3#ifdef EXTRA_EXTRAPOLATION #ifdef BORDER_CONSTANT #define EXTRAPOLATE(x, minV, maxV) #elif defined BORDER_REPLICATE #define EXTRAPOLATE(x, minV, maxV) \ { \ (x) = clamp((x), (minV), (maxV)-1); \ } #elif defined BORDER_WRAP #define EXTRAPOLATE(x, minV, maxV) \ { \ if ((x) < (minV)) \ (x) += ((maxV) - (minV)); \ if ((x) >= (maxV)) \ (x) -= ((maxV) - (minV)); \ } #elif defined BORDER_REFLECT #define EXTRAPOLATE(x, minV, maxV) \ { \ if ((maxV) - (minV) == 1) \ (x) = (minV); \ else \ while ((x) >= (maxV) || (x) < (minV)) \ { \ if ((x) < (minV)) \ (x) = (minV) - ((x) - (minV)) - 1; \ else \ (x) = (maxV) - 1 - ((x) - (maxV)); \ } \ } #elif defined BORDER_REFLECT_101 || defined BORDER_REFLECT101 #define EXTRAPOLATE(x, minV, maxV) \ { \ if ((maxV) - (minV) == 1) \ (x) = (minV); \ else \ while ((x) >= (maxV) || (x) < (minV)) \ { \ if ((x) < (minV)) \ (x) = (minV) - ((x) - (minV)); \ else \ (x) = (maxV) - 1 - ((x) - (maxV)) - 1; \ } \ } #else #error No extrapolation method #endif #else #ifdef BORDER_CONSTANT #define EXTRAPOLATE(x, minV, maxV) #elif defined BORDER_REPLICATE #define EXTRAPOLATE(x, minV, maxV) \ { \ (x) = clamp((x), (minV), (maxV)-1); \ } #elif defined BORDER_WRAP #define EXTRAPOLATE(x, minV, maxV) \ { \ if ((x) < (minV)) \ (x) += (((minV) - (x)) / ((maxV) - (minV)) + 1) * ((maxV) - (minV)); \ if ((x) >= (maxV)) \ (x) = ((x) - (minV)) % ((maxV) - (minV)) + (minV); \ } #elif defined BORDER_REFLECT #define EXTRAPOLATE(x, minV, maxV) \ { \ (x) = clamp((x), 2 * (minV) - (x) - 1, 2 * (maxV) - (x) - 1); \ } #elif defined BORDER_REFLECT_101 || defined BORDER_REFLECT101 #define EXTRAPOLATE(x, minV, maxV) \ { \ (x) = clamp((x), 2 * (minV) - (x), 2 * (maxV) - (x) - 2); \ } #else #error No extrapolation method #endif #endif #ifdef DOUBLE_SUPPORT #ifdef cl_amd_fp64 #pragma OPENCL EXTENSION cl_amd_fp64:enable #elif defined (cl_khr_fp64) #pragma OPENCL EXTENSION cl_khr_fp64:enable #endif #endif #if cn != 3 #define loadpix(addr) *(__global const srcT *)(addr) #define storepix(val, addr) *(__global dstT *)(addr) = val #define SRCSIZE (int)sizeof(srcT) #define DSTSIZE (int)sizeof(dstT) #else #define loadpix(addr) vload3(0, (__global const srcT1 *)(addr)) #define storepix(val, addr) vstore3(val, 0, (__global dstT1 *)(addr)) #define SRCSIZE (int)sizeof(srcT1) * cn #define DSTSIZE (int)sizeof(dstT1) * cn #endif #define UPDATE_COLUMN_SUM(col) \ __constant WT1 * k = &kernelData[KERNEL_SIZE_Y2_ALIGNED * col]; \ WT tmp_sum = 0; \ for (int sy = 0; sy < KERNEL_SIZE_Y; sy++) \ tmp_sum += data[sy] * k[sy]; \ sumOfCols[local_id] = tmp_sum; \ barrier(CLK_LOCAL_MEM_FENCE); #define UPDATE_TOTAL_SUM(col) \ int id = local_id + col - ANCHOR_X; \ if (id >= 0 && id < LOCAL_SIZE) \ total_sum += sumOfCols[id]; \ barrier(CLK_LOCAL_MEM_FENCE); #define noconvert #define DIG(a) a, __constant WT1 kernelData[] = { COEFF }; __kernel void filter2D(__global const uchar * srcptr, int src_step, int srcOffsetX, int srcOffsetY, int srcEndX, int srcEndY, __global uchar * dstptr, int dst_step, int dst_offset, int rows, int cols, float delta) { int local_id = get_local_id(0); int x = local_id + (LOCAL_SIZE - (KERNEL_SIZE_X - 1)) * get_group_id(0) - ANCHOR_X; int y = get_global_id(1); WT data[KERNEL_SIZE_Y]; __local WT sumOfCols[LOCAL_SIZE]; #ifdef BORDER_ISOLATED int srcBeginX = srcOffsetX; int srcBeginY = srcOffsetY; #else int srcBeginX = 0; int srcBeginY = 0; #endif int srcX = srcOffsetX + x; int srcY = srcOffsetY + y - ANCHOR_Y; __global dstT *dst = (__global dstT *)(dstptr + mad24(y, dst_step, mad24(x, DSTSIZE, dst_offset))); #ifdef BORDER_CONSTANT if (srcX >= srcBeginX && srcX < srcEndX) { for (int sy = 0, sy_index = 0; sy < KERNEL_SIZE_Y; sy++, srcY++) { if (srcY >= srcBeginY && srcY < srcEndY) data[sy + sy_index] = convertToWT(loadpix(srcptr + mad24(srcY, src_step, srcX * SRCSIZE))); else data[sy + sy_index] = (WT)(0); } } else { for (int sy = 0, sy_index = 0; sy < KERNEL_SIZE_Y; sy++, srcY++) { data[sy + sy_index] = (WT)(0); } } #else EXTRAPOLATE(srcX, srcBeginX, srcEndX); for (int sy = 0, sy_index = 0; sy < KERNEL_SIZE_Y; sy++, srcY++) { int tempY = srcY; EXTRAPOLATE(tempY, srcBeginY, srcEndY); data[sy + sy_index] = convertToWT(loadpix(srcptr + mad24(tempY, src_step, srcX * SRCSIZE))); } #endif WT total_sum = 0; for (int sx = 0; sx < ANCHOR_X; sx++) { UPDATE_COLUMN_SUM(sx); UPDATE_TOTAL_SUM(sx); } __constant WT1 * k = &kernelData[KERNEL_SIZE_Y2_ALIGNED * ANCHOR_X]; for (int sy = 0; sy < KERNEL_SIZE_Y; sy++) total_sum += data[sy] * k[sy]; for (int sx = ANCHOR_X + 1; sx < KERNEL_SIZE_X; sx++) { UPDATE_COLUMN_SUM(sx); UPDATE_TOTAL_SUM(sx); } if (local_id >= ANCHOR_X && local_id < LOCAL_SIZE - (KERNEL_SIZE_X - 1 - ANCHOR_X) && x >= 0 && x < cols) storepix(convertToDstT(total_sum + (WT)(delta)), dst); } 77e935928055f243ff9082b1879a0b2ccvtcolor#if depth == 0 #define DATA_TYPE uchar #define MAX_NUM 255 #define HALF_MAX_NUM 128 #define COEFF_TYPE int #define SAT_CAST(num) convert_uchar_sat(num) #define DEPTH_0 #elif depth == 2 #define DATA_TYPE ushort #define MAX_NUM 65535 #define HALF_MAX_NUM 32768 #define COEFF_TYPE int #define SAT_CAST(num) convert_ushort_sat(num) #define DEPTH_2 #elif depth == 5 #define DATA_TYPE float #define MAX_NUM 1.0f #define HALF_MAX_NUM 0.5f #define COEFF_TYPE float #define SAT_CAST(num) (num) #define DEPTH_5 #else #error "invalid depth: should be 0 (CV_8U), 2 (CV_16U) or 5 (CV_32F)" #endif #define CV_DESCALE(x,n) (((x) + (1 << ((n)-1))) >> (n)) enum { yuv_shift = 14, xyz_shift = 12, hsv_shift = 12, R2Y = 4899, G2Y = 9617, B2Y = 1868, BLOCK_SIZE = 256 }; #define B2YF 0.114f #define G2YF 0.587f #define R2YF 0.299f #define YCBF 0.564f #define YCRF 0.713f #define YCBI 9241 #define YCRI 11682 #define B2UF 0.492f #define R2VF 0.877f #define B2UI 8061 #define R2VI 14369 #define U2BF 2.032f #define U2GF -0.395f #define V2GF -0.581f #define V2RF 1.140f #define U2BI 33292 #define U2GI -6472 #define V2GI -9519 #define V2RI 18678 #define CR2RF 1.403f #define CB2GF -0.344f #define CR2GF -0.714f #define CB2BF 1.773f #define CR2RI 22987 #define CB2GI -5636 #define CR2GI -11698 #define CB2BI 29049 #define scnbytes ((int)sizeof(DATA_TYPE)*scn) #define dcnbytes ((int)sizeof(DATA_TYPE)*dcn) #ifndef hscale #define hscale 0 #endif #ifndef hrange #define hrange 0 #endif #if bidx == 0 #define R_COMP z #define G_COMP y #define B_COMP x #else #define R_COMP x #define G_COMP y #define B_COMP z #endif #ifndef uidx #define uidx 0 #endif #ifndef yidx #define yidx 0 #endif #ifndef PIX_PER_WI_X #define PIX_PER_WI_X 1 #endif #define __CAT(x, y) x##y #define CAT(x, y) __CAT(x, y) #define DATA_TYPE_4 CAT(DATA_TYPE, 4) #define DATA_TYPE_3 CAT(DATA_TYPE, 3) __kernel void RGB2Gray(__global const uchar * srcptr, int src_step, int src_offset, __global uchar * dstptr, int dst_step, int dst_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, scnbytes, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, dcnbytes, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { __global const DATA_TYPE* src = (__global const DATA_TYPE*)(srcptr + src_index); __global DATA_TYPE* dst = (__global DATA_TYPE*)(dstptr + dst_index); DATA_TYPE_3 src_pix = vload3(0, src); #ifdef DEPTH_5 dst[0] = fma(src_pix.B_COMP, B2YF, fma(src_pix.G_COMP, G2YF, src_pix.R_COMP * R2YF)); #else dst[0] = (DATA_TYPE)CV_DESCALE(mad24(src_pix.B_COMP, B2Y, mad24(src_pix.G_COMP, G2Y, mul24(src_pix.R_COMP, R2Y))), yuv_shift); #endif ++y; src_index += src_step; dst_index += dst_step; } } } } __kernel void Gray2RGB(__global const uchar * srcptr, int src_step, int src_offset, __global uchar * dstptr, int dst_step, int dst_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, scnbytes, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, dcnbytes, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { __global const DATA_TYPE* src = (__global const DATA_TYPE*)(srcptr + src_index); __global DATA_TYPE* dst = (__global DATA_TYPE*)(dstptr + dst_index); DATA_TYPE val = src[0]; #if dcn == 3 || defined DEPTH_5 dst[0] = dst[1] = dst[2] = val; #if dcn == 4 dst[3] = MAX_NUM; #endif #else *(__global DATA_TYPE_4 *)dst = (DATA_TYPE_4)(val, val, val, MAX_NUM); #endif ++y; dst_index += dst_step; src_index += src_step; } } } } __constant float c_RGB2YUVCoeffs_f[5] = { B2YF, G2YF, R2YF, B2UF, R2VF }; __constant int c_RGB2YUVCoeffs_i[5] = { B2Y, G2Y, R2Y, B2UI, R2VI }; __kernel void RGB2YUV(__global const uchar* srcptr, int src_step, int src_offset, __global uchar* dstptr, int dst_step, int dt_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, scnbytes, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, dcnbytes, dt_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { __global const DATA_TYPE* src = (__global const DATA_TYPE*)(srcptr + src_index); __global DATA_TYPE* dst = (__global DATA_TYPE*)(dstptr + dst_index); DATA_TYPE_3 src_pix = vload3(0, src); DATA_TYPE b = src_pix.B_COMP, g = src_pix.G_COMP, r = src_pix.R_COMP; #ifdef DEPTH_5 __constant float * coeffs = c_RGB2YUVCoeffs_f; const DATA_TYPE Y = fma(b, coeffs[0], fma(g, coeffs[1], r * coeffs[2])); const DATA_TYPE U = fma(b - Y, coeffs[3], HALF_MAX_NUM); const DATA_TYPE V = fma(r - Y, coeffs[4], HALF_MAX_NUM); #else __constant int * coeffs = c_RGB2YUVCoeffs_i; const int delta = HALF_MAX_NUM * (1 << yuv_shift); const int Y = CV_DESCALE(mad24(b, coeffs[0], mad24(g, coeffs[1], mul24(r, coeffs[2]))), yuv_shift); const int U = CV_DESCALE(mad24(b - Y, coeffs[3], delta), yuv_shift); const int V = CV_DESCALE(mad24(r - Y, coeffs[4], delta), yuv_shift); #endif dst[0] = SAT_CAST( Y ); dst[1] = SAT_CAST( U ); dst[2] = SAT_CAST( V ); ++y; dst_index += dst_step; src_index += src_step; } } } } __constant float c_YUV2RGBCoeffs_f[4] = { U2BF, U2GF, V2GF, V2RF }; __constant int c_YUV2RGBCoeffs_i[4] = { U2BI, U2GI, V2GI, V2RI }; __kernel void YUV2RGB(__global const uchar* srcptr, int src_step, int src_offset, __global uchar* dstptr, int dst_step, int dt_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, scnbytes, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, dcnbytes, dt_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { __global const DATA_TYPE* src = (__global const DATA_TYPE*)(srcptr + src_index); __global DATA_TYPE* dst = (__global DATA_TYPE*)(dstptr + dst_index); DATA_TYPE_4 src_pix = vload4(0, src); DATA_TYPE Y = src_pix.x, U = src_pix.y, V = src_pix.z; #ifdef DEPTH_5 __constant float * coeffs = c_YUV2RGBCoeffs_f; float r = fma(V - HALF_MAX_NUM, coeffs[3], Y); float g = fma(V - HALF_MAX_NUM, coeffs[2], fma(U - HALF_MAX_NUM, coeffs[1], Y)); float b = fma(U - HALF_MAX_NUM, coeffs[0], Y); #else __constant int * coeffs = c_YUV2RGBCoeffs_i; const int r = Y + CV_DESCALE(mul24(V - HALF_MAX_NUM, coeffs[3]), yuv_shift); const int g = Y + CV_DESCALE(mad24(V - HALF_MAX_NUM, coeffs[2], mul24(U - HALF_MAX_NUM, coeffs[1])), yuv_shift); const int b = Y + CV_DESCALE(mul24(U - HALF_MAX_NUM, coeffs[0]), yuv_shift); #endif dst[bidx] = SAT_CAST( b ); dst[1] = SAT_CAST( g ); dst[bidx^2] = SAT_CAST( r ); #if dcn == 4 dst[3] = MAX_NUM; #endif ++y; dst_index += dst_step; src_index += src_step; } } } } __constant float c_YUV2RGBCoeffs_420[5] = { 1.163999557f, 2.017999649f, -0.390999794f, -0.812999725f, 1.5959997177f }; __kernel void YUV2RGB_NVx(__global const uchar* srcptr, int src_step, int src_offset, __global uchar* dstptr, int dst_step, int dt_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols / 2) { #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows / 2 ) { __global const uchar* ysrc = srcptr + mad24(y << 1, src_step, (x << 1) + src_offset); __global const uchar* usrc = srcptr + mad24(rows + y, src_step, (x << 1) + src_offset); __global uchar* dst1 = dstptr + mad24(y << 1, dst_step, mad24(x, dcn<<1, dt_offset)); __global uchar* dst2 = dst1 + dst_step; float Y1 = ysrc[0]; float Y2 = ysrc[1]; float Y3 = ysrc[src_step]; float Y4 = ysrc[src_step + 1]; float U = ((float)usrc[uidx]) - HALF_MAX_NUM; float V = ((float)usrc[1-uidx]) - HALF_MAX_NUM; __constant float* coeffs = c_YUV2RGBCoeffs_420; float ruv = fma(coeffs[4], V, 0.5f); float guv = fma(coeffs[3], V, fma(coeffs[2], U, 0.5f)); float buv = fma(coeffs[1], U, 0.5f); Y1 = max(0.f, Y1 - 16.f) * coeffs[0]; dst1[2 - bidx] = convert_uchar_sat(Y1 + ruv); dst1[1] = convert_uchar_sat(Y1 + guv); dst1[bidx] = convert_uchar_sat(Y1 + buv); #if dcn == 4 dst1[3] = 255; #endif Y2 = max(0.f, Y2 - 16.f) * coeffs[0]; dst1[dcn + 2 - bidx] = convert_uchar_sat(Y2 + ruv); dst1[dcn + 1] = convert_uchar_sat(Y2 + guv); dst1[dcn + bidx] = convert_uchar_sat(Y2 + buv); #if dcn == 4 dst1[7] = 255; #endif Y3 = max(0.f, Y3 - 16.f) * coeffs[0]; dst2[2 - bidx] = convert_uchar_sat(Y3 + ruv); dst2[1] = convert_uchar_sat(Y3 + guv); dst2[bidx] = convert_uchar_sat(Y3 + buv); #if dcn == 4 dst2[3] = 255; #endif Y4 = max(0.f, Y4 - 16.f) * coeffs[0]; dst2[dcn + 2 - bidx] = convert_uchar_sat(Y4 + ruv); dst2[dcn + 1] = convert_uchar_sat(Y4 + guv); dst2[dcn + bidx] = convert_uchar_sat(Y4 + buv); #if dcn == 4 dst2[7] = 255; #endif } ++y; } } } #if uidx < 2 __kernel void YUV2RGB_YV12_IYUV(__global const uchar* srcptr, int src_step, int src_offset, __global uchar* dstptr, int dst_step, int dt_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols / 2) { #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows / 2 ) { __global const uchar* ysrc = srcptr + mad24(y << 1, src_step, (x << 1) + src_offset); __global uchar* dst1 = dstptr + mad24(y << 1, dst_step, x * (dcn<<1) + dt_offset); __global uchar* dst2 = dst1 + dst_step; float Y1 = ysrc[0]; float Y2 = ysrc[1]; float Y3 = ysrc[src_step]; float Y4 = ysrc[src_step + 1]; #ifdef SRC_CONT __global const uchar* uvsrc = srcptr + mad24(rows, src_step, src_offset); int u_ind = mad24(y, cols >> 1, x); float uv[2] = { ((float)uvsrc[u_ind]) - HALF_MAX_NUM, ((float)uvsrc[u_ind + ((rows * cols) >> 2)]) - HALF_MAX_NUM }; #else int vsteps[2] = { cols >> 1, src_step - (cols >> 1)}; __global const uchar* usrc = srcptr + mad24(rows + (y>>1), src_step, src_offset + (y%2)*(cols >> 1) + x); __global const uchar* vsrc = usrc + mad24(rows >> 2, src_step, rows % 4 ? vsteps[y%2] : 0); float uv[2] = { ((float)usrc[0]) - HALF_MAX_NUM, ((float)vsrc[0]) - HALF_MAX_NUM }; #endif float U = uv[uidx]; float V = uv[1-uidx]; __constant float* coeffs = c_YUV2RGBCoeffs_420; float ruv = fma(coeffs[4], V, 0.5f); float guv = fma(coeffs[3], V, fma(coeffs[2], U, 0.5f)); float buv = fma(coeffs[1], U, 0.5f); Y1 = max(0.f, Y1 - 16.f) * coeffs[0]; dst1[2 - bidx] = convert_uchar_sat(Y1 + ruv); dst1[1] = convert_uchar_sat(Y1 + guv); dst1[bidx] = convert_uchar_sat(Y1 + buv); #if dcn == 4 dst1[3] = 255; #endif Y2 = max(0.f, Y2 - 16.f) * coeffs[0]; dst1[dcn + 2 - bidx] = convert_uchar_sat(Y2 + ruv); dst1[dcn + 1] = convert_uchar_sat(Y2 + guv); dst1[dcn + bidx] = convert_uchar_sat(Y2 + buv); #if dcn == 4 dst1[7] = 255; #endif Y3 = max(0.f, Y3 - 16.f) * coeffs[0]; dst2[2 - bidx] = convert_uchar_sat(Y3 + ruv); dst2[1] = convert_uchar_sat(Y3 + guv); dst2[bidx] = convert_uchar_sat(Y3 + buv); #if dcn == 4 dst2[3] = 255; #endif Y4 = max(0.f, Y4 - 16.f) * coeffs[0]; dst2[dcn + 2 - bidx] = convert_uchar_sat(Y4 + ruv); dst2[dcn + 1] = convert_uchar_sat(Y4 + guv); dst2[dcn + bidx] = convert_uchar_sat(Y4 + buv); #if dcn == 4 dst2[7] = 255; #endif } ++y; } } } #endif #if uidx < 2 __constant float c_RGB2YUVCoeffs_420[8] = { 0.256999969f, 0.50399971f, 0.09799957f, -0.1479988098f, -0.2909994125f, 0.438999176f, -0.3679990768f, -0.0709991455f }; __kernel void RGB2YUV_YV12_IYUV(__global const uchar* srcptr, int src_step, int src_offset, __global uchar* dstptr, int dst_step, int dst_offset, int rows, int cols) { int x = get_global_id(0) * PIX_PER_WI_X; int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols/2) { int src_index = mad24(y << 1, src_step, mad24(x << 1, scn, src_offset)); int ydst_index = mad24(y << 1, dst_step, (x << 1) + dst_offset); int y_rows = rows / 3 * 2; int vsteps[2] = { cols >> 1, dst_step - (cols >> 1)}; __constant float* coeffs = c_RGB2YUVCoeffs_420; #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows / 3) { __global const uchar* src1 = srcptr + src_index; __global const uchar* src2 = src1 + src_step; __global uchar* ydst1 = dstptr + ydst_index; __global uchar* ydst2 = ydst1 + dst_step; __global uchar* udst = dstptr + mad24(y_rows + (y>>1), dst_step, dst_offset + (y%2)*(cols >> 1) + x); __global uchar* vdst = udst + mad24(y_rows >> 2, dst_step, y_rows % 4 ? vsteps[y%2] : 0); #if PIX_PER_WI_X == 2 int s11 = *((__global const int*) src1); int s12 = *((__global const int*) src1 + 1); int s13 = *((__global const int*) src1 + 2); #if scn == 4 int s14 = *((__global const int*) src1 + 3); #endif int s21 = *((__global const int*) src2); int s22 = *((__global const int*) src2 + 1); int s23 = *((__global const int*) src2 + 2); #if scn == 4 int s24 = *((__global const int*) src2 + 3); #endif float src_pix1[scn * 4], src_pix2[scn * 4]; *((float4*) src_pix1) = convert_float4(as_uchar4(s11)); *((float4*) src_pix1 + 1) = convert_float4(as_uchar4(s12)); *((float4*) src_pix1 + 2) = convert_float4(as_uchar4(s13)); #if scn == 4 *((float4*) src_pix1 + 3) = convert_float4(as_uchar4(s14)); #endif *((float4*) src_pix2) = convert_float4(as_uchar4(s21)); *((float4*) src_pix2 + 1) = convert_float4(as_uchar4(s22)); *((float4*) src_pix2 + 2) = convert_float4(as_uchar4(s23)); #if scn == 4 *((float4*) src_pix2 + 3) = convert_float4(as_uchar4(s24)); #endif uchar4 y1, y2; y1.x = convert_uchar_sat(fma(coeffs[0], src_pix1[ 2-bidx], fma(coeffs[1], src_pix1[ 1], fma(coeffs[2], src_pix1[ bidx], 16.5f)))); y1.y = convert_uchar_sat(fma(coeffs[0], src_pix1[ scn+2-bidx], fma(coeffs[1], src_pix1[ scn+1], fma(coeffs[2], src_pix1[ scn+bidx], 16.5f)))); y1.z = convert_uchar_sat(fma(coeffs[0], src_pix1[2*scn+2-bidx], fma(coeffs[1], src_pix1[2*scn+1], fma(coeffs[2], src_pix1[2*scn+bidx], 16.5f)))); y1.w = convert_uchar_sat(fma(coeffs[0], src_pix1[3*scn+2-bidx], fma(coeffs[1], src_pix1[3*scn+1], fma(coeffs[2], src_pix1[3*scn+bidx], 16.5f)))); y2.x = convert_uchar_sat(fma(coeffs[0], src_pix2[ 2-bidx], fma(coeffs[1], src_pix2[ 1], fma(coeffs[2], src_pix2[ bidx], 16.5f)))); y2.y = convert_uchar_sat(fma(coeffs[0], src_pix2[ scn+2-bidx], fma(coeffs[1], src_pix2[ scn+1], fma(coeffs[2], src_pix2[ scn+bidx], 16.5f)))); y2.z = convert_uchar_sat(fma(coeffs[0], src_pix2[2*scn+2-bidx], fma(coeffs[1], src_pix2[2*scn+1], fma(coeffs[2], src_pix2[2*scn+bidx], 16.5f)))); y2.w = convert_uchar_sat(fma(coeffs[0], src_pix2[3*scn+2-bidx], fma(coeffs[1], src_pix2[3*scn+1], fma(coeffs[2], src_pix2[3*scn+bidx], 16.5f)))); *((__global int*) ydst1) = as_int(y1); *((__global int*) ydst2) = as_int(y2); float uv[4] = { fma(coeffs[3], src_pix1[ 2-bidx], fma(coeffs[4], src_pix1[ 1], fma(coeffs[5], src_pix1[ bidx], 128.5f))), fma(coeffs[5], src_pix1[ 2-bidx], fma(coeffs[6], src_pix1[ 1], fma(coeffs[7], src_pix1[ bidx], 128.5f))), fma(coeffs[3], src_pix1[2*scn+2-bidx], fma(coeffs[4], src_pix1[2*scn+1], fma(coeffs[5], src_pix1[2*scn+bidx], 128.5f))), fma(coeffs[5], src_pix1[2*scn+2-bidx], fma(coeffs[6], src_pix1[2*scn+1], fma(coeffs[7], src_pix1[2*scn+bidx], 128.5f))) }; udst[0] = convert_uchar_sat(uv[uidx] ); vdst[0] = convert_uchar_sat(uv[1 - uidx]); udst[1] = convert_uchar_sat(uv[2 + uidx]); vdst[1] = convert_uchar_sat(uv[3 - uidx]); #else float4 src_pix1 = convert_float4(vload4(0, src1)); float4 src_pix2 = convert_float4(vload4(0, src1+scn)); float4 src_pix3 = convert_float4(vload4(0, src2)); float4 src_pix4 = convert_float4(vload4(0, src2+scn)); ydst1[0] = convert_uchar_sat(fma(coeffs[0], src_pix1.R_COMP, fma(coeffs[1], src_pix1.G_COMP, fma(coeffs[2], src_pix1.B_COMP, 16.5f)))); ydst1[1] = convert_uchar_sat(fma(coeffs[0], src_pix2.R_COMP, fma(coeffs[1], src_pix2.G_COMP, fma(coeffs[2], src_pix2.B_COMP, 16.5f)))); ydst2[0] = convert_uchar_sat(fma(coeffs[0], src_pix3.R_COMP, fma(coeffs[1], src_pix3.G_COMP, fma(coeffs[2], src_pix3.B_COMP, 16.5f)))); ydst2[1] = convert_uchar_sat(fma(coeffs[0], src_pix4.R_COMP, fma(coeffs[1], src_pix4.G_COMP, fma(coeffs[2], src_pix4.B_COMP, 16.5f)))); float uv[2] = { fma(coeffs[3], src_pix1.R_COMP, fma(coeffs[4], src_pix1.G_COMP, fma(coeffs[5], src_pix1.B_COMP, 128.5f))), fma(coeffs[5], src_pix1.R_COMP, fma(coeffs[6], src_pix1.G_COMP, fma(coeffs[7], src_pix1.B_COMP, 128.5f))) }; udst[0] = convert_uchar_sat(uv[uidx] ); vdst[0] = convert_uchar_sat(uv[1-uidx]); #endif ++y; src_index += 2*src_step; ydst_index += 2*dst_step; } } } } #endif __kernel void YUV2RGB_422(__global const uchar* srcptr, int src_step, int src_offset, __global uchar* dstptr, int dst_step, int dst_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols / 2) { __global const uchar* src = srcptr + mad24(y, src_step, (x << 2) + src_offset); __global uchar* dst = dstptr + mad24(y, dst_step, mad24(x << 1, dcn, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows ) { __constant float* coeffs = c_YUV2RGBCoeffs_420; #ifndef USE_OPTIMIZED_LOAD float U = ((float) src[uidx]) - HALF_MAX_NUM; float V = ((float) src[(2 + uidx) % 4]) - HALF_MAX_NUM; float y00 = max(0.f, ((float) src[yidx]) - 16.f) * coeffs[0]; float y01 = max(0.f, ((float) src[yidx + 2]) - 16.f) * coeffs[0]; #else int load_src = *((__global int*) src); float vec_src[4] = { load_src & 0xff, (load_src >> 8) & 0xff, (load_src >> 16) & 0xff, (load_src >> 24) & 0xff}; float U = vec_src[uidx] - HALF_MAX_NUM; float V = vec_src[(2 + uidx) % 4] - HALF_MAX_NUM; float y00 = max(0.f, vec_src[yidx] - 16.f) * coeffs[0]; float y01 = max(0.f, vec_src[yidx + 2] - 16.f) * coeffs[0]; #endif float ruv = fma(coeffs[4], V, 0.5f); float guv = fma(coeffs[3], V, fma(coeffs[2], U, 0.5f)); float buv = fma(coeffs[1], U, 0.5f); dst[2 - bidx] = convert_uchar_sat(y00 + ruv); dst[1] = convert_uchar_sat(y00 + guv); dst[bidx] = convert_uchar_sat(y00 + buv); #if dcn == 4 dst[3] = 255; #endif dst[dcn + 2 - bidx] = convert_uchar_sat(y01 + ruv); dst[dcn + 1] = convert_uchar_sat(y01 + guv); dst[dcn + bidx] = convert_uchar_sat(y01 + buv); #if dcn == 4 dst[7] = 255; #endif } ++y; src += src_step; dst += dst_step; } } } __constant float c_RGB2YCrCbCoeffs_f[5] = {R2YF, G2YF, B2YF, YCRF, YCBF}; __constant int c_RGB2YCrCbCoeffs_i[5] = {R2Y, G2Y, B2Y, YCRI, YCBI}; __kernel void RGB2YCrCb(__global const uchar* srcptr, int src_step, int src_offset, __global uchar* dstptr, int dst_step, int dt_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, scnbytes, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, dcnbytes, dt_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { __global const DATA_TYPE* src = (__global const DATA_TYPE*)(srcptr + src_index); __global DATA_TYPE* dst = (__global DATA_TYPE*)(dstptr + dst_index); DATA_TYPE_4 src_pix = vload4(0, src); DATA_TYPE b = src_pix.B_COMP, g = src_pix.G_COMP, r = src_pix.R_COMP; #ifdef DEPTH_5 __constant float * coeffs = c_RGB2YCrCbCoeffs_f; DATA_TYPE Y = fma(b, coeffs[2], fma(g, coeffs[1], r * coeffs[0])); DATA_TYPE Cr = fma(r - Y, coeffs[3], HALF_MAX_NUM); DATA_TYPE Cb = fma(b - Y, coeffs[4], HALF_MAX_NUM); #else __constant int * coeffs = c_RGB2YCrCbCoeffs_i; int delta = HALF_MAX_NUM * (1 << yuv_shift); int Y = CV_DESCALE(mad24(b, coeffs[2], mad24(g, coeffs[1], mul24(r, coeffs[0]))), yuv_shift); int Cr = CV_DESCALE(mad24(r - Y, coeffs[3], delta), yuv_shift); int Cb = CV_DESCALE(mad24(b - Y, coeffs[4], delta), yuv_shift); #endif dst[0] = SAT_CAST( Y ); dst[1] = SAT_CAST( Cr ); dst[2] = SAT_CAST( Cb ); ++y; dst_index += dst_step; src_index += src_step; } } } } __constant float c_YCrCb2RGBCoeffs_f[4] = { CR2RF, CR2GF, CB2GF, CB2BF }; __constant int c_YCrCb2RGBCoeffs_i[4] = { CR2RI, CR2GI, CB2GI, CB2BI }; __kernel void YCrCb2RGB(__global const uchar* src, int src_step, int src_offset, __global uchar* dst, int dst_step, int dst_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, scnbytes, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, dcnbytes, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { __global const DATA_TYPE * srcptr = (__global const DATA_TYPE*)(src + src_index); __global DATA_TYPE * dstptr = (__global DATA_TYPE*)(dst + dst_index); DATA_TYPE_4 src_pix = vload4(0, srcptr); DATA_TYPE yp = src_pix.x, cr = src_pix.y, cb = src_pix.z; #ifdef DEPTH_5 __constant float * coeff = c_YCrCb2RGBCoeffs_f; float r = fma(coeff[0], cr - HALF_MAX_NUM, yp); float g = fma(coeff[1], cr - HALF_MAX_NUM, fma(coeff[2], cb - HALF_MAX_NUM, yp)); float b = fma(coeff[3], cb - HALF_MAX_NUM, yp); #else __constant int * coeff = c_YCrCb2RGBCoeffs_i; int r = yp + CV_DESCALE(coeff[0] * (cr - HALF_MAX_NUM), yuv_shift); int g = yp + CV_DESCALE(mad24(coeff[1], cr - HALF_MAX_NUM, coeff[2] * (cb - HALF_MAX_NUM)), yuv_shift); int b = yp + CV_DESCALE(coeff[3] * (cb - HALF_MAX_NUM), yuv_shift); #endif dstptr[(bidx^2)] = SAT_CAST(r); dstptr[1] = SAT_CAST(g); dstptr[bidx] = SAT_CAST(b); #if dcn == 4 dstptr[3] = MAX_NUM; #endif ++y; dst_index += dst_step; src_index += src_step; } } } } __kernel void RGB2XYZ(__global const uchar * srcptr, int src_step, int src_offset, __global uchar * dstptr, int dst_step, int dst_offset, int rows, int cols, __constant COEFF_TYPE * coeffs) { int dx = get_global_id(0); int dy = get_global_id(1) * PIX_PER_WI_Y; if (dx < cols) { int src_index = mad24(dy, src_step, mad24(dx, scnbytes, src_offset)); int dst_index = mad24(dy, dst_step, mad24(dx, dcnbytes, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (dy < rows) { __global const DATA_TYPE * src = (__global const DATA_TYPE *)(srcptr + src_index); __global DATA_TYPE * dst = (__global DATA_TYPE *)(dstptr + dst_index); DATA_TYPE_4 src_pix = vload4(0, src); DATA_TYPE r = src_pix.x, g = src_pix.y, b = src_pix.z; #ifdef DEPTH_5 float x = fma(r, coeffs[0], fma(g, coeffs[1], b * coeffs[2])); float y = fma(r, coeffs[3], fma(g, coeffs[4], b * coeffs[5])); float z = fma(r, coeffs[6], fma(g, coeffs[7], b * coeffs[8])); #else int x = CV_DESCALE(mad24(r, coeffs[0], mad24(g, coeffs[1], b * coeffs[2])), xyz_shift); int y = CV_DESCALE(mad24(r, coeffs[3], mad24(g, coeffs[4], b * coeffs[5])), xyz_shift); int z = CV_DESCALE(mad24(r, coeffs[6], mad24(g, coeffs[7], b * coeffs[8])), xyz_shift); #endif dst[0] = SAT_CAST(x); dst[1] = SAT_CAST(y); dst[2] = SAT_CAST(z); ++dy; dst_index += dst_step; src_index += src_step; } } } } __kernel void XYZ2RGB(__global const uchar * srcptr, int src_step, int src_offset, __global uchar * dstptr, int dst_step, int dst_offset, int rows, int cols, __constant COEFF_TYPE * coeffs) { int dx = get_global_id(0); int dy = get_global_id(1) * PIX_PER_WI_Y; if (dx < cols) { int src_index = mad24(dy, src_step, mad24(dx, scnbytes, src_offset)); int dst_index = mad24(dy, dst_step, mad24(dx, dcnbytes, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (dy < rows) { __global const DATA_TYPE * src = (__global const DATA_TYPE *)(srcptr + src_index); __global DATA_TYPE * dst = (__global DATA_TYPE *)(dstptr + dst_index); DATA_TYPE_4 src_pix = vload4(0, src); DATA_TYPE x = src_pix.x, y = src_pix.y, z = src_pix.z; #ifdef DEPTH_5 float b = fma(x, coeffs[0], fma(y, coeffs[1], z * coeffs[2])); float g = fma(x, coeffs[3], fma(y, coeffs[4], z * coeffs[5])); float r = fma(x, coeffs[6], fma(y, coeffs[7], z * coeffs[8])); #else int b = CV_DESCALE(mad24(x, coeffs[0], mad24(y, coeffs[1], z * coeffs[2])), xyz_shift); int g = CV_DESCALE(mad24(x, coeffs[3], mad24(y, coeffs[4], z * coeffs[5])), xyz_shift); int r = CV_DESCALE(mad24(x, coeffs[6], mad24(y, coeffs[7], z * coeffs[8])), xyz_shift); #endif DATA_TYPE dst0 = SAT_CAST(b); DATA_TYPE dst1 = SAT_CAST(g); DATA_TYPE dst2 = SAT_CAST(r); #if dcn == 3 || defined DEPTH_5 dst[0] = dst0; dst[1] = dst1; dst[2] = dst2; #if dcn == 4 dst[3] = MAX_NUM; #endif #else *(__global DATA_TYPE_4 *)dst = (DATA_TYPE_4)(dst0, dst1, dst2, MAX_NUM); #endif ++dy; dst_index += dst_step; src_index += src_step; } } } } __kernel void RGB(__global const uchar* srcptr, int src_step, int src_offset, __global uchar* dstptr, int dst_step, int dst_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, scnbytes, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, dcnbytes, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { __global const DATA_TYPE * src = (__global const DATA_TYPE *)(srcptr + src_index); __global DATA_TYPE * dst = (__global DATA_TYPE *)(dstptr + dst_index); DATA_TYPE_4 src_pix = vload4(0, src); #ifdef REVERSE dst[0] = src_pix.z; dst[1] = src_pix.y; dst[2] = src_pix.x; #else dst[0] = src_pix.x; dst[1] = src_pix.y; dst[2] = src_pix.z; #endif #if dcn == 4 #if scn == 3 dst[3] = MAX_NUM; #else dst[3] = src[3]; #endif #endif ++y; dst_index += dst_step; src_index += src_step; } } } } __kernel void RGB5x52RGB(__global const uchar* src, int src_step, int src_offset, __global uchar* dst, int dst_step, int dst_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, scnbytes, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, dcnbytes, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { ushort t = *((__global const ushort*)(src + src_index)); #if greenbits == 6 dst[dst_index + bidx] = (uchar)(t << 3); dst[dst_index + 1] = (uchar)((t >> 3) & ~3); dst[dst_index + (bidx^2)] = (uchar)((t >> 8) & ~7); #else dst[dst_index + bidx] = (uchar)(t << 3); dst[dst_index + 1] = (uchar)((t >> 2) & ~7); dst[dst_index + (bidx^2)] = (uchar)((t >> 7) & ~7); #endif #if dcn == 4 #if greenbits == 6 dst[dst_index + 3] = 255; #else dst[dst_index + 3] = t & 0x8000 ? 255 : 0; #endif #endif ++y; dst_index += dst_step; src_index += src_step; } } } } __kernel void RGB2RGB5x5(__global const uchar* src, int src_step, int src_offset, __global uchar* dst, int dst_step, int dst_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, scnbytes, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, dcnbytes, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { uchar4 src_pix = vload4(0, src + src_index); #if greenbits == 6 *((__global ushort*)(dst + dst_index)) = (ushort)((src_pix.B_COMP >> 3)|((src_pix.G_COMP&~3) << 3)|((src_pix.R_COMP&~7) << 8)); #elif scn == 3 *((__global ushort*)(dst + dst_index)) = (ushort)((src_pix.B_COMP >> 3)|((src_pix.G_COMP&~7) << 2)|((src_pix.R_COMP&~7) << 7)); #else *((__global ushort*)(dst + dst_index)) = (ushort)((src_pix.B_COMP >> 3)|((src_pix.G_COMP&~7) << 2)| ((src_pix.R_COMP&~7) << 7)|(src_pix.w ? 0x8000 : 0)); #endif ++y; dst_index += dst_step; src_index += src_step; } } } } __kernel void BGR5x52Gray(__global const uchar* src, int src_step, int src_offset, __global uchar* dst, int dst_step, int dst_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, scnbytes, src_offset)); int dst_index = mad24(y, dst_step, dst_offset + x); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { int t = *((__global const ushort*)(src + src_index)); #if greenbits == 6 dst[dst_index] = (uchar)CV_DESCALE(mad24((t << 3) & 0xf8, B2Y, mad24((t >> 3) & 0xfc, G2Y, ((t >> 8) & 0xf8) * R2Y)), yuv_shift); #else dst[dst_index] = (uchar)CV_DESCALE(mad24((t << 3) & 0xf8, B2Y, mad24((t >> 2) & 0xf8, G2Y, ((t >> 7) & 0xf8) * R2Y)), yuv_shift); #endif ++y; dst_index += dst_step; src_index += src_step; } } } } __kernel void Gray2BGR5x5(__global const uchar* src, int src_step, int src_offset, __global uchar* dst, int dst_step, int dst_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, src_offset + x); int dst_index = mad24(y, dst_step, mad24(x, dcnbytes, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { int t = src[src_index]; #if greenbits == 6 *((__global ushort*)(dst + dst_index)) = (ushort)((t >> 3) | ((t & ~3) << 3) | ((t & ~7) << 8)); #else t >>= 3; *((__global ushort*)(dst + dst_index)) = (ushort)(t|(t << 5)|(t << 10)); #endif ++y; dst_index += dst_step; src_index += src_step; } } } } __constant int sector_data[][3] = { { 1, 3, 0 }, { 1, 0, 2 }, { 3, 0, 1 }, { 0, 2, 1 }, { 0, 1, 3 }, { 2, 1, 0 } }; #ifdef DEPTH_0 __kernel void RGB2HSV(__global const uchar* src, int src_step, int src_offset, __global uchar* dst, int dst_step, int dst_offset, int rows, int cols, __constant int * sdiv_table, __constant int * hdiv_table) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, scnbytes, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, dcnbytes, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { uchar4 src_pix = vload4(0, src + src_index); int b = src_pix.B_COMP, g = src_pix.G_COMP, r = src_pix.R_COMP; int h, s, v = b; int vmin = b, diff; int vr, vg; v = max(v, g); v = max(v, r); vmin = min(vmin, g); vmin = min(vmin, r); diff = v - vmin; vr = v == r ? -1 : 0; vg = v == g ? -1 : 0; s = mad24(diff, sdiv_table[v], (1 << (hsv_shift-1))) >> hsv_shift; h = (vr & (g - b)) + (~vr & ((vg & mad24(diff, 2, b - r)) + ((~vg) & mad24(4, diff, r - g)))); h = mad24(h, hdiv_table[diff], (1 << (hsv_shift-1))) >> hsv_shift; h += h < 0 ? hrange : 0; dst[dst_index] = convert_uchar_sat_rte(h); dst[dst_index + 1] = (uchar)s; dst[dst_index + 2] = (uchar)v; ++y; dst_index += dst_step; src_index += src_step; } } } } __kernel void HSV2RGB(__global const uchar* src, int src_step, int src_offset, __global uchar* dst, int dst_step, int dst_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, scnbytes, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, dcnbytes, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { uchar4 src_pix = vload4(0, src + src_index); float h = src_pix.x, s = src_pix.y*(1/255.f), v = src_pix.z*(1/255.f); float b, g, r; if (s != 0) { float tab[4]; int sector; h *= hscale; if( h < 0 ) do h += 6; while( h < 0 ); else if( h >= 6 ) do h -= 6; while( h >= 6 ); sector = convert_int_sat_rtn(h); h -= sector; if( (unsigned)sector >= 6u ) { sector = 0; h = 0.f; } tab[0] = v; tab[1] = v*(1.f - s); tab[2] = v*(1.f - s*h); tab[3] = v*(1.f - s*(1.f - h)); b = tab[sector_data[sector][0]]; g = tab[sector_data[sector][1]]; r = tab[sector_data[sector][2]]; } else b = g = r = v; dst[dst_index + bidx] = convert_uchar_sat_rte(b*255.f); dst[dst_index + 1] = convert_uchar_sat_rte(g*255.f); dst[dst_index + (bidx^2)] = convert_uchar_sat_rte(r*255.f); #if dcn == 4 dst[dst_index + 3] = MAX_NUM; #endif ++y; dst_index += dst_step; src_index += src_step; } } } } #elif defined DEPTH_5 __kernel void RGB2HSV(__global const uchar* srcptr, int src_step, int src_offset, __global uchar* dstptr, int dst_step, int dst_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, scnbytes, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, dcnbytes, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { __global const float * src = (__global const float *)(srcptr + src_index); __global float * dst = (__global float *)(dstptr + dst_index); float4 src_pix = vload4(0, src); float b = src_pix.B_COMP, g = src_pix.G_COMP, r = src_pix.R_COMP; float h, s, v; float vmin, diff; v = vmin = r; if( v < g ) v = g; if( v < b ) v = b; if( vmin > g ) vmin = g; if( vmin > b ) vmin = b; diff = v - vmin; s = diff/(float)(fabs(v) + FLT_EPSILON); diff = (float)(60.f/(diff + FLT_EPSILON)); if( v == r ) h = (g - b)*diff; else if( v == g ) h = fma(b - r, diff, 120.f); else h = fma(r - g, diff, 240.f); if( h < 0 ) h += 360.f; dst[0] = h*hscale; dst[1] = s; dst[2] = v; ++y; dst_index += dst_step; src_index += src_step; } } } } __kernel void HSV2RGB(__global const uchar* srcptr, int src_step, int src_offset, __global uchar* dstptr, int dst_step, int dst_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, scnbytes, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, dcnbytes, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { __global const float * src = (__global const float *)(srcptr + src_index); __global float * dst = (__global float *)(dstptr + dst_index); float4 src_pix = vload4(0, src); float h = src_pix.x, s = src_pix.y, v = src_pix.z; float b, g, r; if (s != 0) { float tab[4]; int sector; h *= hscale; if(h < 0) do h += 6; while (h < 0); else if (h >= 6) do h -= 6; while (h >= 6); sector = convert_int_sat_rtn(h); h -= sector; if ((unsigned)sector >= 6u) { sector = 0; h = 0.f; } tab[0] = v; tab[1] = v*(1.f - s); tab[2] = v*(1.f - s*h); tab[3] = v*(1.f - s*(1.f - h)); b = tab[sector_data[sector][0]]; g = tab[sector_data[sector][1]]; r = tab[sector_data[sector][2]]; } else b = g = r = v; dst[bidx] = b; dst[1] = g; dst[bidx^2] = r; #if dcn == 4 dst[3] = MAX_NUM; #endif ++y; dst_index += dst_step; src_index += src_step; } } } } #endif #ifdef DEPTH_0 __kernel void RGB2HLS(__global const uchar* src, int src_step, int src_offset, __global uchar* dst, int dst_step, int dst_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, scnbytes, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, dcnbytes, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { uchar4 src_pix = vload4(0, src + src_index); float b = src_pix.B_COMP*(1/255.f), g = src_pix.G_COMP*(1/255.f), r = src_pix.R_COMP*(1/255.f); float h = 0.f, s = 0.f, l; float vmin, vmax, diff; vmax = vmin = r; if (vmax < g) vmax = g; if (vmax < b) vmax = b; if (vmin > g) vmin = g; if (vmin > b) vmin = b; diff = vmax - vmin; l = (vmax + vmin)*0.5f; if (diff > FLT_EPSILON) { s = l < 0.5f ? diff/(vmax + vmin) : diff/(2 - vmax - vmin); diff = 60.f/diff; if( vmax == r ) h = (g - b)*diff; else if( vmax == g ) h = fma(b - r, diff, 120.f); else h = fma(r - g, diff, 240.f); if( h < 0.f ) h += 360.f; } dst[dst_index] = convert_uchar_sat_rte(h*hscale); dst[dst_index + 1] = convert_uchar_sat_rte(l*255.f); dst[dst_index + 2] = convert_uchar_sat_rte(s*255.f); ++y; dst_index += dst_step; src_index += src_step; } } } } __kernel void HLS2RGB(__global const uchar* src, int src_step, int src_offset, __global uchar* dst, int dst_step, int dst_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, scnbytes, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, dcnbytes, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { uchar4 src_pix = vload4(0, src + src_index); float h = src_pix.x, l = src_pix.y*(1.f/255.f), s = src_pix.z*(1.f/255.f); float b, g, r; if (s != 0) { float tab[4]; float p2 = l <= 0.5f ? l*(1 + s) : l + s - l*s; float p1 = 2*l - p2; h *= hscale; if( h < 0 ) do h += 6; while( h < 0 ); else if( h >= 6 ) do h -= 6; while( h >= 6 ); int sector = convert_int_sat_rtn(h); h -= sector; tab[0] = p2; tab[1] = p1; tab[2] = fma(p2 - p1, 1-h, p1); tab[3] = fma(p2 - p1, h, p1); b = tab[sector_data[sector][0]]; g = tab[sector_data[sector][1]]; r = tab[sector_data[sector][2]]; } else b = g = r = l; dst[dst_index + bidx] = convert_uchar_sat_rte(b*255.f); dst[dst_index + 1] = convert_uchar_sat_rte(g*255.f); dst[dst_index + (bidx^2)] = convert_uchar_sat_rte(r*255.f); #if dcn == 4 dst[dst_index + 3] = MAX_NUM; #endif ++y; dst_index += dst_step; src_index += src_step; } } } } #elif defined DEPTH_5 __kernel void RGB2HLS(__global const uchar* srcptr, int src_step, int src_offset, __global uchar* dstptr, int dst_step, int dst_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, scnbytes, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, dcnbytes, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { __global const float * src = (__global const float *)(srcptr + src_index); __global float * dst = (__global float *)(dstptr + dst_index); float4 src_pix = vload4(0, src); float b = src_pix.B_COMP, g = src_pix.G_COMP, r = src_pix.R_COMP; float h = 0.f, s = 0.f, l; float vmin, vmax, diff; vmax = vmin = r; if (vmax < g) vmax = g; if (vmax < b) vmax = b; if (vmin > g) vmin = g; if (vmin > b) vmin = b; diff = vmax - vmin; l = (vmax + vmin)*0.5f; if (diff > FLT_EPSILON) { s = l < 0.5f ? diff/(vmax + vmin) : diff/(2 - vmax - vmin); diff = 60.f/diff; if( vmax == r ) h = (g - b)*diff; else if( vmax == g ) h = fma(b - r, diff, 120.f); else h = fma(r - g, diff, 240.f); if( h < 0.f ) h += 360.f; } dst[0] = h*hscale; dst[1] = l; dst[2] = s; ++y; dst_index += dst_step; src_index += src_step; } } } } __kernel void HLS2RGB(__global const uchar* srcptr, int src_step, int src_offset, __global uchar* dstptr, int dst_step, int dst_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, scnbytes, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, dcnbytes, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { __global const float * src = (__global const float *)(srcptr + src_index); __global float * dst = (__global float *)(dstptr + dst_index); float4 src_pix = vload4(0, src); float h = src_pix.x, l = src_pix.y, s = src_pix.z; float b, g, r; if (s != 0) { float tab[4]; int sector; float p2 = l <= 0.5f ? l*(1 + s) : l + s - l*s; float p1 = 2*l - p2; h *= hscale; if( h < 0 ) do h += 6; while( h < 0 ); else if( h >= 6 ) do h -= 6; while( h >= 6 ); sector = convert_int_sat_rtn(h); h -= sector; tab[0] = p2; tab[1] = p1; tab[2] = fma(p2 - p1, 1-h, p1); tab[3] = fma(p2 - p1, h, p1); b = tab[sector_data[sector][0]]; g = tab[sector_data[sector][1]]; r = tab[sector_data[sector][2]]; } else b = g = r = l; dst[bidx] = b; dst[1] = g; dst[bidx^2] = r; #if dcn == 4 dst[3] = MAX_NUM; #endif ++y; dst_index += dst_step; src_index += src_step; } } } } #endif #ifdef DEPTH_0 __kernel void RGBA2mRGBA(__global const uchar* src, int src_step, int src_offset, __global uchar* dst, int dst_step, int dst_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, src_offset + (x << 2)); int dst_index = mad24(y, dst_step, dst_offset + (x << 2)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { uchar4 src_pix = *(__global const uchar4 *)(src + src_index); *(__global uchar4 *)(dst + dst_index) = (uchar4)(mad24(src_pix.x, src_pix.w, HALF_MAX_NUM) / MAX_NUM, mad24(src_pix.y, src_pix.w, HALF_MAX_NUM) / MAX_NUM, mad24(src_pix.z, src_pix.w, HALF_MAX_NUM) / MAX_NUM, src_pix.w); ++y; dst_index += dst_step; src_index += src_step; } } } } __kernel void mRGBA2RGBA(__global const uchar* src, int src_step, int src_offset, __global uchar* dst, int dst_step, int dst_offset, int rows, int cols) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, 4, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, 4, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { uchar4 src_pix = *(__global const uchar4 *)(src + src_index); uchar v3 = src_pix.w, v3_half = v3 / 2; if (v3 == 0) *(__global uchar4 *)(dst + dst_index) = (uchar4)(0, 0, 0, 0); else *(__global uchar4 *)(dst + dst_index) = (uchar4)(mad24(src_pix.x, MAX_NUM, v3_half) / v3, mad24(src_pix.y, MAX_NUM, v3_half) / v3, mad24(src_pix.z, MAX_NUM, v3_half) / v3, v3); ++y; dst_index += dst_step; src_index += src_step; } } } } #endif #define lab_shift xyz_shift #define gamma_shift 3 #define lab_shift2 (lab_shift + gamma_shift) #define GAMMA_TAB_SIZE 1024 #define GammaTabScale (float)GAMMA_TAB_SIZE inline float splineInterpolate(float x, __global const float * tab, int n) { int ix = clamp(convert_int_sat_rtn(x), 0, n-1); x -= ix; tab += ix << 2; return fma(fma(fma(tab[3], x, tab[2]), x, tab[1]), x, tab[0]); } #ifdef DEPTH_0 __kernel void BGR2Lab(__global const uchar * src, int src_step, int src_offset, __global uchar * dst, int dst_step, int dst_offset, int rows, int cols, __global const ushort * gammaTab, __global ushort * LabCbrtTab_b, __constant int * coeffs, int Lscale, int Lshift) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, scnbytes, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, dcnbytes, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { __global const uchar* src_ptr = src + src_index; __global uchar* dst_ptr = dst + dst_index; uchar4 src_pix = vload4(0, src_ptr); int C0 = coeffs[0], C1 = coeffs[1], C2 = coeffs[2], C3 = coeffs[3], C4 = coeffs[4], C5 = coeffs[5], C6 = coeffs[6], C7 = coeffs[7], C8 = coeffs[8]; int R = gammaTab[src_pix.x], G = gammaTab[src_pix.y], B = gammaTab[src_pix.z]; int fX = LabCbrtTab_b[CV_DESCALE(mad24(R, C0, mad24(G, C1, B*C2)), lab_shift)]; int fY = LabCbrtTab_b[CV_DESCALE(mad24(R, C3, mad24(G, C4, B*C5)), lab_shift)]; int fZ = LabCbrtTab_b[CV_DESCALE(mad24(R, C6, mad24(G, C7, B*C8)), lab_shift)]; int L = CV_DESCALE( Lscale*fY + Lshift, lab_shift2 ); int a = CV_DESCALE( mad24(500, fX - fY, 128*(1 << lab_shift2)), lab_shift2 ); int b = CV_DESCALE( mad24(200, fY - fZ, 128*(1 << lab_shift2)), lab_shift2 ); dst_ptr[0] = SAT_CAST(L); dst_ptr[1] = SAT_CAST(a); dst_ptr[2] = SAT_CAST(b); ++y; dst_index += dst_step; src_index += src_step; } } } } #elif defined DEPTH_5 __kernel void BGR2Lab(__global const uchar * srcptr, int src_step, int src_offset, __global uchar * dstptr, int dst_step, int dst_offset, int rows, int cols, #ifdef SRGB __global const float * gammaTab, #endif __constant float * coeffs, float _1_3, float _a) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, scnbytes, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, dcnbytes, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { __global const float * src = (__global const float *)(srcptr + src_index); __global float * dst = (__global float *)(dstptr + dst_index); float4 src_pix = vload4(0, src); float C0 = coeffs[0], C1 = coeffs[1], C2 = coeffs[2], C3 = coeffs[3], C4 = coeffs[4], C5 = coeffs[5], C6 = coeffs[6], C7 = coeffs[7], C8 = coeffs[8]; float R = clamp(src_pix.x, 0.0f, 1.0f); float G = clamp(src_pix.y, 0.0f, 1.0f); float B = clamp(src_pix.z, 0.0f, 1.0f); #ifdef SRGB R = splineInterpolate(R * GammaTabScale, gammaTab, GAMMA_TAB_SIZE); G = splineInterpolate(G * GammaTabScale, gammaTab, GAMMA_TAB_SIZE); B = splineInterpolate(B * GammaTabScale, gammaTab, GAMMA_TAB_SIZE); #endif float X = fma(R, C0, fma(G, C1, B*C2)); float Y = fma(R, C3, fma(G, C4, B*C5)); float Z = fma(R, C6, fma(G, C7, B*C8)); float FX = X > 0.008856f ? rootn(X, 3) : fma(7.787f, X, _a); float FY = Y > 0.008856f ? rootn(Y, 3) : fma(7.787f, Y, _a); float FZ = Z > 0.008856f ? rootn(Z, 3) : fma(7.787f, Z, _a); float L = Y > 0.008856f ? fma(116.f, FY, -16.f) : (903.3f * Y); float a = 500.f * (FX - FY); float b = 200.f * (FY - FZ); dst[0] = L; dst[1] = a; dst[2] = b; ++y; dst_index += dst_step; src_index += src_step; } } } } #endif inline void Lab2BGR_f(const float * srcbuf, float * dstbuf, #ifdef SRGB __global const float * gammaTab, #endif __constant float * coeffs, float lThresh, float fThresh) { float li = srcbuf[0], ai = srcbuf[1], bi = srcbuf[2]; float C0 = coeffs[0], C1 = coeffs[1], C2 = coeffs[2], C3 = coeffs[3], C4 = coeffs[4], C5 = coeffs[5], C6 = coeffs[6], C7 = coeffs[7], C8 = coeffs[8]; float y, fy; if (li <= lThresh) { y = li / 903.3f; fy = fma(7.787f, y, 16.0f / 116.0f); } else { fy = (li + 16.0f) / 116.0f; y = fy * fy * fy; } float fxz[] = { ai / 500.0f + fy, fy - bi / 200.0f }; #pragma unroll for (int j = 0; j < 2; j++) if (fxz[j] <= fThresh) fxz[j] = (fxz[j] - 16.0f / 116.0f) / 7.787f; else fxz[j] = fxz[j] * fxz[j] * fxz[j]; float x = fxz[0], z = fxz[1]; float ro = clamp(fma(C0, x, fma(C1, y, C2 * z)), 0.0f, 1.0f); float go = clamp(fma(C3, x, fma(C4, y, C5 * z)), 0.0f, 1.0f); float bo = clamp(fma(C6, x, fma(C7, y, C8 * z)), 0.0f, 1.0f); #ifdef SRGB ro = splineInterpolate(ro * GammaTabScale, gammaTab, GAMMA_TAB_SIZE); go = splineInterpolate(go * GammaTabScale, gammaTab, GAMMA_TAB_SIZE); bo = splineInterpolate(bo * GammaTabScale, gammaTab, GAMMA_TAB_SIZE); #endif dstbuf[0] = ro, dstbuf[1] = go, dstbuf[2] = bo; } #ifdef DEPTH_0 __kernel void Lab2BGR(__global const uchar * src, int src_step, int src_offset, __global uchar * dst, int dst_step, int dst_offset, int rows, int cols, #ifdef SRGB __global const float * gammaTab, #endif __constant float * coeffs, float lThresh, float fThresh) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, scnbytes, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, dcnbytes, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { __global const uchar* src_ptr = src + src_index; __global uchar * dst_ptr = dst + dst_index; uchar4 src_pix = vload4(0, src_ptr); float srcbuf[3], dstbuf[3]; srcbuf[0] = src_pix.x*(100.f/255.f); srcbuf[1] = convert_float(src_pix.y - 128); srcbuf[2] = convert_float(src_pix.z - 128); Lab2BGR_f(&srcbuf[0], &dstbuf[0], #ifdef SRGB gammaTab, #endif coeffs, lThresh, fThresh); #if dcn == 3 dst_ptr[0] = SAT_CAST(dstbuf[0] * 255.0f); dst_ptr[1] = SAT_CAST(dstbuf[1] * 255.0f); dst_ptr[2] = SAT_CAST(dstbuf[2] * 255.0f); #else *(__global uchar4 *)dst_ptr = (uchar4)(SAT_CAST(dstbuf[0] * 255.0f), SAT_CAST(dstbuf[1] * 255.0f), SAT_CAST(dstbuf[2] * 255.0f), MAX_NUM); #endif ++y; dst_index += dst_step; src_index += src_step; } } } } #elif defined DEPTH_5 __kernel void Lab2BGR(__global const uchar * srcptr, int src_step, int src_offset, __global uchar * dstptr, int dst_step, int dst_offset, int rows, int cols, #ifdef SRGB __global const float * gammaTab, #endif __constant float * coeffs, float lThresh, float fThresh) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { int src_index = mad24(y, src_step, mad24(x, scnbytes, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, dcnbytes, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) { if (y < rows) { __global const float * src = (__global const float *)(srcptr + src_index); __global float * dst = (__global float *)(dstptr + dst_index); float4 src_pix = vload4(0, src); float srcbuf[3], dstbuf[3]; srcbuf[0] = src_pix.x, srcbuf[1] = src_pix.y, srcbuf[2] = src_pix.z; Lab2BGR_f(&srcbuf[0], &dstbuf[0], #ifdef SRGB gammaTab, #endif coeffs, lThresh, fThresh); dst[0] = dstbuf[0], dst[1] = dstbuf[1], dst[2] = dstbuf[2]; #if dcn == 4 dst[3] = MAX_NUM; #endif ++y; dst_index += dst_step; src_index += src_step; } } } } #endif #define LAB_CBRT_TAB_SIZE 1024 #define LAB_CBRT_TAB_SIZE_B (256*3/2*(1<= 8) { Y = fma(L, 1.f/116.f, 16.f/116.f); Y = Y*Y*Y; } else { Y = L * (1.0f/903.3f); } float up = 3.f*fma(L, _un, u); float vp = 0.25f/fma(L, _vn, v); vp = clamp(vp, -0.25f, 0.25f); X = 3.f*Y*up*vp; Z = Y*fma(fma(12.f*13.f, L, -up), vp, -5.f); float R = fma(X, coeffs[0], fma(Y, coeffs[1], Z * coeffs[2])); float G = fma(X, coeffs[3], fma(Y, coeffs[4], Z * coeffs[5])); float B = fma(X, coeffs[6], fma(Y, coeffs[7], Z * coeffs[8])); R = clamp(R, 0.f, 1.f); G = clamp(G, 0.f, 1.f); B = clamp(B, 0.f, 1.f); #ifdef SRGB R = splineInterpolate(R*GammaTabScale, gammaTab, GAMMA_TAB_SIZE); G = splineInterpolate(G*GammaTabScale, gammaTab, GAMMA_TAB_SIZE); B = splineInterpolate(B*GammaTabScale, gammaTab, GAMMA_TAB_SIZE); #endif dst[0] = R; dst[1] = G; dst[2] = B; #if dcn == 4 dst[3] = MAX_NUM; #endif ++y; dst_index += dst_step; src_index += src_step; } } } #elif defined DEPTH_0 __kernel void Luv2BGR(__global const uchar * src, int src_step, int src_offset, __global uchar * dst, int dst_step, int dst_offset, int rows, int cols, #ifdef SRGB __global const float * gammaTab, #endif __constant float * coeffs, float _un, float _vn) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI_Y; if (x < cols) { src += mad24(y, src_step, mad24(x, scnbytes, src_offset)); dst += mad24(y, dst_step, mad24(x, dcnbytes, dst_offset)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI_Y; ++cy) if (y < rows) { float d, X, Y, Z; float L = src[0]*(100.f/255.f); float u = fma(convert_float(src[1]), 1.388235294117647f, -134.f); float v = fma(convert_float(src[2]), 1.027450980392157f, - 140.f); if(L >= 8) { Y = fma(L, 1.f/116.f, 16.f/116.f); Y = Y*Y*Y; } else { Y = L * (1.0f/903.3f); } float up = 3.f*fma(L, _un, u); float vp = 0.25f/fma(L, _vn, v); vp = clamp(vp, -0.25f, 0.25f); X = 3.f*Y*up*vp; Z = Y*fma(fma(12.f*13.f, L, -up), vp, -5.f); X = clamp(X, 0.f, 2.f); Z = clamp(Z, 0.f, 2.f); float R = fma(X, coeffs[0], fma(Y, coeffs[1], Z * coeffs[2])); float G = fma(X, coeffs[3], fma(Y, coeffs[4], Z * coeffs[5])); float B = fma(X, coeffs[6], fma(Y, coeffs[7], Z * coeffs[8])); R = clamp(R, 0.f, 1.f); G = clamp(G, 0.f, 1.f); B = clamp(B, 0.f, 1.f); #ifdef SRGB R = splineInterpolate(R*GammaTabScale, gammaTab, GAMMA_TAB_SIZE); G = splineInterpolate(G*GammaTabScale, gammaTab, GAMMA_TAB_SIZE); B = splineInterpolate(B*GammaTabScale, gammaTab, GAMMA_TAB_SIZE); #endif uchar dst0 = SAT_CAST(R * 255.0f); uchar dst1 = SAT_CAST(G * 255.0f); uchar dst2 = SAT_CAST(B * 255.0f); #if dcn == 4 *(__global uchar4 *)dst = (uchar4)(dst0, dst1, dst2, MAX_NUM); #else dst[0] = dst0; dst[1] = dst1; dst[2] = dst2; #endif ++y; dst += dst_step; src += src_step; } } } #endif 6535306ad12a0e048fdaff1150e2b41dcovardata#ifdef BORDER_CONSTANT #define EXTRAPOLATE(x, maxV) #elif defined BORDER_REPLICATE #define EXTRAPOLATE(x, maxV) \ { \ (x) = clamp((x), 0, (maxV)-1); \ } #elif defined BORDER_WRAP #define EXTRAPOLATE(x, maxV) \ { \ (x) = ( (x) + (maxV) ) % (maxV); \ } #elif defined BORDER_REFLECT #define EXTRAPOLATE(x, maxV) \ { \ (x) = min( mad24((maxV)-1,2,-(x))+1 , max((x),-(x)-1) ); \ } #elif defined BORDER_REFLECT_101 || defined BORDER_REFLECT101 #define EXTRAPOLATE(x, maxV) \ { \ (x) = min( mad24((maxV)-1,2,-(x)), max((x),-(x)) ); \ } #else #error No extrapolation method #endif #define SRC(_x,_y) convert_float(((global SRCTYPE*)(Src+(_y)*src_step))[_x]) #ifdef BORDER_CONSTANT #define ELEM(_x,_y,r_edge,t_edge,const_v) (_x)<0 | (_x) >= (r_edge) | (_y)<0 | (_y) >= (t_edge) ? (const_v) : SRC((_x),(_y)) #else #define ELEM(_x,_y,r_edge,t_edge,const_v) SRC((_x),(_y)) #endif #define DSTX(_x,_y) (((global float*)(DstX+DstXOffset+(_y)*DstXPitch))[_x]) #define DSTY(_x,_y) (((global float*)(DstY+DstYOffset+(_y)*DstYPitch))[_x]) #define INIT_AND_READ_LOCAL_SOURCE(width, height, fill_const, kernel_border) \ int srcX = x + srcOffsetX - (kernel_border); \ int srcY = y + srcOffsetY - (kernel_border); \ int xb = srcX; \ int yb = srcY; \ \ EXTRAPOLATE(xb, (width)); \ EXTRAPOLATE(yb, (height)); \ lsmem[liy][lix] = ELEM(xb, yb, (width), (height), (fill_const) ); \ \ if(lix < ((kernel_border)*2)) \ { \ int xb = srcX+BLK_X; \ EXTRAPOLATE(xb,(width)); \ lsmem[liy][lix+BLK_X] = ELEM(xb, yb, (width), (height), (fill_const) ); \ } \ if(liy< ((kernel_border)*2)) \ { \ int yb = srcY+BLK_Y; \ EXTRAPOLATE(yb, (height)); \ lsmem[liy+BLK_Y][lix] = ELEM(xb, yb, (width), (height), (fill_const) ); \ } \ if(lix<((kernel_border)*2) && liy<((kernel_border)*2)) \ { \ int xb = srcX+BLK_X; \ int yb = srcY+BLK_Y; \ EXTRAPOLATE(xb,(width)); \ EXTRAPOLATE(yb,(height)); \ lsmem[liy+BLK_Y][lix+BLK_X] = ELEM(xb, yb, (width), (height), (fill_const) ); \ } __kernel void sobel3(__global const uchar * Src, int src_step, int srcOffsetX, int srcOffsetY, __global uchar * DstX, int DstXPitch, int DstXOffset, __global uchar * DstY, int DstYPitch, int DstYOffset, int dstHeight, int dstWidth, int height, int width, float scale) { __local float lsmem[BLK_Y+2][BLK_X+2]; int lix = get_local_id(0); int liy = get_local_id(1); int x = (int)get_global_id(0); int y = (int)get_global_id(1); INIT_AND_READ_LOCAL_SOURCE(width, height, 0, 1) barrier(CLK_LOCAL_MEM_FENCE); if( x >= dstWidth || y >=dstHeight ) return; float u1 = lsmem[liy][lix]; float u2 = lsmem[liy][lix+1]; float u3 = lsmem[liy][lix+2]; float m1 = lsmem[liy+1][lix]; float m3 = lsmem[liy+1][lix+2]; float b1 = lsmem[liy+2][lix]; float b2 = lsmem[liy+2][lix+1]; float b3 = lsmem[liy+2][lix+2]; #ifdef SCHARR DSTX(x,y) = mad(10.0f, m3 - m1, 3.0f * (u3 - u1 + b3 - b1)) * scale; DSTY(x,y) = mad(10.0f, b2 - u2, 3.0f * (b1 - u1 + b3 - u3)) * scale; #else DSTX(x,y) = mad(2.0f, m3 - m1, u3 - u1 + b3 - b1) * scale; DSTY(x,y) = mad(2.0f, b2 - u2, b1 - u1 + b3 - u3) * scale; #endif } __kernel void sobel5(__global const uchar * Src, int src_step, int srcOffsetX, int srcOffsetY, __global uchar * DstX, int DstXPitch, int DstXOffset, __global uchar * DstY, int DstYPitch, int DstYOffset, int dstHeight, int dstWidth, int height, int width, float scale) { __local float lsmem[BLK_Y+4][BLK_X+4]; int lix = get_local_id(0); int liy = get_local_id(1); int x = (int)get_global_id(0); int y = (int)get_global_id(1); INIT_AND_READ_LOCAL_SOURCE(width, height, 0, 2) barrier(CLK_LOCAL_MEM_FENCE); if( x >= dstWidth || y >=dstHeight ) return; float t1 = lsmem[liy][lix]; float t2 = lsmem[liy][lix+1]; float t3 = lsmem[liy][lix+2]; float t4 = lsmem[liy][lix+3]; float t5 = lsmem[liy][lix+4]; float u1 = lsmem[liy+1][lix]; float u2 = lsmem[liy+1][lix+1]; float u3 = lsmem[liy+1][lix+2]; float u4 = lsmem[liy+1][lix+3]; float u5 = lsmem[liy+1][lix+4]; float m1 = lsmem[liy+2][lix]; float m2 = lsmem[liy+2][lix+1]; float m4 = lsmem[liy+2][lix+3]; float m5 = lsmem[liy+2][lix+4]; float l1 = lsmem[liy+3][lix]; float l2 = lsmem[liy+3][lix+1]; float l3 = lsmem[liy+3][lix+2]; float l4 = lsmem[liy+3][lix+3]; float l5 = lsmem[liy+3][lix+4]; float b1 = lsmem[liy+4][lix]; float b2 = lsmem[liy+4][lix+1]; float b3 = lsmem[liy+4][lix+2]; float b4 = lsmem[liy+4][lix+3]; float b5 = lsmem[liy+4][lix+4]; DSTX(x,y) = scale * mad(12.0f, m4 - m2, mad(6.0f, m5 - m1, mad(8.0f, u4 - u2 + l4 - l2, mad(4.0f, u5 - u1 + l5 - l1, mad(2.0f, t4 - t2 + b4 - b2, t5 - t1 + b5 - b1 ) ) ) ) ); DSTY(x,y) = scale * mad(12.0f, l3 - u3, mad(6.0f, b3 - t3, mad(8.0f, l2 - u2 + l4 - u4, mad(4.0f, b2 - t2 + b4 - t4, mad(2.0f, l1 - u1 + l5 - u5, b1 - t1 + b5 - t5 ) ) ) ) ); } __kernel void sobel7(__global const uchar * Src, int src_step, int srcOffsetX, int srcOffsetY, __global uchar * DstX, int DstXPitch, int DstXOffset, __global uchar * DstY, int DstYPitch, int DstYOffset, int dstHeight, int dstWidth, int height, int width, float scale) { __local float lsmem[BLK_Y+6][BLK_X+6]; int lix = get_local_id(0); int liy = get_local_id(1); int x = (int)get_global_id(0); int y = (int)get_global_id(1); INIT_AND_READ_LOCAL_SOURCE(width, height, 0, 3) barrier(CLK_LOCAL_MEM_FENCE); if( x >= dstWidth || y >=dstHeight ) return; float tt1 = lsmem[liy][lix]; float tt2 = lsmem[liy][lix+1]; float tt3 = lsmem[liy][lix+2]; float tt4 = lsmem[liy][lix+3]; float tt5 = lsmem[liy][lix+4]; float tt6 = lsmem[liy][lix+5]; float tt7 = lsmem[liy][lix+6]; float t1 = lsmem[liy+1][lix]; float t2 = lsmem[liy+1][lix+1]; float t3 = lsmem[liy+1][lix+2]; float t4 = lsmem[liy+1][lix+3]; float t5 = lsmem[liy+1][lix+4]; float t6 = lsmem[liy+1][lix+5]; float t7 = lsmem[liy+1][lix+6]; float u1 = lsmem[liy+2][lix]; float u2 = lsmem[liy+2][lix+1]; float u3 = lsmem[liy+2][lix+2]; float u4 = lsmem[liy+2][lix+3]; float u5 = lsmem[liy+2][lix+4]; float u6 = lsmem[liy+2][lix+5]; float u7 = lsmem[liy+2][lix+6]; float m1 = lsmem[liy+3][lix]; float m2 = lsmem[liy+3][lix+1]; float m3 = lsmem[liy+3][lix+2]; float m5 = lsmem[liy+3][lix+4]; float m6 = lsmem[liy+3][lix+5]; float m7 = lsmem[liy+3][lix+6]; float l1 = lsmem[liy+4][lix]; float l2 = lsmem[liy+4][lix+1]; float l3 = lsmem[liy+4][lix+2]; float l4 = lsmem[liy+4][lix+3]; float l5 = lsmem[liy+4][lix+4]; float l6 = lsmem[liy+4][lix+5]; float l7 = lsmem[liy+4][lix+6]; float b1 = lsmem[liy+5][lix]; float b2 = lsmem[liy+5][lix+1]; float b3 = lsmem[liy+5][lix+2]; float b4 = lsmem[liy+5][lix+3]; float b5 = lsmem[liy+5][lix+4]; float b6 = lsmem[liy+5][lix+5]; float b7 = lsmem[liy+5][lix+6]; float bb1 = lsmem[liy+6][lix]; float bb2 = lsmem[liy+6][lix+1]; float bb3 = lsmem[liy+6][lix+2]; float bb4 = lsmem[liy+6][lix+3]; float bb5 = lsmem[liy+6][lix+4]; float bb6 = lsmem[liy+6][lix+5]; float bb7 = lsmem[liy+6][lix+6]; DSTX(x,y) = scale * mad(100.0f, m5 - m3, mad(80.0f, m6 - m2, mad(20.0f, m7 - m1, mad(75.0f, u5 - u3 + l5 - l3, mad(60.0f, u6 - u2 + l6 - l2, mad(15.0f, u7 - u1 + l7 - l1, mad(30.0f, t5 - t3 + b5 - b3, mad(24.0f, t6 - t2 + b6 - b2, mad(6.0f, t7 - t1 + b7 - b1, mad(5.0f, tt5 - tt3 + bb5 - bb3, mad(4.0f, tt6 - tt2 + bb6 - bb2, tt7 - tt1 + bb7 - bb1 ) ) ) ) ) ) ) ) ) ) ); DSTY(x,y) = scale * mad(100.0f, l4 - u4, mad(80.0f, b4 - t4, mad(20.0f, bb4 - tt4, mad(75.0f, l5 - u5 + l3 - u3, mad(60.0f, b5 - t5 + b3 - t3, mad(15.0f, bb5 - tt5 + bb3 - tt3, mad(30.0f, l6 - u6 + l2 - u2, mad(24.0f, b6 - t6 + b2 - t2, mad(6.0f, bb6 - tt6 + bb2 - tt2, mad(5.0f, l7 - u7 + l1 - u1, mad(4.0f, b7 - t7 + b1 - t1, bb7 - tt7 + bb1 - tt1 ) ) ) ) ) ) ) ) ) ) ); } 97cb1ffd4e7c1bc93caba596bf9c6e55#ifdef BORDER_CONSTANT #elif defined BORDER_REPLICATE #define EXTRAPOLATE(x, maxV) \ { \ x = max(min(x, maxV - 1), 0); \ } #elif defined BORDER_WRAP #define EXTRAPOLATE(x, maxV) \ { \ if (x < 0) \ x -= ((x - maxV + 1) / maxV) * maxV; \ if (x >= maxV) \ x %= maxV; \ } #elif defined(BORDER_REFLECT) || defined(BORDER_REFLECT101) #define EXTRAPOLATE_(x, maxV, delta) \ { \ if (maxV == 1) \ x = 0; \ else \ do \ { \ if ( x < 0 ) \ x = -x - 1 + delta; \ else \ x = maxV - 1 - (x - maxV) - delta; \ } \ while (x >= maxV || x < 0); \ } #ifdef BORDER_REFLECT #define EXTRAPOLATE(x, maxV) EXTRAPOLATE_(x, maxV, 0) #else #define EXTRAPOLATE(x, maxV) EXTRAPOLATE_(x, maxV, 1) #endif #else #error No extrapolation method #endif #define THREADS 256 __kernel void corner(__global const float * Dx, int dx_step, int dx_offset, int dx_whole_rows, int dx_whole_cols, __global const float * Dy, int dy_step, int dy_offset, int dy_whole_rows, int dy_whole_cols, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols, float k) { int col = get_local_id(0); int gX = get_group_id(0); int gY = get_group_id(1); int gly = get_global_id(1); int dx_x_off = (dx_offset % dx_step) >> 2; int dx_y_off = dx_offset / dx_step; int dy_x_off = (dy_offset % dy_step) >> 2; int dy_y_off = dy_offset / dy_step; int dst_x_off = (dst_offset % dst_step) >> 2; int dst_y_off = dst_offset / dst_step; int dx_startX = gX * (THREADS-ksX+1) - anX + dx_x_off; int dx_startY = (gY << 1) - anY + dx_y_off; int dy_startX = gX * (THREADS-ksX+1) - anX + dy_x_off; int dy_startY = (gY << 1) - anY + dy_y_off; int dst_startX = gX * (THREADS-ksX+1) + dst_x_off; int dst_startY = (gY << 1) + dst_y_off; float data[3][ksY+1]; __local float temp[6][THREADS]; #ifdef BORDER_CONSTANT for (int i=0; i < ksY+1; i++) { bool dx_con = dx_startX+col >= 0 && dx_startX+col < dx_whole_cols && dx_startY+i >= 0 && dx_startY+i < dx_whole_rows; int indexDx = mad24(dx_startY+i, dx_step>>2, dx_startX+col); float dx_s = dx_con ? Dx[indexDx] : 0.0f; bool dy_con = dy_startX+col >= 0 && dy_startX+col < dy_whole_cols && dy_startY+i >= 0 && dy_startY+i < dy_whole_rows; int indexDy = mad24(dy_startY+i, dy_step>>2, dy_startX+col); float dy_s = dy_con ? Dy[indexDy] : 0.0f; data[0][i] = dx_s * dx_s; data[1][i] = dx_s * dy_s; data[2][i] = dy_s * dy_s; } #else int clamped_col = min(2*dst_cols, col); for (int i=0; i < ksY+1; i++) { int dx_selected_row = dx_startY+i, dx_selected_col = dx_startX+clamped_col; EXTRAPOLATE(dx_selected_row, dx_whole_rows) EXTRAPOLATE(dx_selected_col, dx_whole_cols) float dx_s = Dx[mad24(dx_selected_row, dx_step>>2, dx_selected_col)]; int dy_selected_row = dy_startY+i, dy_selected_col = dy_startX+clamped_col; EXTRAPOLATE(dy_selected_row, dy_whole_rows) EXTRAPOLATE(dy_selected_col, dy_whole_cols) float dy_s = Dy[mad24(dy_selected_row, dy_step>>2, dy_selected_col)]; data[0][i] = dx_s * dx_s; data[1][i] = dx_s * dy_s; data[2][i] = dy_s * dy_s; } #endif float sum0 = 0.0f, sum1 = 0.0f, sum2 = 0.0f; for (int i=1; i < ksY; i++) { sum0 += data[0][i]; sum1 += data[1][i]; sum2 += data[2][i]; } float sum01 = sum0 + data[0][0]; float sum02 = sum0 + data[0][ksY]; temp[0][col] = sum01; temp[1][col] = sum02; float sum11 = sum1 + data[1][0]; float sum12 = sum1 + data[1][ksY]; temp[2][col] = sum11; temp[3][col] = sum12; float sum21 = sum2 + data[2][0]; float sum22 = sum2 + data[2][ksY]; temp[4][col] = sum21; temp[5][col] = sum22; barrier(CLK_LOCAL_MEM_FENCE); if (col < (THREADS - (ksX - 1))) { col += anX; int posX = dst_startX - dst_x_off + col - anX; int posY = (gly << 1); int till = (ksX + 1) & 1; float tmp_sum[6] = { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f }; for (int k=0; k<6; k++) { float temp_sum = 0; for (int i=-anX; i<=anX - till; i++) temp_sum += temp[k][col+i]; tmp_sum[k] = temp_sum; } #ifdef CORNER_HARRIS if (posX < dst_cols && (posY) < dst_rows) { int dst_index = mad24(dst_step, dst_startY, (int)sizeof(float) * (dst_startX + col - anX)); *(__global float *)(dst + dst_index) = tmp_sum[0] * tmp_sum[4] - tmp_sum[2] * tmp_sum[2] - k * (tmp_sum[0] + tmp_sum[4]) * (tmp_sum[0] + tmp_sum[4]); } if (posX < dst_cols && (posY + 1) < dst_rows) { int dst_index = mad24(dst_step, dst_startY + 1, (int)sizeof(float) * (dst_startX + col - anX)); *(__global float *)(dst + dst_index) = tmp_sum[1] * tmp_sum[5] - tmp_sum[3] * tmp_sum[3] - k * (tmp_sum[1] + tmp_sum[5]) * (tmp_sum[1] + tmp_sum[5]); } #elif defined CORNER_MINEIGENVAL if (posX < dst_cols && (posY) < dst_rows) { int dst_index = mad24(dst_step, dst_startY, (int)sizeof(float) * (dst_startX + col - anX)); float a = tmp_sum[0] * 0.5f; float b = tmp_sum[2]; float c = tmp_sum[4] * 0.5f; *(__global float *)(dst + dst_index) = (float)((a+c) - native_sqrt((a-c)*(a-c) + b*b)); } if (posX < dst_cols && (posY + 1) < dst_rows) { int dst_index = mad24(dst_step, dst_startY + 1, (int)sizeof(float) * (dst_startX + col - anX)); float a = tmp_sum[1] * 0.5f; float b = tmp_sum[3]; float c = tmp_sum[5] * 0.5f; *(__global float *)(dst + dst_index) = (float)((a+c) - native_sqrt((a-c)*(a-c) + b*b)); } #else #error "No such corners type" #endif } } 0b0ba9ee4305009cb2433737f7ed5bcdclahe#ifndef WAVE_SIZE #define WAVE_SIZE 1 #endif inline int calc_lut(__local int* smem, int val, int tid) { smem[tid] = val; barrier(CLK_LOCAL_MEM_FENCE); if (tid == 0) for (int i = 1; i < 256; ++i) smem[i] += smem[i - 1]; barrier(CLK_LOCAL_MEM_FENCE); return smem[tid]; } #ifdef CPU inline void reduce(volatile __local int* smem, int val, int tid) { smem[tid] = val; barrier(CLK_LOCAL_MEM_FENCE); if (tid < 128) smem[tid] = val += smem[tid + 128]; barrier(CLK_LOCAL_MEM_FENCE); if (tid < 64) smem[tid] = val += smem[tid + 64]; barrier(CLK_LOCAL_MEM_FENCE); if (tid < 32) smem[tid] += smem[tid + 32]; barrier(CLK_LOCAL_MEM_FENCE); if (tid < 16) smem[tid] += smem[tid + 16]; barrier(CLK_LOCAL_MEM_FENCE); if (tid < 8) smem[tid] += smem[tid + 8]; barrier(CLK_LOCAL_MEM_FENCE); if (tid < 4) smem[tid] += smem[tid + 4]; barrier(CLK_LOCAL_MEM_FENCE); if (tid < 2) smem[tid] += smem[tid + 2]; barrier(CLK_LOCAL_MEM_FENCE); if (tid < 1) smem[256] = smem[tid] + smem[tid + 1]; barrier(CLK_LOCAL_MEM_FENCE); } #else inline void reduce(__local volatile int* smem, int val, int tid) { smem[tid] = val; barrier(CLK_LOCAL_MEM_FENCE); if (tid < 128) smem[tid] = val += smem[tid + 128]; barrier(CLK_LOCAL_MEM_FENCE); if (tid < 64) smem[tid] = val += smem[tid + 64]; barrier(CLK_LOCAL_MEM_FENCE); if (tid < 32) { smem[tid] += smem[tid + 32]; #if WAVE_SIZE < 32 } barrier(CLK_LOCAL_MEM_FENCE); if (tid < 16) { #endif smem[tid] += smem[tid + 16]; #if WAVE_SIZE < 16 } barrier(CLK_LOCAL_MEM_FENCE); if (tid < 8) { #endif smem[tid] += smem[tid + 8]; smem[tid] += smem[tid + 4]; smem[tid] += smem[tid + 2]; smem[tid] += smem[tid + 1]; } } #endif __kernel void calcLut(__global __const uchar * src, const int srcStep, const int src_offset, __global uchar * lut, const int dstStep, const int dst_offset, const int2 tileSize, const int tilesX, const int clipLimit, const float lutScale) { __local int smem[512]; int tx = get_group_id(0); int ty = get_group_id(1); int tid = get_local_id(1) * get_local_size(0) + get_local_id(0); smem[tid] = 0; barrier(CLK_LOCAL_MEM_FENCE); for (int i = get_local_id(1); i < tileSize.y; i += get_local_size(1)) { __global const uchar* srcPtr = src + mad24(ty * tileSize.y + i, srcStep, tx * tileSize.x + src_offset); for (int j = get_local_id(0); j < tileSize.x; j += get_local_size(0)) { const int data = srcPtr[j]; atomic_inc(&smem[data]); } } barrier(CLK_LOCAL_MEM_FENCE); int tHistVal = smem[tid]; barrier(CLK_LOCAL_MEM_FENCE); if (clipLimit > 0) { int clipped = 0; if (tHistVal > clipLimit) { clipped = tHistVal - clipLimit; tHistVal = clipLimit; } reduce(smem, clipped, tid); barrier(CLK_LOCAL_MEM_FENCE); #ifdef CPU clipped = smem[256]; #else clipped = smem[0]; #endif barrier(CLK_LOCAL_MEM_FENCE); int redistBatch = clipped / 256; tHistVal += redistBatch; int residual = clipped - redistBatch * 256; int rStep = 256 / residual; if (rStep < 1) rStep = 1; if (tid%rStep == 0 && (tid/rStep)= cols || y >= rows) return; const float tyf = (convert_float(y) / tileSize.y) - 0.5f; int ty1 = convert_int_rtn(tyf); int ty2 = ty1 + 1; const float ya = tyf - ty1; ty1 = max(ty1, 0); ty2 = min(ty2, tilesY - 1); const float txf = (convert_float(x) / tileSize.x) - 0.5f; int tx1 = convert_int_rtn(txf); int tx2 = tx1 + 1; const float xa = txf - tx1; tx1 = max(tx1, 0); tx2 = min(tx2, tilesX - 1); const int srcVal = src[mad24(y, srcStep, x + src_offset)]; float res = 0; res += lut[mad24(ty1 * tilesX + tx1, lutStep, srcVal + lut_offset)] * ((1.0f - xa) * (1.0f - ya)); res += lut[mad24(ty1 * tilesX + tx2, lutStep, srcVal + lut_offset)] * ((xa) * (1.0f - ya)); res += lut[mad24(ty2 * tilesX + tx1, lutStep, srcVal + lut_offset)] * ((1.0f - xa) * (ya)); res += lut[mad24(ty2 * tilesX + tx2, lutStep, srcVal + lut_offset)] * ((xa) * (ya)); uint ires = (uint)convert_int_rte(res); dst[mad24(y, dstStep, x + dst_offset)] = convert_uchar(clamp(ires, (uint)0, (uint)255)); } fb487a84e67acdfbac57dd86a78d7468canny#define TG22 0.4142135623730950488016887242097f #define TG67 2.4142135623730950488016887242097f #ifdef WITH_SOBEL #if cn == 1 #define loadpix(addr) convert_floatN(*(__global const TYPE *)(addr)) #else #define loadpix(addr) convert_floatN(vload3(0, (__global const TYPE *)(addr))) #endif #define storepix(value, addr) *(__global int *)(addr) = (int)(value) __constant int prev[4][2] = { { 0, -1 }, { -1, 1 }, { -1, 0 }, { -1, -1 } }; __constant int next[4][2] = { { 0, 1 }, { 1, -1 }, { 1, 0 }, { 1, 1 } }; inline float3 sobel(int idx, __local const floatN *smem) { float3 res; floatN dx = fma((floatN)2, smem[idx + GRP_SIZEX + 6] - smem[idx + GRP_SIZEX + 4], smem[idx + 2] - smem[idx] + smem[idx + 2 * GRP_SIZEX + 10] - smem[idx + 2 * GRP_SIZEX + 8]); floatN dy = fma((floatN)2, smem[idx + 1] - smem[idx + 2 * GRP_SIZEX + 9], smem[idx + 2] - smem[idx + 2 * GRP_SIZEX + 10] + smem[idx] - smem[idx + 2 * GRP_SIZEX + 8]); #ifdef L2GRAD floatN magN = fma(dx, dx, dy * dy); #else floatN magN = fabs(dx) + fabs(dy); #endif #if cn == 1 res.z = magN; res.x = dx; res.y = dy; #else res.z = max(magN.x, max(magN.y, magN.z)); if (res.z == magN.y) { dx.x = dx.y; dy.x = dy.y; } else if (res.z == magN.z) { dx.x = dx.z; dy.x = dy.z; } res.x = dx.x; res.y = dy.x; #endif return res; } __kernel void stage1_with_sobel(__global const uchar *src, int src_step, int src_offset, int rows, int cols, __global uchar *map, int map_step, int map_offset, float low_thr, float high_thr) { __local floatN smem[(GRP_SIZEX + 4) * (GRP_SIZEY + 4)]; int lidx = get_local_id(0); int lidy = get_local_id(1); int start_x = GRP_SIZEX * get_group_id(0); int start_y = GRP_SIZEY * get_group_id(1); int i = lidx + lidy * GRP_SIZEX; for (int j = i; j < (GRP_SIZEX + 4) * (GRP_SIZEY + 4); j += GRP_SIZEX * GRP_SIZEY) { int x = clamp(start_x - 2 + (j % (GRP_SIZEX + 4)), 0, cols - 1); int y = clamp(start_y - 2 + (j / (GRP_SIZEX + 4)), 0, rows - 1); smem[j] = loadpix(src + mad24(y, src_step, mad24(x, cn * (int)sizeof(TYPE), src_offset))); } barrier(CLK_LOCAL_MEM_FENCE); __local float mag[(GRP_SIZEX + 2) * (GRP_SIZEY + 2)]; lidx++; lidy++; if (i < GRP_SIZEX + 2) { int grp_sizey = min(GRP_SIZEY + 1, rows - start_y); mag[i] = (sobel(i, smem)).z; mag[i + grp_sizey * (GRP_SIZEX + 2)] = (sobel(i + grp_sizey * (GRP_SIZEX + 4), smem)).z; } if (i < GRP_SIZEY + 2) { int grp_sizex = min(GRP_SIZEX + 1, cols - start_x); mag[i * (GRP_SIZEX + 2)] = (sobel(i * (GRP_SIZEX + 4), smem)).z; mag[i * (GRP_SIZEX + 2) + grp_sizex] = (sobel(i * (GRP_SIZEX + 4) + grp_sizex, smem)).z; } int idx = lidx + lidy * (GRP_SIZEX + 4); i = lidx + lidy * (GRP_SIZEX + 2); float3 res = sobel(idx, smem); mag[i] = res.z; barrier(CLK_LOCAL_MEM_FENCE); int x = (int) res.x; int y = (int) res.y; int gidx = get_global_id(0); int gidy = get_global_id(1); if (gidx >= cols || gidy >= rows) return; float mag0 = mag[i]; int value = 1; if (mag0 > low_thr) { float x_ = abs(x); float y_ = abs(y); int a = (y_ * TG22 >= x_) ? 2 : 1; int b = (y_ * TG67 >= x_) ? 1 : 0; int dir3 = (a * b) & (((x ^ y) & 0x80000000) >> 31); int dir = a * b + 2 * dir3; float prev_mag = mag[(lidy + prev[dir][0]) * (GRP_SIZEX + 2) + lidx + prev[dir][1]]; float next_mag = mag[(lidy + next[dir][0]) * (GRP_SIZEX + 2) + lidx + next[dir][1]] + (dir & 1); if (mag0 > prev_mag && mag0 >= next_mag) { value = (mag0 > high_thr) ? 2 : 0; } } storepix(value, map + mad24(gidy, map_step, mad24(gidx, (int)sizeof(int), map_offset))); } #elif defined WITHOUT_SOBEL #define loadpix(addr) (__global short *)(addr) #define storepix(val, addr) *(__global int *)(addr) = (int)(val) #ifdef L2GRAD #define dist(x, y) ((int)(x) * (x) + (int)(y) * (y)) #else #define dist(x, y) (abs((int)(x)) + abs((int)(y))) #endif __constant int prev[4][2] = { { 0, -1 }, { -1, -1 }, { -1, 0 }, { -1, 1 } }; __constant int next[4][2] = { { 0, 1 }, { 1, 1 }, { 1, 0 }, { 1, -1 } }; __kernel void stage1_without_sobel(__global const uchar *dxptr, int dx_step, int dx_offset, __global const uchar *dyptr, int dy_step, int dy_offset, __global uchar *map, int map_step, int map_offset, int rows, int cols, int low_thr, int high_thr) { int start_x = get_group_id(0) * GRP_SIZEX; int start_y = get_group_id(1) * GRP_SIZEY; int lidx = get_local_id(0); int lidy = get_local_id(1); __local int mag[(GRP_SIZEX + 2) * (GRP_SIZEY + 2)]; __local short2 sigma[(GRP_SIZEX + 2) * (GRP_SIZEY + 2)]; #pragma unroll for (int i = lidx + lidy * GRP_SIZEX; i < (GRP_SIZEX + 2) * (GRP_SIZEY + 2); i += GRP_SIZEX * GRP_SIZEY) { int x = clamp(start_x - 1 + i % (GRP_SIZEX + 2), 0, cols - 1); int y = clamp(start_y - 1 + i / (GRP_SIZEX + 2), 0, rows - 1); int dx_index = mad24(y, dx_step, mad24(x, cn * (int)sizeof(short), dx_offset)); int dy_index = mad24(y, dy_step, mad24(x, cn * (int)sizeof(short), dy_offset)); __global short *dx = loadpix(dxptr + dx_index); __global short *dy = loadpix(dyptr + dy_index); int mag0 = dist(dx[0], dy[0]); #if cn > 1 short cdx = dx[0], cdy = dy[0]; #pragma unroll for (int j = 1; j < cn; ++j) { int mag1 = dist(dx[j], dy[j]); if (mag1 > mag0) { mag0 = mag1; cdx = dx[j]; cdy = dy[j]; } } dx[0] = cdx; dy[0] = cdy; #endif mag[i] = mag0; sigma[i] = (short2)(dx[0], dy[0]); } barrier(CLK_LOCAL_MEM_FENCE); int gidx = get_global_id(0); int gidy = get_global_id(1); if (gidx >= cols || gidy >= rows) return; lidx++; lidy++; int mag0 = mag[lidx + lidy * (GRP_SIZEX + 2)]; short x = (sigma[lidx + lidy * (GRP_SIZEX + 2)]).x; short y = (sigma[lidx + lidy * (GRP_SIZEX + 2)]).y; int value = 1; if (mag0 > low_thr) { float x_ = abs(x); float y_ = abs(y); int a = (y_ * TG22 >= x_) ? 2 : 1; int b = (y_ * TG67 >= x_) ? 1 : 0; int dir3 = (a * b) & (((x ^ y) & 0x80000000) >> 31); int dir = a * b + 2 * dir3; int prev_mag = mag[(lidy + prev[dir][0]) * (GRP_SIZEX + 2) + lidx + prev[dir][1]]; int next_mag = mag[(lidy + next[dir][0]) * (GRP_SIZEX + 2) + lidx + next[dir][1]] + (dir & 1); if (mag0 > prev_mag && mag0 >= next_mag) { value = (mag0 > high_thr) ? 2 : 0; } } storepix(value, map + mad24(gidy, map_step, mad24(gidx, (int)sizeof(int), map_offset))); } #undef TG22 #undef CANNY_SHIFT #elif defined STAGE2 #define loadpix(addr) *(__global int *)(addr) #define storepix(val, addr) *(__global int *)(addr) = (int)(val) #define LOCAL_TOTAL (LOCAL_X*LOCAL_Y) #define l_stack_size (4*LOCAL_TOTAL) #define p_stack_size 8 __constant short move_dir[2][8] = { { -1, -1, -1, 0, 0, 1, 1, 1 }, { -1, 0, 1, -1, 1, -1, 0, 1 } }; __kernel void stage2_hysteresis(__global uchar *map_ptr, int map_step, int map_offset, int rows, int cols) { map_ptr += map_offset; int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI; int lid = get_local_id(0) + get_local_id(1) * LOCAL_X; __local ushort2 l_stack[l_stack_size]; __local int l_counter; if (lid == 0) l_counter = 0; barrier(CLK_LOCAL_MEM_FENCE); if (x < cols) { __global uchar* map = map_ptr + mad24(y, map_step, x * (int)sizeof(int)); #pragma unroll for (int cy = 0; cy < PIX_PER_WI; ++cy) { if (y < rows) { int type = loadpix(map); if (type == 2) { l_stack[atomic_inc(&l_counter)] = (ushort2)(x, y); } y++; map += map_step; } } } barrier(CLK_LOCAL_MEM_FENCE); ushort2 p_stack[p_stack_size]; int p_counter = 0; while(l_counter != 0) { int mod = l_counter % LOCAL_TOTAL; int pix_per_thr = l_counter / LOCAL_TOTAL + ((lid < mod) ? 1 : 0); barrier(CLK_LOCAL_MEM_FENCE); for (int i = 0; i < pix_per_thr; ++i) { int index = atomic_dec(&l_counter) - 1; if (index < 0) continue; ushort2 pos = l_stack[ index ]; #pragma unroll for (int j = 0; j < 8; ++j) { ushort posx = pos.x + move_dir[0][j]; ushort posy = pos.y + move_dir[1][j]; if (posx < 0 || posy < 0 || posx >= cols || posy >= rows) continue; __global uchar *addr = map_ptr + mad24(posy, map_step, posx * (int)sizeof(int)); int type = loadpix(addr); if (type == 0) { p_stack[p_counter++] = (ushort2)(posx, posy); storepix(2, addr); } } } barrier(CLK_LOCAL_MEM_FENCE); if (l_counter < 0) l_counter = 0; barrier(CLK_LOCAL_MEM_FENCE); while (p_counter > 0) { l_stack[ atomic_inc(&l_counter) ] = p_stack[--p_counter]; } barrier(CLK_LOCAL_MEM_FENCE); } } #elif defined GET_EDGES __kernel void getEdges(__global const uchar *mapptr, int map_step, int map_offset, int rows, int cols, __global uchar *dst, int dst_step, int dst_offset) { int x = get_global_id(0); int y = get_global_id(1) * PIX_PER_WI; if (x < cols) { int map_index = mad24(map_step, y, mad24(x, (int)sizeof(int), map_offset)); int dst_index = mad24(dst_step, y, x + dst_offset); #pragma unroll for (int cy = 0; cy < PIX_PER_WI; ++cy) { if (y < rows) { __global const int * map = (__global const int *)(mapptr + map_index); dst[dst_index] = (uchar)(-(map[0] >> 1)); y++; map_index += map_step; dst_index += dst_step; } } } } #endif 2e3c93ad703f4bcee1efbbcc0107fc8dcalc_back_project#define OUT_OF_RANGE -1 #define ROUNDING_EPS 0.000001f #if histdims == 1 __kernel void calcLUT(__global const uchar * histptr, int hist_step, int hist_offset, int hist_bins, __global int * lut, float scale, __constant float * ranges) { int x = get_global_id(0); float value = convert_float(x); if (value > ranges[1] || value < ranges[0]) lut[x] = OUT_OF_RANGE; else { float lb = ranges[0], ub = ranges[1], gap = (ub - lb) / hist_bins; value -= lb; int bin = convert_int_sat_rtn(value / gap + ROUNDING_EPS); if (bin >= hist_bins) lut[x] = OUT_OF_RANGE; else { int hist_index = mad24(hist_step, bin, hist_offset); __global const float * hist = (__global const float *)(histptr + hist_index); lut[x] = (int)convert_uchar_sat_rte(hist[0] * scale); } } } __kernel void LUT(__global const uchar * src, int src_step, int src_offset, __constant int * lut, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols) { int x = get_global_id(0); int y = get_global_id(1); if (x < dst_cols && y < dst_rows) { int src_index = mad24(y, src_step, src_offset + x * scn); int dst_index = mad24(y, dst_step, dst_offset + x); int value = lut[src[src_index]]; dst[dst_index] = value == OUT_OF_RANGE ? 0 : convert_uchar(value); } } #elif histdims == 2 __kernel void calcLUT(int hist_bins, __global int * lut, int lut_offset, __constant float * ranges, int roffset) { int x = get_global_id(0); float value = convert_float(x); ranges += roffset; lut += lut_offset; if (value > ranges[1] || value < ranges[0]) lut[x] = OUT_OF_RANGE; else { float lb = ranges[0], ub = ranges[1], gap = (ub - lb) / hist_bins; value -= lb; int bin = convert_int_sat_rtn(value / gap + ROUNDING_EPS); lut[x] = bin >= hist_bins ? OUT_OF_RANGE : bin; } } __kernel void LUT(__global const uchar * src1, int src1_step, int src1_offset, __global const uchar * src2, int src2_step, int src2_offset, __global const uchar * histptr, int hist_step, int hist_offset, __constant int * lut, float scale, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols) { int x = get_global_id(0); int y = get_global_id(1); if (x < dst_cols && y < dst_rows) { int src1_index = mad24(y, src1_step, src1_offset + x * scn1); int src2_index = mad24(y, src2_step, src2_offset + x * scn2); int dst_index = mad24(y, dst_step, dst_offset + x); int bin1 = lut[src1[src1_index]]; int bin2 = lut[src2[src2_index] + 256]; dst[dst_index] = bin1 == OUT_OF_RANGE || bin2 == OUT_OF_RANGE ? 0 : convert_uchar_sat_rte(*(__global const float *)(histptr + mad24(hist_step, bin1, hist_offset + bin2 * (int)sizeof(float))) * scale); } } #else #error "(nimages <= 2) should be true" #endif 6bab391f796ff5b2ba3d38f23929307eboxFilter3x3__kernel void boxFilter3x3_8UC1_cols16_rows2(__global const uint* src, int src_step, __global uint* dst, int dst_step, int rows, int cols #ifdef NORMALIZE , float alpha #endif ) { int block_x = get_global_id(0); int y = get_global_id(1) * 2; int ssx, dsx; if ((block_x * 16) >= cols || y >= rows) return; uint4 line[4]; uint4 line_out[2]; ushort a; ushort16 b; ushort c; ushort d; ushort16 e; ushort f; ushort g; ushort16 h; ushort i; ushort j; ushort16 k; ushort l; ssx = dsx = 1; int src_index = block_x * 4 * ssx + (y - 1) * (src_step / 4); line[1] = vload4(0, src + src_index + (src_step / 4)); line[2] = vload4(0, src + src_index + 2 * (src_step / 4)); #ifdef BORDER_CONSTANT line[0] = (y == 0) ? (uint4)0 : vload4(0, src + src_index); line[3] = (y == (rows - 2)) ? (uint4)0 : vload4(0, src + src_index + 3 * (src_step / 4)); #elif defined BORDER_REFLECT_101 line[0] = (y == 0) ? line[2] : vload4(0, src + src_index); line[3] = (y == (rows - 2)) ? line[1] : vload4(0, src + src_index + 3 * (src_step / 4)); #elif defined (BORDER_REPLICATE) || defined(BORDER_REFLECT) line[0] = (y == 0) ? line[1] : vload4(0, src + src_index); line[3] = (y == (rows - 2)) ? line[2] : vload4(0, src + src_index + 3 * (src_step / 4)); #endif ushort16 sum, mid; __global uchar *src_p = (__global uchar *)src; src_index = block_x * 16 * ssx + (y - 1) * src_step; bool line_end = ((block_x + 1) * 16 == cols); b = convert_ushort16(as_uchar16(line[0])); e = convert_ushort16(as_uchar16(line[1])); h = convert_ushort16(as_uchar16(line[2])); k = convert_ushort16(as_uchar16(line[3])); #ifdef BORDER_CONSTANT a = (block_x == 0 || y == 0) ? 0 : convert_ushort(src_p[src_index - 1]); c = (line_end || y == 0) ? 0 : convert_ushort(src_p[src_index + 16]); d = (block_x == 0) ? 0 : convert_ushort(src_p[src_index + src_step - 1]); f = line_end ? 0 : convert_ushort(src_p[src_index + src_step + 16]); g = (block_x == 0) ? 0 : convert_ushort(src_p[src_index + 2 * src_step - 1]); i = line_end ? 0 : convert_ushort(src_p[src_index + 2 * src_step + 16]); j = (block_x == 0 || y == (rows - 2)) ? 0 : convert_ushort(src_p[src_index + 3 * src_step - 1]); l = (line_end || y == (rows - 2))? 0 : convert_ushort(src_p[src_index + 3 * src_step + 16]); #elif defined BORDER_REFLECT_101 int offset; offset = (y == 0) ? (2 * src_step) : 0; a = (block_x == 0) ? convert_ushort(src_p[src_index + offset + 1]) : convert_ushort(src_p[src_index + offset - 1]); c = line_end ? convert_ushort(src_p[src_index + offset + 14]) : convert_ushort(src_p[src_index + offset + 16]); d = (block_x == 0) ? convert_ushort(src_p[src_index + src_step + 1]) : convert_ushort(src_p[src_index + src_step - 1]); f = line_end ? convert_ushort(src_p[src_index + src_step + 14]) : convert_ushort(src_p[src_index + src_step + 16]); g = (block_x == 0) ? convert_ushort(src_p[src_index + 2 * src_step + 1]) : convert_ushort(src_p[src_index + 2 * src_step - 1]); i = line_end ? convert_ushort(src_p[src_index + 2 * src_step + 14]) : convert_ushort(src_p[src_index + 2 * src_step + 16]); offset = (y == (rows - 2)) ? (1 * src_step) : (3 * src_step); j = (block_x == 0) ? convert_ushort(src_p[src_index + offset + 1]) : convert_ushort(src_p[src_index + offset - 1]); l = line_end ? convert_ushort(src_p[src_index + offset + 14]) : convert_ushort(src_p[src_index + offset + 16]); #elif defined (BORDER_REPLICATE) || defined(BORDER_REFLECT) int offset; offset = (y == 0) ? (1 * src_step) : 0; a = (block_x == 0) ? convert_ushort(src_p[src_index + offset]) : convert_ushort(src_p[src_index + offset - 1]); c = line_end ? convert_ushort(src_p[src_index + offset + 15]) : convert_ushort(src_p[src_index + offset + 16]); d = (block_x == 0) ? convert_ushort(src_p[src_index + src_step]) : convert_ushort(src_p[src_index + src_step - 1]); f = line_end ? convert_ushort(src_p[src_index + src_step + 15]) : convert_ushort(src_p[src_index + src_step + 16]); g = (block_x == 0) ? convert_ushort(src_p[src_index + 2 * src_step]) : convert_ushort(src_p[src_index + 2 * src_step - 1]); i = line_end ? convert_ushort(src_p[src_index + 2 * src_step + 15]) : convert_ushort(src_p[src_index + 2 * src_step + 16]); offset = (y == (rows - 2)) ? (2 * src_step) : (3 * src_step); j = (block_x == 0) ? convert_ushort(src_p[src_index + offset]) : convert_ushort(src_p[src_index + offset - 1]); l = line_end ? convert_ushort(src_p[src_index + offset + 15]) : convert_ushort(src_p[src_index + offset + 16]); #endif mid = (ushort16)(d, e.s0123, e.s456789ab, e.scde) + e + (ushort16)(e.s123, e.s4567, e.s89abcdef, f) + (ushort16)(g, h.s0123, h.s456789ab, h.scde) + h + (ushort16)(h.s123, h.s4567, h.s89abcdef, i); sum = (ushort16)(a, b.s0123, b.s456789ab, b.scde) + b + (ushort16)(b.s123, b.s4567, b.s89abcdef, c) + mid; #ifdef NORMALIZE line_out[0] = as_uint4(convert_uchar16_sat_rte((convert_float16(sum) * alpha))); #else line_out[0] = as_uint4(convert_uchar16_sat_rte(sum)); #endif sum = mid + (ushort16)(j, k.s0123, k.s456789ab, k.scde) + k + (ushort16)(k.s123, k.s4567, k.s89abcdef, l); #ifdef NORMALIZE line_out[1] = as_uint4(convert_uchar16_sat_rte((convert_float16(sum) * alpha))); #else line_out[1] = as_uint4(convert_uchar16_sat_rte(sum)); #endif int dst_index = block_x * 4 * dsx + y * (dst_step / 4); vstore4(line_out[0], 0, dst + dst_index); vstore4(line_out[1], 0, dst + dst_index + (dst_step / 4)); } 72a31e7e412911731db2747210c1b3d4#ifdef DOUBLE_SUPPORT #ifdef cl_amd_fp64 #pragma OPENCL EXTENSION cl_amd_fp64:enable #elif defined (cl_khr_fp64) #pragma OPENCL EXTENSION cl_khr_fp64:enable #endif #endif #if cn != 3 #define loadpix(addr) *(__global const ST *)(addr) #define storepix(val, addr) *(__global DT *)(addr) = val #define SRCSIZE (int)sizeof(ST) #define DSTSIZE (int)sizeof(DT) #else #define loadpix(addr) vload3(0, (__global const ST1 *)(addr)) #define storepix(val, addr) vstore3(val, 0, (__global DT1 *)(addr)) #define SRCSIZE (int)sizeof(ST1)*cn #define DSTSIZE (int)sizeof(DT1)*cn #endif #ifdef BORDER_CONSTANT #elif defined BORDER_REPLICATE #define EXTRAPOLATE(x, y, minX, minY, maxX, maxY) \ { \ x = max(min(x, maxX - 1), minX); \ y = max(min(y, maxY - 1), minY); \ } #elif defined BORDER_WRAP #define EXTRAPOLATE(x, y, minX, minY, maxX, maxY) \ { \ if (x < minX) \ x -= ((x - maxX + 1) / maxX) * maxX; \ if (x >= maxX) \ x %= maxX; \ if (y < minY) \ y -= ((y - maxY + 1) / maxY) * maxY; \ if (y >= maxY) \ y %= maxY; \ } #elif defined(BORDER_REFLECT) || defined(BORDER_REFLECT_101) #define EXTRAPOLATE_(x, y, minX, minY, maxX, maxY, delta) \ { \ if (maxX - minX == 1) \ x = minX; \ else \ do \ { \ if (x < minX) \ x = minX - (x - minX) - 1 + delta; \ else \ x = maxX - 1 - (x - maxX) - delta; \ } \ while (x >= maxX || x < minX); \ \ if (maxY - minY == 1) \ y = minY; \ else \ do \ { \ if (y < minY) \ y = minY - (y - minY) - 1 + delta; \ else \ y = maxY - 1 - (y - maxY) - delta; \ } \ while (y >= maxY || y < minY); \ } #ifdef BORDER_REFLECT #define EXTRAPOLATE(x, y, minX, minY, maxX, maxY) EXTRAPOLATE_(x, y, minX, minY, maxX, maxY, 0) #elif defined(BORDER_REFLECT_101) #define EXTRAPOLATE(x, y, minX, minY, maxX, maxY) EXTRAPOLATE_(x, y, minX, minY, maxX, maxY, 1) #endif #else #error No extrapolation method #endif #define noconvert #ifdef SQR #define PROCESS_ELEM(value) (value * value) #else #define PROCESS_ELEM(value) value #endif struct RectCoords { int x1, y1, x2, y2; }; inline WT readSrcPixel(int2 pos, __global const uchar * srcptr, int src_step, const struct RectCoords srcCoords) { #ifdef BORDER_ISOLATED if (pos.x >= srcCoords.x1 && pos.y >= srcCoords.y1 && pos.x < srcCoords.x2 && pos.y < srcCoords.y2) #else if (pos.x >= 0 && pos.y >= 0 && pos.x < srcCoords.x2 && pos.y < srcCoords.y2) #endif { int src_index = mad24(pos.y, src_step, pos.x * SRCSIZE); WT value = convertToWT(loadpix(srcptr + src_index)); return PROCESS_ELEM(value); } else { #ifdef BORDER_CONSTANT return (WT)(0); #else int selected_col = pos.x, selected_row = pos.y; EXTRAPOLATE(selected_col, selected_row, #ifdef BORDER_ISOLATED srcCoords.x1, srcCoords.y1, #else 0, 0, #endif srcCoords.x2, srcCoords.y2); int src_index = mad24(selected_row, src_step, selected_col * SRCSIZE); WT value = convertToWT(loadpix(srcptr + src_index)); return PROCESS_ELEM(value); #endif } } __kernel void boxFilter(__global const uchar * srcptr, int src_step, int srcOffsetX, int srcOffsetY, int srcEndX, int srcEndY, __global uchar * dstptr, int dst_step, int dst_offset, int rows, int cols #ifdef NORMALIZE , float alpha #endif ) { const struct RectCoords srcCoords = { srcOffsetX, srcOffsetY, srcEndX, srcEndY }; int x = get_local_id(0) + (LOCAL_SIZE_X - (KERNEL_SIZE_X - 1)) * get_group_id(0) - ANCHOR_X; int y = get_global_id(1) * BLOCK_SIZE_Y; int local_id = get_local_id(0); WT data[KERNEL_SIZE_Y]; __local WT sumOfCols[LOCAL_SIZE_X]; int2 srcPos = (int2)(srcCoords.x1 + x, srcCoords.y1 + y - ANCHOR_Y); #pragma unroll for (int sy = 0; sy < KERNEL_SIZE_Y; sy++, srcPos.y++) data[sy] = readSrcPixel(srcPos, srcptr, src_step, srcCoords); WT tmp_sum = (WT)(0); #pragma unroll for (int sy = 0; sy < KERNEL_SIZE_Y; sy++) tmp_sum += data[sy]; sumOfCols[local_id] = tmp_sum; barrier(CLK_LOCAL_MEM_FENCE); int dst_index = mad24(y, dst_step, mad24(x, DSTSIZE, dst_offset)); __global DT * dst = (__global DT *)(dstptr + dst_index); int sy_index = 0; for (int i = 0, stepY = min(rows - y, BLOCK_SIZE_Y); i < stepY; ++i) { if (local_id >= ANCHOR_X && local_id < LOCAL_SIZE_X - (KERNEL_SIZE_X - 1 - ANCHOR_X) && x >= 0 && x < cols) { WT total_sum = (WT)(0); #pragma unroll for (int sx = 0; sx < KERNEL_SIZE_X; sx++) total_sum += sumOfCols[local_id + sx - ANCHOR_X]; #ifdef NORMALIZE DT dstval = convertToDT((WT)(alpha) * total_sum); #else DT dstval = convertToDT(total_sum); #endif storepix(dstval, dst); } barrier(CLK_LOCAL_MEM_FENCE); tmp_sum = sumOfCols[local_id]; tmp_sum -= data[sy_index]; data[sy_index] = readSrcPixel(srcPos, srcptr, src_step, srcCoords); srcPos.y++; tmp_sum += data[sy_index]; sumOfCols[local_id] = tmp_sum; sy_index = sy_index + 1 < KERNEL_SIZE_Y ? sy_index + 1 : 0; barrier(CLK_LOCAL_MEM_FENCE); dst = (__global DT *)((__global uchar *)dst + dst_step); } } d3e542270fa2ea1fc3744043dad50cb4blend_linear#ifdef DOUBLE_SUPPORT #ifdef cl_amd_fp64 #pragma OPENCL EXTENSION cl_amd_fp64:enable #elif defined (cl_khr_fp64) #pragma OPENCL EXTENSION cl_khr_fp64:enable #endif #endif #define noconvert __kernel void blendLinear(__global const uchar * src1ptr, int src1_step, int src1_offset, __global const uchar * src2ptr, int src2_step, int src2_offset, __global const uchar * weight1, int weight1_step, int weight1_offset, __global const uchar * weight2, int weight2_step, int weight2_offset, __global uchar * dstptr, int dst_step, int dst_offset, int dst_rows, int dst_cols) { int x = get_global_id(0); int y = get_global_id(1); if (x < dst_cols && y < dst_rows) { int src1_index = mad24(y, src1_step, src1_offset + x * cn * (int)sizeof(T)); int src2_index = mad24(y, src2_step, src2_offset + x * cn * (int)sizeof(T)); int weight1_index = mad24(y, weight1_step, weight1_offset + x * (int)sizeof(float)); int weight2_index = mad24(y, weight2_step, weight2_offset + x * (int)sizeof(float)); int dst_index = mad24(y, dst_step, dst_offset + x * cn * (int)sizeof(T)); float w1 = *(__global const float *)(weight1 + weight1_index), w2 = *(__global const float *)(weight2 + weight2_index); float den = w1 + w2 + 1e-5f; __global const T * src1 = (__global const T *)(src1ptr + src1_index); __global const T * src2 = (__global const T *)(src2ptr + src2_index); __global T * dst = (__global T *)(dstptr + dst_index); #pragma unroll for (int i = 0; i < cn; ++i) { float num = w1 * convert_float(src1[i]) + w2 * convert_float(src2[i]); dst[i] = convertToT(num / den); } } } 76072b51c3ede4951ee0200aa33297dc#if cn != 3 #define loadpix(addr) *(__global const uchar_t *)(addr) #define storepix(val, addr) *(__global uchar_t *)(addr) = val #define TSIZE cn #else #define loadpix(addr) vload3(0, (__global const uchar *)(addr)) #define storepix(val, addr) vstore3(val, 0, (__global uchar *)(addr)) #define TSIZE 3 #endif #if cn == 1 #define SUM(a) a #elif cn == 2 #define SUM(a) a.x + a.y #elif cn == 3 #define SUM(a) a.x + a.y + a.z #elif cn == 4 #define SUM(a) a.x + a.y + a.z + a.w #else #error "cn should be <= 4" #endif __kernel void bilateral(__global const uchar * src, int src_step, int src_offset, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols, __constant float * space_weight, __constant int * space_ofs) { int x = get_global_id(0); int y = get_global_id(1); if (y < dst_rows && x < dst_cols) { int src_index = mad24(y + radius, src_step, mad24(x + radius, TSIZE, src_offset)); int dst_index = mad24(y, dst_step, mad24(x, TSIZE, dst_offset)); float_t sum = (float_t)(0.0f); float wsum = 0.0f; #ifdef INTEL_DEVICE float_t val0 = convert_float_t(loadpix(src + src_index)); #else int_t val0 = convert_int_t(loadpix(src + src_index)); #endif #pragma unroll for (int k = 0; k < maxk; k++ ) { #ifdef INTEL_DEVICE float_t val = convert_float_t(loadpix(src + src_index + space_ofs[k])); float diff = SUM(fabs(val - val0)); #else int_t val = convert_int_t(loadpix(src + src_index + space_ofs[k])); int diff = SUM(abs(val - val0)); #endif float w = space_weight[k] * native_exp((float)(diff * diff * gauss_color_coeff)); sum += convert_float_t(val) * (float_t)(w); wsum += w; } storepix(convert_uchar_t(sum / (float_t)(wsum)), dst + dst_index); } } #ifdef INTEL_DEVICE #if cn == 1 __kernel void bilateral_float4(__global const uchar * src, int src_step, int src_offset, __global uchar * dst, int dst_step, int dst_offset, int dst_rows, int dst_cols, __constant float * space_weight, __constant int * space_ofs) { int x = get_global_id(0); int y = get_global_id(1); if (y < dst_rows && x < dst_cols / 4 ) { int src_index = ((y + radius) * src_step) + x * 4 + (radius + src_offset); int dst_index = (y * dst_step) + x * 4 + dst_offset ; float4 sum = 0.f, wsum = 0.f; float4 val0 = convert_float4(vload4(0, src + src_index)); #pragma unroll for (int k = 0; k < maxk; k++ ) { float4 val = convert_float4(vload4(0, src + src_index + space_ofs[k])); float4 w = space_weight[k] * native_exp((val - val0) * (val - val0) * gauss_color_coeff); sum += val * w; wsum += w; } sum = sum / wsum + .5f; vstore4(convert_uchar4_rtz(sum), 0, dst + dst_index); } } #endif #endif 1cc12569fdb93cbfa05bb215d3d42e64#ifdef DOUBLE_SUPPORT #ifdef cl_amd_fp64 #pragma OPENCL EXTENSION cl_amd_fp64:enable #elif defined (cl_khr_fp64) #pragma OPENCL EXTENSION cl_khr_fp64:enable #endif #endif #define SRC_TSIZE cn * (int)sizeof(srcT1) #define DST_TSIZE cn * (int)sizeof(dstT1) #define noconvert __kernel void accumulate(__global const uchar * srcptr, int src_step, int src_offset, #ifdef ACCUMULATE_PRODUCT __global const uchar * src2ptr, int src2_step, int src2_offset, #endif __global uchar * dstptr, int dst_step, int dst_offset, int dst_rows, int dst_cols #ifdef ACCUMULATE_WEIGHTED , dstT1 alpha #endif #ifdef HAVE_MASK , __global const uchar * mask, int mask_step, int mask_offset #endif ) { int x = get_global_id(0); int y = get_global_id(1) * rowsPerWI; if (x < dst_cols) { int src_index = mad24(y, src_step, mad24(x, SRC_TSIZE, src_offset)); #ifdef HAVE_MASK int mask_index = mad24(y, mask_step, mask_offset + x); mask += mask_index; #endif #ifdef ACCUMULATE_PRODUCT int src2_index = mad24(y, src2_step, mad24(x, SRC_TSIZE, src2_offset)); #endif int dst_index = mad24(y, dst_step, mad24(x, DST_TSIZE, dst_offset)); #pragma unroll for (int i = 0; i < rowsPerWI; ++i) if (y < dst_rows) { __global const srcT1 * src = (__global const srcT1 *)(srcptr + src_index); #ifdef ACCUMULATE_PRODUCT __global const srcT1 * src2 = (__global const srcT1 *)(src2ptr + src2_index); #endif __global dstT1 * dst = (__global dstT1 *)(dstptr + dst_index); #ifdef HAVE_MASK if (mask[0]) #endif #pragma unroll for (int c = 0; c < cn; ++c) { #ifdef ACCUMULATE dst[c] += convertToDT(src[c]); #elif defined ACCUMULATE_SQUARE dstT1 val = convertToDT(src[c]); dst[c] = fma(val, val, dst[c]); #elif defined ACCUMULATE_PRODUCT dst[c] = fma(convertToDT(src[c]), convertToDT(src2[c]), dst[c]); #elif defined ACCUMULATE_WEIGHTED dst[c] = fma(1 - alpha, dst[c], src[c] * alpha); #else #error "Unknown accumulation type" #endif } src_index += src_step; #ifdef ACCUMULATE_PRODUCT src2_index += src2_step; #endif #ifdef HAVE_MASK mask += mask_step; #endif dst_index += dst_step; ++y; } } } 5f2c2d40f721d738ad2b8ef755376c6finternal error: attempted to use an unavailable function ?,L  $         < ?n(@l<(  0   <,?n,Dl<(  0   <?0H4<(   48?n4Ll<(  4  <? 4Pxh? 4Px<?&8T t    ? <Xx  Բ/  &xLȲh08@      ԑвx    0,,DT!0!$!!(!   ! ! !   |!h!  !   ! !!!!!!L%,\}28P(DF@DFDFDEECE E E CCCC$EBLBEBELX(FF`FF0FFFFFDFF F D D DCFG$DGHDFDFDDPGGFFDCFF F!F$F&F&E(E(F-F3D9|F;D;C;F=F?D@FA$DDL! !ZYYYZYZY YY1Y:Y;Y<Y=Z?Y@ZBYBYCTYD YPZRYRYSYS YTYV YVZV YWXWYWXYYYZYЋċ|pdXL@4("8D= ==< = ; >==>====>>>>(>==>=;$?&?'>'>(>(=(=(h=*=*=,<-<.=.<.</=/<0?0?1?3>4@7?8=8=9=9?9?9?9>9>:>;@;?;@;@;=<==??(d(T0D,40$0H,,*4܈00̈?84 00 8p4\0L>4<?8(0,0?4.4܇?8ȇ<T48x 0d00P0@ 4,,, ,X8`4_8`")\*]*]+],]-].].^/^00^00^1^22_5_Z_Z_[ `\`\`]T 4@ (( ((܅(̅?((`((p/$       80(` (`Ȅ>E4          t6-48$49<        Ѓ -4 8x8\?94        ?8? 8   Ă?c@      T0!@$t<(('(( ( ((((('(#(#($'$(%'&'&4('''za@   !! ? ^HL; <; ;5@;6=6<6<7<7;8<8=8<9;;>-<"&"&#&#'$'$&&l<-<0?]D??5?5?6@6@7@7>8?8?8@9?9@:>> 4 4?4   d0H ș̙ L  d$șȔș̙șșșș !ș!!Dș##ș$$Dș%&ș&&ș(К(dș))ș**ș*+ș+,Lș-.ș./hș01ș12ș22ș34ș458ș5ܑ6ș660ș7̑8ș88ș;̚=ș=ܙ>ș>>Hș?@ș@@hșBBșCԚDșDD,șEؔFșFFLșHؒHșHI\șJؐKșKKșLLLșNNșNO0șPPșQQlșRSșUVșVXșXYșYYș\]]]^^^___`aaPbc$cȝddeeĖe$ffggԖh,hؓiiijjĜl,mmmnnnoqqq\rrsst(ttuuvvЎww̎xxy(yz}}~$~(4āĂԜH̅Ć̈Dț؛ċDЌԌ`܍̔ܙ؛Ԙ@ԝԞНԟ(Ԣģ Ԥħ$ܓԩ$DЕ̭ȯĒę؝ȼ ̾܏؏șșșșșĔXșĔܕ̝ԝИԝԝ$ԝԎԝԕ 0ؕ܄Č܆ԒЗć u4,4P,|u @T\duXuLu@u4u(uuuutttttttttttttht\tPtDt8t,t tt%&s?d    (ls l|Ts(Q$            r0F(, (         8rrв 98:::889: 8 > > = =:=====:<<<<<:< <!<"<";&:&;';(;(;);,:,;-;.;.;/:1:2:3:3:4:4978798990q<4qpʲ(pʲ'ptpʲ'xO>O?PDNDQHPLONX?*[4`h$ @X8@\XW0W(W(hWl0W &0l$DW">,4HVDV PV HVt hVLZ?ZBYD@ZEXEYFWFZJXO0VQXVWWM8-P      pMdMXMLM@M4M(MMMMLLLLLLLLLLLtLhL\LPLDL8L,L LLLKKKKKKKKKKKxKlK`KTKHK,\C2,\C2,`XC2,\C2,`B2,\B 3,  d    HB2,`B2,\A2,`|A@@h0A A1 @),@?8p(*(+(*((((( ( * ( * ( * ( ( +(()((+*+(+(((++**(+((+(+(( * (",*"*"*#+$+$*$(%+%+&(&+'+'+'+(+()(*)>?Q(,X P           >?&Pt"P>زDH<; ; ;$;;;<<;;;;;;;; ; ; ; ; \;:;::9::9$999:9988 (9 9"8$:%:&;'9):):):)9)9):-:-90091\92:2:4:687@;8<4<& p<& <<& <& ;& ;& l;& 8;& ;& :& :& h:& 4:& :?$p      p9,7,$t(94!T8޲TX<** ***L***** @* * + * *+*8*@*+* )#)$*%+'+*,89%<Xx..*7H8wwww|wwvwwww#v#w&v(w+w+w+v,$w-v0 w0v0wFvGuHw\vh@wqwv74<6?x6666x6l6`6T6H6<606$6 S 5 E$t          h52 (5U     d  ,46_| L      X4 84 4Hx ,3[      PX303(`   2 2 l               2 l             1@,|1&,4< D1L$1޲@H555,5 4P5$5$5$5%5&5&5&5'5'5(5(5)5.4/50851434445x0@,0 0///   |/ E@$/0.8@mnmnmnmmmmm+k,m/n1m=hm?m@mBnI8lL ncmdmdmemfmhlimjmjmkml.*-? W p     t   p T   -tPT-,2 -?V,4D  ,0||  ``t,D+ LH+L+8P  +?rT0 $0+,U\       ,     */0Xh`*/L4,$*?&X    )F)0lX)0@("#""""""""!$"""!|"(""t"!"l" "!(&0d((x( \(\      ,<'HPuuuu u u Ds s sstu uutuu'ucsdtssstt']DH  t0&HdD0000/00 000.0/0/0008& 4< &?4wTP   H%q|      0          %b@H]]\ ]]] ] ] ]]]O]O]W]W]]$L\NNLNNpN LNNNNdNMONMNN N"N"N"M#M*P*(P+|O.P.O.O0O0,O1O3O3,O4HO5O7O:M;M=M=,M=|P>M@MAMCMC(MCMEMFLGMHMHPHPIKIMIPJNJNJMKML"Z_H /////// / ///-.-/.//"?0`T    ` ">4 L!4L8h   x   (    |!=d 4,!@D$h   ,   M  $ "U"""" "!"""" ! @"!"!LP8l    ,?TX  pX? @p*)*@))*))) ) ) ( ( ( ( ( ( '))((((((d((!)$(%)()))**L,>HP         VTH<0$$!!!%%%$$% tLt(((()D8T$ ^00000 0 000(0*0/0/0000?>S       T[(PX ^0Ld: <;(:<<< (< : ; < : ; < ; 8: ::99;;;:;:0;:::L:98$:99;#<#;$<$:$<$;%;%;&<':'<(<)D9/t;2;4;4;6;9/ ` ɡɰ 42@H Cl C@CB0CC C BCCHCCCCBC>C?B?A?C@D@C@CBز-\       P?n,@d(h     X  p?  Lt    ?h,8$L$l X      p00L!,    t   !+\$ 08d(D 08d(? &Hd? &Hd?,8Lh     ,   \# Dd,! 8H! 8H?98        DH7 77 7 7767777d777475776 6#6#$6$6$6+6,6-7-6.6.6.7/40606252646457l@D1 00 0 0 0 1 0 1 0 10001/// 000%0&0'0(/(.)0)0*/+0,0/ B 4dD6   @?5,)) ))))%))?  <D((((( ( ( ( (')(( ,(!(!("($'%('(((()(1`t<DlDD8$40:;:;;: : ::9:::x;:; ;!;+ :+$:,;-9.:/:0:1:2;3;5:7:798:999;9:9X!   $ Y    p 9-`   }( ?j(0  (  |8 1 \ ? 4l ,$ 1V,4D    ?,((((((((((;9H;9?6}(T(      ,p?*q,\(      LXL0P  $         ' 4Ph' 4P<8  (             ܲڲزֲزڲֲвܲ޲ֲز|pdXL@4(th\PD8, pP$$0$ $P`$H$$P`|6#L6#6#6#6#6#\6#,6#6#6#6#l6#<6# 6#6#0       P  \ lx   |       ! HFFFGGF F F0F2F6E6F8E8F:G=FAGBFBFBFCECFCEDGDGEGF )Q8H \( 4P|9<l  0<h $L ?23@\  ,Hx*D,4      4+ 8TɰPXG GGGG G F G F GFFFGF4F7HG?GCGDGEFFGFGFGGX+@\4P<D%%%$%%%T% % %#%$%%&0L < Ph$x<\" ,4L,&(0<&(0<085D555556 6655655 4#6,5051415161515152625364456665,?<    (    zA<#$####$##H&$,DxزAdL   X?x<hXҲ;XL       4 ?ܲ[IIIII%I%I/I0HHHIHIHII`C8  @               <          HX$;l   l    4 |P\     4 d   ,       H       48l^^T^ ^^^ ^ ^^^^]^^^^t^8^L]]]B^J]K]K]M]N ^\P^]@TdX776777 7 7 786 8D799878!(7!6$9$9$9'9'8*9-91628262737465<96767677D<D( lڲp@D@      D 0hd:8Hd   ,    ` <<L       $H       X>0         h?n4<#####<## # #### #!#"#"#"##/(        < 8 8 8 8  D  D         !\ .0D 8     -0X   H$T, ( Xhhp   L<H++*, * +*+++(++*+,++0+,++h++0+,,, , ,",#,#\,$,%(,%\*'+'+)+* (,,| 04tL8T  ,0d2(40 X   FO((h  ?*i      4 T    X   4?W ,  l p  $     0  j[[@[\[[[ Y [[Y\Z8[\\ Z Z!Z"Z$Z'Z(Z*`Y,X/Z2Y?[@[@[A[C[FdYHZI[JZK[KXLYLZLZMZM[MZN[NYO[Q[QZR[SYTYUZU\V\V[V[V[WZW\ZL$<KKIJ J JJKKIJ!<"I"K"J"J#J'J(`J)J- J8J89K:K:;J<J=J=IDJEJFIFKIKKT08d,-t,,(,-t, - -d-|,-!,!-!,"-",#4-$,%-%-%H,&-&-'-(,)-+,,,?.B@<<`  @?5,X  D?$?p8?$?p8d?$|  4           8%8Tt RT ,HL(A AA BAAA$A$B%A'A(A)A*A+A+A,B,A0HA1A2B4A4@6A8A9A:T@>A?A?A@X|@H!!  !P  !!!!!!!   4&@\   P  & Hdd (D(rrq q n o n nopqqnoq n q!q!q"q"q#q$o.r.rCrDpErEqEqFrFrHpHpJDqKqKrLrLLnNpNpOqPrPpQqRrSnSnSSpTqUoVpVoVqVqWqWrWrWpXmYnZp[n[o[o^q^p_o`paqaqbpgqgnhphmhphphqkqkqkqkmkplplplplnmpo8@FFFG G G G F F HFFHFHGG-F/F/G0G0F0G1F1F2F2H3D4G4F4F4G5F5E9H;H>F?E@FBECDCFCFDEE?6D<X>8Tt   D&kL "! " " """!,"! ! " " ! <Y    ` (55453 4 5 444 5!5#5,4,3,-5- 5/ 3005052540 ?Pl: Hd d4044X5@5`6`6 6  7L7ml7wp7t7 77H8|899;H<;&<'<(*`9<f0k$m=(q=t=@v=Dx=y={=$}=p~==4=,=$===== =@? 2,4? 5?8?:?=?J?DL?XN?TU?i?`ȇ?,?̎?ܑx?p?$? ?@p @\@H @0,@8@dD@PH@L@ X@Dd@p@|@\|@@@ @x@P1@A55DAP687LA9;<P=EPApFMPA@NVPATWXAepApfs|AtX|AA4AHAAhB4PB BhB<BC$C8C,xC4CC DHDD HE,(E;EJF|kxFllF\mm0oF0tFXPPPt P0 P P Pd P P PPTPPPPDPPPPXP PPPxP@PPPP`P(PQ!,Q*QP+Q(2R49LR:PRZS]S^S8hTpHTHyxTTT0UpTUUU UX0VhVVt?H, <d8pЊ\dt8(̋0Hx܌4L,\4lplx CPi|8kw }ЬTXPȔ%`&+H3xDX(T`uz8{܇ DУ(L\0L T $ 8%T48pTGhWlЙlm0HX\|<t, | 8ܞ !@4$t'+̟$24087T9x?x[8tu~H\(0(,(0(X8x\(X h P4L  "@# % /̦(9Ц@B 0Lh PRpUxW_@aħc dԧ}x 0@ج$@8T+-Th5=AHuLuܬypz БLH(@<Ldxxر@ K_Pgvh 0txDH ط` 4h TXdt( !t(H-8?H(Up\pjs|xĸȸ̸PиԸظ4ܸ`(T Ht <$(,h048p<@ DxHL(PTX0\`d8hlp@tx|H  0T $,p7ĹIܹLOS0hVL,Yh[^0acf04iXlnlqлtv pyH|p~t؁X4H`Ⱦ $H ؿ"$'P:<> D4HFLJ`(WZ^yHDp<hԬ H``xɀ %4 (D8hpThĦttt  ,Ll |HP`,$ %X,80h1,22348T=@,EdHFxHIxJJ`LdOQ[ehnw؊P80H  0;h`Xw\H  lL0H/@DGKpR<з(8   \Lhi,jkllmmXnnoxpɀrstPuu(@,t`(+ !!6$+Я!! +l!!+!!f,+!̳!v+Ⱥ$v+<0+L!з!z0v+TQKz+L>>z+>>z+4?h?(z+??|z+@P@z+@@Pz+A8Az+xAAPz+A Bz+`BB{+BCP{+HC|C {+CCp,{+0DdD8{+DDD{+ELEP{+EE\{+F4Fh{+tFF t{+FG {+\GG( {+GH<{+DHxHP{+HH{+,I`I{+II{+JHJ@{+JJ|{+J0K0{+pKK, <+!X!'8+X!X!N'4+!X!['0+!X!h',+D!X!'(+!X!'$+!X!' +"?"xt>"?"Yth>"?"td"e"`tXd"e"ta"e"t_"e"E tc"e"tc"e"t0c"e"$t_"e"tb"e"9tb"e"ZtP`"e"t^"e"j t4b"e"fta"e"tha"e"t`"e"t$_"e"P t8^"e" txi"(j"tm"n"k}+ N}+ l}+ }+ 4}+ ` H }+ Ĕ }+< p D }+0  ~+ $ ~+ ~+|  $~+, 0~+ 0 \ <~+ @  H~+ 0 T~+е 0 `~+\  0 l~+ p ~ 0 x~+ ` D| 0 ~+l  y 0 ~+ @ lw 0 ~+X u 0 ~+ P t 0 ~+  w0 ~+X p0 ~+ Ta0 ~+ 0 ~+P D0 ~+ 4 T~0 ~+ dr 0 + 0 n 0 + e 0 +H _ 0 ,+L P Z 0 8+ pT 0 D+Ŀ N 0 P+x K 0 \+ E 0 h+H X 0 t+@ | 0 + <@ 0 +h \< 0 + x8 0 +8  L+  5 0 +H 2 0 + @ / 0 + Ա - 0 +( h + 0 +ȫ ( 0 +h `& 0 + $ 0$ 0 + 4! 0 +H L  0 (+  0 4+ t  0 @+(   0 L+4  X+0 ` d+, Ȩ , p+(  |+$  +   + h \ + P ( + 8  +  Ā+    Ѐ+ X ܀+ ا $ +  +  +  + x T + `  $+ H  0+ 0  <+   H+ P T+  `+ Ц  l+  x+  + L + p  + X  + @  + ( | +  H ́+  ؁+  + ȥ  + x + D +  + h  + P  ,+ 8 t 8+ @ D+   P+  \+ ؤ  h+ p t+| < t""܂+x,(4 t""@t\""!t""t""zt""8+lxpxܦD+hxxt"p"at"p"tخ""P+\+0d(t#`# t#`# t#`#G t#`#t#`#th#`#tP#`#6 t@#`# t#`#h+###(tp#4#j,t#4#U$t#4#.t+8+$+L(+,)`\u##< $L $\ $L $h $4"(4"<4""="( $,4x8.?R4e\t x|X`\!Xu$##?Tu##q PuL## Lu ## Hu##/ Dux## @u(##\f} $ $4f} $ $U+f}T $\$f} $\$yf}0 $\$f}($l$.f}p$$f}@$$f}$$$+2 3l?0+747,I<+66FH+6L6dDT+55B`+05d5xKl+44Nx+H4|4hS+34P+`33U+0+2d+20+2+2ȇ+t2ԇ+\2`+D2,+,2+2+1+1\+1((+|14+x1@+t1L+pl1XX+lT1$d+h<1p+d$1|+` 1+\0T+X0 +T0+P0+L0Ĉ+H|0PЈ+Dd0܈+@L0+<40D0$P0$\0$h0$t0$g}*$+$g}+$+$af}H*$+$kf})$+$g}0$1$W g}1$1$g}5$x6$<g}x5$x6$g},5$x6$LԊ+h#dH>+8+(& +:+-|0+3q++h(+H584+6 @+(1 HL+(<,iX+2pyd+"p+ (|+H*+/T h^+(<j+h94_+'S+$HTċ+h.HHFЋ+KT C܋+pKSH+P8Ď+ pg}$0$ng}$0$g}$ $! !l!!(! v+ 8 (4!о!!,?*0 +>>&0 +>D>(!0 +==0 ̆+(=\=X0 ؆+<<$0 +@<t<D0 +;<d 0 +X;;0 +:;0 +:@Z(0 +4:Y0 ,+9xY0 8+9Y0 D+,9X0 P+8LXD0 \+|8W0 h+$8[0 t+7Z0 +t7W0 $9$<9$9$l:$:$;$ <$<$=$x=$=$X>$>$X?$?$T@$@$$A$A$A$ B$`B$B$B$B$B$\Q$̂+pQ$̂+Q$̂+Q$̂+Q$̂+Q$̂+Q$Q$R$Ă+0R$Ă+DR$Ă+XR$Ă+lR$Ă+R$Ă+R$Ă+R$Ă+R$Ă+R$Ă+R$̂+R$̂+ S$̂+ S$̂+4S$̂+HS$̂+\S$Ă+pS$Ă+S$Ă+S$Ă+S$Ă+S$Ă+S$Hv+T$Hv+dT$Hv+T$Hv+T$Hv+#0>#p>#>#>#0?#?#?#@#P@#@#@# A#tA#A#A#$B#dB#B#B#$=#4C#C#C#C#4D#XD#D#D#$E#xE#E#F#XF#F#F#