From 84b3dd69f1aff043c1ecce5a09339b862aa7970d Mon Sep 17 00:00:00 2001 From: Paul Spenke Date: Wed, 18 Mar 2026 17:55:04 +0100 Subject: [PATCH] Fix security bugs and migrate image uploads to /api/v1/attachments * Replace /api/v1/resources with /api/v1/attachments for image uploads * Upload attachments as JSON with base64-encoded content field * After memo creation, link each attachment via PATCH /api/v1/attachments/{id} * Rewrite markdown image URLs to use /file/attachments/{id} pattern * Fix XSS: sanitize marked.parse output with a DOM-based allowlist sanitizer * Fix SSRF: validate img.src scheme (http/https only) before fetching * Fix stack overflow: use chunked base64 encoding for large images * Update CLAUDE.md to document new attachment flow --- CLAUDE.md | 78 +++++++++++++++++++ src/icons/icon128.png | Bin 7647 -> 23412 bytes src/icons/icon16.png | Bin 454 -> 1437 bytes src/icons/icon32.png | Bin 1071 -> 3105 bytes src/icons/icon48.png | Bin 1962 -> 5349 bytes src/manifest.json | 4 +- src/popup.css | 32 +++++--- src/popup.html | 26 +++---- src/popup.js | 177 ++++++++++++++++++++++++++++-------------- src/settings.css | 26 +++++-- src/settings.html | 50 ++++++------ 11 files changed, 274 insertions(+), 119 deletions(-) create mode 100644 CLAUDE.md diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..941f381 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,78 @@ +# CLAUDE.md + +## Project Overview + +**Memos Clipper** is a Chrome Extension (Manifest V3) that clips web pages or text selections and saves them to a [Memos](https://usememos.com) instance in Markdown format. + +## Architecture + +Three-part Chrome extension: + +- **`src/content.js`** — Content script injected into pages; extracts HTML and converts it to Markdown +- **`src/popup.html` / `src/popup.js`** — Main popup UI: editor, preview, image gallery, send button +- **`src/settings.html` / `src/settings.js`** — Options page: Memos URL, API token, defaults +- **`src/background.js`** — Service worker (minimal; onInstalled listener only) + +## Tech Stack + +- **Runtime**: Chrome MV3 (Manifest V3) +- **Language**: Vanilla JavaScript (ES6+), no frontend framework +- **Styling**: Tailwind CSS v4 + PostCSS + Autoprefixer; CSS variables for theming; dark mode via `prefers-color-scheme` +- **Markdown**: Custom HTML→Markdown converter in `content.js`; `marked.min.js` for preview rendering +- **Build**: Vite v8 with `vite-plugin-static-copy` + +## Build & Development + +```bash +npm install # Install dependencies +npm run dev # Dev server with hot reload +npm run build # Production build → dist/ +npm run preview # Preview built output +``` + +Load the extension in Chrome: **Extensions → Load unpacked → select `dist/`** + +## Key Implementation Details + +### API Integration +- Memos API v1: `/api/v1/memos`, `/api/v1/attachments` +- Requires Memos v0.22+ +- Bearer token auth via `chrome.storage.sync` +- Attachment flow: upload via `POST /api/v1/attachments` (JSON + base64 `content`), create memo, then link each attachment to the memo via `PATCH /api/v1/attachments/{id}` with `{ memo: "memos/{id}" }` + +### Content Extraction +- Removes boilerplate: nav, ads, sidebars, cookie banners (45+ selectors) +- Supports full-page and selection-only modes +- Converts: headings, lists, tables, code blocks, links, images, blockquotes + +### Image Handling +- Filters images smaller than 32px (icons/tracking pixels) +- Deduplicates images +- Supports data URIs +- Uploads images as attachments (`POST /api/v1/attachments`) with base64-encoded content +- After memo creation, links each attachment to the memo via `PATCH /api/v1/attachments/{id}` +- Attachment file URL pattern: `{memosUrl}/file/attachments/{id}` + +### Storage +- `chrome.storage.sync` for cross-device settings (URL, token, defaults) + +## Project Structure + +``` +src/ +├── manifest.json # MV3 config (permissions, entry points) +├── popup.html/.js/.css # Main extension popup +├── settings.html/.js/.css # Options page +├── content.js # Page content extractor +├── background.js # Service worker +├── marked.min.js # Bundled Markdown renderer +└── icons/ # 16, 32, 48, 128px PNG icons +dist/ # Build output (gitignored) +vite.config.js +package.json +``` + +## Permissions + +- `activeTab`, `scripting`, `storage` +- Host permissions: `` (needed for cross-origin image fetching and API calls) diff --git a/src/icons/icon128.png b/src/icons/icon128.png index 0c871e0b40c6999ac1e111eee10dd60fe0fcbc0c..185f39d043fbd6150f90899f4637ef8a20170b6c 100644 GIT binary patch literal 23412 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 literal 7647 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 diff --git a/src/icons/icon16.png b/src/icons/icon16.png index 570a00695d325ee69c5096c50cdfdb5c12b14ee2..70268d8b9e17aaef24641b7f3f73313e26d20abf 100644 GIT binary patch literal 1437 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Ea{HEjtmSN`?>!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBDB+SC;hE;^%b*2hb1*Qr zXELw=S&Tp|1;h*t%nKM9n1M7SNNfQUTvlKKGlC6LXcAiZ38?IJW=KRygs+cPa(=E} zVoH8es$NBI0Z0LZO@$SZnVVXYs8ErclUHn2VXFjIVFhG^g!Ppaz)DK8ZIvQ?0~DO| zi&7QL^bGV2l1AfjnEKjFOT9D}DX)@^Za$W4-*MbbUihOG|wN zBYh(yU7!lx;>x^|#0uTKVr7USFmqf|i<65o3raHc^AtelCMM;Vme?vOfh>Xph&xj& zG7&cA6+^uR^q@XSM&D4+Kp$>4P^%3{)XF(OC%-7TATc@B&d>&|5LpOe3q*B5W<_dF zgiB^_YF;tWMRw*ECQwc2GFWv+;?#*G1J!Ax5ArUO_aR{m76k^b9hZ$hJfiHlK1o*r zlN2+fr;B5VgXWqPdw-AV)CjAH(K{nOSBmtI-&NCh) zub&v8|Mfz!FOX5+y-T^~_XUGjxBvb-u_e>&>AIM`$E>Zs z75f@j8b~~CbTCPmxR}{^^H_J}y?ZRp8yC;V&ULZZ4J}G|`jQt1XbAND zw&ho6bxYV@*%c8IawKTZXUXfO*@x43-Q4_yH#P*UV3Ms4iikUxkb1Ofk;a5nOOGj! zcga;fv5=m|pLx6qIN)|D(eM0-rEEL+~={bq-)TW@Wdp9JG-?<~4 zF{|(ESJO37Vs#gI3;GwYT|0G(t5=q5lK&^Ql`K!!>g?X8<82qX`+3!c5MI~q4NI4r zq|M)d?9%r94Y}+e+a$VN!wXs&W{Y;bwwTG<`T6*x_8o4opX;w#yS7o2=VXYsUi_|x zix)Tl`0~+q=60UTJkyyy{uEBzu}FC5>Ai)n6W89nIeo=i-p5B*o1b`Urr2Grnr~%o zEpUIXLz!{Aq)~8SNcXI~m;&#)FLqUWUv`qe^s?mtwP~_Bo+b-d8L=ET*sxV41Sh|j5-^|hwHdz_M^rmZeMnPM(4Wp(uRYoVB6-*XYZeY5Iz z_55@elKL;rs1~4--GyM4RgF!`AiGLwGCxsy(z>A^2p^Sl# zj~A;UOz0*S7iTfNefyrl*4C2Y$&;rH&Mx*0@^Uf^{{EgAE*03>_@4z`@XMF4414z- zVz9O{V|f1JB?CV{FT=ru#~4IJgs_GIh5^DNLJUin&R|eeQ(<`Z`ZYsW=VS&pHZ}%z z4OOfLV1xk^6MrLvsHh0T-@ktu?%jRJ@b2vghG$P-Fi1*@6KBAO_a7OK9XrLq%*@1K zV`I*ck(t2o`0-PQXV0GF_QD7EdPZ16TD*8QgRqDY!~Oe@7(|4H7~Z{m&*0>2$52(- zilO;~dp#r0l*q}+$-u(G%<%d17YvOYo3i1_8Y69E%OwNYY=*J1W+r@wpl2wGb0Yv; W0d_Smo8FQD00009o> diff --git a/src/icons/icon32.png b/src/icons/icon32.png index d75b167663e3b4cc810c6246a80cfd64a0620cec..0e7e82485b0be187ad2e46d95260c7ef8ab3fa29 100644 GIT binary patch literal 3105 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 delta 1050 zcmV+#1m*jo7_SJBB!3BTNLh0L01m_e01m_fl`9S#000BwNklr6QY05}=^? zFtTRFA{ykXS;-Q47|L@ejJt#5n7?0tFrCHS@%!Pm`uzF(eSf~6_iLYr@4g@Sk4>1* zq0kFv+0(zV>=IQm6+3$qy%!io0P_)73Nh>FeSr(-E#}RfQ^RgSM74o-?=Ir~58hD? z;3BWFYHAXZ3k^PjPzA7g^Cp^`TdB0vviHMcL{W7DXF({Ake-o7R@OQs zS>lPz41T}z2Y>aaj**<4pc=v>fVXbnvu7tJQz;!+yU5GSX7%casW^I^;*uRyR+h13 zX_R8oyLCi&AKjUsp9Z_#&U4S_)7jNSPEIDrEC=bkF+g42IV_ek^7GfLhEP<31q(tD zMG=Q%lA)ntqN5h0(P#(^4B*w*ws5d)F9!}B;q|RAl7IHdO2rV008$=$kZ+sLP+tBS zM&mk6rXqAY9r9iI3JcS7`0zeH`S?>zrXuwK-qOEz?JBB2uSb?-TrL;au5}}d0@ttK zz+$Pv>72sln#SdtX633>!oxxpi-%q?%YJh?*~aYz2L~~3v+>@$`)F(ZiBqR7oIG)s z{reA*kbkh8-rhbM8X6hBIZAG>Q8550DM3miy}f;i!i;M|;&K4q*!D6fPF7$rgi}#b zMb7$6v|25T7DW;hv&44*vCCqx+a0|5)>f*j4q-O$LY8GjQ6N5k8BI+sSgkiXclJwS zW0z7@RmaX<+k6KQX^6n(a$zupllM$E{{H?roqtn|j9BUH?BV<7RyO1s`Jv@U3O41j zefukX^YwR%0p{!hQKLZ=1a5b!EX&wzHoCiesjjZ4t?g&dpZ^M-UWaYm20&1d)^`97 zhXdF2G!u>qBuPS}(GU?4PI7V}Nl7L`LPAJeW2C+PDm68yc{F_u@hjpK1Bl@L(a_S; zMt^kl{d9KrFflQC2STsc5gMw;&rd^E*5h~l1wmk-e^8P5SayjpXAc}LKTcucOIR#5 zbal-@+`1+G&1Xfz%w&k7h|}q$wzfeL04OLyfBzt6^GB4HzRkeE5LW9bTJ0oyy^eqY ze*{4wB_)yKk{xW^_%ttUDP(YPSUtd4c7KWB=|=pb@gl$d+D<{i25jSYo_y*tBuV1Z zrC(@lya+N3kNk-->sdxdtcrwhmwjGu!nn8x2o4V7^5rW?k~Ek5Ox!btv&2C`3EWvn zN7sCgxiz=le=pDQx$K`4=W+c04G4GR?saMKC4{HD=Kr@D`4YlsyP+BwwcGJuloJ|# UuK>F+wEzGB07*qoM6N<$g4c!qng9R* diff --git a/src/icons/icon48.png b/src/icons/icon48.png index f2bf68d38d4e7b447f1a8d847ffada4cced8e6c9..4544c1a0fb72442338caffc41ed4ec00a337dd52 100644 GIT binary patch literal 5349 zcmZ{IcQjmW*Zv?%wCJ6vi8`Z1jcyE+7=2^}iQXACM2#A~MDH~+7(_2oBZw|~pF{{k z)G)eFp6B^J@4J5M`_5YX?0sMRy7s>Jea;_eok(p>H8Nr*VgLX@22}^^-gx0ZMnrIP ze}a4Z`o`U|QGzJ}0M+p%7iRc3Yjz8DT^Io1a}NM`6$${H-9WE4007S$;ZIWlKqegk zpm)h`(UHALfUOWvYZwf`e-je{a9-O1ZrwyUH^y{h003S-4gl}Q4%gicl-X6)Whj?V5f-g2CO zF=TGyKQM@s{V$4#gB&LUrp>N`bhBcY015+zIpvAj+1X{?EUjg9!H|FCH!C?#TMrKx z84$?J%M0iw21L5qfJCIFr9r}?AW>1F8-|ekOJ@%=Zy{%QuD^@?zdB$mcMCT=7Y{q6 zGy9*qX68sw4>?ZGKaKvq{@$mRx7~j_IlKQe*3E#RKN*k+P#E-Y?Hj4=A5=yK>4Hrf4cn5*0%GuazudboUEMPZ+0XvDfQqV(f^r=t}`;Hh}!KmMmp5D>Z7mD|BBVanR&st1@+O8#%)h6~5p0|fzlP6m} zA2BYFS!uxU5w(^Eb)2S_&em`FqfI^#xA`6^a#Kko9hf=FpMVoAwbkJSSlzf^rKLGD z{fz7WCwO=xchetdyS*!39W5jUiGAGwf$Q#vbW!xic2FVP>T#DX=?TbLLN#-0POpI3 znl>c$zozz=SAsWQyFlGlEqBe$JsjTLpQ61j`D+a{;^b0E4!O%p`1Dgho6`bw@@*>U z@v?bl0b`IN%y5C$2@{|lx>$O8$wEGA;4B?Pio|Pmq$Un?>6sN_5b;!v|_jv54U$opPRV8?J0?wAbBDmJ{J zH-tGJcLkXO9;X36B6m;3!^xTZLM({zi%zx=fARA1^>olKzdAc3s2GdH1Y&B3IWih) zb5N-=q@GTCdOcmo?G9;p&ydsjP+_7T)m&bd>X%hkfjay!2JLE;@bKZR6K zU`B%iKC^^l?~~{LA)6D(-gJ>79sd&Y+B|P!)^We4wbU$^^_&ifrZZdIU687k6@G@I zxaW9uM6Z3^YX`M1oP=t_8}wHft1oO z&RN}YCaD5_v>QqXe6KEu0`BGLAa*M~M{E=q+`mjE$czf)$vcFib>=g*%Zb8D(r zS6O)Izv_wI^^Q2_^X!>*NS5Sz0?Tz{_SaE6`bYvQn{N@zj@&%0Sa^Xl>#o!%S8Hjx z3eSS;e36%X_QcCzIQKAlU}(Gda{PCDe}8jJ<7m=yxQb7Zz|>5J{}n;3E6GKLOhR_1 zLTYmQXX@X{OGaCkLxst$UPD7)m%t__c*G=qh1+0hKD(8vYr~+WVsB4RS`FH+6W6el z)uiD}qaK<(O0GVO`Pjy9mUDKp(pc=tUbkn{N|esi{!)e-&#Y9U5ZUM%dImkc+S}z* zPbp1h-4vF5wm!6VT9>bRqg6EXDp%|9avrV~v=>nBRtB=3A3JrUF>>nV-{0aLip`?c zhDg7J%D5iFCf@JXvLfn#ivJu?B4rh&(;5n3@;^W7N)>W&nTc7TaNK8%Y`HJY&1u#J z?h!G;8jT8h#oxz%q(KHG4U1;Qa*7@}M#uLhRrC~S<#CiXH|w(k) z-tse%p%C0C(95{q;262?GhKdVM6$iDqqde@y<+o{q5bdl{j$2c=M?siu|^D z@&bRmgz7BmF`sNmi?~j8Ir}jTV1dDrQFmmTV4?p^A_~i`^<+}zLb?goe+Xp z15jHl*xzdWeR}#P|OkSq|rA(f{z`*CflHw_pgzx>1^y zh9h}|GW9Zy4tH}igRi}HLNp_yTDuFee&KXKH+UW@Iuqs)> z@d?JEGC4bRThw0mOm7TMR$+=>M;@P8AWv{+2$pxOB9|_%?m5mk;k|6eKZ*C<5CN?!*u1l`>tKZ zuj3#e_Xu%ONJp@R1zt^!m>Gl%WyL;QZ9xF5VrPHXciXPp3Tr;iN?t1OqWs5y&0}|8!+f`_ypCL0dI9(FSp_whXUJ_%$Sdg5YYJM~iTMh0< zZ2F_m1{W^o+1I#u1s;ask9Nddw_-V3Pp6;yc@>fZ)2Nq|X=LgXeo%yv_&@WN3>s~T zDFp+#sBs#aEkSR{Lf>*h$cxr1KGHw;>)EKeBR^Z6CC0`&sQz;nY@aJ*GAxn^NfOZl z`e1j06y14_X@7l;pzM~aR3}o%&Bo%=fu04qeEKAINN?8fF!-fDUqHrlC#Fa(nlduH z>Dc(zN`dTsqfC);D}_f$j`5EYr@8SZrHW2!n8(0Lx1UJz!U_CSa7m&XBF=~^gS4hS zUs3r*_&}?unCN@!qel>Q`B;UK*HF`zL?|xo_w4!pvagZIW#xkF_erSVHSYCMr^b-) zk2@|OWVy#M&1&gS+{(G@$WEkE#%|%>8(lXS;G%P>Mv%UI+1z@tcQm8MyYB1(;#G`i z!&lb&WUdRbvzBrpY)J^#*J*3}eR+1=MKY=ooq@#+FPWd5edQSPF_#CnpzgPLY{qCs zABzQ!sHIi@CDJXeEi3zQC}e3j3h-@t z-21-QRrGmapcw5V>@clS8BthvKw6^Fh7&*PgQE35)u&2C2r90{{CujD5cL5&aj6l| z4z@OsNEP18l3kOzr|jHRdIHtN^F7|_dUfUh-sOwm_SK2l&)(Y=%uE!{{3}kIsNZi+ zvK%55e;23FApj1|)$O)jlic+(n~C3hFggvjM{fesj=Oqe^)>jLM$`IF8RFlIHt{x_ zN0oA83m>Ee{21{ZihXNkwZ2kfRH6-P?@Wa)csg?|%0YYBE3RLighC{uVE+CF(WIG{?zwCz6iQiBlg?N(Q{^N7r230!w6679 z*l@$XZb5XY9Wdk0jOaG`37(YShEZ|JTdF4K-$Kr4+-$D??47s0U^@I zybr`@zRVp zT|b6#^LWRh(3NL{#`!g8f)l-Bw$9ehW3w@;(W&fQVo7mT6y=y_uNyH>Lvrb##dKUb z@rjQ63-;am+(t2q({2%_;-|IHd-$};F~|18#B`=4oToeW^T;@!VR}U9?90m$I~`4t zieS|XHU<7i%}5jyYyy+RK`K)U4Rgg0^&C4fL#L<~y)Z@IuSW*;$*rAj_J<}$Cp_53 zrZo5JbRX5J@>eR~6sM^|c;(hjHzx8%qpv<&O*d3KuD z%~&672kh(kUKKOq~vL)h$}q3q&C~A(IN}M#^1f-$gB73dmCk^j1qu8szk@ z1mj`GaG>W?dxI{kdm>TKvyH=9;ZuY4A$0!~=Fbp_Ay3h{OS6lb?7&~c0< zf|b(Q&Iwm>w~NIK;gzWpX6?< z`DJKcy;w3EctSm!K~gCbPMblRF~YtS&98U&*O_(>KWOUwv(r>r2P%%0#2W%pRt8z+ zEK&un^>H}cg!yeiN2F0CRTb)%@5`ojV0i)Y{PRzWgS!aWKvRU}Xx+0V5xPe5GQD@2 z8~mz*{O&pi90>bFfkpMuVkSy$c*>gnWeb`8xTj>zKw^RMhz5+eoT|VJAFmcy;qkJ`WF*Da-UTNl zbIUepL-J)Ikv=btk}6!BUx2^9vYBy8_h7c}>*qr{NS4AG7bc$5wBSqpd0xN}&N|m3 zW`=+16WCX0zxP4(<@xg{%!PGk+`dU2zgis4_Z+X~o{^k9!~%tn(L?S@SK&xX!xFrsmO)h08ZTLK0fGNNdJ~J>H58W+p>my^CFeO5#bgPgC)bnm?blkDoMx;QdZ2dA zRh|e^ZrmX`A!tMD?M}DI$w8g797)g2T|#fCA74wfQD?m8fn}GEiRz>i1D%s-Jh7&6 z^AiuuFWi~eAB=2eQmcjsIu|XQJufjXlR6-|Y97AE>v&9;eWyNu;?EyJsH!HoQrR^4 Fe*n)}&O!hH delta 1948 zcmV;N2V?l!r&s0y}L1Ezkh%2?3{bf_j7*Vd-mLW z79MeF{M}(#ajv_kHrBKpzm4mcj(TIdEBOlJ)5X3R_mo-?RTufwxTm}Y@v8B6Y1~u2 z1?e@w!!+Nf-avHQz+~+A&`oRcl_sSIr;g! z{Ml`{5M2Uzn}7M_l&6_DZwB+`E@aBoNdyH4dUJV?>dMap0o2^EOP6M{cW)ubj-BM% zwHh)q=6c&jk9v?VzeLDjFp!#>!h!uCv2Ohe-dOtH-4-?y6;w<0KA=jK@j-W zf_WGW2Ci4v^6IM#vDuo)%iF=>!}%;(x&Xai?>EDq{(pR~z^YYC$j)Ab*=)ffI%u@n zC@B0RB_*XSTJ##(*^4><%?UCxet}-E^L4mRx(`52_FtMYh1@sum@_8}MR8GFe4L=5 zK#Gd~#*Y(6F=4`VcJAE6Z+^R)uggCpE$t^ho9^h-=L+ccdSqGVg|vyx|K)5-PJKmX zWfhVnvwt#sF=x*nCn7wIWe>Lb~=eD_xrl zzX#xLd}3pVlAF7hl`A&z($6zkw{9hwnd!LQZX`)UQC#<0-oGbuxm+lUizQ1IaOq+N zW`A=7si`Td&4(4|x>Z%6x!H~^%b3j;UYz_qjg2<4GFNcu&{1?cEqc8US(eDkT+Y_5 zf52jCz~yoyiVp5JHe$E8FnaV;T)te%&|#0O1^`fX7u~sIMp0a}hz>@Nd5Vo2HsNx) zICbhYQ>RWMG&F?Mr@v<3zJomZ4oO zssbb9;}8Ua%a6Dawh27rr@Bm_lJwer#s|*}8fJu`kU@{qz zWrc+c=eM^}6a`6=aX1{**Wc#z&%Z#g*U{M6#Q1SziHaJ?w!EEWW~Gy!K9k+M|EdZ= zRfM7j52U*K29c5B==6HBvR-Dziho7-mQRpn8Bui5)YMFU{T=G+Zll#{c{yVa4HhfK zMaP*i;TZ(2fFKC%5mX~p73dooK}AIs!NEZYLhBr8?yZ=L;=*okq0!ca#oR!H)ym<+ zMZ^vtN>E@Rb+_u7HG4Yo@gqn`7)fPi6$J$!ss>P10aJhphv-D3(Vzh|8h;IKKfH>f zV6`@KqxL5Cw{LU!<6`#iDa5U~*|>fak|dFoG!9V|k!6`7L!y1!r3&Ev%Op{B(5FuT zqA22&q#UU&7Ji5%NdyF#NK721 z%Dgo#N23b;`n4K{4SSrjvVXHQH`{SKC5%QRf&f~rmWYUO!otFci;H3A%xP$~0u>ci z6y$%<-iOoKy8gS}5D^is3IJ3_=*!b(Ong3t3l}b9zGJ~=vmwheE>~+6G#U+Bt$@Lx zN2_feV)*bFqNAhQ`)G?Ez|EVtdVIz2+}w;T%bj+i z?S?flW=z6;-|2K(%w`Ma<==R1yv?tw3N$q}vw71yY~H+)OBX9R^~JxauD(H2Q!`Fy z>t^mj96uZ~xc#$Mr$eXHvt`S6oKB}28*~EjrV8)AyN6Fd{U=9@_9M#*SHJx)*Q;wV zn=Q1ov>?k;r}aH*(0>5NCjN+=H(zJ|{Mi%~{GIpT`?J@kJNoQoxZ~DZoW8T$js!tq zW%goLuUdID%uK!AyagpoYp)Kw%5PDo&cUH z@ymOTmKKrH(leBnp5Y%yj**-^p1?i*i=li$b5jHkMr%wEm%_X*Kc68^u>$UOB(pHg