Thanks for the replies. I have been further testing and found something interesting:
I have created a new post handler:
Code: Select all
httpd_uri_t uri_post = {
.uri = "/test",
.method = HTTP_POST,
.handler = post_handler,
.user_ctx = NULL
};
httpd_register_uri_handler(server, &uri_post);
esp_err_t post_handler(httpd_req_t *req)
{
char content[100];
size_t recv_size = MIN(req->content_len, sizeof(content));
int ret = httpd_req_recv(req, content, recv_size);
if (ret <= 0) { /* 0 return value indicates connection closed */
if (ret == HTTPD_SOCK_ERR_TIMEOUT) {
httpd_resp_send_408(req);
}
return ESP_FAIL;
}
ESP_LOGI("POST_HANDLER","post request received = %s \n",req->uri);
const char resp[] = "URI POST Response";
extern const unsigned char elstat_test_array_start[] asm("_binary_elstat_test_jpg_start");
extern const unsigned char elstat_test_array_end[] asm("_binary_elstat_test_jpg_end");
const size_t logo_size_test = (elstat_test_array_end - elstat_test_array_start);
httpd_resp_set_type(req, "image/jpeg");
httpd_resp_send(req, (const char *)elstat_test_array_start, logo_size_test);
return ESP_OK;
}
Since there are no other html elements on this page, the image is sucesfully displayed:
https://ibb.co/wL5kpL3
However, the issue is when I try to display the image together with other html elements on my index page. I would like to display the logo, some text, some tables and other things:
When I access index page, the following elements are being displayed:
Code: Select all
static esp_err_t http_resp_dir_html(httpd_req_t *req, const char *dirpath)
{
//httpd_resp_set_type(req,"text/html");
char entrypath[FILE_PATH_MAX];
char entrysize[16];
const char *entrytype;
struct dirent *entry;
struct stat entry_stat;
DIR *dir = opendir(dirpath);
const size_t dirpath_len = strlen(dirpath);
/* Retrieve the base path of file storage to construct the full path */
strlcpy(entrypath, dirpath, sizeof(entrypath));
if (!dir) {
ESP_LOGE("DOWNLOAD", "Failed to stat dir : %s", dirpath);
/* Respond with 404 Not Found */
httpd_resp_send_err(req, HTTPD_404_NOT_FOUND, "Directory does not exist");
return ESP_FAIL;
}
/* Send HTML file header */
httpd_resp_sendstr_chunk(req, "<!DOCTYPE html><html><body>");
/* Get handle to embedded file upload script */
extern const unsigned char upload_script_start[] asm("_binary_upload_script_html_start");
extern const unsigned char upload_script_end[] asm("_binary_upload_script_html_end");
const size_t upload_script_size = (upload_script_end - upload_script_start);
extern const unsigned char elstat_test_array_start[] asm("_binary_elstat_test_jpg_start");
extern const unsigned char elstat_test_array_end[] asm("_binary_elstat_test_jpg_end");
const size_t logo_size_test = (elstat_test_array_end - elstat_test_array_start);
httpd_resp_set_type(req, "image/jpeg");
httpd_resp_send_chunk(req, (const char *)elstat_test_array_start, logo_size_test);
httpd_resp_set_type(req, "text/plain");
/* Add file upload form and script which on execution sends a POST request to /upload */
httpd_resp_send_chunk(req, (const char *)upload_script_start, upload_script_size);
/* Send file-list table definition and column labels */
httpd_resp_sendstr_chunk(req,
"<table class=\"fixed\" border=\"1\">"
"<col width=\"800px\" /><col width=\"300px\" /><col width=\"300px\" /><col width=\"100px\" />"
"<thead><tr><th>Name</th><th>Type</th><th>Size (Bytes)</th><th>Delete</th></tr></thead>"
"<tbody>");
/* Iterate over all files / folders and fetch their names and sizes */
while ((entry = readdir(dir)) != NULL) {
entrytype = (entry->d_type == DT_DIR ? "directory" : "file");
strlcpy(entrypath + dirpath_len, entry->d_name, sizeof(entrypath) - dirpath_len);
if (stat(entrypath, &entry_stat) == -1) {
ESP_LOGE("DOWNLOAD", "Failed to stat %s : %s", entrytype, entry->d_name);
continue;
}
sprintf(entrysize, "%ld", entry_stat.st_size);
ESP_LOGI("DOWNLOAD", "Found %s : %s (%s bytes)", entrytype, entry->d_name, entrysize);
/* Send chunk of HTML file containing table entries with file name and size */
httpd_resp_sendstr_chunk(req, "<tr><td><a href=\"");
httpd_resp_sendstr_chunk(req, req->uri);
httpd_resp_sendstr_chunk(req, entry->d_name);
if (entry->d_type == DT_DIR) {
httpd_resp_sendstr_chunk(req, "/");
}
httpd_resp_sendstr_chunk(req, "\">");
httpd_resp_sendstr_chunk(req, entry->d_name);
httpd_resp_sendstr_chunk(req, "</a></td><td>");
httpd_resp_sendstr_chunk(req, entrytype);
httpd_resp_sendstr_chunk(req, "</td><td>");
httpd_resp_sendstr_chunk(req, entrysize);
httpd_resp_sendstr_chunk(req, "</td><td>");
httpd_resp_sendstr_chunk(req, "<form method=\"post\" action=\"/delete");
httpd_resp_sendstr_chunk(req, req->uri);
httpd_resp_sendstr_chunk(req, entry->d_name);
httpd_resp_sendstr_chunk(req, "\"><button type=\"submit\">Delete</button></form>");
httpd_resp_sendstr_chunk(req, "</td></tr>\n");
}
closedir(dir);
/* Finish the file list table */
httpd_resp_sendstr_chunk(req, "</tbody></table>");
/* Send remaining chunk of HTML file to complete it */
httpd_resp_sendstr_chunk(req, "</body></html>");
/* Send empty chunk to signal HTTP response completion */
httpd_resp_sendstr_chunk(req, NULL);
return ESP_OK;
}
#define IS_FILE_EXT(filename, ext) \
(strcasecmp(&filename[strlen(filename) - sizeof(ext) + 1], ext) == 0)
/* Set HTTP response content type according to file extension */
After sending
Code: Select all
httpd_resp_sendstr_chunk(req, "<!DOCTYPE html><html><body>");`
I try to send:
Code: Select all
extern const unsigned char elstat_test_array_start[] asm("_binary_elstat_test_jpg_start");
extern const unsigned char elstat_test_array_end[] asm("_binary_elstat_test_jpg_end");
const size_t logo_size_test = (elstat_test_array_end - elstat_test_array_start);
httpd_resp_set_type(req, "image/jpeg");
httpd_resp_send_chunk(req, (const char *)elstat_test_array_start, logo_size_test);
After I send the image, I change the resp_set_type back to text plain to display the rest of the html elements, is that correct?
Code: Select all
httpd_resp_set_type(req, "text/plain");
/* Add file upload form and script which on execution sends a POST request to /upload */
httpd_resp_send_chunk(req, (const char *)upload_script_start, upload_script_size);
But this does not want to display:
https://ibb.co/M7mVzVb
Does it have to do anything with the fact that it is being displayed together with other html elements?
I have opened the developer mode and on my html body I clicked "edit as HTML":
Code: Select all
<body>ÿØÿàJFIFHHÿâICC_PROFILElcmsmntrRGB XYZ Ü)9acspAPPLöÖÓ-lcms
descü^cprt\wtpthbkpt|rXYZgXYZ¤bXYZ¸rTRCÌ@gTRCÌ@bTRCÌ@descc2textIXXYZ öÖÓ-XYZ 3¤XYZ o¢8õXYZ b™·…ÚXYZ $ „¶ÏcurvËÉc’kö?Q4!ñ)2;’FQw]íkpz‰±š|¬i¿}ÓÃé0ÿÿÿÛ„
+ +&.&#&.&D6006DOB?BO_UU_xrxœœÒ
+ +&.&#&.&D6006DOB?BO_UU_xrxœœÒÿÂmô"ÿÄ4ÿÚçe¬y6[$&9šØ§´`Å´®4÷ˆë)møÕîuN¥Ò7Ï…{´MãÄú
´k+˜ÊÚq8‹È´‡‰óý^ÜÏçä~óœ/’5ºó¾Soh‹ÜªQb%Ós¬ÚȱJ4ž Ä5€jƒf°6ÆÍ×jö˜
‡H
Ö
K…SlZ51lÒÇÜò°½;T§pUm
,¶ÏÛvÞŒ¹çOvÛÄd@dD59\e²²5ÄZk`™ŒÚ²‹Z˜ƒj¶G(Ðw¿7ç®–Óù{·ò»X6¬i…¾”—–Ôª¼›5µì!-DÛ2cC%ZZÊV±Á`\ƒF®€ó]š½@ˆ>ûª¦”dê-Ll4BqÓˆÍÑZ)P¼R­´Æ¯5³s‘‰^k(µ«)Ìä„NHë–„DÆ'rEnI׉ó~ß×y!²UÂ_-r€
µä òòÃk‘BM’;Y¤°ÊÓ¤Øì©*Ê&U®«‰å4`Õ„5WgpA´M}$¯¾êÃ#)fR+VÕâ°Ëà±£`¬ÂHî2XwEí[É–ÉO&$s[Â)×&©ZÃsÁ{6ó8u½W•ñVŵm‘EÚ‰a¤•
Á”§&R2¶Æl§@!S
Žšé4ºâ9w­RééUe=ïÅ}Ñ‘rÃÒj<X8£VÊ … aɬ0¤ %–Ú²g¦Æž{aÕÙíÍ¥³Ê™ª^µ×ŸÕÆ«u¬ V¥¢¨° ÙrΑ~s½øjEz ´†<²-´+‘¨Zó@ÒÔá#E´Ó0u¥0uçÔ:ÛÕ6Þé¶}+ÑÄop5PX
M`"ˆu'ÅÊÆxÎÇà6üƒÑé:Ÿn~¾”?ô&ܾÞîü°N£yÏæòƒ=ôg'Söþiú«ê[sˆG
, #ºâ^°rß4Ó–óKHM,tèË´€±aƒ¡–b¸âtã^êú55î)¥­‚˯.¤Û}iÆ;ïF6hK•V¨)œJh£æʧ›ñZ?IÏ8=]~»§u&¾a÷ýƒç¤ü? ì?8iËÛ¼Î𼞧›ó{Ï6=«¾Q{Œºg߉íç”b4ûkò§ÔÛó`Î-¹€@Áej–Ájm7:ÿZë3VºÁ9y¥Û(
®°è•²š÷ºS^â:Ú¸<ºòö§­ì¢=zoÀP0
G4PúÁ
\QM·XUõfæ\ý€÷2×'w­ôZÝWgž™=§çïν¼ÞéÌuìg‹Ðágßùc£Î‹Ð+ÓÁªq
î¸o|Ëm껯Ï>©W×€×m;|Å‚ÀhTG]M¶Z–†‡0î|[É2BN„ÅÂñ6¢W éR,¥<]¥Æ4¦×ik`³Zó“ý-Û—N‹‹XçV:âOXÞ¹JÈ0”?I½ZôügˆôÙÅëzÒx~¥ó¯=Ô磓Ås/¦þ}W£®‰é›u·7õño9йþ}MŠôùÑjŽóceª²×` ý´>ŸÕ~búcLh—éäYWµ“ôÜ£¦yŽ7ᢵñÔØ€ƒaÐp\MávGLh±[zÄž×íiå3Jó_]|©õ÷~;QW!U•).¹Ö«]±ÖÄ£•fkÖ$Ö•éÊ:Ç&꼿šížCÛïÇ_=ʸî˜um®]w­pÔU}í~l÷³®ãŽu~KÏئE»¼™µ¨Èm9=_Ê{¾~ô‡Í}þã×®ÒÝžrÊ´³¬-À3k›ãcŠ|û½Œ\$=•¥I:Tñ6ìÚh¶;z¤ö:Í-L®]«õ¿ÊXz82‡I
¬¬Ò«4ªZÍf×_VòÍÍzoÐ94ôéz× íœ~­ô}Ï¡äóW=·U½æÜõlôÑúYóÑ·ß|ü†{u.ïyÞzœU¿OIuuJήÂÀ}‡yù»è¨}fVïòÕU¥i"-&ÏÒyoXŸ›'óÁ–lAÊÔ²§p¹éMtOM±WµúZ9™wo«~MúÇÑÁ˜W Y•é(³Š¥®S`´­MØ^/uÎú‚vâ¿@üíÜyûúVÛQ¶íó9‡Ì_mrÌï‡z/ ¢5ã^èÞUs}é{=çɼŸ¾çxväÔ½xà·@G5³¥½˜ÞiÌ_¢þiú[.¿z³vùj¨Òt‘Q•%l}Žö*¸p[G猆E,ô]°¤]f
̆¨L°*j¤{]¥ëð™w¯úß㯽vâ(´€®È¨‘R€ºa‹N¾ôüß“Ôú;ÔsïsÑÀÖZוu­ðkuy)ß¡ó9ã¸û¶Þ/w©¼×¸¿Z…EKš8³bÜ}yóßÒa*ÊžrÉ´ƒ”– em}g—ô|ZП϶ÆXÔaH02Ã4Q½i„GVÞ½}†³KÖãwä~ªùk¼÷eØJo˜@ÀX¸X•IJ7A/rQX9còØuyþÝòÿ[ϧªÎ‡ÑÁ󆋽yé¿3¥é^Ûiù;ÊýOçò|ãËý5Î8}n<o_ã¶ån¸‘&dÝ)Õ¹½n›í2½Þh”:šäº ëÄŒpÒ·äkÉa~²¿ŠÚ‹.="" bvº”sc!;e�´+m%Ÿ×Ýê±ÌÒüŸfçÍt¯±%û0Œ&�f£báqŠ€$’©ò_Žãhø®nËt¿š69õ}6ß7÷="NÊŽ^*Øò¾ÄëÊ9çqã<~—€Öýuó†ü¾»?l®~‰×ú" °]~Ž1¨e*wÖ·­h="" '¹gªä="g†ùÚRçšr*uñƒ!ÁJ«1p\µ4ìD›M=¦¾ïO›<«ò‹mµ›?¡úOÌ?L÷a`œZHhJ5H´�àÔa`)—²(žÀiùOÖõtðÞ“áåïí—åßm/脹&£\;ίƒ†_dà%³êַѺÜþ©Þ®" ¦slak­j‰="" ×ê´ÚoÇsÖµ¾+Ây\mŠ$2k¶Á©k-“„Ék!’¦6Èuj1¬«Ò%¼×:×ý3ów«ê§eíÄ5%¤^¹8Ât+6Œµ€ti¤–Þsñ¨ô)Ë^(.Ýh׋޳ҟtÖ™¤ý«qjÖ¡!ÀÒ…åkcןz¤f¦Òm°="!ã×ϺòeŒƒ©©fd™jL Lf
ÔmR•aª†Åj­N;•K)¹F­" ’Þ»§nùé®ìwt8÷dÕ¨Ë@dÅ‚¹xœ°e¢bÓ[nhòs7¦ò˜ŠÐ-jŽ–jºd‰k•+zÄ6Ùé¤å¤ˆèÅÉäšpeÂŒ„�ÊÌq«-$ekj‚·*­‹]°v³Ëtsp="">zÒ§¸GJÔïuëî}\ßÏ_@zåÒ<šµ“˜jHZbȉɘ™¬„ä`[+9X ­iDŠÔ«‹¹…ËT‡¶ÏMß1ä[KZÜh€nÐÎ#9e0PÍm-Jµ+/¨d°›y¯l4ÓÃåQå9Ú” )©¯ÚJÔ{ÿ®§Ööù×èCÑ¡m!ËU©ˆÆZky‘y¦æ˜ŠÀ­£ ZU– ’´„šŒ…vLî3Ó9‚~WË£ð«Š$$ª6DB0+ÌP'62+©RБ®ËÍ×ë[¥4ðøÛKY}ž!Ƴ]-¨ÐzV§j’û?¤='Ê[·.§Bª©éHYjÒ›˜,VÂ@ ET
:ÀTe”x5»†ü5û/¥.¯²Tø"WR*wµÔ¦àb@‹Í‹`¸Últ³G((€;MÀÃëFÁ“”è¶Ý^~†˜€Î¯ÅG´ÒQ±ÓÕl;luÎ,-—Õ³ó?Eëϧ_¼é”jõ-%W(Å!ª´®5"N]ºh[hĽCtñ˜>…æ9@xÞËO°[ˆèDí°
„JÁÅ* ¬f !jVÝ\XlxW,¬·%™a\Cº6­3b˜Åo~ScË+ˆ=
y,:³–tƒ•Áw¬íêiÛ÷^“Žs¾ì~zZ§é‚üÆͯ¤Ãóõ¤íú>W2{_0¨2&®1]ˆ¢Û"’À©]K’6Œ­XjV*#!!peJ]•lŒlueæ“Á\ch‰€ªðÛJ-q¹š|³ÿÄ1!"#1 023A$Q%5CaÿچÉR¬6k=`æû7š¢©»Šˆ!Û4…7˃v‚§óÞM¦^èʱÛGªÑgd÷£€ê²t4`ÒAPhŒÔQò2¥¤Q5|[“Ø3lÔðY‡/M_ãb:ã5Ð~#] .\ô\ô\ø×¼Ï÷^#N€†Ùñ
/K·âJêò··¯gW×ó¢cP|R®*…¯XˆZ„1õ•3׫:ŸVh2àv-R·pT\.MñGáE-OÆo…t\cÜQ°,p/ð²åùã@¨Ek<rÆ�á=l#bl…¬Éoø©Šƒå´òŒlfá=~vöu˜d˜#bcyã8ö…2‘ú¼²h+5cyþs×r«] ¸ÚÔ¹f :w‰ê„Çúd3{Ø="" -w©z2«9rvar¨+sɳáw÷gðñ~%pvtømmukÐéwàÆš0èìxÎ…vü_nª«+ü&lʶiól³“¾pf¢wòȸ£çÐØö(…xzÍ‹'kdÂà¤é2Ð*1ˆ' ¶r="™,Jθ:â«•Àÿ�É:`N–©‚‡ø©„�õž{tÛ¯Ö7Bèùñÿ�g•§Ôi–¥!VU‹t+°{Ô'," npogi)·ÉrÙ:7t©ë&têÔuÃe.[€çÅîn‘á|="" Ûúsš€ „ÿ�¯Þƒ›Üf¦Òü‡ïjûÑzÈÛ÷d?ÄßÈxf·!ÿ�ï#`*”ů·iƒf~ÿ�&¿©4_‘[¯¥¿y="">,ú³®'_u±7#ݤW³®ŸCcN‰„€Ò¦|KíYå™Î¹0h‡³û_lŸCdT˜QqÝCʘÒí-I‹"±²{<µÔ¸¦Çx–îÏb¬V,欂åû&«Wfb':'ÕW‚ðºÜ­6t8¸kÌ**ýwçyÞwçyÞwþ—yÞÀÀ¾SÇuvÈ ÞÑÙÑ{5˜×Yâ÷œ„\¥L™–,Å”€`Ô-…ˆÆVöšf?+á­]N1?"(Z14ñA%¦ßžÁ!†&Ñž=|yû”.
P#¡ùA8­0ÕÃ׃/î}°ýg\¥¤k•£Ê®‹:²­*ÅÙ5v$$æ*CQ&ѪÌUÀøYBc7âjj_jë9xïˆÇX
RPT Âs¼ï;Îó¼ïüƒý>ó¼VÍM}©×šñÛêY®ºŽË7¡è¬@k¢â?Ýlz"(˜SÞ gl”ÊL¬’`¨;`vøé\e+)È0ö°\üt¶z:ÅS=P($…zá^‘CW'Г¹ª€³˜B
]ñ™„OnÍï0„­b ¶Âvò’?«ìâ¿nô …“695þÕÂݶqœnÆöÀIøÿŽkéHUUDá8Nwçyßù;Îó¼ï;ÎÿÒïgâêU¹ïdu¶¼iíJT©eƒ6t;”‡°j;çL!Þ2É1씩û=ºƒIH#jP·²ë–ÆCür
þÕfŲ,j;t˜
]Ëþ:ÄcŽÚjÏòS2ÉîÀc1w5@H-ìÔ=MÀJÔ’‰­Þ[¥TL£uP[¶'=DçÆßvë9ð4ઠpœ' Îó¿Ó¼ï;ÎÿQƒùÈÿ'yÞÅpGGÈxñšk‡÷²~T©õêH˜UM@ú)–ðN@ ;ÝMëŽM${߬$úRØÓ+$˜oê0Lté'<§MRp1/•^¾9çkò;ç؇fª¥æ¡›¿‘òhŽì¿šD;ûXçÈIg=¤ã€­«]‹¤§ã>=-8(ÀŽÂpœ';ÎÿBÙÞw€çx0~~g_©Î¿Ê á¿oïx¾Ò˜¦ŒùÙäãLJb„-„wðeü“˜›ƒZP°d8ÊŽA(
Yñˆ1ÊŽé9á 5¥1þµ‚ã/½&¸þZ§RDÆPoÖêNù@¢e‰g=+®æŒÂoôã[¬³t<;Æÿo1Z"^°á8N„çyÞÏlöÎð;}û÷ÇØT°¹?ѳu‰¿6÷ë÷rïí]úë:Â?R0þ½â¶Z!Vå¸Ã¥°ôÆú’&¦Àb¿KJåü3øý®3Ù‚R¤!Y¬ñµ€Ä T­±Ô "`ÕF>µ¦2IϦ³RÂ,æ¨Ç<üM]ñ‡Zç-Ñ¢&"3š0Aê:5뵘rð·dœï<!--;6׈š8Ç Æ8Nwã-->ÎðìéCm»¶u¦tùB
žOb!ÃWäÝžÅßÊõ
±Uòu¾©åŒÍÜyø:ž—qÁÈó,Ÿîãy¾?yI‰Fuú‡ôïÄnŽnjKs]¦ûiì¸p:×cŽŸs˜÷þV¡%Ö*¤¼ä$à½hKºk±4¬¤»6-XA²ìé0h
]Í®¿Xʦ¨€Pš…úI¤ñúkuŒÿÄkOg$þæÂz\cÿYÆèSsnqNž¶º"œ8Çá8NŒØ[=³Ûâ©=Û܆¬µÔó6;V§2ÝLGw–D+u¦7µV‡‡à¸«ëIëÇxëÚ ¿ ¤Ð3}ŸâÜkâ<sžÓgÆö5qêæo:ÕyÖr!Áù¤kd•gt „apá#¾°çxfò8Þ$Èî½`£¥!”ðþwë="">N§Jç¨Y$Å}€1\…­q¦VHûjˆäN´.,çÑ«bý»>:ñÏEèʼnX•Qî©…Ïäø@П¥Æ=¶ð>ãÎê¡T8N1Æ8NŒØ[g¶MK© Q•´å"íÎíñï&«¤û;NÉ´ñã»ÕýÂkí5#äó‰I_‡ÓÕH!“^HÁsk—’mÎ#odÓV¡|‡È×CŒ„sc{ž'ÂÎL›{Iä_àÖݾ¤Š' äûštœg)¯»èF„aFï²,JžoLêYÕ]A¤æÔÕèK×'(½´å’`Ö­0’ºìÙEéc ³çàcŽªÏ4Á¥°[íÐ|ˆƒØwZc¯¬‘25ºÇ'ãgÊ¡¨–cÑ?Ù?õœ>ƒnoJC‹ÕYI@8qŽ1Æ9Þ;ã>ÂÙ5.Ý`t’–m_'ÜÛØt†×)ÊR”ù¯Ê_a„5åtD¼{B¼¿5oÑžÖ×-äøÍí´ö8O0åxùˆ¦ï—Úß·hr›œ†¶åmù%Õþ#½ÍSnÅs—Ù­Uf¶§`·Ù5pÎû•=Œ¬¾)®Ì¸>k¨ªq¶¿#ªµ™Fa‡;Àr/ÑÎsEvu}ÇËЭqÇQšg·µÐ`¡jç¡ë<e°«žçÖ•4r²tÀªl$À-¨]@œÓ±¨»ã'^“÷wsù‰1Ëlû$ñÛíß>†7ý?Þ‡ü_a¶*‡1Æ8Çå)…ñŸ–`d?õ÷Íó•Õ×f›kòºm_<s†©cÿ�ÓÜe"ÉÇhñú•]]>Q¸îb{9äü¾¢ñ–÷Uù+ÒxO
GÙýÙòÁÅO·Êq»»`ïYg¯òþå]Õ›v`öz+2(mz(pjdZ^7ËmñûS²klNñZ!Fa‡;ÄnŽAƒ)›Ôøw„²µÝñ\¬±ÔÿÄØ;”b5ÝÍUz„ƒzµÙŠ¿ZÌÙ@=§1즴|cÔ8þY ÛV™Ee\¢÷O\v>¯L éU2„–ú'û9µ(¨<o]}i ÆÆÆ8ç;Ê¿c±ŸóntÅy±´ds‘äÑ´tô¤³Ÿ="" ]uλÎsvzÚ-?’ºq¦·ƒs[;t’ð_áΆŸtÚm­iÝ#="">K‚v­Êòœ†ÜõV/Ýö™^—›\
uŠÀ'®jé¾Áìr\žÎ¯û
üûÜ¢t£Âw箋'#aÆß 9®ýžU®¿¶¡X¢aQüÕ$zk¢
(k*§ãJ–íb«…A²¦#ô)\e+$L§ån³Ý½˜gפñˆ6' êLÙd?‚`YÛt£x–—î9DÍIúÈaÂqÎ1Æ8Ç¡•nÎ;ã¾j'É\Qê¿{wœÑ‹rû³ùhWÆ4—WM¶)?ý 1Q—Ó®WÈøþ>a¶9
ž[Èl'?(Ú“ò_Ãâ\Êò:"¦÷¤ëÖF|v­“¾CUÃÙM‰¨Mt‹Tk®þŽâÅi±§0—[’zï8êЮzSgaTò\$uµ¡I?`‘œ/!yUá·N֔ݘaq°à?y&ûËÅv5m꿺~Ó¡®Ï”’÷)…em‡còÖzeSøã0+³b³;åQ¿Š@öjìX09Díç0ÛÒ˜}„zÇûª®;Ÿä¦XtŠ¹f%þ¿þçøw§Ø¥JŽ”8qñŽï,ßXç(ØïœdÀ_¶ú<}ô-ߤwwa&åö~6ôO"Ò™åm±×ÒÓÕ>/ù÷6?ÄmXòº•†®¡¯}è­/¥Èò|ñ˜Mw½ÇOÄÙ´õ­Ëí3WåU©÷,Éî\ü©OSÞU‹?È{PR€ÑŠq¼ÆΉs.Fæô¤Õl¼7gâô™la‡cçy6ûÍVìužC¬ºûtUøÁ¼Óǽ«†dkªãÏ»Î`Ý*]uqÓºÎx{½K'¬•M:5U_ùizš&îç:6T§<±üݲcñìœð}O‹Ž—èØØÇãeÛïå(÷¢®kŽ—¡W
Ÿ%µ\ðÞ9WU·”ÝV³*xÖ£ÇE¹á÷v›b’ð?Y•+ÄqºÓ^_q~rˆvºkêr|–Ð’x¿…<j)³ÍÃy`š•ß” ¥ô="" Àlìv¶réñ¡Ÿì€¯“¬isé—³«±hxu<£]ù="" mùqü³ëÚ2ž½–Ð="" lll'³qþÆyv 6…±="„ž¹I0YÈ*—¹8=„©ci•Œ¥ž¾Û�a~’”Ç@§…ƒ\¶DY²²û”·ó;àö9Oº"cM.½MW,Ä?BkíEãÐÔýúÊŸ³Žr‡4§ï|AÒœÖP£·#µ¾^³ºëÏ[Bhšüi¥‹Flšè¬íùo!ã´5ùÿ�ñ·›KN|NÚqÕÛ¿Ê?|S5|›ŽÐ£8ÒóÊÓ“önPÛ{Z‰­½ÃF.ûº÷Èî1ý›ä" ÿ�`$ä¬sµs˜Ýˆ§="ã”]®Nš7Ò0ÖCÀ×ÛD.666">ïûÍVûågâØ«)/)`~ëJ울㷔p¿µž‡ò]bqÇç)à§v¥3òëwi&æ®"*¸›áqéZe@4=»Döž2~ûÚëœbzÅpáÆÆÆÊYL¦PçfbIé=yØëëQŸ÷¿Ýˆ^f¾¤ªøþ¢ˆ‡Ãø¯×—ùÖ̶+©ªkûŠšlér¼f•ùS˜g£íÄ̦}wœD^Çr¯¦W–Ôø‰ÎôÜ«/^ÝÒ®™X )Ó1_ol”]½™xŽ+_f-Zîhénê[ScGEöõiâ¬j±±±ñÿ¼ï5›ìg"‚œuAT©që)Ïåu®BÖƃҞ?my®Rß)ŒNsÂÁ¶0Ðüt¦QYOƒfl勉efžó˜r¥ªùaÔ€ËP«ô<u=ù]qšc©aÕþ±òƒ(3dú©Äc÷žsº³aíã©'Þ× »4í8¹’a^Ærá÷="" ·´÷m_ñéxî?[¡="" ,æxÍt²%àóÐÒ¡â<9wçljñý}="" d­¨Á¾)ùŠ{ëvlpp­ýØœ»(åëÖ{÷Ù,¾Åw5ÞaÉm´e="" Ú³Õ²="" jrýíu|[épãccå3¼ü±—ßu×:yd="" ´ìgv®ÙbzŒg¸}–cìˬï†}üsÀtÝÜÿ�p')="" k€ËòÙË°:öº®ú­2©Òmgt'="}Ÿ^ùxæ¯üxpãcce¬a•\uÍ?°W¡Ì¡!e àvWWÞšŸ¯z]ücíqèrþ[ÅñÀ­9o?å6»XqÊr.µ·“VÜ®¼8?"ÜâªæWó®R¶,[È9T¯È9^q7#VWíì£è{t}Ê~G:ï¬%M_¥^‡Ý©FþÞ¦‡45ØízKÊ0wC”Êgyö2?ðœ4?5ë”ES�³LZ‚Õ±=.ºŒr­YÈ" v®0õŠ‚}n®-®q@y¦s¦±%\‰;Š¯_±Ïní”$k+_fõ%ÿ�æ#š¿ñáÔþ±†:÷”l×ûjŸ.u®£Ó$â¤ÆÆÿ�Ë­¬Ù§÷1Ø?yþ="" r»z\`ø$ž7núööŽÏ’y%—ãÎ#Ç­­Åmïnbr¤¾Ö!i躼fÍì±m¾6šš)f‹2ûup9 ¹qˆ¢±ž­ßxÌªàƒœgÕãv·ÛˆiÎÞïál´Ôws”Êÿ�yÞ@þc#ÿ�="" Í”?*Ì›mŽÿ�Ö¥2Šã0b¶×y?©r¸Òí%0@k7k؃¾<ÿ�(h{wz¾oÛôlû²oÿ�䩤ýf«–="" iÖ÷%³Åx="" Õÿ�llaŽ="">±†0Ê.NE› z‚ÜÌÍ óH*Î?‰q+ÿ‡…›Këëô>¹/W{Yã}ð¿;HÓÐð®_¿_Û>›ËÉ•ð›ÛÞ/µ·ÃknK‚ày-­Ó9¯--D„yÎDïiÎJÉêÝVf |ƒ¥
ý) I%ÙB÷ŒÝõ„âò_ý›ö†C À¡Yð¡œãcåPçyìd~µÉ+Om‹W:@ãÌ”‚õ­Oe`NQ’1äµ3¦àaŸušg·ÛÔÕf© ×
t•©yu9϶±%Ïð±ÊSã!sƒNSTæ“w1‡660ÆÞ0Æ\eÄ>*¸ùm,ϨO Õ È¹jjòß´6•ìÀë>ú£¼®ósàÈþMÎå¶'©©®T® ÒÖh+¹çù}Xo²ÞµÕ]_‡[`¯ÈBÏ¿aƒ íQ”~Âáöõ°?ßé°‘Z>2öf”5e0ØÇ(r§÷š£òç×MÎêH[ßo×=ÈJÛ)2œRû*¹:ò؉‘ž<Ãl¥m>„eŒTì±Àýk»ã'o)á¡ùkLbÂ=e—ùqÐÑÙ³NŸÌß8º’8q±†0Â1‡Þ2á\);dLç8UÙÑ=jÖ©XÖÜO'ÇíÚ­¬–Aê9ÿY[*‚O–ùCò5â¾)«Äë#¿“rƒ[”z­|Ó‘]†uç9ªr4g—¶œ_gUàÌ”ïØ€ ìP¬U@€žÀ$c18ê{É'ûsÁøÅÙäÔ“ŒqÎ1ʳby¦½°ÎMý8êœFïaÛ&Ì°£ef‚@}¦b¬VT¦R#¨ËïaÛ8ƒ¾>Òˆÿ°ïŒÌ°')Ù´¦%Cízå„2­íuÇv£Ÿe@a×@x¶ÏËÇk¶8pã8ã¸WñαÆ@€zòÑý•Cg†ÏQyYP|ž§³:+C7÷Ÿâ’m6å4'â¼ïŵ9ñßqŽ¾×&›tÊîO^o ÎÌÅŽÑ×V’Í´ØkQ]U» ÌI½MzäÕeœc×ß÷Š¡ºÍXŽÏ·ˆq?³ÐöcŽqÎ9Ç9CÙÉæ‚vÃ<£`GŽ8®¸\eVØI‰ÕKÖÄM`2‰Ýå!'
jÔŸÇ\ºÍ1*}í\§bSLnŸ`BV¥—©ÎAŠ›³c Í•˜öœò«îìA$³6‡»žüy™þÀÇaÂ1—±„aW=~óײ;tyž(í꼜imqÕV)åÚ¥?Üé;
GØÎgÃxŽJÿ5Ûü2àÈèkÿ‡<:/«iñZºZâQæü;Œß¡£ë†\z¸f¯Šéõ›œo9«Škp;{»>Û10w•uŽ@9ßÖÏC5¤}Nx¯±:¸@œsŽr‡*qg$>óŸØÏ4Ø÷¶¾¸R§häkÔ­Lu+8Ë?߶2=^Å—Öž°09¥¡ )ÑÜ,Iõƒ¶:c,B¦µ¡¢úë.YTì"oÆ”Ä(Š¢P¹à[¿ Ð3=¦8pŒ#:Â0Œ#:À0 +•€u`w¸½:¨7:û:EM9ã騥øîN[:Ó¼ç_cƒÂ1¾Æýç¡èuëØ9ËñQ¯¸gáþÙñÉìL<“ˆäUô–Ê*ºÐÉý}Œ&Yó‡ñßÞú°ãô¥¯T8ÇãvÊ·éìŒÑOTï9]‘nSfØ®¹Ç˜6”‚°kÖ¹0WUŽ2uIDÊôsêÂœ§Ç½lJ2ÅFQTÝ«leêSž?©Øè’iL²¥!qïBq½¬sŠÛý®ì¯š6ZIX8F„gXFu…s¬õÊ£4ÈY{g’–ï9}Vš†šhr:›M}~.þöJgŽjò¾òœƒö*à#:ëûû#*~MÃO‘ãLóŠå[C“n?OccŒÐ“½¼‹‘â¹
ÿ“NÚt>îž7ãVÚCLáø­}X¨™8N1Æ8ç(ÙFûŧ>ØfþÂêqõ¡rß¡í²£$ÍÕîh¥uç Ãßjh'E4½ÉšÈ™Òþà.|ëéJåøe<vöÚè£u Ó,�ˆz)½\±ë_¼²iÌ{~u®jh¨="¨"T3Â9!±Ç*ìw‡úuúgYÖuŠcL0ÊÀžº¦‰ƒQ¥Èqdû¼t|‡˜Òödâ|â;^«uçu¿lÕŸÉ®Þ²Û bmX1¨î½ãlÓû^W“ÖMk+ëìDí½nÔä6">MªqŽ´¸?Cóëj*Uú N1Æ8Ç(ÙFÂ{95ûÎ:?`ç–í÷ðë,ʇrÍÔ‡¨/(êÛr–BTŒA*Û,ÙìF³¶V`H#ZЂV9E,ä:ÛHŠ&8eW¬l„$¤.Y¨}h­M¦aÑ>ïžÉ>ACIû\8pá¯YÖugYÖuØëèã¯`fæ´ÉÜnò0¤9/±d¤§«ÉöQ¸ÍÎa5Ë¥ü›˜’M2ç?ˆ®Ç˜òýºtçw¡CIñz‰¹mc±
¨íz§ãRx
Û[”¦‹‘Öõ žðœ'ãvÊ6QñGÞkOÙ†k œ‹ÝÿÜmílŸO]uLdSuA¯_ùî]Šk"@ûRW÷¶vWTÝÍ1X[c¡]i¦¿lFa+ØÖ]$b÷°íŒ
Áœ¾¹þu4­r1_@Z¨³Öyô˜úP¾-Ì&öŠ8?üáÃúuúõgY×è‚3ÓûÂ@þÞ*Ý‚Ül½Ë
®7m˜@L—¿‡¥ö™Åp7—!OXñ
Cƒ‚v~“_BzÀüsÑŸ¹vž¹ÅE_èœ' ÆlfÆ8í”|'³ˆ½œãõû#<³‘ý¯Q¥!2§e˜«Ÿ†1Ü S¶ìgB±¥°Ï¡(‚¶‰ÀXkÒ˜Óée £ÚÎÙÓ¬™±¤I”‡±ù)RÈë¬R~לÀ£úZæŠD¥,Ù£ü¤-Wh.{£ÔŽÄÞ™â\Àã÷fT£Ã‡ü½g_§_ Ϭi0É¿è!è0¨ÂŠ³5Á@À®~€×ì}¬Õ®ðœ' Âq›ã¶Q²Þ(Íhû0ÍtYL±æöÿ{ȃ/ÉjåW×YF
yÏǽ­Œ¾š¡qÓ»F"tïbÖ 2êå$Yç,›Ÿj\²²ë*Û*¸µ>—¹¤È”eŠ}¶IÁV­2ª}ch
«L×Oãì…¤tÙófO9N"Ðfª@g¹#¹ó·®c_ìaÃúuþN³¯ô=FzŒõ\ô\õ^ûÎó¼ï;Îðœ'ãfÇl£g]œ”û9¡­ýÏòj½k!§¬ë\N#ñ}–&t+×O鶘™¹YÖäȬå TŸ\ùÅZšO©Ê!z6bCu|¢ã,µ©®¯YEò˜ù{7¾Y:„ç›5"ž«yüÛh«ø¾Ýo‹>§J³LÎ=M«iìAãÂrÑÞÕJ¡÷„aÿ?_éwþ½á8N…±›±Û°ýœDï4õ‰#9Ùèé½ µh”¬É¬ä#þûT·²ëuž€ÒRÉ?òÖå¦É²²îшJ±J‘ìºìqåíIHM­jO²ëu„°“ħÖű¦¿¶”ðtÛCªi3éemšÓ5f¦~Í&IiVy‰ë,ÆÌИÅ*³}°¸½5^‡Ç9ÇãnjÚ{r¼R“a„g_èuþ—yÞwá8[ ÆlwÆ8Ø©ÞkkFw-h5šå+ºã°¥„ébAœp}®±(­bWÖQˆoWÚÄ·Ik–í#)c·{J˜—`¶¶D¥,
°IK2Ê´ÊôŒB×»Ò˜×U›)Ù´dß•ì\®‰›w+OTØê›r×QCm÷féÝöJ‡ž£Ó6U’˜¼ØÙ%ž-ä•ÔÛhÖJÍYHÂ?Ì?Õï;ÂØNÆlgÂØp/g5õË‘’I=›É9s¹t×E*nÍŠÌ"Í–NÚQuù+R¤®³64¤d$èÛ©%—YŽY{¤`'@ÛT¡ÃYܺ7qˆÝ«B¥—_={ÙIà·Ýí…a46Qp?I{OøaJ¶Ó°Õ×JL»ëžîk3·ÊËHï ‰ {V¸²+
UšE5Ç~3äÏÇÖz•’ˆYpŒ#üÝç§yÞwçyÞwá8[a8ÍŒØNu ÈkrRI'³sÜûî_öð{¥lGk®«„eP,}kl!—^sÎËl¨Ä¹½‰a)bÛŠ2u?Ír{X"a>Û2ž%úù«Ø‚O+lbÓ¤µqÔ|RŽM”ì;â’šÎ戥ãCK[zj›;nv%7Ú–²ÿ÷Ù†¨×±r‚sÔ¥ŽÄÒZòÙœg4Øë¡5©ñ¯)n1×Ov1ZH®„~½ÿ“¼ï;Îó¿Ðœ-çxpœ-ŒØs¬Y“Õ'ÇZEß•òWÞ¥%FMw|+ÒÊ!@m‚q\¬²ëùF"nÕ©ZÕfÇŸmä½[f´'Øk;åWò„*ûŽù6"¡¢taz7£b‚5Xàˆ7œóØ{^§ÐÏY+ì¢` õ½M'Ô# J¶ÓÖÔK!wûD¸Ž a~æ²×GM”€Ûn”i»úÛe‚´´ËĨŒCOÞë3Âó›º[5ªpžE¥ÉD4È
áFuúwç×ù;Îó¿Ó¼-…°±Ãž¹ëÞNœ†§ÿ;ü¦¦ŒÉ}ÞwotÖÔ订®Z’žN^¶Ï±ª£?t\û½±]dží´‹“rR÷ÏVMtž1öÙD¨-k•uÂáT;KOÞÖÊ]u\íê¢uQ;×*Ã``ÛD”b5©LdÂ8M¯\$®¦^ÆLv[Ýå¦b›ë6Õ4¶Å¶Ž³Rz×ØÇ›ÃHO6 ÃáÔ/±¸‰ˆímœX¼õ†úÔœ’XÌvd²à|ÜÑ̶ãyY¡L+…pòwçyÞwœìç§Y랸²'%¨NzÊ(Yùo0E•­ïw×÷£Mc"ôl!JN§omŒ:׫æÊa‡ÛbŽP•Ö£–^„b‡ÙvÀÞºô¦Y@œ"!êûEŠ¹øë\dõXH1
²Í€•ÕfÃ.é(âºü¶®+¬0
iÈ
ï\eëZI„«mu’Ô7†MYÓchAZZlÍHÖŽ°¾±¦Ä5€U¾ûÔEP¶ÆËN-&vÙÔ+(ëŠk­v'4øÖ›4®)fø‚kõœ-»ÇÖI­Åù¾ÛÒӬ衔 ‡
ç®Â3¯×¬ë=s×=p!ʼn9=SŸ¦½¾ï”êL:Ã{–ÞÚƒÒ×BQ
í‘aÝö
H&ªŒ¢«RR(oZç]k…æIçÈžö±n“U
#Þs
WÖ×À¥`‹4}”R
-b¤®®SYD-P½ª\…ÖQŽçšSêö4Nµå!×¾Þôi>Ä z>3úë“”ÚhzÍvõûHj#¢Syk´[r›.V»”ø´}snë
d¤åm©"#MömvƒêÒíuø´ÒcfkòF*¥i¸{ƒ’Õ³~IªNkr[º& ­ÇùâüßÆ?ÆnâõS†XfpÌáL39ñøŽ|GN
rqu°k¨þöyn7Xôû>jZ¯={ò»›K[[ã+\i«l$ð²­‹š€ã ÷Œ
Ûs]€•lÍ0±œð;b¸økLØšúÆX6Ã1‹……i”ÿdbÃl³©XÒ¦ª£2g³*°J×IHVØ'‘®ô%{iD{ƒjW=5û¶¬¥‹Cíjã«.º&2÷²&»ßº{¦ÆÃÂå5-S_iéNK³Ù®¼ªi¿ë‘Ùw½¶^öžµo–ž¤ä»/]}eüíÈ’ÉZìl‘ï-&l¬œ$`û“žOÝ«kdƒ¦½*k'ž¼¦#ÍrÑ´ãO9äƒPS[Îõ•Ÿ”q
è
rüc7¨]Í6þ¾}^»Ã±¨?¶äxå=y'ŠÄlù¾œä{žo¾Y[\¿!¹µêñõ-[°@š„ãÅGÁ$FÙf#¥•k—š ÊA‚¾Ú ×~Úû}“P¯Eå
z9%—[¼Ý'<ù¥ª{#QFt
ç!MmŠJê¨Ê¨m‰ËžÖÅ%uq‡òJ!kùÚ¸Íë0ýÚi“±ÖÇìJSÊ?µúÉÑ„©RÀúÎ@¸6vÎØE›?sðAµFž¦¼†Ó½|–Å+ÉÑ›Wy»ØÙ#e¥Ç3
ª”Ö×د¶Ö¼r{>ûÕ¡ÑÚê{Ï'õ¹ê´r…}W5ª³jÑF¥_6×VJ*&Û2L_·\™ôئ8EÒ^¬“ùuçž³mö†w©õEãÁ”Å! #6Þ êEö+†j êo)äåí±V1™]ZPVu¢€Ì¾äæbŒozb#
@rÐþXË
“±g=´ôÞ‚‰ë(D7m´«fÿØ®8#VJ 'i&íð^¹°…aƒÛm…1£Þ¹±Ø„'™¶ú3«‰Ú¹NƬÐ/gmW%WôÇ$A÷³Ö-â«áoâŠcS½–Ïsûw8Ý„ðSùªøÏë¬:sÞÂ.0ù]˜ÿÿÄ;!"1AQaq2‘±Á0¡#BR@Ñáñ Pbrð3‚CÿÚ ?|ìÂx§þc͉×
ÿØø/ã'@†Sâ>©±NÇm‚Ãq%£PMC1Á\ÝÖŒÔñ…f¸-á^&£´läÒçh˜—*®$‹`¨ƒÖê›Gd€AЩ0Ï$8AOk£ceEÁ®Å–­2Æ
ÑíFí6èÄ¢Û/eJx0…Úå0Dy…¢7V
Ñíû©–GDllQ³®´ÏØ(‡ˆ=J¡Z8¬tᨴÝöZTl«·ÙhF§YoªÖ 0‚'®é£0Lò „Äu(y-„ã/8“î5NX.:,% Ù.Ñ6äÉM05S
D¦: »‚yyý¢ÁRkG ‚T™ä\¶Ëón#P¦`‚¼/jÚájÃFQc!jËÈYáN[…¸‚¶¸\`ú!g
q0­­2 €Vl…âaZ8A[\-EºÑÀµc½,¼5¼TÜ…ª6U«&ö_ñrЙó@ÉqhuSŠ¨ò8â.že>Ìíª–È²Ã¸oT'z&Üܦ˜hSm2SI“s°_˜á±Ð&€ßÂ0ObÍcD¶5gqˆBq (Z–éºÚ»ôC35^!OŽÐäDL…«LhæýÖ´Ýe£„ÆBÕ…x^Ò…ÚéG
ÜHZ´árÑâBÖ›¾Áxj7î¼TÝ!iPAZ´âoªÖ õœ² û”r0 ž˜ž%.°@bq’zõ@áo²žH™*I'E!›3sÕ04
€þ a¨4#CÕ4ßÂF‘8êVŒ»‚ð´@ì¼o6Dë%:Íœ%æÝÖ­}¾Êq¸ÀDÁäNèŽra8IQ÷臎ÑÕŒÁƒÙhû…âf½ÑÈðŽf;ìˆÂöú­XéjÑѶ)ÓµÒ£B<“Aq»º”Ü­÷M³tS:MÑ@¸¡Ž©ÜíÑâ˜ÅTZÛqlq^'˜iêµt£¼×A숗Ÿê¢/ÂJ>ëWrðÓu©°ˆøîQMl=b¢/Õ2ãu0Áª™y·tyù#•¢Ìónëa™xG…kÍ×t26<‚T‚ë"orŽˆè‡S°M—Ž§øÐ(~[I.`Û˜Z6ÁxžQÒ粌,;!™çÕIS
sTr>%­;#š¡·u‚äÍPǚʘh€‰š…’´ŒN7è£GÝ.6C[”&ÜØwÕÚrž>iÚtE
MÏš'sÄÿ¢h‚é{G¨Qî·0;Y¸ß C+ÝL›dNc%SWÝ×%FzðC[7Ñιè¼,u2ë9ˆ%1¨æy·uJDÈfyBÍTÚÁ{§h5ê›·DAþ«Sø6\JãrÐtM³Î`6Ðæä,Á²&^Q°ü‘Ð@Db¨}VPÊÁ²ªTÛ.e`vS5
&tlѲ9žBˆkdðQÁ¨]Ú¡•$ÀSÅÈ‚Mæ¢\~Èmt,“°MüÇý¹
Ô(E¤µÅ®ˆØ©Nê +±Þ\”ËÍýѳ76ÝÆOªŒ4Ǫw‡ÑιC-0|ÐÔÀöS/2Q0ÀÝ¢"]sÙF^'Ðæä,ÑL½Þª` [#u ‰ê´~-ÈÓ”q<péõnŽœ7<¾ `&]¦¨™ýxs_i ÊöÙ¦f¼õ_Ók©1®Â0ìƒËpétda‰¿+¦Ó$îuvÈ&ÄÄŽp¹aù"¼uph0fÿ�loªß,gõfï="">¨ˆl®Öˆ—Š¡Ý%xX vSŠ¡õFÂçÙ1°µªŒ¢OZ vC3Ït,Ñ'©Chvªa.0¢ÒŽ–Z­ÿ©¹à€Ð>©´'acu1=‡©
Tƒá¶8Æ×Õg†y7"væ%4†´ïiÕWHTk“q<Ъú`.Qx¤M@#€ÝSlDe|ÆŠƒÁ0"z¦–8ZWÅ~a
ÇKé*+—q_Ìj‹\1<Æ+l9 çë—ù§>—ˆkÌ(†.lßD.ã'²ðÓu«Œ7Ùœ‰èŽZcî·$D¼ÝD1·î€—x}¹2{!–˜·P„9Ö
x•0Ѽ£`$£È"Ó_ŹêiÈ}]S¡­Û²¯±’LéIæSª¼L8â<¤òUEz±`å²už%5®{°8µÚA:¶«áé€|9­Ü[TAcšL[ Q)5*ì@Y­oîU>[ÝL€á«IÐÝ8Ô/¥ÇXó̪Õcƒ]M× Ì‚yjk˜1ø„JcƒeÇNI帯-Ö5npãrÐ#-›éôt(ì9{셅ʘh€§B„IFÌ°^*‡Õ"粌,ä†g˜Ót¹Y‚œOuÑ0Ñ(ž']ÅFî0q+AoÇBeÝééº 44¸’lâ¿Ã*¹ Ùï8çpª
,oˆ3ôƒ·üÙN˜7väñ%|CœØpѤòMšl8ên[{õÑÉhdûªNa€H³¹ƒº«Š–Ípœ=?’ *V.l@éȯ‹
5œÛ8æÇØJy¨Æ´;óÏùªLÀ烄6æE&¶¹I#Ñ|C÷CžÄ@6F‰ÅÄðÂd·k!ùUCZL–¸l}”t™Ö7‘DLMÜ¢3ÓÌÉ0=‘ñJ6¦5[Øv²‰{¯ê¢/Âèja¾ˆfyºXß¾¨›)Ìd£fnãe…‚eâyïu ¹CAü‚î0:©JˆÜš×N uåÁ4Ÿ–ÀHp9î˜
ˆ#~%|-*œK˜'Í|;)ˆ$†
Hâ†f‚ã0¿—"¾]P`43:#°@¶›i°Û=öMÇ]3<ñTi0È-"ÅÍ@©8S!‡ýÛP™h$‘£¹¨ÄÀáiBóªË6$ì˜è$\N’ª—h"ñè±–¹ÐöìàvFAûŸÐÝi%㢌,¢jw@Zå´ÄÈfyÝnS…‚Ý”ây„Oì˜DMGz¢!¢Jˆ»Íгݓ
nVÖü5s€ÐÑ£év?ÓNi0€h¨ëἩTË\À%û¸õCš²pi¸ý—†¯Ã1½1Ac«Ì7ù§ä:"†6Ý„Œ6
‚q¨jç¶Ó-¸‘ä„=•±Öšy#‹1–þJ „?T“Ë‚ã&8F2-`kÍ|6âp¸‘% ÌÛ^¨Èhœ@xrUOç‡À€G¡ú#3دÍýPÊÁ~¥ofú)Ä÷_ÝL0_ªèÔoPßÝ0z£È"%æê!ƒ´¡wj™+F^'ŸU6º&Âü†_éè/ø85 \‡½ | "¥Q”pnÁhnS¡£eT6Laqì¨ÔgÁ‡‚%±ˆs>45”i€4»‰Çæ³%Q˜^B‚×&nœ7Ñ°›öT鼺Ïv8ÂÞ\SŒ5ÙXDÌꩆ9À€K­$z!’Ö‹cËHUp¸6ÍR/b„e„5ヷnòŸ«ˆ€åÉ|@¬ç‚^Öq+º—A[Ì«<�>€æ´¤#¸^'˜Ôñ(˜¦-îŽg˜„u¹Da`…­Cnè'²iˆÍQÞ¨Y¢JÐXvS/uÔÃ:Ø#­ÖÃðºeÃé“+eMïhñav‹Ž½šL‡êœÑì¿t`kšK_Uú4òéÅ|S¾3â.ç$8¢ÓáªÙ„6`4)ù•šú¯bãiì«–Õ
ŠŒ›¸qpªVk"ÀØAºsžKÚ’fvTÜú
œ0ás¤vXÚ‰ƒÏa Îű‰Nv¸‚ý\8¢IÜ“²îœg!Ò9J¨\ÒàZCbæðÉ¥®sî‡Âú,`@¦C¿p¸#èÛæº|õFÌ÷GKÚ"&£®¢ðZ²ñT>¨Y¢Ot4ÑÕ
ÔÅ1÷G[|N”lÀÞmÝE®T@; $þäOŸÒÜ­‚ê§%ï Ç@z§Á{ª7Å‚=
pt®› óL¨*<‚ì‰ì¾IqŸ9ךøjM!°¦‘(Œ4ia 1ýP2Ýcdʵj1sO$ØÂ,ß÷I<yl¨t4à lÄg®År4©s³nò-$o="" ï$dy:i€oö@¸l9¡'[h7(È"="" ¯v€¬ö¸aÃbšÐߊøp].̦3ƶf(0="" "xî´{¼ÇÐÐ="" ÕÆ¢ÔÜö^`t.ónè\Á="—†˜û­\`"nA(˜`„oPú£¥Êˆm¼—‰îõ@CD”95¸Ýl·" !£gÒØ.<qÖ››5Ìsši—="" ¶°Ó{]Ôù¦€íe´;j2àÑ'‰q<•f¶t“Ð×sß4ëí="" [óœÖrÅây&iŽÔ9Ž–¼q÷u¥•l»‘¶‡Šc?ñnpè¼Î²¾$Ó*2äÅøª®©j›±="">›„Ü‹õž
—Ë—1£fì¯i²µà‘d#S(@Ñ5¤º/¬JÏšÜ_ñ›¯ŒoÊ`ÅE¢Æ4
9j˜âàç6«ô9`ú#8æÏ-GÐÔ……ÊhÙxê0.W… §Ê>%hÛ­Gz¨† <ä;Y¸É@a`û¡r` or¦7+z~ߤbð¯q¯K Y¦òfÖR÷±ºhf&G<–®¿àK kê™ÿj®÷©ñ8ù¯ðóQàXÕv#;"ɘ~áØ÷ á
€'Š‚M®ÀÂoV{4IU]I̪\€¹„YÒv•T9íkKËn :ß50-s6MÐùâÔ<‘ý¸‰âQ Mб’ت­¤Ò[LdÝÆt…ñxêQ`u*…íhÅMÉÝh3>4:¢H„6¡û
ÜÃ}”ˈ%Nmû­ÉÙ¼‰èˆ†6TI=KýPX»Ž^èkw!•‚œO0¦’¶°Fî+`¿t®HZnx'ihu@;¤Iˆ&Dq*Z×ÖA‚9„ì„c3Íi€ªÒó.
tx÷_×sy.õ_M»†„ðj>“‡Ëi´»rüJ!ÒÇqÑW“§p»5i……Ï
pœ Ò‚¥ˆœ3À @6p8Jk-I¿©D.]±þÊþåˆû ãg^b,œç$˜NÆ@kœÖéHƒê,yt¶ÿ÷tgò[ëô7ièI=´G+DÔ6î¢×=”a¦#ÝxžmÝ
.ïD2°@ì†gº<Ð0.TÃDL¼Ý
Žð®QÀ¢ëŸÓt\!”qqÑÄ–ô‹˜C)Õn!¬‡ZÒƒ[˜ÆlpÙ°Ð.`_ûw#òx]ǺšTžeÕwäi±Oá¨5½©ÿ{¬Ìv­:uOÂÓ6hÄN&ÞÃ3Sñ“ðì8A›Ê›­% ;NˆÁ ÉV¬÷VÜ„"bݺiÓêo¿Ðà¢ÄÙŠ¡þ¨-lžBÂcµÍP÷M³DžèXH
eæè˜`žèê`{']ÆJ9XóG´m‚yC@¸¦Ù ëkaÃY愀斘LHsA#˜„s>3n.Ûñ–šÀ\?H#Ô¢I:“uN›Ÿ¨.n,<ÄèªÔ¿ËeÌójn™H¶›_©ÅúˆÛ’Èðq2¡Óá<t½‹q·Å¸i<szæ tÜâ"\woaÐh7Žh’’¢Óÿ�j”:!w.tÐ4j¨¦Ú)ƒúßcn€g#ÏÕf‰3¤Ÿ¡Á7w¹Ç (e¦#ɉÆu2ã.dá¦ßº&]aìâ¹n³þ¨‰y„e®qÁ²¨ït,Ñ%="" ,2ót,À¦ånhúnpã¼ú¨~&8dmÀ›{)-¨*±{‹œz5="" Æåø="" l¦íaõz£&\nÐváâddº|Ócã¦Ó´ý)Î.cbškàËb="" k%aáÍ’f;o¿×s¯ƒ¢2ƒ­ôÅÍ="ΧEÎ" �¦ˆÍÂþÈ“Å7f="" ï¤+™²Ô~�[â¾dne±Ú¤ÉhÕ~ºŽ-ÿ�ˆ·ÐàŽv“œu="" 6h“ì˜æªï’ˆ†ˆ–µê´h’……›Ù="" Õ="" ÐÊÁ÷zºÁl¸ÉsÄ#w¹pgõºáôÚ3½íÄû'="" tÝ"þ_n2›gÉ\ðç)Á}'xÌfÚ'tf?Ê”'`‰s="" @Á9Îö4†ü;`lk¦#º16pƒ8nº”×|¿î"8õyÚ÷¸—›="" ð‘´!oÙqfln…÷@äqp�="" ;˜¿Ý.±Ïdd5 }="" šqñ™)Â)„d›dd¼Ýdsîº7Ñ="" Ï2{]="" ´Á臈Àïd="" Ì•¥6Ç’&^`wdØiz0@fõš.¢å="" Ýnߦuc="" Â|:ö(磈â它Š="" x¥u®m§zoc´*æÒ¨Üíø˜?°¼·gò¹ ×üiçë„‘pÞh¦Öƒ{І"á�†À&h0ÌéÕ9ÙÀýÛ}üÀaÐdèfÈzÈ;#{#oÀo="" ©Ý6[m¸ÍöÛèþ´c`vc5g[ºä2Òlwf¨hÐÔ‡8="" 6Àì§ch˜Ô¢a‚7¨ä|j<@="" %î’€†¡w!xrŽ¬phˆ&täš0áöŠÌá‹ux6xü-Ó#cÓu`ˆ("yi‘ó±q"c¢¥r§Ä:z="" ky¹_="" �03€uÑ0¼áÆ`xžh`‹¸iÀ£$™%="ìsªÓ"#iÖxòM" ²ÑÞ©&#€ãµÖ„wz~Û o:†m®Ã§ÑÜ„*‡ú¡f="ÔÀ³}8ªL4Iꉆˆ" Ùªîàz¢8Ú"%æê0±·îµu‚&od2Ól3="ÖCK•10Fìy¾¡‰">h¸Ïû)–ØA™#•?%Ä9•K|H;„pÕq
0 P#d#ð¤áR ¹ŽÂLqâqÿÜú„j¼ps­öLÂß¹<ÓjÔÃÕWªëÈèSM˜ZÝo3$îœÓV¦6›A#ÄP”
¦ tXuM̨×AQÕ ¶Ÿ‰
Cq8€>‰ß‡$Nmûî‰Äâ@öGÄA=ËM£ú¨“ Eãui·ÕD¼ÛÑ“'²f¨ëwCA.Y¢œU¦.¦æ7"Snn¬Ùî>­”ÉæsXÇI›˜@½—‘bÙ± ¯mf€™<b2Çn~ßæØ šç4Œc[ð:¬yai‡’mÌÊiùfp¨ÅÄÜ»¦¾«at7bv…h?) ’fw€„wž]="d7-{¦†€�€áôŽVd¿ª9ª]QDž¡F”bª}TXb=”a¦" vc5cÞé¶h—!fˆod*…l0]o�¦^d£jmfî0æqÒ˺'+Ç–èÈ="" ?¨aÀxê…á6li¥—ô—5ÏýrëÑ09ôË-¸™!vwÁãxÌÙwìv×d‡¸‰ñƒ÷z“oÀbxcÅØó±ßìœ="">#áêUc[SõuäªÓ¤Û’\`“êJøWSs‰ÅQÆùáÛª{i/Ö'c ZÜB <úØl2O?Kô°ÇUÕ'ÕFmõ@^c¼ß²
6‚x]7ŽD*Ž¿!–›o×T
ì;©—(œ4›÷DËÝnl˜ØŒU¢$¨µ‚‰7NãqÑ8i>iÒúYO·Õ⬢"!7ÄØ-äuT©Nžbàƒ;é:¦e‡¤Ž ʦXo.Eù'9ÆL626<!«\ÂA‚^?™ 'GEP7Ðý×ÆPc°Äñc¦C†v²™- ¶òà‹ñ¿ˆâ½‚¤[Œ‚ìçHÜðäœ×‡á–¶Û)¡¬hËnŸNøŽ'te`$/PÇšñ8!–˜ÂÈUèærœ4‡¦¨œUÄû#f9ªîˆ† (è!ª&¡¿Eiµj㛕0-nI†j:&þj̬pž»&
Ñp9nä×|ªŽs°–íh Ü„%Õ‹D9§¢}`G„9Ä j«³å´´Ç0Ù
XÞÙ
³I:ðTé–ÔnXü‰’ž8¶uÚሲ…cLÆS*ÖhhƒM°âï÷N‹áE#„0hç›G‰”×|ÇbIÄ͇TÙ
I1OØ}=‚ðÎtSŠ£®¼,mú©àßDN*Ž“î‰ÂÁ'ª6h!¨æ¨ëû£jbOTGû"%æê"›n¢\`z %×=if¨èn…†g,Ñ›êšàç™’kƒ¢áb¤Žfåpæ>µQªÜAÙ5¸¢ÝTÈZA
OêßEI¸Ýãs]Ô,{d$ßITØêM bp’B¢%æ]Š¬§ÓÇDâb.©µ®pÈIäšÒò À×tCêõ2Žêor‰ÃLzj‰Äó{”rÓo÷Dby€ˆÍr£
0£Ìn{(ÃLÍTú¡arÑ‚ÙN*®º
6Éê¦öj™q’‰†ÛÉT?.˜0xPËEŠ~bcÍ?òëYÃØ­ÿ€?€ühòMME«h ÇtöFͳTuýÑLIꈵ›ìˆÅU×èTCqê¢!½—Š«¾Å0P³D7²ñU7õC-1~¨ja¾Šq:îS†“~ኡ€‰âär°@Z¸’‹ ­ ƒ²Àqç{¬fé­È4èæS°æßá€þÀ%üšˆ—ŒÆJ#
µ¨`z(’eÝ”a¤!Ï0Þ7²ždöC-!÷Bï0Þè]ÄÙxi6<”â¨`wSûœ´c`#š«‘µ1%öµ¼ÉFÍ*0)30pª'vê©»4†žiŽ|y áQ†HãÉŸÜèšaÄ¢ë;^¿É
¹@CDÈfª}SD2 î›fˆod3Õw­ÓlØs»¡f8ªºu0Ñ'ºð´@SŠ£‘1L_ª<šŽg™(å¤Õ«Ì8ªŒ4ÛD¸’œñR§€ñtçŠ~aËd÷ñÀîªM€]<Úpž)ıîíåÄ'5ÂAÿB 5¢I)¤5ÆÞ\OTÜ´Ûê›wo¢ngwd2Òió@ËÌ7º\Aw@§
&ýÔËŒ7¾ˆœO ”NM¿TNc
öFï žˆå¦ßî¼O0^îQ†›` 1Tr%Èh†¡š£¤ôBÍ*­ùlýSÛç Ú[¢s&2‹ ¨ì0°Y– ]ÿ×ÂxôN¤H#ý
~X2cõB
1HUè\©†”ãªa
¹öDá`€‰ÅT£as쩈æ¨Qð‰(ˆ`€¼U]ê¢$¨•½—Š¡“ц˜“Á¸Ã}»Œ¹´›²s‰ÕSaÆpGUM¤Õtô…M³H橦.:*9X
•#˜Àº¦q<ØòMq¤wý„û"H±Ç ÄQoŒÕý0,8ªû§¦Ù=Q7³}‘Ìò èŽZM¿Tnã
öFï žˆå¤ÛõQ&C}—Š¡¿B£
6ÉC[7µÌó~š 0ÓoÜ¡w\œNì†ZmÔ!š£ t(œ†VjWJ˜h1ÒÀ1
Œ]1ÿ.œ’6?­;ƒ²ÆQٹⱊ‡Q|.ÓŸòÙ=“Ýo N{é9þÛ;„ðæ¸H#øÇÝÊüÝ×’7|€â2z'e¦ßîš¡DZçÙªTE®{"0Ób¨}TZîì€ÃM°ÍPÀïdîwd2Ó;!š££Í4K°ßE8ª:êpÓ¦öj&^eÈœ4›÷ ÆKŠ¬ìN#£}ÕR*Õ&GUC/cuViS2m¢ª0Òl4Å­¢¨1N[X§ŒUI²{H0O$ö᧡U`ñS:;ú§Cã3£ø§Q!£RLh?ªŒUžê!‚Jˆm‡eª»ÕDSl•ÙŠ£¯ÓTm“ݸok!š¡¿ª
1~èXHod3Tr`“Ý7KD'ºJ)·ïª™&™q’‰ÃI¿p‰ÄóÅÈÙ€Žj®GÂÐ
{M<@“ÂuUDQ–´ôÑsM ±…€šŽ-ŽEXx„@3‹ªk¢ß8TÙ
´&4š„}/ ÊNøš`¦aÃÿè4îœ×4‹d
IPpÈÆtžIØêUuÉ7º— 0²Á4K´ôMã'²
6ÂhÄónöM]Ù†˜Ù75CºîpC-1²œUèæpS†û…2ã
î¦÷rÒ˜·e8ª:&Ê6`€Žj®º6`“Ù2µÔtžèŒ4šˆ»Š¢\ç4¶$Æ»æÈæÒ<Õ×bc²§/Å{TŽ
MÙà˜pÉ
½ÓŠ·„ÍÓã.¾ª›°ÓñÑ1æ“-Ñ5ù¤4 ñQçÌ'¼~ö´ö@ÓpÕÇÃ朄þ€å~c›©ý#ºtâ0Ö‹<“D“'²hÃLvMã‡Ñ75B›f‰pM³É¹ª97+DžèXH8ª:è,Tîè§G]L0]L48ª9
}B&!¨œU'Ý´Û'¨G[doQÒzFMG3ÌEîïTFbŒU]öQf‰êšñRN.yTÝíéªù,09Nˆ¿ä1ÜÂ/j¸wãýa=Æ1.o)î,h!…Tp{ü'Š¨áR£³66UZ¸FŠ©ÁLX«Njªf¨t…ñ$MÜ5J˜0<lÓ¸_Âxïþqôk7Í>AP³u{½‚{ÜÙ†¶l;&O7ºfV <.˜`Xv@ã¨cÍûœá¦ u:Mš±KÌŸu1M¿uŠ\`wS{¹†˜û…8ž`{)½Ü§
!骜O09®î…´‡
Â7qìŠå´Â9ª:6>¨Ù‚ŽjŽ×‘QîÊ-f¨ÅQÒPi‰CRUR#¦è´…PŠ¯Œ25USó*?8‹òU% ûhwUGɧcÉ<ÐpÖÛó`Ôö“PË„\*,hÄOöa¥`z"ÉÐ+uSÁ`ÌdžåÅ6Ì Ì€ˆâšÂ_hMl¼Ìîr0¶òd5F›ÚÍH0U
Œ‡z*á¥ÚÄÓž‚­LÿôVy…Uža|E9áˆ*ذ넨Ô|›Z'ÍPkî7€«UÂÑ™ Àû èX±Ô>«8iˆåeˆÑt¸Éœ4Û÷DÀÔçb¨ä]K“ŽœU‰†‰>Șh "qTuýÑÊÁ'ªÐY¨æªdû§Y‚OPšjpÅQȈh“Ù8CDኡ¿BˆÃLz¢'@ˆ—™*0Ój‰q€µuÊ
1
öC5CŠ=TEHy1¹²Œ,€(ü°H·íLitÄmtÖþkˆ6ÒD?11Å5°Á¬j˜Ù¦ÛM¤¸ ­üÇ_’hˆÕ0Cš¦,Á‰ÇYÑ0f7)€tË4XJnkÅôM»s)¹MÈ”Û1¶›.P2÷\Ê ÖècD SŠLãÂJ'‰– ÇÓŒ8‰N8ZÙSŒ¶@èžeæçªqÂù#à° ÙžnQÊãtlÆ‚¸ÈÿìuÏTlÆ‚½Ç’6{¯nèÙÝx¿’6q$­,:£˜£g=–W‹þ„|D“Ø­-\cÍhH%mÙjçA(ZÇ͵¶Z½×Z4-K—ÿÄ7!1AQaÁq‘ð±Ñ "2¡áñ0Rb#3@‚ÂÿÚ?ùLÈÝK‚à
@ûŸD,àÂÿµëÝC…ß …Œ/Þ¨YJ]óCÙå”66bçæƒ
œ§NŒê£ö{«ÒJÓØ$x"ÂEZØÇb›#Þ«¾Š,4Ü#>ñC5|û¸®ú)÷•{Å ëºïb7öÒ)ØòÙCÞ”Miq•Ë=t¸ »•Â4Ø /Õ}6W”Px²oˆÂb+oa³3„HØBg®¨ØÁþ&™è¢°ƒ>ô^â~¯+×ñÉŸÛl"zÒ÷6”qr÷1µÔÇ¢÷V“ùqtlãyÂ{ªh…A»Ð§ûl¡–›~ü‚”¹«gÒˆó(ÞT0ÏÅ“U­Œ1‰õV¶qAÀÇ`‹iM›Ïí5íŸY“Ë`€/YîkzÝÏ`€é°Ñß: OyÈ!öôBxìMpCˆc®— x”†ÿàZ@"U¥™€±ÀšcgDó®~Š—Ë`€‹îjƒÕ³Ø!öØ I–fP'¼ä#¼nþë„Ä¡¨-?ÔV (ý¡‘ö€¿¡µøm¬„pµ÷& ´¡æP&£žÁtØ Î¾µO{g°B]ÜsWý̧~ñ¢q§¢éUÀÉACŸ„xE´Ž'dˆ$‰ÔŽÂ÷qq)U/zŠ(H‹d¡&*Q?‡Ú¬‹ñGÕOö ˜Ò[óÜÕ¤ìqØ!)OðÏ·™B {ƈè!Ï»×53A@!ð:%GÍR|•™ÐË E
©el1â Vbÿä€Ñ0™D:â¬íW‚8DPo
aˆ†˜ýIM¶æÍ÷(>»¼Ö~¨¿Y>Û<½W3p€ð/ákhÊ(G’€Â’Œñh"Tcˆ|Ä
²Œí7PDe
WÒAµÃÉ¿b‰Ãå°ª~»•Ä+,vòLO3ºÍ³Ø xw2¸n ø]P(¾®JÈñ[>
("%Dg@¹{Dpðæ¬L&$nˆÑ0!p°.UŒA›ƒÚ‡üdá49åÒ«æ×søYëÒA.“(¸>å¸g°@¦È}Ì®›ÕAÀ|#- Gé%XYðÂ÷”cÁbìBµ„C?5jêÄH:„m+ó<mÂyš2´¹c‡ l(¸e4Ü ç="">e
IñØ)
6@gÝJàˆÍÔ(x•zµúTAÅ ¡±ÖJ(-55VPž#ÍÞ¿Da:^¬ØFÁ¸C¶›”A¨|u2Ŷ…1f$á¹U¾~¨WϤ‚ûAå>ÌÊhÌÁPSÄøiô ì@
à¢ÝFxE‹@¸à†%A.î‡5!@Iš4VöõCÀ¢H|ºÌ§“ëÖA6rÒ9u™AûÎA9Ü(ƒßˤʯªùͳ¿âk•ñPDðÖÿ‹a&Ñ„D!$TŒÖŠ":ˆ²°IÑ£,DLµ(]vK© ªùwš§½³AK`¯m7(9º»®(î¥ÊÈÏãµÂ‚1?d€SN0Qqº(¸ ˆ’9(cÙ'ðŒ’X(!ÂxÛ‘Á%23ܧפ‚¤´Ü I»÷{ØãÒASØ&¸òë2ûî¸âºŠÄè´„™B'v
ø…ÁÔpˆƒ™„Ê#I"í6ÑÉJ²³ájPð(/kŽBLù ×ržùµtMq|™@¾?˜“ŠëÒAHKN“+'ý™”"÷^ð‰% õÔ¨ÃËã!Gd@šQCPÅW
Dm_¸ÌG
TAË—(,â# €CO<
4VñqZ)¹Uû•!ËhS
iÖe…O™¢|å°Y—I•3ÏsøN}<‚÷„H G}MœL~ßÒa¡{˜]Ñöxq+ÜA‚á |Ñj!µ.³)ï×S ¥Œ¶…qˬʳŽ}dò”×GÌ©á=Ïá[1äHB슷Ôó4
¦žªÊ7
Ûs&ñŽ µŒE7ló™Nj9õ^[R˜™_MMP£¶}dž’Cò˜Pò>eW™ó‹ð³Ç^øC.i:^ßìi PÊZ]SUsžAÎñýl™7ŒQ2ö‹n)
óÁ3rØU1>Zš¡‹g°@C„¶ ç¹YžÁ0‡”?”ËCæTɽϜ_„1ˆÒA{èaùxIeÄj_üy¦%7¥õ5B.›d¾º• ‰ð7ƒ&L›àŠ0½¹/È?4ðÕ³H&í„ʯ=ÍP" g°R¥ÔÐL Þ%œñØ ÃÚ×h|ʯ?Z ÕúH/{eŒÈÉ3“}M* ‰,Òz]õÉ¿ù†¨Du®¦Š˜ÈåÒªÎÜ9 P>›âvV–ÐÂ&U­·‹œô
y¾ñ#ˆ|t†âøt™LN/¼Hc<v …-Êg9»�éä*ší:Ì­çÖa¯rbÒÊŠ mn­ô_="">o¯Õ¢]Kþ¸¢­õÔÐ!VÓÔ®9>¾ŠXá,ùkzƒÚ`5’D"\IÂp¸‚1…¼0‚åGí@”ÙüÑ1óÇS ˜iMSÏx”«w¤‚áÐé2«Ïx7ëÒA3HœºL¦{ç¹Aª}$_ت™‘9u™S»˜ÖA·¢{!"Š®ødgu!BÎ/ñ˜¬HAsKéÐU·ûl/LÅ¿õë2j¸ƒ;g ¢1szk6…F¼¾åiˆ_yû!í…® û¯æeÙ0µÝ*#…ýŠÒ3#y
J•n™ÒÂi§Y•{ë°\\í ™Mo®±Qp·!ä€ÐòܣŮñ!!,΂Apši¹A÷ëE*÷$št™U¿²žñÏ`¤4ÙlÅD×ÿÄ.! 10AQ"aq2B‘¡@±Ñ4ÿÚ?P¡@P¡X"þȹǪ…ÀWçÄõÂ4ö[ïÌ©R¥J¥YNŒº EÄûsç–bJ&}¿ˆtBƒ„§¶™ÄSqTøW:óoK¡Â?²<+ûXB ƒi<×c*p
T(³). ¹DÀúA1þ¯e0H½‡d\÷žÐ˜*¸‹ßÑî£0ÓÚ×’‹nªÐs=G}'À¢dêQ§åœ v&åV›¾«ö
“‰eKÜÅѤÒáÝ‘@ß Us‚Øú
ÉÑN¬Ñ'y°ôYÞd溦â8[²¯G!¡ÛHÆ4Ñ(# .–w_djÆ>–£.q"äªMzî‹Fr¤âÇ€GPªÒq"]b"Zg=¬ê©^Ù9¯y$JÔaøDA#G^@ÁÛiHå¥êeVnJu)•Fÿ„×4Ù£t\è0>›.®Ïæ'ÚWÛï°õN ºŽä |Ê^×–r\EÎñÝq,!ÙºÌ;q¤*m—tAÌÑò¸š¥ÎŽË-ï¿dÖGôŒY-€ATN|Ç'Ò:.!À±¥Î3ÑG”Ê32šâ6Ýx0Àá¼Ì.$ÿ8:k`íþ4…ÃZ EÐw„MÊÌâ É2U HëÝ1ô„ëv.!ñM AõEä™”L”%¦ÐDÿIÕI1{@UäÒ“¼èƒ·øÒ7TŒ<*¿i%uB„À"SKC;™6èBe7¹ÖïÑWk˜ÖÀ°ŒLDªl·äʬƲÏé3OeWþqnÚÈ?qÐ
ae¦bFíŽØ4Iìšæ掉®ðˉp$µW.,,Zç¢ê›Iþ²Ç¯ø©6l¸ÂcA'@Û0xÔW#½
ªÇT b;" ©¥!COÝ †›é†´›nŸO$ÌuÝB•Acs¿²¨ò÷—¥FÚÂ
S„ƒÈ¡SÍ}=€ÇØï;Ê©L5Ð#TÞæ:B§U®iò‚Iº]å·KÞÉ”.0ѹ\E|æÒ6ÐÖSƒ„aR®æÓ˜Ó}çºu–DC‰ÜŸÒ9í?)Ô² 0}•"!°dJ«Z›I°'cÑTªç›ŸŒ-TŒ$rCˆØ¯ÙbÈqO‚ mV¨ÊÌ{è8,9!H@àæÁþG(+b@(ˆ<éÁ¡]±€B ŽaÀ7˜“Y;Î¥YƹSŒ #Ë
ɯtœeJ”@(´¨P¡B…*¨r jT(Q…°'•
a(_ÿÙ<table class="fixed" border="0">
<colgroup><col width="1000px"><col width="500px">
</colgroup><tbody><tr><td>
<h2>ESP32 server</h2>
</td><td>
<table border="0">
<tbody><tr>
<td>
<label for="newfile">Upload a file</label>
</td>
<td colspan="2">
<input id="newfile" type="file" onchange="setpath()" style="width:100%;">
</td>
</tr>
<tr>
<td>
<label for="filepath">Set path on server</label>
</td>
<td>
<input id="filepath" type="text" style="width:100%" readonly="">
</td>
<td>
<button id="upload" type="button" onclick="upload()">Upload</button>
</td>
</tr>
<tr>
<td>
<label for="rollback">Return to v.1.0.0</label>
</td>
<td>
<form action="/rollback" method="post">
<input type="submit" value="Rollback" name="Rollback" "downgrade"="">
</form>
</td>
</tr>
</tbody></table>
</td></tr>
</tbody></table>
<p id="demo"></p>
<script>
function downgrade() {
var txt;
if (confirm("Are you sure?")) {
var xhttp = new XMLHttpRequest();
xhttp.open("POST", "/rollback", true);
xhttp.send("name=Hello");
txt = "You pressed OK!";
} else {
txt = "You pressed Cancel!";
}
document.getElementById("demo").innerHTML = txt;
}
function setpath() {
var default_path = document.getElementById("newfile").files[0].name;
document.getElementById("filepath").value = default_path;
}
function upload() {
var filePath = document.getElementById("filepath").value;
var upload_path = "/upload/" + filePath;
var fileInput = document.getElementById("newfile").files;
/* Max size of an individual file. Make sure this
* value is same as that set in file_server.c */
var MAX_FILE_SIZE = 1500*1024;
var MAX_FILE_SIZE_STR = "1500KB";
if (fileInput.length == 0) {
alert("No file selected!");
} else if (filePath.length == 0) {
alert("File path on server is not set!");
} else if (filePath.indexOf(' ') >= 0) {
alert("File path on server cannot have spaces!");
} else if (filePath[filePath.length-1] == '/') {
alert("File name not specified after path!");
} else if (fileInput[0].size > 1500*1024) {
alert("File size must be less than 1500KB!");
} else {
document.getElementById("newfile").disabled = true;
document.getElementById("filepath").disabled = true;
document.getElementById("upload").disabled = true;
var file = fileInput[0];
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4) {
if (xhttp.status == 200) {
document.open();
document.write(xhttp.responseText);
document.close();
} else if (xhttp.status == 0) {
alert("Server closed the connection abruptly!");
location.reload()
} else {
alert(xhttp.status + " Error!\n" + xhttp.responseText);
location.reload()
}
}
};
xhttp.open("POST", upload_path, true);
xhttp.send(file);
}
}
</script>
<table class="fixed" border="1"><colgroup><col width="800px"><col width="300px"><col width="300px"><col width="100px"></colgroup><thead><tr><th>Name</th><th>Type</th><th>Size (Bytes)</th><th>Delete</th></tr></thead><tbody><tr><td><a href="/.gitkeep">.gitkeep</a></td><td>file</td><td>0</td><td><form method="post" action="/delete/.gitkeep"><button type="submit">Delete</button></form></td></tr>
<tr><td><a href="/hello_world.bin">hello_world.bin</a></td><td>file</td><td>873232</td><td><form method="post" action="/delete/hello_world.bin"><button type="submit">Delete</button></form></td></tr>
</tbody></table></v></mÂyš2´¹c‡></lÓ¸_Âxïþqôk7Í></b2Çn~ßæØ šç4Œc[ð:¬yai‡’mÌÊiùfp¨ÅÄÜ»¦¾«at7bv…h?)></t½‹q·Å¸i<szæ></yl¨t4Ã></péõnŽœ7<¾ `&]¦¨™ýxs_i></vöÚè£u></u=ù]qšc©aÕþ±òƒ(3dú©Äc÷žsº³aíã©'Þ×></j)³ÍÃy`š•ß”></o]}i></s†©cÿ�ÓÜe"ÉÇhñú•]]></e°«žçÖ•4r²tÀªl$À-¨]@œÓ±¨»ã'^“÷wsù‰1Ëlû$ñÛíß></sžÓgÆö5qêæo:ÕyÖr!Áù¤kd•gt></rÆ�á=l#bl…¬Éoø©Šƒå´òŒlfá=~vöu˜d˜#bcyã8ö…2‘ú¼²h+5cyþs×r«] ¸ÚÔ¹f></o_ã¶ån¸‘&dÝ)Õ¹½n›í2½Þh”:šäº></body>
If I dont select "edit as HTML" and just view whole elemts, it looks very strange. The whole body is garbage data, I cant even see my other html elements in there such as my table and etc:
https://ibb.co/Yd8dQPq