// L'unique requête dont on a besoin ! $ch = curl_init("https://{$hiboutik_account}.hiboutik.com/api/sales/$id"); curl_setopt($ch, CURLOPT_USERPWD, "$hiboutik_user:$hiboutik_key"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $res = curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($http_code == 200) { $parsed = json_decode($res, true); if (!is_array($parsed) || isset($parsed['error'])) continue; // Hiboutik met parfois la vente dans un tableau [0] $sale = isset($parsed[0]) ? $parsed[0] : $parsed; // Si le ticket contient la fameuse liste "line_items", on fouille ! if (isset($sale['line_items']) && is_array($sale['line_items'])) { $items_to_log = []; foreach ($sale['line_items'] as $item) { $cat_name = isset($item['category_name']) ? $item['category_name'] : ''; // Détection infaillible de la Catégorie B d'après votre JSON // Le \bB\b vérifie que la lettre B est isolée (pas au milieu d'un mot) if (preg_match('/\bB\b/iu', $cat_name) || stripos($cat_name, 'CATÉGORIE B') !== false || stripos($cat_name, 'CATEGORIE B') !== false) { $items_to_log[] = [ 'name' => isset($item['product_model']) ? $item['product_model'] : 'Désignation inconnue', 'qty' => isset($item['quantity']) ? $item['quantity'] : 1 ]; } } // Si on a trouvé des munitions B, on récupère le client if (!empty($items_to_log)) { $client_nom = "CLIENT"; $client_prenom = "ANONYME (Vente Comptoir)"; if (!empty($sale['customers_last_name'])) { $client_nom = strtoupper($sale['customers_last_name']); $client_prenom = ucfirst(strtolower(isset($sale['customers_first_name']) ? $sale['customers_first_name'] : '')); } // Récupération de la date $created_at = isset($sale['created_at']) ? $sale['created_at'] : ''; $date_parts = explode(' ', $created_at); $sale_date = isset($date_parts[0]) ? date("d/m/Y", strtotime($date_parts[0])) : 'Date inconnue'; $sale_time = isset($date_parts[1]) ? $date_parts[1] : '-'; // Récupération de la facture $document_ref = "Ticket #$id"; if (!empty($sale['invoice_id'])) { $document_ref = "Facture #" . $sale['invoice_id']; } elseif (!empty($sale['sale_num_fac'])) { $document_ref = "Facture " . $sale['sale_num_fac']; } foreach ($items_to_log as $log_item) { fputcsv($f, [ $sale_date, $sale_time, $client_nom, $client_prenom, $log_item['name'], $log_item['qty'], $document_ref ], ';'); } } } } } fclose($f); $next_url = admin_url("admin.php?page=hiboutik-registre&step=process&ticket_start=$ticket_start&tickets_to_scan=$tickets_to_scan¤t_ticket=$limit_for_this_run"); $tickets_restants = $limit_for_this_run - $stop_ticket; echo "
⚡ Scan ultra-rapide en cours...
Le script analyse actuellement le ticket #$limit_for_this_run.
Encore $tickets_restants tickets à vérifier...
"; echo ""; } // --- ETAPE 3 : RÉSULTAT FINAL --- elseif ($step == 'done') { $rows = []; if (file_exists($csv_file)) { $handle = fopen($csv_file, "r"); if ($handle !== FALSE) { $header = fgetcsv($handle, 2000, ";"); while (($data = fgetcsv($handle, 2000, ";")) !== FALSE) { if (count($data) >= 7) { $rows[] = $data; } } fclose($handle); } } echo "

✅ Registre de Police prêt !

"; echo "
"; echo "📥 Sauvegarder en Excel"; echo ""; $start_url = admin_url('admin.php?page=hiboutik-registre'); echo "

