From 0781bb39b29ed2626648a6996c23c139d4a9b482 Mon Sep 17 00:00:00 2001 From: optrader Date: Sat, 18 Oct 2025 23:31:29 +0900 Subject: [PATCH] [251018] fix: EnergyLabel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🕐 커밋 시간: 2025. 10. 18. 23:31:25 📊 변경 통계: • 총 파일: 7개 • 추가: +387줄 • 삭제: -93줄 📁 추가된 파일: + com.twin.app.shoptime/assets/mock/EnergyLabelSample.pdf 📝 수정된 파일: ~ com.twin.app.shoptime/src/actions/actionTypes.js ~ com.twin.app.shoptime/src/actions/convertActions.js ~ com.twin.app.shoptime/src/api/TAxios.js ~ com.twin.app.shoptime/src/components/TItemCard/TItemCard.module.less ~ com.twin.app.shoptime/src/components/TItemCard/TItemCard.new.jsx ~ com.twin.app.shoptime/src/reducers/convertReducer.js 🔧 함수 변경 내용: 📄 com.twin.app.shoptime/src/components/TItemCard/TItemCard.new.jsx (javascript): ✅ Added: hashCode() 🔧 주요 변경 내용: • 타입 시스템 안정성 강화 • 핵심 비즈니스 로직 개선 • API 서비스 레이어 개선 • UI 컴포넌트 아키텍처 개선 --- .../assets/mock/EnergyLabelSample.pdf | 1504 +++++++++++++++++ .../src/actions/actionTypes.js | 454 ++--- .../src/actions/convertActions.js | 137 +- com.twin.app.shoptime/src/api/TAxios.js | 232 +-- .../TItemCard/TItemCard.module.less | 26 + .../components/TItemCard/TItemCard.new.jsx | 341 ++-- .../src/reducers/convertReducer.js | 100 +- 7 files changed, 2272 insertions(+), 522 deletions(-) create mode 100644 com.twin.app.shoptime/assets/mock/EnergyLabelSample.pdf diff --git a/com.twin.app.shoptime/assets/mock/EnergyLabelSample.pdf b/com.twin.app.shoptime/assets/mock/EnergyLabelSample.pdf new file mode 100644 index 00000000..975af535 --- /dev/null +++ b/com.twin.app.shoptime/assets/mock/EnergyLabelSample.pdf @@ -0,0 +1,1504 @@ +%PDF-1.6 % +1 0 obj <>/OCGs[9 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream + + + + + 2021-01-28T15:05:20+08:00 + Adobe Illustrator 25.1 (Windows) + 2021-01-28T15:05:20+08:00 + 2021-01-28T15:05:20+08:00 + + + + 128 + 256 + JPEG + /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAACAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A7b+aX5pf4D/Rn+4z9I/p H1/93+hw9D0/+K5eXL1fbpmfotF4971VdGjPn8Otrtg9t/zk1dXUvo23lN55SCRHHeF2oBUmgtic yc3ZePFHiyZBGPedh9paY6syNCN/j3Iq5/5yH1i2hWabybKsLRLcep9cJURSGisxFvsCRtXMXDh0 2WRjHNHiEjGuvEOYG+9eTOWeYFmPmgP+hpf+/Y/6fv8As3zYfyJ/T+z9rV+d8vtew3PnDytZNHFq Wr2NhcvGkptri5hikAcVHwuymnvTNONPkl9MSR7nMOSI5kNf418m/Vjdfp7TvqocRGf63B6fqEcg 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 pmIP+0WblXnToKAAYq//2Q== + + + + Adobe PDF library 15.00 + application/pdf + + + GB2570HSU-B1 EU Energy Label pdf data(405688) + + + 1 + False + False + + 272.000000 + 544.000000 + Pixels + + + + + Calibri-Bold + Calibri + Bold + Open Type + Version 6.23 + False + calibrib.ttf + + + Verdana + Verdana + Regular + Open Type + Version 5.33 + False + verdana.ttf + + + Verdana-Bold + Verdana + Bold + Open Type + Version 5.33 + False + verdanab.ttf + + + + + + Cyan + Magenta + Yellow + Black + + + + + + 預設色票群組 + 0 + + + + xmp.did:fffec066-58d9-da40-b132-b142eac8f392 + uuid:67951842-1657-46d6-b7c8-afba6d7714dd + xmp.did:fffec066-58d9-da40-b132-b142eac8f392 + proof:pdf + + + + + saved + xmp.iid:fffec066-58d9-da40-b132-b142eac8f392 + 2021-01-28T15:05:08+08:00 + Adobe Illustrator 25.1 (Windows) + / + + + + Adobe Illustrator + + + + + + + + + + + + + + + + + + + + + + + + + +endstream endobj 3 0 obj <> endobj 11 0 obj <>/Resources<>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/Thumb 15 0 R/TrimBox[0.0 0.0 272.0 544.0]/Type/Page>> endobj 12 0 obj <>stream +HˎDjQ^[ x` c3'+:nG!*%2x?4?ǟo?_߾o߾͏cmiԷG?i>y2AڧyZ7<[_v_x~_eUk+tmV/K1V>؝yoMӯ>㏯s9^,q"γ|[eLW8Ǯݯ6]kuX<~91OΛs|_ys|x8ὨZn E5=`/9tǹ(}d[`@@^`r z $0EF#O l Elx(Eue9[7 y+0I;&H:  p { @`~@VAAxho{)@5!`A@&U \H 0G0rN>E4 Z XK0UGEB&`9 $XOڂsa(`EAZVQR)`O +&T /$+0I +$XW䷰XX)gXZ ւ<-P[ mbhȵE-@[ |-@[ @m1bEjoQ]bh-@[m1"Ej-P[ |-@[ ڢq-P[ |-@[ @m1bEj-@[m1"h-@[^kQ[ mbh-@[m1"-eUh-P[ mbh-@[>ȵ-P[ @m~Q[}-=O mA@s@i ⇶@mqk %Oڒ'mi i L [TW[[PC-H[2`-`mA@X[ ڒ!h gڒ1h $X[hHߟ"h $X[0A -X[X .h [mk smA`--SmI@Z}DmAo_$j L@-0ei L H`k {"A@iK~ kKb-H[>؞9yi -H[?-|h [[-yBЖB8 VSl,&j'p1㸊9c(fHp1#bSż @ż .fT9s>P̘b3$P1-\:3$9bF@Ŝ"3$P1#2 t1cT̐bF}(fޗ^ .fLP1C3*f\0I3&p1-\̘bŌb3*f\V9}Pi@,fp1cBvX9bqs>P̐bF@ 8w@@#ux.f:@(f\$C1c\̐bF@ p1{13$9bF`o-B1C3k+\0I3&1A .fZهbF}%9P̐b3$P1#b t1c3Ō *f\a.fHp1#bŌZnšӧŜb3&j'Ŝ.fW1s .fT7`{,X <Ō9B1b'T̐b3*fYo\B1#bo\X[bI1AŌ *fHp1#>3K/TSb3&!Ō3.fT.fLP1bF@ sp1C3.fr+Ŝ>E(4 31U;q,p1㸊9c(fHp1#bc5b9h:p1#suB1b'T̐b3*fY_ p1C9C(fV"3$P1#2 t1cT̐bF}(fޗ^ .fLP1C3*f\0I3&p1-\̘bŌb3*f\V9}Pi@,fp1cBvX9bqs>P̐bF@ د.fX/(fX/_Zwhl, خgBkEk_Nk_Bku')` xgu#< # (`/8 #<^Fى#A5 j'QGeZ#K@,>k:?438. rbʉ ('>q~gvLN?m]Of30`b&LL@11g` g` P{K@ ,%g` P9&nn󓞎}~<†u{5?Ÿ}CPmJh&PiC5OĴ(*6FpTQy@ 4o(P7*@Tp0Tj p*TS \TTyKU@T l!\ UAoQ8UUiTa7AaUy k< j`OmC!V*j6qZ%j`pxX;Wi_Ն5pa5~6@lI(/(+p4 +lx#}BGj $+HV?!Y d-!پlPHVBd5p?BIHV Y djHVCHo8mߧ p~۰sߧX6`D =#j 66Pp3pӷ}n>mY d5pYmSv?S.p|EmmƋж/&7y=k3p"ܰ}O_ O kl5ƛж(- ܮ)y=!{ ا3 \ӯzBp?hg:hE[ڂ-RhCEh [-/mE_U " h4-ڰKjҭom H" h-T-_@C|E -X@fh "o E[-mڢcmM-Ҁh bV-@[mцh4-}C D[$Җ~ E[ "E9dh4-hඍ hlmцh6D[m@E hmцh4-Ҁh "Eh6^E[4~Y5hKɢ-ҀhCE D[$h`7E MQE^ڢh-EmQ -7ZіvE[ڂ-RhCEh [-/mE_U " h4-ڰKjҭom H" h-xӖ}ڢh h D[-іhKPE-@[4p?-IE 01F[$H=ڢ i@[-H-hAEhrzi@[4mm$ڢ mHڢh#ڢ i@[m@Ehmцm(hjі~E[mцh4-Hmo-Ǜh4E#m--ҀhmHmmъ,TmE-@[$h`mxi-h`?di@[mц5]U[4pLnՖ~hK_PE +i@[4m8?פ-D[Pm! ڒj ^[2Wm! B@'B@hK-D[$B@jՖT[mI@'B@%-D[Pm! B@%-D[Pm! B@hK-D[ڒj - m! ڒj -?-D[Pm! B@%- mI@h іL[mI@h - m! dB@hK- m! ڒi s_ՠ-D[$B@hK-D[T[$B@jqU[~!hW߀h "E?"sEyKo(7mцh 돆hlmEZGL -RhCEЖh-xiK-Zmڢ^E D[4pE6hCE-Ҁh ڢEhCEi@[4m"{@[a/-x@di@[!" h-@[4ƛh(" /myE" h6h hKɢ-mA)@[!"Eh-yHڢ鯪jcAVmEmXӥ[EtVm7E[mEіd|Sіy D[$h`@>h-hKPo(ڢ  -8 $" hV-@[mцh4-p}O_o& '^ݿ=ҀHJ QmH- 4nKܖ=ڰ\m M o4ܖp[m l1|=.^Fي0 M؄) |XQ+(W2`1 +?u6< mt 6 +2nKN "nq 0nQ +6| WqmXѸ mp0npmB/i nq(n +X7@/@mA`FAOmSs۹CmtnpnÒmp0ni6`oF68;n@ 6`68Amp0nq(n ;ѡp!mp0n@VpmXҸ +n#.6 +68a+s46($.p;5 mtn 6 +F)).6 +_UmaE68mQ0 -vq;7 mp0n@#:A(nwܸ6|Jvp;wmQ0mXҸ mi6`oF68;n@ 6`68Amp0nq(n ;ѡp!mp0n@VpmXҸ +n#.6 +68a+s46($.p;5 mtn 6 +F)).6 +_UmaE68mQ0 -vq;7 mp0n@#8=q%n)0n@ 6 +:snFp>q;w;F6(6,i6 +qm7np`nQ qv0nq F68 mA`܆ʀ ϐM|ɀ`F68Q FA+c86,iF^^nqmxq谕9pmleN D6:A`qmnqկ*6 +۰q`F6(Յq;_Ҹ68Q G`Fpm3mSs۹CmtnpnÒmp0ni6`oF68;n@ 6`68Amp0nq(n ;ѡp!mp0n@VpmXҸ +n#.6 +68a+s46($.p;5 mtn 6 +F)).6 +_UmaE68mQ0 -vq;7 mp0n@#d{ ?~ +(na 0KCA8ݞX?ӊhAa~ VkJiE| \_j%y=Vq;k{[ !Ѕp၃/^xse`c@pp@#x8Wxϕ3=/Nt~t^ٗw|4W=9wzC\;hK;+hKawyEWsͷb./\v<\~G[ p4Vx;hpE%Y'xoxY'xY'xoxIg[9x Ygx Yg)`< $@{ << mcs%H;iK!//W}y'|sO9wzC\;hK;^ϕv!::J|V}Ceˎǐˏ;|+1ҹʷtoyn?uIv +|JSPDq`ȝ"NAs`IAw +: 0$;EIy_Px`䝂"$ГSOSP|`U"$_PH@ 0% vTC}ϱ^s(׼ʹ|SH}4olicO5iOyW)_H5{^?nGx;k۱WQXYU5{v?Կ8nGj{q/k=Q7 輨 ?o(ϛ h.$M'y }~{(;k޷l5yߊ,^Y5߶UQo^^^Ϻ.s]<] +5o)p1_5Uh*Z׼W *|+^xĻη""|V~̕{'yg_|qkO~+5^dz|VǷۘίyߪVGjYTY`k'*ZoWy/?rxsp|ͷVULYOwϻ\g3@5@vpW#n?(x@VtBBB `?ԃ`I!ppBG#.C(uC>"GJKJ8k +ԋ.F`~ ܌(!t#jG +\@;"::$[8&{ +T@ঔR:, +T@྄^phL(e +.M(!j +2BqJ?EhNAN`ʸ؞P?Zq@:B; +FvQ(~VI`"c)ppB)O`VElT+8S@*[Unj +K9+ +\Pn#x?OV?Nuvv +ܭPnu+ +ܭPn[ݭ`nu+X*w*w +ԭ@npP%ݭ +E叨N[@W>ػ[ +ԭPp,nVnV(PG[-pw|ЭPn[+nV pnVnVnV(PUCVCVnV(P +z¡[`)8[^\V(ʐ *[[:*bB>phUnVnV( +v[Yn1$ +ܭ +ԭ@nY][VnuVAV(.ح`w+ppB՗``eu;[@ +V8[@ +qu+0pB[#ܲW8;/bdJ˂$> +ln5Njй&ȭ[!pH[&V`B@nEKVȇx$ح[!01n[a +V`B@nKح`x[! q:v+V&ȭ0An v+H[A +v:'tn r+H[! n[s+[A +9\Vl:~έ[A +q[!HXRn v+L[A +#v+V`B Ynq& +V`v+tXn[A +x 8s+ҡܻn v+V2rwVv+Vȭ`v+H[! %ͭ`nB@n[[:'tn r+V?VI$ح[i:!n v+VGL[&V $ح[v+`x[! q:v+V&ȭ0An v+H[A +v:'tn r+H[! n[s+[A +9\Vl:~έ[A +q[!HXRn v+L[A +#v+V`B Ynq& +V`v+tXn[A +x 8s+ҡܻn v+VwA,+%uZ3pn1aw"[NLwW"}_ tן8`? \1wJ7YuMdaMnӕ^2?ۜzůac5ߨ=1#s? @cG? @i? @c?Ccg?O4S?`T +#CS?`T #`@?*?c@?gM-R?xp = ES0A Hp 3C?ㄮ0A ?p&?K<??? ״,K?<1#?`10ͱ @cp1#? @@9?rQ$`ٷ8~/ ?J{Xu:+K-`ej5(^ikWc=#[{ 15 鵦ױ^̯Cm?Ty_Cu xńuڏS5~gwi9p<--$,>RuC9&콧= \`_0@0|C@0؃/`  ! |J_ =|A@wtwؤ6 |A@wXwHx`ڼC5&,?6x< +R`>B~]P Gc׫WK:,{:,>*q`M_K٘Xޯl(pn>t2?St}s`;TyW9+{o#6-Ԩ-[`H |9%ot2-[hV oA`>b6ioy $[ ނ{ -`oA@+[Q?-{8qB-[- oXނ-<=[ ނ{ U-)-[9y $[ o`{ ,x [ +H`[ ؤ[ [{-,-âq ݳ@ -%-[H^-{ $[|[yǗ_{y1N oA@{@y ,x8q@-`oAi{ X@y -I{ &[  -[&o{ XR@`o't2Ny ؃-<+[0@{ $[`oA@ނ@>ey {<':o{ -[`L`o%o{ X Ly xu@x !{p@%@tXނ:{v[S[ ނeey v`o{ ?@-mrσ9:K`,m+u3Nrσ9J{2Qis6GMR%QyP6GCis{QO9ist6'5LŤKyВ6G+is<9I9=B#m:rFeEyP6Gis{$ mNh~Ց9}qg{y_8|44וq\;UHua?吮V.Bw}UzBE_P5UI3|UmZփb_8kp~uf` xoP( n`ov #xYpCfp p cH8?IXT``7p)ÐneLضʗ^3j(ՌeOΐz3$PC# C1A- kݢtPԐƄ% XӷY3}.ؐF@oJk=Bk =nzj -[ Ck =`k?`kO Bk =`kO lm'Z[H-[[Bk =`kO lm=`kO l -[{`k ~^ nmڰū}@imHpk#Govk#ֆxڐֆ}Bi>6jm0[ژƷ6jm%&aH6&1A nm=PZ6˞ܥ! jmHpk#F@ [tkcZvEm66$! K:@jk#o6g6kk]!Z­pkeK^JkC[/[!ޭ}|ڐֆ}Bi>6jm0[n6F}6 ƄmK|imHpk#X. nmLPkC[6jm0[-jk ! nmLXR[5}8ӷY[­ nmn>ppk|YB.#%r[ F3.#>oqǧ8xH䑰=r'`{$`G #G`l?`b?~X4dH`l?~8!1Cx `*nsl%36>>lp[LX?Hx'ކ/$xI$X"xJ$["Dˆ>HdP$$X"8 H H$E %- K$$X"D`D@ C$,H"aK,`,}B>H$H,0%,=P$I$˞, HLDB%I$HxD\HHxI$@ #X"! [H$&H"D"p?$0%,x"]m HLDB%,H"D" !_ H$%r'`K$`D E"D`,`"H"X4dHHDb$,H"D"H$G$P"DN HD +@|I"D +@@H(P"'$RJD +@@H(P"'uH()%RJ )%H9׃D +@9 )%RJuH$ZG@H(@"_l0ކ5D$j%H'%>ǹl2p[[6I/_ \Zqiw-` +_z]]ƃ^_bu/}8[zp]c@2X ~fcF0`6 5@k0`a6>VKC9~!a`uXǧXǧ~_.-&G?`M&{7o0pn˛737}y p>xCP EHWH7 oހ{͗77~  of7` `o@`'GO7wQ 8Q \Yӡ ]Toh7@ o{ ۬߅(H7 ox a7L xAza7@ox 7L x o0 7<֓7@o{7L x7@o a7< 7L x o a7L x @  Az7@o@ @7L x so}O7 oހ`ހ'o7@ym7  `o@@y p/o7 o 0@{`oy& ހO ^ ox$7 pģx$/xCڻ&To{$0A  8ӷY {CP `o@@^oY@DwıF ,芜oeXw +Wՠn +NvrvC?P D݀/?`7`j    g~(nPqC 7@`7@`7 7& Q܀۫ (n vvG|u7%~30~;4 `7' 0n@nnL 0n vrß1  G?n@n`=i}ӄ8#]b'`` 66Eۦ0H{5G/_5U_U老送СPe|,W(2Nбt,ÄrmvGvFFg8'4ax˾~#NX.+ k|`m B`:@`:`Glrva0a[} ߛg/K7XxKx?u 62l 6N /Qy ě\1xxyxxyxxxu7ZG88޼7ux777 +777 +777yxxyxyxxyxx3=oqqQqqQqqyo oo oE(@ FFf7 +7 +73`hyx3o o o^A o o ofxyy3ěz o o o ofxy ț(@(@ FF$(@(@ Ff7 +7 +73QQy7 +7 +7s=FFf7 +7 +73QQy7ZG FF1ʛw +ě`` ` `` %> oyx[4o 77% +opx`` @`` &?@`W( No`yxAх7G'70   k|`m `@``G lҼ ˇ77mPy',a 7p'77&7I&78A'7G L0o0o~8o_!m`8o` L0o0okG  lѼ'@`( L0o`yxyxPxy_'78A  F &777' Wx[ ֯7& o`yy_7I&,` ޴AM-T @`` &``^70@YQA o o ofy_#z.~]]{0Pp`/x,Y $Y%;7da%ЦPhL DLr#?5>rvM{dLp/ / //ؤ/ `65}5+0؏LXWs;`oyze`p[m> 鉭@-603:~Y:aYgq\Nn?S Om}}§u~ڧ.,m=~Om?Ӷv9kOYX).m>rKV\ b_76 q+)RpO +迱:ڔ姝ieji'*ڼ4Vcgiy4')|Z9Z)C Z~ n nͩY~ڙ Vbv^H_凝0pH+!˃9O;c#`B dL7rr!)`V +!12S@N0?TfH):0I` So eLU*UB +;0g` d Hi;!o` +@H]0yW,SxÚc HwlLc0@JdD֜:?sc)=:y,%Ğ9yÚS +kN!y9%u昿Sz^ujNycz^ujNyי9Euz^攷qyS؎9fIySz^ǬujN!y9%uz^y99[=:Y5߿u'@Ѻ^aV50k})^a%ҧ8caC7(eac68gP%oQ 7Li (op[~\Pևb68wq68yP" t/S `ң90dž9a7(a#c8Õưq@c@F@ Gt$g=L> P&3e2|3尧 h .Ht%q]o{ܰ.-}S*#T+8 vk/xpޞ[pΖ~jy8?6l-noGz;pK;lp `gp -k+S `A 6!@{ۺߴkS#mn?- Խ/rGzt`[]߁eIwn=nhcòf.n5/`_5YZYܠ6 fPE@mpYX6@z6qfnm6b)vg7/5\z|^/`k~ä.H]ԥ>¤.@ V`uA@ .A..H].Wܤ.|f }~9 l l uꂀ R3.RK]..Aciu ˥.H]J`V  -Eڬ..ꂀ RX`uA = p᱙6X]`7)vguAL; .H]KX] :ج.p l u{Du2.P] T.`uyϓ@u@P.H]<T." $u2VQ] T."E@u"eA]ETu" $u"eA]@u@P."eA]@u.P]ET."E@u@u@P."E@u2VQ]g?T."E@u2.P].H,@ur_rA7X] u3X]` \Rz.H] uhuV.p_.&uA@.&uR.g R7X]V u R`u V`uA@`u -&uA5[{I]`7H]` V.X]iu \.p l n`uA`; uCZ]`r Rե<ì.@K6 l l uA@gX]H.gxlfu V`u kY]8S RVz.6 .H]~{ޓubT.@]|.@]u1P.@] @u1X]  uT.@]u1"P.P]u1"PbT.@]ubEP.H]<u1"P.P] ububEP.P] u@9u1bEP.P] ub@u@`A]u1겯kV."E@u2V͏~l+cK~*KθBM-`PbilJ=فSrOS.` Aa$0R ww@p.]Ը`{q -gs%>8ف5z<ӏ(,/ EXz>'`o~W?`O=q5Ǟ8Po` z9֛{^A^opu@@U8lpu@@.qUXsWT: P_bU#npuC:U\ Su7LU\ 6:UܠPo{|2\Pu@gspHWܰTa%0W su 馞\7:G+\௸,pus \3: lھ}gUT UU`W]Pu#:ꀀC}:WTXT`lpu7Lա0UTpu3:WTpCaɜlpu@@ͩ:!]pSuK::\37zpWܠpuW-j#{:@m,'u@`_fQH: u@`fQؤ|(KX aC TuhPK]V:`VWX௸X8]Uuhu::+:}R؃H`K hl'u@@/QHX`uMZ0A VH: EH:`u&H0A'u@`_fQH: u@`fQؤ|(KX aC TuhPK]V:`VWX௸X8]Uuhu:|[U/91 uR$XXK @l ?oW~{W_"=mA@nvH ` \o믫 wa ]X&&pi?u_r6 ǯh$X6p3ߨeouLXX~~? _C~#/Vx>o+[L?ƫZgS?swUu4Ws4_{̯wѼGk~{Kϗzwܓ6??^jhRN;;gJwB/u?6ʬ.d.2kKzJw +`_/z^>򢱺/?梹Ul.X]%KB} 6n0ͱPy(1b~cE&LVHO2m&l`M 44i&[H&{MB jR r6Po& +N6B %b @9Xt~PucM l;PwUywUu4Ws4WWh~슣ߝ }[|yjYWu.yUkܭFsZ?w>sWZ]gm~yUft&w\=]c4_SJ߿sUX랯?w}jy]m|y7U\hpO34xO34pO4pO34tOi{xO34pO|O4pO3QDzifififi&ifi&ifi&i&i&ifi4pO4pO34&ifi稘X5U#FVj~@81.Ǹ<1>p c\Bۃ>:"`y8?T5k&FvN`}ݞt2_^KLUHt `9Bz!|o`_+p:o}zk:=VxƄFr4nv;$o}>7fJc~g9@zmY}&GT ̓L T> =GT #gA}@@P #gA}@@3>P}LGsT>?@R #gA}&9T 3>P}>P}W:T>3V9#GL T>?@PQ}%@3x}RX}>ꃀԧ(GHO[}@>H}X`MZ}0A VH %>8$X}`V>OPV؃>\+X}0@E}{( R>ĥ>`A@+X}  VHX.A@U}=TJW>ӣq>`$X}KX}> V>sR{},qOPԧ( V>Dzꃀ>`A@rl RH@,a$X}`V>OPV؃>\+X}0@E}{( R>ĥ>`A@+X}  VHX.A@U}=TJW>ӣq>`$X}KX}> V>>kV?$@ǜ>}@Q>$X}i],y R#&X}`VL@>H}` / V؃էO('A@`;&p`O&H}@`$X} aO TiP+]V`šN>\s@>`A@/a Ζ>$X}|Xzݓ@1cGg> +s.i ~=`mOͱ @gm:p:@u9ԡCg4i=֡sO¶Ƅzj< 5mK5[oH ǿbk ;,}̵mN~_G& |ѷH# G +@@9xH# l5_Ck +@5kdwAv +C3p:l`}oc{D4"iDHz"Uw{ XҎ>$ $($ K~4! I,i8K$X=IC@%ia$ K4؃% ,iH֘`IMZ0A 4HA% ,iH,i I"i_G&A% $i`IC@$ KlҒ 4,i%i`IC@+X 4L`IC`; IMZ a$ IZ TIkP% ,iH.IK4-|U=Zmrwxf,pg9G'KIl@ShI %?JZ-i'ДZXI;ϛ@KZ-i'ДZ]I %\KZ-i'ДZhI;В@K 4%-ZhI;@ShI %@KZ-iВ@K 4%-ZN)iВvMI %-hJ xI˹ZN)iВ@K 4%-ZN)iВڒ@K 4%-ZNKZε@ShI %?ДKIqt%-4)iRXI= %-4)is-iRВ % %-4ΥHI % @JZHI % @J4)iВ % @JZ-iR^HI % @JZHI % @JZXI\JZHI@K4)iHIvMI@K4)iq.%-4)iR~-ikIu[KmJ)i򈫤JIS %MJ)i)i@IS %M@I;I%m>C)i + pi@J4RdJ$PHIS` 4 )i& 4II%M4(i2%MR@)i +lLJˊ{4IiBJ$PHIS %MJ IIӄ4(i򈫤I%M4y%M(i )iPX )i2$%M)6jIPK$PHIS %MfJP)p͏y@)iǵp?ƵOױ@*=N{ /oeo?!¯}~Q~Qt]u*+C^]WƕXc4 /m¸[7=R葚) H#ݣk0J>~+&FJ5R +F +@9JT`;>$F·,5R) HR#H)CR#5!5Rj[wB)2U%B@umnUg8dW U'psMՓ p4?VM5x/]5O`=?m08fN0m(GtQ +X1Il(mf#Cb6F0b6`6 +ldl$'Q f#f#3`6hBF0b6`6 +lh߆b6)1MHf# 10ф(fv|Ḣ,f# &l$Q f@FFl4!f#f#l4!f#f޹l$Q`ib6 +VF>f# e6 +l@5 l4 0M(b62$f# &ܺ{{ldl$Q[PlȈ$`6h½lx' f3F0b6}j6 'F5f@Vc6(Q`Fl4!f# $`6 +llȐHf3(f3O(f@FFfl$ф$`6 +ll(о lSb6F0b6`62f 19PFYF0MHf@F hBFFhBFFsHf^ilX+| +FlLj6hBwT'`6Q`?$ldHF0Mun5O Hf@(1Il$ф{W (ZO&@f>$f3(f#$`6 +lQ|lQ|#(,$`6 +lX6!1MHf# 10b62e6(0Il4!f# 10b6 +oC1&l$F̀hBfQ`;>$lCFb6(Q f#f#Cb6G`6Q`ob6(WZ1J+f#2b6Stj6]l &ll 1Fnݽ[FSc62e6(-j6 +ldDF0Il4Uj6 +֓ Hf# 1W`_Ɨͫ]]f08?טYHf@Feo0ф$`6(Q f#C^f#<<10Fb6(Q f@6OhBF0Il &l@1CBf>d1Il4!f# 1b6`62$f 10yf 10-f# K{Q`mb6)0IX.Q f3Lgf ePFhBFFm!1Il4ݻl?5f#3\f#݂f@FFl$F]5fk=1<`6(cTx%!"wwxۄ_@[ZkiyhKt7bO@ohnz#@s#1ވOݑtGy#s;2ّtGy͎ ;2hvdݑtG2e>cm~O`u_X?]8??f=@X_f@>d}{\W {\e'=@qC=. q`+=@S=>M{\qyĵ%=yW {\FdK{\㚐=.{\!!{\dK{\#X W { w|udCd$3=@֝3=>O({\q +dχ,{\ +d W {\駨{|PkK{\{6=@$5!{\CB Ge+v#=.%=@`,H>@8_8qyϹq㿀qH>@8H?H>8}<H}@8H}@8_@8}sH>X_n@>d\jo{\W {\e'=@qC=. q`+=@S=>M{\qyĵ%=yW {\FGxdAF< 0dW7Q*2!qLwG08[;8[5bC;֥go}#=0 #mi;20h#3@;C[{OmkL>O3=r Gگ q=0\*3 +# +k.<=ѫ=-<'=O*ؗ#[n=^ˑ[*T_^G厈:"lx #B;"g~iޫW~{߫˾W_U^sE5y !o_3yWϪЯ \ l@ +e:HcO/Vn&j峚ezUB[^a0Y&e/@+{\L೛$@&$X35< r rX`{U?igQ4'0#- &#- [yLų{X +x/}+qVh<]&XR뻰]ܒ +T,x!B%+ϻ2`oA@ނf@y lq{ [X o-yB2z $[ [v--[ H o-no{ -0%Oޒ'oy #AC[ ނ-- H oAൗ ނ H@y lao-`o-yBF@H <҂CoI@ZuEoނ^߅ `oA` -_ }F" +o" +o"["Z/Ez[@o[@o[REuu-[\@-[\@-[\@-Px-Px-@or@or-ZGor@or@or@o" +o[@o[@oEz (Ez"EzhEz"Ez (Ez@-z-[\@-Px-ޢu-z-[\@-Ǽ-yKnq-9J.aaJ$AK*aK' .a ; o$; w0A|,#>|@r~cig_cyޫ5u  ; _!㹜&s˰}.CeV\F@2s|. sيӿWU{guF5^=M}TG[n6.sCmBi]h]!w_?ߺB~B( >x*׻)кo5!-WI]hUw(^W=H ݀W5 |^ _w-u|Xu5|{z^uW]h}> +d&]w /w  +O_^?<>}Ӻ> %?=? !CuHp T` " n + 0j@eP@`ke  F N .ϟ^w$@&v[`.! pw\WI@@-FpMLPQ5\/q( 鐱- . [܅X[΀J y{C9@_?x @a ;@;C  ; !!t-BwwZC;`&;@|Cw@]  ;0$Pw 0AwKC:diB;wwwV; #;@CtG1r@w|0A uAopww|y5 ; 2twuLPwwZڇO/ pw-0Aw`wH; #;@&;`l8tt҄Pw-Zww@@Ftwws~](~ 0 {9{0_G !U±~ր-pKxDLPKDHpKD@-pK<DHpKg |P0A T{~iަ U Ú >Б /,a ވ_lf6.  +k|O2|X<`Cv?\w MFt8t5rńe$jn|-TK"$X$`I( DL$ E$GIK"D,H$"ǾH"|DH^$$3TIĄ)P%N$bœfDGœfDH$b$,$ /IK"ZUID@#Z! DH$" I쏰$EXӈEaK"$X$~$ HG`ID@%$º%I"|JKbP$O( D,G$$B%I"v[$B%$`IK"D8’%, E$GII"&H"H#$B%I"D$XXc_$K"$L/ID@U$bF'X1aNWJ"#aNWJ"$X1A DU[a$B%t$" I-`IK"$X$GX"i"0%,Hx$n3$~i X$`ID`YҺ%I"|JKbP$O( D,G^5%,H鈴ے%- IK"$X$D ~"X#$b$$}BD$E!$K"D,/߃%$" Il* U1a +#TI,0Y%m0Y%, IK"{-0K!@VU$ˆDH$B%,H#,}@D4bD D$_xԣ$ +@I< PO Hs=HD(@D(PO HD('$QJ'vI< P$@(%QJ I$I< P$ +@I$ +@IxA$@D('$QJ(%QJ(%Q˹$QJ(%QJ I(%$ +@Ix,ZGIUD(PO H I(%uD$ZGI< P$^/q$ HG`ID@%$º%I"|JKbP$O( D,G$$B%I"v[$B%$`I(۞QiXpmK3}M9=?H도u 6Y& 2YLBz:R=OX.yO}|PlvDmHm# F`-<z[_Ы{x տ/eO7,fnh0C,fV  XP Xl'| Xn`A`i_ nA@rr'` cۗXH #n `,7` EnX7Xr L@ ,705@50,70O(r? $Xn 0.rCZn0aEn#ܴ Un/ t3 0ͬrr $7>0n'} 4[n En"7 rX~$Hn`H $XnRDmrL@,7}B> ,70,7  9&Xn`H &Hn0Ar $7L h (r $7̱LX/A*7mB$7pKn r%*7t3@M(r.4C Hn>r kr޿3Xw'PO(r ,7G_CZn rr-7  $Xn"7}BPf@x7kPѿXCr En rڿ  r'A@rQ,7Hnc !-7_"7Unڄ*7Hn@ KUnfVOi MP 8muhlh]bӯkh0˶ZN/J/FC%4}ǒf,3~ Ke ?>Ce1~KL/ +/C~ҟo}^howu soq糷~i 헵--.g)X,,+.]i-+.W9Uk1~> +_RMtк)J݆ү[Ph} pn﷚к̤ͷۋ|}/ 32 7rn=A`'P( GX~$,wx={ +$XTi] +V0A >_ 뚆,?}BYC@k ˆ~Z`_/{ݏ_)`K6--[h'-ul鱼y'PKF`i_AF@- -'JKcZ4cZ} 閆4~#n4niwKcZ}Bii1A- j>4jҐF@-PKC֖4&!-XW][-]Z .}KK @K @.}K @>ХK?; .-]KɥO tiХХK@pi t.-]Z .-].ޥQK[p.ȥ л4?Yv]l +9h +@rxnMcxqz^9sJ\i>@7߰:`|ztz^>t@zYwfx:YHtIMa@)-eBuzHӶSأNi@ꚢ˔Ey:E5Z'E6^X!6CA{tw~tw~V }(MqO&cKH[ ZڸEk^@` KcŐKPzDʀE*ӱi*#zy-zK ѷ-pMʯu(J"xk@p0xk@pk@p0xk@p HTk %,+%B6 $ +K$6 $ +KByـe:(/k$ (%Z)|Wif@ +l>-L3u4yDKf-ZQf(*`0* aT-@ €sk9&>,K']-юGmkM}5D}bd'y_6us>H;n~"/;$Ax~a'h~}j?Kbarp읳˫z͢Bί=; a;N-.}uWmE{5Yd6y}2*gGԦ і^m6MWu W"s^3Wv{z]ޚoMn&ϫ[i5ym$;~z\}/},&Wx}6U̩-uhZT_Oƭ=ǂz[v.ׂ, Tkۮ ѻuڲev}WM?{̷wrWwˮQNo McRsGm:O~$<>es44Gov)v\tΏu|q+uf[gTՔѲ/G{$[Ǿy_b뇶v^y*1۽6G]·kos?_>8ף׳+ױ&}Nuۧj|ԍ=`r%D}|LcRDy `P"!S{D{׹%q^*Krd}t*+kGuB+CZaAѾU|7OMvrBC7өƔ V>tr᪴jGA/JB'Fw3RGߥ1O|膜lPm%43Kt%!tACeeQ9uzF5Ǹ9 9>\9i!p:$WcNıvgڧ`=VMOdZv_q(V{RݗȨ ϵb:BTm,<|NFcs#TҋLKoCD}ڞs":+0qҐtP˨8rR8Mdr|.ծ/^u0HQC9l"̓C# C} +8ꀵ*}c. +=TAJ#B$m50PEjfv՚N s%NE ǣ}D@6z}Wr}9ޠ$6"K?Q^֣E-]C.$N y TBB?7ZFN6F5'ٲ _ {xi+Pĸi/9pZʵ<ZU!==> cC䐵\4"t:]tӿYOZeSvPVb.LsGL?@GP^WU<@IjO`D-{X~Q"cs)WU3>jWUuǡʆK +Ng:T 5Liԕ e +/GkqrWhhׯ9 ;ϜaSȏ0Z!=rj[3A)pmI'%Ϫ4[(85h?.9vB~y!̎Qos8/+]izl␒N{[XXTDls2gR%`j~.>w7q/{w)IR\S# TySuhNS +PAFL3FfdEн CbZf4"OW "lfD 6D0L0q=gljrifUf<B)&K]pttKZϸ@5]WS^@k2cLQ%#ƞl wLC#O`$HQFe4WOHm6&Q)F"/,6iċ"2)}ѹ}j^AD\_U230uy\Q˸ Ž+PPزR:Q-j6hZ=ݢh^" NwR"i'REWN1uRrԠQIlp ɔ2BRv˾JE4"QLv%#:ƿRׅuZc^aP>z EؠQH#Hma+[|i6]HQb oHx9C~eO2uYErM tYP\U5z(ԄF/kde`Ce&,MCqxtRSXt!=ՖJU#SaEyu) +h=[~uGvޏYkJPn10gdS07n܎_,ŻۍQt9w$ ޔg)0x~ sli<"$a~.>92 +1=GWE( ?GIoDTIIک4'uۈ )t(#y?4SHewA24ifIHIB: ȑa@ϏGV` ܝ>B6,цzQPqroz#d8pN7^[vX| j~bH|>Hx%OxBJIe4rϵR 7>H&!  +6&T S^T߉aJ S2sj0Y 1d$s^bV s3퓓-0bcoQX +_PlHfhѪߚ”*\'p δ?A sQ o +Rr<7saQ_!}ם r6Nc)qH1J pi诀ח]pwj(ʹdž_ľbm aݖ +]_vc^nuZ?y# EsVƻa]Vf)ҩGf(3kOC(I]y9xl#/IFt 3!R@z{#PZppR; 1R!]Hu'U h޵Qi[*cDbAc"Ls۹\J6mdi2.hK嗼Ӱ mMQFO[DqnXK +&m݋]>I:*P \5˨( 꾞 Y` +endstream endobj 15 0 obj <>stream +8;Y8aX`D<5$oTt@*.(L;>_dq*A#O'6*;-D;n:e3s2;A,_UWVd^iQ0m@M]BVJg +C&I(V/]e2F>0#6+jdcI??Nji[!-l8Q[2n^G[u;(;g83g]O52Ot7NVY7(WB`O8$9a! +IGTTflnHh;^em?AK%E?gDr_ST"/'s=a98ImNARD^)E$f=8m,X@had&_##8?t1gp(q +7cd'u<0Y;p#+BO_bJE2i)E;;UTc'nL1]su&/;b?fPi_%[@b^r2m`m8@1OeY[e@9jm +YM4`qF6W;JI.H)<0[72S+Zt?bi-.B_+Qc'de)qEi`'MBt7_G'4r8;A:T6=F:^lp5. +#u*LH_uDU,/+QQ*]M$&s)tJ9`Q1(AIR"4Oh[q_]U.M#R:emRY+j;)rQ\A$$uR&VE# +Y[A*IkcB"Xlu.g7OUjUT/kp$36)6!*],cL7KN+:2!H'2l33"TN3)kb*;,.UR`rPN)'#O~> +endstream endobj 16 0 obj [/Indexed/DeviceRGB 255 17 0 R] endobj 17 0 obj <>stream +8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 +b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` +E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn +6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( +l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> +endstream endobj 9 0 obj <> endobj 18 0 obj [/View/Design] endobj 19 0 obj <>>> endobj 7 0 obj <> endobj 5 0 obj <> endobj 6 0 obj <> endobj 8 0 obj <> endobj 24 0 obj <> endobj 25 0 obj <>stream +HԕyTTGƿ5nq7\b2TT\dqGA5hE\b\F=e4xIF$L$aF!̙{o-]W0$ Om^V!Ĭ̂W)ɚ]9>vPWL.A 2 ;orp z`i%@w!n|CV{^Rgsgej1H`^܂vQ3rr¹/ +*t SA{ f<=?KP$|V|Ɩ]q>P +)6:@+ Ru:rpv*Q:cgDsϿ!X +{~`?X'g?l}Ä@D肞Aoa1c1ȆPybV +bͧP5EP;Jq4R.MlZD+i5rF>s)+el {۫d3"!t.de,!|IΦ׀E+X!Yx,IAolCi+g ${ *W Ho8 &dz(XP)jƏ猟aN?h-AҴ "vV]~5n-Uһ=zMiY̡fl1G;ŢZ,KkfiohlɴD*Hubkf3ڂm-mml.ؾk[]]֩mNC~׽oǾ]c{9N uvw8{;:9 Y <{V+UZjp[&QLU*|TUe1Vdb8).*CO+R +ZN#LKk`-I D;}]nju#yjuл=V^z~I/`N5/1[-T%IlZuZ{՚=1:?ԺXVCwXkJ]d; r;{Hbxz]ٮ%^G0Ecpklkk~=;u߫W\q~ww-+oij={3dɞrO}oWUeucuط#s⫆VI>]KU-'pvLm|mLOfB͈Ě;5w>ī>(~srӦ-$0{=xʅ]-3:dV̐^Ip%jnkXsyURd6z6o,)~vYo٦fuZ|ҀʀFnl10"LS7S'nʗei^h*uZSML7LG?D 녑~^+(Dv!5pT7&ȓA;{o0^vMgIPe6~bO lҁ=Kl*x7(9ʼXX$&еm$׆y90IF`yX1EҎKީx~F!wxyKIHXZ&w=3,#DhND&S ZP0B( ZS,dE$`(ب-t%=#@'JCgW(,tlF:M&zQ/D,@*D?4Ch>\Zɴ)H@0ʐA16`mB&mFaBmځ\t$ +fП0Nc":"g( XLJqY\QWUF]|)k2q]7W:F-DV7MV}[|⎺YԨEEUQ{6qouu`> dS| >Ǧ _'?[ak vn}m6vMfnsmv۸mvn{vv]n[7}y?ޟ Ev|ʇ>#y,! q< <'dSyOBQQ8EpBT$P"\h #E,"E=UPIՄ کꢺ [zr~Az_ZU&L}!jbp5BTj$8INTTJvr|@T/aFt2UrTsf|U&)HMUjJT*SUjZejZVjڨ6-jڡvyu^=>l-^!ňL%&u +6@{]/%ZCh tނ6w' 7}? 0A?ȃ0f2ȅ|(BSa:B̂Ps`̇bVJX3a)̅%k,D.FbHb"_Ċl1ZLq"O&L,d'SCUN2] 9A4!&"Q$@ cDHC0{a<.8 +p5 [al~8p9\pn-w܇xʈI4Ye͂ +j:Ƭ)kZV-kڳ̺{zHaΚ'ͪ֬. +9C.3"Y"RDɥr\&gˏ=cZDOh1=%sZF/Bӧ>9jKZK_:-h}4 9Ѩô&-ZkOm#BQ:Zu]5X, SE!CP=LzcuNI:Y43tuD] $=Yb=MO3u.F{c8/%x^x^ex^Af\Í +3dQ&ho\x#/$Ildb=s<mc;ܖ2֮{^_K'Mwk?̏ r1&T6&DbjajZRg=/^WdoWq7͛n&dLoo7WL3 3ӔRSfGybg湍Q6m[Vm ζlGv]lW͎#megvk}h7{?܏~_ُh?Bq}WUea,ֆg} =RRBTj(*@BMdJzO@`Qgf ; O~6Lm5V[a[|fKl, ;0$|Y.®(b!(DY-ƾ"B@ qpq08Tqx-o#"]Q}QJ8BTDPTŏD5)"qE #jXQ+lxX߉8NQNj8ADDQ'hX'"Vĉx ]׎`4 0689 f[`"lI%| (O&CL0v4 à0, f~ B>pA1̇XG`|,N2;,aVIX ` p>a}'ap>vcqv [,4YGi.R>͡y\+qE2m-M#:\ksMKn*]p +rnƍ9r:st.i:Og"ܞ;r&g5ݸ>ܝ{sOK60~+ݦFf&UGqknŝV_kLbͷXU%UYUQUU5Y)*j V'f=;K  J2P !6(p@+esBdk!ȶ̄&^vY$;.fG]ˮ Yd +Q!@#IPgzAO 0BZ#=ma+Jve]U..+C,%<*rhq +N" d.Rph,`HFvd')vcݔ*Qe_/ƗKe$n˽-=+G$xBeܯrZU4+_VZ]k`=~Ok=.7} H>QgI>eۡ y0 s9s6D,kd J㜥HFkyEH0ə,,gcq.}zwzðt:N6 a wa),rXc-x%<C +VGG`-< +?u3Xlw-2&O|n-(?KމF9eV ۍ_ +){arfYzix=~8^dy1$+7~;#p4s^?ŸpUx +o[pN۸-^G7mShE~,\{Gx}OiRCGuGcg 3c7ʌ9nvbw"Lbl6vm ++իvfǪa`#v-^`q=\Z+<6:LJ;U=K;X=fqmXY}}3_aQ>CV=L~' .spϓ "r+ёȿ{ >``40B3i!q@zp4I\$ϴRHd)&Ad(^u]!GD"q|ܼ|'~2aFEF&=GqCleGirJCuS3 +߄ˮ3a/㩒IP`cR&4p4i!"!LAu|ՙLȜwf3}djp;6:{p9 ƾvW|eki/̙06Cgθ7O&WVL* L&/1E‚R.-鈨jHFKZ]Y)wpD'i)2iaR:%@A1:xmlңop < |K]rj7@ZQmZ[|NqtJ:r-eZ-9]KnZ$J5 077GS#q x.%ʄ07\Vvդ[ +=*7`2MoVc&nj~FUԴ:JhWZYW/ԫQj&:3ޞ"n-: FpkT}E,behiIe-d 25vrhU4RI3b%biMz\9^`yбa$4 BUin04-; 6:kV(Pu0[1B5 ]\djT kl4, +@5\~?R9`H,y>15˚%TF#Ce'hGz=1z0:*G\ !bJQյvpu6VkoC4_lۻed[?=+eir-sbu}V& $ A7WZ_9]f O7-TKƻ3]T0쌚,VߖԚu~o J'ȊTh`/hD!#5uz +P2Ae4n tq\NtXA#,̓Ĝ I%XbbmE vg2-V[| +BZvҮDtOmѤbB;Zĸێ@n@߅2Q&|;{(iHU&2v7UpG!ͺP H0󄆪bhƭnn,mg+-(*v/6.^IW 0K{6uq;_;~~88q04GώV +"+eڮNAxyEtcVԩTtMjc,s9^uJmG^|\Gs}y ̑;sϡbI}n,5'MX,Y"X^afЬ*PQ.mbeRj&P>88RfiP\,@90PgdM6)̐PZosʵ ?vb|hj( %Il66,J>='(5 QTD܏ )5cI]#IYE7-ݙ~2uˡUMцSrGխOI6Wڛ|[\hhk(%/L0+"e:cs|ϑqO,]9ڝ{QxN  j|Fpp!p,Υ>qZ :CV PѫC)u9cB6 W\X/9Ax{jޏ~8{k{jKyTպrZ{OWElijAG]78]Ty^_ Eë7YW/sFׯPeEP +, +~9ˠg!FgT'C:ҚJ  1;aRfF[|eE!3~Cr7KkWobxڷ{iƷcD.Ȳf^Nqq) <#ps +ޥL[(Q5R|TL23{0* E$-og3鍼FՒz\6s=ryn$/a#8#*a|El!_Zky%mKW-3v Zw|o22dѩtåla!AKRIX {_G#4|ng0G I(h3H81e/}7iw|en![\嘫gt&)XIDu @tه(yNIQ7OdK"d3_ɹ6E Y:+C3cHM=CX^d g )`NyQrlw%Se xIkvW *$.+_>7tg#. ƎFj~ #P1N7m[,ME8k[˼^W2<Ź7udfuc/v]sTedv]=TMw^gp?F[O&֑)VǫI5Yg34=検0I!dm% t"ǩ$U=f|9CKp7Z<{6inqcƞAvzb0Uu+,AMį!7Bf^_`ArXe5{D( P˵=u+1:?ؙU.<7hskDA[]ZxEF2;z Ddz=Ο )̴ɹ[̩x"nΜMԗy2yIO@.Fآ:` aMB4s~y{K;^-b(\应qъm'xHPh=7^Hf\SX]aO_GH>v6 +ygfd,)&dMFG@Xk#ؿ~s1̓5k5AF'H'۾//]ڪ7Ob=:7.ی.u:ɸ*C?R׻T9jttW *3_@8y.3z;ZqܤǹDj ۍ\^:PLg!aҋ&ɨz)#yXbtu` wl{;B}QqB^rԗTјƻJk=H{mL~7\{P`kr5kEՇ/z őz 3VB;LpV6Mt-wsWQNk=̩LӉvIj?o p6}:tkjMGx`'.qW#,ϋF^#Y g,^z5\ǟ}O[4g$>̧QFpnpfS7bܖod̙yMtޟ{Ye$g̭N{+Dw2$tegcv kӉOM/eUu{B +RDt.pH*Kc ( +8 +T +VK4Rj[ ʢ,ϽBcN̽r|? *xΑNW-ﲎٌ͌ek1 v#&x!.A62<+qYI6e<5Ì{Aζ{QZK=o?1oXnI|BshkL41B5T7]!6.ةgl}9hGhK\''|0W!> uB4 POY8n"nЅ_h}61)F\41K?`>Ôù9AdqQ'MVr@bsT޹ jrd MveN!ߴcB'2I෨N!S̾gnZHAhڐ$!;[-\SOc}U<[ FwK5ahۘo̩l_5Zڲƞs9EirNWsv'dj.{_zVa4}c8>{%ewk4mSRyR]&Te44m>a?}FR̽Z=XYXBIjV[=NǤ46^tR-mWP{zZ {jGx[z(PGZ'fe1Em_y3__܈5l%ޗ̬͐4/Qx^vB}6G%w&gja8:= vL⺿f`?$?< }Cڸ3nlR;/v2DHkR`5ReRrBIM##f^;[?u쒫xa8qo+;C~q}ois߸7pwY6>8[75NN,TC |$l螐:Ǽ <3 +%2X8+[ջJ]GfysBk0q?&*=`)ez|gۀϋ\-m\*yc;&1G6@@[ +̩ >lFn1$'Otqkɉ/}J}o=,s^gp.)8xhO?"${o93͉Siwr]vUB_e뵔jѽwy/ŇΠYڼϭι9Y͗L]<KI>g-FY;g-5aW߶^P.@|lQ`s > eqۻo_&*IQܯ9`?ϔo'hzF`u*9h2`!gR?rߗ"P|ve{Sa"`pm2LՠnuCAEˢÏ^igֵqRde"jTUxחnKlR(D<.攷6{/N|yM)oȥU*0 /$Bz;먓5)ެqfOVeO^cgitFP/.*aU^\hx~Qhy|COT`>W݀ؠWD7=\ ϻw(T/> yh-yeф˖AlUKaX9Q; _zj g1hkۣk8i/પ+{>&!HxG$@E$B o1@AQA\Q4RhRE3jXʨTpmUQMv}ξ.!wuι:kV̇g{Dq0:nLiR(C-?Bd= 35qTaSA*iv) 'vmA%zӡ!4Y]`mz"l *[qBĜL?8|L+>*U9q2daPڢN?x 󋤑^4I]K +W<(gHWCy;r/:.y׫Vop7XN}u@zERf0пw.J +]骃qn=Q)~!6gKV<.H !vl 6Yu +$[=#։ +鷚6p$'55ewGBƥ\K'6?nǑ񘼂vAQ ^H]CƲ8̣ ;Ґ9W3LRѫT}ސ4V +HĿ[k?l>/aA<+6ě|#gϔYz4¹Al[nxMAT>yrv>?u@f} FW_!!_ q7~픩zq;m.$.~θn`l^mo@x| C$7)o +c#G{W}boR Kmyt77:n>S{ݔ볣%PXİЃ;5piJiTBsjoqۡFFq|5oߣd=k"<ڈڕ_Q 8"ƱV-93al=\,O)a?_n:.aeag@hO7gHtor &kCz9Ʒ,iQɇg +GccccQr,t wHF%ts98:GnCԙHnuwc;ߧ?WzhSirڑ֏_N8="Yd..ržJEb$db䩄\b] M>#ySozQh2gn0_-.Զ-䴧mub)m>TM,=rW!-jN-r34λߖnzM Mط8=v /?֢ Y Xr>5 ޗrɎ}cۺhxPfK^ϟ+yLyAX\qY&l)S73?5Y\D>ST)0;\~qȿ{ЦM R׋=;}Yþ P;AB.Q. 3T=SԋŞ ;*:QjC>>7l[ɶ-Ѱ m;L;]eکYuG$G&x52қH m^Qr` z|'Lg㶦%96 gRY؛ zٜM2匦P?UCgC/c.l4]RυhVZ= ڬ%wZ{l:@ AN36ubGwZDm쯎orU\? 8y7KW;طRB{?~u9<[hxý5\FW|ˈ/IeH›-gg92D!zI5}9=~U%%Kt?[uuQA1JED@BGK) "C]] `)/AX[Zð%ݰ1 1M@g[\ #"#fq/ridM~9sW;e> * ƩM[R; s{N5(z闹bLŷPLsu'}_n ۘSmVc GO״mVC^c'6ao郝^r>txo=\&I/F4k~qIikoɐ86֝1YX_-Dt5w werR7kC|=Ӽ̻oo 9~glRrq]IbZZ&1>GfE}?6C~3q븐J}R#̙8b}E]n쎗Xn+e$¼7 +_ +hQ-:_֧Xz\)`g~ g~V·+9 {6ǩ >蚱.7ݾ8#Mo7m61`1eR)4q~}wR`Laz|{V7+ &1@Yg pI{$/ܛ;o&N!>ue!F\+*k39R{Y;yORz{i?*2Y +3c{Puós5NYUbF[,>7S%~DeP `5Lj{ne}EP" pyb|nǰkjZ+qx kv74GA[R#*rG6DR_,B'y[!U.}r}NY%.z(/e/`VȻ:,0OE cLQ0IpqZNaX +C ` TP `}Ym#`Ma^gAIJI8̛*u[ 41tǽ>ga(̃fB\ 7` };K'cEP +_ތ\ [6I}Ws*XcʫtK:@z]jccvnx3>@tLT1szXO'"OJ%pQΨޛީIbIOx|NJֿ[12Φ'[ʺ|{]Bkp2. uʎc?.)QNr$9/y>_hŜ,MyA^1k10e݆^?$'js 9d^X)|Ok#U' w\l^`r{:'q"b]H/{;FwpzѶ {SOc 8~&gPaf̖KW#N;I3ci/S|諴N3,o>Snwd'>71RV)bl6:]6U[)}NUx%w 0U|Iҙ'(D$T䢒.oZ|d0'lrtg78}Hnt#R4^!b_1^) Gzʼ8BNC!v]F>G;صpDN ̨kG 3݅dJ93[9M̢/]&[jĬ;4ʭީkN1-aYNf ZoQC_!C^n2@3lR(F sX:T:Omq!+.S?Ӧ9Pn^:eʱsV *u4f(zbMO!C^n2ץ6C[9},Q*ru>ބ.B9pϗ:މ8W)r;0+4LڒzS^V#l̻ݤ2jKMz}[>- IΕ_@h 9MM>V*'L8kDA@FMWه? e0 +T.^W 0j|;K z+a;C8"הX졘O8HoDt.Ǝ, +5ʠ;P"Ik2wS.2]3)y#>_Z=k~E O9xrYJi佬9|SB- +U:4mwNAoD\=Wowȩ:0l8%ۋY&^]ޱDvUXt'-p+Qޝq%Ov1x&~L䇰J* Z<7SZ~&>"S=}A@t~獀_~хLd~մ'uɠm;}be/ت+w{k ]!\@EO+BKJq{w{}[b%JP]`8œA"ȖƩc&6ɔFK\ d{`[-KN;w~w~<<:ϡ€|ш ~ c !Ҹ^'2\hy*s{x!~elf? {]UO-uo"7uwgq/1G&ߒ_Y>zm ,: xiKQn:mx?![ޏx,Q7f)kyBUj)oG,*;KMԟVk8K}8KEA96ɝנM-zkV~y0ֵ␪OHf')g0ixdN¼"︱`yHEy)RLR!췒m!ޔ&.)t7!T$KhӏPu})䝒e_2v[6Z'Xlx0N!N ]b܍T!vo7'lXy61'g Uiz~%d(&!%h{ {q&>8{m1RH1aro?a_}AzoNʭ`dkn܏yUfͨ\B$nGZĀw G#NɋF?6^m*xaaaaaaaaaaaaaaaaaaaaaaaaaaaїJ%4"HNmD7\u~- x?(TBmC zK݀~0T-ކgH R M6]@ +t@G>aK&UQUlhKȦ8ɡ ^jG}`5QJߤf: uU -xg7R=vX,Zf!F fR#"7zLBTOm0/\A3MTE"D1LjӪw1J]Y䗹4m5ͧC̓I PnGoY>|'zɢ6;4k6,Yx%Ԭw)ZٱUjRuO 25=F.Cwy~}/2YUHK㈩O>Wu өY=F7*fUElsO;׬u=N:k;r3LvgWol2Vz(jO[k̥=V%c5N7NO.03ɾUj6ǒ=]f},w`]tl"egq:nOX zN͌M-OwM,mTJ]dQhǭTƪ63eZV"a%dj&LKڙv=9tR)/| 77BFP܉*kTWM +Z"M4b:%@/8(%8sDi ρ@xG`8U1qQCE5-s!@Άy'L; g@N9+Dqa + 5qSBc +[cpjy[o8/F7{a6 įl킝 S0b)h%V0g~Ͱ o`#l\:/9>OX k`59\K#X5>`, L~[>T{0A5m;6ǽo0^9̆*x^zEx8n< 0*)~ß1xဇ!xpiNPBSa +LI08L &0n10Fmp+[f FpCa A0^!@.@o(^z@w7@B@gNp-\WC\WWp\\m >cAmbg.."hQhF<*q.;B + A.4Fٜ!3LCCAx! 0p;C=HlsN)8 p?gNk;󉬣쬅#pCp?w q&|v=`֯t;aɹ^l796 +.b ';& [&6Xkd/s.3}brk9` 'ZUbǰ GLkz1S"N ,C5a$]xd$ނ7MvO%b+x!RŐW +YldK"ϛ93\ӌJxdO2 x3Yģ&kxd !Mi ўUnI~5GkeG+p';`,WCi*:p9vp5sZC&! FRcCB82R jS~rnWVڢ~V?iY~T?cL-UW/;=dn$wC Z YpN%&ܱ;۳V9k +7}> .΃sB(|hy '4KR'_uB |\VѪV}jڣv_.SN}R_/3DUkTZP}jVrS2)dQܖV p0  ` \(VV_ +-\E. Xfp>ԃpo'4G֩7wjڤUߨjZD=\X +D[)sMieEe˜&bjYlKY{"Sܩ)nʔ)vDwRb6J;wKq'+^߬g͍/;5u+CEmO%wOOܻ17%.fƬ1nzFlZkvQ89},'/0:9#Q4uhy*"Z<ӡ:kncщQm-ݛ#PwHp;81~M7}}`/ vw{$݂DnOiaE”viCNi|+ϫs|a#7[[[[w慓^Yi+vkȿѿß۾J_|)>:cEƆ 8cxF4e$`:Wv{JۆCfӋӇ;UV(‹SRx?'#3##bFQy7@!VF !;yoرA5D:Fm`/r##s(A{lp& d"74`$R;DXHq\1P#ҥ% bmDƗJ ^X .3 +pq -ـA9!0K? +endstream endobj 23 0 obj <> endobj 26 0 obj <>stream +H|VTUW~Pb}|ĎQ3c QPD +,ذ"V+_q&E$F  5s:ܳ}}}@IDCGGkV-e|}_t T7<C]Kڭ#yt,P&p3y@*_,bGa&z?ZA>>[vY}"M5 7Um0F=/U~ft [!^`s^k+JH*dm|%*;]P윤svyrbGS+vqZ6iZv]A]w鞺>]bd6?7;0cddoٕU쪼e72v)E؅$WM:+~.؈X0҅u,^ +.&)_W])Eo +:O+8V0~Ϟgcoqv7ȋ)|N{yo^>ޮyuָug6xZlz-b|CDۄhmDnbn͟sCsn^kq逹@~J2!f:L,T9DPo*F *.[ˮ*:d[UR_Aˑ2ZϷX<g7S4#L<*lzbXxXR/HD +kS8 _a8s8lc#qiq'fa8a1 1C8""1Q XId?b;s +Jj vd'~|ď;; bwcq:{'~ bo~9^@d+/Џ,Rfe9.Ӆ8X9#Q b0+2a;Ub4cV K=gutcF2c9Y5i;'9Sk!*\p EWMaљՌUf r=7p#u)TVn;ý`}~~4(}4t "?*y6t<$܊ˑ̃Oo2'd2dvyPA*ϡ.AL?Ag Lc7`ޓOa6- F#}vl5HJ}jf:\ëteP >8+b Ԅ D<5<J%X$ +ͭ Lb@&IeϬ|@Ed͢r&eA 73* +X+ 0|ckmpg%D"K(|`sYaѡ;ZqKy2UY^}7V*1=CؙPNTʁTffX- =aLD$ƨ2Gް!X Nh&Lo8;Ѱ%wD "YI +d&'Y5OaځqhꍆX xE3w]niS +QvHFIMܾhx\_pG=YxGHָp Lx2!Ĩ;df4Nch41ǣH +gyBUB2I91˛jmHn" ]&>ID,e'3،I&Qh{5vIɎ h 3̴j' +kQ'XEc |U=Șz}بÂhQ?:=AwJh"8䳖'Su@<&STy~( JI4(<@8;US +"pNQL0Պ{Tj'rSG^DRd>$fU, )QQ,L J#D1Z?9]tmm +̐"}e;BԣTbH-QB@=} 76Uh+i +g..OBjô^ɯ ].RCO· ǿYt*_ȄD\MV[kfg2-Tp2]yXc6Q2"6ĬЏ~0P*:~ ɜT+JW%vM%_:t u0D!V^O <bnPav/'J!Q,j 7Wm B; >ݹoҏӏ~_*ږJҷoU6~J]ڋwm;_ +硯)ܻǕpa=mrtڪbn,ͮ~9XSr.Ƌ;bs5rG%ӥJ?1@(ZXQ*ceZ lФ(˚cꦌ.lܞRJQ8#(GV8rU+ RYoK8p`bHOAWh'Heǃg/KQ:W;둛Mr?n65>rw\:xoEɤJLRJnk357KݦC"_0,MM^6h+h-c`ەWYˌfkw^f*fp=6i5٤#d 59k U! tI%ZU2Z%g.?f.m܏Y S,@ۚɗ9F8eA˫66zݴzF>;Yɱ'6+ӱzLwj'qo۱m민KgGxgKꚉ=N׆wzKJmw֗j +^7s߄ vg :o,1[֭\/uFݗVk+ɒlˑ%ْlY2 zXV0c[08@(53e7郄Bgc ɴ$dh 0ҤiH aIVihFҧj=\}oCj4bUDg\&WHM!E|xȾ +<\ksn53cf*y1حj@~DGw{a#,RLzYHx/Ix';L2:t%6<ζ'5ޘcx6noj-8/KE {n[JMn`O0rک5k#@U;.j;V9;+B{99MVZBȶ,> G5OM+a1R/cjD]"GiXFMpCf*(kHk[m|jbpwRr`Msm3n_HQ5k; ]K~4!hxo`XV,H~q#*9PXZf~q2;90XGe멻j:5% Pp>\@QhJ)NQ4 +tKSMbDQx >"ᴢDis͋3 %fGb;sk*-:P JA1-k"]8X)t[qU E``hnI}`#?Vuy}]Z-|wv;y }Okar :*4QzYkc;ȁ99@{N%0镹W&]!h -n@Lj~'b~<b2&BʲFo40MHoP +}O(O$TQ\_xeݜ^Lz|yiG%Gx +!;t-)-M|O&jnEEao .뷒=up=4^ +gxW.qfۃx۶^On9?zZu6UR pNO;UE^݉Tb uYc 3U hv5{f1]%pK[FOU6W/P[HKtB'GZyT>et5| hىu!# iY!UTRq̴²bQCF2$H~z*52ܱ7QVR~HE_΃4]{6Fc[4H ʙ׶^uu%~-X^2vkf*+5yeHT@ǮNf"DK8Pa6᪉WQjS#""ZGY­WQtP+DB@ j!ӁV5SiV jєzt)VX/[.d[UfVŮBҙ\2ުHDBT7>KϜ9#HuKvH|r d]ڞز/Ih*Zy_3{C{Ccvo@??s' My$^\HH+:0餳ږ`:̐Gr~w3x%M}_NwJO=|ZI*htw<8To{)\[^s{G(m()@\SXؕx!W +%+3O`7QmdVͰ@m4L:c&ew:J+Fߘc6[3@ %}|R/+È5!ZE~b\Ӝ_0;/>ζ^]|뙁 [ڳGrs +:VtAh7;.sՆndd=C!XQShx2fD\DDk9&RW3Al 7 +0$WhlQdrr3vX[8Z QeR +Cii.ˢ{姫Nnx]/ahS۹gNv}:oՈxW~V/Zi;BًPNCqeĆ8Ȇ(ZAØ;Or{Uf6@ Gq(l+N$/WȠ8%or}Pe-rgKǖ S!p0\hZ_xypW nD/GGEܲ)Gb߹.>׷~ ;?}HTUAj؃H,I%IDdܪ.㇝{=-?0>8~.|)Jӡ,ӣZ qbvDs}0}Pۅ>}ac_8Zn~/޷ڟY|{'lhP͛?ſZ]q-w_jʜRn,NbbtR\%a +nmA-ޔ8ϗ.v(r E|eqx E`ONΟ:C +!Fh|>8ǔN됄5';@ 3ӮXìz@('\*T/_O]\fDrv>^WtQrOZZr/<,x8Hn/DDA$tۑ(&fA\ɵ#^Qvk mI{\m~҃MPxQ({^XXۣ#)a|ɳxtU5]wϊ k߹@k:4LdW' ʪS r|+^╰<$yt9,\Kf%p ϐ!.1\o[min X +p)W8\plo.r =Ϗ'Ɵg"$G)dAKŇ]0Gq '8;u\-im}\tł+]11rDW,b{(8#WqQStł+]1ʳ1rb+O*Hu"X^^uZ%Lƥh[/ Jdg`Fli+PF QV /*;Uhᡸ~G̕ةºYT~[J!?|ý>}2 :$SnY{Y~::h &ui0mH ӘӀ< Ӏ< 03'"Pˎ3=eX Կ={L]"5sݛ^tзPL/Ts [$ܧsaйv[n[0۲ŹwãҵGϙjģ+kk򽣝kzzܙWS2ìùp]Rn+[Whܫb-9(+= r5D!{(0B%lWpEg]":c7nAiX`*}$40A l"`&:L(,hSbQ0M(!B' P\jHհS*Iu-k2j1HhMw!k~gIۘ-}x›("3F(~?-dSQJ{7%D D" ˇBWz|SE0ma n7EGBlec-x3Z?ᱍ%?Ic'.^3LsW0ChxAlM~+-9qJ4mBkÞzft:9iV_'Vʶ!qhgaRqEFU "A\c?3$pso999ZJ+Ԙ)le +}WU0Og`ݿ?Fkm-%dZUO]4~b 1r 6v0EƎ 8H?3s%\4yX8__UU2}qGFLhӲ@FE>w<iWutBsi>G >Tkm@56 ۬Z)/;x1NK2kQ}A'5i^Lz95-26jqoQ5V[/S^KP ~B/a7bm1UOaEti^Fy!qU  :% +T٪UzT%u7hy,t\cntE*}x*s4 ݡ82U6N ~X +وgb7vͮMX:Bh@3+OuD^8Bыnv"&|S=b"9G+|UısޣD9cjTObF~ X8"㾌Ǽ*w!?,}v~'9Z\-) ovZ-fP Z~kq7? }75Q6ƾ@tsGaro*|:x`^?-Y ,UN|,|g8.#^]lx& +t\ù9/E6ŜpgN'%R) 9ny6։ +@ZueyRr|p&OOOt}IUo{.SO%gOGbz?i~C:yiJRi6bz伈b|Oz~IZ,q@N~9 >48>q]"Yʯ1MMk%_,y͹|,ޏ;ԏ##K37! g9Id_Ǥ0 v G"VY3^P xz_Cx}@Ϡ'n@W·rї ::vXk +Jlx w+[jV GnC4ȮJ*kP(ϡ^ Vn=)>dp: +<7jI==Jfv`܁7|S~^4×2\8[`?B*3/ 7K䞘O 4 y==ݑ?/[H5ΟS^ s8+=c$N|.|{3鰅 +.W8E1B7+hQ{ʓWׯ\)s|CH q$Q1Z)_sM[qv6sqnh_x{2W{؜Iߡvw0 օuYwjVDyq쁒{1sjB-fƓwPQˀ= +䓩Ĺ޳KbU9OVQ'O:tf]2hoM(PhmB]yDb>Rmy1}9N>juȌ7;g=5}_Q=7='yQ{"`Qj5.`?C'jWhR1/Q7-U`4QmŞ}a }7P5zL0 Ro[eLWYZO[%Lz{izf] P l두K55V4Tm=L83N ]N++ ߐ}sL̐ {hzz&J96` 'St~"4k&sH{~A' y~|r;p +5x# +a"3>hp<<]pgS>b]bI^m*+֙3# ]_WBž3{w|C!^,WQԔS1xZectz)Þf9Zu)>hoq_66͞1^ƳqS|`aP f;@9w%|HT%U(js]_`BC_ +B mQ%pT :R7M*Jo33/ۙI?FcT*O/NJ +W}Wl9AJZ֐ϺTvU<Pr(>xh |LQ|; I}bNmJ;ZplY & _4NyQPB}QCށ>K{U'J8`Cԝ4R9Br$mp:g>bwЀzq ~tY_' /"Oro?S]hݰn7i.[g'-a2xgaTF2CЅ-F>he f\'OsS[X-G%X)Kl +ƉzS]EJob?lD.9H"+3GiG{5Nɺ|:a hjʊ/>D +,$zD ʦ"uMC4qC|,`>`uT 6[gֈ!&[Ҕ7mqtZbr ^Z_̊0YX\t&tZ$_]v=l?_i>FoXOW,G?yY5 nUcZd[Z7* X0F=U#P&X`'g̥?q*pp\C{ ]6?>~fڸ3RwdK `\7M` 3n^4Sۦ"Cz_+(EPYևH+;j7fشn5v)yrrW}J_3j=ܳ(ښV^S[/\]n &*x냉r[Fv"S&݃ObXS09A<ջWю]b?k//@-(>='vX;"~gЌogz*Y^b/ 1ږM1B'B*۵W\L.\L纫h/*^͋xg".Ý*A.W˩d"l@L L>PNK sg+ؙJ1bOSedL=3c?>=25|ɡcXђ$ג #gVr<+[QPF?Tg(к2ue=@<ܼrfǏ441Yh%Uq窎PYNtr Zy]:.>1rԍvݫO9>ܥ"b[&%FﻫG]ugc +endstream endobj 22 0 obj <> endobj 27 0 obj <>stream +HVXTW{CXb qdM4h"E,*X`A+F"EŊƂ #֍&3~}{;s?@i@[מ GX_UJxXt1bN|)x/@: y2/P*px>xxtPaϳ@*iYof*ԭl8`x*fpHdX*^OO?WʿVT~!Y? xboXhD5!fj4{|Xv{6hبq5kޢǭԺMO>s>oዎ;wڭ{+?` 2ta##"G=v 'L2uZ3g͎3w eq’o&bYR+W^6u r[n۾#c{ۻopcYOdJx5΃#x r)z Ww*tz7c~-~_6Db`@!CE 2-TZ,(i{ u_w/RW|td`}m-O5P0Pj{+wTp=enWio+۬h + V=9Sn +p>/*۷*]ͧ"#GA1!MΠ**Qq,f*8E3BZI'-#Y#Bd + (T,ڞ(TgF@0hJhեU6ª1yR" *KYM$NR k#(yӼj NB+tc vGy*:=gJs'Aax V Eg`+1T !sΤ:38uI[fDB4JwGTiDȘmD4M;#daBþ)I$ n(y^@*0m#dRicx25+wU*H5]DȘK*JLcJRIes +JO&aEN-U69{!9 lv:@>$zh'1.F0lۄ'R }>Y M :ϣ #I4(mh6ݓvwf毘uDU/I]Dd:Eq48ղO/ *ް78&Qe3 tIa$ ՅԴR8J$ڨ7P8E{7 +vNԇF ˡte|q0#c2 g/(LE]L5e!IRDJ CFƬsBs֠ 4X#Mfސat,K2VȯM$! +4]#mX@fesLdٮde$d:2dh\4qe,[́胩GvnZ uT4@) |OҀ|6>$ƽLW1ieq +xQ$LHP #e@Zs5`=^E~c-J +q45;z.+mKLTDɊY4[a%-l+Bya΍%/¢(1OĚsgX $Թ \1ex)#R.~83yy󕲢D!TKuk B$8ZüUj4&p _y=صWdzԷ?M=]ϻ/TAv$KnEltgs6llUnk/nonjŚ8n,ڝ3ty>c;Vҋ ^KqRWڟRƲFo{N]Ȏbe;D1!!Gs'ΝھKvM-:~ 84t7m6gõ>9~Q nlTv <] 3g~;U3zWѡ+_Vf'~3^{==,VgIgGuvƥgfL m2f6 N3gCEazy=K:leo^պZJ6GtZK +Mݪ!M D .C'T6O._`/;_ T bM7'hcޣ/(6~Oz*۲o+E|.o1/w-ֵ~Ym;ҐXf +60Vcm73N?odfa{j{1b#`6MfXP(䴲Tlc;I%9Z~ϜCC"֚WAVBib2V8T+7p(ss{#rbA} (u+fڃw=>]\]ނ 1I#Q&A"C3BH1/bꤍ1#&Q44i߹f3=suXƕfd$g@W'ѥdz6TGr5".rii~~npHIg +ё~#h^H˰|M*]_ >n>c6&%Iْ(oGL)8052D}p 2s%<[յ#ftaKV&M0/ o/alJqCpi8j@EYeMeBNCΉ =QqX#. 0A@%( +(OF "d3dMᴆ~4 M)e_ᘕ$ēD:$9SuTapFeylWR]7Y%wS?Z'5`_ d+jͤE&'u?T / /m0&iXuPU !5Y`ĒsOFg6^4XZ<+XC39s/̃f&kCf}3{khFEqaE鹎~]^^ZmBA𨑲HoplbJ,tζ0x80kx9 H9ЀeGaZ1?XO_/IYAoHSp; +q$'qFә($f7ivhKw':^7JI$Q7bF 0X*,Lw:&y?s!<-,5sx5vQtD]6<;BfIOqa̬\KTBwcZra#P*:[DcZ p^b̀nX&=~b=U3Slx2NO +U# reTPANʛd<5J.팲rRA\ZKi3i +Ŕqn\& +5g`1Wu^m(!xLU'u.,`AjDxF"}l~DNJR=+Lh^v;*4Sz,kB̅x~̚6)SP b)|@O*.[>" +MZ!'K43ZqAˈň#|AD# +b7KȧaT R2 ?z͈B +ɏ)0,#1)U⽷)Cȕ"ɪ \렲aqu~y|9?5,Y/SPr[j['9z],;VZ}fy>x ׿ b0I2HeE0xu_Fpwm[:X:.S04v z݋~$!~^$octQz@:e 1qwslF!t>>>DPd-e6ʟH!S $GY gĹQ`m}P ъA99ve>}5E(c?WkpUP A"(Z(H@js%! $!@0aD" RE,ʫЩVNK[v[s (3fgk=*ж7 m@@ML'V_R5("^&2-:o^fm>6h}T Ӵ@9hc/{}"ԓz3vjqbS*"(r&mi 4^ήIJPWZ9W@wɻ0t^B|i[-4E}݂YZvb 7+@?v[^/<)lu)QϘȰX) &8]ׁ;VVI{XH$A 1[%I\qEZk{}u\2e 4~QƏ=ǷoN;·-jλ/GA.׫\7j퇢wM'F+!&OԹR_5;ڗg:1O1K片HeU wo?&}"{7ᝪw]8"wz]S"M΢uЅ&?90X +_@WEQ DGU@S|]>S:`e$L '}]|3Sדk_|u,Ͽ +ݏh?C:¾#FG?A/Ƌ9u>iOѭV-F;g[kIӵﵫ+6YV~i&?٬n+ zLFg/ +(/a [.RxYޥjQlJ֦UׄOe\0@ݮ/ZNiNa֫쟇fg~mԨTB+bb1LY1rke E7"e|r>G[l\b"eK441mϞ:9F̠VLu|WaB o :61ߌ|#~L ⛆ +otR2':Ob"l_vwG:‡ Lvn~ƨYo<܎jg gStX %:%d;Xb!V8}o3 _y VoYkqU51*SοmIןM4TF1S|O`{nS^YW>뤷IY5 4&jE4kzy.H Fh[o7)wլHiYD6ʘkEP^ fO ׺`"Tcp#:7&DI$DI$DI$DI$DI"z,r(X肱(RKHQtFM7tcm nx0_vS*vÇpk(CC 1ɗ!.vD622bNm.67)jXu^$22<^RZWZ$o Es֖DC +b%7eHE]$FKJ#xyi jc5='VU(C "P HrQ9E u\WH5=䪑Ǒ|T/)+ĹJZK8s +&K^JW51ܯmYWzQnֵIN#\\UZH9{?^oe]OV-_ZʣWߞR_ P|+4p;^@  `{B!Ӵ?{*6dE{f-ݙv.zfieG\BFcb ؕ,*0nZI YM7,% )oILo9{yFX3`';="iF΋pNpz?Y; k|3 ɏ3>|>>(8 OaĊnp5rir}a!^܈MfpĉR ^-=%_)mm369Ǵ:ӎ/1|x#xo yDXHagfAm3b.n1z+n}u _u*iӛe0eV:Њ!_8j +endstream endobj 20 0 obj [28 0 R] endobj 21 0 obj <>stream +H\PMk +{XL" =rMNRQ1,[}fx?&L֙ߢFq  _/*0Na_.hop JcTnFV4gЙ8\㤿UJ,@׌jj*!J͓3iu[Եܧ @دu +endstream endobj 28 0 obj <> endobj 29 0 obj <> endobj 30 0 obj <> endobj 31 0 obj <>stream +Hj``i` 8 'H +endstream endobj 32 0 obj <>stream +HVkp>{w%Vڒ8ez DO P/2AlI"„1pC !@ӦLIVIe'aҤ%͔6LK'2OA:mR]Lk{߽]` "Bq]d[`>"/7g0yْ+l7|,?pOGG+.gނn>[: 3RP41gا'0:++/mo;`ɧX`9 *םҕbԝ=,$Mϱ:#'[1/X(@rR'|s^4qA8>_vqA:LJH $~88u8#1LJva >c/oOIx !W5G80 + +xU>]&YL qB@uY2p ;A zB#݈R,5Ax~gk;; +o/p#?aNqEga> ȼ-$o$vmr.^X;3MՍ<\L44SLUߓD#:?`D{Ÿ$T %Ln;;yvIxN @_ޅ +!p =5oinj\䂢B#kv%]qHTYG Q&T$ɿHDFTQksfTЫWUp"HYɱ3L&UP+36v``3&^r "S-R[8RG[WJc65RWllԓIj4zPTϬʹJThkCh,FCюx2)f9z}BOe=dSkUs(,%u6lH].B"(n_%!jd7SKd <$k\6w}'zETI^BMS3xqTdfh}La3>| CV9hR*"UhTx6D4+g@i8IaTB-\ʢL{s),~bʛGZF K3F N"tb1(tÜ g"1bKyDCI?]c߰I,TM3Y\S=9a}U޷DcTV$U1׶&ݡVO QoҌE6㌜b*RVTmwHʪ()+Ѩ22KIjb0_tN UPpSj۰D˩]ݫL+ڿ~T}ph-%YRTf Iډ0 [Oz?&KD":G 'pG] 2rXlSEUnU'^jh?kKg>oٓ'oO'~I'Dg`2bbқA (T +qFQL)mlBkA+Q |> 5KVd"V`@ɥ'*ӤV+fo +l&oHTp2CdID)E Q0AI*(/+ dJK,,/qG7]m;˭WNlps7y7JK?ߧT^^rgͯUo`_6Q?Ht>\t\@Aj \/-ˬ^`69N:wN)q01c(ibǓ(9bHOGiس69, D8]d*rÛ.A.fN08r/Xx +N +疗Z%S-8Hْj}j^}{:ޕˊN~\ +H;_[c[:j'J\uzBG@7<>nr_k]FRc*9s%У("PPFcg\J#n ZZ^ j0l /r0Gd/d3uM;/ݴ[uG_dx;0è[F h/ >/5tнOAeڃowMx05<0iVl"A^ JARj<ՆfR b-P8'e +ãm.b3oy|}ߵt8[u֦ +}Sn(uc'?j,jruA~EÈ=q! +Izk$}=.b M@[=Uz%=PVwU,v^E^TWrN-^LQ~c3Pӫ(= ⒋x"( :ïVS1u3K.POd˳nw_ǫBLqu0߶sK/ϪFL;z΁NϊF%2Yy>zْ r]Ik}gu1ewv{jibs~{ju3*+xgD*b&ǞJq03.{WBfa#;B;31ꒁ<ɯa쮴5ג`M/> Lek\w{\hIf&,1MɳY 6[CnMf7o!\vTZ9hm1#)!OS/ntw1Fhఀ(徘X{3$fB61͸EOAVrc1SFo!;)(w"e2kRjl1}jJNW:eX vvHU B| ; t"gɏksiCKC^*9Mk-q;5ɾz=1KN4y)/{<{-w38Cqd8?GL0~ZېqePd؉ݔyyNp^zufOCrMg Y&z˱͝Ig2&s2&İ^|A_H|r-R~-}Ph¬F:p-!=>F Á-{,MQMdbRriiLUsR߿!裲pȘhO]D{m5ǰĜ4u2ǘϖz6b^[~BXvy2 +:˘C~D fױKu6)ֱ4x9!X{z`zx^N0A/% $6ǟ 5cgX7dlo/qy?EJԋs<, S1}A'QB Ǟpk%i,gBo{5rbM0kE[~{cIUft@缿Q+Q 95st;AX<<;'O7Ba|=۬@bEľ 걸sm<.FƯgsh{w[wEmAK)!IC݊;q%W"Ķ >\ ';Fb#U`?ޡ +,20Ƚؠb֜)Oۛc>}F~'S*7Y89B9s992 1F_WEcjDŽ &mu ;0Os-E>h铿.̞Z[}fJ>ёI4ќ$_}XN|'?%R;}ܘxSXO0lb3] +6<;1M<`(QHMx󤟖y%C>DE^~S> - iT2/o;22!vaqxN/e=\Cw5V.5Rֱ>I|t@QjkCnO.u<~sD6?LJ/m175&};*c,봜X݅c9f:CSՃ9Kj{g{z)5}cNzs}-b8krEy"p~u&r>-WE!#D!B"D!Baz94u:VZ@A8Alg-U&RxpuSSiF]o!Is|7}ɻ[V`:qmOmfK)cɖlw5"as|''`Mp#g/`ТP-bI%MQ.DW6xCBhἮ uA е֑:]S]>0BN\͛\žho"&ǎ%X"KPѾ,"r$1 7>=ICCY: QY D( % cB?}p\s㡡hDn 4&pQ@F$Q% C艢Fx`V9#1^8 ;0Bh}0uB}Q-5O`qiSk~.}y{_Yv/ Zh~C$"f.ؑŧ[$ ِB=e Ai\G<Z1VNdvγč2&;`+6r aj_5VISi* r.8 ܓTߕ=JMjSF5U#)B*K̥]){L88.ByK<_\E1~')6&GFL|g /m4Kp"?Hωqyzn98J('.8u`YM-uni6nQfV +6EeE*hA0ό-TՈO/1($ŷ$VtSb$fDHސaZb5nݴY!gڴ]M[[}R| e ln:^ʸs3pno~9J x3~Rr]R{U+~e@f%WB(+n]][rR,СvZ%QRCk}vX: ϖ]փK /SKwMK9,2:5\X +endstream endobj 14 0 obj <> endobj 13 0 obj <> endobj 33 0 obj <> endobj 34 0 obj <>stream +%!PS-Adobe-3.0 +%%Creator: Adobe Illustrator(R) 24.0 +%%AI8_CreatorVersion: 25.1.0 +%%For: (Annie Hsu) () +%%Title: (Label_405688.pdf) +%%CreationDate: 1/28/2021 3:05 PM +%%Canvassize: 16383 +%%BoundingBox: -1 -1 273 545 +%%HiResBoundingBox: -0.000030517578125 -0.000244140625 272.000091552734 544.000061035156 +%%DocumentProcessColors: Cyan Magenta Yellow Black +%AI5_FileFormat 14.0 +%AI12_BuildNumber: 90 +%AI3_ColorUsage: Color +%AI7_ImageSettings: 0 +%%RGBProcessColor: 0 0 0 ([拼版標示色]) +%AI3_Cropmarks: 0 0 272 544 +%AI3_TemplateBox: 135.5 272.5 135.5 272.5 +%AI3_TileBox: -155.60000038147 -109.599975585938 427.599975585938 653.60000038147 +%AI3_DocumentPreview: None +%AI5_ArtSize: 14400 14400 +%AI5_RulerUnits: 6 +%AI24_LargeCanvasScale: 1 +%AI9_ColorModel: 1 +%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 +%AI5_TargetResolution: 800 +%AI5_NumLayers: 1 +%AI9_OpenToView: -733 819 1 1741 1041 26 0 0 3920 -135 0 0 0 1 1 0 1 1 0 1 +%AI5_OpenViewLayers: 7 +%%PageOrigin:-824 -268 +%AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 +%AI9_Flatten: 1 +%AI12_CMSettings: 00.MS +%%EndComments + +endstream endobj 35 0 obj <>stream +%AI24_ZStandard_Data(/XGP|&@B;uw'f" c\kn̩(CRŘ:\Enh2S C t)#&khMiϠ) +'[uz҄˭7NaJR%RvI/w_#&Bc7$Ǒ2vJYTHO -(w]_2< ڪB Z{X@tD Vn8p!z<9$DC"iY}oD5:  =dz)ӊDB[Xs\ST@f]ߏ]bցx 7[C1]]~]r ,^]80ͱwҲm7`;=L[-)'n 'D a2-ls;e{2DE؉N܉Zi2EáiDz(C,LaaXE|h8w6IdP(x"̶ϻHD"ppDmEá[qTiC*Gt-q~;]L"2f85]<2-&88ox;!-loiloo71ɶz#bZ\\"L)7nXFǸ"w34="6."pXJ2s^ĸEwù߹f9 it,RJR% ) Kf 9<۹D%O>],`10@̀#aQ‚h9cSls؄z`+rmw*{N9M<XIi1-C0 8=p͵*o<+‚tYEPsB9`EXzxVߣsYz`7ID䗥G'_~O_Î%<á$K8/Ax BhFj 2a 8 F[F/z%aGfYv62@X9Og8<Lөaˏеq +Fᤞg8Gq9|n9s8W3=%(NmDF, Y#s%l ;ªRZYp/H ȖZ?: lwGR $?x 6~X. (1$[뾙LU[Hr[]fIm +cQ"6I/b7$ḍ=BԴIï;TKpS8VN3R)VYes56 , +K"ӟE43]K33* + a Yz6H\̑zK>J%3߰1 AׇFsoDYt2b J[$%I"1Ia9G'|Q=>^oo옘w4'!ѓ)3铙 )lw yؘ BgR߸A\_쯤 Ҍb:=b=9㇊GHf[áCKyKя̳ 4wot"=p#j;5E`QH" +bl=e^ZT: +Džw +jXrPKq5g>Hf hAcPaN^<_ҼcQZlKH _g8 Q|tu݂,Lu0$[O^Osk ax[#WF5"hAGqX Q" Q P<ԯ$Y4 ΦN0d/Tbw+։"f8dG CT(gmĞ%O(c ci,,]Ddywzk<0TodU$CjBpGPf/_-C}RG@9ǷW_!3&>ub5xN7ۤ`N-UP+Lnk7ʔ=Jȫ1)*pXiKb2(FS56i󖢛$"*: 3 +ڕ?p<{g8Mn2T#mwyVbT6glL?SI[,7hrTUk;J[Q1曢H2堋Y oZ8a+CNs@s{)Bzg8^)hqZ `xB4l-XJk. )>P ޱ;F#=TpǜSKڌᐐ)3/{~A Ixú3EBK'Y4`j]W!pH弛'm@#T2JP`NķOfYʡ$44l[XڻR#DjD3֨nHWTqʈ̌;iPyLmc\}Bg8, EBf + j,dOc7DfMr؆8uMN0phIG%HH#0@- (I|l]$EHB g`z$fI)&PDCbͼ qZ=m7>v\a#Cp +Δvu,\Ni,ٍ:4wIB< jVgp;/sABۨ0azW}pUSzK_CmĮS˸.bK۝. .8l*:ˣ%98U[ ZXVڻ xSڰ&ΔJ|u „mrf"[固V=OeymdFi+ +SC1MhI;%a7!,EI=!RU`׉~|n>f2/nDTM,^B6P/k@O(=RPkIOoڣ?H\9Q; ;@%:}@ZBo\4o?6oUpf)beEg&N)(,6SBJ?d+4Bsw"^ +]|:ZVrZC3BfB~cb}je7~ W(%2Z)9aَ$jr:rz'ro\Dh9'H߸jbz30@8$k锎2_O<~G #U$Vo$UabN7} wF ]cSҜxCs'L1c%qÙ'U6rK|t85b2pftXjƒŔl.ʕEuzW,z!یK"ձҕ(xkT#-Ӆ5}'o%wZݮ?měy!$~NlJA$) ݄nۿG9!iq#3VrI  +#tmXR̼}"1fqXip`?!uQ*T2e$* y'fFhI%GXl$LJY0(idI?y 9]D]lD8"~l%ao>J،~pygF8zf˼iom޲6Q S7'y}CQTz18itts/엏Q1Lniq~arI=D7uR3_IK3B[!1|tDukf[:RW㘈}K&)(ђo8F\GW >nH %g쟐6A}sQafN@JܦD|Q(3&KDulQ,v47 5רXOO,)m)` [2$:dkrZ:[I3L /}dѭ`1DoT?#Ytv1a_PnIӊ&1!JTM"v<_شJ{ƒf49P:F(C g.γt̺@9_2E6IՎxƕE(7s)wAg8pBr: OPNi-c{"x}*O$m'(0$Łr|>|R\l}S+7bVq2\;S6G{S W"OyB$ }ZT 3w*r %h)vBoLJ;|rx #R`Gl +\L"n`U?dϑ35H<`(4մߨy1fޓ@g804׊7k?OF-\'%W z½;Ym9q>LSi.4h"+Ix7((+(nH~هq{GjBwQ8KJEsp0;Ϣ91e_R>ºZYdbυÑ,6;j/HKIR3ˇJWKevXb̪hcVp=^2R1.~x#d!/чЖ} ˍ=R%B&:f"7>&uİ/B,mGE֣9觛F"+ +Hl|7D>{|BK=PJbjיqx6GfY O1m'dBϩ@Q9&P췯̗k@r=3g>$-Z +ƋzxM#Rab3!RY詌_bq<6H,b t*1F|mBJoILb}:aGh"F2[:$ᢰD(| p09䧮6Z쇐Ԇ3~"-@?4]Wy1h}Ȣe[\;6j=1߂Ѐ1rZM)dQa 3^OY͙gE,vTHDZ?4wuK,,.̵͋ 7Djo3$_ʂz@R걻F2FE%}Ɋn!ҍAKq1IZ߅ت*gުֳ9ȩ&a?EDJ@{ѻs$qs=O#'OR߼ ZlfXRo3F)s W GTծ SmK)4mSy6D[ٺ~ĿaBo'biP._Phhci75FhnAbgk)422_CE# WYilFtS=au:Fc]]YcBEZ]_A_ޚtTدDܠ|Ļ`r(wZ,Y,?od1J*5 ),,XWW{p=xfCM;yqYqhzJm.()YPA*m% /h3Rb`qC]ɸH,AtyJۄ7HN;{ÍGmR"a6_P6pxY%n#GWס/SCGwห92|Y؎7R4o|pDZ*#oGxd<ŏgd9ro#z9U| ۘLX{WA %W5-<9aM>Z/ 'Xq?O1}}ym,8< P)Mt8yEbD]}\P(z2k=߲)8GKiF{1B4$b\ ]hd p0egtu,pOu DAt0 /Ĕ p + w}l,0Ȯn7y\Uy ͘IW2(H0+O -;Sj$(ɜFoK#Q +g`(.&q$G$fZ%(3Fy^P푏Q+|MQG4-* PBB(cīW(M91g8@2X4o +J:2Ua*1*pQ`t(t/fc@i?#Ze=_%Ҍl|#K S;h +4DNP/ +qG&dF¢1I +~'J3 +IF/(/D=!<'.a )6uDա BoCL ^z|;s3>+r='' 4J_ +؂vPzV$_I?׽f:#g٪ұ?2Р,47H%&.X\J ."~@bHm_Zطt*|طx(5"~ws/1^lPMfA=p +EtuZR2(w]ZY}dތ| XJ~Qs+q˄%"WPU<*p9LLŘ76IDHHkOeOud9:T%k-N߃!crfʕҋ-s\ 'ׇ&;ay% ݤg7fb@|[_-vGE#Yo׀-mxԖR|\!k7h@bM<D_kc6[G 48$7׀6o}}c|d#?ji%g_k*DWTbԺq710߸2UQwvzՌMNFL2EϬmKphP$1*w?*3g8̕WaU\HH A?h]tdyANxWU=tQ6&Zo$|K?Xă&W^j%@&3wS7Q)ΌvRD0B~j,XG}77̫LA%<#q}D_NU#8'jn%ĒE/z|c/dqK&RRMñQߨٌbL,* +F0 5@x' zHTIxCœ{~ZItmKKĿrnAEg' +RVm5),)_ZTNPr~Np'Xv\ѬV sZv [9m~"Gb$%+p{#)^aVoE#YlMuZF-C҈ӎG-eH-?;%E*SMLz=zyhAcqueZ&B|e' c b 3/#*mO K4{h峢+`}K35rL+,jv[7[^\.VO%аyo&n\JDuS1t?])~]\,(GKbgv*ѶqtjtP9Ɣ1dhffh E8M@,T@T,2$ c0, +X( bʙB|4QLWL$ӓ)Z.Qw-(GuN{FK7H-+k 4Qlhƨ#fΡ9&$?RȾ̓g+йT' I.ܟf}1&>e&Z@£-}EczٯBwŷLlZ_8nCh#؆^&l{Gw!7w6hus:s?֨ÎՊG3ԏnE>0=%7guT=@LIL2MDQ# i%L ҄vL֔|~4kNy7&l(436I6Z'U`MNFl6/Iڌ8:%{='e\pvrfcsГ؁qJrmh~\}Fgmi)yΕ[+@0EfMpos5;H\a-P)蝁qf0 4x)h x߯ tUz o3GW!y/ [) *fmF^ԼPJG6;R"5fPf\ʩ( _׍:r7S#߼Pamm8C; 90#U$f]mc)i>(iNDGC6&@ sp^[ϫ,g tN0(?[). .7*6U-Fv-&iJvM+jOpYg%~xOR05Vt8YL?ite+1Kj ƇnXŗX3ƛjr>xS%_+ėZE.AB0z+aـmyox D['jQpGz']?/)j7#6FV?Y+P@'@jny8Oj? .m +r%-Pad)LDl [FK]8W ۵ 5Z}^ S)^xa|ѧؐ9[PIE@e_+.YEG$1ˬƆxV1f1ϵƝOG:ag:و-B!' >V(Oͺf&Gi2jH׷6=DƉ+=>(Z_Upc7'dt& ZwH}20D"b]4tVHlIOFNs#(Ƒǘ +Ӧ.?RltĻ0"žo}|,TvE7t0:eI]"^\_/P5N5 US~9 dүv\L{¥r\#pո3Gز {_)>HHYKMkCY܅rNU$5ǕydUXI쐘R[\T Np GXP/{2ϣS0]Cگ{єfmǍ4(!dAF7yw¨͊&9OldDϊ1LPjg9Cmǜ)ő׺AbKjЪ#jsk զkb.SUz(V0u%6⣻A0_# 'Z}"l%R gvmox:eI *Ld<~ETTMI4ͬ܈Ν-iZ C\Qop설<Y|_f k'5C3fҮ9*KؑnxөLE\Kc- !W,!984t}U\5ʾN.˩ R;|RheEM;sz` ж@.슁e\T&[?pT\7n)|L `ы ɩQP^LPfxM+!gAa>_J`+B faZ>6t^{.JU +hKxM]g bQ+&y^/gxc/[f~}w18euތOAL~y>21bPFܢ\%V'Mk\A]hŕ_u/X3:#U):#aPP~viuYfH jqN>fW0CO\(נ^M`Q +v _ebá-GF𘨫=enNgDOu@ +%Tl*wnT qk{BZFe]ݰ&/=b=+za3miنn'Hл +s"8qBnLTuk.GҡuNХcD>]Dx.<g-;3r_I!R]o>ֻ+Uey\! 楊>ѫ/s?U0Zw̩E=Cp 0PJXp4;GBjS;;dbC~T %5]XͻY/BIoaC8δ5銀f^Da/bCV׎ECy H'Wl)VXIHbvЄ#rShv-/DmNraQ +uXc{4:4OeLmkt&! C_H4k8̴18HHVzY{EP$-O⡣wutE8'D]2^ ޼3u篐t{\S6jp,cE|>G@_<.蛹t.oPy{Et~qMo|Cy9i!J(j*P|)1PW$t%Bk(elrRV!wΪF1_3T>nKFw$~"$2l@}CwI(N-2`c&d5slH&*xQ"  ½vcE=se^‰h{̇ݤOrQ‘2A'| Q4Ybӄ)\[yВf?CȌju\vm,=zkc+26#7_U냹oITeղ6os}0?D"f[Ԫ  3l*ylýn{C t/Rk/O:pnڧay)=\cW6se@,/ ՘ +T,"+~PlbK*}ـ{% G{_'~*n? KgPsa(70k=0y73[>E ,֍s7sV-q V>cZ>X'I$;滎<ꁹb +9J  |M \ɛ&껇cO?) L+ghc{DlP?N<$1,w ߯s-_3]J]hWo!X8Nu|e|$T⨞ѐ ( Ɠ6m6qSfT( l@sqdKLKI)^V1豉݉/RM@%@^0?f3jsVHq\g%@~[S˚q?i{ #9͸Oҳ<IY!`2~*=q6P!J05bۿ//|Bѕ.%e/Et|ȆG7Se\I |q.Nrd ~|@M1({Qg0,%[X+A~p腠EBxZOG-{V m^ A1SϤ]֔4  f11 + %El_tGGfc>ѝ9U2L oy߮> +8<J O{J*_b@4P%ULsir=Zj@1Ҿ%u2pÓUR5WtB98VɹUT,Bʰ=ר( (9~5gl xX"]sqk_%S\[`*},/Sawݞ7Tr+ﱁ[GȖb%q2`4-[2^! CCfc] + qK]ˣ'[,;VF2"CS_xxIpYR0)}@-a{-1Sjqv/č7}IbIq O:UZQaxp U=3F?x'Z UTqӡyG (?T#;ǒφL-F8ZQf~|r57TCң+\9ĩѣfO(MFpPݹ&rbAPMPcule[*z )j"Z1ڕo!׹SWi;vQ?``0Aor&}WdE cRNn)oN Ť"!9X(0NImXLJʂh$I9-5?N1\\1VM +魺9ϝy&ehg1ϫ[IQ ئ +97qX@EZ#) @~+B%!yPdJRCTJ$6&EZj*#K`sCiEȅR=E{%0NVlEw'GFD +,;4B;iόSC nFеsBi0.JOJd5esDXLA\|)ѐE_jruEMY46-K[[Wx1ǀ_3m˅qJf>9EL}m pTe昁a% Cx=ۍWKgeJ[ ߧfgE^{BO!jo3*%k:+Wo +:+ٞ@w!UNuxlL^44vٓয"JTT$}Tp #?K&gԣΚy~ +iJt]r(d;V6&±s4YEJ)y$'/wAg5WɀQvo@;]PhcT$jnScx`OL;DZav5p*Rq!G 2-Vob? 8a8C<:RQN^CTALTŤ. +t.؄BR8 db.CHFޗfz#80p5>0g dEM=.;d[ă1;wځ#*3^r=EQPi!%cKYɘʄ&Z2K8PQY_70Gŋv7emQ _$ð:w@+q/bm/g)q/f=Jm*l3E8{RQ'S' [9_#b*b׉ĵgFjF^in*ۊF~dFKYL1,-(xQJy9X)A}a66Akݐ|TjM qqFu3҂dX@"UƪWprR\XGgJh ¿.ŇZIJ?|,4ŸGsƙéw_tU w̌m&6I"源3x86, ԽpkZdy7:'O[]1!c*$] ;zEt1YVHA7\UZ`elT.eXH$eSݜq;UW|YJ2j}+ϥKO7Y0ͬ6CU lW[Wbq̀꣘ɡ*|3k @ed`.2&_\\Lmil |ggՄq͜䢚Ꞝ_Ւ|C +#7ku{yj)w%1&ȷ26^/C$wk{kÐSD`@jbwjs/B_z0;SPi]H4n6-ƈDb6}# !#Sop*2j0h6b78@^X6b-(tlv^_gl Wػ,jM|!LN'珓 +iSZ0Gp,Hکi.^cEt`` 6sLK8+;Yy t-c I84d"vd9gc3J KwB [sGQ\WY]?w&Ί/4RZrU=ڍ;X`Qd`oߛ>E{U#8Gg\l\qj͓bp`JSbjߑ sb} Y©72RA݇Yw$ln~ $PX!  AσFxn&9ˆfexLك;(zfEgW7)"a aG(6P}.8n yb$GՄ*J}Q\<1꽥s8 #d$},Iu)^ILsK?䚻]\c3guw[4=6Vq }m@EHST@1YXn`t}v|1N8.?u:ɉ i\j1qa?R_+Ty E+CߪSEf"2KLp`*;'Ai5iϒ9w55yGCG;'$ +/'H7sL¥ +(?Qf%lM q:uqPk{/{{짗rv' -xsYz^./ ۷]YG.ֽוC ,F8òYdש!CPwׯ<X?h'c;by4G7Y #S>l 0L;h\uk qtdGtq -#*5$vȰ]49RVkjh{dJ;P4 p `|jCx-ch2y۪K\DT#UKKKNo0LgVV|=_?M\q 9Kw\]|NA!0͙*'(RUh 'J@aE7+ox+S+E5k<<V }ïʩeL(GΛc]kM k.(9'2BTzxt2pݝ!+z2m=BD58\d E̋NCcXh!#F GC;6#™QqRJ)?wk1{ےD I9au/·|Z u)0{}G>̊`lb]?~(( 9{?).#vI&R`BkDu7+UCND-2#qKIݐ 1񈒵?[AR"DuIv2bf>)>HK,d^ >! d@ +6ȓTFЗd ȡ'pߏP,*4w K2k[ XJZL[ۼ0j .@/Vcb_it'󿲋l St. +¸F8W鳑ۈPƫpa w@pB=6 DzZA5(YU>[&xWW(MZi0UY_7A +ã(f^s(owbfCgN}pLtyM$T!S8Q]eqe烯zLqc t_G6$h~HOHWIpGҐ|$NV 1ÌOc%i+")SqN6O8^ oa +~m6˂\;`8ږ};Jp,6;ӋM G&ȨO#g h +tG5*SvV.0"ST`3 H.wH8X + YIh vGb\M3|#5A}>Y!uvqx5F]py.2G5,3q=wMjςxC/on1TKRiDfcɉ;'8c,(ΣW&٫rf}Rfs +ZL,(k "\%o5Y>)'0.tC>f*Zy㾺AᆃT?6 ׸@3}=Xfޘѯ'{M<:uNNvƲ@z/DЌgZ- ?AS_a$+GR+52r5Eʖ\^k%s‘Ƨ0]\eOH!G>a1Y7|>$ፁo햊nY,2 Xg#FC>2LoH/6-$ <.L54ti~ɌKtg0Ens3[cա<(2YeH7˿ĉ`1W1vd  +^Sk1&e} +}UH(4); +7PRgZ a((ÄϮ;s¬ȶqzb oO28r]]+Wfu~xDYtkë$ܬ D[KH+ocab|cqlL44d'ƴ݈dHhX$! +F(',aFĖ!)瀇;qex'aL7QL(u5OÌqHT[1{֧]ϸ +jc.~/+̻!\EaTF̰L9&gye+"!i~"]3n +.ҁ&ͅeY֕ka ag)}5t5[igI)@.^9Rsto0G~I;F)xl>@@'h޹fq HW_WBAXjKٵB{wg;ڊ~ON)O~,,ۢa8UL/..~!C (zء +947z~tTi+%N-T΁~FV1вQqF>cEPf e7V>/3` 96iy fHNe@bڄ5@I5z^Ӈû~~GU@$QO s22rd` +8}btZa9$ {I݈0࿵wԈ9s;s}ZN(t`;'Y G^ѹJY&Ci;,M%{'t~iD~y {Ls/3Usjqf #dmqx75ʮ?yD {b„`ğ$EM2Y]Ή[,<s4Z4lRirݦu#J T&4eTC.lҦƾ4.mW V_Om Up0zT9',RȠa׺-. -8nFN\ ͢L.BSPu!pBP0,h;2Bec dT8esr,ظnIv>"#T{@#?jz:Qho6/mIJڱd x.TykAsм\tlAhmoXKzn 6~4o ("7ys>~A`"Wں L=,zM)di.Yh?uǃ;I.:9{"~ɖAC.J^X&#|@4lWOefu"ܹhB=QI420C8ҢyL>{uR`W*ŸJq5/%z_K[P{b`c.F-\ƬEmlGMa'F?$%iȴO4SP~el`Ʈ|/ODYe}lݤ@%Y5 `x;YW"o +gH|x&9ۖRnآ 7a 3S ܉q +}znJq*gn8L@ٵo}6  C2U +oW^yXV-;ɹ&hI0<}'3&,ytUFݩmǪ* PPЄ} +hRWQ=pX.V,,|CJf&{͊v A俅VKnZX{`ᴥ>R ԐF&4u@,5 *5My)yJE,dHp.fk~= +Ry[Fڀy51Mqr IMB^raY9m'ìBPBԽ(g8O, 8(K87JZw:hɧ'2BTd7a5Q-e+aGHVytdȉb^bhnF;N @ E@D!9Q +Q#nqdžEɒ(z?6DmNJjnq66f4JШ8Cx:;7GpzdKsEwe#+6;xda<[yTL-msq7$!\ 4B謎JQb.bVJ2JtW?8>L Tpw~Ҋ ?:`W PɐSKޗSN;Զ5tGBp 21V&!6s>F-lj +l||'ɯ . Is,cUv㣵Δ]-МԶtWs٤֕zT!9(%|nKi~0$66,#Ch<ː՟yJ#5ߠ̏^ +EyIu=m*Mf)QXCmjY¾;xrKUH&k_d;v{֏&{Q?&u|̓*KsqiV?kjǣ + z[ gRLZjԘp\z=?C#<`*"\nWL*erSU7$*6 l+0Fe' yF )=aV S%fO2,=֦z1IG6< D סO(_0 !%՟0yt*KR+~֤C)5rm|#;v|(1 =  +=$701_hp%d$s`\1?ZX2;z@I{;j2x$8i$l)rᲠG:6}D1X'i0 !x#%y~c%9l"GQ +dY7v ]#'>ml52O5YIUo4'h#/ͅc?sPUvGb;Z0=3fԇ؆i"O'#'". E *u_])DHȹ>Z@7w*Z+|,A᭏"ԭk +`’XЖ Dx +*K+xA=R7_TCB|BdcIfpz5v9P{͡IDQ) +yA13TKrs/4mJCPK6>,6 Sk RBZ,ǻ&6$]+'6=f.lw˿MY>\^|R(1DJw8<qq OgF&7H>bFE$4CD8C-}3u+"%OK +yc9? tRgCɘYt8(ޡBpC us(4tN7;8*}V0ڳj Xw$, + ЖOK8OfrMss&֪>,E]/+ f*/6Y/i~=SF@zc ]D54.~HGpuEZE8(#%1~j2s}GK?ԛX XH!sAlR C̷e,44З. SF][c#%DKՄ&[aIF.ӡMYADiqit9%U\:x$@u0?Қ&Xz'EUEwΧu_ES+;&m d<'Is ܵ9rd&.mx__@i #CCA_#W?.ӰSXnsA1RaPWͭdGPQKȽdȭl +Ɗ.œ=+셕M9d;xS*7 }fowUG{0j}ڎX%Ѯ:BkQm|[3Mzz̹/ gC VB=0!?]ZρiqD +8<]7Q $I$RJ)ޓ +ĈPULRw( +6#-Qb"_%t't=y(Uw)dX"NKuk fOS@ckb$RHqP:FJq86H^X.*4/ZR?ZE?mJ,,$a<D0.СXf8G"dFzɡG \ÏE+cC2VZ' ^P奥*X@*Y~\(18#IRnTbcX^b6%Ym,q#hKq`{D Dۮ!=D|>Ţ|6Ocn1b&S&MF#r%1A XyyJ^(-Ϲ iƚ)K[sP3U,Xt32OKS?󘕆py"zQD '_66$fj%wH4Q ԇϖS<ρnlcgyQsP𸆒[T?d T:LU'$[ī2w#u*f׍:"WZTxB%&XkZd*V Q}- :u! Lj9 %sJƊ EA@RE:iupinZ /TE4xHt^͏!R2PIe|[*y4u*!U׍pQl"  I0p~D{pOJbyinu@0Dc +;%%K:1E|“Gyҳʁۄ@ TQ'8 C|e.Z4(L>1@&L`Y$#aF: =Z6G$Dx%4,x|1 "\C .2ZFP?`d!bc&6jgMܡXX>yT "$\"*hH<,!EL7 +jޟ0OoT^7E3Z9qgςq(w{c'$_6ej`w1,҈Ɗr E=E擖IIEd 7Qbb"(h&")&:qSjĐֈMIP98[q x-'HVFI:sc yҠ*pp=fR; Wrf {[rѼ҈* +?a  IYB4y"+'L(A(9 V%$>GzlD C:Mc&L|6$c,P 8WBE-#@##j\9h 5VLGxdži9n@ DEQGR&c&sNke1V1%5,IFFxY +NAB'y $=JX!10kl_c@ʡQ6Y eZ\bXPyQ-{0Uu;-"̀X,*+ۍa(8km'r?2 6ʊ:G`aDb1|h߬~3 SqGI|BLX[ȇTq[hC0N !UpB2шKy%FQ7pr'$f\ʫ!RuD +BI!w-DH!NQBΛ&T:@r2d ȬC]@> ,F>%RoMrU9pPJJ m2 R]>j%J:%H'&wD#FIzdiP!?}rhF?zQ} ҚSd +5 yEġXh,I\ZC5 @j)5ڗ("o R8 'C89X7bANdtÉ!֤ZSs|cTp#&^SaA У !AJ\4jvcbȨ'D`#/zq!L@K,Y# +TOIρv:$^P-1%{N8FӼ*Hpj؄4hX/Wժ aAHM4LLT_ B!GHPp(:4f"& ؍Z.94 :CxՒD5CCǬE+$O+%Vf%mVJ,g[6JlVf%mVY9+KV,ir6+iVhӽ̙Z+uj)tnM+unϭOܚ^gOV'jg7=֫_=s7;?kyZjS]);}w[{͚ynV=uziҚkzt;3޻1vf[]gZۛK;RΟ}L-v_:/N[9yFJ蘈bA)e@D '>QrAa:UE! +WzCǓ2 TCpͧ4kr1: As\:WV[#!Z\g9k5ex\=y*h'kn7KvidB@}>ceѯ\,W;"4&;UTpJИ(T٠C EF&cU,u#Q–"0t}\^0Ϩ,{JtKsmYlG2k|n'?'q\ 2g;c[FQh0U@qBC ׫Ci'i\ +Uo +!8B =*H:7LBiH4j3;u'؝w>~2kq@~H2Kj%aPeD4Dsa''dAiN\ʧH=u&E=Sױ+D NAizeD.[2:,)yFzAK3BMKAI +t=kHz' kX!BnEk,A{S\5&Vҧ]O-=WuNZ*ꂴN^2qrƆ(zծ̹֤@mK]8,-i̷gao-n9qzPъu=)XFJ|=5û3B鮣w۾ǜZs%ᅝ@_Რ!kJ(&;,>UkXzuOCP{bS\3`1QN5 o#Z`[kZn'8Z揪sZb$rHݥ vαY10|R}L<.+t\ i VC3\GкSR +b{[FK`k9"35)r}w$YiI 0:&ڲaP +_i &37D@=-@۞)GѠr S#P +Ɗ= +30.k} +c]P JI[o4sql_Fp(WXq:Bltbe&OH/z*̍%jM23%^A:eK?ˊrWFIxifnSʠ Qbk``? ˊr(Wˌċ{t~W0g5&0`e= ݰ :>n,! {'ëXn,w'z)f^MX `Mw,S`NG/'aUuӮ[<[]}1& )i#/I +$4E[ >4kDW3np;Y#Éu`dkp=gw>Lt5z`WA꒪ Ƅ`7go=TbLSGn`ָ0\fII'طּlneF,|apAl>2C8as@)a>o7"t\&*ssӼ%<ӡM[ᄂ?Aks7XCk&Oa~HbWdS< +uLN˷],`8';E }BtʼZA@ƂZy>&BboQM|N-KR5GͼF7? 5ol}=O + (b=)+u +hSsi]DO f"tHcI+ +J8Cw :.`Vnq6sG6ӧ,z9zFȷCǃ#ZYXkQL .牵-Q#8IuƚI$X>uNɋ'XaK֨`^;y5*k o^]eJwθϲy~MW7yIPSg>x`V6aV/,7\G%ұN+g[ w;8cɼE^u ?.ysz<Ρ24Ø_uDk*O\Q3Ml DǙQi YSoBR\ UHE4;[N4\DgFOG.l2X*6A1ǺKƿiǧK1.a #\(f5] sQP `FJvhAδݡB%w .9nHiL2η\y231~V~)YM RxME?45uPA+ڌ;eqS"kK yLE:cpB:=ouJ#⚯RZ<@i  E-;\jdq“2kXc/?,[h.W܀/׆ `9gX3Zԯ6b{ot^ʇpAf.cL,cBqf:a :WiK冨S"qG?Sa.\StåV:w7,])<g D.vrcFuܻNd9]"t>'2NFDgxJ:kXdz3u\%*ck8Z@o-g@j@Y2W$-xQrX#SC!i $ +*`P5PDT- [^lY5mS6pRǙ *şBq[`3e +Eg[ۘlr;dGFV@[ c l`V|H6ѝ X;W@UuֳH=_d@OtY35̕@#+Ȭ zGf[#6!:>oy1>9[&!~fD(VW@BKucgVO?MP(S4O̖w R۟ R[0*"tR!J7fy@~LzUQa{G^WIVî?5~\ g?4$5 wªEZsS"#1SE Sb~`nIFHHҥ)/c%&3)ӊ¼ufM!̹;5uf~XC߬c\Ev =F1cY䅇PWs8x"ldPڟ0(CdX IMjැL.<+H (U7: hw2W0(O%DSn&]v"'x w(07ph#,0@"AGg$XN9Ƿ"\bHnW_$J!?~p, X+ьI0ahp ^*L6g0n᝾7ԄITFG8ø,Hߔ%7k#x~=M6I8S&E~0` , sU¦ML7h|CM,a" 2qޤ0;7ĀBm?ACa2(aS3o˜Ko%vlG辆kL\n.˥ƁvXf6Z ˟L;jRަ]PRI +S˜HzH=HI~gD0A%} AlJGL!O uQxAD'D{0>?=Q|ϩr֣@x9Փ\߱Q@9iUHOt;@l6Gk['D1qC4m r2(OʅltZOύ$l]UEz"A&&k6bT-βtQquoWT+pP4Ne@U< E}eҭق#H!ruODfh!ZadOM cBdU$(uw~N\T Ԭ\B[(a%.5Eusʸj%V@~>, ۺ_2K4HNā34Ǯ[cҞ?рI"X ƿD<#1'q<= wc=ۿHı}RDT'8pBo^8>ן$-[{tb{n Kl4iۊ?WqtKjDZEJ6R7U6׷5@m/rDn#iiK 91\hwg-i75ZUG0F{:9.9lYI]umEP!E4EFAxGIH'-M'K8i\5w?KEe[dNٙF$#@QU>:PV{ifdLG,Q7<"F4k> R8>9Le4Kb l& MNL檍BS+o`+겛r8ߠ8&my\] ǗWvu,x'DP/Tq#6GL#dVAAyvWc{Ă/rXW(b@G8&Z6]G븩3nd!5wBń7)xDw>eP0ADW? +9H5-x!(c;F/o]@ nzLr\rkդ %!b^$yb ?e%~t.!u(tm8c[=)Tԭ9F)SDt8PFTI0,2XFLREb\"H +XsLJ |ȵ(C>{\sC(ݲP• ];d]+ d~J)zX\##wHr2)/؄hQ\c􁹎u(ɧ`e.o2yv 5X~!!\"ͫ%2[WQq-PO/ D2V(\#sӔ#k ƕ4ӷAu~SvZQ  Gy.">_KeAAbYot\"1Nݹ_uZClL}@ʈX&hh7eס +!ßo@aZ??F犎Or*${2 xw[{c2%\B+w2d\!݆=M*\D;kФa+_˄>g{BnQLcČg4PR@'zAjcMA^5)4t # 6i WVHoobUP۫an!?'pI¶"eT= d_/m CwӝLb4D5XG[fBO~9Э=lOxju()O>2ɘC܏pBGGQW3rL*h4S}4)yPط;'ze'0znLz|yvvK%==8Dϑ`l5 @#{ӳ[noh4+O"pKDzCG3!s`z H3=o=S5=`l a3 ӧcJ@2=V=wzc5dOw"ߏFÌ:m5tPY<OYd$3;%tS>+v[)M#z~+:V *Wӆ /C+2Rtel-ﳒ䗀}27Mn=E2p'Bh,̗SFP=~~q*C% }p'|x>P@“'F%Hy(ƴgqsI Z|/o]e0 +kXL rdgaR]c=H& u"@5 v-ڳy&ǹ-&eG}o@foa m#oi~p첵!2h[hA%mm Gl#-CEr(41/1-2CXG:lb]W:#܌$e@?9}Dv)> ^3 jf[I`p=/a):&` ޏUr_s'n hʡ[!8{̾DH8pG#u0L[A-hȯO!bs~ xlzSCM й`w!o-Ј?׬i)O%@|4#QY]U'~0{T(OiO0ݢ;QpKDzCt٣y3!;=fzĻe +}8QlIAj"[`kvC A˜y/;cϊ06߆#knȣCAqd'p=!/a)ܒ7~OszN)rbjO`ޢ3CB[=1О%x=j|"Ӳ=l~T +mJۣ?S\QX^9kطGLYp'g3y'diq$|G 0%WNɷ ӧ[@{ߖ=f 9% +c=3a;w%|CGa4q~7 b Tg9.9Z0q~hP2xl~i<1_{OƠk}!ϺG8Ttȼ#>4(9ⓡ y 1P&qsGďBh N%:oepP:>XLf^1gzD%lC҇`RTBCׄ$),t8N|=AX3GƮkyqlf9-W|u>-]<AY# KgPirl;YLz>:KGKÌGiiKZj~] (!0:s X3<3>_GkyƇq i8LS瓦bEW?kKx{o +v7=1{60C5"ǯc/ !Z˕MH+SăTAɫ UH1]qՇ(D2>qS֕@=рF*Oߎ!Tg!?~%+$Y[= wzMXe +2HHY3듫I9 +uayY==X 2yl`Z$=/yJh&;> q"PRM)4?bS^6N[Znʯb"%Ǒw+[Cnyl3$arןߔTdτFRq7m~..QI8(Z{WBګzaa3hȿ"%Cs &)Zzȫp ]ǶN xNA()- DtqpM= XH -L:k:L+#_O:hn b +E'z->牒)cWŀB`ugA-B>7bP=X1HՒ#̓{~`y{sءwk. +Og yT|P+p2$z #=~ǣ gKiF:?hO9q6QBxtާpi|P|ouDo2?>'}N>_|+lS0%a/cu'?9%r~ϡs>QRȳsV):~~8Q^Fk ҕӷ=(ZJvҘ)7sN/Dk6ZЉ)C\恰V!reGlT"~K~e!.&!+_% OH\>?=q,#|NȟɏrxpAٸrT.!>|^=E='aJlq>QJ1БhS>W3O*~fetQ:sA$ᓦaQ 3Ǘd"ǥ,pQL5YMN>_EK)F!ws(p yOYe1.} |U|?kY>gdF1p򮄏?~\:"<%KQB{:iZt͵0B{_/2b4bu +pFRA#l2(E*!iq1{O\./>#5{oss!]Hsu+Bc%DlQ +Aq)?T((T>=BKўWe +\r?$|S0CȂ +'U>>`R-e*'P"\'WB"E~L)P."cHA?O4G$U? +⤟VC wosA!Lk&.|CxDz?S*WO=@D?sĞBr^\8"2%GC i<>Dp gΓ<"tWN<ΧXr ?^ߕCM%TX۟4/lFsB,R?ԗmtbt8JHZ^ʳst^4 FPyz~gV(Ű>$ + X٬,glVZOX/zK=rVO'jih٬,irVYI+ilVJZIaϕ66+KZ9+Kڬ3ZI,ҹiʒVʒ6f6+KZYfYi[6^'C Y +x ͬ|LV@a~o~:%<sE"7ZG5x߬^օ+t~| 2\#kd_@: Y|o^u +qj~|I& +?\ _es%io^͕rL}$ϧ5 w$3$Ճ 4" +=#GFABov ۧ|dQ #/ * p]Jϑ^˳G#ZyQ +3E<-2#lB^, 8'}F91L8>mWe&FJ Ix>|\:\yyN6/ +-zB]Ա\>@ф^ڇ;B& rlGr-|4oŞg.׃ʋَTV/Wi5Y*\ _՝ dQ:bJF7I{MZ&WJtӝs9_}豦0ˆi#A e *r IqzIg)ǵv' +u(Q@w_U:*7WƹUP8fAF-U4I%`?E"/%(A{!l$JDRK^9`!PABiR !:Dp$H\D}YoQ}Y* GxD`AB_(})WV7p +OA3$|O")>שg 3`#ZD p3>E&"+E'LY0t D݇"jid"Rt$ܞE! c/J}A!vHH"F'L٣9cSEXՈQkz('$ H SRB,D~YoVYTguEBB }(}\\F]X s#iV/gи@A #2"H-[I4}WNALfsH\(";OC)4(< eIVS Qno"#xj(R`D )bםP':~8Ac8 nDU:>D,K?yS)p0o&Ds>_˞yȐ2tEEX=J`r=Կ#$3W;W? C: +!~L$\ ݣh\KE:|, +rh;e=ZqGy}M%g˅*e'E蟹FA|d~B%WQw<@u$dxCdHTƠ?HPo,SxQz\cAqI=6r<\I`+}DcP?hע1FBD7RNGd\ѾrFK=MWĈ^;e=8n2hR_vPuL<4P. _(3w~ik}d4?|$OV(}R> d-D@Kz<j.Qvo*N;"d34~o=fy9Ap&~o(2橰 =۴#{9X}%?"TQYpI>1)e>5degKwS +g_i' y` eWtָ<ݙ.1Oޯl߲vsd`}d BgX˗^ 9OrqEh۵y},[Ad~3֤ Ma;2M|嘖 q4SCUe TjnFYރJΪ?kvWʍnaT8jim7|['[vC^^iߑvg< ,}lEG6I-P_g^C4j"ܣ۟5\0=.aON`]"x¡@Vt>a(8j"#9̍[C~בvdAxTL>l}Í^~s)ǭ!wмIoarʂ b^ 7 wqx +}a?ښ +qGاmE S&"M;2:4ʝG 8n} rG`~[DAk܎ET *b%"?fƃAZxʜVޠN$% nky"\ti^ 'ȩ`пah xekD3-KƳ>[!Lw>1ro{ +N4Vм[wa48Hه`%@]" ; kq)H>;<_W|EVC4ZU܈k `Qε4sYQs>|:ZqvwWZ\޵ml7HGx;̗#qQO')ڝ^ ZfO1NӶ"",>_`V +9 +o9.1QjxO>3ܻ:l}Ѽ` +ܠ==}5AWBqCÍT{P+Z@u=yL IF4ũjQOUv֢b4$4DTQ7wӶ*Q (ZE8"/ @K_֨ZEcPuZHKOkNJE^Kx2=&z5hą + AbvODh2_e9R'OlKVvtlm34561llLllL670272827148991.3191llLlmLP-d@0 v:44@FU!(AxDo . mS# $Bf!QxFmD\ ߨS^1``Ф,A@='{DK")S$P&9!`HF2!PHGh lZ#b`& Rv5"ܞJ%ʯzCL_ _ (Z"BN(t^L _8qY@NFE #k!z((YDdjDH&{-DϧlG*ԎA@K(r +9.*AI8 G!Q9.?Z䨈fu$>H!I= +&0"!3]XXC (C!@q gTMBL^HPD1K~@IEG0#{4K D$h4Օ&2'aɕ%xN6g4 K9Ĉj|""O!W  otJDIh `B6b D#d(X 9J*y:r/ ϳxbad_(,E%Ty 9%ʋnD di$"AHx?Q\B+[|JdM~TQ E~=STLB3<qg|I#e!tjG+A@&jNDL;nD~3H!:= *U~ q hK@$~E."L=G5 DA75D$h Ttd`RhGyn%о R"ABXF ݖSc5$  +9K=jr" \F&8^jM6"#"W о p-_/7k5CGNE7h 6@Wt"A!%`4H$tNؓ`"4 $FFy߬O1,:!C!$UӑH~r1 +I}Gײ<⽡d5H D@OW4"$x s4M^# (K@聑u OTJFDd'BI|1v)~H_L"Q|$>JIȞ q*p.3EhXG-r#* a#?ψe5$Љ2r +{F(DG (p$Yt3GND7 +vKC_] Oi2)p svh\L[;N(n#}F#@@H@ɧ!"_JDr FdJ,И: +6p; /An# O4BBJP#'<ˈW!*AB PTBMWC`\wyF hJF d(|)e? ޏ(TYiH zϨ$xKۄy@ZG :EN!O$?;{H}ɗ4{p<]_BF8D«~ /hi2)h$hO +LN$`?ϴ9.F7t" ӓ=R" D@OW4"$x s4M^# (K@~I~CZCD}N%OGN&%!v@V;- % Q)Hqe$`m98XC S3&G!5 oAn"%@?d!NJ=(r nBB}C/V3$QtyH~ aH%H!=B]JۈT`MB [a= Q)2H@b$`hTJ4{)kH}2(PLB]<9')'wt-[!ɿx Q K<K&fQh:%#^Ј%IY<26p]SNynS9(D Oh<@$ /p7$)r=B%Qu9FJ~/ +qW O(JDJ`=5$D[% ?&9%P|x)CA$:T٘MSڒ$9@N,K1G UL#1'6HCE! '* +oK@b@pBS!ѸD||Qw&ArLf/9|AH+]VG#BB͇؉8 C9=2.Irh>쒈%7r@~zP9A61Cr O3:xH$\vȡK"jso2"yPRE- 9,sCBz䔟g.aT1PODd!%l5NyQ~DZHȡ;{7p)9%@H\)ɔrnyh@DcZ9d(C~X+AZAeN5(P2!<岃. +% MڽQm!̗KjȐCdCϕ^A. E":]ȥE-l;Wk FHp@pe;% t'Yՙ(\/oBPCɅR"R?o)_y,Z~C eˮ~R.Z DdFyso(\ )v|O&%Zr6ȶ4' F'Pz|E/u$B8:~}|.2?*m70TgYGa2ݣo)RJWzGxʲ|xfꝷݳh4~eƘf%f嬤%^}kޛ֟{YgLDh@|P\s_(R&,/*7&3H` 5'HO6Bk Z~&Ef$HL?@ $do+0&6!J!LaI ؗd?p @ efqs!0/49HS]6:%2) + ""#`}JPXԷdBt( %D&){T"e8x|!z7vp\I> Cց^%^"IVU d_(Qv1@Csg ַec8pD oCD){L /ߡ dĐM8O4DNxQ A^g tJȽ@2ށ'%о#d$D"1~({F@{K=G^"55YV$xZEAEVJ*qBC}B ҷeb(D)PgQX!_&,GZb!.E,a +PD{K=G^"55Y.$xZEAEVJ*qBC}B ҷebޛDٓvA@xu\r+}aPJ`F$tT7L +̔}ZG$^ 2ށ'%о#dHD?PX"W PL3[ނRJ@-Fxw>P$ 4 =.AG {C$ЅGIԞ!Zr$"KUU2mXUUEA(.6 ;C "tN=CH(.$pYv8&&@Z_3CTTn Y%FÁ1$O EG ˑl+oD 4Voh˔Q7'S :Т$stsvp=C"{ eϨb@!I}0 +<`{ERef=P ;d5UFvI~< vSl@#>8,{AB(YݧKDRl@ect DPK 2ؖ{Y@ˈ2#I}K28hDCfe[ʲ(!-JDCjD {٨FQ>hEfQ& <e3 ;]3v-"{Ȃ#Hp+MHa97\wD +$ƞ!LY-):rL;R'K oICMIQre8,9 7ٳGXrDp@,`?h##9'1B%8AT+Є(=E8<$/!$nDec5D*?$UȜN{y$)Y2m!Ces\:М +*?Ze ;L> Yy o$ \ + +-W < &QDS)#,bJ@,ێ lRM͑3W9PR~CD/#d(1{`[:[BmEz=CK~F$GYLBDp9-oBHp_DJe%#Q‡y"+#(_D9M0n%fϐ-9@*%^"I730*+pxL #%bh0N?Iސk2m<8}ZT%G kJBWx_L +xRY rE&&{l*PCmIC~E'FULB\Ihq_D>g a{%"UW% =Y  +*?$o U'ѡ0tt'C$n 8`9,<*so4<@}%dj03@*g%} QA)pO$ GRh|noEAfi)%\|XBIF< P:M&tȌ"@2%2ߢD FP{= FF|<?Fj(y)Bl#1p/(; $*qE!ayL-xYbS)CJ +*y9 ^@L&hB.EI,ylnyID9Db&`Dd>$:_ U>wh +DS!ESWO^7>* +~egDċu0E;kjIhKAgrQK H!VNC(! dKԊT: Y~bd4TB_"_KJ>#U2dF`w oѦdÑ,PY(`(#%lo+2 4x`Nā(#*` I0LFF@%B,#QdhT U<O ErI0RH$&ߡ%4/!/+H J9*2hX&CH`b ;Y( ="@gN&K%&kC`\- %& h %Vߠ[ou29Zg I )x\ K@|Fe؟NÌ; + (x8}@R/#+i b4*/TW !6"M= "y;jp e6i oȀ![_8--pB UNH=\LJ.Az1" m.3鞘iK@.EY  i|[XWG{Ba* ("(8 ;UxS"9 wB ]JPt@]odEYI٬,g4ڬ,g~3Yo[.ilVJlVJڬ,if,cclF+ihdY`cClDB8SB? +zr"TR`U*"%:BB~ _X"JT@S^~xC;- +,M"'B8règߘFDN- 1p lbFh_f^%X~Dk%KH +*%v&)ɁE$}!]2(Qm`%?`PUn?Q2i1M"ѻJBɤ f-A;>@{KD/D.AI.1$KL)U DGnb ,) AvXb' 0KF R"2 ^B";9/0)伜EgdDd|!ʵosfkxWCt#fMϻ_LMṡO6R=aE`zG:+ W5ia+6Ce*2yO4&YT l{Ԯf!uxSiW7BG:qr) cs>FZd?W_ qՐJ|kC嶌+ '| 9w_\7CGr"Ɗ$|ڃ-KJ ׷6D''~{ؕ_%IיoZ!3\ =\@j&ԯ>@S<a+z2EiTKh5IK,瓒#BWh=\_HNǹs$5 +cy9OF{d=,24_r!gke8|FQ2ε]46l*,Amz2JѶꤨ0>LZ9|Ns0#eTE>j1ڣ/PAUt^lyWD"K/?u2T,Fti t/ p bEOHɷ*eIm%PM$:^"UQMD&Ҹ\px:Gkc:h@. \f urre&HhLrà&@_'|Y?#&%b2(ǁE$~]2(i`"Kl"؁$~2iy`JmH9T&%x?eבGʃ%`EcEE'K~ c.m { + )Ot[%f_H|9pN&@hU  (Cē.ŖMT"Sހb |/! mAGLJ"X>xR'!&2̺/, R-Ye?20t ~m$,0]b7)~"%a~F恡H~p`ԧ2 Q2s#D'Eg{J7B +" .X$\bV>q_T%t?0aH9/kHl$#D(C`OK Gʃρi$?$FTnIb 9/'G$t?2 +$Ekпxh OI~:P!0#Np,%?"F"QXG$p?2k="JqpFe?&#l&1/k$t?Z2jUۿȘMJ~[dE?,ym |(y ƥCˍ + /-5*p_dLyr%l-2Kx!K^@{ +*a]f.pd?lv KD f K'I`~${.).y*K`edm%c#HH~@V982VNU{ӘlmDgxgZ>޽2?>rJ^uC:5ϗM4@,(29HE/(!ʰE!|~\HFɹ:$E|Q?y::?Qq~]grLBoKuFQBΥ_46 |,2(fp"hGP~l*0A2J&y O&-J.Ns7e9e~GT<.>CdPej<Bo: # +э\&!:" gm#$@U \?@~(7PQUj1*e\cdN&#ʻ+Z!|`9UnΨcPAgQ?]oOEIar:.o!3T -\@j3Y2̊V{Nd Q<'U6ȡ#]q=Waф~-"2\yP#up-~[;?"Fd=\5$?RNcg&\!Cs,g2P7%aOֳ"CA@*P2.@R 'ks\ee h7 Q3 +D/ER1ttB$Gj^αG1}R_+> K'JQ:Go-C&9~@@F)X\܄:$L.D< F7BX/\%ʘ2cY\l[/hUMBбlÆ,i%m6+i٬ +endstream endobj 36 0 obj <>stream +1f6ʒF+grVheInYI+gfeIf4ZYheImFwI+KlF %s 8 QYF'Uڙco{\bxpJхHˡYZ´q܊\}*4B +S;-#]q`g4=.n#wt wTKoGUI +jkq(59HRޡ@'o.n!8+#9+b;(ε*4tӃe艼Q]{HM\#w\WvU(5C8r1YnGM:[A>gԠ^_;(-we J0he޹VF`z2ϵA9PǸnQ*uxEWxAGGxZ_Ӄe}6BzHY}.!证MsJI.¡1u|R&4 'W6< +}/wguV EӍ'8GڿamAPX[䎐qy !|sQ9 ~ ĝ7a;Yr?am0[CO>m[!ǩsvhP+dxW ow0?Zۈ-R-C$ye>L΢P:C 4b}W |uƖ\Tzȱ]&;3̟C?ϩFHa 9/BrW3%^ldx?9^15(HS"Ч'e{nKMD̓_=>{ڰlXV-Q o}zA`l)?U:Z4~0> ^u_(ֆC4R73ၰNo-hsxD[ۡYSl>vh֔0gdy$ht{Pۈ# =pّsm,ckAy s[Ȏ{Ì[!zti,P/A:4vEd#7a; +l} 㖲6L:Hu*):tJ-TJ!a?胼6XtCq('cУUt&Ytd:^ކ_! ~M0ߊ 9~z {([Gؿq{lޑx:&\2$=m]q'qldz~j4B +udߘ(pNv{/4Kׇi~*Kpv!Cb<( 㖲4@xuw5ylzj”eoqAm)!$AßyCȐ@ P_ؕ`Gy ςyLD)y:, B-_h= >Q\v%OLI?7r! x?e 쇼1Zꎕ{n;j V.Z dxE|an8V(Lg?b5z5c ÖЙD 'n[Fցlݣ-R9u]mXS@5A)?4O\QcM*bh5GU]D %% + F[~a{eHu +Z+ @ŵAڢEY{¿C2iqq#oX!pBqQ=}5ѩcД^UBZd=u7/WG= 1cC/B!`9hRSKx!1jTų1њZsQ~L]Hw'^M;][ T;No@:QXU?bF׊ylAcXn-\Z;o W,6dKќWv6& 3,4G0^zoyg#=?/3 ׊wO;*/Z!KeW2^覺߇$f "ɤZC;bAAfA`} ( b{}}|,$KÕ"b _ƃAz_qrw~_xlH69S|ɨZetX!!̦bxXV{^_=Xd4_<ƣoO!ô!+jF8ԪnC@1IhqQzk,$}OX4s2^GgiIy^AͿIգ{f_V }~L߭Gc6ߵv4DX%4/-xcXL +̽tgdCέ7G,Y+aLV9h[!:AM"={uC+sukK܀dm-nbJ +(Ɉ"*p=\‡n3{s9T;`Gw@?'B/yc+5فOB>r£CTgr\~λdl!ʯJļEQ^:|Ι䗿Ƚho,}^T „?s3JމA&;)y͗<(#*9o΁/1{?2qGA"Z?9RQ(~h Wh.[}He":΋@1oQA4 ̮D!A/Oo$<:o#踺o +wv)o +RJH>F;'煨[3Z/~pmR/O-Z$"oBhiQ{%^ޣ7j|rH K`5IރIrv.Hy|!AݙJU|rJ+JA6BB rዚ+ G#y/6vYs+:r Q?^Grvm2 Vu4Dx wh8"DzhBGFU?p ќo@|"lq)/V$"/y+U50GHȾA}FQz%jE ku^BQ_DHGXi? Bzo-?ʇVuH!dd#es%;_?wEI>Tv u=oϵ|kl#6Ŋڃ7FjDL|J<WQ=ȩڎEqM;Bӛdt"tr-\müG| QbrVԔ3 +J嬤f%mVoXۚ'.gŚ6Fh3ڬ6Nf%JڌVf%mVmF+s~u^lV٬,i,mVblLh%m6Jڬ4^GH +sʈ8I1yL)!^3Z?*+! PE]zH +.(ґѸ/ʀGL9ʟW$Ka ~.>P b&{0`\hA7U׃e!&T݇ 4QuJ\DQA=zxYj.'UweE"#r<|5Z.EH xzTy +4K\Bj[{Y.':5PE7"`˪CD޽vn+jKwz(?9NBGKkF@@‹nifrr@E%]P@̩?Ȱ@e1Zj~ĉ:j롳F)uMv@/շ%>(yM+5Z2~K|7J@Im)))eXH!%j#NQJ>pDy!<2"\`A韫˖Dѷw|f~8^d Tˏ T_F'o94PBD\M\M^Hc7>T4*QcX~zPYHzT t MʰA0Ms" /J0P2ϿȰA--OT7 ^83ϿȤfmL*)pFi`YHU3\CG[\ xO~ w`YH)\xEyWYwT\C-[.Цff2^yd.\S +oeyS&.r֡[P731|ѯa`AXGEWJcA"+4`q|T=.Q idLi>"̗= %TFI}|2Pp"gdP`Sm{r` D3zQ+wrQ-JbT^(Bn ֌.WtLRSmW Qتr9иL&Ti<,$PR|ٳ\x@_Kue#&sZSS/WtPRn&=kU 輖Sm{.wH0GL)M5ĕGV.1{i4?)ǃ>(cB" b2e +<- +X?4m74*%4Be"XCwɛY ğϨ$Ե])r0&Z" })}Rl@I}R' +@|Kނ :ZF DTy(}|% |퓉\$ח[30/P EO _̸iK4TM'a/ +z}&&@H+I}DRg%f˫?QgA +d ٟXGp7rQ8FC/0/e[oѴ%a)5%})B)D9( A C~=* }]s $E͔Of`JL?HG(o zA\DWԈYPOB?TwX"j"9gTuSNUTL DWԉrd_4 8',10t_(΁05S>TYFk.&D\_[d¡W]$h lT@wJx)| "Q>UUw$tl/-Q5e?r.Jbe +9l>ӌ6G!rEshO~?A +,S>Q_lyu',TMT܁zI2ZH>J(ύh.2o1կhQcsQ^dvdo=-z.> >Cָ }al^7p _U(&?UN,&ʚe-Y}rg\XFdz_4 +ދo=;#tQsp:_Y(\A7./22 (}xvÿe[Bܳ;zT]T{EZrşȕBBso,;ԘF?|5ȽFYCG7^}YePpY3ǿ|W ى$߂?5$EHI'~èiDBjRK(}5|J/t9\%|-Ew|PfMʋ#&J*a?J%*>\g+VB2t򿐔]nFgޢI`ߜ-, X4 hP*A]{=Ze35ʎB>T|W0PP\'Y.5QaS7B ?mْxP}9"\֝" e蕏{eIą.*|pVe2"`˕@SHXSscZ COV + eF?~y~ 3[@*9[j^>tG8՝#,j孞 ?Ü;Gly gW?3V:'FѾ?ﻙN\vHh8[@wD_=E}={\Q}lG }ù_J[@Ξoތc-Р? =s5H6a_>JR? >'؀O>D%1E= j5a|weZ`V>Noߴ%JHy?^w$naQ@TBAkSF= "`D{"Q5MR]ԡ |-4( +)c -l?/hklut6-<Ue<m-`9Ug>CBՙe/0c{R4Ц;k8jɮ3 mIA?đsꕅ??kȀXM_}KaP 6Ԑ1;{yYEPG +4'WTuFeRw)/"d 垆e`3=UctQ|jLW}NeaqZ5O>8FRy$=/=:->Nw[uw‡Fǜb9& ko:J]K \;'Sx'PdO4>7!YstQآS_*ClBbk 3 +ZGARl]XG祎0^CXISK_cY Yjj7y4md6]XG祢#=H4NX4[,s2/) 꾢Wb+lQ)ebD0Jie[3 Z %Q<}9_-p#==7)q-aqhNZEąr-kCƊpgm Bnd!ʆAEZ=$߂&?=% }NN >7,EnFVpA MjC7l~.{F7 TT^D9N"zpQd5!"@#,\A|Hy.4i.Ac_Y1܆aPySȅGOS44g߲+Q1q~CtQfr]'=?eM\:r-'7˞FGo `y.'t.+{GAT@$4/ ݖ@?g+dI{O(E.pX1J:%< qyն7&+F1$f7-:>p{1$&ږHܞQl"Z(dPFUg.0 e5f %OQUʢАgwkF'T` +P1 +L +- 8{Fep}){4m]B;y@]&Kl=Q(5>D.[B%z.'  +l JdCU'l)0YE5'aEO(+< +8 1}JDEKJԞP*2*j|g]KTGU;C`: ,"Q{@Ɋҁ%Q7Y2*$qZ +,h{FdxD#"CF +({@Ȉh%fQ6Y +*(1^VKQ2wTTj&=EdY`BSTx^Q'HQhtTglӖ=Vd$(Z!XDEY`D"JV׏"u '0u >JԞPZ&I"ŕ*"p! +MFE'B J>>AEhqAEP6X, {F㨗dhSOIԞP6YDa'KG Lbb(h`#*K%:gh{Fdit${D.%CWgT$~(vم%P4YU2$^F +z\`' L ;A< H1*l z\`']BIDѴ vF 2(6Wa(}R*1jMV''G]FG;.|BPpsC(1L5*)&kGMDMfz@VgC>R#XDEY`D"Т$Q^ɞQ9OQjdгH=h4: =^dZT!+eT$~(vمءD"#P#*KE +]vJ6K|B6${Dn$f(%JzQjzV`gMFgAGԋBL>1JP2J"pA"ŕ*"p! +MFE'B h}BKD)J:JLcg@O( x>Z/넞XDEY`D"Т$M.`A|Q|PbbY(R݇(dh1I̞Q,2 ,K= + \=e7D`:*TL`CǨwٍ%L\a-t#DC5_SU3~Z}3yH\CP/YVQp ??Ooș(d*-?U\MEm*+ȤS;dh({Ooȓ>N::O4 !Cno +T`'/:٭5w}nZO?Ugf0)a҃W離rGzgҭ!⊾JjgԌ~¥S];ڨ,I!Xj*#l\Oyoȕz22* V\OJ(7 ! 8[ԐSr!'[q=)zm45$ͯ,S+ +&W_Me@7\M9e- +ה8Z _sRVKdE< +OȓzLQOK C`hՍW2H c$GeV7L452|F6+ilVbܴKcպ?pmԷH&eiD Kh_|1V%f2H%fHX;b#ᐟC LC=@fB8(%#F%оLh8J/կHV ۖ DͣM`IL_"ʸ=䥄/s]Y[3 +yTD, )e"'AiȓEw㒨Ah&S %f?R=>4U6kՔ$PSɨPсo%~!""/A #1%e%ZGב`D(70D(s#%N#J#ڒ8t- ΈduD乬)Dx`L luoJĽ!d$M7l+Dx1-3A L([#.HPa+M C (C!T@SQ/-Q #=Ch +KA x`fW.{Ut1J$? Fɨ{%}9xx;:^!" +G7)GF5$z/J XbW$ a(0'!_B%zH&R?[$93b$$~>PD:%im sĦ\Gp$n ǏDD⊾U *<g:&U +r=oX|-&=ۣ{3 CuR>W^("q L +6 ӡO Y~J sAʳ{߸2OBI=]ɐ/WUBj7"ʗB,y˓L-{@I ]6>Q$|Gb- ++Av$j~=HaXGrۧ|h{9I%*(7N~@ȟr1TSbmEm /!1ȑAH1yt,șH_.@}޸[e%\7vo*Y[s99ʗu?3TSbmEm /!2Fߕ=\viFտq29JDQ1Elڽ*T?ky Զ/L^{?{XR} wԦ\>G|w (+Ph0j)zYUx<)`ժ2+Se]pCEZFޕX#r]-  KmrW*K~G@eA`r'D;AvD/ĹLMͤp D͹~!AB2_Uq%}"r3)pkD/LBY$HB%wBっwg +KDLdY oV9GhN}KDevx ODZw1x!րc2$pVU8D;@f"u?2" 0^U~!8=,K#)F#32(pCY8D S#j{ 0,#A+]8(c %z1/A+E (s#-$~RQ/IkD'.ߚh%b/lO1f_oLd/I~#2;x#pʝIގb +@bd v;` +F [D;¡X %~!`2p~on<DSEdM`\G$#/r+pD]c-%qR6+ .woFY i((1)[+q@ D=Hb7!Sx t [ +TvY(X;2H}"r;D $C#%FEuI}#rg'(s#MQ.ܓ$gU" (k!5f_ ԖQ=,i'2&"q`g3[ё,AȐD"*"@Y`HO3Cb  q%a$>D^TW;cUpD&G%}AXrT8Sy"3$!e EK}@reT׷[bƀƁL# 7ŗlɟPV`& QDEſYQdf eou 8q` t_ ee>2"j bں#7??uJ#OdUD7 +BQ| CwK L2] AbWD|,Q O$S΀roKސM24+OIx1.7Hdg $WEw.{Fʨd%h~E$ E㕀I^3 Rs-XTG X/0 m(󭍎  :"=ynn;[bi@TQB~WqjnB9R4IKi*O|^9pNE9=/9Ppz"3kh9%y堢!:'ӛZ 2"u6 %h."wP@].Mi$WA{@08Oړ%!=H~AU.='$% +"X@D!P7 +SB%5+/@@(كd,z!r'1f؈)0XB5''@HL?@L`D.Q~L ȉDU">$@2?,|8(z-@I[dr9Iړ'=%bH,@$o#p WՔ}+[^F*>dH8^0PŸ?2J.ONC4Y$:Yd$x 1D]"&K`xI ڲRXxzȉ(@%CQY<( ?1B"-c#` 蟜Db?f?Hr G`EJSNq4P q$~Qma + L#gBρ$,Y!Q?!Y +JBFegHej ,,Fၦs&Y$H^rBT &#eK=x (܈H :Fb"" TO^g.1 <X5/8DNV$@Dx,a}%\)@IId(LB +͑RR"Ֆ8%%@D- A (_Ό6(*q ODþK61?pTa}KZTI2e8${H?- +<྆QA4@JJڲB{rʍhҁ$?6ȇd6B +н + +Jb$k t_Nz&\*kY&rH<'F@'_4{T`e D"% Gc +(W*hR"'ٟ)hf/)4PDvY}HF{ɑo# =PdHJ5dyC WQD!쿤$NjsuN}J1 Q9$|~y +E1H$/})&hI4CGJf/QNMt 9O 2^({ȓȟfr}i(x9PK~?X{~PI|b'ێ`40 WI$~PL2aౄJOJJb ǿ3 ݫ3O&Q@҈h0~L +'@_E2X&!}CNshA3dy$,aѤILmlWЎ<Ke.2 f_XE7~ K4Gވ(*1=B F{H\ՖKSnD$'1m>c[%h}yaD,P܋ 9o9j8D"HjH=mOyʙE54rPsz^r""I?S( zQHged22D[2E**W=!{}+ +58(ь=I΄B`.ŽwɶH.V> ~Y r RReՃ&ʣI_#p1jbطk2E+*{}+ +58(ь=Iɮ \(GwɶH.V>|Ӝ2ֱtua:7Imq4`ϳ͠ަ5[=Բ8yMKeqP44$[}l˨bhwʘE!Kj(we Pa]2"KߑIFo!ziЛd#˂xx<|o]}T<#! ڇ ? ײ1: 7tD\E;"Oy|Sc(B%,İĒ?^E6Z`E,nG_XA"EaCR -m|HqRHB^v :`Deэb.4ll~~lK\4B76\ͧ GLDB$WÅǾOS,!2A!!'e GhpˉHIǾOS,!2ݝok:ʗs2]O*O![P؋H'Qyb:K c5:*SKr( CȢ WuG6Ƞ .bgBb؆0/&4o JBw(@2ӿ(dxO?ȨiT"#<^EaWP2GI4[G> ྆!g`y /מJ(>?:$[S0ͦe8n8Nqٱ)Nqٱ)݅S"q\ 70WeWVQ\1S,OM}~k#۰vXc?Ɋd˓Hla l2f2dCCcYܷkԢˈ(bGYR QMm"F7dDޣ6Yқ&8.\1 NG +AȖ?d[se rR אñ)e-(u66(.}ӧ(-8%?u`$@rzis&ʡhLG$d#E ri? EYYheYfeIJ:6+K^M3m6FYI4ZYhf}NfeIft"wDcYpHTi!R87[#Y\|O|; ]|vS/ .r_S KV7Baut>ĻoZe"_E+\+`U_sǠa5Bm}xrX8K|u$J.[ůЉbbq>]} +'S@+7_9y2ɹJެ9ry;9؁;:)boCok )x7Aib<`om䴩JACt7Fטּzca`b~!T:+Vbվ5 >gVRcWz/ Aj[~@~ǼC-rݏ^EKO|@h[הȑ@YV›O{ &՞E/hVHĸqy/9S-q1V~`^t, +=@rQ2%o!)a@\`CdWNmf}++ LG&Gj%~]u`'W(I>pĆ?\wdqK> qeG6Wb_nH}/{쏄# Cw$~rzA"(˥L$𾐻2#R#Q{+Eow"{Ɛm/d.Y =Da%С"'ABFl-٣exA" +ul5f^ B5D<ɗ$D_ɄM,. G> ryQL.VtE~ : +q5 o!I-aD @ +5ZУnb+%4teP3F-}qLε_4e>Q\@W&Edn 􉘠O!o +H >oHNGBhZI !49>%G$\*zN>4?Q_.BCY7KiON4\ :Qc鸸&I [G/du5*?LI$jQ\bh>J3e\iU@Š ">'G˕9d70|U{ˑ J`Gݞ CJ2ar6EʥPK2armEIqJr [hvL0"띾H>h 4|?$~(Vtz>OwKPQp~D\;A!ʅAm`~\7mȨBQ8.w+=C6'?_YT<ɾ)s UͷQPyhvbAK 9SRI>I~P0ԨW!-NקU@Upñ=/$ԎWQR4y)KDD*C CF]u9DO#|zPkp02k:'J97ds.\@=K㖹"j2,ܗ GK>蕷C)Jޠ3d1ЦGB/;!p^c_. +'Hٕ\>$x;p;K=D峣%b_P"J ;d!ޑ{G)K>33v쑸=@3$f/Pjb/ܗ GK>蕷C)Jޠ3d1M GB/;旨=@G(L2ǡbC/#pn_>3 ,DL:wڗA;C!Kmn eh12(y`eN|`oC?& zLH辑|GQW粱O7+vK>蕷C)J@gbM GB/;}-wB3p &!ۄ+G=@r(mYM9E%\6%#ri$v_b\%hżW.n.ѾE_F"+aF ^%ρVQ"%L [ȗ BDC + D{t|;+#o{#ǽx[miD%P?k9G7jH}0sK јJT_ɔM$Ծ2=@3a%B)wI}!weƑ1-{p؋c=i=H\q%"١%b_Pz%`_H[H=DC)KFŖ}K>!dH({ɏR}m Ca@X.1Fr哘{ǎ}+kCI땀}AvB m #'%!pwL +8 7]2"BKb1ҍ k٨))2KLz|r1R. Y>\#M?Gɀn Czy۠ CȽ| 95ѕF97~> w'[3Y v9\CbFgaC4o5yeC8wpmGWHО#WmfЏȼ"LiH@xh5 K@gJ>2 j1Wb@W9)%P2**GB+# +̑>% X5#%l2q߾Ç|qc)/x@®su$>2B~9,j ${ʗUӁ}$D?#:A#{oOwT,5/ "_c/#g, +!!@ҕz]GȎ|EI" +5l-&0N /= ({u $/Q`~C&D#C道%^32*T< ȹd{%eP:F7t lvb] eځI rz. #ƓG6TƏ%z ?x6pDKt\Yd`:J> xdrvWyoP6~V/Pbb˦]B/"dHLDG_e,{_Ƽv(c+b>17H{Eh`>z߈YKb(S +2r L+M؁#n?(e+YIrFWJfeIʲ,iJZYhr6+gJg5fFf6+i٬,KZI%mFZ\-Vڬm%CY"0Xq"6B B?=\klh\C|]o􉾤/ג&A]naczIPOkh + \N Ȑs(jf\7*l~ IkZWL,O8@(p xv؄=5HHM +n_m* ] 4,(.]e2{”QFDCw`%^F/&?4O$ڼ@w:N(哅Z~,Q2jf07Y%zޢeS<$Qڇlu}={œOy>B\,Q );W`uP^@hw#6*݄ o@tWhW %G/0@5P>Y(y˾B \,'/CmP=ˢD8qh+Ԟټdv(ճ,Jyی XaD+T?wP{VG)w,"ԏ%j^_&(7Dڋ +\D+ Z=o_(x({C:ھJԼB>,ݑEDKW5O`$@ᐵ/0@5P>Y(y˾BxHMY h$Q' `I^Qh|HmG P"_{`alQrR ^YT +%jޙa%GW {~Wfhyu8D;O +jDK>$bޠ;d]/yʦF!D hPG 9/^+HyJi﷡oO0W6$ʽ/9JW$jޠeYд <ҙH0X1{"˅x(etf3j.F_kF<!ȵ&D5\~u׎s?w=QFJhJIϒ>*5]>} }.z M&/B\nM99 ]H$GUL + ;r&\ozފAYkݻI.ZI+hPBT!y>.:Qsa`KTe|U94.DwNm qǎ,=gψK>eSUxz{O<K'ȣ^,/ACrٱ=t Ҏ'!tЋ-G"NZj\8ѳƞ`Kdt`O8@ƵȣSp-qwY{4r<󦋙|syE9ZX(ߓSc\@SڐyzzhKQǔqC ny+XZ E}HNd- g\sWz y,B&D 4h1 GV yΧ1υ\{3iF GkC\mȡ3PD~(*""-OMpu  +i7(@M^p(ި . r:鷥'H߇HXHD0P%2PNsy2OW hs+ i;vz"* +pC)6лVW2 M''G$%Y}`d"U+='MH49J#!JrG}~UZA1ɍ_42yf2ϐi.>%8⃢0S Eo1Hҧ~8+AP` | P\*Z.%w + +!g/ϕi=8NЗ_ߓ 2 +E#zpVכe2C hUyMu74o(kfI}E"I/B0Gj4l $d?@D/l*A P1yޔME|&A"?N( )hyu l-ZT΁AJBwȶ܁I$bFeS +Ky=D$" ? Q";S#莲gQwh6o`0>dC,PSv,Q)'0A^tRED;tG+pDKW?D;Tϲ(;,<M=.+ +t%ҼdxeQ?$½E͈7W(=Ool*EQ;0o(Nd/D{lu$r^e]h=o_Th>(NYuԟ}oQ9eEDtlX\C+0D hѽ +(VʊKPĻ]߷8{XͧCGՌw#A"̛_lZm}JvXD7>d7Dw:gD(e3 lDG < XXMO/K4yE2Jļ@s.П%rޡ;JĽ!k;@4o?dyzjKQ ~J\絀aX.Wi1ʋ6Dy>Pޥ]A#k`y2XQ# <^uD4wtgb)UXTɵ|')guRD(wz~SQmՌfN }]3nZD&bNUg14u^&Z.3d0 pUuS$kdȞջ(J<ρm;M=KPZDug\&BX.uxAӋ":N;0UK/27*f~u'6sxݼ-* 3@=cYSHGxHe}\:L@dxa)gP/uYjd<+Td!5?,u 2a$mPƶLI7 ~~qQwVPȣy2p*< 58)yܝ͎<.)k4ǖ%Ʌ|'},Bb,'{.i] ƥw2[E;Dh~g V~uNHJoɇ/9)i`;Y(_-4hUΊ7:_z{2 + +*^F]RN1"J N=JDlz+1 +jYIdtB+KU'ΥJ3d ^nzSAOʭL|{ KɂJ-lj +y! +jBP=@zn{%#tO +҆W_Н|,x-%ZV+B8(+\ c>ۭ(:%^^eG(xC6D f-WC^Q}sOFw귐(V\$+DTVsV<%W- + |HyQ8jO⤂BdF%mVto~hh6YYhlVYl-xZΗi޳feIJZYh-sD!YP#CDJ 4C@-tA!Yt|2]4U~3PKB|= k{;q->Jr4K #"J4E;T\2PMGgeHhRK %DZ|Eorݢ?ʚM\j-P:CT_r^ O^ O &i?l%&eQSĕR\LU.`  ;pGPpa"of(%W4uO^.-&ozJ2v" [ v߃ߡ\~C$K5Ly"r 2in%=#`儡z˦FdWb9%/w(EP48 + gSۃV6pw$4";9/G q'ƫq;\&qr*ѧ@A$lFF^,ՕȼH\~48i$jro(H WɏB<Zq轀u'zE3ʋjsFGt%Y7]ku f=r\r$*&M_zK&*VJMaO> R\ÏfD`؅<[Kdҧ)U H]i_xϼ@Tv3-- +2ĢKK\ ,)y`sC#*,/:}]D %"^.9/QJ& + #-6Nkb@']k\mԵۘ>/o} # r!3\oءsr{GB6C1f4n@I;~N]p!IޡcrZВZ 5pbbHۢrBN5A=9gU?wRR zF2o:4K\zEl1'y跨o+EIvnQ%nP ChOuaYcvʻF皙h'vnS(?Cp&muPbL2Tz!=݇h'*AaF<1$!Vlr((u\P(_9,r!"bbPsBjÁ!E"%M/9//4imʿufbZ:i~)}Z>yZ#9)i~ZVyA@ŧ)&-!Mk=2O:fv- |Q'6RYpfG~Qq&DpC,+5i|{~兑+L'N[| +?tE-W;% [G%|_!ӈQj%@%Ξ P +XB"'X"WD9ၷK?%;46;Bn``%forhq +SamHHB\ F@ɹ]bB9 ;9 , +D7:Pm%oJpwd;Vߗg丨g-UH@4D;L=Rbc$(*A oEK %v@׌<}q@ Wrs0H[QTxr[A=_D<=#"?)%I`BJ;G@ |U"Z5 ++ty1"(pj|3%T\zP\ScWHRoTK=#3GJ~D+E{C;ZbaEh.m~qPA{Gw|UbR5Td3b$K |3%P\@JHCZ F@ɹ]bٱB(oT% y!1"MAK%0 ;?J˞#-Ч@$dGD"HI!LŁ_%@ݠzT"-? 7D9o8pgS0Ѷ@$d_!ӈJ!1{34 twm3ğ$ܾ"r){ Eص@`R$J}E vE +y& +- dfT詄 J^Xk%~ jC<{Pm@/+C8WIZ pĺO9QG$p_Jrss;+r%G q$V!aB# TDZ^Fn{GwУc ,AHC HইDTCFI{DXJK~H$ LDkS}hWK= ި@+940+H=G*PIiWd8 o*g +)1<[t@I%о A)pzD ܔ\ɷ~ X. +1jW% +&\{j&A1Et7$ZT`TĪG, DЯ [!{0ƁY㞐)'@E@DCЃGX{@9$о. +` #P*per6`ʔ{Dʿ遂$"rD%wDSX@YIBE$/Ko&qwGQ,J}?NƁ#^H,{-k 4)РwJ>88M"d.th*9(+2 W܀؝Db9,4$Ξ n(@K}G#Sd!o"t +i]Q<HS9*ܷ-1n&*O3ߗ Cп/%' p3En ;HBȒx%{8{YӞr@##D^+('}$/eG9}uTmAoڈw4؊BIAK%0D+K^8TV8+>k,+$R~BF{EqЂ%>G$oWĢ f%{$wQa_s+y7it@]\Sc!AҜ\f{D;Q5~ ?X:/I=AQ@ b_iQ`UHQE`2sd+xsLX+(]b#`@QZAxQ"]]ȿD %9- 6r$rT_dCϕQKE|[rY1ՊhgT\Y$g\T,5+@2b"U*LN% NMdjAb"Xx8}u L5c#.JM[W4preHE6W2QB+`rp\sV}D$U딣耗kXkjivX1JE['Hp$> +|7(\Ӌ +MɻbdGQT>kC&CEJ6hSx ?0W8m(WQ"ˆPV4nYf [AtD +()ce\5R0K)\sd5 4%3mH0;=0)H潃m"dVe{-Y!RWD+g{RyF;K/N,`=Cr52ѣl{dGP`;EACGI˘d~ 1М|\mQn=4 Y>Xfj>J6Ёgn}_:H 8oBEТTyYKx҇+BNGMQ|jQ:kJu/ pf4hHD*\ECG~1Wd%zAkp-=`f +H\)4V=W 妉 C>"僚lHoREFAD;VdC_`d> hTFd{֏(6 w䠄>+B?$z{(b W#Z!rD1M@ėW,!#0H7 -:d@JD`&GXLm 6ZqMA?Q5|IhT;#oېAQ4?3Oh4_%(4_i}>|KdH4gׁJDQFCu@^R$<{ x3)~x w寍`1 7313|ZzHa% 2mvu_ .Wwћʎ +ITb1_cWjO+BbD4n{Bv0iPຏ~tl$$Uj5=]sJ)N|#9(Tfw# 固qqXi @ +H7ZO!6m"—P +["!I@3 b%?ؾL*@D%pOH93 +{LT.åɈhN"! qHF$x< tC#Z$Q%RZp=,!p"u.i R^Q 8 +X&m#NHF` DЬ+nGhX7.D@<В e„"LS4k \ 4%Ԗ-$~r +,D@eT?IΠUH o<.A,5P c$Q( L@+$VEJ}"g2)d(*AJ(7W`TBξHVKD2k4и-%?Y)!~eST'"M#@'tz8"+jB$оp$R('4<>N$~n%0M2#@{@Gm+LŔ`q2.B"`Ok7o(5.'&F@gh<،oE~AhK@C 9*N>I~[7iQ# %{J٨fL"א6 o$TF$P}6A>t%dPM9^J} 2*d("J(.i8A!B2.S#>bGh4:K%hPNy."3b@K=%8&~ȩTʗ;\h@2ϣȼ"z${CF Jh~&C4o`aN +($,ТOLS$4"4 p\E2a$} oЎoO%h>ABfHXD&Be \- ͖K# ,15 +'E:97W}(!tCx;ww$.FIrSfA(_"@ D8Kh^Tgw bJlH %,ХGPɣP_q9.' +N>(O fJ̾G$@5oH~XyDo%}!2!n%`()*K`W _(\a tlH(\' +dKD#/Fa( -)W@HhQV`@FdkFKRT}env[Fvw]5\"A  !!v1]KB2ɑh T4w"\?P/8 *al1-{JSQ^@媈dH %$s '4Z-޿G +d.`l"d bO(-<)u ^Be=(SKG + /T&92#{@Oșћ.@5V`P ɦ@ |(U`V o4SNG'"YLL:u!|z|OQA:&B[hPrmwTW4 ayFE/5 .jʩ"RD@a%Q(c\}/L}6A> ,-f)08 @dHBK=W;0hnSi oDDY繄ݣi4<xCŒ#Z%H?"ʓI!@MH=rUGI%pPM95qx_xyH=Eղ7DQn HЛ30"&[B@G6C$tNUcP1,#+ WA$xQ&08 /T&%Pr%L{4mS-[H@@ejHLP0+|͎p WwQJ`EG.Ow%!^Q r_l gt YD,`D#,]$p!ÓM !O [nG dDFDD%`OH9K1Y,_"ξ#E hL6=#%dPM9iJ0F`2(DhJBר+$@FmAxx7R*CALJRBЧO%#I`Nr(Pf9bK~\N LYDd HDB,2nz 8,xD)_*'$bl.@ +JPorC-8Q4],xDP\BoTv5mlm903030395507.227691650391552337646484876998mLlmLLmmLmLLllB  @40!GJ:~Ur0#Pye~mNd yKۢy[`:}CH !cN~_.(q\T؊*(#p t1CuK' W%CuC_!o!$+Je3Ap,lLU W! V"ے\\~WJp=geF8ʶ\H0XzNLY׃ZiY T`C4M}cXTZ5S^BpdhxS__e`_. +1JܼCA%yTH9Ew6I)? +.$.PsDrcqJKjJ;Bvb(bDMI~_Vv\A ^PxAe$S"U+V*j䅄0y$4* QaO=FRKʽ:sg(ɔen|mo\v O MO&, Tnh*p!hJ ҀĀ}a~8]ۧs p a0-G5GDS92$o@}RK>E$$8(wC D%8g J=Get~B5Rf~ؼꔗ=AQ|J@":@LT:|*Qy +IHވ,AyINC.-1{FJtB/E@%$;ȥ$^#r*x9獎[r;Ets~Ƚ@hЁs1O"Mgnt -Q}\4 ,W E WWVic"p͟ vg]4^(u,p9DbEhr9 pD +)Qy>B\ŎBp|<P0\y@y.C 7%~^E#Qs$ڞ!B#@4]osDʋ(Ayt'Ȱ|9/PT SDr:B x>&$oF%* ə&K r;PG[QP_okDyY y8x~5ᘧ @hzO9.$G}K=h"K@l^@n73_s'"˕Q| 'ȇ(p_%$?s#$작/r+h>\H=1~ LBt^ns_ק~ JGdNy<0DT GGK̞#rf WcI_KNQ 006L"+A=Et)XW(8sDD^$Q 7סɕp`^P R3EBIl_Coā%bA9tw ݃C=^D bW爠1H [$#1'BQm g$\Yu =௞DO +mB|r(-{с$rO 9rT!'9b)1 סJ O J ȏH9K4@NDOgPRS SQp`M爈<D ܓ'A {$Cw"BO#(AO#'=@ɕh@`lXy'ДKBJT_K%bO#BtO j gLh GGg%^Gr7PD)@&I#r;´'{U +i ߇s ?Jr9O" + СDSPNrp}H Qx+t@nB$bO@p{:t'o#_G+?0$bA9 .{@vÁ=WP疘=A(/Т )  I&O +X["$?Bu`$`N 9 +HB'԰DȁrP큤K=!Sȡ/FbYB 닃=yȚ<~T# x'q{ ( ' 噣s${tWyKH@ >0 $ #K.A%v/Q 9 +g1[$\he4&0D%49$D)r O +tZ 8Ɩ$gg k3re(?D t=ר Gy<# +(UX# +BJB\Bpy,C +{OP%bF?@ywy:B) 7Ѕ8=E66:jBt,ѷUj p =n@ͯ5MR]2VFB(T{ % gwl:(yYwCwp:yz(|sCwp:yz(|sCo6l'K90`9YY7.Y2ho\P#9U+VV +R Hbu_D/]ycb%;k1@{!J<\F}CpatH|ۺ[oTC4oiʲf%6YI+Kڬ6+KڬjlVJlVmFf%mVfeIh%feI⿳YYff%m6+iʲ,i3mV3%mF 3@c  AHJVB"?(!{~ $"hT=UR8pq%޽Gh$d$?V$*t @$!{-鄚@ }y( +z ޫqHnnPwEkV+jt"SIV +7Oї4HtF]$rBE"u{v$ hon_50 6hMyOQ:n5Wo"/Cc`^" o@T!j+@VFBJT6 %% *$ /R.O2~be.^}˕28A24\YDݭp|Z'W_ɸA +pq\ 78E8"$5UoS#C +rهB!En4(4ZF=BbsoPA㇓ӼVơh%-|ÿeMF/0ӛSA55Co87d0(Zh%:!>h @.V7! ) +pW$Ѹqb%=r$qݯNc*j_MϷ" (:3,r˫(2h||>t.ԙ|yTTBkm;Z^@#Ϊd?эpy/{N 3M.~_  $Q49FKh֝p52 `C'`wm+߉ǵ*6C PHFf# +\E}7_! \1ӫ(\E>C+ߺ W8ރdcao}R Ό+ $t7PF7bGTkcPn=缧sb5QońECmER\<a=ܤ&L\MDh2H kMd#HɶY\d|U}\ #Bw*2;b# 1|MR# zD bVA{D]Z{ +c-OJ~ xnkT:aؽi؎;sl[KCy1SI[}"~)ít14^V|do.:=* +!JXXBHd<vh"QG|_>Ƕ4!C +N| y֭=-2|^zHFo`*mm}#5%yzFd9<$bTpʷ'AJV[ &EjdGs8kA[`G>Hy\U.0;s|xU1[i1`e05 gG߃ % +(N24 psq֎>ч3K׳ܯ"}8ՆZ؏an)6ʠ%sl[KCy2^U_ð* +RX'Dpe&ʹVлb^Y|s.,7a(B4|W*׭Vu} +\V \/`!j"jG &Lg_tzBe`y!W((}S%4&%g @$3k-!h 0]>2j71C50pBDN8f= lcFo~<V"QG_º>Ƕ43C +N| y֭=E3|^[#bZDaOr5!;sl[KCyX3^֞ ߁gj1Smk0m$f)-|34 lrA׭ |z0$S## =&"me+Μ+hKO zƾʼ"X-E !D> @A/s s썬?`xLlϰ vC-~ |b*.yKa#Zɀ+ON[GBgh{ϭ{H _-qvu䫰'\ZFTp{ɾ= ߀I8d4Nۋavn4$Рʏ9"@P$uQݪgl&~se=t +3L3-@$y뀓e9z5K2x_Ip궵EԎCCً`y[s[Y@rh ֞H_9˺jΫ0unA +DѠGƸMWدnZ&TZZӄ©U [2hz9Wk@ Ŷh©gI掞Ig;i*_c!݁RNӱǵ ĔQ2jOz5_GD _EA5iS句KP?hj}:zZ'j(8S+yBXYCiʩwVCFP|jw|e5hzd (X\-`4kSBeNEЂ {r}iֵJ78a[E81]xSxqo"SF(tRu $|'6.VO_Yޡ_ǐQxғbB>*lJ, +J\D6 L_#BkJN֫1}ZsT\ML?`Q bؿ[ڠ8}8(yV[¾(E]_h8bG.GbM"uw F.Ђ(oѯcȨZ_fA+'^ E/.F|!b51Z?!dCd^U';,C5ĢJ;RlGZ7`>掞Igs7T|p>YGEs^` *Q +v,aUcJEMѺb\LuDmn4j +"2n0 h'7'}'`U|ng8h4-;!s`8^bK_ǖEuƱbL[:{ UQZg"~c?݁Rӱȃh!Q5MRqnB#Qo[ "밋@Ըi{ +p+Coiq ʋhGBo qMwb D_G,uu#!9 R)<0Q(5 Ugl/(o\dIAx1̡ײ\! +szYk?WWMعFG9(=y `(c@w:"jw M6 H`8tL⯲PpE&DR& ZwG`ȤP\[Au}^ +4 #&95¹@G$|q1oG +=C]3`. 3t [r +0~[~8d +>cFeBl7Cɕ% +ۤBl6hd"CR!6hZݠ6|(@N1A xN0r#=9n$O1_ڦE٘h;-Uh] 4y# +aM&oz*[ ?×=gsz?Wr%f>CVA<Ш,|M#F)l?'|y\!:ʟsy0%T(ȅE7m]>axD((ʴX!jylY\ #j>+ %#dWfԷȥ %:2BlVyȅs2N \2܊u Y1O+cE3wfe9rVV6[lVlV7ݮ>aM[}MJlF4ތ]tHxD PBә9¿?{\"j+98+je"L(X1$e$9;!Jay$ !zRy q)5[eYB犼(JpwȈF e!r ٝ?eú;|nzny!TN.^P &9.͛{VCUQYaED${h؏0vm ^裼N{G[$Eq{_XWx[㏞r,ɇ["&w*V(>[OY` ckksPH;av%D4w1q.K;aM=߂2s_X3PneZݧ`;ߢN3,ݡ| +{#[gbߩ()Z(2(+Sg[Q[#e$w7ՃC'05 f!VP(_D-"ctwX>&z8Y΀wT{\  +`:;"!N)Xn1N0M#EY`T@㉯>HߊYQij-sC03`Ao)]^=R jsϻw49E;gaJ?R93?,[D Ͽa#CN n#D\ӽ[0H~{_H[BX6٧a\@ C͇\cx> f}r1s(mY0sEV1jn]C$#'!@SP7M!mr?ұ4V C,w-9EOx5dZw?,2y.ˏ"jh'$IK9vxtZ!fc1V:@)JQ TɔC=ƧZ5k>Pfd%ExwD ҧE6G9+ &\p*"fL| u ~Y})JETĚrQD@yOXH$ Z8íj|+ZMǡ@)4W X˿Dž|Rl7p-OWzZ;k|Qk_G+A}:-"NaWy}6HJ=oO qQ^yb<@,O + Hll"'&FyQ#ipQվ]iU|ka(BBFDxWrZ;rڸj4NNzx-sLGfz34QHhH8}b DZ +Mg<&j`%yP|3Tq*uoC +  p՘ӿTf&A{V7! ßrVp g3Ex){x++R<80n HxȷtKA$@^%aH.yngNl߯igrR~[_QnYf` *a+,,\]ѿ㸲R>+aVl"W.DzrQGČvE'EU:!;4m }@ y-pQx$A.Hj[`ˡY{mLsA"853I$t?0\$1A9_4 n@>&kg0 (2~n@yޗEڞ|DQD j>G&:WsPHpeEEÁ+c$u-hJ<*S +P )AS Y]ZO$9 +O;J!۳6*3C}R{`;; _JHJm iHp@9ƷG"-E{Sr q^σ,G]d̃Bw'*r(PrAP&89Y`\!KT/$ƅ BP}V6 +a\E0PF\{2 PrBcWu* r c2G ;DZ;=)s }, rtiB/GDݏA(\|!sP2( Ľsp}  8l< Nx2P.o +2qc1\!Ħe球J[2\ db'QZ{$*@@!ZU OG"H . Cn=I"pfdR%q_ D_DIJ?h/%q'"e|0,,pz!%}y&s: LUB]9y8$Ter"O ZE|䁁.*P1zKDEF^B=r|J} /h{ȷt%Eʼn* ;HPW,j,Eb _Q,5IB8M9` ٯ2n$|GأV]9y8@H~7!@SBPvu֗ڻgpQ)ĕ~hPh*7}݇o&`X a(ĕv#ɠ +(ATIf#djN© 4@%~E5q#4%{0NGsT%EJ 4~}>(Ţ^¸ + ! O GH%2z$ho C])` 'dy->|Bj@}P  SY?-{yB58 G9S@JȾ3yAbOB""J4  : /Ne㕀}Q E F} (\ p~ GH%2z$hoMC'˙s+ +lr >0ŞB>Qz)PwY {m41.1235504150LLlLmmLLlLllLLllLLll44821166992lmLLlL772857666016Jx( `K ded ?2 JnrUhԁ򖘽D#d[n + #jDwTo`'lMmo{P@;%zh'"+Se(D}PJľ2[]z!&_zI]rP-Q{:@(E9j*eD{~M-3DV+{u yH>EM"~ǔM  -}*\={H LG)d* W{ X+RYԙ$x 4>4'P$]8FˀPHX&ONHD*R֎t=D;h2S YW+RYԙ$x <刨Z ~wT (M<iyn4@$jPtvW6v*2bid@]u#@*%tQGk"9m~G> nac'(p ^y8{d]Җ=C(@9Wh#2m$#r$T%D:NƄX>[FWF=uKDC-#F*{?()Qy%Kar+!y\n& d!q 9 b)֔`yON' W(\ލ^U"kt9[?gȺdYU%pOhkGGEq?|hUbM# S.Yy* z~ko(XYSDW'ъ@y*;yJ}!@PGKh/D%"qy#ˉ +^(E)B<: K"+-YT`h H<-a ;?Ѥd^,Q9QJd[ADw2#JY$W9#jhD{4䲭H@$lEr>'ߛZyGv{Cz4Gm!{镧+#1}J J[B12hN{4]js<oH}Y1zLW }䬨Eбd_JKJ\xRߠ<;#!낑F #'7@ +W&ZZV TO-[Ѭ):.qܒ~0yYΎ*/1y%K誄DbR -y{5_24l` 3#%(US S5L N9Y6pwh5z'_zHQ!{QyȽDgdJXD)$F4-^C", I$Z 7( #'5 hybXНJ> ledh{]%\-pzG}(pNX1>}\F' %qVn= [%ҶU"p3$*nλ2Xg+h.S )5\30^ m"˳~r5t2>hHО%^%BFבE=KD>;ѲDCW +uBLIbMGbbOH=ŗDpQ + h*NDFiYy5|:O ߏɢ d>[ \SGCg"DŹH|OM+d@Kiz=^L{Q|q$ duP1JC)"0-wM#Y$wEHk= =!{@_{ W /@_.@,KN2k\{@1dWғH /GPt Dea">L7|=&"Y|R*|>i,>;$~&q8R]Z?$#KJѯ '?%=סVzuhR8|9Y`\!A%7̿eAkޑ|s=(su.ڤE<_TR5wWᛃOuJnM' \Ń"!@%TyshyC7s .#@ZC" *9`-OyGba¢չh|Qxd$07[o&G=0/C S Ԣ'g)@FJ-:9LAr#.p<ˤd>(G:{12;'آ ?J/ӡ1)Y"T(J̣rr s!CcrV B8#kٻ% +C$P"d%\_."ПU4 &dg % +r\$P]b+Jn +%y .H N +Ob*#@jpzPE PLwh #gI!_BWDY +6x}UU +7',E”=OO{4yRxB&oKL},GWDq[#(`j͒KyI +Ȑs -R<ϓA-.@C($BCDEa~Z\G#dO"Dűh Twhe𘟒5)Z\pTx%#2.E$OL)?Q\C%,N"Dűh ]G,G6YI+gf6kJʒ6r6+ie97kώ_cif-feIʒ6%VJڬho7o:6Yp$sX @ Q2"ڔ @xACtXbOD+9ȔJT-U ? /_DXtHOdy4HJZ5U a?"oDsJ_ޯ%J&|MP +. i LF"q(hh:+gD2~H\!fy(].:#jBh>XNW5Nh<Hh$sBMBSE#LM4t:h! 膊A9I9 ?  J,j`yLT2g \# |,T5j&Tk8'4'+ 9&4#e/DMP q +E~ X?2FG(_ Uhͺy[A +$ى9+FMͺ‡BEPHu4W\l0r%N$0LByÕ>4.ECe ?epY~7P2z;K/vc LJ1At";|Pv-zbŤ.0츢Gʿ@u5T-{9xY\/dߔ*@]Zy +@pjh(OF̥F$=e"2;%2\GGlF6U'Pshzx.fg1ʳ5 +z+>nMY9RM%x}(q>V"QBy|B7P *g%O-G!rN-Jo!CRkt(5u:g>E=F!/GrgZT9B.B-lcc@}KBIHh {d MKٖ@{Jؽp-^ ڷ,dVC6 2ρyU*fGǓoTȰDKrkED@%JGKXȨD;:'Q+šum$P8_j˻&$%I\aI2b mYC \OUh!HNR} ? ,UFXb{qtH ha ڑ +Bu*C Xb}6KD# +6Q!WB +Xb}6KD#bm !WB +Xb}62(F.bm !WB +Xb}m%(F.bm !WB +m%(F.bm !ܑ|DH4r+YY.@%6"Wȯ@ T"$TJZ5E$"¡D"oD;VF$qS&"U%#ȥB dT";aM:n "_HD߈vaI2rM%fGܗh'DG:utX|! @%n!RʥhDKr, Җ5]@J"Gօ|\DH\#_2L"'D@%~GKXP\#_2L"'D@%~Gb# + dTD1J d?"+ɥBqS&"U%CKXȨD;򕐯=q_"@%JGKXD̿r,m57|+@%*@X\(!J.Q?\*@F%"Cؑ|/"I.Q{}U>G~VX؇0o[x6$1Bn2m $^ECtۿr/&D@%~GKu2 *# +Xb}6KD# +6QWB +Xb}6KD# +,"RD4b"%\^n=e +"Д"Hdh bIPf$~RF$$~#!GQ D_dY2h"A 9q@K0~F.3ZH- ߈XdCQ)eE+bfa@.K0ANgtN25iW.WhzzBJ ^t!R'ߏae(qG0d\EH>T 1w~,jpTց̂˺ɇp!_r)6½!d7r]Hjs9 JZ}?Tƹ|@S['Z`K9\{!ZC.?+[%2 #B{ą.B.ο Oԟ{Q\sAg]\p!| |/s.^>V?BRO/7PrٍЧOPBS9Gt.q~&* ;{?~*Džք..?s7rAO/8PpٮJekjs9]OW97X ]'ћBd@`hyP`HzBO@ }:{Bu .~OH2\ȗ\FX#M]D\!YES7Cb "DOB.]H-b~.٠8,Re ׹Qu @/ۅh,z=!q ߏadu\ȄQ|7 .Ez,&%.48.Ӊ ]%ߔ+Y#E".4/G HoȄғC +iN s@[θFy7.\tAl<;\q}Q,N-uJq'tj\aX ~?C $ߏCAF=!!^27NO2H\T|H\G=l5dn!1 47rq]G@?$fTu$RMOң ҡ%N}@).EZ? ?:OP'|PGd. H>TF=o~*ÅT\:=!rAb>B!d8p]\Bh'|PGd. ~$* y?*F'6kff +{BčJf +>h=|Vf6+il7JZI,g%mF+ݳi}Nkk۝xWY:b*`@!uD a\f)q +yu\̰_!N, ayWh`azSRPh(˥ݴ3~8I ke4]]NL{$/ kd!Br 1a-(s QeÁt.`̰! es1@|Ÿa#am} QVAk_ҍ#6,%hp(|db\zxɰ)a\G MH5 +.-3 ӅSD>;, ͶGeW,IUxoyՏF~Zஏyi=|4v\`BLnXA`.!4:zTp :0@T@^^χxȥWD|UD"fXǔi7ҹ|Sb L2fRX` 9׆ sc)ms; mβבڸyCkdʢhQd6J*w#vbGu*vyD<5;Ԕ_J +z,SL0L)q +E +_LQJ-t,r(xѧdpEe\̽ւ\;"htcE 93 0) U<4'}ShN4y_!-/,_މ~ HZ܉'*N"GG$F| =¥ɞGҿ4}dg僃 ee +P,F^ K$ׂJ?r*D{$*?A򼺺UZ=o$Ԫbi-8bWK_F!;v=,c#ҹ(@uK&fF0x~+9De}Rdے4yYL,,y]9^ƌ4eA{ ]W +8挼)7rnݧ ((dOøkGm L [w@;e?DκG*sD%u,x2 NE|gHm\[ar*Z{dE6WkE+%tAi;ǰu%\>#3+!]c%B^EdIE *aGCi< @,i "Uo9C㶑y sTK(++[)@}E)dsdH  gr.n ؟4V2_H#YH"5MMvEKT$H=G?̈P|2l"#QUJR2hi;K~P2f$hf9bh#K>!QP>@CMJ}GdQUuI~bR6ɣPx!z%tyD'?gr1j.PJ+*!SCB--s@DI`r{ HxKHmJ~`ϨצtQN)<'/An*L+z!{F˒A @@H؞r4Ds}J~d0V"߾!aڶlT+ VDƒ'dj@gQ D N LF9+2Ĺ * +%En/aACɘ$K=C9Hb=AZhH8EVR)@K~dD>GIP@NDvNhPd$_^F%(aGGɖx3[B( %8)X_$s1Tt2fHu4#%JIhn_DOɢ$fHgāoDV%~PQB(+ ;yIp!A& /\ ;z!s;HQ%L 9*b%hGX{ _ >J~RY$BO`LPЁXIASdu& ![ BKhAgGD KBɤ }?&y%ODYK*e1L=A7hĢ@8?0k`?\~@I$p_I2 >tt7D|: !7BG:A;椟(-a1Ӂ8Ϣ@eN3/\d .\=!sC9$x- υ)L +1V"|MDobȅh%a:]֍ +$y]x?/llT+q9)>WtBLK?JZ"RGLk9#< ?\fD?\^c*i*fy\Q?$hϠr H;?eUQ$2? QDV{t;h惄_T(2I4N(@~%t RKP?D 2DB[T%68_T(2I@h|an #tl5"@%t)j]`M hdx M љZJDx:p(1|- T#A&J% N JjY+>sKΌORl"?p1EMjY[iJ$yDȞ;p+YJx/A~.J% +A+jr+>StCDO?Bl"RDOrB|{ ofkuh_|?P :KhB{#+A(DD_$GT<H2mhO%lh"b\ m ɳhrĸ"X-{h62GZc{,a%1_-w@'!W61 \F'i9!j>7ZLK?JZ"RGLk9#Fbey@ɘ| D"ѲI@5 4!)Qn)8)F6C: P@bدe^PZ`4l1RZ^ S+!-#x-D~}7WAat},B 햀AbdiN 2N%ߏYP+J c=G䪈r?^`? (H WBm/0W Jƌ‘},B 얀9Jc!4 e$PdT` _LA"sSΌ' !/s&1/<%9P;*%S %cF@H>fs!vK 1Hտ4$ФwJUWi*&I(j#\< |QB[tJmVʲ,ihhRuijYYh3,KڬYI+i3{9׺4ZI+٬JZI+g6+i%mF5ƴYY٬eYhlVf%VK3jojyKE~7$C +P @IaD@ Cp'&ߩw5A zn(h-4[lF av;2hPX{$:7hb :@ޢ"tU ;-O7W!\Y|=9M{ZpO`?)eiߋ䈾ES#F7IqHM|#4=y +ww|{|NxxQu|*z3"ti?0|v\DTZ&=j$.X`!GaƘqQkI@]eji Zb TBm +e1i QbȞ}W$\Əc& 7`ೊg@pq2kQԸjuXQ},ՓtߏieƙG*(D y@Ɉ)8kQ +K,yY QYv8PEqd |xttZ~z5.G}-J_?N1ZiN3k>;+q5үޠв܉x=qOPezHxhQ8x(?=z_s:fq5Z^V7D5##x{Ny1 mAo4T\84g!G?5K01JPrr$xP w2i|E@{rZ}{8 zU.G}\C +c(DW z7G5 y+z~J6f!&_g IC :2ϑ2R!D񐕀(0pDOQ+50T%HE$1`J2-E }d" LGaCK$ ć޵>+yP"d\@tP!R]E˞>\j/.':+L.R B`~E&W2PJ14 \TAP^(E5QJ=GoC"D0/@u%0 G7ܴӧrOǹ:n R]tk(~kw\3@_|G5>^p;D#˝AD_եjAn A$ϋّ*!|\R YprX#7+ P +o,.'#>P7n/ڔ+"7蟏%R7ta}N "-hyϬ13CR'ft(D?i_z@x1O $F|Q$4\>stream +*'UKʫE`0XԊ{N*#Wα}bYsܮ%온X~ +4 cQD-V/[DIەݏbapBn9/Vf!T]p5Y^D-:{5c[=AX +3 X^fKp+f/q>Z0+^܏@;[nAY,#?geyʼ}Yk_3r#-gNE +i'+|O_^[,lGEry9z!i5RO|jĈo!. =i +xe +%Tee%s[!q-xVD ~}tp0+O1nq D5e-ëP WDlFգ^>?sXf{.Li[_G B3-.z^yQ\V}VjχiVw}te:Њ˿9 x-rx5l,E%[VB .Y%Q* 9Px˴(Vӓmb̐%ʎvRFך^V<عB'YJTW + jpMQ[GZ<Ӗ# _~^m Xk-=!*dJ$"Z6 c< nz"z p*|ʼbX^ޚӇ:`"(%s.g)B/ךC1ţhП+㶠h8}ab._hBժeɐU'CwBd7q&97|:4 @T'E=F~l+"|= ͗9bKhM %@Yu'$%#A8NŭA4L +SlmQj<69_ݞ?Az,&H{]+_,6Q]WutVW?4g!ՋaB׭2s˷"DkQǷB3ܠg' v&~8P(,g/s+@Bj']aAѨ%p;㑣kq']cjh' +謷[df:bMpg+,&sle{v}Z^[$ OX7}DXi +Fe2|vlATCZ)9(Fj\9`^=-O~EVGKg+WjD%*'Ua"*LD/_Q{䅲DPnDB92 T@H~C-J>$1TK>w$ Ghe=#fQ +9(}O6bD'K}45(_@H>Dv /4 ү!D{^lUbS-*Vq ">F}qU ܯ!D^lUbS-*V(bK@?C񗽌 &p }B Vqt@`%z;w%ʡ UAɇU}J0`pP[bXH~F1#%{ g螲U!j 7T$- _rd+KؾD+W ܗ9 '&}" U&J>Y6p$ߣ̕S JSh߲"FE; +9`lH~G %-ze;G L%`'&!d#FHg `CbH}7 0j5h|r0{RSIb;% KvcDIp?*) "8 ?dQ 剠Hk#9:$}C+8J80d~t+1+h;@H^"Yuz$'CQjF"Rgh.}B)L ۧ(e-#@ Cq`f%t?F%;  p +/P` ++qY$"}$d3_@@>Bth4W4 'TrϠecJ!*lW/H@oOѾa&M3)D}S6Y0pzQ`!" +C4YXI}EuZ +$0лe"}Q9Ĩ@>0>v·jE!NEED@ZEJ7 ~k 帆?>3ڬh獭W{6h6+ife9[[/Ǝ~lm6KEQj+J@<>'q0L 'ǣI~z ;I/@4x$1Rqh# p][ptg D7z:GR !%8YE !N|7\ ă/*a+ehDo*z22M#ljDxo rPZ +uW@ +MYX1rMkePj:]%Aզ:nrǀ^>W$hiF<_Oe$2ѯs% hC*^e*Pv* +jHziߺ#TM#&_Wf+HR`W +MɊR0Q9Z!צiFdƲH .ġ,4Ӌ& Ғ VE p&3J,< ݫzU j;Wm^?䟣9pU ǂΘ+:*0WuO9m,FB%&8h\AAFWQCA#2pT\GWeQ@)>]DoG;YA1C!XG ke|Xֳ^Xo + JRm\enzJ=KGl +,9+@{Ҁw8E/sE) :ͣZ =T:| oJO \&?SqWm}z!#]p@c`M\7_.(+Դ7BPB"t5٭Paeo+C-3L"<&4\$1?P;* o"pE `2p\G[BZnD \BCYy3I I]{8&{Fw_Naj[t5r~6V3 ؉\>44mT?0oC5<Ltps$x'ZZcʖJ/8'CF@ewNZvN5Z҉Bt\9OёvߠQa2(QOu!Ls2ePDُ(Z Ch4#* ̘A2  $j?A#>eKDA- !8$P") +$pQ: !4r#JfٳHeGEgtZP +#eÁ},:J~5G1_CLEC}a_&%@ VOR(0F(lTMbz&Idk@) +T 3hH}J> 4e=GJ+SDX$~DY,l`J|@XS 'ke@D'([ LDIS$2@f(љjGF"G(G0Xi P˚B_: !4rMfٳHeGEgt.( #eă)APXQ,"QR ܛI=E 0 ǐW˘A;o rC D!Tr VZAԲFDW4D(}\BJ=DSFW#׃ 8 zO#>0p,%f?cm/pǚӀ{A)ʓ]]rޠ^z +|!" (w-! +Wd)1ZL1(AL8TB{D"Y6C)-Lw=UNc4 1}B.BH`%B!CeɹEܴ<>sj;n; WMGY6Iheӛ2RPGc.PFo{>k'(ԡ`sEV= +&"9 2:D~S6 lP`ACE> "V,h\A@/j( wȱ=zm Sy͈r}G7TNQ[_oʗw t®]-h籠 R?`mAC D輐s#1ηsA-EJ(- :Dn#|Ӧ<7*q"47(4@`OaGD5*x2y,D\%AZrdQEA;.æʿ=zm-CזF 9zL-CJjÜ{VȵitڃÇ,2Q1 z(jQL!ՙ3z0םЖu7FB\ ,7\u^C K\ !VuM 6}\a˽lѐ;`ڜweFV5*;ߖˌרhp-Yרhn[p-Y +Q@sF,UP$;f2ѕ"A~QUrYOQnk[tG7(0'P~)+y[N +1J(C~o{Vȵitz!)pN{z\ WH!)Z.aFMq -|we?E^~1:.W*(K2jz*[ ) ][zY"\-BVM},.ӡ$ˉا/GkiB2_< П'P}ztQO嚹~q9xʒ J7M2З2Q= (ocA15Z:ԗsrQp͂&}Ik|ېAwy/Zn ;kHk,(RklbGCnyx{N\(z.0MՏbTAMI>cVaR+ -W@bAJ"7ћg~C/t3`]o|oڇVh q : UaDo޷anq4ymgʷR-PM|އ᭏S>xy+Eѕo>x$z˷웰m6LO A'nDy+*b[pV%Ip;:zu1b@p4ĸ[ĥ/? /("rxY䟂gم#M}}'gqeݔc22%ܟn*C!}_jFy==ekpJ + /Maܲ=*Qvaྜྷۚ]md|bcZxmS E\6* PV蠲QV`*A=aֈhʤ8ҊhKYQB);8 +aSVoxpvTQ)+|TPkƹsC0\3C + 38a [BsʅIOK7 CBqfqM5Cڷrv1:Gr ڜs(Ŀm<=U*×ׄwz0d5o;a'" +BNOn 0˟᳜YB- ͼ ӭ QQ,8ih ؋? ۊ R>5z +3RwCi֑# %2fOV'p"b#p.ߙLORMۉϿ6uC['2]4o0SFLJ-3ɭ3di+"߻<RΏ" a!{P߱Ce]B&j"cσB_rҡjtV/Y @K/|NZ2{1߃ȭVO(vz8<8 +:a % :8OZtxq|D:xpwH?sdm8.2659606933m5906291528m9.23992919921mlmLlmLlLLmmLlLlJI Y  =$2[Wrp0?7($4Q*@Ճemy֤2Htf=^ +SϯUj <(S\/ɗrh({c/exzA S%2R⣓3\ z@>!7J:4"F|vC a\CR7EJ׎[&׿0~yA‘͑"кDnB@K\IĞa͈O"sOQe@\IĞQ +dX{Bed.Qs#t]2`dKuO,,Q%Q<q"}Ol +Z) +96'l@V%z(]لP T}-#$J"x!k@Gt&<]b1Hl%r(\ T}-cFʗ*P /$Dɀ GTlB$P<&}G Qԝ#wD##"X%Qv! =eB-Pz'T ܁%nO()KQ:2&[Ač/T4*_!U%rrˈ!{"{,_Gx>Yf},gh9aGD#'#"F7#*G6!HD攍 {Fd`HUޗ Hh. {B{6C|S yO ܁%nO(i &1}O&t Bb'#U~llDh| [t@KyBz=d!@Ű6TJ̞"E"e,D#;!d.__6?$R4$IbS袡l^!@D?tU2$J"/zzT T? +EE 8B>WRqMJGC#EI)Kl.CMVe~t@p(zdm?: @I),5.NbEFIL7% 8 +"/zyU֍*qF ++ZFhEJP]JLѠ4%*TJi2|4tU/*]B +t)1 )Ql-VbMᣡJt~=QRj3AHh2]@3hd1i ](e4hPV$jt *Х/j HS+Je.r,TPL0@>THFJ*ztIUƍ&lxB(Y"'%n~HFS#GKiKlO_CMMHL~@G'CCdh@?QVtH y*dhq%r}r\w 0DJ%#P5ƙJBIE_/C +*qGȸhsb'QTГ@;ih9@>D h/jUG'N T+0аZ%:频?/jc,&Qth642@$f((B- .{Q@1*]ơJ%rR衡e/$h[Mf[V07/*U {(xF!녂J"oG9h oNaB/녂J"N=h ]bUuQt4MGOH|aCUdyt$*1ɸ@ult@Qe|ӁHPdh*G>@DTj=4USD+0)hePH~+? 4'G@_j/| 6_TE$ftL$?:te +Ad:4642@$f(Z$~*QJ D.PKj2 :dh$\"R1q2߿(2^(@l$~tًIP2%.P*ZF gDT}( ʊ[GxC 4ƦbPyBKէ{ :Ks޺Ozޚf~ZwnlV٬,iYYfVfYYfL!sPa`l#1J Qi(/XfKPi$T?od +$"m5Q@9?9hǁT$~ TN~"I\B)G Ę #C\{K~ڝOJ6%H$OBf*JDB-GC}C!M>?gkNd*r| +@H@?>GTP"U-^F$`O8(@'}81r*?DMNmM An$ޞc/#|p"y!Cmv9yA W4ch@%ޡkV/PPE,w$DM~=H>|t}շ "?AHA"}:IP "}GIɏ(@+Ƚe T'a\~ "[$Ğ^R+z\q .jd'F5˷׷PodzK=#8r7P.7zHyOa ߋj@Dޡia ܧs~$l?h%1a 4/a:G_ OI@el' #CIhK|*ϨO@|;524@%^  a_Tuƛ@wh3x6 S(v@%|O D EOC$ ]ŖF9ɿ(m}^F*0};yLs?@2E lp3 +`$h{9Ed +6P 'AfC&hAb/7C%|Gy,q~K95*N!@?t)=C_D8t={4|ICYe+T@"g?9g F$`P)rQ=KQHX?>x{^B ۓ@>(FG`\r.qiHHe70U^%TOȃ6]|`ECq$!ǣ͐}A}%Fj/2> yO@SB3BxZ ۗc ,.6& ="r6+Ј-)OBg X'z 4_}.4whY HBGZZzRH@$(s{ &pPwheCXّ!~Hh;A3"1Oє@yo|ICYe+T@"g?9g F$`P)r!Ԇ<E3PV(@r$d_'rJN @{dn琽""| PV?ˇj}1?P #:Ec& F]Hl$'Ȕz6јEB#rojz1'AyO. +"/Рo4h˟?8( ^'>7"P@Kh"v*ZBIHh#>)ڔ "[D D,aC+H'jT!tc&Tx(?r!ћsӛ yB##GX J4Ybo$ +yh%P ʗ(2x%noWY +N Q" Q~Piͣ1Z OP6?O. +縨fL.$G Bm^>.Gιm{"y|IP޽EZiE(.mOOI*&{E lNS?Ʋ #U&}SiyCCN:d.CE.dOP c<r~TPn+*P1J#[\NB=b&_LqQoue A.鄬ZI&,KLPۑ:$1P!emtPZ926hȞUexހ8+G\A},(1=\W(ȅ#Kh\NvUB 7"jB2\RD˽J/Ůj֋U'52*0":ƒHsM ŭ`@$[z9#%`u.L4GA,PY^(_ +d.{Ԛ)UP%M2@W .8zQZ#zX>#`DE>t$ ,|pI&11z\] f0Na5[ zR1xYB*|dW_bC4u8: M@Bф΅L}qQ 7^B $]^4ddr씹˨@.Qa!x=2 Ѡ *Aju>) [|u kiK{!l.'qq rFE l'lSA6iX>c%b}L[&~(MN@e E.ɄNf&,KLP& 1P!emT:l^]926h8CpYe@s& Kؠf2)2$Pf+rKcxp7ң8 eDSpy ʺ\O&(MM@e E.ɄNfFYT)M@2bBڨt*|i 7Q.GO+g.T/)U _T{t`ѣma`eQ&sS4T +7tm538558959961863220214844LmLlLml1.18738512518371L_ FD( ? =X_DbP G?w 5Hh@,XG 3)A G"7AKzLa@wntHV|GYhғ=Fhr Tx{Ch +Ɍ7"/k$OE +̍#b{qFP@~tLR`*.'hч< &}I[+7e{9a%ܾy\h'}*#c"W){:Q_HF(r ?w aya/k +TSbkQI|EN!DX$,OE9ӣx/A{@e( J|^"֑b /Y6$`O-^4w`G&(DED`  /]N}C,pâ_tg\ǟ%^5( %9;TjZ8qxarZn_2Э(yZ9,$J9D 5;J~D $/4<=*yXP2Sb/ːᆄ#rb]  sI ,]1,9*yP_ QX??۠@}"hvGBL6[ |ST&QJ^:r + \ 'FN@:m(@c`N #B#Fq&{E(<< =Џ)C}"!{D^ehDliCC"T8q #{. ʲD#W}"hf>P^mr( q>U"oIW;b*yR#{e5H V &\I lt `n7NSiG!Xʞ} WW?O W<=4hG+K\D)E@8$d9")"@[ *r$b_##G%Ծt9 D{~"^$v/[9 + +F.rK=CrH5ĕAF 356/g룐m/dR qe|?* DMC )k/(d[ A!R6b@ʋ`Ζ޿*V~3rle3A ![ +vK*B|!hnQW*;9]I=!T4 DȽ@l(z%h_(qRp=C>KhAҖ= +TDB#G$1bX vlgJɫE=CJFAI>D.O) Ϡo^o38!Ήt&xBmzW󢀋PxFm +(Dr@$09J#uYBbVꇢ:9g#GV@ wU^"If(K "MW+r[$x I{VB)ʒcP$PBq*g0 %_H@zU.+pWMG{nH|A @}@OA+= CG})ME{jQ.. ']~!@(< |0zp%+ 7FC@< /DEnF\Jb. * g"@W ^OI>A(OA3nmV <;!Mb.y *\ 8%_T}%Ogy%'$O ] +>UH|A4D p=P/'F:@|AljSG[DDzpJA~<"ײ8JOW kƫ# '^d_49(Ih<#H<^ vrmHGB "r +pIBFp<#8/M--y9=HVF,u|P6|w0U HQxE) +p|@$U)rP%xe3 &xGhs1WY97|OѶ<_$ +"1zQ\% \OB*p(< |0zp%++P$oJx_܌P=\3UψEA={EҼI6ΏO 3hCCfP=(Ұ-cN|8^oq"HE}y:0ݒ=)He+^8 qXt@3 WkxBh29_%myB8$߇o#<=v#PeR&qxS4A  է `<: .xBRdPV JKd{Uh@| i'r GGDڛd!<5wۨ'}<_k%|O V$bH:@ ">xum/ [C-GUAKG%/чڗA\d!rkG mާE+w/L,{U!tJ,/7_K&?E+,֑`s߆PiI՛@XKr4#D9(0_QNSdD\~*P+ \G9#q uK?G6 WQE)8i<!q c4-xh U5ܤ~D|Ϝ pAb%W ~Q2+HGӪσlch>)>˅75"Oj>Z2Ƚu$0B.$efO駔N"Cl" uSQ.ڭD$~y bXDH@4ǵ}9+ $A iYb"DGtl: ++w.9YDPօ$,qETJ&R%/oCˑ=A#!K=%|PQdP@$j{ uhC2QEgI-^OK"ZpXa߼S4c@1({B!f$zmOWGn%Ξe}b %'h>b:0D'TU6G7d.9 +qL ҈SD"-ˎކ*# +MGurxJ翖"z^dUr su]|'p5ʈ~/gE$$"9: )l}N>d0&)sـb$T9\\R1VGu >jrސlGU])9l$袔~L/qcfPMKTS?BU[?HyC:UuO䰹2AcLoHdslDo~D#{|AϞȣ^h=Bo,*gOF2{IIL\BDJKhPEЫQiG9 zXtGWZGƵ4-8_++.`DUS[ysP 5[ZcBK9@mLt4p{O4ju~~0tLK +h#~͒菨te~(_-;r5ZYWodb*JZyZ!R*~LUGbɸZ + hFR|[&j ʟsPRPO_\Agz<+ZpM&A5}rސsَW'r\IEi^"nj@ƥ':u-#@z2N݂+}H2o[pW,@E뗳 BS9o QT Fcstg!N@ů!o%n?-2=L)6TkڀHEGݲeJ2)jY1A?@(.ܜf`\o)\:z\tG_w9 A`459_+cJ\jz}X zQ!/1QeC+$VPχNꆫzSG˚)87\r#Tz +JZ`{@rq}4 kш*|3N3ĮOWe617Ŗϧ1 EcAqͲy +yb#k#!z("e<*2p-4>ï~MiTFH(T*&| Y%h,>G70 5|Ly̸fF<RKmmZ\@7ږQ9iZF+\BG$R_ H%y(sZG '쟍JLxІcеtbf_Q丰6.08'In9]b<L)˅G@A3J }qAvd>XMAR#mXHm9#L&SA5.r//ci2qT_(@~966Ⱥ\0= Ft"~*xD.ot~ D(\CGzB71c.i}ʰ~1ADgd&[eBA~|ld\p ҅%BЋ`U q!GC,"q +ySajɵ \ $j?bĉWw.)r)k"LZbͿd]@֞I/>(2\2 +nuA`lJRˬsaqa!,r#=/QN)2B\l;$#^і!wvc\[A}*_sd=*M}e )KLmst%9|OG.澗WͺE ߌH"gԲ&G4Go͕ +4ɲ󡲧sGT|tz,ИZ zd)@JXr}nr|4|pq͌4QwvNqr*JLep7I۞|T +Y< e~?eO_20)EC@$ސmJ>F!-=GMG8]V ڒ@%rwɕ#"X So(wEt,P/{Ɇ %ıh +EZo: +$cZ稃D@"-4@)H(w$]xÀa%dߑD"J>Dq2 %bhd"CG CCySyDd(H~e-|C䖫"h{FF2b#4Lg,0shzYd^%vo C=D1K!ON(Sd +Qvɒ{C旷E+1{tvh $0=DA8>JI#>I@ꓧB&8  ҲY&'nD`?jdSzmD!{(~!p%)o1I~CeFfDCFǐ{DyB c#4Lg,0shG\WP7*+B܁@^"L'$#,9X( ]%BEuD3 O7%"{"$~EȠP46%JrKeȣ@$ҞБd8D%ߧ/cAF#aG섿fCU(AB(}.F>xYEA}CaJ|˰J=C %b?PJE՗uq`QdXdyfg4IY"XH>åÈYYf3ZIϞ>-mF+geIr6+iFʲfFJlVf%h-u:frVff6VJڌVr6+iVJk)4Ԟ' qcSa2.`! esTe>#U W#Ðƌ{FTtX'yf cEiYڇ "_dyBJe ]s%,\^2Z z)⳼Ge!T +Yb#evCj +ybe!RAbpF14yGe#rED*ydCP8Xátr ٠)jtbzl\^ie.G/\td>*ӼCe!(BG< D`k]ꇀ&B6匥Z-e; +p_>$b?}U-QK.Ad*Hg^`B{,FON2O.< xdEvN4v\n"ZI14g(o'GOP,d2Ɵ_Tse#5>Y yA7W)0FĬ_,h35 ;vk?ov;3X.M:1A0v }^K[DF}'q[BY=&đw =c^=o]8!]Dc-9IBJD]̇oibZygiV;2R63wnܜ #[jc Lng[E +}v4A>G?jL9 BFě=c~rP4AAI\!#v=y]dLKarjx]}teijx#ػ#[Dcx#XXugY0G$2/aol%ZvaonauXMjBM`kCX''EFKbPA./ #6=jj{awVt:S1= +khtzn^uK/ +~>!= ˗a!lɒp֏do0YA#Nq[C}#Q-A'=āV(G=C^HH=Y?/e*#$8!qS[)K$GP=j9O DD}'='A߈ +z>ztuEiW=w¶;d$VO᧏.n VOe6 Sw*_EH" 6-K#ck7LPeUףW#gyi{خ'uGs[s"HGp["8>!"MhK`yk1j=w߅y~K(pG0Pv 4*|Pk> ՞dP>.䓜@hk -C7 f*y "?2Iz8_ǰ)IR0+ 3#[Cyf*@t$gnG4[6kyLC{N^)2[s:E +D=A?g`.nH:G0i[E3G~r&=-\6V6oU}^Y*>8v[s]g;O +7B0 )8A{^ ϩӖȔ5{nc:7Z8=a?*ڇoubb;í AAc8`)$ |6n8q#}-|`(23[(ZrNX$0=w~G 0-L1jz7zA:=~H=o]:9ۢ=Y=B9jݧ03o0ԇ[AzGQB߭[\E^',3n&0ykaA26A܏-RN +ۃe/1} Cɭ>#^< +hnknu{p>jKDȽ=wQ<غ dH|V6HP=Пṧ- +~tjV>_ rĵA~l,མApU1ﵨwH tV,rT-+ |$T(Z+Ra~>;rVC8 V+!߉R{s힧bnaJmwbXxO#鼇'cxfյPxdAmKctA`-h/=oQ `h@AyK𱐾()FNNq/x}8q-n>#G Ώ +g8Dx4hI~Ɋ!՚T.ʃbŧ1ܑ*wBX%Z? θd +Y?!= "־1?N'|=A+#6ߊc AUd,E3%/֪E'ҷbjSC."KѪDZjjuzˇ hd>)}C " +j>>"־0?YMc|8{5RGo>DsqnAǎDe̩ϝOZ{=ʹs=Nɭq"uWS7 rB/GvpB4c!Cg؎"*% b9Fc?#W +ч&(ѧHPABڽϯGieᕵ5UEܪcԂ݊˼w\ɾ>w@Pk>AEsmc[4¢g{ZQ$3I(EyzL$(ZuLl&ZYE)!VB|w\Fy0}ϊI/wd`@crDT?}~_{Ck G7?]EU7?O~DjXcG":̡OwonD ~'`=_6<N!Ge4ȱZDJ O ٻbBto ϖg)1p_$PL˜:p"Oe!%`M&#E`JHD 9%t//#Z a_`>s s}|^.ՁU}1<yQɲ7EBWb_’FD}E٬feYf%Vf嬬5oli}v޲~u6a9*U߂ Y^JD0EctIB \9#i!.UO}9P\&[@ο^VY!RG8/GAIh$<8ȀB̾^O#¢Ui\>sHC\~+d#bp},P5W 9gzȅ!c"!gHܞd6&pD7D\g29/ڸA.oVU KԞdt_D32@6XYH X@ +L!@0$N#r-K~͐@KOH0iWd9'$-wĐXVb""oi>C S!CR=B˨Qן"#?%֞1&Mo h zAp +$²KTn`4H9 Q" C +&)#Fe=AQqߟ"˕#@%ڞ29Tf_"9CD(DQD`2Yn/Dޯ"MTtZݗCD}Hބ L 衖d&$\T}нhpMҷRP."}F0塸 }\zjN!L]=Y^HR.G8y|- 3A=yZǜ(2@/9yBLj>2e +CMeP,On l',7AJ"}07=B0H@ 3/Y@$!:PD`S' a\d} $nψ +*R1(o@8} & g$06ݟ"CL&1$v?"brG$S /ЇHdmP#CЁ%8I!&{rQ0 q  @IeTi:0Ub@=п@&EeFH~Bȗ@H=!dКQ_H)AuIl,GĐ /)3#m>C S<,x|H<;圾_>:/{DW$bF{T +ԋD#BPIBԁ4$fD-DHrU=B(OD!R ϗBʝ^t tG$0]/pE"g!'H@H="e]`D_<$ƼT%(A+B L'1)3G(%1@F.Otk`24)_@N*&g ~`9H!d} %6Ae|H/H 'ZG`Y=jN`R_r!vCd28Asl牑`0y`72WgL{re;PF$ J8N RPXD7DhRD2,%+'@aXlH #^Fe+P(hv &!VS!D%1)a +W]MZrt2mm6.057678mLlm3823527070007324mL7.0316E A0 wblQAqƒ>$nFN-?om§<%nEmG8S"wOrƏ. +%$zc8/+uH\ tuP@&?cn*6D/s5SbS7J"\y_H` _#Ϗ7DTC<`B ~(E($b?H5)EwOES"oI!y( pD_䏼'"1E^Ё6wDɕC:$:( pDGސC<1DO$*. S7J"\y_H` _#ϏwJE{A-_Og!y(q_?$W% KbG$: pDGݐ3|¿u?o6_K΋ +M"yQ3p,CW\ٗsA ߒ#xr/8DŸ|fGra/tM?8D%AeWd#w9`_Qpz ^ /Qxh<%؞Q} H=xx{D#*@B7 ~ e{DGh_QœоI hρ$rПIr L= W`! + ?_>;zOx}#F .{GW`AՓQށ '(;$||9&Ir+\E ?_>;C 'T|@ Fu =0_ 떛|%PI؞Ѹ 8${F'po`٣'I( Nh|z$Q=9 }S;Hl/A2qH>F#/ +| Gh_QœоFQ8Qxh<%؞Q} H=x70IB|x&aGh_Qœо#'}$AОIQrZ+{F'ST!O` gԾ\$Q<$}OxH-<x/$ 3:_BqKxp J=#'$d]Ir'pQ S>+P! ޳';=@>0yI=v'p,A(U`)ѭo-x&aGh_QœоI hρ$||9IMVotH II7O %ؕ([,oG(O?QwG'q # ĔxKNF {BGh9(/0At~y(>1rXBB??<:Q(#T'Ծ8${P< %4OQGn`s 3=rEO`p 3:_B `yY^FuIQ9˨N( C}r"gH ZO>F B +<*{BAhCPOh%4QpP^` Ƀ(#XX1* XPBՓ83KhGLW Bs<'vȍnb e*QQg9~ e<#F9O% ʝ%h?0 ++ AydN KhKPzr!:_`st2$E>m#>^\$u9 #P#B;%PO`#A \ {F^`(] <0~C?%|rG# 3 +O.~'Jp쓏PP h4({@ ;'pPŕH=8pp '('47L%p=uP/p! +}N{D(~pO/H ݗ8O{h''A'4\V>A%8ChO}y8 +OC>D$xq P`q #8(aK{ $Qy8(G^vH{r;p 'Gy~=qr(NGԮ~>B);ChO<@Bɴ=C=FawlE`8 'E\fɕWG2rJ.Udx?e'7Q)K]/Cq`+,;j}ҏ)h\Pk\\wS[B1?BfG;~)%$!{At/U?dW' $$A͚[rEFtȔ+r]B}rƯs\f@\!@i܌R5ΧAN'?1}Jө:#o2n(PbF6Y?˒nT)(ڢiWja,ek:ʧᦟ:B~z0ZKfSCOB?pф|u;i9`T'/n+vҳ{\|Cz<KTGOCq`u{49`&H/n3~ vrN._A@o{Cnڜ[m֒V/S7TcڬYYf%6Vf嬜JJ +ZthShC0 | E5ڐSZQz ;EB g h4De]+p* e%ߡˇn7${EDa4s8к+ZB|K~& dD5*V$xHu 1Β5( ʨ,|'iHH<$CJp^D@Bj #.#|D!WBeJX! E==t'pq mH6Db:dy!j8;FK#9(y2#R7J"A&e }GSKx!=%. 푐=H^ V20Nbqdhb8($^2 :x`/<"ТeȊeQY 2iy%v!d#(%OGr"{,$8/м:y~QƏ37r`t+2t8p)g"J HJ]j2Th*& {$Mv[TaۛTq~ tT_9}#&R"Dg$t#T j?Š ;_(C|g(9mx 2": 0DyHGMz v  L q)2"Q̗(&phu~k*x.:H2VuP> \9?@ +@`J%"!{t +L2˦ @%fhH $D %GHJx_:4!LD6'{h$ʾQ0H4 XYǁ$OD6y"с$h)v$W`Q /YF*.6J^ +<|WHdёg*PC2-{K%~E!!?`%zPj"^k)q,O-P'Tr'S. %^5)jC"LD A{iGr*_H܏ч71lR;.XŠnHD{l-J^!-/Ug2X$ R'w aLQg"#!P0A+"E6% ᖿ @#m"|Ђ4sY+ {ˏfwxE#'!Yȵ"QR"A}"8 /(f5Bl~H9@⊽#e& (~~d+B@"@B:} 5 OTAHJ5 + 7$lF%vO/9QOZa(E=A@{( +.6HtC~HH]"{#s I .J M +T=C6;$(-AY1Pe 'Q8?v +tb0D9-@%h)KD @РCZ @BIPD$O!!R-A{m!#(?>Dg(=&{(q`sCCYdjx*;l"Q/#"MN_kt2Ѩ$ڞ#lӐ:PǼj'EXA(5@)(IP!9C Z ِ@i Ȓ|J.kq(8JL.D+>,APhӈKA&$ph7"30J#,8Dv y_h=н€Q>!v!J^!-@AL7CPyHnIĞ",BZ EH2\'$}%9b3.0t7#|sHP,`pRwI(|ĉ@]ד,Z()x I>V`at_3v\,LǦFe V<ۈ[U/SMxQ 1Ѳ&Ge@rbH(v# 0"-E$M!.]@UkG:F \L` $( %Id!%nD{TbZ`5.G8!PgiΦ4t%G;hYU゠uQŨmeF\tEr%&R8?e Έ/I~0NVɑJ!:ãezB x#IsOH"737uo"ISz%ΰI=S4gt(-)Q]sXquИtU=1Dq^}E=H?TvAPD q GO!gyz8$(+Փ><7?F94P +E1jrwwdD_*b*,zrjE\g=7l[]!A30)3^Mi; Fg+`0H4 Gc&ki ոɈvI=եrH&+l,]@R ҁ?" t}#SeJtDb!RH%,!(`#H}J@b%&_CP!FHdB| ӁZ$,/A(u!rWH}GK#SK|>K$,L"4rk $,/!-F'$H>D"n BVy"# ȋueh8DH@~/+Y"?p(SGgs9+]`!`sjv W4x"PW$$ V$@J$/! ' +"V;H*" A +,){`@ܗdO/Y6%PD:\>V +|PBL -p" E:@`J%"!{& eMA@%fheChQ`gSDC %P-dK~B;=G6b$ξPV 7d \)q,g9(DCtr4&G +,){`@ܗdO/l +B+PD:\>J 7dFfS\z?)~ł6fֻKZ9+geI1oi6f%=^|D?#Ѐ  #ꄄr:* \~q+9,s:巾wT%$.?j9F\(C./˗Fr9Iݣ}9K4~!ˏ@H=,t@&@l8% Vf + `*yG;:8^yfJ-AAѭ3 Q9Vܠʙ#W!!՗r@L`J;[d q62}'r }|HIg H?8CF .G)~0ɛAb_trV*q("pz5B"H{P𣘜/"zx:=\*"^o*C!tB'ߔE+-Rt9+.7!p @""0SO}I ȃAkg (Ay +aw^OѝK\ww7_u L*>_% +a7G*éV(bnQzB )PDo˙xu)8/SF3zy֢)kBrq $Ŏq^lI:B\m@}Lԅ;#srʑNt~[8}-CQ\&r!*Q/H A02DaE9dKBŅHaڒIH4QH:=/x2bR1G(tbuKwa2 q)")!q:f4qc$(T +g=S%DžPx@hPBJ%. oG0p %,<9RG%My\;binʬH잢yɫ!E*FDx,OA TD—@$h~4'/ș"@{I)Z 0?#p:\Q0 'PuF$84?\AX~B + KL~ DY<0˫d !0 ++gЁɭ#z,!yEG8@I~"9.%I9SK/?7 +CBdLRB"G"qp}}xOo9G>_7މW9*O^!{DeЇPg.}/`Մ'jebF?ZUHHs+P|FH?=_R/Dbz9AD<55x"XaA[ U6#K=$g<U#`A  DuRqEa!EQf|G`(JUP/&bQ, `j1/`Մ'(jGAـ0 +fЏgZlZ +K퐥Ukg,a-xqw |`"d[$;IӨ +bnvNfh;_МXzdEcj+f,>PCNN,Bhڢ5rwbGsUcQ."J^WH;1;rAU'p_da*@)cU&`uj$Ϭ!b00@ 8x>U2k^FXf.xG |FHT:gRM"+yҎu8#RYJGzFW|f!1v*"0X!rFSԑx"+{L2p3eAd? 3#{%\=F, E\ص4Ic.-um*^)'uI4ij%XG聪?ɘ5 2CK;GnD`Ja$T.c~mRx%f ၊5omQ=Kx!.L(L:$/GkțIw?ɠG 6H&98REu\.ϣI9GRKceeI8LO0 p\VRіx|WktIC[eHb"P~s¤q/~i0T8y4!T W5rb?Hb5_pA0Uމ)_pct"@D]o9|"ጩ==HnKY /T U45$`*"+B}2bS] qq΄>1卢t݋&Adz~܋D2<öR ]6 L`,v BT!p8f)?PʯaDGY\\ +D"3] v/ ւ[PH9m?RY"8^u)QhS9lGRq#DQ 䉺}CHTT':g~ g$C. +Vu%SaW@d/IV 3%|Pr&@%O͢EDh!f ԵDH` `H S@*@0 6 (ehQ %j!m,y#:-;")[:¨L r$\d> {/B*};4ZHB_-b@pk `9EཀA~!l軄 +X4,v 3*@T%r_ ͔0#tRA##2$k9⸾$ !~ aU[(V]~;\ĈtcL2zja;ߑW ?'/St"k"*$$WkeH!w*U*"vܑH![L\ zߤ-𥰅;]F %gPt4V&O"D$A X^k q =BuH˽  +QX_^1pk +` 7n "Ű=$ +?ϚӔ76T(0!t`ⰴu3x$@ձDh`2P&qO"}9I^ Pe>D#{&(4ķ\ +Pl_g2c A920pFB5"L0Rw p{F B}2$ĞLv`ч@Db/Da +- g@wI_(C29%J#d@d(Ar'"@ o'heQPI@da\06HT ~(j`$u9 'oPOF (6.XPT%nl$o] l&~H, p C|@4I +A2JP瑽B +D[ P;P~lQ"xL0 )B @hS1*.Y8T@IA`˙@X$x? EH@%?"!A>8p~# +1 j ?l M _D + )AY8T?I`ĥ 8E~B +ZQH.2d3%h/"2FH@H_H/BWԇA"9@Ӊ(2@ _p$q(?G6X]"<(ƚo?os  s@(CBOfEtQ" QF Ef˄#6JBYKQ/Yѡ<0ߠP@cOH\/qD?Lϗ+oDq@BoZHBJ"D?OZ' A#~\ל.oqb촆)M?Ч(Ucͯ+q(!J$+kF@-GFp|ЕE5pEPRK^"Y}j$,>6`EH1 s>e,O7>D;?,i{?v(Z㾊q0=tm)K(zI揭L<3 kX % g_eGťg=,y!pHJyrEu2DE \,~O+ׄ#nt"<=SF.(0_'mSeD_LU7=УR";"z3`dyH-_|RrPA])LJ$ +7|JSJ/ZaTM +B}$*J8'D0iG"K +jҝ:RR%?ZBNEjɊ DWBqHHOyIa@ʔ|ȕD}$-Kւ +%'g#qJx>DdȆ"򁒖Gϒ]8[@10 c /Qrd x qp|%/дCDl("(?,Z*h ^"!9BG6\ M B_|ܒBuO.%oEӖX? а]S͑BSwȫ@L$,?QeI  `|7"+USĆl82h* }2i +d .!q'kR*/cFGdJB'WEIh>)y C\z{Z1}zC8'A- \r a)eG_!m|̖ Gh9Eђ@!%^!sh@p Lj;YCU &2ftd Sw{rU>$@6.5C怎'OD|Ȑ E%Gϒ]-EMrɆ@I=ZP [ tB/GCjIp>Abʀ!WI%kAIp{;x"6`Ï= аe@'$lr4&Н$ r葄_X$P( 7>9V!"C6T= +-HR T#Z.a+ D^ +/GC' ˇF9E?K!>P3]{G;Y."udđ@%$?0eHGXzo|e>PCdL0/z j.P8 W$Ny*1BC6R$'{CO*^ +/OAKH>.-Xq`w[=}az܇5'1+{R()k!Jxy!_Gf|C.5BRв%d!ȼ@S O|_24dWȸr4dv cĝ!e([%[TFO|ĔC=p%kA]f(c;}޿ED_!C`8W.C "WvIOր)}99>P$ 'LrQ T\=󧴄#z".D>GfÌ@0eΨy WG!M}Ȇ!I~@PKpEE> d-a 'LR.>/CCE2}L3R(gd8bAB- T{}X*Ȱ9D^aGsM6<.!aou6 }Y裄?9( s;#ubH}FɎ#$~Qdh@J%!.%C 5-aAÑ}3R玄 wj,TA|)7~@"!D5IEGf- F wd>;b#EB#OV(uv,X"(D'AC%APKhߎK>^6wHv,T oM2Ɉ {2CM Xvt"X +13]CYʅP@^%?I=+O"R{Y@(B /t bp s;G( gHL(b J^O{AyW(! C*IcP + }0sm!A X$Gu]! -} 4]^} $d猪\9 k˱Gh' T5'cD)%И="a 4NB3O6(*N%DF' +y%d[D)Z4"_l|& +;'TS`$6=̡~|zQyiQra. TvOd GBe(3t| p4+52C/N2_z즇p: Ǽ^|!D@ %bQ&rZ-C>T+ƥ^D՟ln4MgY乬pE2yBH "D\!D#\ϗi2ap=_ 8Mt. e2;|ZSEL Q+Q H(ٕO<~+T"׏*k +ZoTPɊ)|$L!%k0<0zu[wU(m=U,hu;vg{Jrݓ +Toۭ/[m*$JL|i?WJget_y-uҧScłR@;N-mWiM1Im5 +lu~m)WM1^JW^kO^vwo{g[g}s1WMiuX>p@(Y CVBu  AA?РFca 韒;z t/7 ]C+I iG^kpD@R` ɉVSr@hR%qE +M`  +!UMD#4#* Bb WB 'a{ y}G\$h8,Ց ‘D.qhl9A()0/" At#{+!?qw0*aH'Q{A 6h= K#ndW + ,J_"@#;>>& <(!&?na:#m&VN EK~Aм@?KdB˒Fρ%K~Cd@sH)Rw ^c^.BDލJ^ rD@rgPH4|Zb?21' 3CqzÅEQaKD(g_b1FW#pC( GB"Ҙꖈ=Ge"&8P +"jd[G J_" @{WP$?P>,{ȅ"nQ | H~hNm/R"@{/!Ȼ]_F.X(B@~KH_ w $w0뇉Za|2q'{ޕA%qE +M`  +#UMD#4#*  WBva @ (}EO.#6$^"h_bj LY"! ՑHrHr*(SB%" h:#{sP 2r{GhF.8* \!1q\ rF o$`@sA9 'A"\r(Q{ǢVI#@`!^Gw 1jIrPBUI~rShO**ʇ%vp4Q`_D`-2 +#}XNbJ{jGP}OH > l=~DCT/r +^I!AG(Я%! ["D^%qG!@5ԗ^>qF.MD,Ex,>Eҽ#eX-{H[$?ɣ!ҐP{T&VbQcDH@ qU$J!Z/ _D@@ 䗠} Zz'f$f? `}pW#z `J_Dh_]F.B"(3 d@~#8(VNX)1 \Nq= KC1<EKr9 +JDrr@(hI~Cb!!{ -d@D냨{B[x= ƙ0 /U$G ZAP$~J^!r 9 ? \L`(BՓB$H/{ȇF$?ɣ!ҐP{Y&VbQL`DA +Pd*"a_6J'J&C Hp 2 @Dc+'.8Ȟ%"D~"p~F. ( |a`- ߫N!;>ǧp)w=9+ Q$J B`vAh~%{M]G! %j"KGtK9߈}| +ܗ [2iGhzᬃЌDZ'#ID&W C%"@}ct^.@D&*І+,W#@^CT\aoG$YB 2@MWHX^z@X'pr"UZPr5W"ȿ<J$F~@&BƁ%@^Gc b#{PBMK\~A -oCDmHH^&BfӖx{t1Q<dOBud,d@yGQqbdȽqJ^"Bd~>GpɵjнBrG>/B(7džk(猠H+1( k "BڈcTF. XB?" 9"dSeD9RE" 0Pd Nd1dH["qT,9T``4d@ !菽%hDfF,?|&q90P˫ r 6P[Q c4#-S%"@ xyG-Nh<@I,%"$?A<m|! +.QY\ ّږBg#sW9!1a%D^E[ HtCߗFJd!&B +#A{ ف$2D"WNJE"B !{1K\RyA)?}=>+nq@P.XwoMݽ/g BxaL>3ͶoK1u>͖i7n~ߧ|׫^뻋o,rSx<}DC_ˋ0dEi\:ؼz1KTTxh9f/D ">m>)Cr, +UOwV(}jzy *DU-|rI4C02|N5Ql>5"(uP!Mɐ&uA_l>u-kT S[QrҔc'Q}zb#0V,LٽPQք!tl7*DUm刓`ԃѧgmɃڰ6yrI4C02|N5Ql>5"(uP!MȊR}ѧ2k|ZxB6kTߓ8W >Ub-dk,}jXjAT#d^O4T0>,׍U:0D=-=ɵa{JuEh)hd@b7@`Kj?(q~6&"B] cd<~ ),%S6 C THgIYkI);Vǚ4*^grUH'$q誯TɪIOsSGyL1ʲf\[wNoRkAx5fvf+֦.s7,Jf;b5GyɱeǴ#Tqခ1޴'u +eU^e,ٔIN)jjLws")TB)q}I,YAꕊ4<"*_jMZHK//u'K*87hOuSf3BWLBI^JT/Ҙi͖&O3Xk^\_L϶xYh&` G~%'IJ~By%J\m*3}=ii9$}H}^YJ) lX#i|f$8!ͮU Q46Uv$/lCtפU#55E)bюgbMo_l YYbĮzw(E8F7MgĬf9eLU]j&ԯG9΢w:[zR\Fb4'~Y#^VTJN-~H& e^zsiSVݜ?E>QG;&qHci^葶ⲛޓȈb+b!em^I&5Efߔs1d,i4&<4Yr u'1lNLGˬZT_XN}~L V'V  0h$~fP.ů´ZSH2I !|jIGE<8SF\Lu7#\$/-%Iw'+]Z]X$fӈv ?9Y ;Bo`A*ce!{6dFFr<)e_5M,sQ#F&^M;T*~lRZ8h(^\hsk}qfRRW9E*ok=osH;硺-T4Je]y~(*MIRxwr Dm7g-[cOUY{bel+vaLtZ^!U*'bYaѷ{~  +(,8ܸٝ1][RjPHRO(V'IX9e13n2FmT.V8R 4D3f;U`4aQj(CS+T5#ZUjтԙLu0RbTMU8 'V3Q\/$mZ5á~X6(5B+];ס|O4`]k#gk9a \T.9[n,jXYXO;5ϣ=9g뎍pxs F4O u媇e1ǑJE4 <E l +`PT@A (*PD`L`00` A D@) +I |+a +Dv2i'Gaϔ&cHNh42yƦ;/^KUy  1tq50VLʡ̦?l aIlXQfpOrκ 7'=:lyMkǦ(椽,}Y9K:\zbSz=iVذ10p**1c,tzPrfWaHTA>t(KɾrR`(@S=y"m{R +ͫ!i߻0Ey5L*HyL)]U/46O4RT1s~ T &k69v$ OKt.r3u6pȵ~kD{9׶dM +}ud⬃%# Ud"uW'$$7Qv)F7>D62+NxR fw|J.\bX -p`* M ?os\jgD36J86%ULT +3tSr]4S٬ׁg?!}zzp)ނo6QQ%.CKgC|r?mCzU:YjI5ˌB+[,Pk;fÀp'zX]a@x󲌻2Z>AUd:ۖY Y6n/XJ}SS#tз"P;7Ⱥf#⦛rI aq>tx9mX`Kvê#iMo>tY6r/:.7 +Y7f^fKS)&Ùc0jdTA& &3A:39 . FVb(9`'H,ƺvk׎ 羽>']X]_h$lQ:(? I)Ct~cPOiqj/e?@]9+dGe?x,2_v33%~Ȯ"%$W^ 9G2;(jk#8_D-797?(h%%ƳF9yF0 +xCqo,rhN5KI Ü(}Lu7ԘP2W}<\-z +>pW̭p 47adƾQ/I?%JFxĢ4tlqeWG3A|P scH& +/TһUS,7 +HC};KZ]]]7=ڪEm|!_'c&"?reO`7NݾPzʼn@FX;X+mS䀥oy.Swje c5 "7ĪzI0p!"@O2yص8wmHja.ٕۋ!|,)/5]!G̥nnDB%8sci;] ~n;Bow]lM#a)cqr2>WuC)L?:7wy' *pc&pQVk8~ U/Fp []qEGWZcDy$Hy]52et(M# joVPreOF`SpS&2eK㽅D{]:|j *CjDKJ;A*Xv^GDTr+,$ Wûw"os;얓CUIef73I(lDܘX[ uj[~u"P \d c mb&؞+d OBݒ@?%p/ Feaa Z!z6SQ 9њS~ #$I ΊdKX>F{6;"ueƶ:+&j)hjG> +(YO!ZB=liey8"bUt{=:e146DܢT@ )M^R!J#m,6s&1eػYNP?FANe_Ψ1wU݈⽌:É-J +%A 6!;eCt{hDo&CD2=ڻj +8(*J78EU|IBVgTJtKU4 mFƔ@iU_1{3.Eˆa2 pBNnu'`}Yv%Z\Fe 6ȑ`Hm=љ@`uL-閙o%}L5F-M[q,P2ai=kŭ)2o*P_W/d{m<-Pdg&4u" 4v)#/AylodיTDc˃RC1R3um~eY;aSŇsA$ w3 bʼZ;tU^AIL? 7P`!k (+Č g,,ۄt8 ٩J 7=@5_ st +nISM#l-T́_vU/] +LX~L~IsM +Tt)>2Eo"94 列 n +P\b1o-#(/=ѡ\Z6,kߨ!aNB;ŧ o~M#X@9*t5N꼅fWS&mMlҨ^C@uR8 f8zhaFtH{ ͘1_U4 +ɒsbX1'8+ ymsv<0.]Dnw@,t؁LQN XW_WQĨJxFm$l\Jc:ȴ S~ߚwP6yL$*MZ'uzTeM@/ǀCJ Q, 3*LB_ *}V eڴx{43 4_TPr'i5j޸ AOES"\ Ʉbg{I.3hWҥ؍tn=3ʳӫRvf7#XyNF3*kC΅"ƕG"RL>~XSÍ^FԫrN*2ܹ H  yG%H"-i`N- dC}V߃e|Se)T[,,C ee>[ lO.TUWnNOďaUBPSr1ĘLjM1?% y2ܷ ۑq.gZY/cR VTWm1x oaɣx?_.(\9C?C˾o7BHh 9Z$DKn@&fB3 A2d"Ԃ]E|H4k98. +ܐ\ZHB Gqw D< +$gwM@kn}j/I ] ~a)ǩ{R$L2W8贌c`-u! LѼrLh]ɌH~ ¢e}]yC [$tם+]עiwFd/Q*wި7˃FC0͏h'.+xxa@/ǔ6r4",ZpSoTh=iBM("oVNmfh:7b(ܭD]g*x^eWְ.=d62 h@}*i> +ҿ @o?!'k)||$YНNZˢP!R(9Krݘ8ہg[_L|t[B~kjd(#LFD]~NTG؆Pxc 9BۺT.YP,cD-12t)7H?AS%lǺJ1?bby@[ kU b)D@x.)&5L=b;mn!φ5R0 ׭5iv +D\=btZ8|i#ۡU% eŕ[}Ki88W1'< QC΂`L..= 27V`Pg?qA|pNC" +_|QْOCgAgUʥ@ͅ13f-`o[4XqBt|2B2Q.qJ`X&_,?jlQUzvx)4 C#/3Z~uAvdx= +lURh_|P-P(g"v5.C]0 URPc pf!y~nxIjuMGPryKh$mq&VnK0}xWKP׫z^+_x, ХWGQC=Z߆L9 mV@Bi%rrJlâeFoڟD˂dR#!IՏNM`\+c7κX5.4¤xٛD"cvtqgnЪ߰QR1F7]fJvݠ?3촼].脑 zz_O* PXԕw$@b!#WOͺ ݐp/y +endstream endobj 10 0 obj [9 0 R] endobj 38 0 obj <> endobj xref +0 39 +0000000000 65535 f +0000000016 00000 n +0000000145 00000 n +0000023329 00000 n +0000000000 00000 f +0000069459 00000 n +0000069761 00000 n +0000069331 00000 n +0000070149 00000 n +0000069141 00000 n +0000322703 00000 n +0000023381 00000 n +0000023804 00000 n +0000127265 00000 n +0000127152 00000 n +0000067971 00000 n +0000068579 00000 n +0000068627 00000 n +0000069215 00000 n +0000069246 00000 n +0000120028 00000 n +0000120053 00000 n +0000109699 00000 n +0000095654 00000 n +0000070333 00000 n +0000070588 00000 n +0000095903 00000 n +0000109954 00000 n +0000120366 00000 n +0000120540 00000 n +0000120609 00000 n +0000120871 00000 n +0000120958 00000 n +0000127339 00000 n +0000127544 00000 n +0000128780 00000 n +0000194369 00000 n +0000259958 00000 n +0000322727 00000 n +trailer +<<33C58F78BBCF0B4EA1E625E9C24BE108>]>> +startxref +322952 +%%EOF diff --git a/com.twin.app.shoptime/src/actions/actionTypes.js b/com.twin.app.shoptime/src/actions/actionTypes.js index 5f99e3fc..bb08624a 100644 --- a/com.twin.app.shoptime/src/actions/actionTypes.js +++ b/com.twin.app.shoptime/src/actions/actionTypes.js @@ -2,220 +2,220 @@ export const types = { // panel actions - PUSH_PANEL: "PUSH_PANEL", - POP_PANEL: "POP_PANEL", - UPDATE_PANEL: "UPDATE_PANEL", - RESET_PANELS: "RESET_PANELS", + PUSH_PANEL: 'PUSH_PANEL', + POP_PANEL: 'POP_PANEL', + UPDATE_PANEL: 'UPDATE_PANEL', + RESET_PANELS: 'RESET_PANELS', // device actions - GET_AUTHENTICATION_CODE: "GET_AUTHENTICATION_CODE", - REGISTER_DEVICE: "REGISTER_DEVICE", - REGISTER_DEVICE_INFO: "REGISTER_DEVICE_INFO", - GET_DEVICE_INFO: "GET_DEVICE_INFO", - CLEAR_REGISTER_DEVICE_INFO: "CLEAR_REGISTER_DEVICE_INFO", - REGISTER_DEVICE_RESET: "REGISTER_DEVICE_RESET", + GET_AUTHENTICATION_CODE: 'GET_AUTHENTICATION_CODE', + REGISTER_DEVICE: 'REGISTER_DEVICE', + REGISTER_DEVICE_INFO: 'REGISTER_DEVICE_INFO', + GET_DEVICE_INFO: 'GET_DEVICE_INFO', + CLEAR_REGISTER_DEVICE_INFO: 'CLEAR_REGISTER_DEVICE_INFO', + REGISTER_DEVICE_RESET: 'REGISTER_DEVICE_RESET', // common actions - GET_HTTP_HEADER: "GET_HTTP_HEADER", - CHANGE_APP_STATUS: "CHANGE_APP_STATUS", - SEND_BROADCAST: "SEND_BROADCAST", - CHANGE_LOCAL_SETTINGS: "CHANGE_LOCAL_SETTINGS", - GNB_OPENED: "GNB_OPENED", - SET_SHOW_POPUP: "SET_SHOW_POPUP", - SET_SHOW_SECONDARY_POPUP: "SET_SHOW_SECONDARY_POPUP", - SET_HIDE_POPUP: "SET_HIDE_POPUP", - SET_HIDE_SECONDARY_POPUP: "SET_HIDE_SECONDARY_POPUP", - SHOW_OPTIONAL_TERMS_CONFIRM_POPUP: "SHOW_OPTIONAL_TERMS_CONFIRM_POPUP", - HIDE_OPTIONAL_TERMS_CONFIRM_POPUP: "HIDE_OPTIONAL_TERMS_CONFIRM_POPUP", - TOGGLE_OPTIONAL_TERMS_CONFIRM: "TOGGLE_OPTIONAL_TERMS_CONFIRM", + GET_HTTP_HEADER: 'GET_HTTP_HEADER', + CHANGE_APP_STATUS: 'CHANGE_APP_STATUS', + SEND_BROADCAST: 'SEND_BROADCAST', + CHANGE_LOCAL_SETTINGS: 'CHANGE_LOCAL_SETTINGS', + GNB_OPENED: 'GNB_OPENED', + SET_SHOW_POPUP: 'SET_SHOW_POPUP', + SET_SHOW_SECONDARY_POPUP: 'SET_SHOW_SECONDARY_POPUP', + SET_HIDE_POPUP: 'SET_HIDE_POPUP', + SET_HIDE_SECONDARY_POPUP: 'SET_HIDE_SECONDARY_POPUP', + SHOW_OPTIONAL_TERMS_CONFIRM_POPUP: 'SHOW_OPTIONAL_TERMS_CONFIRM_POPUP', + HIDE_OPTIONAL_TERMS_CONFIRM_POPUP: 'HIDE_OPTIONAL_TERMS_CONFIRM_POPUP', + TOGGLE_OPTIONAL_TERMS_CONFIRM: 'TOGGLE_OPTIONAL_TERMS_CONFIRM', // 선택약관 팝업 상태 관리 - SET_OPTIONAL_TERMS_POPUP_SHOWN: "SET_OPTIONAL_TERMS_POPUP_SHOWN", - SET_OPTIONAL_TERMS_USER_DECISION: "SET_OPTIONAL_TERMS_USER_DECISION", - RESET_OPTIONAL_TERMS_SESSION: "RESET_OPTIONAL_TERMS_SESSION", + SET_OPTIONAL_TERMS_POPUP_SHOWN: 'SET_OPTIONAL_TERMS_POPUP_SHOWN', + SET_OPTIONAL_TERMS_USER_DECISION: 'SET_OPTIONAL_TERMS_USER_DECISION', + RESET_OPTIONAL_TERMS_SESSION: 'RESET_OPTIONAL_TERMS_SESSION', // 선택약관 직접 상태 업데이트 (API 호출 없이) - UPDATE_OPTIONAL_TERMS_AGREE_DIRECT: "UPDATE_OPTIONAL_TERMS_AGREE_DIRECT", - UPDATE_TERMS_AGREEMENT_STATUS_DIRECT: "UPDATE_TERMS_AGREEMENT_STATUS_DIRECT", - SET_EXIT_APP: "SET_EXIT_APP", - GET_LOGIN_USER_DATA: "GET_LOGIN_USER_DATA", - GET_TERMS_AGREE_YN: "GET_TERMS_AGREE_YN", - LAUNCH_MEMBERSHIP_APP: "LAUNCH_MEMBERSHIP_APP", - SET_FOCUS: "SET_FOCUS", - SET_GNB_MENU: "SET_GNB_MENU", - SET_SYSTEM_NOTICE: "SET_SYSTEM_NOTICE", - SET_SYSTEM_TERMINATION: "SET_SYSTEM_TERMINATION", - SET_DEEP_LINK: "SET_DEEP_LINK", - SET_SECOND_LAYER_INFO: "SET_SECOND_LAYER_INFO", - SET_ERROR_MESSAGE: "SET_ERROR_MESSAGE", - CLEAR_ERROR_MESSAGE: "CLEAR_ERROR_MESSAGE", - GET_DEVICE_MACADDRESS: "GET_DEVICE_MACADDRESS", - SET_DEVICE_REGISTERED: "SET_DEVICE_REGISTERED", + UPDATE_OPTIONAL_TERMS_AGREE_DIRECT: 'UPDATE_OPTIONAL_TERMS_AGREE_DIRECT', + UPDATE_TERMS_AGREEMENT_STATUS_DIRECT: 'UPDATE_TERMS_AGREEMENT_STATUS_DIRECT', + SET_EXIT_APP: 'SET_EXIT_APP', + GET_LOGIN_USER_DATA: 'GET_LOGIN_USER_DATA', + GET_TERMS_AGREE_YN: 'GET_TERMS_AGREE_YN', + LAUNCH_MEMBERSHIP_APP: 'LAUNCH_MEMBERSHIP_APP', + SET_FOCUS: 'SET_FOCUS', + SET_GNB_MENU: 'SET_GNB_MENU', + SET_SYSTEM_NOTICE: 'SET_SYSTEM_NOTICE', + SET_SYSTEM_TERMINATION: 'SET_SYSTEM_TERMINATION', + SET_DEEP_LINK: 'SET_DEEP_LINK', + SET_SECOND_LAYER_INFO: 'SET_SECOND_LAYER_INFO', + SET_ERROR_MESSAGE: 'SET_ERROR_MESSAGE', + CLEAR_ERROR_MESSAGE: 'CLEAR_ERROR_MESSAGE', + GET_DEVICE_MACADDRESS: 'GET_DEVICE_MACADDRESS', + SET_DEVICE_REGISTERED: 'SET_DEVICE_REGISTERED', // billing actions - GET_MY_INFO_BILLING_SEARCH: "GET_MY_INFO_BILLING_SEARCH", + GET_MY_INFO_BILLING_SEARCH: 'GET_MY_INFO_BILLING_SEARCH', // card actions - GET_MY_INFO_CARD_SEARCH: "GET_MY_INFO_CARD_SEARCH", + GET_MY_INFO_CARD_SEARCH: 'GET_MY_INFO_CARD_SEARCH', // shipping actions - GET_MY_INFO_SHIPPING_SEARCH: "GET_MY_INFO_SHIPPING_SEARCH", + GET_MY_INFO_SHIPPING_SEARCH: 'GET_MY_INFO_SHIPPING_SEARCH', // cart actions - GET_MY_INFO_CART_SEARCH: "GET_MY_INFO_CART_SEARCH", - ADD_TO_CART: "ADD_TO_CART", - REMOVE_FROM_CART: "REMOVE_FROM_CART", - UPDATE_CART_ITEM: "UPDATE_CART_ITEM", - CLEAR_CART: "CLEAR_CART", + GET_MY_INFO_CART_SEARCH: 'GET_MY_INFO_CART_SEARCH', + ADD_TO_CART: 'ADD_TO_CART', + REMOVE_FROM_CART: 'REMOVE_FROM_CART', + UPDATE_CART_ITEM: 'UPDATE_CART_ITEM', + CLEAR_CART: 'CLEAR_CART', // appData actions - ADD_MAIN_INDEX: "ADD_MAIN_INDEX", - SEND_SMS: "SEND_SMS", - CLEAR_SMS: "CLEAR_SMS", + ADD_MAIN_INDEX: 'ADD_MAIN_INDEX', + SEND_SMS: 'SEND_SMS', + CLEAR_SMS: 'CLEAR_SMS', // home actions - GET_HOME_TERMS: "GET_HOME_TERMS", - SET_TERMS_ID_MAP: "SET_TERMS_ID_MAP", - SET_OPTIONAL_TERMS_AVAILABILITY: "SET_OPTIONAL_TERMS_AVAILABILITY", - GET_HOME_MENU: "GET_HOME_MENU", - GET_HOME_LAYOUT: "GET_HOME_LAYOUT", - GET_HOME_MAIN_CONTENTS: "GET_HOME_MAIN_CONTENTS", - GET_HOME_FULL_VIDEO_INFO: "GET_HOME_FULL_VIDEO_INFO", - GET_THEME_CURATION_INFO: "GET_THEME_CURATION_INFO", - GET_THEME_CURATION_DETAIL_INFO: "GET_THEME_CURATION_DETAIL_INFO", - GET_THEME_HOTEL_DETAIL_INFO: "GET_THEME_HOTEL_DETAIL_INFO", - GET_THEME_MENU_SHELF_INFO: "GET_THEME_MENU_SHELF_INFO", - CLEAR_THEME_MENU_SHELF_INFO: "CLEAR_THEME_MENU_SHELF_INFO", - CLEAR_THEME_DETAIL: "CLEAR_THEME_DETAIL", - CHECK_ENTER_THROUGH_GNB: "CHECK_ENTER_THROUGH_GNB", - SET_DEFAULT_FOCUS: "SET_DEFAULT_FOCUS", - SET_BANNER_INDEX: "SET_BANNER_INDEX", - RESET_HOME_INFO: "RESET_HOME_INFO", - UPDATE_HOME_INFO: "UPDATE_HOME_INFO", + GET_HOME_TERMS: 'GET_HOME_TERMS', + SET_TERMS_ID_MAP: 'SET_TERMS_ID_MAP', + SET_OPTIONAL_TERMS_AVAILABILITY: 'SET_OPTIONAL_TERMS_AVAILABILITY', + GET_HOME_MENU: 'GET_HOME_MENU', + GET_HOME_LAYOUT: 'GET_HOME_LAYOUT', + GET_HOME_MAIN_CONTENTS: 'GET_HOME_MAIN_CONTENTS', + GET_HOME_FULL_VIDEO_INFO: 'GET_HOME_FULL_VIDEO_INFO', + GET_THEME_CURATION_INFO: 'GET_THEME_CURATION_INFO', + GET_THEME_CURATION_DETAIL_INFO: 'GET_THEME_CURATION_DETAIL_INFO', + GET_THEME_HOTEL_DETAIL_INFO: 'GET_THEME_HOTEL_DETAIL_INFO', + GET_THEME_MENU_SHELF_INFO: 'GET_THEME_MENU_SHELF_INFO', + CLEAR_THEME_MENU_SHELF_INFO: 'CLEAR_THEME_MENU_SHELF_INFO', + CLEAR_THEME_DETAIL: 'CLEAR_THEME_DETAIL', + CHECK_ENTER_THROUGH_GNB: 'CHECK_ENTER_THROUGH_GNB', + SET_DEFAULT_FOCUS: 'SET_DEFAULT_FOCUS', + SET_BANNER_INDEX: 'SET_BANNER_INDEX', + RESET_HOME_INFO: 'RESET_HOME_INFO', + UPDATE_HOME_INFO: 'UPDATE_HOME_INFO', // brand actions - GET_BRAND_LIST: "GET_BRAND_LIST", - GET_BRAND_LAYOUT_INFO: "GET_BRAND_LAYOUT_INFO", - GET_BRAND_LIVE_CHANNEL_INFO: "GET_BRAND_LIVE_CHANNEL_INFO", - GET_BRAND_CHAN_INFO: "GET_BRAND_CHAN_INFO", - GET_BRAND_TSV_INFO: "GET_BRAND_TSV_INFO", - GET_BRAND_RECOMMENDED_SHOW_INFO: "GET_BRAND_RECOMMENDED_SHOW_INFO", - GET_BRAND_SERIES_INFO: "GET_BRAND_SERIES_INFO", - GET_BRAND_CATEGORY_INFO: "GET_BRAND_CATEGORY_INFO", - GET_BRAND_CATEGORY_PRODUCT_INFO: "GET_BRAND_CATEGORY_PRODUCT_INFO", - GET_BRAND_BEST_SELLER: "GET_BRAND_BEST_SELLER", - GET_BRAND_CREATORS_INFO: "GET_BRAND_CREATORS_INFO", - GET_BRAND_SHOWROOM: "GET_BRAND_SHOWROOM", - GET_BRAND_RECENTLY_AIRED: "GET_BRAND_RECENTLY_AIRED", - SET_BRAND_LIVE_CHANNEL_UPCOMING: "SET_BRAND_LIVE_CHANNEL_UPCOMING", - SET_BRAND_CHAN_INFO: "SET_BRAND_CHAN_INFO", - RESET_BRAND_STATE: "RESET_BRAND_STATE", - RESET_BRAND_STATE_EXCEPT_BRAND_INFO: "RESET_BRAND_STATE_EXCEPT_BRAND_INFO", - RESET_BRAND_LAYOUT_INFO: "RESET_BRAND_LAYOUT_INFO", + GET_BRAND_LIST: 'GET_BRAND_LIST', + GET_BRAND_LAYOUT_INFO: 'GET_BRAND_LAYOUT_INFO', + GET_BRAND_LIVE_CHANNEL_INFO: 'GET_BRAND_LIVE_CHANNEL_INFO', + GET_BRAND_CHAN_INFO: 'GET_BRAND_CHAN_INFO', + GET_BRAND_TSV_INFO: 'GET_BRAND_TSV_INFO', + GET_BRAND_RECOMMENDED_SHOW_INFO: 'GET_BRAND_RECOMMENDED_SHOW_INFO', + GET_BRAND_SERIES_INFO: 'GET_BRAND_SERIES_INFO', + GET_BRAND_CATEGORY_INFO: 'GET_BRAND_CATEGORY_INFO', + GET_BRAND_CATEGORY_PRODUCT_INFO: 'GET_BRAND_CATEGORY_PRODUCT_INFO', + GET_BRAND_BEST_SELLER: 'GET_BRAND_BEST_SELLER', + GET_BRAND_CREATORS_INFO: 'GET_BRAND_CREATORS_INFO', + GET_BRAND_SHOWROOM: 'GET_BRAND_SHOWROOM', + GET_BRAND_RECENTLY_AIRED: 'GET_BRAND_RECENTLY_AIRED', + SET_BRAND_LIVE_CHANNEL_UPCOMING: 'SET_BRAND_LIVE_CHANNEL_UPCOMING', + SET_BRAND_CHAN_INFO: 'SET_BRAND_CHAN_INFO', + RESET_BRAND_STATE: 'RESET_BRAND_STATE', + RESET_BRAND_STATE_EXCEPT_BRAND_INFO: 'RESET_BRAND_STATE_EXCEPT_BRAND_INFO', + RESET_BRAND_LAYOUT_INFO: 'RESET_BRAND_LAYOUT_INFO', // main actions - GET_SUB_CATEGORY: "GET_SUB_CATEGORY", - APPEND_SUB_CATEGORY: "APPEND_SUB_CATEGORY", - GET_TOP_20_SHOW: "GET_TOP_20_SHOW", - GET_PRODUCT_DETAIL: "GET_PRODUCT_DETAIL", - GET_YOUMAYLIKE: "GET_YOUMAYLIKE", - SET_MAIN_LIKE_CATEGORY: "SET_MAIN_LIKE_CATEGORY", - SET_MAIN_LIVE_UPCOMING_ALARM: "SET_MAIN_LIVE_UPCOMING_ALARM", - GET_MAIN_LIVE_SHOW_NOW_PRODUCT: "GET_MAIN_LIVE_SHOW_NOW_PRODUCT", - GET_MAIN_LIVE_SHOW: "GET_MAIN_LIVE_SHOW", - GET_MAIN_CATEGORY_SHOW_DETAIL: "GET_MAIN_CATEGORY_SHOW_DETAIL", - CLEAR_PRODUCT_DETAIL: "CLEAR_PRODUCT_DETAIL", - CLEAR_SUB_CATEGORY: "CLEAR_SUB_CATEGORY", - CLEAR_SHOPNOW_INFO: "CLEAR_SHOPNOW_INFO", + GET_SUB_CATEGORY: 'GET_SUB_CATEGORY', + APPEND_SUB_CATEGORY: 'APPEND_SUB_CATEGORY', + GET_TOP_20_SHOW: 'GET_TOP_20_SHOW', + GET_PRODUCT_DETAIL: 'GET_PRODUCT_DETAIL', + GET_YOUMAYLIKE: 'GET_YOUMAYLIKE', + SET_MAIN_LIKE_CATEGORY: 'SET_MAIN_LIKE_CATEGORY', + SET_MAIN_LIVE_UPCOMING_ALARM: 'SET_MAIN_LIVE_UPCOMING_ALARM', + GET_MAIN_LIVE_SHOW_NOW_PRODUCT: 'GET_MAIN_LIVE_SHOW_NOW_PRODUCT', + GET_MAIN_LIVE_SHOW: 'GET_MAIN_LIVE_SHOW', + GET_MAIN_CATEGORY_SHOW_DETAIL: 'GET_MAIN_CATEGORY_SHOW_DETAIL', + CLEAR_PRODUCT_DETAIL: 'CLEAR_PRODUCT_DETAIL', + CLEAR_SUB_CATEGORY: 'CLEAR_SUB_CATEGORY', + CLEAR_SHOPNOW_INFO: 'CLEAR_SHOPNOW_INFO', // myPage actions - GET_MY_RECOMMANDED_KEYWORD: "GET_MY_RECOMMANDED_KEYWORD", - GET_MY_FAQ_INFO: "GET_MY_FAQ_INFO", - GET_NOTICE: "GET_NOTICE", - GET_MY_CUSTOMERS: "GET_MY_CUSTOMERS", - GET_MY_FAVORITE: "GET_MY_FAVORITE", - DELETE_MY_FAVORITE: "DELETE_MY_FAVORITE", - GET_MY_FAVORITE_FLAG: "GET_MY_FAVORITE_FLAG", - SET_MY_TERMS_WITHDRAW: "SET_MY_TERMS_WITHDRAW", - GET_MY_UPCOMING_CHANGE_INFO: "GET_MY_UPCOMING_CHANGE_INFO", - GET_MY_UPCOMING_ALERT_SHOW: "GET_MY_UPCOMING_ALERT_SHOW", - DELETE_MY_UPCOMING_ALERT_SHOW: "DELETE_MY_UPCOMING_ALERT_SHOW", - GET_MY_UPCOMING_ALERT_SHOW_KEYS: "GET_MY_UPCOMING_ALERT_SHOW_KEYS", - SET_MY_UPCOMING_USE_ALERT: "SET_MY_UPCOMING_USE_ALERT", - GET_UPCOMING_ALERT_SHOW_CHANGE_INFO: "GET_UPCOMING_ALERT_SHOW_CHANGE_INFO", - GET_MY_RECENTLY_VIEWED_INFO: "GET_MY_RECENTLY_VIEWED_INFO", - CLEAR_RECENTLY_VIEWED_INFO: "CLEAR_RECENTLY_VIEWED_INFO", - CLEAR_FAVORITES: "CLEAR_FAVORITES", - SET_MYPAGE_TERMS_AGREE: "SET_MYPAGE_TERMS_AGREE", - SET_MYPAGE_TERMS_AGREE_SUCCESS: "SET_MYPAGE_TERMS_AGREE_SUCCESS", - SET_MYPAGE_TERMS_AGREE_FAIL: "SET_MYPAGE_TERMS_AGREE_FAIL", + GET_MY_RECOMMANDED_KEYWORD: 'GET_MY_RECOMMANDED_KEYWORD', + GET_MY_FAQ_INFO: 'GET_MY_FAQ_INFO', + GET_NOTICE: 'GET_NOTICE', + GET_MY_CUSTOMERS: 'GET_MY_CUSTOMERS', + GET_MY_FAVORITE: 'GET_MY_FAVORITE', + DELETE_MY_FAVORITE: 'DELETE_MY_FAVORITE', + GET_MY_FAVORITE_FLAG: 'GET_MY_FAVORITE_FLAG', + SET_MY_TERMS_WITHDRAW: 'SET_MY_TERMS_WITHDRAW', + GET_MY_UPCOMING_CHANGE_INFO: 'GET_MY_UPCOMING_CHANGE_INFO', + GET_MY_UPCOMING_ALERT_SHOW: 'GET_MY_UPCOMING_ALERT_SHOW', + DELETE_MY_UPCOMING_ALERT_SHOW: 'DELETE_MY_UPCOMING_ALERT_SHOW', + GET_MY_UPCOMING_ALERT_SHOW_KEYS: 'GET_MY_UPCOMING_ALERT_SHOW_KEYS', + SET_MY_UPCOMING_USE_ALERT: 'SET_MY_UPCOMING_USE_ALERT', + GET_UPCOMING_ALERT_SHOW_CHANGE_INFO: 'GET_UPCOMING_ALERT_SHOW_CHANGE_INFO', + GET_MY_RECENTLY_VIEWED_INFO: 'GET_MY_RECENTLY_VIEWED_INFO', + CLEAR_RECENTLY_VIEWED_INFO: 'CLEAR_RECENTLY_VIEWED_INFO', + CLEAR_FAVORITES: 'CLEAR_FAVORITES', + SET_MYPAGE_TERMS_AGREE: 'SET_MYPAGE_TERMS_AGREE', + SET_MYPAGE_TERMS_AGREE_SUCCESS: 'SET_MYPAGE_TERMS_AGREE_SUCCESS', + SET_MYPAGE_TERMS_AGREE_FAIL: 'SET_MYPAGE_TERMS_AGREE_FAIL', // onSale actions - GET_HOME_ON_SALE_INFO: "GET_HOME_ON_SALE_INFO", - GET_ON_SALE_INFO: "GET_ON_SALE_INFO", - COPY_CATEGORY_INFO: "COPY_CATEGORY_INFO", - RESET_ON_SALE_STATE: "RESET_ON_SALE_STATE", + GET_HOME_ON_SALE_INFO: 'GET_HOME_ON_SALE_INFO', + GET_ON_SALE_INFO: 'GET_ON_SALE_INFO', + COPY_CATEGORY_INFO: 'COPY_CATEGORY_INFO', + RESET_ON_SALE_STATE: 'RESET_ON_SALE_STATE', // product actions - GET_BEST_SELLER: "GET_BEST_SELLER", - GET_PRODUCT_GROUP: "GET_PRODUCT_GROUP", - GET_PRODUCT_OPTION: "GET_PRODUCT_OPTION", - GET_PRODUCT_IMAGE_LENGTH: "GET_PRODUCT_IMAGE_LENGTH", - GET_VIDEO_INDECATOR_FOCUS: "GET_VIDEO_INDECATOR_FOCUS", - GET_PRODUCT_OPTION_ID: "GET_PRODUCT_OPTION_ID", - CLEAR_PRODUCT_OPTIONS: "CLEAR_PRODUCT_OPTIONS", - GET_USER_REVIEW: "GET_USER_REVIEW", - TOGGLE_SHOW_ALL_REVIEWS: "TOGGLE_SHOW_ALL_REVIEWS", - RESET_SHOW_ALL_REVIEWS: "RESET_SHOW_ALL_REVIEWS", + GET_BEST_SELLER: 'GET_BEST_SELLER', + GET_PRODUCT_GROUP: 'GET_PRODUCT_GROUP', + GET_PRODUCT_OPTION: 'GET_PRODUCT_OPTION', + GET_PRODUCT_IMAGE_LENGTH: 'GET_PRODUCT_IMAGE_LENGTH', + GET_VIDEO_INDECATOR_FOCUS: 'GET_VIDEO_INDECATOR_FOCUS', + GET_PRODUCT_OPTION_ID: 'GET_PRODUCT_OPTION_ID', + CLEAR_PRODUCT_OPTIONS: 'CLEAR_PRODUCT_OPTIONS', + GET_USER_REVIEW: 'GET_USER_REVIEW', + TOGGLE_SHOW_ALL_REVIEWS: 'TOGGLE_SHOW_ALL_REVIEWS', + RESET_SHOW_ALL_REVIEWS: 'RESET_SHOW_ALL_REVIEWS', // search actions - GET_SEARCH: "GET_SEARCH", - GET_SHOPPERHOUSE_SEARCH: "GET_SHOPPERHOUSE_SEARCH", - RESET_SEARCH: "RESET_SEARCH", - GET_SEARCH_PROCESSED: "GET_SEARCH_PROCESSED", - SET_SEARCH_INIT_PERFORMED: "SET_SEARCH_INIT_PERFORMED", - UPDATE_SEARCH_TIMESTAMP: "UPDATE_SEARCH_TIMESTAMP", + GET_SEARCH: 'GET_SEARCH', + GET_SHOPPERHOUSE_SEARCH: 'GET_SHOPPERHOUSE_SEARCH', + RESET_SEARCH: 'RESET_SEARCH', + GET_SEARCH_PROCESSED: 'GET_SEARCH_PROCESSED', + SET_SEARCH_INIT_PERFORMED: 'SET_SEARCH_INIT_PERFORMED', + UPDATE_SEARCH_TIMESTAMP: 'UPDATE_SEARCH_TIMESTAMP', // event actions - GET_WELCOME_EVENT_INFO: "GET_WELCOME_EVENT_INFO", - GET_EVENT_ISSUED_STATUS: "GET_EVENT_ISSUED_STATUS", - SET_EVENT_ISSUE_REQ: "SET_EVENT_ISSUE_REQ", - SET_EVENT_POP_CLICK_INFO: "SET_EVENT_POP_CLICK_INFO", - CLEAR_EVENT_INFO: "CLEAR_EVENT_INFO", - SKIP_CLICK_INFO: "SKIP_CLICK_INFO", - CLEAR_CURATION_COUPON: "CLEAR_CURATION_COUPON", - CLEAR_EVENT_ISSUED_STATUS_SUCCEESS: "CLEAR_EVENT_ISSUED_STATUS_SUCCEESS", + GET_WELCOME_EVENT_INFO: 'GET_WELCOME_EVENT_INFO', + GET_EVENT_ISSUED_STATUS: 'GET_EVENT_ISSUED_STATUS', + SET_EVENT_ISSUE_REQ: 'SET_EVENT_ISSUE_REQ', + SET_EVENT_POP_CLICK_INFO: 'SET_EVENT_POP_CLICK_INFO', + CLEAR_EVENT_INFO: 'CLEAR_EVENT_INFO', + SKIP_CLICK_INFO: 'SKIP_CLICK_INFO', + CLEAR_CURATION_COUPON: 'CLEAR_CURATION_COUPON', + CLEAR_EVENT_ISSUED_STATUS_SUCCEESS: 'CLEAR_EVENT_ISSUED_STATUS_SUCCEESS', // coupon actions - GET_PRODUCT_COUPON_INFO: "GET_PRODUCT_COUPON_INFO", - GET_PRODUCT_COUPON_SEARCH: "GET_PRODUCT_COUPON_SEARCH", - GET_PRODUCT_COUPON_DOWNLOAD: "GET_PRODUCT_COUPON_DOWNLOAD", - GET_PRODUCT_COUPON_TOTDOWNLOAD: "GET_PRODUCT_COUPON_TOTDOWNLOAD", - CLEAR_COUPON_INFO: "CLEAR_COUPON_INFO", - CLEAR_GET_PRODUCT_COUPON_DOWNLOAD: "CLEAR_GET_PRODUCT_COUPON_DOWNLOAD", + GET_PRODUCT_COUPON_INFO: 'GET_PRODUCT_COUPON_INFO', + GET_PRODUCT_COUPON_SEARCH: 'GET_PRODUCT_COUPON_SEARCH', + GET_PRODUCT_COUPON_DOWNLOAD: 'GET_PRODUCT_COUPON_DOWNLOAD', + GET_PRODUCT_COUPON_TOTDOWNLOAD: 'GET_PRODUCT_COUPON_TOTDOWNLOAD', + CLEAR_COUPON_INFO: 'CLEAR_COUPON_INFO', + CLEAR_GET_PRODUCT_COUPON_DOWNLOAD: 'CLEAR_GET_PRODUCT_COUPON_DOWNLOAD', // checkout actions - GET_CHECKOUT_INFO: "GET_CHECKOUT_INFO", - INSERT_MY_INFO_CHECKOUT_ORDER: "INSERT_MY_INFO_CHECKOUT_ORDER", - GET_TAX_INFOS: "GET_TAX_INFOS", - UPDATE_SELECTED_SHIPPING_ADDR: "UPDATE_SELECTED_SHIPPING_ADDR", - UPDATE_SELECTED_BILLING_ADDR: "UPDATE_SELECTED_BILLING_ADDR", - UPDATE_SELECTED_COUPON: "UPDATE_SELECTED_COUPON", - GET_CHECKOUT_TOTAL_AMT: "GET_CHECKOUT_TOTAL_AMT", - CHECKOUT_DATA_RESET: "CHECKOUT_DATA_RESET", + GET_CHECKOUT_INFO: 'GET_CHECKOUT_INFO', + INSERT_MY_INFO_CHECKOUT_ORDER: 'INSERT_MY_INFO_CHECKOUT_ORDER', + GET_TAX_INFOS: 'GET_TAX_INFOS', + UPDATE_SELECTED_SHIPPING_ADDR: 'UPDATE_SELECTED_SHIPPING_ADDR', + UPDATE_SELECTED_BILLING_ADDR: 'UPDATE_SELECTED_BILLING_ADDR', + UPDATE_SELECTED_COUPON: 'UPDATE_SELECTED_COUPON', + GET_CHECKOUT_TOTAL_AMT: 'GET_CHECKOUT_TOTAL_AMT', + CHECKOUT_DATA_RESET: 'CHECKOUT_DATA_RESET', // order actions - SET_PURCHASE_TERMS_AGREE: "SET_PURCHASE_TERMS_AGREE", - SET_PURCHASE_TERMS_WITHDRAW: "SET_PURCHASE_TERMS_WITHDRAW", - GET_MY_INFO_ORDER_SEARCH: "GET_MY_INFO_ORDER_SEARCH", - GET_MY_INFO_ORDER_SEARCH_CANCEL: "GET_MY_INFO_ORDER_SEARCH_CANCEL", - GET_MY_INFO_ORDER_DETAIL_SEARCH: "GET_MY_INFO_ORDER_DETAIL_SEARCH", - GET_MY_INFO_ORDER_SHIPPING_SEARCH: "GET_MY_INFO_ORDER_SHIPPING_SEARCH", - CLEAR_MY_INFO_ORDER_SEARCH: "CLEAR_MY_INFO_ORDER_SEARCH", + SET_PURCHASE_TERMS_AGREE: 'SET_PURCHASE_TERMS_AGREE', + SET_PURCHASE_TERMS_WITHDRAW: 'SET_PURCHASE_TERMS_WITHDRAW', + GET_MY_INFO_ORDER_SEARCH: 'GET_MY_INFO_ORDER_SEARCH', + GET_MY_INFO_ORDER_SEARCH_CANCEL: 'GET_MY_INFO_ORDER_SEARCH_CANCEL', + GET_MY_INFO_ORDER_DETAIL_SEARCH: 'GET_MY_INFO_ORDER_DETAIL_SEARCH', + GET_MY_INFO_ORDER_SHIPPING_SEARCH: 'GET_MY_INFO_ORDER_SHIPPING_SEARCH', + CLEAR_MY_INFO_ORDER_SEARCH: 'CLEAR_MY_INFO_ORDER_SEARCH', // play controller - GET_CHAT_LOG: "GET_CHAT_LOG", - GET_SUBTITLE: "GET_SUBTITLE", - CLEAR_PLAYER_INFO: "CLEAR_PLAYER_INFO", - UPDATE_VIDEO_PLAY_STATE: "UPDATE_VIDEO_PLAY_STATE", + GET_CHAT_LOG: 'GET_CHAT_LOG', + GET_SUBTITLE: 'GET_SUBTITLE', + CLEAR_PLAYER_INFO: 'CLEAR_PLAYER_INFO', + UPDATE_VIDEO_PLAY_STATE: 'UPDATE_VIDEO_PLAY_STATE', // 🔽 [추가] 플레이 제어 매니저 액션 타입 /** @@ -226,88 +226,88 @@ export const types = { * SET_PLAYER_CONTROL: 특정 컴포넌트에게 비디오 재생 제어권을 부여합니다. * CLEAR_PLAYER_CONTROL: 컴포넌트로부터 비디오 재생 제어권을 회수합니다. */ - SET_PLAYER_CONTROL: "SET_PLAYER_CONTROL", - CLEAR_PLAYER_CONTROL: "CLEAR_PLAYER_CONTROL", + SET_PLAYER_CONTROL: 'SET_PLAYER_CONTROL', + CLEAR_PLAYER_CONTROL: 'CLEAR_PLAYER_CONTROL', // reset action - RESET_REDUX_STATE: "RESET_REDUX_STATE", + RESET_REDUX_STATE: 'RESET_REDUX_STATE', // cancel actions - GET_MY_INFO_ORDER_CANCEL_SEARCH: "GET_MY_INFO_ORDER_CANCEL_SEARCH", - GET_MY_INFO_ORDER_CANCEL_COLUMNS_SEARCH: - "GET_MY_INFO_ORDER_CANCEL_COLUMNS_SEARCH", - UPDATE_ORDER_PARTIAL_CANCEL: "UPDATE_ORDER_PARTIAL_CANCEL", - PAYMENT_TOTAL_CANCEL: "PAYMENT_TOTAL_CANCEL", + GET_MY_INFO_ORDER_CANCEL_SEARCH: 'GET_MY_INFO_ORDER_CANCEL_SEARCH', + GET_MY_INFO_ORDER_CANCEL_COLUMNS_SEARCH: 'GET_MY_INFO_ORDER_CANCEL_COLUMNS_SEARCH', + UPDATE_ORDER_PARTIAL_CANCEL: 'UPDATE_ORDER_PARTIAL_CANCEL', + PAYMENT_TOTAL_CANCEL: 'PAYMENT_TOTAL_CANCEL', // emp actions - GET_SHOPTIME_TERMS: "GET_SHOPTIME_TERMS", + GET_SHOPTIME_TERMS: 'GET_SHOPTIME_TERMS', // pinCode actions - GET_MY_INFO_CARD_PINCODE_CHECK: "GET_MY_INFO_CARD_PINCODE_CHECK", + GET_MY_INFO_CARD_PINCODE_CHECK: 'GET_MY_INFO_CARD_PINCODE_CHECK', // new actions - CANCEL_FOCUS_ELEMENT: "CANCEL_FOCUS_ELEMENT", + CANCEL_FOCUS_ELEMENT: 'CANCEL_FOCUS_ELEMENT', // 약관동의 여부 확인 상태 - GET_TERMS_AGREE_YN_START: "GET_TERMS_AGREE_YN_START", - GET_TERMS_AGREE_YN_SUCCESS: "GET_TERMS_AGREE_YN_SUCCESS", - GET_TERMS_AGREE_YN_FAILURE: "GET_TERMS_AGREE_YN_FAILURE", + GET_TERMS_AGREE_YN_START: 'GET_TERMS_AGREE_YN_START', + GET_TERMS_AGREE_YN_SUCCESS: 'GET_TERMS_AGREE_YN_SUCCESS', + GET_TERMS_AGREE_YN_FAILURE: 'GET_TERMS_AGREE_YN_FAILURE', // device - REQ_REG_DEVICE_INFO: "REQ_REG_DEVICE_INFO", + REQ_REG_DEVICE_INFO: 'REQ_REG_DEVICE_INFO', // 🔽 [추가] 영구재생 비디오 정보 저장 - SET_PERSISTENT_VIDEO_INFO: "SET_PERSISTENT_VIDEO_INFO", + SET_PERSISTENT_VIDEO_INFO: 'SET_PERSISTENT_VIDEO_INFO', // 🔽 [추가] 배너 비디오 제어 액션 타입 /** * HomeBanner의 배너 간 비디오 재생 제어를 위한 액션 타입들. * 첫 번째 배너 상시 재생과 두 번째 배너 포커스 재생을 관리합니다. */ - SET_BANNER_STATE: "SET_BANNER_STATE", - SET_BANNER_FOCUS: "SET_BANNER_FOCUS", - SET_BANNER_AVAILABILITY: "SET_BANNER_AVAILABILITY", - SET_BANNER_TRANSITION: "SET_BANNER_TRANSITION", - PAUSE_PLAYER_CONTROL: "PAUSE_PLAYER_CONTROL", - RESUME_PLAYER_CONTROL: "RESUME_PLAYER_CONTROL", + SET_BANNER_STATE: 'SET_BANNER_STATE', + SET_BANNER_FOCUS: 'SET_BANNER_FOCUS', + SET_BANNER_AVAILABILITY: 'SET_BANNER_AVAILABILITY', + SET_BANNER_TRANSITION: 'SET_BANNER_TRANSITION', + PAUSE_PLAYER_CONTROL: 'PAUSE_PLAYER_CONTROL', + RESUME_PLAYER_CONTROL: 'RESUME_PLAYER_CONTROL', // 🔽 [추가] HomeBanner 동영상 포커스 정책 관리 - SET_CURRENT_FOCUS_BANNER: "SET_CURRENT_FOCUS_BANNER", - UPDATE_VIDEO_POLICY: "UPDATE_VIDEO_POLICY", - SET_MODAL_BORDER: "SET_MODAL_BORDER", - SET_BANNER_VISIBILITY: "SET_BANNER_VISIBILITY", + SET_CURRENT_FOCUS_BANNER: 'SET_CURRENT_FOCUS_BANNER', + UPDATE_VIDEO_POLICY: 'UPDATE_VIDEO_POLICY', + SET_MODAL_BORDER: 'SET_MODAL_BORDER', + SET_BANNER_VISIBILITY: 'SET_BANNER_VISIBILITY', // 🔽 [추가] JustForYou 상품 관리 부분 - GET_RECENTLY_SAW_ITEM: "GET_RECENTLY_SAW_ITEM", - GET_LIKE_BRAND_PRODUCT: "GET_LIKE_BRAND_PRODUCT", - GET_MORE_TO_CONCIDER_AT_THIS_PRICE: "GET_MORE_TO_CONCIDER_AT_THIS_PRICE", - GET_JUSTFORYOU_INFO: "GET_JUSTFORYOU_INFO", + GET_RECENTLY_SAW_ITEM: 'GET_RECENTLY_SAW_ITEM', + GET_LIKE_BRAND_PRODUCT: 'GET_LIKE_BRAND_PRODUCT', + GET_MORE_TO_CONCIDER_AT_THIS_PRICE: 'GET_MORE_TO_CONCIDER_AT_THIS_PRICE', + GET_JUSTFORYOU_INFO: 'GET_JUSTFORYOU_INFO', // 🔽 Voice Conductor 관련 액션 타입 - VOICE_REGISTER_SUCCESS: "VOICE_REGISTER_SUCCESS", - VOICE_REGISTER_FAILURE: "VOICE_REGISTER_FAILURE", - VOICE_SET_TICKET: "VOICE_SET_TICKET", - VOICE_SET_CONTEXT_SUCCESS: "VOICE_SET_CONTEXT_SUCCESS", - VOICE_SET_CONTEXT_FAILURE: "VOICE_SET_CONTEXT_FAILURE", - VOICE_PERFORM_ACTION: "VOICE_PERFORM_ACTION", - VOICE_REPORT_RESULT_SUCCESS: "VOICE_REPORT_RESULT_SUCCESS", - VOICE_REPORT_RESULT_FAILURE: "VOICE_REPORT_RESULT_FAILURE", - VOICE_UPDATE_INTENTS: "VOICE_UPDATE_INTENTS", - VOICE_CLEAR_STATE: "VOICE_CLEAR_STATE", - VOICE_ADD_LOG: "VOICE_ADD_LOG", - VOICE_CLEAR_LOGS: "VOICE_CLEAR_LOGS", - VOICE_STT_TEXT_RECEIVED: "VOICE_STT_TEXT_RECEIVED", // STT 텍스트 수신 + VOICE_REGISTER_SUCCESS: 'VOICE_REGISTER_SUCCESS', + VOICE_REGISTER_FAILURE: 'VOICE_REGISTER_FAILURE', + VOICE_SET_TICKET: 'VOICE_SET_TICKET', + VOICE_SET_CONTEXT_SUCCESS: 'VOICE_SET_CONTEXT_SUCCESS', + VOICE_SET_CONTEXT_FAILURE: 'VOICE_SET_CONTEXT_FAILURE', + VOICE_PERFORM_ACTION: 'VOICE_PERFORM_ACTION', + VOICE_REPORT_RESULT_SUCCESS: 'VOICE_REPORT_RESULT_SUCCESS', + VOICE_REPORT_RESULT_FAILURE: 'VOICE_REPORT_RESULT_FAILURE', + VOICE_UPDATE_INTENTS: 'VOICE_UPDATE_INTENTS', + VOICE_CLEAR_STATE: 'VOICE_CLEAR_STATE', + VOICE_ADD_LOG: 'VOICE_ADD_LOG', + VOICE_CLEAR_LOGS: 'VOICE_CLEAR_LOGS', + VOICE_STT_TEXT_RECEIVED: 'VOICE_STT_TEXT_RECEIVED', // STT 텍스트 수신 // 🔽 Web Speech API 관련 - WEB_SPEECH_INITIALIZED: "WEB_SPEECH_INITIALIZED", - WEB_SPEECH_START: "WEB_SPEECH_START", - WEB_SPEECH_INTERIM_RESULT: "WEB_SPEECH_INTERIM_RESULT", - WEB_SPEECH_END: "WEB_SPEECH_END", - WEB_SPEECH_ERROR: "WEB_SPEECH_ERROR", - WEB_SPEECH_CLEANUP: "WEB_SPEECH_CLEANUP", + WEB_SPEECH_INITIALIZED: 'WEB_SPEECH_INITIALIZED', + WEB_SPEECH_START: 'WEB_SPEECH_START', + WEB_SPEECH_INTERIM_RESULT: 'WEB_SPEECH_INTERIM_RESULT', + WEB_SPEECH_END: 'WEB_SPEECH_END', + WEB_SPEECH_ERROR: 'WEB_SPEECH_ERROR', + WEB_SPEECH_CLEANUP: 'WEB_SPEECH_CLEANUP', //convert img - CONVERT_PDF_TO_IMAGE: "CONVERT_PDF_TO_IMAGE", - CONVERT_PDF_TO_IMAGE_SUCCESS: "CONVERT_PDF_TO_IMAGE_SUCCESS", - CONVERT_PDF_TO_IMAGE_FAILURE: "CONVERT_PDF_TO_IMAGE_FAILURE", - CLEAR_CONVERTED_IMAGE: "CLEAR_CONVERTED_IMAGE", + CONVERT_PDF_TO_IMAGE: 'CONVERT_PDF_TO_IMAGE', + CONVERT_PDF_TO_IMAGE_SUCCESS: 'CONVERT_PDF_TO_IMAGE_SUCCESS', + CONVERT_PDF_TO_IMAGE_FAILURE: 'CONVERT_PDF_TO_IMAGE_FAILURE', + CLEAR_CONVERTED_IMAGE: 'CLEAR_CONVERTED_IMAGE', + CLEAR_CONVERTED_IMAGE_BY_URL: 'CLEAR_CONVERTED_IMAGE_BY_URL', // ⭐ 새로 추가 }; diff --git a/com.twin.app.shoptime/src/actions/convertActions.js b/com.twin.app.shoptime/src/actions/convertActions.js index 650a4d3d..056258d9 100644 --- a/com.twin.app.shoptime/src/actions/convertActions.js +++ b/com.twin.app.shoptime/src/actions/convertActions.js @@ -1,72 +1,137 @@ import { URLS } from '../api/apiConfig'; import { TAxios } from '../api/TAxios'; -import { get } from '../utils/fp'; import { types } from './actionTypes'; -import { changeAppStatus } from './commonActions'; /** - * PDF를 이미지로 변환하는 액션 + * PDF를 이미지로 변환 * @param {string} pdfUrl - 변환할 PDF URL - * @param {function} callback - 성공/실패 후 실행할 콜백 함수 + * @param {function} callback - 성공/실패 후 실행할 콜백 (error, imageUrl) */ export const convertPdfToImage = (pdfUrl, callback) => (dispatch, getState) => { - // 로딩 시작 - dispatch(changeAppStatus({ showLoadingPanel: { show: true } })); + dispatch({ + type: types.CONVERT_PDF_TO_IMAGE, + payload: pdfUrl, + }); const onSuccess = (response) => { - const blob = new Blob([response.data], { type: "image/png;charset=UTF-8" }); - const imageUrl = URL.createObjectURL(blob); - console.log("convertPdfToImage onSuccess", response.data); - console.log("imageUrl onSuccess", imageUrl); - // const imageData = get("data.data", imageUrl); + // retCode 체크 (프로젝트 API 규약: 200이어도 retCode로 성공/실패 구분) + const retCode = response.headers?.retcode || response.headers?.retCode; - dispatch({ - type: types.CONVERT_PDF_TO_IMAGE_SUCCESS, - // payload: imageData, - payload: imageUrl, - }); + if (retCode !== undefined && retCode !== 0 && retCode !== '0') { + const error = new Error(`API Error: retCode=${retCode}`); + dispatch({ + type: types.CONVERT_PDF_TO_IMAGE_FAILURE, + payload: { pdfUrl, error }, + }); + callback && callback(error, null); + return; + } - dispatch(changeAppStatus({ showLoadingPanel: { show: false } })); + let imageUrl; + try { + if (response.data instanceof Blob) { + if (response.data.size < 100) { + throw new Error('Invalid image data (size too small)'); + } + imageUrl = URL.createObjectURL(response.data); + } else if (response.data instanceof ArrayBuffer) { + if (response.data.byteLength < 100) { + throw new Error('Invalid image data (size too small)'); + } + const blob = new Blob([response.data], { type: 'image/png' }); + imageUrl = URL.createObjectURL(blob); + } else { + const blob = new Blob([response.data], { type: 'image/png' }); + imageUrl = URL.createObjectURL(blob); + } - // 콜백이 있으면 변환된 이미지 데이터와 함께 호출 - // callback && callback(null, imageData); - callback && callback(null, imageUrl); + dispatch({ + type: types.CONVERT_PDF_TO_IMAGE_SUCCESS, + payload: { pdfUrl, imageUrl }, + }); + + callback && callback(null, imageUrl); + } catch (error) { + dispatch({ + type: types.CONVERT_PDF_TO_IMAGE_FAILURE, + payload: { pdfUrl, error }, + }); + callback && callback(error, null); + } }; const onFail = (error) => { - console.error("convertPdfToImage onFail", error); - dispatch({ type: types.CONVERT_PDF_TO_IMAGE_FAILURE, - payload: error, + payload: { pdfUrl, error }, }); - - dispatch(changeAppStatus({ showLoadingPanel: { show: false } })); - - // 콜백이 있으면 에러와 함께 호출 callback && callback(error, null); }; - // API 요청 파라미터 - const params = { - pdfUrl: pdfUrl, - }; - TAxios( dispatch, getState, - "post", + 'post', URLS.CONVERT_IMG, {}, - params, + { pdfUrl }, onSuccess, - onFail + onFail, + false, + 'blob' ); }; /** - * 변환된 이미지 데이터를 초기화하는 액션 + * 여러 PDF를 순차적으로 변환 (백그라운드) + * @param {Array} pdfUrls - 변환할 PDF URL 배열 + * @param {function} callback - 완료 후 실행할 콜백 (errors, results) + */ +export const convertMultiplePdfs = (pdfUrls, callback) => async (dispatch, getState) => { + if (!pdfUrls || pdfUrls.length === 0) { + callback && callback(null, []); + return; + } + + const results = []; + const errors = []; + + for (let i = 0; i < pdfUrls.length; i++) { + const pdfUrl = pdfUrls[i]; + + await new Promise((resolve) => { + dispatch( + convertPdfToImage(pdfUrl, (error, imageUrl) => { + if (error) { + errors.push({ pdfUrl, error }); + } else { + results.push({ pdfUrl, imageUrl }); + } + resolve(); + }) + ); + }); + + if (i < pdfUrls.length - 1) { + await new Promise((resolve) => setTimeout(resolve, 100)); + } + } + + callback && callback(errors.length > 0 ? errors : null, results); +}; + +/** + * 변환된 이미지 데이터 초기화 (전체) */ export const clearConvertedImage = () => ({ type: types.CLEAR_CONVERTED_IMAGE, }); + +/** + * 특정 PDF의 변환된 이미지 데이터 제거 + * @param {string} pdfUrl - 제거할 PDF URL + */ +export const clearConvertedImageByUrl = (pdfUrl) => ({ + type: types.CLEAR_CONVERTED_IMAGE_BY_URL, + payload: pdfUrl, +}); diff --git a/com.twin.app.shoptime/src/api/TAxios.js b/com.twin.app.shoptime/src/api/TAxios.js index f288da42..f45d47d5 100644 --- a/com.twin.app.shoptime/src/api/TAxios.js +++ b/com.twin.app.shoptime/src/api/TAxios.js @@ -14,31 +14,22 @@ import { setSystemTermination, showError, } from '../actions/commonActions'; -import { - getAuthenticationCode, - getReAuthenticationCode, -} from '../actions/deviceActions'; -import { - pushPanel, - resetPanels, -} from '../actions/panelActions'; +import { getAuthenticationCode, getReAuthenticationCode } from '../actions/deviceActions'; +import { pushPanel, resetPanels } from '../actions/panelActions'; import * as Config from '../utils/Config'; import { ACTIVE_POPUP } from '../utils/Config'; import * as HelperMethods from '../utils/helperMethods'; -import { - getUrl, - URLS, -} from './apiConfig'; +import { getUrl, URLS } from './apiConfig'; let tokenRefreshing = false; const axiosQueue = []; export const setTokenRefreshing = (value) => { - console.log("TAxios setTokenRefreshing ", value); + console.log('TAxios setTokenRefreshing ', value); tokenRefreshing = value; }; export const runDelayedAction = (dispatch, getState) => { - console.log("runDelayedAction axiosQueue size", axiosQueue.length); + console.log('runDelayedAction axiosQueue size', axiosQueue.length); while (axiosQueue.length > 0) { const requestConfig = axiosQueue.shift(); // queue에서 요청을 하나씩 shift TAxios( @@ -49,7 +40,9 @@ export const runDelayedAction = (dispatch, getState) => { requestConfig.urlParams, requestConfig.params, requestConfig.onSuccess, - requestConfig.onFail + requestConfig.onFail, + false, // noTokenRefresh + requestConfig.responseType // ⭐ responseType 전달 ); } }; @@ -62,23 +55,24 @@ export const TAxios = ( params = {}, onSuccess, onFail, - noTokenRefresh = false + noTokenRefresh = false, + responseType = undefined // ⭐ 선택적 파라미터 추가 (기존 코드 영향 없음) ) => { const pushQueue = () => { if (!noTokenRefresh) { - axiosQueue.push({ type, baseUrl, urlParams, params, onSuccess, onFail }); + axiosQueue.push({ type, baseUrl, urlParams, params, onSuccess, onFail, responseType }); } }; const decodeMessage = (apiSysMessage) => { try { const decodedBase64 = atob(apiSysMessage); - const decodedText = new TextDecoder("utf-8").decode( - new Uint8Array(decodedBase64.split("").map((c) => c.charCodeAt(0))) + const decodedText = new TextDecoder('utf-8').decode( + new Uint8Array(decodedBase64.split('').map((c) => c.charCodeAt(0))) ); return decodedText; } catch (error) { - console.error("Decoding error:", error); + console.error('Decoding error:', error); return apiSysMessage; } }; @@ -90,31 +84,34 @@ export const TAxios = ( const AUTHORIZATION = { headers: { ...httpHeader } }; if (accessToken) { - AUTHORIZATION.headers["lgsp_auth"] = accessToken; + AUTHORIZATION.headers['lgsp_auth'] = accessToken; } - AUTHORIZATION.headers["dvc_id"] = deviceId; - AUTHORIZATION.headers["refresh_token"] = refreshToken; + AUTHORIZATION.headers['dvc_id'] = deviceId; + AUTHORIZATION.headers['refresh_token'] = refreshToken; - if (typeof window === "object") { - let url = Array.isArray(baseUrl) - ? getUrl(getState, baseUrl[0]) - : getUrl(getState, baseUrl); + // ⭐ responseType 옵션 추가 (이미지, PDF 등 바이너리 데이터용) + if (responseType) { + AUTHORIZATION.responseType = responseType; + } + + if (typeof window === 'object') { + let url = Array.isArray(baseUrl) ? getUrl(getState, baseUrl[0]) : getUrl(getState, baseUrl); if (!url) { //todo error page return; } - if (type === "get") { + if (type === 'get') { const _urlparams = HelperMethods.createQueryString(urlParams); - url += _urlparams ? `?${_urlparams}` : ""; + url += _urlparams ? `?${_urlparams}` : ''; } let axiosInstance; switch (type) { - case "get": + case 'get': axiosInstance = axios.get(url, AUTHORIZATION); break; - case "post": + case 'post': axiosInstance = axios.post(url, params, AUTHORIZATION); break; // TODO: 다른 HTTP 메소드 있다면 처리 (chw) @@ -123,18 +120,17 @@ export const TAxios = ( if (axiosInstance) { axiosInstance .then((res) => { - console.log("TAxios response", url, res); + console.log('TAxios response', url, res); - const apiSysStatus = res.headers["api-sys-status"]; - const apiSysMessage = res.headers["api-sys-message"]; + const apiSysStatus = res.headers['api-sys-status']; + const apiSysMessage = res.headers['api-sys-message']; - const { systemNotice, systemTermination, appStatus } = - getState().common; + const { systemNotice, systemTermination, appStatus } = getState().common; const isInitialLoad = !appStatus.loadingComplete; - if (apiSysStatus === "800" && !systemNotice) { + if (apiSysStatus === '800' && !systemNotice) { dispatch(setSystemNotice()); - } else if (apiSysStatus === "900" && !systemTermination) { + } else if (apiSysStatus === '900' && !systemTermination) { const decodedMessage = decodeMessage(apiSysMessage); dispatch(setSystemTermination(isInitialLoad)); @@ -147,7 +143,7 @@ export const TAxios = ( }, }) ); - } else if (apiSysStatus === "901" && !systemTermination) { + } else if (apiSysStatus === '901' && !systemTermination) { const decodedMessage = decodeMessage(apiSysMessage); dispatch(setSystemTermination(isInitialLoad)); @@ -164,14 +160,9 @@ export const TAxios = ( if (baseUrl === URLS.GET_AUTHENTICATION_CODE) { if (res?.data?.retCode !== 0) { - console.error("accessToken failed", res.data.retCode); + console.error('accessToken failed', res.data.retCode); dispatch( - showError( - res.data.retCode, - res.data.retMsg, - false, - res.data.retDetailCode - ) + showError(res.data.retCode, res.data.retMsg, false, res.data.retDetailCode) ); return; } @@ -234,7 +225,7 @@ export const TAxios = ( if (onSuccess) onSuccess(res); }) .catch((error) => { - console.error("TAxios ", url, error); + console.error('TAxios ', url, error); if (onFail) onFail(error); }); } @@ -276,7 +267,7 @@ export const TAxiosPromise = ( success: true, data: response.data, response: response, - error: null + error: null, }); }, // onFail - 에러도 resolve로 처리하여 throw 방지 @@ -286,7 +277,7 @@ export const TAxiosPromise = ( success: false, data: null, response: null, - error: error + error: error, }); }, noTokenRefresh @@ -329,7 +320,7 @@ export const TAxiosAdvancedPromise = ( success: false, data: null, response: null, - error: timeoutError + error: timeoutError, }); } }, timeout); @@ -349,14 +340,14 @@ export const TAxiosAdvancedPromise = ( success: true, data: response.data, response: response, - error: null + error: null, }); }, // onFail (error) => { clearTimeout(timeoutId); console.error(`TAxiosPromise error on attempt ${attempts} for ${baseUrl}:`, error); - + // 재시도 로직 if (attempts < maxAttempts) { console.log(`Retrying in ${retryDelay}ms... (${attempts}/${maxAttempts})`); @@ -372,7 +363,7 @@ export const TAxiosAdvancedPromise = ( success: false, data: null, response: null, - error: error + error: error, }); } } @@ -387,22 +378,38 @@ export const TAxiosAdvancedPromise = ( // HTTP 메소드별 편의 함수들 (안전한 버전) export const TAxiosGet = async (dispatch, getState, baseUrl, urlParams = {}, options = {}) => { - return await TAxiosPromise(dispatch, getState, 'get', baseUrl, urlParams, {}, options.noTokenRefresh); + return await TAxiosPromise( + dispatch, + getState, + 'get', + baseUrl, + urlParams, + {}, + options.noTokenRefresh + ); }; export const TAxiosPost = async (dispatch, getState, baseUrl, params = {}, options = {}) => { - return await TAxiosPromise(dispatch, getState, 'post', baseUrl, {}, params, options.noTokenRefresh); + return await TAxiosPromise( + dispatch, + getState, + 'post', + baseUrl, + {}, + params, + options.noTokenRefresh + ); }; // 안전한 다중 요청 처리 export const TAxiosAll = async (requests) => { try { const results = await Promise.all(requests); - + // 모든 결과를 안전하게 처리 const successResults = []; const failedResults = []; - + results.forEach((result, index) => { if (result.success) { successResults.push({ index, result: result.data }); @@ -410,12 +417,12 @@ export const TAxiosAll = async (requests) => { failedResults.push({ index, error: result.error }); } }); - + return { success: failedResults.length === 0, successResults, failedResults, - allResults: results + allResults: results, }; } catch (error) { console.error('TAxiosAll unexpected error:', error); @@ -423,7 +430,7 @@ export const TAxiosAll = async (requests) => { success: false, successResults: [], failedResults: [{ index: -1, error }], - allResults: [] + allResults: [], }; } }; @@ -432,7 +439,7 @@ export const TAxiosAll = async (requests) => { export const TAxiosSequential = async (requests) => { const results = []; const errors = []; - + for (let i = 0; i < requests.length; i++) { try { const result = await requests[i]; @@ -447,44 +454,42 @@ export const TAxiosSequential = async (requests) => { console.error(`TAxiosSequential unexpected error at request ${i}:`, error); } } - + return { success: errors.length === 0, results, - errors + errors, }; }; // 안전한 Redux Thunk 헬퍼 export const createSafeApiThunk = (apiCall) => { - return (...args) => async (dispatch, getState) => { - try { - const result = await apiCall(dispatch, getState, ...args); - return result; // 이미 안전한 형태로 반환됨 - } catch (error) { - console.error('API thunk unexpected error:', error); - return { - success: false, - data: null, - response: null, - error - }; - } - }; + return (...args) => + async (dispatch, getState) => { + try { + const result = await apiCall(dispatch, getState, ...args); + return result; // 이미 안전한 형태로 반환됨 + } catch (error) { + console.error('API thunk unexpected error:', error); + return { + success: false, + data: null, + response: null, + error, + }; + } + }; }; // 실제 사용 예시들 (안전한 버전) export const safeUsageExamples = { // 1. 기본 안전한 사용법 basicSafeUsage: async (dispatch, getState) => { - const result = await TAxiosPromise( - dispatch, - getState, - 'get', - URLS.GET_HOME_TERMS, - { trmsTpCdList: "MST00401, MST00402", mbrNo: "12345" } - ); - + const result = await TAxiosPromise(dispatch, getState, 'get', URLS.GET_HOME_TERMS, { + trmsTpCdList: 'MST00401, MST00402', + mbrNo: '12345', + }); + if (result.success) { console.log('Success:', result.data); return result.data; @@ -497,78 +502,75 @@ export const safeUsageExamples = { // 2. retCode 체크를 포함한 안전한 처리 safeWithRetCodeCheck: async (dispatch, getState) => { - const result = await TAxiosGet( - dispatch, - getState, - URLS.GET_HOME_TERMS, - { trmsTpCdList: "MST00401, MST00402", mbrNo: "12345" } - ); - + const result = await TAxiosGet(dispatch, getState, URLS.GET_HOME_TERMS, { + trmsTpCdList: 'MST00401, MST00402', + mbrNo: '12345', + }); + if (!result.success) { console.error('Network error:', result.error); return { success: false, message: '네트워크 오류가 발생했습니다.' }; } - + if (result.data.retCode !== 0) { console.error('API error:', result.data.retCode, result.data.retMsg); - return { - success: false, - message: result.data.retMsg || 'API 오류가 발생했습니다.' + return { + success: false, + message: result.data.retMsg || 'API 오류가 발생했습니다.', }; } - + return { success: true, data: result.data }; }, // 3. 여러 요청의 안전한 처리 safeParallelRequests: async (dispatch, getState) => { const requests = [ - TAxiosGet(dispatch, getState, URLS.GET_HOME_TERMS, { mbrNo: "12345" }), - TAxiosGet(dispatch, getState, URLS.GET_USER_INFO, { mbrNo: "12345" }), - TAxiosPost(dispatch, getState, URLS.UPDATE_SETTINGS, { setting: "value" }) + TAxiosGet(dispatch, getState, URLS.GET_HOME_TERMS, { mbrNo: '12345' }), + TAxiosGet(dispatch, getState, URLS.GET_USER_INFO, { mbrNo: '12345' }), + TAxiosPost(dispatch, getState, URLS.UPDATE_SETTINGS, { setting: 'value' }), ]; - + const result = await TAxiosAll(requests); - + if (result.success) { console.log('All requests succeeded'); - return result.successResults.map(item => item.result); + return result.successResults.map((item) => item.result); } else { console.error('Some requests failed:', result.failedResults); // 부분적 성공도 처리 가능 return { - successData: result.successResults.map(item => item.result), - errors: result.failedResults + successData: result.successResults.map((item) => item.result), + errors: result.failedResults, }; } - } + }, }; - // 컴포넌트에서의 안전한 사용법 export const ComponentUsageExample = () => { const dispatch = useDispatch(); const [loading, setLoading] = useState(false); const [error, setError] = useState(null); - + const handleFetchTerms = async () => { setLoading(true); setError(null); - + const result = await dispatch(fetchCurrentUserHomeTermsSafe()); - + setLoading(false); - + if (result.success) { - console.log("Terms fetched successfully"); + console.log('Terms fetched successfully'); // 성공 처리 (예: 성공 토스트 표시) } else { - console.error("Failed to fetch terms:", result.message); + console.error('Failed to fetch terms:', result.message); setError(result.message); // 에러 처리 (예: 에러 토스트 표시) } }; - + return (
); -}; \ No newline at end of file +}; diff --git a/com.twin.app.shoptime/src/components/TItemCard/TItemCard.module.less b/com.twin.app.shoptime/src/components/TItemCard/TItemCard.module.less index 7645b708..ab4d4286 100644 --- a/com.twin.app.shoptime/src/components/TItemCard/TItemCard.module.less +++ b/com.twin.app.shoptime/src/components/TItemCard/TItemCard.module.less @@ -515,3 +515,29 @@ } } } + +// 🔽 에너지 라벨 팝업 스타일 (1920x1080 TV 화면 기준) +.energyPopupContent { + width: 100%; + max-height: 800px; // 팝업 타이틀/버튼 영역 제외한 콘텐츠 최대 높이 + overflow-y: auto; + display: flex; + justify-content: center; + align-items: center; + padding: 20px; +} + +.energyImagesContainer { + width: 100%; + display: flex; + justify-content: center; + align-items: center; +} + +.energyImage { + max-width: 100%; + max-height: 750px; // 1080px - 타이틀(~120px) - 버튼(~120px) - 여백(~90px) + width: auto; + height: auto; + object-fit: contain; // 비율 유지하면서 컨테이너에 맞춤 +} diff --git a/com.twin.app.shoptime/src/components/TItemCard/TItemCard.new.jsx b/com.twin.app.shoptime/src/components/TItemCard/TItemCard.new.jsx index 30c8c5f5..6a4be9e4 100644 --- a/com.twin.app.shoptime/src/components/TItemCard/TItemCard.new.jsx +++ b/com.twin.app.shoptime/src/components/TItemCard/TItemCard.new.jsx @@ -1,75 +1,62 @@ -import React, { - memo, - useCallback, - useEffect, - useMemo, - useState, -} from 'react'; +import React, { memo, useCallback, useEffect, useMemo, useState } from 'react'; import classNames from 'classnames'; -import { - useDispatch, - useSelector, -} from 'react-redux'; +import { useDispatch, useSelector } from 'react-redux'; +import Spotlight from '@enact/spotlight'; import Spottable from '@enact/spotlight/Spottable'; -import defaultLogoImg - from '../../../assets/images/ic-tab-partners-default@3x.png'; -import defaultimgHorizontal - from '../../../assets/images/img-thumb-empty-hor@3x.png'; -import defaultImageItem - from '../../../assets/images/img-thumb-empty-product@3x.png'; -import defaultimgVertical - from '../../../assets/images/img-thumb-empty-ver@3x.png'; +import defaultLogoImg from '../../../assets/images/ic-tab-partners-default@3x.png'; +import defaultimgHorizontal from '../../../assets/images/img-thumb-empty-hor@3x.png'; +import defaultImageItem from '../../../assets/images/img-thumb-empty-product@3x.png'; +import defaultimgVertical from '../../../assets/images/img-thumb-empty-ver@3x.png'; import IcLiveShow from '../../../assets/images/tag/tag-liveshow.png'; -import testPdf from '../../../assets/mock/test.pdf'; -import { - setHidePopup, - setShowPopup, -} from '../../actions/commonActions'; +// 🧪 테스트용 에너지 라벨 (실제 PDF 변환 테스트) +import testEnergyIconA from '../../../assets/images/energyLabel/labelgradeA.png'; +import testEnergyIconB from '../../../assets/images/energyLabel/labelgradeB.png'; +import testEnergyIconC from '../../../assets/images/energyLabel/labelgradeC.png'; +import testEnergyPdf from '../../../assets/mock/EnergyLabelSample.pdf'; +import { setHidePopup, setShowPopup } from '../../actions/commonActions'; import { clearConvertedImage, convertPdfToImage, + convertMultiplePdfs, } from '../../actions/convertActions'; import { sendLogTotalRecommend } from '../../actions/logActions'; import usePriceInfo from '../../hooks/usePriceInfo'; import * as Config from '../../utils/Config'; -import { - $L, - getQRCodeUrl, - removeSpecificTags, -} from '../../utils/helperMethods'; +import { $L, getQRCodeUrl, removeSpecificTags } from '../../utils/helperMethods'; +import { SpotlightIds } from '../../utils/SpotlightIds'; import CustomImage from '../CustomImage/CustomImage'; import TPopUp from '../TPopUp/TPopUp'; import css from './TItemCard.module.less'; -const SpottableComponent = Spottable("div"); -const SpottableTemp = Spottable("div"); +const SpottableComponent = Spottable('div'); +const SpottableTemp = Spottable('div'); const TYPES = { - vertical: "vertical", - horizontal: "horizontal", - videoShow: "videoShow", + vertical: 'vertical', + horizontal: 'horizontal', + videoShow: 'videoShow', }; const IMAGETYPES = { - imgHorizontal: "imgHorizontal", - imgVertical: "imgVertical", + imgHorizontal: 'imgHorizontal', + imgVertical: 'imgVertical', }; const STRING_CONF = { - SOLD_OUT: "SOLD OUT", - ENERGY_LOADING: "Loading energy label...", - ENERGY_ERROR: "Failed to load energy label", + SOLD_OUT: 'SOLD OUT', + ENERGY_LOADING: 'Loading energy label...', + ENERGY_ERROR: 'Failed to load energy label', }; export const removeDotAndColon = (string) => { - return /[.:]/.test(string) ? string.replace(/[.:]/g, "") : string; + return /[.:]/.test(string) ? string.replace(/[.:]/g, '') : string; }; const parsePrice = (price) => { - return parseFloat(price?.replace(/[^0-9.-]+/g, "") || "0"); + return parseFloat(price?.replace(/[^0-9.-]+/g, '') || '0'); }; export default memo(function TItemCardNew({ @@ -126,25 +113,28 @@ export default memo(function TItemCardNew({ const [currentPdfUrl, setCurrentPdfUrl] = useState(null); const countryCode = useSelector((state) => state.common.httpHeader.cntry_cd); - const cursorVisible = useSelector( - (state) => state.common.appStatus.cursorVisible - ); - const { activePopup, popupVisible } = useSelector( - (state) => state.common.popup - ); + const cursorVisible = useSelector((state) => state.common.appStatus.cursorVisible); + const { activePopup, popupVisible } = useSelector((state) => state.common.popup); const convert = useSelector((state) => state.convert); const serverHOST = useSelector((state) => state.common.appStatus.serverHOST); const serverType = useSelector((state) => state.localSettings.serverType); + // 컴포넌트 unmount 시 메모리 정리 + useEffect(() => { + return () => { + if (convert?.convertedImage) { + URL.revokeObjectURL(convert.convertedImage); + } + }; + }, [convert?.convertedImage]); + useEffect(() => { if (!imageSource) { - if (type === "videoShow") { + if (type === 'videoShow') { setDefaultImage( - imgType === IMAGETYPES.imgHorizontal - ? defaultimgHorizontal - : defaultimgVertical + imgType === IMAGETYPES.imgHorizontal ? defaultimgHorizontal : defaultimgVertical ); } else { setDefaultImage(defaultImageItem); @@ -152,8 +142,27 @@ export default memo(function TItemCardNew({ } }, [imageSource, type, imgType]); - const { originalPrice, discountedPrice, discountRate } = - usePriceInfo(priceInfo) || {}; + // ⚠️ 자동 변환 비활성화 (클릭 시에만 변환 테스트) + // useEffect(() => { + // if (euEnrgLblInfos && euEnrgLblInfos.length > 0) { + // const pdfUrls = euEnrgLblInfos + // .filter((info) => info?.enrgLblUrl && !info.enrgLblUrl.endsWith('.png')) + // .map((info) => info.enrgLblUrl); + // + // if (pdfUrls.length > 0) { + // console.log(`🔄 [EnergyLabel] Auto-converting ${pdfUrls.length} PDFs for product:`, productId); + // dispatch(convertMultiplePdfs(pdfUrls, (errors, results) => { + // if (errors) { + // console.error(`❌ [EnergyLabel] Some conversions failed for product:`, productId, errors); + // } else { + // console.log(`✅ [EnergyLabel] All conversions successful for product:`, productId); + // } + // })); + // } + // } + // }, [euEnrgLblInfos, productId, dispatch]); + + const { originalPrice, discountedPrice, discountRate } = usePriceInfo(priceInfo) || {}; const _onBlur = useCallback(() => { if (onBlur) { @@ -241,25 +250,23 @@ export default memo(function TItemCardNew({ ); const ariaLabel = useMemo(() => { - const soldOutText = soldoutFlag === "Y" ? "Sold Out " : ""; - const firstLabelText = firstLabel ? `${firstLabel} ` : ""; - const discountLabel = discountRate ? `${discountRate} discount, ` : ""; - const discountPriceLabel = discountRate - ? `Sale price ${discountedPrice}, ` - : ""; + const soldOutText = soldoutFlag === 'Y' ? 'Sold Out ' : ''; + const firstLabelText = firstLabel ? `${firstLabel} ` : ''; + const discountLabel = discountRate ? `${discountRate} discount, ` : ''; + const discountPriceLabel = discountRate ? `Sale price ${discountedPrice}, ` : ''; const parsedPrice = parsePrice(originalPrice); const priceLabel = parsedPrice === 0 ? offerInfo ? ` ${offerInfo}` - : "" + : '' : originalPrice ? ` Original price ${originalPrice}, ` - : ""; + : ''; - const productLabel = label || ""; - const lastLabelText = lastLabel || ""; + const productLabel = label || ''; + const lastLabelText = lastLabel || ''; return `${soldOutText}${firstLabelText}${discountLabel}${productName}${discountPriceLabel}${priceLabel}${productLabel}${lastLabelText}`; }, [ @@ -279,28 +286,50 @@ export default memo(function TItemCardNew({ return sanitizedString; }, [productName]); - // 🔽 팝업 닫기 + // 🔽 팝업 닫기 + 메모리 정리 const handleClosePopup = useCallback(() => { + // Object URL 메모리 해제 + if (convert?.convertedImage) { + URL.revokeObjectURL(convert.convertedImage); + } + dispatch(setHidePopup()); dispatch(clearConvertedImage()); setCurrentPdfUrl(null); - }, [dispatch]); + }, [dispatch, convert?.convertedImage]); const { setupPinUrl } = useMemo(() => { return getQRCodeUrl({ serverHOST, serverType }); }, [serverHOST, serverType]); - // 🔽 에너지 라벨 클릭 - PDF 변환 시작 const onEnergyClick = useCallback( (e, pdfUrl) => { e.stopPropagation(); - setCurrentPdfUrl(pdfUrl); - dispatch(setShowPopup(Config.ACTIVE_POPUP.energyPopup)); - // PDF를 이미지로 변환 - // dispatch(convertPdfToImage(pdfUrl)); - dispatch(convertPdfToImage(testPdf)); + // PNG 이미지는 직접 표시 + if (pdfUrl.endsWith('.png')) { + dispatch({ + type: 'CONVERT_PDF_TO_IMAGE_SUCCESS', + payload: { pdfUrl, imageUrl: pdfUrl }, + }); + dispatch(setShowPopup(Config.ACTIVE_POPUP.energyPopup)); + return; + } + + // PDF 변환 시작 (성공 시에만 팝업) + dispatch( + convertPdfToImage(pdfUrl, (error, imageUrl) => { + if (error) { + console.error('[EnergyLabel] 변환 실패:', error.message || error); + } else { + dispatch(setShowPopup(Config.ACTIVE_POPUP.energyPopup)); + setTimeout(() => { + Spotlight.focus(SpotlightIds.TPOPUP); + }, 250); + } + }) + ); }, [dispatch] ); @@ -311,15 +340,13 @@ export default memo(function TItemCardNew({ className={classNames( css[type], nonPosition && css.nonPosition, - type === "videoShow" && css[imgType], + type === 'videoShow' && css[imgType], className && className )} onBlur={_onBlur} onClick={_onClick} onFocus={_onFocus} - spotlightId={ - spotlightId ?? "spotlightId-" + removeDotAndColon(productId) - } + spotlightId={spotlightId ?? 'spotlightId-' + removeDotAndColon(productId)} aria-label={ariaLabel} role="button" {...rest} @@ -330,7 +357,7 @@ export default memo(function TItemCardNew({ delay={0} src={imageSource} fallbackSrc={ - type === "videoShow" + type === 'videoShow' ? imgType === IMAGETYPES.imgHorizontal ? defaultimgHorizontal : defaultimgVertical @@ -338,24 +365,15 @@ export default memo(function TItemCardNew({ } onError={addDefaultImg} /> - {priceInfo && - discountRate && - Number(discountRate.replace("%", "")) > 4 && ( - {discountRate} - )} - {soldoutFlag && soldoutFlag === "Y" && ( -
+ {priceInfo && discountRate && Number(discountRate.replace('%', '')) > 4 && ( + {discountRate} + )} + {soldoutFlag && soldoutFlag === 'Y' && ( +
{$L(STRING_CONF.SOLD_OUT)}
)} - {isLive && ( - Live Show - )} + {isLive && Live Show}
- {parseFloat(originalPrice?.replace(/[^0-9.-]+/g, "") || "0") === - 0 ? ( + {parseFloat(originalPrice?.replace(/[^0-9.-]+/g, '') || '0') === 0 ? ( {offerInfo} ) : discountRate ? ( discountedPrice ) : ( originalPrice )} - {discountRate && ( - {originalPrice} - )} + {discountRate && {originalPrice}}

) : (

{offerInfo}

@@ -402,12 +417,68 @@ export default memo(function TItemCardNew({ {originPrice && (

{dcPrice ? dcPrice : originPrice} - {dcPrice && ( - {originPrice} - )} + {dcPrice && {originPrice}}

)}
+ {/* 🧪 테스트: 모든 상품에 [EnergyLabel] 표시 (test.pdf 변환 확인용) */} + {/* ✅ 실제 운영: 아래 주석 삭제하고 원래 조건문으로 복구 */} + {(() => { + let energyLabels; + + // 실제 API 데이터가 있으면 사용 + if (euEnrgLblInfos?.length > 0 && euEnrgLblInfos[0]?.enrgLblIcnUrl !== null) { + energyLabels = euEnrgLblInfos; + } else { + // 🧪 테스트: 랜덤으로 1~3개 생성 + // productId 전체를 해시해서 균등한 분산 (같은 상품은 항상 같은 개수) + const hashCode = (str) => { + let hash = 0; + const s = String(str); + for (let i = 0; i < s.length; i++) { + hash = (hash << 5) - hash + s.charCodeAt(i); + hash = hash & hash; // Convert to 32bit integer + } + return Math.abs(hash); + }; + + const seed = productId ? hashCode(productId) : Math.floor(Math.random() * 1000); + const randomCount = (seed % 3) + 1; // 1, 2, 3 중 하나 + + const testIcons = [testEnergyIconA, testEnergyIconB, testEnergyIconC]; + const testGrades = ['A (TEST)', 'B (TEST)', 'C (TEST)']; + + energyLabels = Array.from({ length: randomCount }, (_, index) => ({ + enrgLblUrl: testEnergyPdf, + enrgLblIcnUrl: testIcons[index], + enrgGrade: testGrades[index], + })); + } + + // 하나의 labelImgBox 안에 모든 라벨 배치 (세로로 쌓임) + return ( +
+ {energyLabels + .filter((info, index) => index < 3) + .map((info, index) => ( + onEnergyClick(e, info.enrgLblUrl)} + aria-label={`Energy Efficiency ${info.enrgGrade || ''}`} + > + + + ))} +
+ ); + })()} + {/* + 원래 코드 (테스트 완료 후 복구): {euEnrgLblInfos && euEnrgLblInfos.length > 0 && euEnrgLblInfos[0]?.enrgLblIcnUrl !== null && @@ -429,6 +500,7 @@ export default memo(function TItemCardNew({
) )} + */} {isBestSeller && rank && (
@@ -437,30 +509,53 @@ export default memo(function TItemCardNew({ )} - {activePopup === Config.ACTIVE_POPUP.energyPopup && currentPdfUrl && ( - -
- {convert && ( -
- Energy Label -
- )} -
-
- )} + {(() => { + const showPopup = activePopup === Config.ACTIVE_POPUP.energyPopup && currentPdfUrl; + if (!showPopup) return null; + + return ( + +
+ {convert ? ( + <> +
+ {convert.convertedImage ? ( + Energy Label + ) : convert.error ? ( +
+

{$L(STRING_CONF.ENERGY_ERROR)}

+

+ {convert.error?.message || String(convert.error)} +

+
+ ) : ( +
+

{$L(STRING_CONF.ENERGY_LOADING)}

+
+ )} +
+ + ) : ( +
+

{$L(STRING_CONF.ENERGY_ERROR)}

+
+ )} +
+
+ ); + })()} ); }); diff --git a/com.twin.app.shoptime/src/reducers/convertReducer.js b/com.twin.app.shoptime/src/reducers/convertReducer.js index 34ef83ea..897685f6 100644 --- a/com.twin.app.shoptime/src/reducers/convertReducer.js +++ b/com.twin.app.shoptime/src/reducers/convertReducer.js @@ -1,32 +1,75 @@ import { types } from '../actions/actionTypes'; -import { - curry, - get, - set, -} from '../utils/fp'; +import { curry, get } from '../utils/fp'; -// 초기 상태 정의 const initialState = { convertedImage: null, + convertedImages: {}, error: null, + errors: {}, isConverting: false, + converting: {}, }; -// 변환 성공 핸들러 -const convertSuccess = curry((state, action) => - set( - "convertedImage", - get("payload", action), - set("error", null, set("isConverting", false, state)) - ) -); +const convertSuccess = curry((state, action) => { + const payload = get('payload', action); + let imageUrl; + let pdfUrl; -// 변환 실패 핸들러 -const convertFailure = curry((state, action) => - set("error", get("payload", action), set("isConverting", false, state)) -); + if (typeof payload === 'string') { + imageUrl = payload; + } else if (payload && typeof payload === 'object') { + pdfUrl = payload.pdfUrl; + imageUrl = payload.imageUrl; + } else { + return state; + } + + return { + ...state, + convertedImage: imageUrl, + convertedImages: pdfUrl + ? { + ...state.convertedImages, + [pdfUrl]: imageUrl, + } + : state.convertedImages, + error: null, + isConverting: false, + }; +}); + +const convertStart = curry((state, action) => { + const pdfUrl = get('payload', action); + + return { + ...state, + isConverting: true, + converting: { + ...state.converting, + [pdfUrl]: true, + }, + }; +}); + +const convertFailure = curry((state, action) => { + const payload = get('payload', action); + const { pdfUrl, error } = payload; + + return { + ...state, + error: error, + errors: { + ...state.errors, + [pdfUrl]: error, + }, + isConverting: false, + converting: { + ...state.converting, + [pdfUrl]: false, + }, + }; +}); -// 변환 데이터 초기화 핸들러 const clearConverted = curry((state) => ({ ...state, convertedImage: null, @@ -34,15 +77,30 @@ const clearConverted = curry((state) => ({ isConverting: false, })); -// 액션 타입별 핸들러 매핑 +const clearConvertedByUrl = curry((state, action) => { + const pdfUrl = get('payload', action); + const { [pdfUrl]: removedImage, ...restImages } = state.convertedImages; + const { [pdfUrl]: removedError, ...restErrors } = state.errors; + const { [pdfUrl]: removedConverting, ...restConverting } = state.converting; + + return { + ...state, + convertedImages: restImages, + errors: restErrors, + converting: restConverting, + }; +}); + const handlers = { + [types.CONVERT_PDF_TO_IMAGE]: convertStart, [types.CONVERT_PDF_TO_IMAGE_SUCCESS]: convertSuccess, [types.CONVERT_PDF_TO_IMAGE_FAILURE]: convertFailure, [types.CLEAR_CONVERTED_IMAGE]: clearConverted, + [types.CLEAR_CONVERTED_IMAGE_BY_URL]: clearConvertedByUrl, }; export const convertReducer = (state = initialState, action = {}) => { - const type = get("type", action); + const type = get('type', action); const handler = handlers[type]; return handler ? handler(state, action) : state; };