🔄 Faire une nouvelle extraction"; echo "
"; if (count($rows) > 0) { echo ""; echo ""; foreach ($rows as $row) { $is_anon = ($row[2] == 'CLIENT' && strpos($row[3], 'ANONYME') !== false); $name_class = $is_anon ? "class='client-anon'" : ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; } echo "
Date & Heure Nom de l'acquéreur Prénom Désignation (Catégorie B) Qté Preuve de Vente
" . esc_html($row[0]) . "
à " . esc_html($row[1]) . "
" . esc_html($row[2]) . "" . esc_html($row[3]) . "" . esc_html($row[4]) . "" . esc_html($row[5]) . "" . esc_html($row[6]) . "
"; } else { echo "
Aucune munition de Catégorie B n'a été trouvée.
"; } } echo ""; } ?>rH(>tWY(E6{-J$˵Aa];f{Yq:9։Xq[O֗1F&Qk#G9n9oNv=dbUb?ԙŽcu^nO9=:_ ڱ]4u 6@24]̰ PMTSp@-5`hBulZ+N+[ڭTs-$hEjxGLoؖyWu};FXٵ/-Uԙځfvj@guݯas`{[Π <۲tDYuջacx*N Ye c+M\$Z=aOuLQ)WrSߜz5}j&K ]}$ klm7g;J6xquZ;^Õ1胂YjٖÒ+xٗ;k>% _aGJeD)F3{#C mLL?݌___mSQǛ%!f'蛆7W:qO>ҔeElioR6K..\\\Կ頢|aI!,QQ.Jy#ݸ PMS̐bF3qn)_;$D^0r"'$_#|`y:49AϹ躴K{6( Goƕ[t?UlC{Q 1A Hm/} ҘC]lj`j͢Ez2Q930lTh}. _?l~y*:)ڝk }x/ 嗇c|ċ>GcYSe ;1{ _ Rm:Gaٵwxs[uʍ/9ۿ|٘Av>d <&b[ 4y+?yəj,?D^jZ,blΜμvgl#,@"&,KGWTj(m9ZP7퇣èe(6a[گbhcELFbϿh ^=bƹx/ h`v o'yy/Ob?}װ8Ӓ4KG0NQ}_ecVVҦӦ7lr<޿Ԋ? _݋T[z `^ˢ;T/A9495, @AQ{ ,|zO'!Mʬbf;#׆ƥCʴݝgz UseƥA)ībc?jKg +>>k@ܷ$emLӴ#vj@)>Tdžys[k[PB6ƶj6=G:NSu z>=D7z8{2lǵm?lBL&lEhFYˁIҷ}#'q6 9̷%",_.nճ+ 70n&HUiXĽ\l+@xbB] ʼnn1SDd&{ [~[l3Bj/G\MHPYG?'h\)3;^aż$4"31jW~R`CiY3=AO#(SAj ;tIW g*H@gmѝ66p_57{u~7[v>2<%Rt`nqp.@/勸x[Ti3t77R5^4]]R 鿣Vl4`3zU.V+ERbbIOԐH!YD'{tquǴ pxpHVܐEnFMH_Et2ǵ7iTO DgEo3If؀~3gPaX}f'dvDIfEUC[&s6];SgZ x抢z x TWayP5j\Ra Ur*X]eFu冲 t76spmo)0 LDdh*Hc30R-~SK(G` 0#Ajԭl+ԊӆgÙ ;D>%=Y2*.Ӌ|>uz_ϣ>^* J4ȝv6R塖[.51N:&ne=KT20&pM!9Qr>/7Zc\ڨTYzS7exU[g`X~>t}SyRzJf)Q)573)[9dT Q>(BD~[sTOXsikրϪ c2XϫC؆m볪l:A($`[V xKV(WpķYEZ8W41*SmTPknl>&%sLJ-hHu6Mxmd͌ Ьr.cmVzX9RiQAi&V7JmJ\sC'鬪I>ҢzkTw\oȥT1wc R%VH @9XρhD-&ԋFlb~0 u/8u Re(@K0D2JצלUvjv#Wŕ*AY߈&0kMR"EMQ~Ru10s$LܲD^|I(.bWsGR& uoq4I Ƙ@/#-/*r/-c{~ɮg(+U!P+"&Juצ{3{/p 9ѥe`&ggNt#rg9qEmf]7fՐv*Ğ*6Ɯ.6#bk MwQRSrw!HF>AQHT2|O%}'KS>K⹥ѽ\BF(\fE6Ud_ȥ+yK _-|9eiKr?Yv aԵZzY˲Bj/bl0DZbq(g;<|\p/`8m!~.RܲJ^mX%yxl:l6,鬢jݡ1Yʊ4W]]/:̮ &1ϦM0Ϋl^I3qhjN]Ή؜{'-Xh@JIӬeHN#>4BPBj:ypӏ tg~kX#Zxu>]5EK4;fpTȗ!TIcl'#D2-x,M@E.>f [ "^OdW“`SԽ"Aw/}xw؋x^d|>x(EȔ-FHZnG_ݽG +W@" ޵>t%ʪO|Z [=$d -XijŶ!#skMwHSWw@U[L >Pg[PIGR<ݳH6R=c 0z qURh=R]v8@:)=}. }K&FO{i0CP*50AKgXPB6 t+T(cK6%աDe}||O 1l]RweDCP)))toXWa^d㙄\, U7 xyA7m'X #WI (-0BBɊ)JCvbP̎|bgDe[x[V.WPC,>D>HwLO3 ԺI \с lr֗/$(f͟:>PS*%+N aNPϋ4I(ٴȟ& A!%:-O4[=uM/e*:#fHo@-~7:mX7߄R؁Fc·phh#h ߱c\'G4 G6>9[2$MN* 5g_}4TҦ0lZQ>vkECzx~0H;1D9^to])`L%6>6#!)үz1+l=cP8:B#P`qЉ~[Osvvd0J:tҦ"THFO:BX3ZUFQk4jYUk*žHZ c(Ə=逡ʳ.{x8&ZDĉ_CrU(^50fud1)Vrl^U61Y)*T_t 醻g{pѐyY)*=hS̭b"lO}$|J#ܿ wXުK=rwC;2d ~GD}slt'/G'nnq81o/vXs;7CoݮjџN߼}W;#}~moN:?T>Vyw~ݿ|}Rmowݾ?} v/nFS-l?||J?IAFGYaf Vst7}r/7Vm.>vĉk#ພ ,?فe*JVHxi4 3Ӥj̃'=ݙIe *I^Ӎ|!fa8V+/!f颠h/P:2jqҫ^0P9 @6@׻8&ƐCOA\SYaa iq`kd]<`.}l󽓣]ޚC[_j`%?d!=@>61 <|= WziZJepdypeZKp`tS) Q7}fߪcurqb;6.7O< +<>)DH)`v,٦PkY [ zeU"cA|O$/!(NBZa`]j ޽m+UjMΧXW-nMmPYi̍~m؏?aق 2F)aku\4XEhnLFC~g$v3=Op3NO)&tS99wJK] HTY81GX  -o¸JҏQEFR[0t(HT#/_aZ ;hϔb/|6'1&2d& RDo*LǺ̻_=v9aޡOP'm~/4#c0ЭCD'%G}\M~ϗ] EQ.ͣYK=b|WI/s >54KD \K\zuzFWXc!AdG)Em(`L;s4Ms\DA65kf@ /u.ODixS=x2RgAE}kST5(4b'_E\4yޚnyvb&zz-#|TPw ) ~e@߸?eggbҽܷ'/ԇ670K Pw0uH)nk5J5`QoI`Ԁ?C^]KwE>u{>QZBGEǺ`< x 9"v*W|%+vw̷iF't(TăcX1iI`K}IIt=cܣk#,3 r*@gf!"֕*#h{}#C[vX'Pc@6cK=wVDpiϞ7Ux=d=in)pK]H9QV~}d'd)@, / Ό(V\,D {Pg2FMh%Kpc(l3FD7 9ňcfS,&k b cl@YK")aQ,68Aeg-'PɑN) ;+4Rk,2$ҵ fĆ[N#sFsD?j]*xIR@?6%/~}{$qt#VDgܮ U"̛5Xbs|^\4"d/Ac雀y\gt "d9 /Zq @7y}䝝zT<)02@B^؉L޺;z MDvLf?;m9hs7g>Ŝw^C9v9(e# UvVw+rImPST]JD6͘I/U1m9ȬohH֒ה_[) x“K=3lfH}ucfA4,N#)tI=MCs'viG}*ү=S1*CFMz3~ZMcTSj8ԔZX_ȂҜtlX##Yx<#KH~toUf|jƗ= Yk^]mYuM~OuJ.$:rAZp%wGa9}ou)4>Rx<,NfNb#,_6em}f5R ^egKvF$bLjŽ"$stT:`W_{gqg)r elEgPbH$DQ<$"&{6ts,}|W@ҫ&×-DWb<yh7e޶k(LK>0o|IJBiِceu iJU0_7 2^0T1gR3ɸOYʠPϬVy"y4J'b@d̚ K31v *c|8IQs=3(h=yp0]Ufaq('PGi:cBɒR+SGMEh~͒xQzܒ1=, abLG{,>"vC%N`zܹi;/mO_=oy}%bݢ qbN$Dz*}mzTȌ-LH:f7|D82eFy6,O٨#XqZz&`ii)w`<ʤ}s8>ELxniˎN܄ <~=6 $j ?LL}t^L)h|qf/- T "8 9Tq:8#-&1ńh;eB[g";tc綃̱l3O6/:L)GS' d5?2Oy҇ՔSEM+}I$Le"s*^`&*s=^l߃On#޵[ڒ,绢sK0ʙNћ1(Y*"_ KX"Tsq̰Dj(6u{e4g2I>E'kږy}G{Gb2)ULiB™[h^SD:\tΌΜ'3qMyR:%Hѭ&'%m '2*o*ƨ1oMHo]s)?Ip/a~D:bܴ$I T'QJ7Q!   QL,K?n^X(,]L. GNO4ӳ_ ~~ 62vH0&ԣcy/RG-qlY y-8Ib>lR#ҞEb<&drEr?,*"`$f+L55g9\eMSM0y~fX w 7!e6I{%Q@@aZ$ SlLydGLUE -G^,!''!]/n19TbSh;&3䗟˜LHr8{xcGDA;_*:.Z~wr]Jx&֋F|ySb:`c 1~\hBj:HIS:/' A=%TjqZ'ZN'Ϸq: lHx|3 *7.(uE]kr,t O>+($BlFqu9Uz ;߅jf7Tx/Yde(T]NtLmRf7 "ɤshө۾>P8]7Fg)k5W$0(F%^Xch~U>TE-b݆A9@w1 ;3?# DlP>Z';<~r^m-Ԁ*D-߻&4hJxKwoB ?KO^OC\l+qe3/v/7U…ŠUF=_ $o.hxhxU(J[QkE}5'0HDr(E)Oĉ芘|^0:shH3F .J/%BY]NNѝN''="Me~$PQ{~pݣNh*Pt|MeN%T4T@sS+eDŽ9ȓ) f=6XaP GnjWsЯٵ'IqÂԯOD>ysW ,MuӓL~~ KL=1&Q1)KWHso~9I#4bPh$pe`(ODE|#uvVM2?b^fcf{yEat}%&ad$2hbhf&>b*ʾ3R_!;@|f/+_ %{RE[iS5ФI?7.=9:u|2+*9[Q_˩Az]_#r4ZYQ)כvǷpQCg,g'x0s&l})uF(pŘm߹."kJVZ%{UtRTySEO 3TiOvzrݿw;-㽋A̜ɊՁggݫd'^y^NN6F+`xX8;8kl]~r`@K;1r|r}yX1O5VU~eWV};9||o,ѡ3]s=ռGO:F*I p`]잓Yxvr̾}V6_71|}r62*-yTmY%unĮjJM-'QsQ:XvWUio5=SW']Qhs^c+ƵHzL[qc8Xރ"'vY~ZΪGgɽ)%Gfl,f<8>8?89~PcR2--i0P"NO^g4Vip|U雪VKz ׇ shO.w߂7gX4(qnGqT Lua/ݽ8;iL /rl}߾(%~On8ֳ=Աj`_G']0}֬/vߌI庱Sztő"G3{Ծ4Vӡ' nxhk%ђ$uŲouA+V[U:h1$U+pRWP67K!~M>yx{l<㪷KwOF=mxtMr{orrz~ XdXNfODZ-[8eXv|/w{\Pi s3pꂦ.gq1/;Y,eW귗S:]`8/;Fo/rꞠ`5L?c3+4BUF B"*9?, )7׹J?8wH B od @'_ᖜY]ÄV9c읢p]Qod Oģ!ʅܻǕ~x{B:mW*0C>4H}Uڞwv/O"Ai9UYe[}yDn/<;tO{n\f^G.IefomCv1ςKnx}r pmh)s8ϚK}N9pwӹZs{l86]CXK:'otc)ѝG!;_\ʧçFbu,89=&o=Xm|ut:@?PO{jK}BS/@gV+ .꟞])sR+^yj,'UÖ_]r1s]8.; {D7?!+X#sUF 9FcR_D8:Mv M#KpߢXfh`fXb8"n.ذY!* f8]RCwû=LZ/)Jѓ9EJ>&].˼e:4!L5<< "K9FORO 2ژ%>Cb_P"cI`⸷~ T3'hacZW}m)9f`3*¼pD UMv#]__x\ScF5 үס3)ca2^FXheCblߘP^ tJ 0S1,&͓P7\㴮 9?N'эR;dWLʍ}w"'tF4@7#i!j|&ߕ[U!QxSqZz9WO`]PJNQ>jӳ]N*g,EG`Qc*X_uRBZve+y7:4˕Ľ_, &3>yEggI0C9qSl%DY8Qx/r ~5y޺yDJ/E׀ٽ_:?9:RvO;}zvۇres? ͯԅs:G7›2V$N A_CJ~+ ?0ZZT{΋=oV\E4YÉ1 >1M*X TǗ2l IOm6LUH(5<;?Wfy(~ru} _dWha!(9]| a)rFe(6C[ECx,*z/NP4loR9qϞKdoyHzOD^~LƢM$#Մ1#.AV;^רdK:2R ģ9dMP/~A]QHI71+mTo-r`/G&KJCj&$"l"MoB0{x [Iĝ$ p='=3B[*12.$ `%|.sx mS1TԜԕd(/ƩWy]@H_\Z:njG IفR(rS.D Xqhҭ 6\v 8 {v@OMܖ=tʼD_h}Pkr:&XdXDB+ B~P `P(BxGרHw棶Yj&Vķ}>)7^<)6;.8uJVq;Vͨj Q,a݌w v!dj|*Z*TeXn_רqѼFjCEֿJ6Ʀuj,"f.4y6Vo:OX/1*.u:` y|BkLQM"੾JM$t*Wu*`ڦ*TͥQZuv9|c`yG.ky5}j*jf+KX#ȨFk\6PA3F̮f%fv5+0YZ]Jtc u2p2 }KT{|S8gf0<8P~UAGxaJ/J[vxϊt/QȡqѤ ">3)$"d xd4xcVX uy R} =IV9"`vnBx JSJd\-Zȿy*Z9*m%x=S&%! y&>75f/w߿%$òd/Q)hg `KBH5FsĤEl$RM\uk%lIc|? ~ 8̈́oʶ,7QR]+i^0ƥ$_nώVxËi¥^+|խD32^\tliA26Î`jWny;J;m?]ۺlT;.2ܮj}7H'!qC@g1kqDpCݯt@ٖ[,7cԻa &عNS'_w'2 !#AJn<θ93NY}E` )l=e?/G4݉e _#q7`3ƽw0.T0ɰ}r/\tWewc\jؖ7"R=E桡7A2qjQ=i bW^s#h۞c>ɠ xp0߷W2WBWv+* X:LqHug+nuN6, jX\U鰬x\Vg f BnK>qbaiBhK[2>zjmK:=܊܄wŗPW/'.sQN.5NL_1[aCÒӴnq`ꐈċ2Lg=T!>a6%5փu}Z%1!  4w,\Ow"ʱڠ4 [֜lMp1~Ex?&[=q\VG"3eO[?ݯ:g>]\Я[~Ѿ'+ckG1s jteV)8dr;qg+ M}пhVZS,k0>>.߉7a;1vN @%W$󑌪D}֑ S֊%iBMR/LqN`9wu J"{l”.Eֻ@*ƥ(- Tg1@kЇCC {wHEӲMnQȆ7St xL6U̝#ڥ3D$~nAJ [LQ6&J_A=T04|=}]@%h?F^ X`m@ (1ůȨ?K,ri 7㿂].)uiMݡ }*F,54e;-zlC%;H3<#DM"_l#yl|eB 㑕 l6;jr4J4C NG- K61Qdg~RPK4=ЙBn@/A)]GU<z%"_ "L , B]MT0 ξ`t1L+ GoZfH?׵9 /6[D!M0Ղ}9f,2;-#H`hha+75kX*d8U\_ 2 <| p[>'CGY/UyCMEΊ"HqGhޟf8RQ#ER\UM<_imDw#7r)^PfvpY;Vzcn%5dOmmX&:,\$CWvReEs#CC YĚJeF/!d- Rf*JfA gŐE^[q;3&v >(& PV ܅JeZH4Let/g[幾&7sdBN[tA HM{8_x!u·F_'zD}ya6ʂ!M$PBIQB dƁ?"Z"|K茯kv ;r暬>fy!}k|* ĦU0 LؗV.&`mt/T@orSPW>ChQr]*IPxNT* l-bvl2Q}]OWtQEAcQ5H3A cT|R\/@\\;͟@VD2Edp<?gT!ͰH/rbQ)n-SF^SQhТm]: Gf"_=nћ2}jf$kC wmlpz?֨mE$pu8즧>$4WבfZ>If6}ZHuxB䴉eD>po^J [`7cc$բ^nVJ&<2A |lGvjV8TjnZRX܄RX_!*[uxYiPmyRV۬,j~96jU樺],b5#V9RؔC#n\ LJm,NK眳nB $“Ligrh" A}SmSyO=Os>@MfgyoT2f S/Xſ2pv5 k5 J\Id0aN5URyVWlҨQzkFM+)J\n)ۍb 0U kdw0͚x(jXijJsJZq6[jxj/*DZ} >ʻrX-`+խml莯4YC]b-/}{^@QUon_FgZ Uy W+.(::`r+8Ez`&vTW5Yˠݶam a*0ӾBoLku)QjMƻj@*|DbokFKKߔF:l"hJ( ChK2dƜ1UOL"6N/=0yFeF8aN9Ôj9sjX\\ƀQsc~Sc0KR2 "^g{Uʦ|.K~zvڙWf 7Et!y߲zhΩ ON83=,o/L'C4s77_D:YB"$XIOSnf=G(E ʯMG"w1y`Sg8utо3E"v!w`<+2GD}ϴqa0vKP$@Cw88Ǎj&`GFO K"\a*TZV/R2\";jB[ C4|v@`Jxtz߿m/2 HE/Nf5A9mK VN$䒧YP,ɡJߚ8J͚NJ@\cF.מrvoa`9 K?U]uÈ=5<~\g`O`O~ϛ}|Ef+^7X^f]s=P=_{Ͽ_oٿnF&Bս=@I!4C[Qfl*?G%?φ/x=mHn2|=/O'^:q{?EاWi#)SRո2Iߥ)eVlM,Tj&Y]ڟX=.*JXC:w1mÊOJrct0UӸv``/.JӜۼCݡOd۬\Gw!LF. Y`*I'+(0\.߻"_f'c-g tI Bx]EZ~+q{K]F9I#+N @1Ug5W=AQ&'&k |'1uoDŽ2AxY^ܬY_uDŽqg|$HLrLF{aV<ƶDsU3O-Q^vAUr%9GZ/m~V5FS8]Dmݾ@D^vO2rVwvxjZ[\boO.GŹ.,Tv2f3Bϭ*S{N 5T/l*^ JFUu-9v<bۿ88l'PUbI&T$*DY;U) r1=~eoQ!>$||cY른c;kvO^:΁r$8>B\L]̎ٛngFi=nvu+ܒ!1&cVs>L1}(Y]w۩n+KB|\óthT%Ns^utrꀎ&_<5'Ҝ4(OI-ˍ*[RGUWO$kn%ϭ,W`Ijţgbs|k1wsK?b R`WMV_Niڶʮi2ߣHb>aG U dNM9Hm6cn 㶄$bM[]_ԙ[1s !~okIt&>"\\X|G]خCB^xfQ͘5pnݓS, 3tq|Cȕ=<8L.CN?&U3I|npغ݃nI k y`򱜽Ei*WT4f,]Bc:>>Z ${~r&s+ y7)[-[m"=h5IYsK9h&VM2%r:!U&sK.v[$t.^SW)pS|А\ '{y'aGRi!d>ݓ^[]{)Pߊ]B|nM8>O $h%rw3!ڇA, Q],yZmÌ-6Q85+$Uá@x%gv#n> |Jii S9b'lB+ \㔢ݒbC\,IB\aOY?Z2l.Npۻ,ӞWֱd.ӣٖV+ŀpCR:.h`$l.NrB%h!L>N<$&)c$19hP.ɩLiypiΌlIF>$||?L T%[I\)H[(A$,[ 88!44s=J^@x/pS+ r13<8[1\.ɶI3[_) Xb'ضrxqgs+Dn qz$J?8,<߿eƏRcLo%C[ -ǐ.gjnfw_)|nq\,)TrHOvѶ@@.\hb2KuY6@s1v6axKW%[(OMjxBc:?Kf00XɊzR_sK bB/U)ϭj&t>B|L?)W)j+M",xnjiވ9[!T.ÓT&(OcJW$Mx(E*$q'8;)! 6 b Lab_WS Ia=8:ȴW=ђ@s1wf+sv0$P߁\MmIscI#ْVE 8l/ =/龖P8{_w/StY܊r"fJV|n}3s83@@xt) ƃ-,q^$] ;J1T]v_@n49Ba:l^.%B?Ze/$FȀqHɱϭ,W3eE]3ͧRn1~{ZVrw <ڋӓýB@xR$ u>m}c&rM*5%b1ۖV|nH# fIGKbj^\q$%)6P~f9?8_KV[*=>&gAN3lʄqvL>"\\S{$[[>-R~%QgW3Y$m{2#PP*ۖD&\y;ۻiΖos*IE"1t F@b:;JA @n#[}MnZؖyImے,|nH'Ԕڒs+tp=Kuy')|0O&vI,N?Z!\.QSCatR6EwH.Ԥa|n <<'0SR[&)E.17w**x1ꖄz9?OvTEbQ|nqX~Hb[|nq|,$E 8N/{w0ϘKʒϭ \v$VF7ۋ^D)r\O@$}-Og{vJ-V+P?uz-ywRIG%{[X..峳kR.͚:=CSwL}8.mbV,9f_} oH"N\LhH0 x Vl\+,c/{콨gדMv1BH@XR{=y | ߧ0mNR&E p)-~KwTnIJ[X>w0e,/Ykԥ1I:X#mWDar&1.YU r1 \| l?%%'stkU2a3nIVv+֒Èϭ|HyvJW%ϭI\'84JP>^: G0ar|(RCZ$gm7`Tui[I|NotR!Y 0_ޛ^ښ4j4&xzr2$IEL@b:oi|nq|,݃%'m1ÐG3y @xޥ4|eqgGo&6m6 rqNb^2J%Rޜs r˷/IDbCxN`ݯUHŢ2ۃnJnJg[E 8.g3vpwlc$!,4|.O?ȑwqzz>8הs+{`"^ 2UG椻aTs+3ߒV7E y8.Nr&֤|nq\,-ui+> I7sMs+sޞO,JJ(c|Ώlzy[2ṕy͙ Kgb͊[&ş;틤*Kϭ,A*(-m8}>"3! L齋 $(1uS_M:4-q3X?2AHoWעE:}ۙ;ei>b\l5cUǶ&΋ȫ/i<n+dOr\F.jW֖5>7;L(DhqY8i n5 ݤ͓\|np3UtX$_"{l^7njuvz |J S$b` >B|L[ LbArBVܚmɍȒـ%k7J!XPLv4Ta|=;ܖCD_z)[hYߵ-פIT|neEZ$t[`>jN.qLӓ*Ͱ8ks+mkR5sAsiҸM6OiP t&2ɎR l6^&劼sJ@.ZOd `$E faDgR%iGnΑLMsţB”fϲ8khq͔QܒI]S<%{GxVIq9.EgyRCHQW;vF1,0 1Cd"|\J%ZQ7ƺ^#5&P]ds+(iw74f|n Yxv]]{TT <[ %RZ Q2ZKA7z 1#i|nInZvBs@frӄ=&- sK͠J0]B̤c&nJAIu;Jڳϭ$LnEYiJ|nɐxp&M71?`ƴx\[8$\|՛F%Z,p\,7e)?Хg7=5i>sk{xbR.1d/@IcQcf`hds@fhlT/:ՒR Rap@fQO)d$f`')Kk2"|)7@ڰQb%uy#!\Lԥ="|H'K`qݖs@pTN2tzܪr ՏM#̢#"&>mizB:J3tjFT잾N#vs !14g@O_oKJ4_UU9X9˙5qSr}n T{ȽbroW s R׶ |)SKG1,y\A՘l|pڞgx3iH`#w1Qods7(#Dn _)WR($̓-!YdƂRdzqʍ+4Is@rB-|B| I[jFI^a-ݕ.PʥtH73N`IqU|nUQISR(|nLpVeVT#?&\O!ʗ="-rs:G!E 7g,K]9LrE 3pL4m#|uIzs@%P7k5|n5ffCyT:-ɍ+4gH!Q|n\t`+Z` KnZO@Qmݻ_SEal-f'pӶd<;_; Tyy6qIf /$R5 E$<|v Du%>"Þ- $1I-2c5몃$oCGK*jE3ƒ14b,&?q<,oޜFsub2nK񹕆yь-g_wǪŞR!"G`ydA7E4p| 8a=yu>x؛7~V t}҉Q|nq9dI'|}mWf HɍL:dsUk3WRt^N95 !G&!suv]vbX-K)&i3U"\o'ٖ6sK9yNMUE+]]Y}:-2[dz{Iz+t{1+^/ة=N٫J;uoj.|t׵DV?Bǁrݭ۽ [(WJaE 7#g!ȿLL |{Fvpڷٷk7lATmWO mc ߘ{PCү0gTA|?4hM"Z.pa 68eUK$W*:h҂K\oUp’N_Wkpь2l}}| hecIY—jXhLX'`~%s{M0\=QL[ Vbhe5ɮ*Je~Mʕ7.'&ogQzB_Ule%me8-}Br 8ص)}`zjWRd\7c`M;ys"U L82Y$U 3>YC" KFU 5 ,*>\H $YzN(O}o &LΧOį* {c2Ei=}M ׸ Oe#HXU`5cհ>PжqjbcG3|] l!zoq*|v67=mբ^n?}# 6 Aa 5 ͺf Qhn '/5]ŵᕋiQLW*f0+e!W,&Q@ZtAQo0Q^g{5 ӨR?6jD~L|1ꌗZ'X7h<~7~j 58j(F>r- z8t7m[cM=/U&jHaݯ e?C RG xJR.s ;?!EѻӘYdaaC^3 hSjt|fI닍hSZX|tCCm1 5TZxbf ,1`U61bc}`=c z?dp$t-pz/-y`_KD 6Qcs9(Bnn&;6i*VEO 8P7R*5S}_F?< L5}D#~dʍa}BнC`H 7]`]*ޭ|-)U'Tr1:mR[u;qBMj<V| 8Yz>ZqIs-.:Z*{b$a ra3 M\;!*=!ȞBJzk?4[P#bv`85if_]1Gb Igі?H L[1i!3 Q)jc 07tܤjNpZ)m>!f}UP*iq&mt0{H%q/#Xb;z1iyD>=uLn1b0z)AntL#fVUWI6U%Ac4w]{rt=8+ɔƭu،yt\0yXjn~*gWq5p n[rzpv~r9[Bi+=TL84oE+2]+?z$QLU?w:aP9`H4xtJX\}vឃy,?밸A"@l!~9v (N.` t65V W+p@T;9|ׁ(Rm}!V6JW`ҳ-j9I0dzcRv듋ݷ~%UKsg7_}dKdT*bJt?gˍbL}%n%c9gIA> DA{aPc&76Q'3Q(G $zBOo,_G5Ri:9 ]ǁW⧴K/؟yqqSTob@U._6io9ԙ퓋ݷ/5͊5^rkT LUnk_SfWNؔ?4Z~&ul(MnbgJ-nW͸Jp5XΓq'メ'\.,/I,VݶYmu9QjfY hML^^EjE>{x i˙3檷VpԸnGU[QW 還!W\T<2ŇS;fwso)J"]vxq9?Or^SǺ %dd6yGn;VYTXoOOrN xk{!y{0f³N!gk9q]h(BBc_Rm-g&!6[c3Ym>}&~z 'q^Jev8Xy |`>4W3i۰|ŵKQ>8>?cݓ[Vx_s%FGw~ޕihf%nurbWrck(ܞؿy8ت.IQn|l/(`>$[/g']Lj.'rTS} 浭Uנ'CA&ZLbC)o[Scl%Wl$}``r0"7}zzqp{jjA>q z% :0t>7^7Mu%w6:'JicD{`GC8;{)Mn+Aa0BV}F;Xhv:Ǹ>ɏNTxE1V{qv~rM=6ܿ>dk\*piwxt!K:6`1z*WD}Q ('<>9anXdK>L H/6_tqpvs"LfĊ y͛n3GD?$QX CVP9-^_b<4=Czj^MXlD:rnuaSo(LS5: J{-]9<$MhKn^ _EQ⨇jrѦ9Hac.$A iLUso6:b/a{ݿ?h4KXx#0C+2goOvO,|m Y)0-Xw\yVOv>{%->O ?+b?|aje9m‰  [\w0 TW7D+FSc]7&ؠ:5С˱{fKk[qzxIRcSrF蘢?k{ ~( !-GkAx9sks5m5SXJy#d7t|x8gOW]m:vlE0c0dE(1 Mo0.KG5a%ƴD f{tK/]!*zis? K[9=jyq*4J[M݇"b~4pv ܵg ut4=:LܔȘRYC,F(9F̹!CU)"w.NgSoXLe~Y֡;)hϟ 0PƲcPt\]TsC["4N4h/=5?dG?z >pOa|W ;(l]j ;7V}Yv—>%?T8/:#0:ҩrӿ34I8cp- J`?|Z녟HlWj mӴ?~.(Sl% &b*FAZ xw*Wz@"FK.+-0;ܓas55iíO{Wu`M>bW7ۮޮ/{v oߡ֨\C?~j x֢oY4\g klsY$&kJŚXUkb8S,K2#  1GU}滆uM): &V`Ra}6B!lk!΢;kee[oewwewwUw5wI8`Ac|.C  ,x![ce  K3Bڡ!{0N@ORJptv+`^m`^ J+(zC : //FJX0emd 3R' G,Cw_n:*ꉒ$ ’$4LI ӓ[8i=!sfv 3ToSRDu8s4\( 5n*K,ۙjat_Kʗ c٦R([%妾̉Xz3rtwYVP5WD E9^"XlĻ]4.mVDki*x4|>MPPhᚰJ_u ,vnşVfsh3B .Gs2Mbŏ%T} jQ/mURC 6(N|r\CI q|$ IQKnEޒMlppA |}4#܄ Bc+~=J K#-sh>}y!񴎆rOyڔ{!>ě/t+gs mqS]׾VS)^p~ ]wvc*Q\:|5E40T۠&ê#IN;<>!mg,עК0TihpAR]C"SX`\LA5QFl *B|P(DS:A&ϟ邉b=~I˗/Yj' ^d!/s$U(<(=Qs8aF _^<|"EUP M  V41A>ElA2VBwOP&L§\~KH %סV]Hj^$[.$aC"aRe[j4jKRpk8C Cg( U'!Ma\*]>E@<xs{aqO|87R߮U&ҁҴK Qey<$$qjI<~fՐ3'X3gV K2Y ˨p9o^v7]?Q'yZ=Ψ ޮ6p]TGieDMGFqA\jt+ik(7t.Gn:kH@{9ݞ &TwO9>yd?)fudHAZ.cw+-ob Lk FA3"Ԍ R_z_$SѸx$FSsQ%>muB@1A*C+rT+ƆR**+WwJz)vro)06kR i^#| [ff@4/fi&⿽W?X_k+cۏgiXn*wc*Rs.1`{ of,YBML+65D]A:؞+y0!/+wYnUØ=SW'tT{`ߢ =JE$¹aQ?Q%YۂT5ȣkrR ß. 2m XXƆ-Q"չ@;=][7QxbqlOXU"G` i|ڮCg%.ZWmVȅmr ~bc`X&ϴ)k)jk͟,*|)M 8ٮ|"7x9>'h>|| @axX}C Y0c얩*f\}tKoh,ac_ Hq4><:'~=_ǶAzVV-Vp{K0< -{dD!y2R|E^H$ǟ"9~+r /ۢnxrݟFmk;R+UѝiFb:BPoI"qƘg0.ėu=:FVmѷUՇG`^V։+ۘ LZa-qބCx ^8 `ّywq Iޭ1(bEܤN5hw*Δi$r q/_/ctHEQ?pPD /]} Dbq/o*BJeTJɵZR5 /?ηE۞68a4i?FdZuhLf|iGq$yK!蕥W>R ]h.e> x@uTA~ }l mS Uц!r9!_} {Gd^*a$D]05 k9BTinZM"8ŕ)= xlPb-f!SYggpc|x@vM/D&_O:$j4"6m9*shF|6o4'T>IkU<EH̅X Ͻo<k Gؐ) 2Y݃6X ߉"]RS1uvNT~7ck 8 8n#R50œP@-*E l@3^O<yD.Ռf(Rv+ld{%k1[ &Qk_EfknR! $7=,`ܒ\FA.lw UYRn1?>Rmv~wM|Ig`aEGD}|:0AZ 1-ƗC%VEG,WnT$pi :NTtN@Ҩ6oƼ~{FRWcfQE/isjw[u!R&P?,Cz=2ove?2/lRdž[`vu 9~qdQ* +]a-Z%Ȫ## `T 4@8B$W[{edW1*.w~|n(k>sAO61 !UQjfjjbY= h:5kgaΒ\YK pf hgc< Dxg\9?՘+6QXJ0 *brfzj1G 4lcͦ&[Ӕjz90 _,|=ٶ%/Ⱥё '1ا=ɭd,fe~)E,1$|3 Wa~ZF52LOS̼*:?B!#s)] C~"1/<9&fj:4jս) 8~x0̷vN X.<s~aYK‘9<È" Q434N⤪usrI:,2qyd$j-thDx mjk#h ;؄AHSa1dk?L .1Eۍ=E]L] ctr(B}.rY7^ETab ?oZ@/鑞("$x,$y0DЛxDWO4KSP"< y8H9/@ Ff c9nE$?{O羖ipa$ I!*hDz&s~LF߂1Q^T1_"c $Z v.>Lz/8 :hҝ~OPڤ<&x̔*zRC$o>n~ϼ׀s\<0`?N^n܍dTBe`G³cvŧӤ16yr]a%^`4VXZ쩼RU6\'":s?=4T.|`h.{o1)왽FX"͐0ۉ!H8Ab_WMFCӜ84xF. 3; 0ګi_ߗ8d9&9O(R~u2!g{ڛU +J.7MD%3g7`-4a>C,GAMX9]E X.6_u2w .syָHO l F zxOލދ{{(DY1bK9O_/~fv^W:Ѝd3 s(KOPceܝhGCb2h"f0h;Jȏ9:O;i(|f>]^L@xeb{5.^#*D$]FQUGwsхkk'Y VnԪ6șR8u!z,lCBm&Skq! L@_[s>it[dҔz(bxM^Z6Q覞$IJC&}'LJ!^*|"7 [\ǩULo;y4E)&lnp[D*&x-GKR`3€|sL!O4EU\!r`牾E5cی|kAYT;2DBчďY졜}(]j$,ƍGCC\,JS=vB_F- вqq z(sW [xD"$YMx8"Q !u6%]·;qiI#>zBF`ŧGƃq7ܸ6-w zxW+ 1C^7CO:Im4ƛƶAT_Q2Drej80]t.=+]YQ_҇@,|ڰ2Dɐv6qӦtZy 2am.fj%oSV\_#KL͉ϡw=4 aoL,ѻMM4M&4br F9p@ǭHF3e& k.Rl,&xOϭJME8SlGʺƎf$!}b#xpIW}Yv/pv7QH@ᦥIHy,;T)!k>onqp~%0|#QN<ļJ0 |ebX&T3Y4lU=H<{8`|M5'dmt}+>iWsOfhpwv,T$} 8z-&1=dO$ܸmw|ʥ18$հus9&fjfW(7"fI\Z G=LٻǚBHdP&=4I#qB@L{6=~!" R}`^t!N_4y{V%FCn@+":u0P|6ݣqKĢ({\ϑnzҭD74|SFLSX {\My6p.TqNӛnJmdᲀl cB.$'7b;&BԤ d~ hUfK^{~? e~gT{`A)$bjhz54x&4 U83Mݍ w6SyKyocX^bh麬Yoˬ?}K4" !v ^$go>yvm3SQɮ*z\f[6P_mQYΑr)JС=jlXD)PnUӾ,MQ@tKW?/-DJ` ۬C (T^lk `Lae_]6͍ JBBp8dP[q|ֱ͢x e+!)n q7ݯix,> _gz ^k3&DU ݀bt'Q^xa/7T ̖rՓ+^}߅eUMlrs ^ ՐO9l0hKBM^:M񖞩4t/f`1Uqx* M9z0,ZR0Z0y _h0ݡ=ȗ#lO!r