From 17bb57505e933447bea9a863d66a7ce737f1939a Mon Sep 17 00:00:00 2001 From: Your Name Date: Wed, 3 Sep 2025 14:41:55 -0400 Subject: [PATCH] bud 08 implemented --- 94.md | 58 + IMPLEMENTATION.md | 44 +- README.md | 67 +- build/ginxsom-fcgi | Bin 197280 -> 197776 bytes build/main.o | Bin 105832 -> 108808 bytes db/ginxsom.db | Bin 32768 -> 32768 bytes logs/access.log | 20 + logs/error.log | 6882 +++++++++++++++++++++++++++++++++++++ logs/fcgi-stderr.log | 2 +- logs/nginx.pid | 2 +- src/main.c | 444 ++- tests/nip94_test_bud08.sh | 238 ++ 12 files changed, 7610 insertions(+), 147 deletions(-) create mode 100644 94.md create mode 100755 tests/nip94_test_bud08.sh diff --git a/94.md b/94.md new file mode 100644 index 0000000..4cd7c82 --- /dev/null +++ b/94.md @@ -0,0 +1,58 @@ +NIP-94 +====== + +File Metadata +------------- + +`draft` `optional` + +The purpose of this NIP is to allow an organization and classification of shared files. So that relays can filter and organize in any way that is of interest. With that, multiple types of filesharing clients can be created. NIP-94 support is not expected to be implemented by "social" clients that deal with `kind:1` notes or by longform clients that deal with `kind:30023` articles. + +## Event format + +This NIP specifies the use of the `1063` event kind, having in `content` a description of the file content, and a list of tags described below: + +* `url` the url to download the file +* `m` a string indicating the data type of the file. The [MIME types](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types) format must be used, and they should be lowercase. +* `x` containing the SHA-256 hexencoded string of the file. +* `ox` containing the SHA-256 hexencoded string of the original file, before any transformations done by the upload server +* `size` (optional) size of file in bytes +* `dim` (optional) size of file in pixels in the form `x` +* `magnet` (optional) URI to magnet file +* `i` (optional) torrent infohash +* `blurhash`(optional) the [blurhash](https://github.com/woltapp/blurhash) to show while the file is being loaded by the client +* `thumb` (optional) url of thumbnail with same aspect ratio +* `image` (optional) url of preview image with same dimensions +* `summary` (optional) text excerpt +* `alt` (optional) description for accessibility +* `fallback` (optional) zero or more fallback file sources in case `url` fails +* `service` (optional) service type which is serving the file (eg. [NIP-96](96.md)) + +```jsonc +{ + "kind": 1063, + "tags": [ + ["url",], + ["m", ], + ["x", ], + ["ox", ], + ["size", ], + ["dim", ], + ["magnet", ], + ["i", ], + ["blurhash", ], + ["thumb", , ], + ["image", , ], + ["summary", ], + ["alt", ] + ], + "content": "", + // other fields... +} +``` + +## Suggested use cases + +* A relay for indexing shared files. For example, to promote torrents. +* A pinterest-like client where people can share their portfolio and inspire others. +* A simple way to distribute configurations and software updates. diff --git a/IMPLEMENTATION.md b/IMPLEMENTATION.md index 8cc278a..3de7291 100644 --- a/IMPLEMENTATION.md +++ b/IMPLEMENTATION.md @@ -175,14 +175,46 @@ This document tracks the implementation status of ginxsom, a high-performance Fa --- -## BUD-08: NIP-94 Metadata ⚪ **NOT IMPLEMENTED** +## BUD-08: NIP-94 File Metadata Tags ✅ **COMPLETE** -*Optional feature - not currently planned* +### NIP-94 Integration +- [x] Configuration system with SQLite server_config table +- [x] `nip94_enabled` configuration key (default: true) +- [x] `cdn_origin` configuration key (default: "http://localhost:9001") +- [x] Centralized MIME type to extension mapping [`mime_to_extension()`](src/main.c:2024) +- [x] Canonical blob URL generation [`nip94_build_blob_url()`](src/main.c:2055) +- [x] NIP-94 metadata field emission [`nip94_emit_field()`](src/main.c:2201) -- [ ] NIP-94 tag generation -- [ ] Extended blob descriptor responses -- [ ] Magnet link generation -- [ ] Metadata compatibility testing +### Image Dimension Detection +- [x] PNG dimension parsing from IHDR chunk [`parse_png_dimensions()`](src/main.c:2065) +- [x] JPEG dimension parsing from SOF0/SOF2 markers [`parse_jpeg_dimensions()`](src/main.c:2089) +- [x] WebP dimension parsing for VP8/VP8L/VP8X formats [`parse_webp_dimensions()`](src/main.c:2141) +- [x] Universal dimension dispatcher [`nip94_get_dimensions()`](src/main.c:2184) + +### Integration Points +- [x] PUT /upload endpoint enhanced with NIP-94 metadata +- [x] PUT /mirror endpoint enhanced with NIP-94 metadata +- [x] Configuration-driven origin override for CDN support +- [x] Conditional metadata emission based on `nip94_enabled` setting +- [x] Proper JSON comma handling for optional nip94 field + +### NIP-94 Tags Implemented +- [x] `url` tag - Canonical blob URL with proper origin and extension +- [x] `m` tag - MIME type (Content-Type) +- [x] `x` tag - SHA-256 hash (lowercase hex) +- [x] `size` tag - File size in bytes +- [x] `dim` tag - Image dimensions (e.g., "1x1", "1920x1080") when available + +### Configuration Keys +- `nip94_enabled` (boolean): Enable/disable NIP-94 metadata emission (default: true) +- `cdn_origin` (string): Base URL for blob URLs (default: "http://localhost:9001") + +### Testing Status +- [x] NIP-94 minimal tags (url, m, x, size) present in responses +- [x] Image dimension detection working for PNG 1x1 test case +- [x] Configuration-based enable/disable functionality +- [x] CDN origin override affecting both descriptor and nip94 URLs +- [x] Mirror endpoint NIP-94 integration (network-dependent) --- diff --git a/README.md b/README.md index a4f0d26..7922a1e 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,9 @@ A high-performance [Blossom](https://github.com/hzrd149/blossom) server implemen ## Overview -ginxsom is a Blossom protocol server implemented as a FastCGI application that integrates seamlessly with nginx. nginx handles static file serving directly while ginxsom processes authenticated operations (uploads, deletes, management) via FastCGI. This architecture provides optimal performance with nginx's excellent static file serving and C's efficiency for cryptographic operations. +Ginxsom is a Blossom protocol server implemented as a FastCGI application that integrates seamlessly with nginx. Nginx handles static file serving directly while ginxsom processes authenticated operations (uploads, deletes, management) via FastCGI. This architecture provides optimal performance with nginx's excellent static file serving and C's efficiency for cryptographic operations. -### Why ginxsom? +### Why Ginxsom? - **Performance**: C application with nginx static serving = maximum throughput - **Simplicity**: Clean separation between static serving (nginx) and dynamic operations (C app) @@ -40,9 +40,14 @@ ginxsom is a Blossom protocol server implemented as a FastCGI application that i ginxsom implements the following Blossom Upgrade Documents (BUDs): -- **BUD-01**: Server requirements and blob retrieval ✅ -- **BUD-02**: Blob upload and management ✅ *(newly completed - includes DELETE endpoint)* -- **BUD-06**: Upload requirements ⏳ *(planned - not yet implemented)* +- [x] **BUD-01**: Server requirements and blob retrieval +- [x] **BUD-02**: Blob upload and management +- [x] **BUD-04**: Blob Mirroring +- [ ] **BUD-05**: Media Optimization *(Partial)* +- [x] **BUD-06**: Upload Requirements +- [ ] **BUD-07**: Payment Integration *(Not implemented)* +- [x] **BUD-08**: NIP-94 File Metadata Tags +- [ ] **BUD-09**: Content Reporting *(Partial)* ### Supported Endpoints @@ -55,39 +60,6 @@ ginxsom implements the following Blossom Upgrade Documents (BUDs): | `/list/` | GET | List user's blobs | nginx → FastCGI ginxsom | ✅ **Implemented** | | `/` | DELETE | Delete blob | nginx → FastCGI ginxsom | ✅ **Recently Added** | -## Recent Updates - -### BUD-02 Completion: DELETE Endpoint Implementation - -ginxsom now fully implements **BUD-02: Blob upload and management** with the recent addition of the DELETE endpoint. This completes the core blob management functionality: - -**New DELETE Endpoint Features:** -- **Authenticated Deletion**: Requires valid nostr kind 24242 event with `t` tag set to `"delete"` -- **Hash Validation**: Must include `x` tag matching the blob's SHA-256 hash -- **Ownership Verification**: Only the original uploader can delete their blobs -- **Complete Cleanup**: Removes both file from disk and metadata from database -- **Error Handling**: Proper HTTP status codes for various failure scenarios - -**Technical Implementation:** -```bash -# Delete a blob (requires nostr authorization) -curl -X DELETE http://localhost:9001/b1674191a88ec5cdd733e4240a81803105dc412d6c6708d53ab94fc248f4f553 \ - -H "Authorization: Nostr eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." - -# Successful deletion returns 200 OK -# Failed authorization returns 401 Unauthorized -# Blob not found returns 404 Not Found -# Wrong ownership returns 403 Forbidden -``` - -**Security Features:** -- Event signature validation using nostr cryptographic verification -- Expiration checking to prevent replay attacks -- Ownership validation via uploader_pubkey matching -- Atomic operations (both filesystem and database cleanup succeed or fail together) - -This implementation makes ginxsom a fully functional Blossom server for core blob operations (upload, retrieve, list, delete) with the remaining BUD-06 (upload requirements) planned for the next development phase. - ## Installation ### Prerequisites @@ -302,7 +274,7 @@ The nostr event must be kind `24242` with appropriate tags: ### Blob Descriptors -Successful uploads return blob descriptors: +Successful uploads return blob descriptors with optional NIP-94 metadata: ```json { @@ -310,10 +282,25 @@ Successful uploads return blob descriptors: "sha256": "b1674191a88ec5cdd733e4240a81803105dc412d6c6708d53ab94fc248f4f553", "size": 184292, "type": "application/pdf", - "uploaded": 1725105921 + "uploaded": 1725105921, + "nip94": [ + ["url", "https://cdn.example.com/b1674191a88ec5cdd733e4240a81803105dc412d6c6708d53ab94fc248f4f553.pdf"], + ["m", "application/pdf"], + ["x", "b1674191a88ec5cdd733e4240a81803105dc412d6c6708d53ab94fc248f4f553"], + ["size", "184292"] + ] } ``` +**NIP-94 Tags:** +- `url`: Canonical blob URL with proper CDN origin +- `m`: MIME type (Content-Type) +- `x`: SHA-256 hash (lowercase hex) +- `size`: File size in bytes +- `dim`: Image dimensions (when available, e.g., "1920x1080") + +The `nip94` field is included by default but can be disabled via server configuration. + ## File Storage ### Current (Flat) Structure diff --git a/build/ginxsom-fcgi b/build/ginxsom-fcgi index d67fe13492e2eff735bd44fd3da4df9b25d6ae67..9f2cb772458e87ab562a0264f0eca27b3a663759 100755 GIT binary patch literal 197776 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%0DQp!PdC7ijdY!AkUqu~_OeNmLdZ3i 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 LpI2ZgoSOdwF*wwc literal 197280 zcmeF)d3+Pq{y+XP*a^rr)H-Q-iP=T={K@p*t|BmJ2!q54$ob@mhbR4++?8ZMny>-A7y6Y4MdNmzep zKD+#+)9Fw9de-(5C;@%CtMz*6Py2eRZIV~&21wr6@iQ=1uNR!4Khx`}D7BvP3L5V1 zj-Ngx)1T?~RAp3u{Af@9^r<}MC;iFm6=6O89HUn=(w}M@>gTL)N~Zrm*muiSAFW+~zH#Bb+duhP#i(+tbySS{QTd_EGwF%)O~t78s4yM~$XZ@yljP4i@~5eA z{hW1sCbF+j-g$NQQ=|IaF@F3i;a&b*D;e#zizSbD;^#_%b`?LX6Cc+}K38=Tf0vYH zSNVV3i4T`X+g1F+PU4U2WV>!@ZCmLI*FguNxeLs#DCFA{PIrX!=1!0>7*T&c2fRVI`Ka{@mMGA zIir(uUerl>7IYFH?WA7kb+X+#o%py;w);{i^{VKkJa2STo=ZB3|Dcon)%0Ok`!=p#OHUC|GAxbw@&gO(Mi9b*-5;F8y@+?Keu%f|3@eJ&yoyw zHQo*s_i*NtKDrZsNqkrNjOt{+xJBCYkX__Ixs&oA(}_RRNx$4IdG|H;Hv&yk0QpJJ z3ymqclO{}=URYc>bJqNl!s1C2M$eu%w{X(bi)R-aQ>M(EGjHyc`6W|}OQuZGp}Pzm zH+p>Tl$>eP3d1Fa^?gQh;neB+Yq)sU+>#mK%Zq1~6yp1g*`@P~@Et)@W=xwoYs&m_ z(0Sp)x%fJ5_PqIp#{7THmi32C>6lVsQ!YC;vsCI4&LpPIn_W6*?i4A*$l)2hc-GwM zM1{r0bLP*?M1+eA!&8e3?b%u@%`KfhI}$ESKCLJIx z-M(o4w4%B5ii_vZnmI-O%pE4pm07K9-rU)e*{<{KuyB51@hnt1v$kwhvQovlOqR~D zmsBu3byo3|Odht4rt9~QlD6kpa(Us@OQ%eoKHaujdlh$8mh=Yyk!gBs#Z%`_pEt+q zvrGkSP4kZ$6i%C7WK1h9o;{^->ijEY;1y1tTN<{>thuvFY{~hBCG%t_XkQ~-SUh81 z@f@4XEG(Hdcg8%~yQY;~5iXokGH>?0%L|LA%$_$*S=rPn?c=JXcv?}hAxoytE}1o_ z(3mrIwhEIyvP5F#nnl{)+B@e=oi$guc-kBp`tlLJ!YG|9mok@1n55?lOqo`6saiI7 z+EnQ;9al0>+P0*)WS+G|N@C0@oFjG6aS|hI&(%ApwYu!rGN?+5<^MWFwjjdT{n1VNBBCa8@{_{-m9z)o#v*-wOZ(#9NRvMX zcacBu((!KcXA$oqe;Mv2e+}*2O++W{AhSR`LXZ@^5fxg@*H?0`FMB} z`DyTG@`>;S`T1~@d@4LiJ`--p+b@3tq#KY7t{+Uv+mj?rFE{xR}zAWy*KP-Zk#INpv2YLhD7cqAr@t(d>Xuf{1SK(c`-apeg(XYd?7qS9)(wtU%$6*pBVYAh_4~P3tmfp zKfI3o5qLfMlkf)e7vOR74~FP+Hj*z#d=vRfcr*E0c!K;LxXHes-foh7BjQu!&2Zyp zy$UPFEcyq5eNcpdpg@OttY@CNd^ z@HqKp@J8~h;Z5Y_@MiKVc!K;ExJkYko+Q5)o+5t;Zrq~#KRy1RfIG;ag}cb_AF0=O zlfR635BaNbFZmj{kNhpTpL`=cK>iUtNd6f-ME(stpS%@bK>icFi2N6LnEWqz8F`OA zb-P8#d&8^9`@&=7Zg>s(KzJ?rq3}BLBjNSr$HE)P3ruwf*)ZbdqY&Rnelom?d>p)) zd;&Z{eiqy$&xa?;r@&L>GvP+8~>5i^x~O!{l$l%g8stBjg{$tH?ix$H>2e*N}e)uOg!mx&#qbdMOn5%|Y1g|2$4IU%E3tmJ1Z+I>FQg|KtWAJ+Nr{E3bFT&&GufQA0 zSHhdf*TI{~--Rd0--nyzpTLvk33!V9JGgOM$ML@v?jYX*caiUeyU7ig&eucU3+^R% z!F}ZW!u{k2!UN=k;6d`E;34v%@O*MVyny^9coF$nc$nOMv~Gto@(GBKkWYkHk)I2X zkxz!#kQc&h$!Ejs$mhfB$*+VrkVoKg@(Oq(c{RL={5E(q`Q7jY`TcN{{9$;K{7HC< z{5iOBd&lwL0C$kT4tJ5SfxF2)=ywnKn~3+4uZR1{H^KenNv|$z30J`;6}*W2O?a4m1H6pzQZtSJw3cfC%+BeKzYpNZubFB0m70Pkt!8fc&YEx;#bXMO$ZuY&u@-+~9oH^77BAHhT9pThIWzlIl(oA4s? zBs@&M171e{7d%4VqrdKtD)K(?7zF@{egP&Y~06aAU_iM#L0)i z8_7q&o5+ucHgM2XDMLrDfCO;nT zAs-F*l8=Y`$n)TS@=5Rj`33MG`Ni-M`7C%o`Ar_(E(PTC5MM-I0uPg41ur9yz$4_> z!>h=v;W6^t;WgyA=e+2Ojd{5W`w{N*EbJJgVeaeYxs zelqf@BOed1CqEtDK;8xO|sk$tS}Tg2%{>0T}<}J>j+Fd&29;_kq`w9{_J4KNKD(KN8+Z zJ`~!O#TAAjQlltgnSjeio6jX zBYzKGL%s=KOa3{$j(iKeo_s63fqVx%PW~snk-Xb}x*wa!cZWBV_k$fJIGIjyU0hw-Q=gjJ>+M?z2xV?edGmjKY0;6Kt2y1Brk=B$ghCs zlP`o9kQWTo?Nvlxh4?Ue3|>Zl2RuT4FT9HU0eFl&7r%F0L;eWjYssI0*O5O5uP0vy zZy&P#I*OR}HzW+&n72@OM*TEafqwps3B^VFQ zw~+B2U2c$-jjckpBQLBL5j4CjT8?M&1UGkas&k_eT}E10Eya6JA5U z7rd5y9r?b9uO~kU-avjRJWjq7*C~zUUc@(%9|LbD9|=#8p8z+>N5hlkx$qSE znQ-I5j^jTc?jV1?MIV1$vCy&4bBo$xyHd*Suu55gPB>)>(nr{Rs{FTk6~Uxhc5uYxDY8{sDT zdU%rj19*!3W4Q5f$MOFK+(G^|+(q6BcataK9`aw{Uh+TSKJsn{>GJu>d&2|dec?fJ zH#|gsAUvP^5O@K(7hXg@1Rf?I4lg4=9v&eNz^llE@EG~&@EY<-@LKZo;C19v;PvFw z;SJ=o;c@a}cq94c@FwyF@MiLIc!E3%H_2~-C&}-Cr^xSv8%sNm|5~_%{9(9@d?S88 z!cG1-;yvWgz`f)z!F}W_;C}K(%wq%Os}Ub0-*C9DXNdeQ#OISY!3)U$M170Mufug# zn7kSJl#zc9kB~ot`9>A_7R1NMTj4e2Kf!Cse}mVN8v}Lw)RXswH<0&%$I1J_8_9bf zqVsPeAAtB~@`Kc-;Wgyb;I-tJ z!t2P3;q~NK!5hdI!sFyO!W+qNg*TDk18*jO0G=R!3~rLw!;|DM!&Bt1!;QL*<9{98 zLB1aDBHsjelfQ!f#Y6rX;=Sa)lQ90tzd^j8d@DRaz5^a4{{tQ(?|QJ_Za#T$cmerd z@FMa7@G$uy@G|nl;Sus7@G9~V@ECbEyoUS~crAG@ypG%)uG^uW{7l3*ke>sOlV1pL zB%cOvBEJOQOgL$2yMxYPf^^R=A7&PPm)=Ubu(cjpyTD z@`n)bBYzC;Cw~SWAb$ZKB!2}SB3}j1C%+K$@B;F6h%X{+pNo5%O}xSCLo2W8^V-4f&n$TJn40 zb>t7i>&YL5H;_LCkCQ(SZzO*O-b5aUHi1(7;2=|f4;C}KNc!2zVc#wQ4JVgEkJfHkIcmeq`coF$Zc$oYR zcp3TI@Cf-vcoq3a@EG~xqjmq)kbj2wTJo>pb>!c{>&X|7()l-#Z$o^X{1c7hXVqG5WoT+=uuuc?$Qz%E*sHe1!aDcoq3*c#J$3UPFE+yp}v4UPnF|UQb>K zZy=uqkCTVtjpSwUCh}|H&Ez-06Xex!ll(S#lDr0R*POMVEvj{I%dA@-RG1KG~_;w~YKU#7D?i;k~9R@~aRZBVP!wA&yI!^7l z#yF3V55W6rRpdt@pBVX2cn!H9UQ2#5ypH@7+;6WZAB*?~@;rE)d@aU#Bl($#Zz9i! zHBX}A4=kN&m1AFNHs3PBj_!#*Q@EYLc$Ny-!gFF}RA`ijc-V`543(kWYXYkxzn$$uESLkxzq1$S;Lg zk3ojC%+TkKz<)QPQDc0Nd6?eiTnk4Gx>6Of_xR+B!3H@ zB;N>6k$(&~Ug|jhH^Uv|EpQk4PjEN+Z*UK}ag^Skm)rsOk-Ol2@_pa|@`K<(@l{>k4&K0fmI;C}K=@BsNsxK0m}pN{=8ME(i#$tO?13&_8L7m-iS z(e(C@&)i9c{w~pz6hRAK4?$fE(PSbA-;(GZg`mdL3kPY zWAF%hJ-mwiWq6GI`ti6lPQDr5NZtZ(B2U7b$$y6@ z$c@3eUrh2|@Fe+O@D%v~xUsC``1imaF?m#2^aub>s`+_2lL72J$F8PJT1Ik$f?{iToaTGx-DX1bH3YB;StyN|M(jK1J?! z>3%nscO3sOBi=#&D%?fB8tx|FvWL#sL;fb>z2xt~edL?qe)7-Y0rGE;(c2A@Z$^BG z{9AZF`S{;I-rj!|TWohu4!I z4R0VH29J~b;f>@c!<)#*z?;eQ;0f|caFhIec#`~Lc#8bC0lNK-SM+Ck{xcKt4)Qs0 z7kM$Y-@t3he}LDK{|v7u{{!AY{%~(SZsO$Kar|i{?*(rn?+b4x zcf%9p2f|JALGUE`(eM=cv2f$nj^qCXxP$x@xQqN$xSM<;+(UjI+)F+M?jtXR`^jg+ z1LVc5P1ZiPhJTxAYTM8BEKCTCcg(>MqUe#kUs*iB7XuNBYzHFL*4+dC4UWG zN4^?fPu>V`AYTuUlYaznB>x=VM7{;yO#VGQLB1VslK%=%lK%})k^hDJc*biT$A32; z(&WA1F7l!K=y*4|6Y(DMec)d5{oy|HgW-O1FFZi*g9pivgNMko;rZmJzzfKO@FMav z;9>G};br6(z$4@Z@G9~d@EG|Vcn$f#;I-tJ!|TYehS!r{2X7#+g2&0L;f>_C!JEiy z;LYT<@C5lIaFhH=c#`~ic#6CMZmj4y{$GbX$k)JKLGs*@m}&xa3A@n za6kEGc!1o52g$d=L*zT)`Q*RD3&`8xMdaOw>UIp1_kx#^yWkP>ec@H)2f$PRu;(EEKj97JU5?e`CQjZH z-blVDyotO&yqSCeJVEY(o8(@2l6)vUMec_i@s8s^0C$j&gS*J{;BNA-PS*K)$j?H& zm;5}qkNkdIr~ApLAU;4o9UdgV1Rf&aHcXc@pFE8C0`gLL5&6~dF!^=xGV&^Tg#2cB z75QR#jQl=$4f%ucTJjSH>iX7^*CD>1{AqXt`OEM)`3iU=`5W*i@^|3PU{;4tJ0n7$+|Bo^Ut06Ye4J2ltZi5BHHD0{4@9;Q{hR_&tjt zxexIn^5fw7(5FaBigx8Q?3a=$Ef!C2Q zfY*~(z#GVKg2%}h!yC!(gEx^s2yZ5T6rLb|3T~1=4^NUWgQv(}ha0Opj{h}q2l-oY z7x@OboBSiVhx`k;m;76}kNgL?pZrt&-cW%2XT%4|cfv#D6L9^WPyRRJ3&?v6*X>nA z-Wwh!cf!la`@tjR`@^fqJ@6R$VelIA!SGu0W8rn=et123HoSqn81Hq&$xlIiBY7^o ziTtR5ZqH`&5aJW$XTweM^WjPIDex3|A>3Hqar|EbcaVqSF7i^ioBV3Hhx|IYm)yj7 z_L1L!ct80~@BsN@c#!-ac!>M~cs}`~@B;Fu;6>yw!o%dR!pq24!XxDC;8o=Bz+>d^ z!)wT!;kD$S!|TX5!|TbvgEx?GgU88tz#GYT!kfsuj==aQcfb?mF1ShF51u4H5S}8> zf*Wf(j{hU!4)URJ7x@y*m)zvXBi=)v1NV|YgnWGDxrq0Z7aXF?9Uwmg@j>#l;UV%1 z;rZkj!wbkSfftd_hlk0_;AQ03z$4_>!>h=v;W6^t;Wgwn@LKZw;C18=!t2TF;0@&U z@HqL)@J902;7#Of;mzc4!xQ8i;3oM?d+PC!BtHcAb5i8Z$j5l2BYKN91of&3iA$H^~(H zH<4coZzlg2JVAaL+$6smo+Q5+|Gk75 z;6CzaaNhKjKacnTc>_F1{yIEFz80QOz8+pc{vo`G{BwAi{401Fc`H0Z{xiIad?!3c zZXBokuZG+KuO)ZF>&W+k*OMOvZy+B8kCPt>ZzT7@o5)APo5^S3`YSPL@$)}}{ z|Kx-49$Je0L~Pes*Kz!hhC9f+!d>L2!QJF%!9C>X!@cBF;Xd;EZ}sunPd*dz0rI)< zAbANqL|z8ZC%+b6Kwb$iBCm#r$!~*~k=MW@NU&dI&4dl1LAa=7tk$MN5Q{&kSQj(8XOTDY71Y1G$4{x0IZ|$oGOr$ldTN@`Kvcy zQ{l#29mjtW+(AAM?jkRNyUDMDd&nbjFL@>0M_vv0livmpkk`P2Z}(B%j<<9o9hVe`8Mxn%csER-ECfEbG7aCPuS+FZ_+vw3fu*Vue_o7dWW51ZH7ypPT6ZN8_?8*J{hdEDkM zn>X6Lug#lmzL(9LZN9h76E^Q>bJOPiZJxCGJ~mI;d|#Uz>)XeP+vX0N53sq*=KI;) zZS(zY?y>m+Huu{6K%4t)evr-mHXms7fXzKN58C_?n}=+EsLk_jo@Mg_n-8*ikUm^<~24y+UB)3A8hkFn-8&hz0HrYd4tV;HjmqU zsLdN~eyq)#Y(C89%{Cuy^MuVu*xa=FNSh~Zew@uyHuu}yz;RU_lSbLxVe{i{?y~s_ zHh0_nM4NkTo^5ll%}=tq&*mrF+;8)M%>y>iv3bzur`SAX^U*fXxA_>G7ubBP&5LY4 z&gNm8kGFZ5&4V_N*gV(fRW?7(<}sV+*}TT)6Kq~<^N`K!Y<{NA|M%~!cz2(_VT3rZiZ+Re-Ru=%{$ z%fd`rom{uK{40}I6aDQiQ!{Bb!Qb9;W+tsB_S;)>GHErT-`+AblU5V??JWmq(rN;~ zy`^s^ttRfX^;HvfsedM|Cg@WCOj=FMrT&?;nvhHVGifyum-=VY zY633x&!pAFTk4-ls|mN%Ka*AyZK;1IttQw~|4dpz^{XJHCb0&STmEMp^s|mBzKa*AyWvPEAttQA)|4dpK{NvjF3)IXC}6J4o)Caos8QvXa^O>Cw9nY5bF zO8qlwHIbG2|Cz48n!rl`XVPloD*c~Hs|l;rKa*AyRjGd_ttO~a|4dpYqug38U0MlU5T&sedM|CWuo1Oj=D0rT&?;nh;9;Gifyu zl=^4VY62+r&!pAFPwJmZpK7IZGHEpdl=^4VYT_sLPp9SRwp9LETIWD1mpY#9BE5u` z-$CiW8B{Yl+sHmeFvqhDP2kF1(YtO z^c+eTQu-oFpH1lrlpagzY)X%y^k7O4qV$23?oa7HlCY*> ziPG;<`VC6IM(GzR{S>8_QhEuc@1S%wr7J1DfYPOuog=Jv8O98& z9nC}K>?;{m-6qHCyy$P{G_|Sdm%->8X1;vQjjjn+Zgo~XEOSqpv^p#9l`nbKgAe#i z($OFDqT5V0KdOwE&XLXk{in+0JFC1Z_}?m6((7gB6pXI3GWc4|94u3-WsTM*zs-}% zR`>t)cj0~HjB4I0=R;XJI#=d}i==uoNp@dwQO<=q7v)UOnX+1!TQ;`WPOAv!W~&CJ zLxiru_Sfr5Rm@SPt{#z)yj3w?20y0jFi)aUhb4MRWu+8pxtbQsT3w~V)LIYh)b-1) zo}IPZ3U!WFU2>GDRi8SwjU&upb)Wjas-gQIrLwIa(O-R(rvlE3$rAB;O#U)Q%8X)} z`X*sLtU{^Un*&D~MoY0YPYNlGtN#ko$JF5Q;jOQd=5IkNU} zS=%`W-At8T zb@okvTYjFTTDD0+q_KY4H$Ac+O0~7ElU|o?7%hKEM&<^U`6MgLKG|-oiRVfVvesjN z$dU&ohvfl@)&<>L#+P}}?`>^sdyH2@O`6Jd%EY8)FO`Ed_Jgv47PUjQH#V-fhHlM` zZkQa5eiba=k_=56J2XD@O)0LL@3r;+d2<(INBb(`=gBL-!Rj6p)yJq*Nq@Pt+a^Kk z(ymuq!Z|P^WinRdQ{s=X;zt~!K92Z17)=IOZaX=+GSw~EWo>Z7-zEJdgV&IOqb;Gw zd3t>{Uy5W8l68&Jqs|VNXP+;TQn_zR_6RP@enb-H-M>m>O_#E+?eUkSyIdseX11@^ zZ@F9+rpq;>y)J6psO33l2c6Gsm&4Fm)|G1Io6d?mRJ$(9aRj69=0^X@jqV68iq=@R zKMfxeOaQlFfC# zG`df)dVZf1J*9i2y__$N>k=$q+vP-0$&M3yl_XE>bJ---h3i)S{izJ4nDeEOERT1I z?Cf*-&q3!y8;Z9Ek4Ofis~fIWn;Eq_=p5f1tX|++7E$TwC+0oU8f(WK=#pK@s+RPY z%!`BTR;dh!ekysaDqhn14z{0j&d@h=qkqdV`shc)$T>SV`b&XIynxlmeE#^m6j98BHQgGcEQXXQ9GfXdf+$H?~e(RFqE zm9r)erkEnlXV=S8=#Pz5nps&2-T zyy*AVLhHX8VLqB(Vjd`EDo;%>@mqoBHCCs~7R@og$lf_ovP91$x3~4?mCI658)i+%=>B)}$^;^2_%sEmfTYs&Wq;7-7KX=k!SE&W| z{*u<0UESVaMca4LUuR{|)?bsQAkts^Z~f2xW&V)qui3JB-Cu`f%4$m1y1!16DtFdj zmrEx9Rev2Unf=f7ms9muSE=iN?60Zms{NzC#;2E@c_d)JcE6trq;} z{%T0>qQ4%>psl~2mX?vN9}mCR$HQmSRr^PO-PK{q zc73E&H*w7c=_TgRlD+E5k-Bvzp^F{ne$wzQe(Ol7&Kv3DWH-g?mTTw7$>g?O^y8-) zwDse+l9}|Q8khg6AD?Z>^y7{n)BX6k6x=G685V1~Ssf?WO0{&k^zkv%e_bVq|I_|c z?fE~`e^XTd-6nPXkNx*kx=R1(zmGaBvG?C==_TecDXp#l7NcVw=K0d#yXe2sitYXP z&*P?V>n{3l{|wst?=UHb^xsEP&;QhaJok`B&IZ_%qhbOFk(dxmk%z^1jT50r~ zYBsY+hb3Rx_Q=+B`g5IZ17zy8pS~8b)rk zMS8qYT1GBJtWMXn8RwW)YHDM3Sx9a;Ofqw&xT*>svkkR&n{P<&`RBJ3s>>riAJxZ| zt>zQ5q-BEIiMvR2Eax1Vjp8&Zmm@zo%$?s$cIu-4V=4TKS}EM?sut=-LYu6sYwN6d zSMYViBh~9AE96GIXIU%7g>%-9$x_qd?JM?@ClN#Ax$7#j)J1}dmMgbhxh!<3r0J9r ztT^g)OJ#26Q^&;W{-fl>+#xL?7ZWS`N)ED)Ed5Gk#k@>#Hy!+$3SNic!I|I}Mf7A) zt-C@!KrmJREmx1uto&BU!PYRVm8r)!+SH|ld4)37zuIJrhFK`K;*fOqQpmSn;bJl)TTz^5v%iQ0n0;ETPZ?kyBe!~SR!kyfCy?rP(@V^^ zrOn4yZY@15cj2qnVs*Er)Q#&X+)hz9Q!2z|*ep6R%baPd?R}@F+ZW1Liq+#mUw2(3 z7cIDEP{o-n8*6lM-Ag^>!|Uw zj3s|Cnx}U561j$Xv%~SjD;0cBvQ<0#`O<)D__}2$RtE-8PIPVhLgnUPrS+D{_)>vg z5a^LWeN>PpRjqICtA?!F1LS&4@2i{AVjUTFu2B1!wT{`U+I7(+DVJJdMR&FSqY^zq z-5rzL5ms3;n^3)`hK%`wwVJFU$0cXQ&qC=^s8Oo!G?}-iL(HC1H7on_RAG*D@yhbl z-p$qt=d%e zi11euTb34TbjO zghyBTU}R=hxw4Oh=z8`NZ`oUt=IfGYhv{7U{)4*4{ma@jawbUue@GaH43A&b{fJI3 zZXcGcR42cqsxM{EoFn9vo*oTJxesMNA#E02Emy6jD$I7(im|Y})uyt$-Puy~@LSmHwGku98(+ugmPeR;A>`GF%!Ncf)=RM%SACBtL7J z9`S>)A(u7W<>pGz?5ftVZc|G$)N9N-Q_5C1Q)JRxvVzls7%}MUd*uGmrz4TT08!w zb!3q{JU_}->*N^QVQV!4vJ31l)y$2`k)+2|iJu_#njNfu(mHag)7vsb!g8Y@hpf>l zXV^C-N^)GGTvq>6wUQjMTh8{j0I#Lgt+~^iL56Q4mm3&EM zF8AO|LbAIZA{k3heI?bB)DWHeK&P^GYOP8w(j(AzZ0)JLOAR&IrLF$b_rJ}t@{~pT zxnhZoVafCaoz1mYrX^WwtD`i{wsMwzrJc^xn|@I4KT5Gqla$J|I$O1r!0~$VF*)Q37% zqEn4(oxh~j)qUIQ7pzPr$1Qs4jyXI5aK| zYOL+?v8*e3^teqvS6llp9*UhMd#&M;W#xNh$zMOXI`q0jmdL?EigLBu-79}BDanm) zlCq4KV(Uja(Lc;3(oFgyPv))C$XD%_7yZ?oDG$Bm7H!@rbNSd1teA zcUG3ma8TRG42RMKWY2YpsQaerc~mUtRoQvkS~r+qOEaN;a?Z`vK+a#m=p;EhRJJ)Q zZkF9X82wqwm>AVX4k~||+hm598-2r?39DbIQ4cMa%d;pow2qXtdPww^q_;bdj%PnN z*)W`ydt3aSWK#H<^y`z7gTBacR;Y1mUWL_LB_TV6#N8+xGb^ku$um94S2g7j^b> zOK~elNP#lvli;E`a=h5;teh{+F7sSxMORgu%1=vn|5ZIba#n1YjmRETo=|hNE!XtQ z9ks@JlZ**9TIBqk?mC$ysqtE#Dl46)%2aw$rabQU^2Bs`X4uM8afNKzEK#Cr{i(B} zNI*U32+7!~j9dGJbF36bJ)>U$_JrPb<-dQowS|IZZ^Oy4W z2B>fdo84rCxQbM*yhExdmsTx5Si5b&ntC+I1B5nP{ml2QT&$DRI`cVM1Em||9AmaT zCu=sy3T-XlSb0eP@?*`{@ld+s?kA5BGEW)wu3_zd@`zYglbuVROa!Bwma9EhRd$#> zJ+t<_lB55zD>*B#mvv-!a_ikGy*F9y^qW~XM`dWuG0stSbu_3ff7AQ%G3KaOY)OxK z;|g^Nq@GLkmD#sE3{+3EOZC>(*BhtHoJ94R-c?)XT3=ODwM>)0%p<>)DMaS^t5yF= zL*LYwY1P?NKU90c7CHQQZ1tBelFD08S@xIJW#}LNk2@NwhUIJIj)q(?wO?;p^GIB| zxTM(Wx#~M|BhzgA+{$ZjE65!BnH*T^(#LT%c{RWILf?WIpo(P4iL&|D_u9*Esmuqn zBrEJw@5?dZ3^`HYY02Y~hZH#8`igmse6`J<(&t+_n92+$Sh-OyMI4Q#d#HnK&z532 zBhQG*QQNkLo^S0se!I*R|C{(?nehHM@!QqK#D7tq>*O-3v-meloKnfM-Yo~pb+&b! zv(8Rqus_HXztq`hh7)GE#~>n6%kz#3@htWYFRq2$c|_$ShHGH_&>x$R@Mmv51; za@Lm%N3&WEp)%4(sS8(+j4(OEo9D?>&9$Qg))`9`ru~fNmt9PiR~-}5?@!2SEu=Ot zPhI70kLpmH*&-WJyQt!|W4g5&tuLDWW$an)VC@g`ii)}v`{y2@&T99lfi7n?88j6) z%Xc}iS$jtNK6K#w)|tdi%1$SRpJxqkzNfdh+>12-mbzQ_^mLHzYV9k1s<=osjy3S# zm(0}NxXC&>TncREYwm28JwhHqS4df`?ed=afUw>(P3!rmo`*}Oa^1Dnd_}GPj_rJ7 zJ-ISp_y`-e$`S2mK9m7DAsg$g=Zk8Cc>MUVYE*p;>u=qEYm;T>HIn(-^7coVIr@g* z5QkmtYprc!nG{TpP%rIMR8 z{dv|_@??x=9`EKwTjcoA<2yM%tT!ft>b^`BN#BtfD;ZdkW8^Mk581Z4Ivs32rnXCm!3ou~y6aozdC_;} z9{C@*44&bf*W(hoXJy^^%8S0K=8En-nKyKt>*5NhdSO4+AhOt-Tb<*`UAIs*kor+2 zD*sMiwiuJ;krUGqzb{;=UZh#s(oHUia-4m0x~na@WJ@{g)NL`jhBXF~L+;G(=Nx4IeTHMi_k?O>g2KmMbw?Yzl3 z(RFIFwnnY3CPnJ^|E+spS6caw$qMNV^VC#(OqS2wDDx4Ou}=-QQaSd>At+zgRtvND zlv}6HTc(Jry*FfSGcUR}N8ehO&h*GV3|Ur@HOVTjs{1MO+JzZBB2`_b>K;5|ZM1Qv z*)6*A=it&{xy&UEXT?EQhVtDig}j3`Cd+UBF4Hnq5Wk!i&yj0(RfrQNW%(B5V%sHI z-v7AaacaX-x?OKux>T-yn{vn;qbBO}dNj!G zPQAViFl*$!q-5P#-|X4*F1JRV3VT-J+Ofl}ap-BiU0+{VJyoJ_o1P&zqU2J<=akWq zS1se9z za(`8(IOq*$<#m#C%ZKUhS=;z%mqXcQo+~FGwVq3Qv9E0eIdAH(T3QCG?*HS}P*)E` zX&kuBK^TKN2dVNXy)!s(DwkrY9MnE_maM9>I88qFQ9h8Kr!IS2j(N9yU@fma3Y!RE zq8UsdyuaNnQFp(ub5Z{?hbl0Szn5+N~_+nw6aodSlLB7pyeoa47U2)%2aoPw4ZgouGTqQt)p7h z-kQ}Xi~f)8llu2f(&cVZM=?2Gqx_W<|CC~`lkH{Z-~R)LA!(47VbV8hJ5o70to^?~ zw5U8)3#ZGe`|p;3Y$j8;`PMeok=&}E+7I%CTK4bg4!JPDRkCWSZO@PLum()f{wPDb z-!RuU=`kHNPu!@_q)s)mg60xQw%jGzSxGs6&R(z1l`AXb*L>0bWLj=>42`cFtIB6s zPc3Eo{D<80#6f6XW%@j4R=+35sE5tVWWeh2qvod*D&LgrliN~i{O;=d#CAW%eo4FV z2d@;~c2!rA>WQ4kacvrq-8ahZ` zG9MzdSL=4YTK3bs>Xp#}>Xh2rJ3T)ex>arIoU`TFH$`?*a}ViR+l)rvpOY8X)vq+F zx#wb8TP{W;C(CC3a#mcfs;VB=O8Js+%E-7-Hey|!J1b|&GPT_SLcwf9qMSF3S62Rp zV|g#V&Kt6hiup$RS+7>1&QQzcq@%K|$Kti^i+k9%cqbM=+P+wxj2p}4)S%XmU~yIZ z;&p0qPrbMhiywO@vu*VxD82Y}EWWXQan!c>I4r(2y|`p3S}0ZrJpNTkLZg< zBQlHp>9ziB)J?HpX3>G^MJ;-fw7dD|+iJMvIPX{^vu%gmY|uBV^*xIWw9j|b_jhDy zs|o3!^3HGceYtik84@{3TK<=k!&aQ2nnU^^N3zzpVPt+L=Zf4Tw&j-peXa9)_2|Po zAI_AvUok|&)n({L)vfB-eWqxnOz!ekSiM_a)Ft!s{I<8+v)oH(IYC`F9we*CE+Bnm zzM(h1MRLol9<Yf-uv|qj_Ou2WX8f1 z+L}xJ3r`rIJI-Gc)Su1@d8yG@c*3C2m~qaExGF{Upw-f*nfIr2Cd=io%%>t(byb_Z zNir^drB%IzULnykpIdlU_v5CP*2}V(ENfkxIUY%aWlvt##aI@RFquM{E8lEuJ7sNm zpCs0uD({F(&zAOY9jK4fYfovD9sPTGKm4PTJ)AF{(k3rdx5^9E-$}-9$))8IIohc6 zq71xLqcuue)Gv6bw2AaJl8#)}eXy+Zqcn}P@)%jidf3rEzEycgO?6f})S~h7m+j!y zet)a2YaB!4?e|ga_lML8VxaYOYLPrn zXe;Sq?z7G+`9&>#qEuD$Gc)=@Nbvu%~5skDb=P`a0OtJiDnj;g@_NqxF3meb({+e8txB{|M{&FSk!6a1&Fq$WR^QmmA5B>=qUT0Gkb1wnuJ^lFYeKUX{A293pcHnlW(gvH4CUMo~hEGwx>^3>9;BUN_+YWwfu?pba$1$7ioPzPu{Vz zUfC;`BBytRO=f(pRq~Z`<5J4?oKD>?YfI{3o$9UYc&AQ1AR|zgRq52Tdc7+prE7eH zUOdYJRpSDkSH6n3TE0lbcmdV&S&~G{4;QlUuV<*cCgvAw)R7@B#g~V>rNgW{n5P9= z_io?+gXQbw81s9{;m((OR)?A*J9}OBLwVxMax>?|9+!PJG=2f@gQoXiYk*r=p>|Je z|5SI{>^ES>WXZ0tcI;Ddm+g4G?)9xXM|Jk1ep$h2x5)8E>A|vZUUNV&yNeOn&3T`C z37~q6(bl?0d-)_I^)gXr_E@@`9CBP2tTrFADx7(~+OuWj7oE>%bE9gAjh2D0-p8}v zrro4os#>G=#$DbhG|N?^tCQ97Y8=b`qUdV#ei;;sZcuwxb#_zWQC3e%9@GXXOU9;f_!B^!}R8=RV}qy*(fGn~be5;dnejZYxN;Y%D!pZp+Aa zy;5Mc-49lE*lz3fh)?Ic<9!|XWXHIc3#`LIK;{c7w`;KV>m{nS-d?}qSTehP{UuVa zmi=XY^DY_Y9nTl-$6Gld1f<>dVfSuXrDU-4=0{XBRQFeB_=RmMpAvWGfHg^?<$!gO z`j7*b9AKrZr%Fop-1V|`N%fS%NGh&VZ|j}%IZ5gL_$(d#fPnf<5w#~z6f$EfzH)0x zU%fNCW$Tj5m7;2AK1V{ZGtU%4eWa8h%LBWGZK^k&73yK!!nRxGyDYds7D!2-S0C!o zdZsK)&sTFWUme;eHQyu$gP&z5EwEj@jmgTF!dc_AN|mcx?zE}TjcJxiu6l)7ou=hHiyszmA@-FLS7$}6&NtGz#womfh8v9y}`Z>#3n0r@U70`nG0TJI^& z?WQsw@tL^H3S?4mW=WZ?!@*gy$eM#6+Z{W*y4mxadArI=E`F;6a8Ps-;ybGmBXQLCMm(z=2W%K42uclHcF9B1)#qmA2dwc|2rQK{}&Eo(HM{o0?`#;Ko>Y3C-RT9r2fyj!@TB zrN_uhRwJ9m?d$EQ*Ne+~);g-D;oa31r35ES0ZOY>sm*K0s#^BXmj~!8tfOglw)!qR z?Hkgg($IguXQf`&sa0wK#?8m9)QI)3sg<+G=@k}h?6c9r(HgJS=+WqS)mr@$o!NLD za-pR3Z$euGT1rzc`I`OJ?KbsK>1$tZ1nruEILFQ{JM4l?BeJissJ1fiNZ5Ul@d3jG3 z>Amp+DeQ5Qi(D1x-%)QlT`nW^`9~K0w5+`z>bulqvQ>iYyVhH&kWQ(?o-8}XN{z^s z45c1l>JlVc4z8Myr}UoX>i%@bd9wdM+vsr=9|6J+mlH3UGlt4Z{eADtyGat z&DYyIU*~d}G`FnqTZ0ucR^t#|&m9_l8b_&mp7yt{r}@e;lNmq- z2__N7aavmO)@plwSKC^vwif{v31|YeDxji*3O+ewQ%}eJQ;423BI|D2>{rQ7w zti}|1h*V1+&ZU@r9UEyU;GF`*2Hrto8&@4@>`^TuK}e7}9y4o&QGtbPd4_(MoA*us zr>1(C)TO2?XJ{&~jp@qErb3zlwl%=N8{lr`hdiI@${hyzEeb4LYKpu?YMH*iZMO|?r&-O#6i4ANyfa`rG^`Mzfb2OFLn^qXz)6H8Z8sK>bc&Y(j zZ-BQmT(Ms>x@O*p^nZv*4UwQHx8cQNQwp#Khlz21TD3o@S{TJ9U}Oey`J5ZrY*$S) zViy~hV77i{9sY}#MV~a=_wq|m0@$f5WF4nWGn$nBPi3dVG}D(ACbbqa(z6#dmDdd6 z=*tj_1AN2)e=xwo26(RlHqsYLTBd_PH;r9mii{(Lo?WKPNLl=(okuZ{>ckJK9eZQF zeKOA9*wP;b+2ZUXmNzTB!Xwy{qN^OeW>1d2|;0N8d`FytiJG(v70~ z2WXc&-mefjRv{FX%h$!4!M~pJHz~R`cV#oCeJLBe8M>9E@y;6DYw(CP;LwjP9Mwo>53Nat72kiB=%ft$IUxc@dqyDt#&oMTtlima z=Yd^(l@84w7Xlp|CoNGfs`Ls(d;(@<=Z>j3KOqJ=kt zCzbjEF(!AFma=fXbz zFd+ERX<@*pAq(_g#E;8>Q4Zn8t~e}>}r+8?x%EO{V#gD&&^sAzwr+YO*Aj-$@s1eL0e=2KZM4 z^sEDsY?vaBz~v4Cy$k~1LG=UzX@Wq|yz(z^YU>kB>gNUl=^y;{jgTo?_yd(eV1NN` zGr&Ct*vkOVXWqx2Jfxj{MBe2XukuXQbkn-eyz7t-M`46bwTR#lnQOn-vYC&=gl^B} znVz3)&>QrIraUHf5@Sf-9vz#!Tu}hgLg8|NpBUf@_yXYl2DrumHyGe`rmueksPg3( z6tbTth46sc#*&Tfm@Gf2tk_-=q^^?w^i7z=SyBzge2{H_S4nHwOKP^gZUViFq-IOc z^wJkmb*kq$@Z+dDyKW54n}ycH_?GP-=$gpgw1Y`p_`+Y!Gnp>1!}R9*>#Ns;Lkhd!?vpv)V9Qw;D~1H8@va}CiRFpbSHMe0Z; zu>{y0hCudJyWk94rf{_5D(V5>z|ZT(mz=j%NPEUksw&{Pbw_PJ8Pg$tw77l}S0OBM0d$tGlWk1e~{kYq*^!$=< zsYkS-xJ^ol^kUziB{TpYGTetOd9d%mJS!9}V%6TuU$$wP%xmdxp?KDU>@(;6LsII8 zI<3&m)x3uQ!8fbr$12&)JMg>|v(50Q?VPC#eVTBVoMBey&)JNg5JLlGbpIrU#L4jKbKrOsvo7|%F^=8!LdWlz?J!bj znt9zU8}bec&B~<>0mR#|q@T;BjTdOcE_%W7r`^a^aN~KsveDmok&n|FdaC?CJ#y&6XR``fn zwGT6?TLp`i_CQVLZ3bV8d|@i&8sK{dxXl31GQdKmLE+PX*6M8m>ZJdiLiRyHhPfn& zCh^V=_}NTRLBXPS?oU8J6T_U6NrY2n!32-r*~X!vTAGSsI{b3)UW5A zIBw$XF|ae2x&M!e-peyR94|<*w`A7(H<(m8T_ex0sl1Pc;i83KnF^O0;3fn7+yKup zz=^BThjL(xc&%vRS{eMOgf7lWqJ3(d=B<#b;YM6m_T_&jm&tL8KRUaO8@Bo)Rm9K5 zU4&Y4SMCh{Yy@UcQ9j#Q!rA7F*nP@9czBPOs` zY(YF#yn>3T>{a#-jvsjhy`Xr{b0r;L5apM(IJA3p;V#21^pN!hmwb)$t3nT7myCN+xr z2NMj?RG#4Dc+90Q|%NPdC6ySOVY^&uYn3)7WRG$UZ?qwn_|lt9r3t zL{yz%Uc4`eo4Jsf1?-YdPxG!LXX*G`%Y$A>?GM*xuY?dw2k<9O_70SpK#uAIm;7x3 zN(m)@dncjf@8~3y{27`^kl#(a#1wI zH6>w(0^_>);aN=`{-ZL-c2co)W|TQ!-UEq{D#hck6o)~pXIzNBkL|&2(ukI6Ef`Sd z(?7Tn2%~gQx0may@~(eE0J^uZMoQt>5QrFUE2V6-@aKw*9*4AtYty&|&{ZnAyPy{A zen3TeMGFTT#Cu7xFe0_^8Ur|60aD^x1L&X)VOwh}Ljc+b=?J1D*xpA-lT|mEep7z5 zmPf>GcKc~Bf(CNnzmEM{55rxzRe7p#tC>!7y8b;LMQuvll{$OPUCNw>>f_`RFl2l&3@Ws zcX6_>G1)J>+4q`kkCWZoWdGjHo@lb0Bu&RMOm>aQW^z676d7XVUqwOJKgS}V@SqVh zzht0ek7*-?tqjrTxEx|Xp(BIPv?ocsNzzDUh5a)YH?gVWX%G%eM3g$$G6darl>0Fi z?MoOAJqHrot?Td1yWlSsupsm+o{^VFwFiY)7+1+|lREqd&HG$ad9OcBpQ45HOog`$ z@NtU79ySZi_aT<+j_qqoJ!2Z$W;}VnHL0gevk}w6EFo32u!pHI(*UO%pL%x#EI0MO z(-aJ|mR!3OptA1yfbFZK$g!qN=yKzsjb`pV0-DA9jdbh(rbxGh0CLkJJ!AJlSi1}w z>U!Z{?l&@vG54;fCoCgMr9-mc_&BJr&D&z_@K6^aA~Bv~?oIq0G{yE4t{MC!3AO!X zT&aE#{&Cl-^31qQc#1O7!bhF;ze$Z_B*+`Asl4~ixNJ8S@(l1T1N_ney#{!?q3RzQ zC#s(WPzm@oh3p>%8CgexZj$YHxP8L*tCPuqKb{hFlI|q5UhEfaBRcyx;cxuM+kJbi z+K30T{|mdX`O!qrryzs7J9-Pl%7kJp=>#jBXx^RB(f)3u(KbJ{lHulZAd0zrq!N}q zf2GN)3~{=OP{hm1_3DuW)hIZ$g zmxx21R40=<%b?m?Q+c~U0IVJ}6?Xoo^ewM}A^?AHfFBv)eP}a)V-5aqD6sHxQ)CIL zmXv&)ChX}f?P5E{SdC^r&pdI}zCqjY0W!lUiry$BUZE`#l7r$TbGL-x=V48I-R!zy$`l(f~6|=PFHO*P0^Z zNwuWtonUC6y#(N0K|XnpsUbBLwWbH-p}fYNR2h9(zPbzBN@6 z3)|C3+4q{pUKbC*N_)0R)#zNXZ_`xXAcJRH^Shf3q6zMWo{)~}7GvpQ39_TE`^~4>js}~dxk4Ev_^)L&HB}6CzkyQ$M zi4%8v5tm$>F^X)XFUB&ywX|}Zw1Ur8beBJBnzFxwDx#o>1z<9s#TMok19IdeG%)v+9hs>M2SlDB~{rN*; zajayS&;y8W3abNCP=#36n+qu)Ca+94mDTa1JImCDOIFdkv~vN!%&!9!1X>{dj~0e- zg9!hdRK8(ZuSwm(UJiMkC8dkSCyfY8G1*)HL$mkNY|AfAJo_7{^4te{-p2trAa+(ruckK<-G&4^xzzW z#uNiwV}NHG;Ee{@2c=HQZ3fuiG3Z%S zhrN}g9<2I<*prTZy}31_gY}DCAA3~FcG04=T#lv@f{k z`N_4n094GEP{@8uiX4x54wx@flnmZxG$r0|5RE0`{cd^JT`!uQP6?voh^O9gkZx}a zzz4D~B@^s#+Cel1dr>RAGH78FAYlJ?fFga#-RyIYmVSut=)$P;x}K;@Fkb=YigZUQ zH2VQTT0%guGu@oMbIG|SDd%?KcOnNaSRz!&J8VevPl|<6V|x8(Z;BVou2%`4$*B7| zhNx@~GNSHr)vcnECbR!2oRSYeAv5uG{X+PglUs$oc(OnGwct#FHNtQvy68zQf|&Q+ zD6vIZ$Ho@DDTqe%zJ!`0DrV9Iy2ObsdKNoQ^*@nC@T8Jdj^{5D;-ICR(4y-YI}PEH z7J{&+khzq)RInHSin3R7&xuugP&pWRBzQ&(Z!@;uyNW^KxgZKt8GH&)eL+(%lh<^G z6R*3=_DfrQJjqmi*i`&FszvWNsS6En-Yu!)+37PV>&$=z|2yZpqM2)dNq5B@5dP;` z_}{cT{V7fLFsVz8hCD-4d6)l6E4*wfq#58&DhU4@;BM`3-e)S)+n;y(7(h09~GXB7JhGlIR^L{yC1PDv1}YXI_u2O`_uE%IHeEX$@iKZ zzO_d!0<#gwb$7omTKKw%###vEiaf+MZ^>J!6Qt2TohokDT(bD2OS|er-K<)@>LNO$ z-M&>@t=f-;xx>4w4_z6`h`mF?_=!jdJGvi%pID^ZtGqtf=3e%%zd#$jW7-K`iF%BAN4BF>n>Bzjb|BO?wR4U4h+er;5 z@G4Fz*)#xZAC`urg_k{{q~Bpu2VfS4Wvjk)ln9Q(ZxkePXln(khE$U&wiEzn2Zg>h zfM>Lxntz3_8a7(2We&MPXdV9mjjN>?heFNFs3aBJrR-B|X8HPa6JDdg!90w?Zs7vd z%~xIJSM(O&H6s1PW#UW<`E$33-fBD*4yd8Vghevf5Bx&k^SH4Q+ncxEaG!SZ$S*Z- zs@YWANh)?bIEWyur%lHh^eo>+>wi}~>T0X~6-_pzT`aqfO;N|+9|;TEBIZhYviC%3 zMnuf%2K8C->`Nv4T{m04zeUf+#m$Z!75&u^3j4uz@#VQ#N)&sSJp1l{fUkb> zE!wf$vqFQ+i*KY!txr4LBm;=K$Ytz&9Fj3IeU^LBKnhCzNh&z^C&Q zyGz$>9ZxY8F4Ld9j*?SOPHD8L{fcf(bIb+_u+6al1fg7U^){?176#{3Rv~msd#>UX zo=6>QflM$Y&nSjWX(RU&iGUE{bD9iTLiofMP&RjCY$!jBV}On_axa-tJ$kREo-(PP zg7|UzqW0{4EHXZWz>9L%=5p+@ixsV0UsQdx-K=w>#To1UH3wUBLt;&RO8vIfq}-XG zM=M{aSlX-%it*WqgRMg!8NC>-d{i?mGXB`KBF-t`H14U9{zDNXrMk69ys3%bti7%lrWU_H6X zx~IFmGW>y{(?jo&yRq9dBw(ami7T+=LgOyQ=Dnig!d za?>hJr^nMTN!nyR<7?o`-U}s!dq4_TS;@_%o+07k3@6i1PZ7sf(PxfV`f3i$o7I`# zF2joQs36j#jQ;sYo7-X#oMGUC?$VXoUkK`nog{LAB1~Vmh|po_HZ3BhV>Y>3gd2Po z$UtdJdf~boAIMFWa`Yj`AGtzq_3-;6Hxj9KZMuB0FQcg|_dD^8zHnKFKYv5;%<6(u zy)$>nV}=_?=l=R@VwCg8;qG~9y}5uFgi0glb0VA7YLH6>2g&h*(8y&VS?$k%yXr=N zi3iP6hK zZ(;_=i0=@JT$|XRlY5ov=ML^l%>N{Kxjm;&UP-iq+_VP1e(uGt-55OET2j#3S`tj7 z%|nsPUd+F2S@6ptk?d@m3%!y=hd?AK?d=PmBPPwK3uV<4-0GJ6tm!?cA4!x-a%W6f zi^$9pc~XltDc20L-a?Tyo#paVLEBk5ftokdxUvI5v?`@`WiSUZch;;^ z3)&;T{ohv~OqqFd!MQUxH+?MhMlQYQmZcu$L+cSz*F>`~2oN;Y+J1#e;%-#ls*+@O z$`D+jaNFS_e9ohl9$1yj*BU(C1T&P_2WTYrsaK*rX|H?JoCJLfMg@Piur;(02`G}% zAH7wOys6+^>o@fU-K+;!)ouuV)X;iVu{0*fSAEq7y3IP5zinq;=Zh8{C^%zQzz9rk zliTLpOF{Oi&?VAf!+?}g(x{9Mihhz6IRL62Jx z;w}q!-k2LTdtn-z!3b{hsi1SN+(KEwLB57I-Smn)+!|t|{nhQozo$VG!z~hFG=NDX z?1px>&#Do#WDIwWY;VroHASvLM+0+ho_UYh{sG=1Q1ozVSg%}R{>SByelA%)4ZnB*lFammIO4?c=`^dDsWslFg;6uQxt@{Sxs37u4+!fLBG!^Z*|7oFeMTD)Yef8BdXbm(x5%nJ6}91;f25k$LT~yb z^T4<{_^SPz`3NB#RXPq|+dUA=5MGAiF@L1W%TPFXMX%uX@+qGpkABKUe20e*QdriW zl`x&}wF;VU^h_w9QU!q~rN(YmR-`;gAxyZ>%q`!aoJLQuGE`w2ZzxLjIGkRL1Hmo- zh+Dq1mY)`yG9{_J;dIKI&Tw^9ljuY_V*Mo4IhHgH0)sS$|6|R%W)W(rxMujQ+CNiY z$t}pr_k*=_4+3rQjP%!(WFS>avQk72-y9P`Z}dRTT#;D2{HO2Z>#(ggb@~=8!dCX? z15O*)X&V<6M@C~bl%^8lu-_J>Dj1h^dz?wJLNOmrZ)k9FVs5smnkj|NpkI0goz zc4}6N8Yqrj5OrnxPwASw|5ax?x{cOStif|vWO%lcL#_@@fw`OxaNiOf8ykYQblMN# zz(7wiE`=iGIqQE9w3WW~rKRKgmX_$7&{9Jhg}gOe;LK0$d-ppu{SkrH;OSc&DakH@ zT~ncFJHf%B->0l#U9=|(IzsTI|+%0u72doEI3o#jF-W07$vCnj0^=pxh zLTA=i!L|*ai$wiJLfOpuwhgV?ODbs;Aq)d))nduYy{ffGbOibC79+EU)sb>lKSgUu z7Wae)Ps>&Nq#-q@v)jU50QeL-fkly45tJqFUOicH7xcH+{>xbwfw8Z^`(k z$Noe?nWxAnug;m*V12Ih&d&A(#(g5Bl+In{w(wuHz}FLk*|{54{KVHQK5I#bE(<%r zF#0X$&@O+STf{OV(`+vKA}haLEjrDE8_f93u3k zeq=~CB)HIDGdC**9M&ea=YbsZxiZ!}^2w0s4QxYfsI-^QP4KhJ&U=~8ioHrroy4k_ zk)_W+rt))-)hRWbKlsY+OXh-rIqs78A12#;Ic+U`fviu>t~rnr>dVup>?{%GzoHN+ z>LSp;*kg@Cau54#k9F(kd#szfN601p(FCja7go(k5uwqJ{Q)MBVMZ%H_RDiripTOO z6(7x)zIO=H6X+}MU^-JaoTb4FO3B!3jICV*mLk`O%VxMysILpN4b_`axOgP~aRya^ zR?pOI*^y4#uWrtqSCInF(>u=Mmoux}evz6jrg0=K1VnUOx-=<{#y(c3((E20n}&<^ z$~RWzyYKc~f`*14cnag3^2#Ue@9dRufHst z3Ln^9GeQ;+Fs!h5m{S7#)qMia4InALwZr- z#^6*jWw^zzLOv~ytJ4$dpCu}K{#zad;=VUpg}D3lE|Gn~HqDt`Xq``*vy>UfC)#dj z>Te8Q>5mLfH=N2WIM*LO-5Vm%2P@`ZzIv zpohJXS?-WyWn_Rs?yF|RZtNDiY4n$CPf2_zgEjYd&}^MHji2Mc@1SRb29UMfqPt?* zZuc!?CF}8NCye%tb}aq94B@xww{^A~?%+lohVo|l?mz-L_*dU2G}e8~NL%5KOIf7S z{j_akK?3@W^k12FzdVOC-CLCgLpBNm6B z0bEVEKy&6R@`lC|uaG4&JgfR^d|YHJ-<{l?`8$){N3vz|Wkv*0w)kT*nb;SPZb_}7k>^0Cn&`P;1p%Yg?(Fu0eu z=1F`)nD7cec8knC(bN}-yop|&7RdjnRr3y2+|s|V!vA^>C8gBY^2+=#s`9yh>ud?X zWnotvfceewE9>6jOud4Ot=b{-JJPBhObN_0GfRc|mlMS(hZsHLcC+sm zy_ln#IxbHBaEI*5I@1lcP@{QO?5EpxGo=e1^bqSfhRD}AFiTj}h;M&*NQT_p3%|J+ zy%ti-oSqj74Akn}BP2^gI#}0+Hky`;e5WD$;50<4hcsIno|_RXpv)r42X7}|;rQv2 z{OK@DVE%#aVu>wiOHKeMs6SkiRo(Y4t8O2f#JDZ_pvdS9`|TaljS?+-VO~JO+62yLbTs!#N}k(MZ)K*Yv2Ye{OWf{U!W1)%tP5lsiepEM8mIx!M; z7eFEH!pF2?RE&KSR$A;G(yFIWisI_?1bTkV=J&E4^E^U+yx6H{)Yumm^qtk-Z#`LW z-SZ?+@h*sx60e|%u2@Jj*faEhv%htSel^;+gdtoJAU2eF8)c1US5pFIl25_~q& zs`~|iWImhFWX47L>~CPGd^Xyu-7Zv1=Ch_r2A>nNT5xQf&2(kPke?(?8?GwCvJ`1? znQ%E-yWujI8?2gh1RCdvP~mah5Q@aUgH&kFrpF6J7*ZFxskn zOM$Gb0$4n3)=tPsjDlDD#o{q`FQx5YBX(@Tv<_X;6bd+P9s%uo*_R7J#O&x zhlAPaN_R0abJT~@oEf`WtkPX8F$JJC@fy@e%7}(YmNcRdea`0z>N1r**&|Q2?v?V@ z{dQS(yX9eC$}3i#=!@!ktzNh4KITdKk%2%1jqUap_*YCr0v$7)6=^kD^2y|JV$5Qk zi2>P~?jzBfFjgfSs|V#7JX1>G!|Q^_aX8JLU1+R=tN3v=OrInTBklqwkw0P7E)o<* zfP#6;mDr}0qeRYtlD$oqp89qT?#W+YNqAI$Owx@q?=@tN_gi&yWa`f2kJusM?Xe#E zSSw|SABde!GBMw|oD|vVF&~#}ddR*KzfF=w;@D%s-q^cg?hti8=WYk5%U%Ze(i3^W z+HppTdJtn0o~L>(*?!F3$f3)>8GNKY_5e4=9?+7?Z)zaM`tRk%8c#>*JQCWD^5ZZW ze%-z+Yr%)O@=mahfyWlIpUS@Qr`jkAX^iGqIV!TK9@0(~Su<2L%kmnpXCg1<~gT(SV% zrJ76+&SQOTZ$|1R-RDmyTHu}r?ju&)mw~D9ojd;L>P8VJ^r_GsxIfZal`UHu-;3Nx z9`Cw+vvd68_Q@N2u=gW=q@dh<8$3(Sm%{Nob_qY!FXP$BcqbAx&Y@C+bEJuu|z1H-TtWN3t48@o#%iv)o7S#yJ7?(5OpCv1C ztJ4@f&_&K(RFSdf8)=X?<-aN4-x{u+_DQGBYD|1fXZypbDnGsMuS-hyBK32_(2pQ+ zp{EN;qDM)F(?GZgf|z&2OUC7iOaEH2cia`S^j_98vND#h3E=-CdcxRS&6(|nLkY9# zJ@o$rLU5J6xF&MfBB5f1yPa_xX)bG*?|~S3wXtbaGQZCfrm19Sl%3G;g876D$QGvX z^QnIPOE6N2Qm=8KAwGA3IZR^oFs)Y8MdnExsfXEn1LQ8_-=K`9B!8Aa>`QN2mRJIV zPm=UC{KS0f9}cI=S^jV?CEb5KMWSmAZ1hg_q+J0t9FZ_2iK(eeO)?XDd;Pr zPUfZ4EE2<^T1L~-`25z&N%RnY_+Rs4XQJ~FER7kvJRG4ZeP*}=m1-{JGtwa3#(hWG!1&*}dLpV246XK47aL!PS~ zbh_3YPEoBb!&bAoS?u(1SymEO?mhd*j92&r`%lM@*aA!zD0E7k5{dcfjN6-xX(Bg~ zt@b42m!$}@&?(MNZ_fP9HHK=Jvor!A>!mLjsuo^rb@HQb{WRzx)gszT9J{*d|smG|1gg&QyxePp7@i5CC#WyRHShk{^^Y5m z^J(S8<57LgcNWP!z2HT@ff)MzZs7@+Di=9@$)Ax|E@k>-gsN~L73=&C6E7z zVGpyMP#*7qk>Yr{{GKF_-{STbVclf?Q1pMq=k$Mr&*&53<1^nwA1Vt^v1`T5l_fwm z&*8oHGOQzK^nYGDt|@n=e5#3ih?+Vvp8_=v_=oT)49VXayx2_E)qDC|7Zm>&_ub&% zk=|V*2SMMLqI^dL)=Q^w=-q%s=!&U8s8@fPx2_kC$)Ns%7Z`QC4j8~@7V<48onQYA zzU}_k`0nj*-7NV2Qg%82-{b4~AL7d{LNa}C!jo_;ef#BZY3eNeB3?$NZ)tv0uqTes zj8wb=Z`xnt+YwZWg4`0^Y{rL(8JEXK z|01zuKL_&>w(X+w?J)Z{czhf=T*0T>4Bl4l_jJjKW09YTK_f%iNkkbAz^i_jxBAPY zKA1WyGN6a}n(^gHvWIvCPO;ltyXh&)Zt-1gT*Gt4`^}!25v4Y;AuSihk&Q`HqkQf6*m#2iq>Nl~} zUWd)B+?Cby_@whqltWe(Jxg4}R$<%oqDb z{aehZw2`m~44kHOYvk&d?PvV^`qU%VV1PI2`&Igds|0%(`#4T7?+M$JX=~_N^xx!H zpD^FmH`30nh!t6x-dG%&K;*&uksAqtI_%4R&o}=|BHKNotE?rfxGiel!1eR_3P%>nPM(}>i(X$~?W`TUQ_WAl|u`Q*mxMTNqZp>MVFhdhdO z5&C;r;0AlyNS)jAmCVI&Xy^#z>0j01OCu znsC0G`o7E_B&RlnJe2*3{3fA6Y&lu*+vpr+Ix+}%%6#H3kySm`IKfVsc*EB5k6@=; z|4G18$A>k4*ecn6^jQzQ5ew3a@>g^B^L(;}ukj5PZz84O;zV`D=5 z1TXc?AD^8ifjPzDJx&jP_YMVhna20F)jMZCE))A3D|5k{Jaug<`@8<=jmQC5v^}2d z+d-akE#=k5;AxWI*?6-3TEy5R;*ad*8Yk5A-RKX07oX7czxAuJz($*VS}R9RxzFH8 zAjg1{HZy9o`%ud48(2$F26v##8d8bjORe9YQNJy#-2q_D`uAx4_VjiK!UK;4@^^xz4}n^`}%Wkv)`YIjmasFj7Tkxl%*F({2e0x zjL4)eY(r*5Mr1{b&MIc>wo5U4Kv{CC@T_nnf4!Un%Ld*9X1J({m8tOcph$Mx@YZls z_^smb+LG{wlJI6fh;DoU*MX{BiD~@cxpn@A*>d>l@qWeo!2y!p5$9igQ0t zIh3-VI1bqa2-SpFnO#AKA!U8IEr~8EyTgN0dB`eG`7k^vou{*k$s5#xCvPz{8I-|O zwmfvE3b>@7!jJ3PQAQHyTVA37S4>sN~KlYpQLzzGN zYW8{t@B}RJAq8_+E`lEj(Z@2WX<#d&K0Q#sEyrKKtxsvYl>%>eeh&ff;XEJa+3P$X z;W^8B{*mVl=lLkl={)Y>rvdN8qb_9lUQ6Kp<2$%43>`zWmkk=?d zKskO`td9gr7Kz01H+7HOOV>uSDYBJQihlX{I3FR|FeJP=z&4Yd-vrThe7V_QzpgXg zIXTdEhd*~cFn|53)10UM8~t53m*#%MCswa+ok|^HJkG=&5Px(1y0iTCjpuO8Wk~pA ze=f(j_Ydj%ULd6&=;{944@$#SrGY)Axu5$}4$%f5+AQN9JducO;lMz2jnOB^A8sq@ zEPu*wHa+lM!+0Dx>Q zr#4%7rzL9&+a&ohS1x_t`mEU9k({>_qIB<<@p+xJlC=(5Z7lC6UW!!UALIClG=w#*Zr>2 zXh9{XlO7JDKNrE&vdr9C8ve}0MVbRZvg@|Gl^iGHdv9p9{KKL5IYcu}<#|%a%=%qJ zPvy(HKcX!6iaxQwyjB#)%B!P9?B=fw^_9rns{<(?b2{ogUYvA4Ip%^W(;mg5j5Q!XVb`+%Pr_n1eD4`P69u)+J=8CH3lk`%urT-_kpFGD- zk@A71fBuvCFA#>sK46U4pjjW-zfE=@H+bakpcevO*1=iKD0w;U;St4#qHK`P?;KB}VO}c}x=Cghdth8;4Z&{(VN=q3gzfFt$R&M^=Gt+Cf^^=#i76DE?Mr%Y1 zBU#^i;KI_j1gCGZ7TgLoOH&#f+9C)~u)pWVRGM&N6Y*)Ea*Y}voQHt5b#ia@=^d1O zc}PE4?|YqAn|=E2^rli*MHAIhXx07}@>xqhX64vwz{0aqr5h(#&ud*6Odqf?wSyiO zj`kOA3NJLK2GFXq%T%LRfrVFDE3D$^O|PS7ebt9KS2T&%qP|B9c$}(_>vMOYy9?UQ zJe^~37h1KAKzZt2jA>w%yi;U7_-3)SVo*v+bj0iIB%4+`QwYGLCUu!ft@lARAT(7# zL%#r8(7PnOTc=xzRnlmc*xc~|{sU#DSWpreq@jUIE|i9byDkVR+~0E zOPe=qo5kV1ptf~U2|;?a=BKsRv{qCco%A}m(wv;25*`CWbCTL-Qs5}<{n&1%ws#1q z;J6p`wk|5FCE$k3T|B<}Z5^;nzGzdwt#fg^l|xuA;F45Y)yH8EfAj@Sya&Ah9L4I=$~JWcsQv2V0?HE;FQH2GS@ z_xJz^PPJ3CP4@FSi!NUMHAzwgd#a{skRAi1{Gb;5#XFW=MYFL2eMJ!=+?t%NN#v>T z6-}pU>!eNc4{`itemmwN-(f{G%}z1|i?b&&!I{iNXAlG+(HT~qOz=SXh%N$z{vvHv z%8Er<6bOH{yem+>SY{XJRf<}PKMAK&Y4&yYic3}K1aCT~Ol$iolM|XQA|={UPF4`B zIwK#%9PpM#FZzM7PHUIrsFp zwvCizAAil!e%8HmAK)uR)Gdw9qGMCIs?f;KK=d-)$h+*bICUbI%0x#Np(1A5^m<52 zBNs>LXe`sJ@&=!%BoE=AQuMW32tEqIu>4e7ZpcV8e{ zc7^?1fU>L-W-pUq6}hkF8;v7+_nVqn`a+ia2M>fWZMYmP3 zAP1|ETq{$vSLVt77!Wl=xZ`be4;6ct_gg%0nk;O{Y#JJv$2`ki3ng|mX zxtR5{JA)Z-6(XF*i`5lRDAf#VaGDdwlRsthXH2XwL+i^RSzyNh9{c;j ziSZYI!{Ee7vKc={8WjU6X#_Emk_HeXDQWx$aYmPFlcd^eeFfG@wWL)4%KCW$33vUh zCV?#IrePwKMzc>Xjk0_uRI76nw_0dD@ga*1(2oGvN!F5677k1EI?>aUM~LW5j~yOo5_7<FLYw?tn?dJ5Kt)B(_5=Milo$=wFQw5z>G)vXFpy&FfYcAvY&%fevoYGCPt9isY7VAb_jH4! zd4`ycH7f~L?$C!TQ1%YMy%tXtp06Bm|X6`ry1k z_)Brr%h&V>k77VZWzT5JSj6d20l#m+*Xe!ce&-B6X1IMsn~)npoRy+ac?pQ}| z&C&1Rlqz%>>H)VHQ|NKec9Lj9{)Et9(7w=#&7owZ?~sqSkmZeynBVOUy)bnHy#yL~P6PGZ*h{B-$MzV9XPJ>Fii zfjX1(0#OQLuXL4%rRi&5-77ZB3GJ0DpIKKc#*AaHTzFvdQ88g0d*!>!&%V{QX8QP- zZn)>`zlcR6xkdh^=T5omLf5$Q`2D9K|oy2fGQ&2M^9BQaL;xG><)aWPvSEFOP@KV-}A`%%fv4y%T!Yu)GXwoaI9| z!|pQtNd{BgUYcir-cKf@8fyEA=2>PgK?)aq~Zvq;uxgjq%tJq7^L$I`~9or#Uh!7Y#&Hm3cuHa&g(0Aqdhzcu~Q6U zhB|TK9H)(;$qK2)dktlHa7g2zm|@y5^dXnS>Mou_DInZRiyT*MN#Q`{?5qJE(qmgrKNei+%6wt9!~{V8y&>F~B=3a=@7SAIPV&BNQ8io% z$KRl%Z8@|wUX}_|WT_AoRXQhoM(iP1?lwJaZ-$f!`_J*8aVjY3d{qzS_TW&7>b^!+ z4?V@0&$j=n2Y|SgErBB3@EpVHSi#+OU_7`qF7qb2)$zb^-lyVpHayN1*j^HfJw$kuF0?~P0 z?Oaw(u6@8Q!`v(0%z8eZpadb-gRA81Ru2!0@{(NQ3A?T;4ckM)UkwR=zi?Q#RXr!$ z;y$&bTs>*k{T&<~J&DgxuI-a`s+tYEd^os}kSX>(`(&$g6)Lx`EpOvCy5&k2u*yI! zbMe^VXooArhG+dC27j1V#o+HrX%-fQVuU6aYGu`342)4mMDUjtU?7FB4dAF( zTdOpGuXXPhYFA5l6w_t$Dx4G@#8ZJ&+^WSPt(pUecQCt0AX>mZrWj-PUGSb9^Y!{$ zb1`M?A{CrP$a&6>Mem?%O@1-;!=1#v9?aw^*y(`3=fP-~^gz#l)O>!R<`8DU7^?Bi z;^l3$!;nZScbKJK!NnN6Vi+Vz{3eF&Lw%ska=@xxaL_nMof6T z+hrRp-5yEhVl-fS(<=;?4F4NL!ra$q+Z&Auf0bO5H3`+tO-`B-hoxZ zXDAl0bVo{?=SRh{HlerzeoY zF43rLuOOe|i{64E&E%3#73DCAgay6AbXoch`(6G>m+WvGR;l*X0~%sb_cZmC({q&T zi?-^z;oXic%qH;Hq9o4HCPO!v{og>OOG6-c z*qdx@px&5wp&dT-oiBfDh|dJ$ZsCY?a5Oi=75QtJO-083;gNfmWaj!g64@g-Gkm~W z6U$Q$=D2(#PfHCyFV^u&$VXvm8PX(v)+XuAcwH_$mtAf8YA!Yh{%ZDPK&(#amPzQC z8T`)9(HlVg5ngsPFC*$}vE7MLG3z_xKaKSw2D5|*!$8KF=npT>&H{kLK-`|I|r{87ENnNYc zQ`w*C?{nGT>F?jOQ|OW14bO@Q*Zw4A)V*Y4gE$j%tKG`U??yhacJXxcoj0b~oAHWB zJK|qCQ9H|>{LSRQW^+uJy|hh8DI;f2RAV7EeBss7sPJ(>RKq@*I$ka{wZHj7mX&+} z>K%KlKI%P7kycWi9VHlZRcdMey3h_mx+?$|V+NyC4MnDbKe{-(nml^(7(Z(JRqO9! zH4g1m#X8jEMEKbp!olCrp=Jl(W8@Hm5x=_O-&$ptgh;M{e}$up!ymdVjBl;Tv-~XH z=8L3u^5v&?t~@`k->n5A?`3-vhuIOUR*r(X#i~B13oO2wu5)E}&&e*6$Bd?hcFE;} zMRD9;CuafJ)VrIDwG*3qI>lN#bkx7+xb;rx>u;9(aQ2G%Qh~6ue=q2S-=O#Gn11EN zwD`?iLIY%xQ-tWV+nlNI4due(IQ#jFx8Lg2+Uj(*ZXS!bKGmGHJryB8JAOsSYTv6u z$EMA871I>DCiWvV`sRcYGulXjW>z;P(kTs@Q zFZ0t3M>98x$-{@6ckU*hI36CktigVl4%e(c$yd{Gk}rDAJ{*nf!tc}{YF)FvtuOz* zyHBOYvUF<7E^eBq=fQWkP3Yd-mK{oR=glw94`!#%d&pWsuS_xC*z=?CCfP0Vyn8hK zQ5+W+kJ{N#mA8kxWZMln&CSO8i{{<;KC&Y`EDapHaPi)pG!)Bao9voPuxs)OU9f&R zoQkp@=Hz!mkqDpp-6@FY#|-3V`=m=TuUgvkN#i&FTREjml7iPUFYwADmnJs`-qAxjn2k8Zjfd12Nw%z%(9q} zF1%1vr&UayK5g-&VxldLaCfZ>fg@d?U;L<_BdP zh-Ocx-4Qo4@SKOY;kWR^+g_6brmK$jpZ(4@Y03>-d0?}GoIEx zjRU60kIWK8l)HCoZazp_kD6)nk^Ln^irfFrc^QnQZ8Xthc6>vtt?^m14>NEhFUVR%(n{s4^y}FCh8Fhb>mq6ssT%HEit-9X=P=&+J z#eVxj7krPDi{6C|v(Nte6f;6UkCcor4v(86NEU&zcSTo9VOfUN3G%zOLgVt0LI zbz(_9eIAs$BSRiA!S9eUo0r2wjyx3cP$Um!Je0}97#_w5{;m0knIMr(yLcQb6-P>? zaZ=%S{4%N8JXDSGMJ{_@R`D6K-{G}-iuzag}lq}HI3bCn!C@E?^V23OYg^}E+;-tFOp_N(|Q7n@0Xq+Z87r6 z`B}%L&psx7-ZANmj!EYolP)|aU3^UXnq$&`tZ9kQpkwlf9+Q6jnDW;ilRxs9^u%M* zQ;tdBaZI}InDnoXNk4Q<`q5+3zpZZBpI;@X9sgXqeac7536^MsWckLdXl`O}D`~$w z)|Rp-w&&)5y9O~7=4Ll>rX)=k{0wBsd|_T}Z6&Lm@d)ZV_WXYEhu?uMUi_KpC+tx6 z02}ZC*mgCs8X|yR(BkIn#i%ruRHflV_LvWFy!@j2;Hq7ALu=Xu}@DZlP1 zO&+3-Y?DR{FU>}>o$&_qT$hOK!foFZur6r8Ah`yqXZKs}W^G3b?XfPvH*p~_6Y?pG z*{L+FagFxgb)urvE~Xytb6VnJ3Vc%8_HsN=?0OKG*n>RH*l9m4t(dLaL(3#z-i@_m zf2%3Jxw0M4pZzH*tTnm26V-3OqnToY`=w?1v@$V}dRS~R)KtGqL?6_|*GrL2&{0UC zkYoxE;^a)XJHN?$k(XE_E4iM{s=baZLkP+KTfLygwRjEoL%hcXZz8r&l71R^wF?)U zWbfKIe3GKM-_T`C0$v7OTnZ**RU+dG&A=8lInO3?&eo=O+3zpW)`bY`{vub@F{qCt zLD3kcxKnfN_qs~~Idvi!&)lNSd#8NXdmF_Z7Gd+|ka!%*?7a7d{%$Pj#JyVl>eA?Q zx-o%zT2Z8}e`B9SNrz{mdFx;xJEoLjd-r3BJEVXk)m3c`rR(2K` z%V`r-k}!QjB^8LXMhB#&wN=c_Xtp<;r~c#E0AzA}zS$$;9KB4+o`1gMk5N zb?oWc3tdZP*%$vqr;OeMDWew6Yb#y2_hls~$$94qzrJY)a3z%L2NSNLmbXPAJd_^A^#+USgxg`E{;bns5 z@QkN>oVb8rYd%%Ol8=Ke27ActP9rVk{m4mo()4~i?4-ZbbhCYjlm0;KZ?z9P>DMHU zk1gH)jRV=LHTWK+lWwgwc4@v&x;O3n$%2qVp!qzSZUyHGUf2B$o{~_a>Ds}2l!3O} zeO+)+uLu3Bf_K?J6R@7vvg#fIhKsEm`jq8hm(=Ls_0RSywu~!=fPH zWndxaWWQ&!XZ~|3hL0SQagO*n*LI?1`A@+5$rM*<>y@5G5N<~x8m*>;e0ZaXa&NNx z77O;0cAYNu zWZ*VSDJebB^My(4v-#ilV9Zt>bWPM;#r3t1wmqaNT9U${TyJ7QSpYpoA!K@+MQd%Uxy#lYCcBR37 zlJ}`NmML~BI?{nhfHMJ%q&~Vj4zEg--*11NfRA+HGIDPx-~(K^FwBw!{6gTo%KqX7 z{bhpLA3h@zpYF-`QB;btfo6Yxt`tDxtB$HgOp9%BmK0%GvmVY?sZU$1TkYa^C@t>n zf1vhI5o#YaQ%E@YnQo@?E=_N@pOG>m8Dsz-CV})*Ld!Z`Ykndn@!ri??lpDL;C31B z5F8$oQc*r>&F}Ie%||PJYUhw|d=qzw!9vW==i>5_>*p-t0 zz3E8$9tmuHP}yce*haJNM#gXf3})n#~+v+6EHlwbYCucx2~ z?LV9&gPis{HDphT_g=4;%P#LIb;I8!Ub?VT&8oJte_DNLM`({dgo>8xr{|L2(xuTC^vdLdm}==MD|^?AqJ%%OABFYm$egAn_D(w5qC-0V z4t_Jh@8V%oGd>VfgXHrbuA}HV4u?0zMHBQb@^%kM(O+wOPEU--!KRaLSyvWM?1}}eZ zk%jmKNlq(+?6TEVBx`V1<;1MW8hnNX915+io+ebqe)df5Iv?OWE-Wu3CgTefcJGs- zcbAEmi>*Q(AFI=)q}cAXI^8948f<`CovI|2)AXW!4MhEy<0JeN?a-pL|Av2BL$<{D zB)P=?FZ}a7OnE$h%%Kqh?u?5R?mX$l==mgaq(BDZ3Mg#`g76)lok3tRW}-t{ct7l0 zPDi%2k$HFAG;r<(J*y=~_*?XTwAm7=8Y#TxSbQ9I{y973f$$zZ_pz_YTHH{SzB@Du zzfbT+aB9WB!E9E1!D&n$uNOYKIj1!I5m8z^jumdXt*kV>@dPL*95!~YAm7fJrw0F| zX(IT~UTu$pmy#&z;txFq|Nm@%VtU>L{swv3yD-28=>Q*)pnO8{0uLS z1veF_&A~H-{W1j|bb3SV*(~WxEpHRE{@=>$vybhdBd^aD$#RCA&81N;ZQX$E;5+Je z$5VCIoqik{F9S`a_9CYI|5#qXYF`BlC2@!2-!$`$&tMeZoi5klyo)_-{D0!b@yp(R zbMS^CbsPEqGqxot8W!IZVjgY@7C?Vt4SxnFzsxKw6BZwl1HYGsH^Jy9Vw8ynE6k+fQDLgJI-`oKSV<Czzrk7X6TPoo@zbB5DDV>nexkrn6!?h(KT+T(3j9QY zpD6GX1%9HyPZaox0{{P}K#Hf8XTbDn!HQ|Yi-+AYqoS{8MriEq6?b@NO`066m@>I4 zSTWu+er)fFlc&wDnm)DH_^}?}lqu6^RgCwJO)BKA3{9!%>+N3URv$a1eBA9$_2P;;~x$#+(Gr%awYIq0pJJ+7i+JS_|| zxL(|U%JeF5?w#8!$1|XO+WA56^cfY?yyMG*jyEo?bJi@i=kv1W&K2GcHr$RC&DA(`))fa)Psip2<_oCsy>nZAQgJ=TU1K zs8lyk(#Fim<1423mWIp|1*dw-L*pk4km}}98V**>4)&fgrF`-<&)6x`$5!?3UIkr; z2Frt?s=nUKa&o-=%g1}KulRYWqAJ+2eaqqVCTe$VPiA1+%GO25jd&T!ipaq+d4 zli|PeDHji%Jf&h<`BWV`DovYS6|D4n##L67!=|^E2R#+DXH2dv4^EywO~2&s>0UJ_ z@&A^(VjF z)4i;C;KiQd)5=4^Nz*Ig=@e6XStqInImy(Plro+Q?Z4}bUZu)dDL^%dn+)2GQyAnEmX(}~f| z4B$lyVQi{kc?agXs6C}--%7uz=K|Z$m9ZW^W6JdM@fW*1M$_Z(Fs+U=^5#~Vy~jUnSlO*3ZiRzyg@fJXfNQTAR&vd-TT4r>88pm)EOgjSWhEZr7Ox73 zaplv5oyS&q@2set?kOw3LvTx?q4r~ZMX-GGlq$Cy)22_W@LV&zwA9o6ri;5zy;#WP z@7sMy-|j=1t-(o*f{Zs~Qclr3rcMu4Au|~HUSpZMNSg7JkpR7?PFBK~4IkEmC2oUY zp2=o*-s*N-DB_tqxvGkqw@!j$6_v-8F~o^aY^SO>4t7Sp>i=QyUErfC&j0^If*Ogg zv9*dyby1Ospg~dbona^%6gxY?8{k{JG|L^a@&il-B=FFKh^UO2P%sFS{ zx|la@!APzP?P!XJD>2?y=x{@%A)agvJf^#b=2X@3hD0pV6q#NXuW8Mlx>H%x$yn~> z@nkrWjMqo27%OVRXHFjH+o9~tsTC6^k3NT=oSitKV_nfNr`Ni&m+Qn&Qa_gB{kj0bR3n*2_#qP1)z9eIHA^o)f9@9ROKY zO}s{=0^ip3x(n0JCM3K*Pj8CHr^lR4a7N$RA{F9jpJ`ArqO9BvE7Kz_4DPAmXd9%1 zQ6r}2&f*<_Tm#7;@MA`B#+f4~pFMrb)XAeKjAHO@td5)-r0EE;Q#&eIbv0%pH_&$2 zlSoDqmDB-a7s_|8nUsqxuv)0Eq&QRn({HVLUUnvE6N?u@0n zIOuhLui)sKh^cr`K4RR6sUvci?Udx743|y=%{u#P%~gI@OHFe-UTI}A6$zU#cTB*g zry^OM&7Nw^l!+6<(Z()Gv$?7?& zOr1V{1SYaP7d>?fdKnykH8QWBAl?v}Pa{K8gxAwGIr|L{insXu{m9@W{y%$2*;! zZmxeSd{)JX$s?Rw@5c4;sp0-!ccc--jmqo;=X_1OPpedH!E|9`I!HzNOEQ5!t$ zmz(3-RkcrO+b6ny9pOLGuNqKi*U7qetzzqn)0^7+7M-D!Y~1LvBf|ar9X-IS-svbf zg2^K$jVl{IqGL)r$^h#v{pc&c@BP2Oi@FN#usG4aWRSB!HnaIZ(GFddxMNLb4O%DJ z|NZUI-XGeVAy-T7&CtDFb!v^-qH{0FjV}KWYWVQ7 zDI;tIozSIhr-!GSup~TU90>-8M@%ShACLd(h&2-L*Ux>KLu+X)rG+vixfU2bVakZf zQ^TVtOr7W^CaG|-cf<#}qX)W`xPjrUi_J)zizKJ}0e+x!g3Q%EBK(cAakw|(;?oC) zJN@S+mrnie3(t{toV=gm*1_ar_(QE*S&qXitLr0!%;`(UV<&|v5zgkoa6@IwAeJdk zJ$CSM#~xo&QZg_cZD>fd?iY*T`tXq*c1q^Y;U~;C6|arf>0GuDiX-FPM(5^CmkYw* z0P`Q^W7BHZLb~;_NQrTin%hYz3BzA z`o8Ji75c&z=gKwExyC!atbrXIt?paCTi+{uWcc(Wvez+u;+Yes77sY0LlwDtRu%c4 zYHPtebtiZ52|Id@uDf>>w0HInb^Y(Tj=tSx-v*h+Srgjw5^i^HqzMpsj#N{EEh0E4#xY%qim9z@U%g> zsexZl^5t(AH>6W;W$gGNOqW{1)%BIhN|q~=exU3oziiRRxm7yNv3#yUhc!399G|kT z7;Q*5WOXTAJh-G}{IIM+nCAK}7cxlMWs6f8PQ+8urs(Vl_1YAvVB_DNOLk)4c_}3vwF_{krf8-GxdoYA=`jWobiT%~6xtQ2rylxXmBYCf zceP3-+hEAzZ9ME3_w3Nz>VC&{-f&Gi$;z?6$)5x)T7 zmPI?)oSnz&)t$b()K=I|S8gWIgq^F+t?pQ6eEw;<-HF^3oE3(DHN9Jb{pa~+7i8O4 z70j-pe6}`dw}iMOl)E8x(upM{gWWy1Log2RR+wwzrg{{~)k0;=`cNyE?p9EBU0%6q zEkClk{0x4ZDRto}v5w&h^; z&~BgHt&H4xU4PJpoE=ZIfZ7;#x~LZMUVKwMt97mH&dw>^5q>fLi%ZbKuKE^rMabPv z>EbWB-s{g^6HcYw!gy^u7Hf6BQucas_37^?`+h-BZ|}*BrKo-*1~}e`C*n26mD}pW zACO!54s&ap0lV6(kY7^H_512%YoaM$m#j?GvnZZB#?`CON3EA);LDC%)*l-xW47*% zj?gl$jLgkvvuEta-*KL$SHSUIyiS*&yBADDc1V|X1&`y= zhTPcH@s7DX#CE;w>_54DZG4e|v+KY0;rkC1enLb2vwnQXH2rxV$N<`FcZyMhx!>Lvtc4|24sH5zdk!4fM#)U^ro;-1K$F_)OkH-CU&D!Z$4$PgWo85G0 zotuX3XpK0Idpdqt>}tG^A2KL6C3Azi)g13P@&4O-zV*B?wX^Rc?O!Uc5L@6rQ~7DR zDed2*i2sB5TODK__y3>X{x#<{Rh|%cD#2u!d1~H!3R;FW3egaw6u2FUu$}bl9 zmJ8QJQ~v%?hhsF}{co%{br~w%dam8a$_`(4^XatgjjWEsQ~YwH?lWnRdrZlv&)tIR zc#z-UeyFWK*(yfoTrvZ-*x{N#rvF} z$@IU}f5Xte7SC?~?=qWL>Hi?lk$<{h z$&i+yUro?&@KJ-0s|)(Y__BEdh#uws2aR}CL2YF$6$t`37#h@t+X$^g$)NQcT3yaPtY62shv?@DW zEuI1y*D~aiO>MH$%2HR!Q)H}RTUqTnhJZBolpjp-I8r5R0X#q&t4do~9j}j5mRQ90 z$D$FAj5RPo0egzAGM1>XBy{sun2Hmy#z)v(*~+zGZ6j%-4V5-7Li}6{T}|O}Sp)Da zAtNNLW=X`rX)Ic2rD?3=d7jEfo_D1fjkBDnk;CmW8yj6kvB*(xr)*3$JFp1RNTHbd z^1K6ViAJn_nL&|jA|8v^Su7E$NRlv5-I$DWmL#o0<#A0GSXRk8%gCH$3$2jJ z2J%SSQ>-9KDQ!Q^!x@q+BU!A8;l-K_kHLxEqEb+44lPoic62S5!V9yQOOr~a8#px8 zRNuf^o9f-;M3qf(TB50m=bjC$4jQ6O=^BzYNi);ZB%b>vyL6q?5Ld}=p$SnFO_Od) zH_(F2BWQof6MHp?XU9!1nk#1^quB@|Jl<>(<}`$}nk!9zSd|E>Dyv!v7(ruH0~>Uw zs>&L2tE#Ny8*_RH*L5~(FX&uyD$dI{^fPD7LmtKx}s>y0qpY#~`k&^HSs zwNzP^H65ORlFJ9C!kP!b*0^O6t!}NhvQSr5QL2iEF>TB1Q&p52BH&Rio>_E<+k@&n z5y!KZ7Fr>x9CuMMT9{a*()L@IXWnIb#o}=n+Qa1*a~H_XO19}k1UP6_aUNKzile7h z@rEh_dLaRih*HVq7q`w?MSr&|V1<$H29kEwW^tl@U~>Yj{AEkjHoc7A%JDq+?uaI!3k(32sMYjY~|0a-CRZJ4Kpj ze_YI}z-lDTgM_Yr(<#f-w@bR!C7LrQsIII+Ya>Q3n~*HINyX#vz{zQ5Cb|s-4fGj9 zf&hbMVKv$cC@vvS>Kfv9084R}LnC?v63RCbZF0vYY?T*z(!MmEp~ix`xP=KW4`B5O zZ4)ggsJ9^6Xh~AmC4d<}76a@{CDj?xXu?RHJ%P)HPnfp0p}V-TrrO%GI>MNTW^e`e zxMa0^cnk2rHwDM~rk#{l=M0#BSKxXZOPDgy3WN;_TS{dk&JpztRa7dp=f(l&V`!nS z>Lch1Arm@7tp)Dd>aD|7vsPis0o|@B%lvHfBi9tFK5k#R)vd|SK7PXw>E|E0=?}c#U7|Ly7nv22QSf*(^CT+?? zCw5g8OS{I3n_;Vtn?b0KV>59TN^Q0vGG+1P<#dsh~XtPOOEYBb1hi|rq6aZ zSRKV1Ts`o}H9ANXO?5jPYZxXhUK?eIhjq@OV58Az-I&6cvE1EVZ{uux5|<533xSn| zfzwhXEaRlT+E4Iy1LR?5TZ-13@9u>O*N>Pa(!*vsO2#0>-cg(^`XrM9%>U0;_UDGiEiY zDIK-OuD*tGz22_BrV^#9vCdf&VT2@c1k;-WjOP}kLswZkZt(dy`s(Dgm`iT8#wFH7 zT&h|+zC~(%D!N5Y1l2H+^$bEh8q2Q11_of&gT=KfGvC*I7icM+lLgF60d}X=NQWS_ zfgAlY_sBo-N&T^5$_aSD*D%Y1gxMO%!xwgly*^`-1( zaWxZ7RpT<+-juJ(sI?Gp0dSw(=tp2Sc;U+OMq^yFT1{F$_N1^Oo^+*~gDThXHV=Ip z;02;JHJFqdy1fOg>QX!L2D8LWVO%T58T{<1Mt6`kNt_j2gH^EWL4Sy(mG3j*v0d*}`XrbzB?Ah33Kc8rjc;3n1vHLaLo z&JsbPlNM4UTx}dZLiB*zin<5~vyB)NPvHG1*civRj&Mr5$cW8dNXYAJkysU840nPp zTeF4qaNDTE(>J<0gUm?0fSbA049aWy*d&r(QHga2_7V!fy8$x71Is8K z;K3UXZ%A-y{$UUU8i;N?uMNh{j^RRDiBTFR7Li5@Y`HepS&s(RsUnRO%1LKh-i_|v zhzRqTIx3`*3vsZvwlNrULi^jv>03U69!DCT;qa_^+_lGcsE<{?~ zmA7D^tUY-n5;X^0mR)5FqpU;BW+g<;b&a${s?$y!NmiT5h_uw>v{R%O_ht{I%US4T zSc*ssZ9t>8FmUlAfV+8aaFx*FUtJ_>qbzWP7waN!+ieHiJc7Ww9x$84SWoWJBz0Vi(Q=8LxXHQ3 zwb7QKHpbkI!0Ljz3CHkulLcH0U?AX?L31KOg21LAgxCZ^m&A3I+E|*o5uwY0D~@Af zYO!WiDyFQ~e3@Ew+#1JbIt1i{`(QP&&4mE7GOvF0U1E`f=O)rAe8w$loL3u(J;hD691N@y-(EdxFx8~bb1MAMCoWwp4L zW*(qLTw~VROt&ehW18F2YH;pzot?f8rxG{R`aE#c3P^XdD1M~DS*SYZ27E0wYC>R2 zRL9V65oSm%%s4%PQECp*ezsb}m4dXHlRB!*6rj$%Xj&IFgU7qT7Sx%&#paj>)bYwH zL!B{3KsT;qI%$*AQr2HtaWf=Yd9{~hD&P0>Ybsw$^t8en{pD`C2;rBNi0()o;E5o z+S;iYbL}wni-5TTp-JO-ww4CJ(n3myv&Ig394UF*g^W;2GELJ>EaVOjAg|Vjpq_bO z6Je~Dpn+k);M5DV#yh<>Ju?}vIaxT{6t$k^5P~^&0;V`IED2zUBAneyh=$aoZ1oY> zV^}9){z}N5WJ7|07e(u%R9z#${@2^!%ka*A>#95p!LUV6@hX;D>gi<+@+`u!hv{?; zMjTons<(xYdglKoq4Mi_f`WiLCa_m>0j+_G_?c%teiA3b_a-pcrJh+yz3E+j8pqB; z^B#a5%gUC$eg$m-4p2O%*)D-i;E0$cWlO3-eJi$>ceNP218Td{0){Re$*3KHgJqKh zu9Lw!W^|^J(N7!XolTDw{+x&BvJIhGNFA?3f)nIGtKD)W(J~-ww?(Z zQ9PH2E$5m%Ws?-(6WcV(Vs7Aq3>REBqlwE3b8VVLJWk-W3fQ0l+-MucQU$EWTHP|% z+qbv{x-`d$Fpd5zLwoAj1C?u zq}R=&4*4?M=P0{00tRZ(91UhQGNjCEjAEK*QIq7t%TqzDl65%?IX7m?+&s`qK$#hw z5(JH0F=b{3--K^!^os~U@7Nl{h%+87dxM4eBDi%GM@yoef(MdD0%Y(EQjw!^J2+0p@*!PJ9*p&J_p zljZ`TZ%)NoN#HDIuVc25=-w(Iq`G4)SyQ99tY+@Hne6h9(>pQA&N8{j$%xf4q}UQX zZEVku5Lktjvge#L|scKsU3ErCUt7W3Bj0si1)s z2^(V?7%7;PavDM&i3F64AVx5gHfpeTX~1rB4(x}ui_H&BS0Rg8gw79z=BPGQn(Nqr zQT3n)6S1{g;Ln(}89T8gvpGx3WRSqhG1G5X`D$csp)Qf%@m=UQJd~S8!&*cGF%=?9Jfny%Qb|SNwSgN3RCDC zW{A0uxgo%1fwi}ZruoB`cy^S~)^QqGk2N`OgIUlNO`v|<#c>xvTDv&BKkS9uuxmDd zpBE&Y0<N(V<3W(XgaEf%-AI$S5^=53NG}aoqnbrPl{7Mp z*aO_Q;TFXjBY5p^MO2>P+Y}vcBJ#rar8|zNk?Ud`f=qbqd0%GG?lYPMTIVhx?)n!yG|w$%aax^ZTm0n3B-wJ1%(HN|A>079 zkfeGUIo5!l7wCuogDD z+x4)?4o=d?t&HfP?KEGEkYUC4xzg*!bBnr0@DKi5l)(c}lk#!7HoGuAVNoURa*ErX zLZZw~+-}#AiDNe1VewkqOUt@a*zCs&$xdr_<|tH<|A_$mF)L~faBCm)L0wU0X=Vor z{4leE2{$q)(ljjF30B(^Y3qYl3#`7`3DVrP_fZ!zFeTD+=2*?PQa;9NTOP8MkUKgJ zMs7+cA?~L&3bvniwh_RBIRthg%+0LJQ}?X+H$v8+EsVwqDGp{7)4?ec1m=e`YvXKq zICiY-g?7`>j+}#~GN0VCiI{gs$V809tWA zt!PQzIy5lf0XPc;ZAns(hC?j49iJjwYM%{T&jPsFuJ|dsg)4E&?)Xz&o8|#GvxRmK zD;Y7T+c?|S^+D8?!!3Oz>lrG!@@SQP?Uo_SwstDaE*B7`>$7TWwg%0xk=FFtg?2^! zoQ(xmrZ~5MEwn)y?KW=szS=u6>Jt0Rx zS<;R6&_FV6<7#Xv|LDr+%I*T&L2$SYFn(H<~Ep7O4*YomIJGiEYPReV8pU& zX9IiAk5I6RLuhjy|BDm`rpc`F+m{|_FntCbV9V8%Gr}P*=DHP8-$i-8Xcjx`+{l6N zV|D;g5K}#R6=ut3T7X(N8|I6L!x^D)I0R+Iv*Mr8X~sZStz84^j$SYp~G7wlqg*J5AXMd7a27vRbdl zp4z@7Lqw_`uh0rsPfKCi&7d)WkyVuW6QQjfvUF!Q8JOG*2%$SGuCWaiDKfN7-2FyE z%Y)8H==@mjBc*MiO5qpV)7C+1mW#T{C=rxnmJNi295c)A)ud*bRb>)Q^D%uSu-Pl2 z>*y&rY7wH!gszNC#Mq9TX9LK=mRVA6J(FK|vMebp$s24IO=$OdQ!Em4NsZ>T6LJFP zwbZrEXj5^E0>T&Wn(*|cYA2<_1k;F^?ij2Va1Pevho zn#3j`?ztc4J!U>ZO_ae3S~c<_oRhJBZ4oP?J%eo_Sv9$f>QESXC?A~>%m3vHtRD45VPpDB5G#Ovl-N7uj z@k*O)W!L|J2w+}MKzC-Gp%p+&l%J=xwjm@Z(@2b=IoE*u7=Us%SxwmwQ3ky1W4YRs zCU_iF2_ZktSRb+VG4ny3#5V0%te180rh2<|OK3g^po=!ys;7m{D45<*1x;oYxT{0O zqeB*VYbN$8o*UFi<;Ji&2&bD&1S6#Ii%TLbu+cnN`+CpbRDOnjd23GB|(m6WB~PI zw3Q1&n|DBJGtKHS&mI7~tC40^*qm>iGv|Cld!`gLS-??rJJw0D_Kncp6JzlNyO`#Y zJafg;Ebv-1;TFcy3FZ#edYT!ZWshe_U_Cs|jTiFd&JmInJ}$?Y%RrMd8aO|Gb|sU{ zrU0Zdkh59+jS#Y^-fEyecnH|OcGqt<54t7^{c|Whk7mc2`#GBjBJHAS%h{X|FT$1+ zY{F!-OK6!!cXwt z^JWDUw3)lR1Q;H(b{5!Fz1a##n{zMMQnSLyRr3mZy#)yiutv>{0Vbs?F^G0+2UrsU zyKdmRFF&!%wx7CTGkJoohPXWeieB>cl^srnH&egO?ydr%ZJNtSXgQg+BCx`k3r2vc z=G2@ij3@L{j7%Dnja z#e19?zx<-VHl6=)@@LoWdve>)en0QHuRPiBwp}-0f9>JXUpIYl{iDy1`QV3-Mz4SK zjeZk{E*$mn`}e)L_=+cPcyzDGvOAkM+_=YK>AWM)jt_i$(EK-VZM=O!)0h`ND|=}3 zPgb6H-;}-Qzq06)*?0V*_PxnxoVK*+m{o%so*2C1^uC`hUEe={<(r}RAAa(iXFu}T zcUPSHVd0i1`rX#+no-}o?ZxKiwxv59Vur*_A4_NWN|NeMm;)=14l{`Fk*B_q|d$RZB_g~t7 z>($Q{{UmbcVY`0+r2*j!&-&JJq3x@md+?aV@|i{JH$K05-$!rWf65(YXB5OvIOzND zT=j=>%@zGuR9yeseQQ<@sXphaU*5Y%pA(T!h^9=PD* zo`-(a{JY|74tuinqC1{GX3fJ-eXZBSKRjjJo<+;n)qQ>V{liXs=HVB9Ic~rukycB=c0avQoay%W5Yry}iL>5lpM9rm<2?_k^SVKCjp=Gp;6hMW}6 zma#)VCNA$bBil2qyPQgnJ1K0xJQD8w8m})F``j;|FlV#LZ|(}MWbB)ido?@E9U?9U z|8Im1+F^U0JbRrsPw}h7JMJ4@-pv6W-uT|}i1v5Lcid;LFmnoK5j*Z<242&Rn882Q zjhF=#Jp3kpY}`3f`dw*$kEhf7>^n4luGX?`!@y}z959UztC_ssxkjf3C$P8_<~9v` z@$;y%Fh9m0iw*Lw8*h)z&16>cUCwt2-+6o!d}r{TWZ#Rv_*+W4624)+MSKIk+c<6u z-;I3N@?FVyIp41NEkQPqZ-Va(zFRnUBVSq}*Oj(p-Y-3x2VRe6sSR(S!FKdGF#qK9 z_!H7kv%UI_W;NUdH^LPw+A`C=5(Go7h7v}Lxzt@pNN1{RRdeQlX~SpPs<=4Rv1+cMkX(g)izQ+Mb554B~M z!xfLTWj4ctwQZS?;igC1GDCRxx&HCC%nZ05@-wu-qIGSVHL&8zw#;FLaD7{*#`siQ zW)W2lG!5;7#t^;n`(3Y7Cmp)59z>i;S%k<_iLic`& z>wxtyvmX}!mg_Wb<~m>t92nw!umaY<+Ll=Wi~m46xCw576DBKB`@%PfY)e{ajIhrN5CCwo)g5c&WY@vij>+UH}q1{UzwdkenG z`C%U;e}cCL79X6+EQ3q?W-`6^AzxT-EY4(>!ioXB-wKBwnaK?N8u`OgxB}K22l7rV ztQf?*pK$9jysy14`5v3e6vLs%aUR$Lm%v5vX1ElthAZF(xEgLT`SBdTAIF`*^}u>q z4p+cwa5ap<^>7~C3YWr)p`0I1gKJ?ue8G4k*V~)&oJ2X`YS;n`PR?W&n;hN@E8tpK z4>!X_a64Q9_t>9uokAak(@y33;R-kvZiO*8^fdB;EpQE754XdD(>eYCj)UcJDVza6 zhD+h1Qqsdsa67Ch<2(nFKb!`)!X{WejQWH1@J_f1Zh}LHV;A~xURVs*!x^xkoa=y0q4Pbcr9E6 zSHKl;4O|a5!L9IJ*n2G3e=y~QVK@yAfi1AYI6jkE1Q)?&a4B4A@(Jicn0kUUVDE|4 z1FV3H;IuP1kL~AO{Nldk&->t~z-e$2To0F8{LD<|P1piIhl^m*A)MzMnap9Zp7+EP zu!VQL?=+rAI=BfI9ZLLs+8HjIPJR}j!FgeEHP>?(`9wJ0SdTu#-cj@pE}BLD{fNgX zKb+Rcb;05bGntPq4vP+_{BRsxn&i6R3b+i`H&K6ZQ96?u+8_CB+8-`z&SX}>X|0qK zw#-2vi@AR6`czmC6R-s?f?K~yd13K<%5en8FQgoBHQWeWzRh_o4towDJ?sq^Euuc* z(91av7Jny`Spe6=6>!=Wnan!adolV0SHsUuekI2r$@Rd2aOhRE2iyc>&_0+G_vtZb za?qotsK{hU(hnJ(G!RlMuGF&=81hyNNEeNR2Uj#Q6w+{uGc3WHKCMys*UzIl@)ceZ( z5uxzno}6I*F5^OzX8ThQ%bsa02ivjJIA#Om^8e)6YdN;`_W#+j8##8>9c`Ik$Cp4`rG|BX4Dfz|lQ;vYX?nmVEqum!;yXW80qf70NDV)|tGP1DTOE}ys zM_Hli)yL#}3jWXDmOpy+-8{;BRsOJ0_{yFmLdAY+o(_?{}j$N6cMK; zNv`B$3azcn^MjyhRa@pgt8=HL<4i{@Oh=ubl!qqe-R+B!(^0gHAuX84vFq@=rm!81 z3eD@8H?mi#pv>jFjC}?7w`De1z9T|K3-iW?de6@vA6mOhDztu=(V>mIL}3~6TCcrj zp@I>G0VXEc#Ieip5*ueu%F(9oVOwZ*OGdkUeAq zuIZ{gF8WHVpT*Yi7IIeFb5v+$cywrOIPcrNLS0*RSYZu^&LE$4bkS>?pIodJ5n5oTty4w#?ty?zX(6LMwbx&+4Kf z<%MAmDcB_lHgo(3I(~89nV}LochQJY!5B_r^)!$)<^vyUY516|6xj=1WK)rC>msX1 zw#UPrkDZIGxQlEFvT|g&6Yf(^cr&s|$UZX(ZLv5H!zQ~mCbY4jDzvHK{Lq$yF`=ym zqeI&YrXb53+she5Z_-8;mT>61`ri&h!{hgHeGpe*>haO!RSRb}|i_Hzr*^LOD@4Kc$YWtD7K2~mRKPI%YXWp{V z>YigmYkOA1G6eY_cHiqpsXf+M{>&+Gncc_ikj;nQL{_fyc06YneH#^89Ud3ja!B5U zZgp-{p&REY`o+Nb>Ekqxi!opMKzgrw%Z?rD zKly(n4;#9u7;l|y@UinQ<@kZjZ^p76jLo(As8D!3XC3tfr`-@L7{@@@d$=pYs3$g< zJ=w@{}iVAdvvI%JXB!ApR+&HNFUqSmbo)`F2>Gm`pdG((J%HdAni8N)>&G{ z<@tGeqe2Cv9ZGCB?zMQ^q-fP_!75A!Q7m_eE^t}L9kTft``8nmQxUMZTA78U1^!mP0$3&-t&J>E5wsWt&0>whzl4cU$L4m(GeF~Hel=VxjBFU=d#?I|jJ z|GtyFKHfc(IoC4hV`Jl5WaYgwnNLkX{+)b!%tLQK0G1by@!JgN73LC}oNedpo4qYS zS3W17d%Mdg-65Y?_E6?)q%GyR1%<3Yq|0r+rOeP z?~Lv$-PzbRwx+db#*Y!Ba@Won5zmfBy!BnO991}#&wVqwG2k#{ zZz3x~HjHi4^Tl}$Hr$3OZEnoAWA|W9Zz$eT-}u+2)ROWwmi4|NO2^Jgl&oV+*K&4F_d1CtGH&J(w_Qy#B@$RM!T) zj9-N;SuliP3u#d)_c2)o!R9Wq^N?*qM)l{?C6K*<%oz=&C43hk+lcIWOXb>!bIZRi z4<+($@94@7^YfCzcBCY>|SsG$fulj;x(4f#GIc#(|W@Dien1VT<tPn8;9%!JBIT%l6VN4 zML3U5$j6x+UA!{S^#kg2Vb5wB1~bP3(}==}*-esJc`G<>aX0zRK)&jKkl#{{+t5vZ zE0J&iH}kXh*~)Qy^vh&UV%z)AO|E_HntO5qCG4AO`?_3nBzMhYJ6&^_q^EG)G>%(r z$DvPoljwsLg=Z6vDjXXsu)JrGW*uq%o%%F;WcNEZb6kVv?Q8p?BR&iXo|Bkx50eJ=Tf2Xc3znTYEjv^8PQ+{ z!JEj!Z2LZTj_YGqrn&6f+9AE!@+HW&BQw9vr#}O8GNy1iM>+e?{+cx{sB|?mxcSK{f-K-HY6U z>^GK*F}b6!?b>q`i)}N!X5_qTH!CR~-oeiiauO)T7n`F>s*=fG2Ck2iswBV?z@bvb`sJ-OGpguFWHL2qQskR59I^D&z;5ZP*E zMY*{SIqxuEbiOUKiTwO`QQ2-LjBd@=@|#P3EhU-E_5VtK%XiIh-ublO>Ba`~ThBf3 zjy~QNWZRJe_c7ng?(GKL6OWq&JZFtS6dj#3-s8s7U4i^wZRUUW$tON%B*-vmLVV~_kxy4R86**>?N{F-=f;B4}?PbuG3$krlTYJ%?jS4m#i zxnmi=v?hv{$H(N+hvyG^SbgmzkNk7Y=60O=vK(`<&*c;jJLT)x1D;8ElWjkKcd^@c z&tY6>W#7CzyW~?=XnHu8&PcKoqM|fG#~ZL zm3jG@?(5vyIV;ybJS!09S%<%Mlb^dcrZo+^_*Ljpx8=gr2IrB_CZ2(q%QiY)%E0Ot zh)qvg*mp|#zgXtAJ@SL@6*hOTc0Ku>H&VW+^QF49g{|)5z;|j+97romPo8mD$+4$* zbGqx?Fq{bT=g_s%xv1kCn7sRIrGK_?u?%B5JLB&uZsXXSId++j?bx>|hpkC- ztlib_Sfny{pKxH9dE&TsTV!=timWHH`@Xopm)i={;(t5Coa*_X|1dmqJ= z>p_1nf;%9l1Jg*efi%C;xjWW#M;%y_m;X)c+g)_P*}qcqSx!DvdA`P;McBD7T^?H5 zBX7I!iXGdn+_jrMb5k;zXJRZ5KGrusMz(nhf49H{j5pj>a(&b01N)$G+t`;Kb1aFq z^+4oXk;iQ-aqjD+sTBo}r#^dt#%|LvH-q+7YF(G+RhhenBR4Ylk!}%H|STnx2PIUedgt zOEV_4wnyIgeMX}SEln|LmQCOJx$L^ek*4@N-yhlnSO!^AP-MDZKq`C_fu zD9#q=iu1)q;&;Vs#p}f%i+6}W6MuBPFaHCIuMyXYPm9lsFN>SSKZ@^&ABZ1`{}6YP ze)kgh7JG{ai-(E>#AC!6TYETtK2h=0#gXE8af&!ioG#XhjbciiBhC}QEnX#FCoU6j z6mJvn7FUT6ijRp;i_eL_6<-x!7yl%_FK!n<6?^RE+i5p(Pw}hbfnr~=zc@%dRy}CKz4q2u}Iuc{JPjrJW?Di4i!%mM~J-#`g$C%_+;@c z@d7a-#>A93N1P`v5U&)k7QZk4NW59RQ@lr9Ej}Wy6T>R!Q;I(;z9?=h_Sf->;#ea{Dt_K_>}mZ__Fw__}2cuKHpOOU2(fO^+><}GsOe>8M}&mh+h?Z ziwBGS#6jY*;)!CJSRqan&l0DL5pkAyp*TmpRJ>fgO1xJ5f%qfwHt|mJXW|3mL*hE| zY4JJnW${(u zO1~NuPm33cmx1{w!;6ZaIq zCiW2z6@My!Vu0d<#S_HS#By=8I8i)PJWs3=>%~SfEnXzf6BmhBiPwtPiwDa;Uat6U z;!nl<#0SO4#HYpQ#Fxe2iEoHo#ckqt@gL$Y@~ih0za}0i9xCoC|MgVaMf5Szq{#0BCN;x*zj@fPuR@gDK#;=|%E#b?Cdh_8sR ziCe{O;z#1=V!q~Ih2q{~Z}DKUSUg%hUOZVGE{+u^i)V|KV!ap_o5i`}0`WWIcg5?( z>&2VI+r@jtUx<&2Pm9lqFNuE;w~E`ukHmk7yYA=PHze*S9whb?2Z_guCyB$wQQ|mp zs(7wgB}T=?VSnDZ;!Wa3;yiJoc%^uac)hq>oT`3$tKxTx_lT>-hs4Ll_2QgEe0hGQ z`19h+;%4y;ajW>A_@VfT*rT`4Z#QvIafQzFRmJxg!(u;ifOxccg7|>@p$MLflzli| z@=@Xhv4{F?qvoZPC7&id{XuC zJH_7+-w{6$KNbV|LA!||abK~Ic&Io)94rnMPZvjs};&tK=#aqOmimSwj#K*+-;;+RQ#aG2Q#lMK##m~ijjSq$5K4Ks7FmZrb zA|5B6A`TbFh-Zjri!;P}F)pUXR`F7C#<9M>7Ad|&{4eo(@kVj9)(LM_{0{LR@#o@0 z;^X2o;zn_kxLJH%d|UiL{JR(&=*w9k?kx_J-?P8s2Z@J@1H=;XMDcWSgg9E9D4r#r zFZTPBpHJ5)9u*VfY;l#wy^9pTOuSsYLFK(l@oUBF#XID0E?0boc&GR?@d5E6@iFl! z@mcXj@fC54_?Gyt_@VfTm=W{)sNThp_!aTd%&c(pi7yilAY&J({aUL{^5eqa2Nc#C+ac#rsi_@MZx_>}mp_@ej& zjf0yNe?xpn+$L@pKNIu6?(4CaxVN~!_;v9RvA=kfI7B>AEE6ll3F4XJ`C>$zC0;1b z7B3bTh>OMViPwqOi#LfY#Jj{*;u`TWalQDg_=5Ob@%Q2z;ydCt@gwmwG5;Xdqqw)& zTl~6sh*&HhB@Pi!5=+Gjae_EiJX@SD)`&4NDK?82i}S_H#qWy$B`y<}i#LnUYklE% z#qSpH7atbat6x5@_;dYzy*#b>M)7mycbV+YCdpqFZp5d;-2C@ zS-Jd-{S`k*>?aNoj}~t`+Lw2T;wOq_;wUkEf=@R=@hRfDVwG4YHi${FS)41*7cUoU zrB_!gzEr$H{IPhOc&B)e_;c|Q@k#Mn@i*ct;ui6b;$OroG+)@R_$OkUxSRa>J;Wm= z|El5#iie6vh=auw#ZqyUI6?e|c!5|g&JvU2MdGF6cf{|BKM-#eeguM@8qd&|H4vEn}w?-o~y4~mb8=c!*msrW|mMe!9e z`e*O=ysr44#COC`PxsgT*KAzOi23UGg<_GopV&w2EA|%$iIpoKP!D2x_pWpF{ z=js05sfy3l_)@O;JF4%oicb=!iGS94E>OHioFyj2wAe#_^Tmq)T6TGX;@=UMh)cyE ziMNP%i1&y;7atXWDLx}UFTN~ZtM$FjioY)YDZBqfUr+BT{*m|(F<ql(LwsA@CjMOvq?fyhdx|%!9A8!ZK(Vh_ELN$UC5nHn zapeTXPZx)aqs24CY2pQ9M2w0Fu|@o*_-*k@@oI6Yc!PM0c$avO>g_(o9~9S#cj&sG zR(zxQqPSUnP5iU?f%vi5L+e(%iF=4&6%P;(5&MgS#AC!0#Zqyk_)F>Oc*Q4+XNl*D z5wSr`i*v=x#ARBS`?liW75`hjLA*)4P5e}Pbf@C?h^xi5;*;XD;tS$$#n;5Q#P`IH z#G_=FKT|wk_Oh3_MfYoq6yHbOUkr==#iPX&#M8u);y7`#c#b$-tQMnULcBot*JmsK znC1}|DSoMVxpd{kU7J}X|L{9jW158@xicg2sy z&&9i?&plPYdx&2V_ZRz$hl_XVy7$-o=19p0i$lfJ#bFxHM<_l{d_vcKhT_x2^Tld0 zD#pcT@nUg-c!jt`{BQ9F@g{MF_*3ydagDf6d|Ldq__Fw_c;g;^JbP2|cg3~3uI-9{ zF6OHr_7e9N_ZP$B;i}*MiVqTx6;Bd}i=)L!;xzFBu}X}JjbfA7Dqbos6t5Jo5ns@C zeP8kA;tFwh-Cwv%@%zLz;$z~I;g3LG|^DSJ>$I-4yW~aUzT!b*KXH&aL_Ap> zE{+i=i)V{7#5%E2oGo4~&KIu``)R%FYQ?`V-X#7+Tq!;vE|i^nNbz;zGvf2&E8=V7 z+u}Cy6EPU%>uY!ME8_lQSS%Kg7EcgQ6Gw>S#3|xg;(WFLK&=;CuJ~)xj|-IUJ;iGj zAFXzusd!xcOzCDTez7=Tyj;9WyjJ{yc%!&N{Hw~dQt{rp&-Z}hYsAOJH}~-M_LSnk z7GD%Mi*Ft6)4i6Bi+>hB5dSWICgvUGkLxAwCGI00Aodmeivz`D#i8QqV!1d@oGP9p zR*6@uo$3^C5R+nyI8R(CUMXHHE)#DN?-EyuzYrf4*Ne}J&x^kmw}^if-xWU;KND~6 zVJ1}Z?U)db+Ml~P&`IFSsW&g5hsghi_^u37!#A?9C4obE%6HR8u16>a`9I2 z4)GpwwfKZ(^JH4~T^Hz2a)|5pkXPlvtqo zzafo=5I9wbpo*{liJXfp~ zYsFdOg<_uU(QL)%ikFFt#3kZ&;xh4O@pf^gc)$3N__+AAxKVsj+$_E>ZWXtQe-l3! zdmQ8Ib2l+0eofq842#9$U~#BeDvlJ#iLa~urzn25_#@fP>5A8gGsXAxyhB3qv^ZD1 zOk5;hC0;8o6K@hvKGaW8Qn@j&qq zu~@u9>kcJ~pCFzrmWdVO1o2F9vDQbos zsQ9F~LHv!lNqkj&P5hJip1587RLnchUw?sEB<>@AT|7)2APyF9P=7c{@iOtpl8;t= zhV*`-;%AEIiB;lEF(tN$mxv3+E5&QXrQ$O2CUJ$hQhY#sNPI$kMtn}ZKjiD>5ZU`p zlD{gxA-*lXFMcHcL(J2<%5Gvv+*f?%b$>spkK%`j1H=+>g6!z=ik~dLsd^r+c!fAo z9H8=lL-F&)8gZ6*p*UNdD_*7b_<4#i60a1m6K@c25$_Q1mY&_K_-gSH@d@!+@g?z9 z@pbVX@k8-bG0^h{1>#=fzT!b*KXHIqA|5Z+%Kn@uf4N%i-%s zmEuah_f@BOqu3<2h~E^yC0;3BEiM(8i?@k)iT8_Z#7D*T;zsdBakKcQ_>TCY_?ehL z)c1o@>Cx_r?=9{xhQ(s>DDhbFM6pyHDUK5-i+Aqn&o@o+8RE=+y}VBGMlmI}ikFD< z#YN(G#cRbCYVT!=-z@$_yh~gq{z6=>@;##X6XIRU?^lYyAZ`}7h+D;N;@`wJG5i9V{Xy|cv0jXeP2xr3Jn>uN zmEzUnQt?OP&EoSq-*+@_{zUS-#rwnu#kJxS;!>{f=7G0W#J$jf3{2f_g&)Ky2SsX_#QqRewfa0WdF9tcKd^leE7L% z_u2LxUoL*`*L@1a?C%?Yto`;og!akq|ESIX-0{kMFSkEWVxJQd}!;6t{@m#Nc(EUkr;SVyQSuoFOK}dEydrxwukXD{d6Gh}*>A4V_;MizQ;I zI7yr#Cd7H-5^=e>Qd}!;6t{@m#NbVxUkr;SVyQSuoFOK}dEydrxwukXD{d6Gh}%Se z_WyiXurcqSX4*r0M-3l-Qn>ics&r#hIy`vrQA3U@88kTUqJu9v=9r^Oh8!XBKh4hB z*`C1%nXakKKJ*BB28;9kp0E<|XHSssnBMGV9>1o(M8D^fEoX`3%O!tQ`J66!;(af8 zO7e-4mu~X{_xFC;w7>sh`EUE6v-}Flmw(tEMgC#Gr1bn9W-N8_zJ%R&+wJ-a2ER(!K>4PGl-u(?v_El%o zzod5eyMvVErIOE6KJ&8j7dxk4BKejVI-mE4S$S5kh}&mnR{nhFeAZ^=zv(Q0IV*pz zv)o=+u?%iMV?C%6+<+glm=S}FmoX&kt zcJh6L?6{pxU!{EJb;-ZcrTuKUeA3Nxo5XsaIgbnya7bKE3k7B;sS8l)p_xzwHqm z5EQ9?vg7>z$Swa#rg(hZ->-uMv+|iuL4&m0;~D68PQ0?#Qj2Yp?c#>$Up;r7x8qJ5Tb1 zm43#5`Sd5NJV!~sT=J}+S)qK^p6W9wQ~EQVe7_*LLK&C(9W}_iyROtu`Jk;` z{JUQ|`TjY7*r%pnAeT#;6*<1^$qNA71a%Kj4cQq$QvCQ!m$TfZ(c~fA;Tz{6+H81ztW?`Q$O7`HI<%}QGe-xY@7A*J8)piiIu8vq+5FDmr%Lv_Gwl5cy;%WutQv|IOjbubgf?(}UhmmdG; zPM^G!srw)pg@xBDESe3qD_!pHsXV0fzJYo-5K9QTo}I{|W;~clEGZ`7D3PpSQpAd0g_~b}yeR z`Ad=~+m7YHj;N)Ab^78Dw{Xogr%5KM%{wU;!XuBguXY)}x z-QRd1LBz>Bru5q_O26_lf8K1rTOxVaaq|YrOTOjPpP(#P?j-+bcOrjnC-RS!|D;2F z{(3Dn*prFD-uPXm(l_((?Xxd(tIwi8`?&iX$ZQ@cd7?|dI8O5A(ubU#lzij2{dsTm z*}1>{-JL#spM{<70v&9oI>|G zZztpFa;2ZwMW637dEVYZcHJ?1>T9{A?(}w*%O{(voloyX{wJMx`L8?IgZ(XXtG8`k z>ftcfCr!TO9-lsIyGkYBcBz+V$KPp^&rrK$^)@DXu+*o2TKYN1$=l1F-MUig*WT^Z zXWhG#S@`U(9&T0oC0+cPM|YC{OWFK2(eL9=6TG*R^q(sI$^xJ8Zz||sJFzG4xqh0x zns)Ye>5GDJv(M*w?K*BJ`HbF){M?<$>y&?K$mg$S?zs~H|%gR5|#ee&w|WOyng#8J8xz@GjBi6L|DS`2O{La5+I_$87YZG z5H@m%Kyk=fBE(WatQ7bIfx?RLAt4f7f}8|_MXI`fHD9|=@CPIN`ps{us;jH3tE&5b zEErw`zJh}KgQBka+>Cj-hYAVy&y7+De*$ve1^j93*R;O6?s3(wZUfLC-V`}6;nCM; z&_6u`e|84`(HZzBXW*Zmfxm|q6p#1zS46>gLeIaQLI3X_pEFPUKZHepLkRTWH=|y9 z`waXckCUA{>#Gm^PA85%qB!b}=h5%`J&v13vkUseH;DZ$p8X1NgMESO|1scmD5(D) z^mk^+|7*~1psxNk(7y`&&i6{cACShpaYnrTSB~f3LC$yt0calZ^fWKKB0%>qr-9$? z)Q2mCbKdXn7p{Wdye5M0L7WVLXPx-`6!1AH{$=R%tjF6r^4&*4f9ngPr`q8a;CB%p z{uurKgW?z$El+>FIz#>&{eF4QWXSJVLH`cmhuD9qoUhEtQxAcDSY&66|mXH?EJB1iT7FmQwXsP_5v3^`u}{oxOboR_3AUj_aI^5ZW{Q*U};1Q2EF&-wF9K@C@-y z{pT6rEAY?XgdqNV@;t7i?-4yUA3g7J?X7NKnt}h-4E!He{;!LCDnI=7P2ek?{nR}_ z$od?=e#GNc2i_Jr{{)iv0$=FF`S$@o{4JqJ7&X5;L;mBSpZlcH|B*E211cYJL;e3l zz|F^n@EfrIb2H?>2>K1|BOZtTuK<6cvyb}{;d8Ve=5G;19n5{PVzH==kB6fX~A|8fX3o_+2b$EN{bqo1W$0iAA3^$p0~qx2o{BCC*EhzqZ(enZ5bP@O=&dt=Gn}p9d^wyVy8Tija&K+!+ zJ_3g4fY0L{@2^Vt=0)Hyyh(tsf&R~dKY@LR`t1?$BdqHm1^uhQpI#F=%P5TQn^DKU zncg^HJ9ppbx_`!e-4FVW&N;c+4D<3-FE!Q%gUFV_wwVM`(hH3Zr+I8$P#oC8m1$O5 zm*;jbk4k65AdUw?xMRjH7`nW^563RtvDtL6;|}cJm}ujuD0^9um%RnkdOC+}4)4e24gCX^q4(upTCzi(D*4RIC`!te5 z9~9$Y@$?xxn2ts+@0~MlH;AVJnI@Q)W1CN7SCPURAbr?`u?rGEjNVz(et5>n@I~rr zGm2uD1T<(cpX$&r8Jd$cw?kJ3QCuk5@-fE64kOJ)UKS zg8X5a+HJB)5Zhsy<^_#x--PKTi(To4G@B<<*in>3Hpuhfz`CT&56md%0Su>;$pNu6 z?krK3Ez=A2qh#BN6>PB+W#R!v7KF~Yq?qQ;Y`fB?gZI0z zwB&aalMzp8h1F(du2biGVSG5vdSRLrWtOKI4G5zhr|C`sZk|=Aj9y@iBNz^SU$#uq zb?Y$%`Z+SYE-#`q;bp+Xv=&l5%QKDL50ZvQu5;8Enx6Fg27^V4y-u@@(^r=PLfaul~tX$3kzz&ucjSGik z>s@p-O~R6fW5YB%u={2Z6zQ%db>C)!KExWb4cJ-n)#gj4l!IB+B3C&Vc!lvhQM+UtS?5WN!3Dco7 zb-2r1?v0}JR0iR=PabuNg2TFZFo^0GTluufNiG;AqqI9R8hcW@{nCcMZ#>QhJHyeU z9Z!PLiuEg%!!({wl4DA5`eks#QOF^s9oZ!G(XdS8bdOdq`O?betNpd}cCojlN=TsM zwFa$MheI0uR*IpFgJc-9_5%*_G|Zc>HEU`MUR;(Y z%@)yiV%;t!0Ujphu@<=ulUz}TsWyQI5*u+N3l`p5MGNaftuqRjM_wT_P2wooX>~+> zC*dS(Vbv_bt)z;foHq)$BU@bZB@n8W6G{r`)h}AXK-84s_(f998fDai=8zT14qA#- zlP!|`vVsdDDv%SIiJMRWKAG_%=l_i|r>PkhG)aEBK=nr1a%}F&dSptj(#ky->{!ZV zO5+oO-c;+RauVjLEp9oH^0+AU*M?u}Et5iptl?u%D)alWNI9CEW4jzPM>2y&3?(LR z#G5Mt=D=I7_6?15FHP`4V%~l&+ORo8{oN_@Yt#N9v zFdw2l;yYUnLzi&`OmplFLYjAnT90)|^XO*aODPFM$L6XK$0NVI_ zPdb)Vx49I=l@p2iE~L{z?8Kd#sb6!xaBjL%CiIGnsT{%tG?qs{k&xB)6q<~t`FKt% z2VoDZrmgZ5HDyMHE0wZ#cd=23`JK`vF6X?X6OEvQmWMwK_6 zt$4KhqryYHqK*;`!@`@T;2Fi!Vr)h}Y*!NNv4|aI_|7|vU4x8x zpFHV%CVtXS1os7Jr9mAR>WORRBEM@gRZgMai-I=sQh7)p8>;r%{GXQ=f#CZMxM> z!D$4Q&57AW98=b}*0qz!A0)J+fDpVW>){G%b5WW-CUCL!FQf!f_N2tAQL(fOIB8nST-`bo9dKLRzW# zI+{u?+I>i-g$(auhE6zth=j<)|%D6vbHOVbM^Q;D+8EitXtpj{;h7nzZR##Y)4CKV_arsy;%3QSb(1r24? zsi3N)0f`+x*#;$_EJ=_3qMvwrHAz)XX}LM1O>>_5O>LRh)i8&!laCp-TirGKpvCr` zhK-JCR9y3R{Dt;oye)$zPds;p;I1(dQ95U*SD9r^Tv5tWz1+rgVT* zN5EoA6&N`|RZ&|jMc%P(iFAT9wPSN!Z zo}7=bOmBFQP#4nD=H5RczvBbs){UiSxr+m4z^g1SP0t?;_2^}9JEdEGLH=NReq++( zGkT&PW z!N6l=+bKW29qF%#{$-VwUw@}STm4-Ep%xkXn%gJofBw$D^6U5fwfzGStNu!-Eq@=6 ze?vg;=kX@8wzt6F)gQ3=AiZFlD!=}&fwtq9g;M+Pj{i5nzb0hW?gT$H?fNVYxm|O_SgJGajH_ z!L2sRr|k>$pvk|Yd}t5ibLJ|CTBahIwT~%OBU_{=5AwfL}l7q-;#fSF`O5(La9z{73iu xTf@J@!nsDrt?~O!gsJXADgUkKQ8tI$34;w1j*e+vJ*It-m#^KEwtlXL(8 diff --git a/build/main.o b/build/main.o index 526f0c3961094bc3524ba626133279cc439efbc1..d58f44e446062676f4c12b44cc84b91403764722 100644 GIT binary patch literal 108808 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 literal 105832 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 diff --git a/db/ginxsom.db b/db/ginxsom.db index 9162a5e99928301d2831047b105255616ac73441..e8a339e2e1dd775c0ad73e3ad85c0ce4188f1831 100644 GIT binary patch delta 724 zcmbu7J!lj`6o6-U_AqyteRrS;{&3ks5)yD{Z+|Bc3>X^;m`bn+x!K*>+tYJz$!)+! za@yIcTLoLOOK}{S!+16pTBS>C719bK#L`&}L<6a89y7do-+VLg_4{(aFTc1Vt-ic^ zOIjT?-#`VcTL_lbAL>?KtxgSZR3ECF_wmHjNvtUdaX&OIBe02W+0=+EpV=fZLhc7H zb^HcpmdixOHXCLjqHR&jaHAr}4Tl<}^y#4eh_$%>Amy!i^yK3`S)ir5K${+E_=HeS z4HgmC45{S>q0O0Lxwh#T)CxV9f~{|7maq z>jv}@^y>@dIIeOXyTs0@euj+UxMq6xxYnU04I_d>LWK}1Yo|2eA;W|RG{K1!YOq-~N)ie*N*OhcJc5ozH;&1%>Pk-*0+4VV-`!~~6eNhxQcX!{rk zNs?u$zkOeZhY z?c27dSt3}%opScQa&P}LY-@zA;q29q6-#wRZ9cN>>To8C4c)m%ul0j-Q10W(YEUt| x`W98?ZN?vSTl+2$EI=PE*Sh=~b`aVcontent_type, download->data, download->size); - // Determine file extension from Content-Type - const char* extension = ""; - if (strstr(content_type_final, "image/jpeg")) { - extension = ".jpg"; - } else if (strstr(content_type_final, "image/webp")) { - extension = ".webp"; - } else if (strstr(content_type_final, "image/png")) { - extension = ".png"; - } else if (strstr(content_type_final, "image/gif")) { - extension = ".gif"; - } else if (strstr(content_type_final, "video/mp4")) { - extension = ".mp4"; - } else if (strstr(content_type_final, "video/webm")) { - extension = ".webm"; - } else if (strstr(content_type_final, "audio/mpeg")) { - extension = ".mp3"; - } else if (strstr(content_type_final, "audio/ogg")) { - extension = ".ogg"; - } else if (strstr(content_type_final, "text/plain")) { - extension = ".txt"; - } else if (strstr(content_type_final, "application/pdf")) { - extension = ".pdf"; - } else { - extension = ".bin"; - } + // Determine file extension from Content-Type using centralized mapping + const char* extension = mime_to_extension(content_type_final); // Save file to blobs directory char filepath[MAX_PATH_LEN]; @@ -1704,6 +1671,18 @@ void handle_mirror_request(void) { return; } + // Get origin from config + char origin[256]; + nip94_get_origin(origin, sizeof(origin)); + + // Build canonical blob URL + char blob_url[512]; + nip94_build_blob_url(origin, sha256_hex, content_type_final, blob_url, sizeof(blob_url)); + + // Get dimensions for NIP-94 metadata + int width = 0, height = 0; + nip94_get_dimensions(download->data, download->size, content_type_final, &width, &height); + // Return success response with blob descriptor printf("Status: 200 OK\r\n"); printf("Content-Type: application/json\r\n\r\n"); @@ -1712,8 +1691,15 @@ void handle_mirror_request(void) { printf(" \"size\": %zu,\n", download->size); printf(" \"type\": \"%s\",\n", content_type_final); printf(" \"uploaded\": %ld,\n", uploaded_time); - printf(" \"url\": \"http://localhost:9001/%s%s\"\n", sha256_hex, extension); - printf("}\n"); + printf(" \"url\": \"%s\"", blob_url); + + // Add NIP-94 metadata if enabled + if (nip94_is_enabled()) { + printf(",\n"); + nip94_emit_field(blob_url, content_type_final, sha256_hex, download->size, width, height); + } + + printf("\n}\n"); free_mirror_download(download); log_request("PUT", "/mirror", uploader_pubkey ? "authenticated" : "anonymous", 200); @@ -1970,6 +1956,278 @@ void log_request(const char* method, const char* uri, const char* auth_status, i auth_status ? auth_status : "none", status_code); } +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +// BUD 08 - Nip94 File Metadata Tags +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// + +// Check if NIP-94 metadata emission is enabled +int nip94_is_enabled(void) { + sqlite3* db; + sqlite3_stmt* stmt; + int rc, enabled = 1; // Default enabled + + rc = sqlite3_open_v2(DB_PATH, &db, SQLITE_OPEN_READONLY, NULL); + if (rc) { + return 1; // Default enabled on DB error + } + + const char* sql = "SELECT value FROM server_config WHERE key = 'nip94_enabled'"; + rc = sqlite3_prepare_v2(db, sql, -1, &stmt, NULL); + if (rc == SQLITE_OK) { + rc = sqlite3_step(stmt); + if (rc == SQLITE_ROW) { + const char* value = (const char*)sqlite3_column_text(stmt, 0); + enabled = (value && strcmp(value, "true") == 0) ? 1 : 0; + } + sqlite3_finalize(stmt); + } + sqlite3_close(db); + + return enabled; +} + +// Get CDN origin for blob URLs +int nip94_get_origin(char* out, size_t out_size) { + if (!out || out_size == 0) { + return 0; + } + + sqlite3* db; + sqlite3_stmt* stmt; + int rc; + + rc = sqlite3_open_v2(DB_PATH, &db, SQLITE_OPEN_READONLY, NULL); + if (rc) { + // Default on DB error + strncpy(out, "http://localhost:9001", out_size - 1); + out[out_size - 1] = '\0'; + return 1; + } + + const char* sql = "SELECT value FROM server_config WHERE key = 'cdn_origin'"; + rc = sqlite3_prepare_v2(db, sql, -1, &stmt, NULL); + if (rc == SQLITE_OK) { + rc = sqlite3_step(stmt); + if (rc == SQLITE_ROW) { + const char* value = (const char*)sqlite3_column_text(stmt, 0); + if (value) { + strncpy(out, value, out_size - 1); + out[out_size - 1] = '\0'; + sqlite3_finalize(stmt); + sqlite3_close(db); + return 1; + } + } + sqlite3_finalize(stmt); + } + + sqlite3_close(db); + + // Default fallback + strncpy(out, "http://localhost:9001", out_size - 1); + out[out_size - 1] = '\0'; + return 1; +} + +// Centralized MIME type to file extension mapping +const char* mime_to_extension(const char* mime_type) { + if (!mime_type) { + return ".bin"; + } + + if (strstr(mime_type, "image/jpeg")) { + return ".jpg"; + } else if (strstr(mime_type, "image/webp")) { + return ".webp"; + } else if (strstr(mime_type, "image/png")) { + return ".png"; + } else if (strstr(mime_type, "image/gif")) { + return ".gif"; + } else if (strstr(mime_type, "video/mp4")) { + return ".mp4"; + } else if (strstr(mime_type, "video/webm")) { + return ".webm"; + } else if (strstr(mime_type, "audio/mpeg")) { + return ".mp3"; + } else if (strstr(mime_type, "audio/ogg")) { + return ".ogg"; + } else if (strstr(mime_type, "text/plain")) { + return ".txt"; + } else if (strstr(mime_type, "application/pdf")) { + return ".pdf"; + } else { + return ".bin"; + } +} + +// Build canonical blob URL from origin + sha256 + extension +void nip94_build_blob_url(const char* origin, const char* sha256, const char* mime_type, char* out, size_t out_size) { + if (!origin || !sha256 || !out || out_size == 0) { + return; + } + + const char* extension = mime_to_extension(mime_type); + snprintf(out, out_size, "%s/%s%s", origin, sha256, extension); +} + +// Parse PNG dimensions from IHDR chunk +int parse_png_dimensions(const unsigned char* data, size_t size, int* width, int* height) { + if (!data || size < 24 || !width || !height) { + return 0; + } + + // Verify PNG signature + if (memcmp(data, "\x89PNG\r\n\x1a\n", 8) != 0) { + return 0; + } + + // IHDR chunk should start at offset 8 + // Skip chunk length (4 bytes) and chunk type "IHDR" (4 bytes) + // Width is at offset 16 (4 bytes, big-endian) + // Height is at offset 20 (4 bytes, big-endian) + if (size >= 24) { + *width = (data[16] << 24) | (data[17] << 16) | (data[18] << 8) | data[19]; + *height = (data[20] << 24) | (data[21] << 16) | (data[22] << 8) | data[23]; + return 1; + } + + return 0; +} + +// Parse JPEG dimensions from SOF0 or SOF2 markers +int parse_jpeg_dimensions(const unsigned char* data, size_t size, int* width, int* height) { + if (!data || size < 10 || !width || !height) { + return 0; + } + + // Verify JPEG signature + if (size < 3 || memcmp(data, "\xff\xd8\xff", 3) != 0) { + return 0; + } + + size_t pos = 2; + while (pos < size - 1) { + // Look for marker + if (data[pos] != 0xff) { + pos++; + continue; + } + + unsigned char marker = data[pos + 1]; + pos += 2; + + // SOF0 (0xc0) or SOF2 (0xc2) + if (marker == 0xc0 || marker == 0xc2) { + // Skip length (2 bytes) and precision (1 byte) + if (pos + 5 < size) { + pos += 3; + // Height (2 bytes, big-endian) + *height = (data[pos] << 8) | data[pos + 1]; + pos += 2; + // Width (2 bytes, big-endian) + *width = (data[pos] << 8) | data[pos + 1]; + return 1; + } + return 0; + } else if ((marker >= 0xe0 && marker <= 0xef) || + (marker >= 0xc4 && marker <= 0xdf && marker != 0xc8)) { + // Skip over other segments + if (pos + 1 < size) { + size_t seg_len = (data[pos] << 8) | data[pos + 1]; + pos += seg_len; + } else { + break; + } + } else { + pos++; + } + } + + return 0; +} + +// Parse WebP dimensions from VP8/VP8L/VP8X chunks +int parse_webp_dimensions(const unsigned char* data, size_t size, int* width, int* height) { + if (!data || size < 20 || !width || !height) { + return 0; + } + + // Verify RIFF/WEBP header + if (memcmp(data, "RIFF", 4) != 0 || memcmp(data + 8, "WEBP", 4) != 0) { + return 0; + } + + // Check chunk type at offset 12 + if (memcmp(data + 12, "VP8 ", 4) == 0) { + // VP8 lossy format + if (size >= 30) { + // Skip to frame header (offset 26) + *width = ((data[28] | (data[29] << 8)) & 0x3fff); + *height = ((data[26] | (data[27] << 8)) & 0x3fff); + return 1; + } + } else if (memcmp(data + 12, "VP8L", 4) == 0) { + // VP8L lossless format + if (size >= 25) { + // Width and height are in bits 0-13 and 14-27 of a 32-bit value at offset 21 + uint32_t dim_data = data[21] | (data[22] << 8) | (data[23] << 16) | (data[24] << 24); + *width = (dim_data & 0x3fff) + 1; + *height = ((dim_data >> 14) & 0x3fff) + 1; + return 1; + } + } else if (memcmp(data + 12, "VP8X", 4) == 0) { + // VP8X extended format + if (size >= 30) { + // Width (3 bytes, little-endian) at offset 24 + // Height (3 bytes, little-endian) at offset 27 + *width = (data[24] | (data[25] << 8) | (data[26] << 16)) + 1; + *height = (data[27] | (data[28] << 8) | (data[29] << 16)) + 1; + return 1; + } + } + + return 0; +} + +// Get file dimensions based on MIME type +int nip94_get_dimensions(const unsigned char* data, size_t size, const char* mime_type, int* width, int* height) { + if (!data || !mime_type || !width || !height) { + return 0; + } + + if (strstr(mime_type, "image/png")) { + return parse_png_dimensions(data, size, width, height); + } else if (strstr(mime_type, "image/jpeg")) { + return parse_jpeg_dimensions(data, size, width, height); + } else if (strstr(mime_type, "image/webp")) { + return parse_webp_dimensions(data, size, width, height); + } + + return 0; +} + +// Emit NIP-94 metadata field to stdout +void nip94_emit_field(const char* url, const char* mime, const char* sha256, long size, int width, int height) { + if (!url || !mime || !sha256) { + return; + } + + printf(" \"nip94\": [\n"); + printf(" [\"url\", \"%s\"],\n", url); + printf(" [\"m\", \"%s\"],\n", mime); + printf(" [\"x\", \"%s\"],\n", sha256); + printf(" [\"size\", \"%ld\"]", size); + + // Add dim tag if dimensions are available + if (width > 0 && height > 0) { + printf(",\n [\"dim\", \"%dx%d\"]", width, height); + } + + printf("\n ]"); +} + // Handle GET /list/ requests void handle_list_request(const char* pubkey) { @@ -2102,33 +2360,17 @@ void handle_list_request(const char* pubkey) { long uploaded_at = sqlite3_column_int64(stmt, 3); const char* filename = (const char*)sqlite3_column_text(stmt, 4); - // Determine file extension from MIME type - const char* extension = ""; - if (strstr(type, "image/jpeg")) { - extension = ".jpg"; - } else if (strstr(type, "image/webp")) { - extension = ".webp"; - } else if (strstr(type, "image/png")) { - extension = ".png"; - } else if (strstr(type, "image/gif")) { - extension = ".gif"; - } else if (strstr(type, "video/mp4")) { - extension = ".mp4"; - } else if (strstr(type, "video/webm")) { - extension = ".webm"; - } else if (strstr(type, "audio/mpeg")) { - extension = ".mp3"; - } else if (strstr(type, "audio/ogg")) { - extension = ".ogg"; - } else if (strstr(type, "text/plain")) { - extension = ".txt"; - } else { - extension = ".bin"; - } + // Get origin from config for consistent URL generation + char origin[256]; + nip94_get_origin(origin, sizeof(origin)); + + // Build canonical blob URL using centralized function + char blob_url[512]; + nip94_build_blob_url(origin, sha256, type, blob_url, sizeof(blob_url)); // Output blob descriptor JSON printf(" {\n"); - printf(" \"url\": \"http://localhost:9001/%s%s\",\n", sha256, extension); + printf(" \"url\": \"%s\",\n", blob_url); printf(" \"sha256\": \"%s\",\n", sha256); printf(" \"size\": %ld,\n", size); printf(" \"type\": \"%s\",\n", type); @@ -2536,30 +2778,12 @@ void handle_upload_request(void) { - // Determine file extension from Content-Type - const char* extension = ""; - if (strstr(content_type, "image/jpeg")) { - extension = ".jpg"; - } else if (strstr(content_type, "image/webp")) { - extension = ".webp"; - } else if (strstr(content_type, "image/png")) { - extension = ".png"; - } else if (strstr(content_type, "image/gif")) { - extension = ".gif"; - } else if (strstr(content_type, "video/mp4")) { - extension = ".mp4"; - } else if (strstr(content_type, "video/webm")) { - extension = ".webm"; - } else if (strstr(content_type, "audio/mpeg")) { - extension = ".mp3"; - } else if (strstr(content_type, "audio/ogg")) { - extension = ".ogg"; - } else if (strstr(content_type, "text/plain")) { - extension = ".txt"; - } else { - // Default to binary extension for unknown types - extension = ".bin"; - } + // Get dimensions from in-memory buffer before saving file + int width = 0, height = 0; + nip94_get_dimensions(file_data, content_length, content_type, &width, &height); + + // Determine file extension from Content-Type using centralized mapping + const char* extension = mime_to_extension(content_type); // Save file to blobs directory with SHA-256 + extension char filepath[MAX_PATH_LEN]; @@ -2677,6 +2901,14 @@ void handle_upload_request(void) { + // Get origin from config + char origin[256]; + nip94_get_origin(origin, sizeof(origin)); + + // Build canonical blob URL + char blob_url[512]; + nip94_build_blob_url(origin, sha256_hex, content_type, blob_url, sizeof(blob_url)); + // Return success response with blob descriptor printf("Status: 200 OK\r\n"); printf("Content-Type: application/json\r\n\r\n"); @@ -2685,12 +2917,26 @@ void handle_upload_request(void) { printf(" \"size\": %ld,\n", content_length); printf(" \"type\": \"%s\",\n", content_type); printf(" \"uploaded\": %ld,\n", uploaded_time); - printf(" \"url\": \"http://localhost:9001/%s%s\"\n", sha256_hex, extension); - printf("}\n"); + printf(" \"url\": \"%s\"", blob_url); + + // Add NIP-94 metadata if enabled + if (nip94_is_enabled()) { + printf(",\n"); + nip94_emit_field(blob_url, content_type, sha256_hex, content_length, width, height); + } + + printf("\n}\n"); } +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// +// MAIN +///////////////////////////////////////////////////////////////////////////////////////// +///////////////////////////////////////////////////////////////////////////////////////// + + int main(void) { fprintf(stderr, "STARTUP: FastCGI application starting up\r\n"); fflush(stderr); diff --git a/tests/nip94_test_bud08.sh b/tests/nip94_test_bud08.sh new file mode 100755 index 0000000..6c082a2 --- /dev/null +++ b/tests/nip94_test_bud08.sh @@ -0,0 +1,238 @@ +#!/bin/bash +# BUD-08 NIP-94 File Metadata Tags Test Suite +# This test is created FIRST (TDD) and will FAIL until implementation is added to src/main.c. +# +# Expected procedures to be implemented in src/main.c (BUD-08 section): +# - nip94_is_enabled() -> Read server_config.nip94_enabled (default true) +# - nip94_get_origin() -> Read server_config.cdn_origin (default http://localhost:9001) +# - mime_to_extension() -> Centralize MIME to extension mapping +# - nip94_build_blob_url() -> Build canonical blob URL from origin + sha256 + extension +# - get_file_dimensions() -> Detect WxH for PNG, JPEG, WebP (parse headers only) +# - nip94_build_tags() -> Build tags: ["url",...], ["m",...], ["x",...], ["size",...], optional ["dim","WxH"] +# - nip94_attach_to_descriptor() -> Attach nip94 array to JSON response in /upload and /mirror +# +# Integration points expected: +# - PUT /upload success JSON includes "nip94" array +# - PUT /mirror success JSON includes "nip94" array +# +# Requirements: +# - curl, jq, sqlite3 must be available +# - Server should be running at http://localhost:9001 (restart-all.sh) + +set -e + +SERVER_URL="http://localhost:9001" +UPLOAD_ENDPOINT="${SERVER_URL}/upload" +MIRROR_ENDPOINT="${SERVER_URL}/mirror" +DB_PATH="db/ginxsom.db" + +echo "=== BUD-08 NIP-94 File Metadata Tags Test Suite ===" + +# Prereq checks +if ! command -v curl >/dev/null 2>&1; then + echo "ERROR: curl not found" + exit 1 +fi +if ! command -v jq >/dev/null 2>&1; then + echo "ERROR: jq not found (required for JSON parsing)" + exit 1 +fi +if ! command -v sqlite3 >/dev/null 2>&1; then + echo "ERROR: sqlite3 not found" + exit 1 +fi + +# Helpers +die() { + echo "FATAL: $*" 1>&2 + exit 1 +} + +json_has_nip94() { + local json="$1" + echo "$json" | jq -e '.nip94 and ( .nip94 | type == "array" )' >/dev/null 2>&1 +} + +nip94_get_tag() { + local json="$1" + local key="$2" + echo "$json" | jq -r --arg k "$key" '.nip94 | map(select(.[0]==$k)) | if length>0 then .[0][1] else empty end' +} + +reset_config_defaults() { + # Restore defaults used by implementation + sqlite3 "$DB_PATH" "INSERT OR REPLACE INTO server_config (key, value) VALUES ('nip94_enabled','true');" || true + sqlite3 "$DB_PATH" "INSERT OR REPLACE INTO server_config (key, value) VALUES ('cdn_origin','http://localhost:9001');" || true +} + +set_config_key() { + local key="$1" + local value="$2" + sqlite3 "$DB_PATH" "INSERT OR REPLACE INTO server_config (key, value) VALUES ('$key','$value');" +} + +# Create temporary working directory +WORKDIR="tests/tmp_bud08" +mkdir -p "$WORKDIR" + +# Create a tiny 1x1 PNG (base64) +TINY_PNG_B64="iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO0RzjoAAAAASUVORK5CYII=" +PNG_FILE="$WORKDIR/one_by_one.png" +echo "$TINY_PNG_B64" | base64 -d > "$PNG_FILE" + +# Compute expected values +CONTENT_TYPE="image/png" +FILE_SIZE=$(wc -c < "$PNG_FILE" | tr -d ' ') +SHA256_HEX=$(sha256sum "$PNG_FILE" | awk '{print $1}') + +echo "" +echo "Test artifact:" +echo " File: $PNG_FILE" +echo " Size: $FILE_SIZE" +echo " SHA256: $SHA256_HEX" +echo "" + +# Ensure defaults +reset_config_defaults + +# --- Test 1: PUT /upload returns nip94 with minimal required tags +echo "=== Test 1: PUT /upload returns nip94 minimal tags ===" +UPLOAD_JSON=$(curl -s -X PUT "$UPLOAD_ENDPOINT" \ + -H "Content-Type: $CONTENT_TYPE" \ + --data-binary @"$PNG_FILE") + +echo "Response:" +echo "$UPLOAD_JSON" +echo "" + +if json_has_nip94 "$UPLOAD_JSON"; then + URL_FIELD=$(echo "$UPLOAD_JSON" | jq -r '.url') + TYPE_FIELD=$(echo "$UPLOAD_JSON" | jq -r '.type') + SIZE_FIELD=$(echo "$UPLOAD_JSON" | jq -r '.size') + SHA256_FIELD=$(echo "$UPLOAD_JSON" | jq -r '.sha256') + + TAG_URL=$(nip94_get_tag "$UPLOAD_JSON" "url") + TAG_M=$(nip94_get_tag "$UPLOAD_JSON" "m") + TAG_X=$(nip94_get_tag "$UPLOAD_JSON" "x") + TAG_SIZE=$(nip94_get_tag "$UPLOAD_JSON" "size") + + PASS=1 + [ -n "$TAG_URL" ] || { echo "FAIL: nip94 missing url tag"; PASS=0; } + [ -n "$TAG_M" ] || { echo "FAIL: nip94 missing m tag"; PASS=0; } + [ -n "$TAG_X" ] || { echo "FAIL: nip94 missing x tag"; PASS=0; } + [ -n "$TAG_SIZE" ] || { echo "FAIL: nip94 missing size tag"; PASS=0; } + + # Validate tag values match descriptor + [ "$TAG_URL" = "$URL_FIELD" ] || { echo "FAIL: nip94 url tag != descriptor url"; PASS=0; } + [ "$TAG_M" = "$TYPE_FIELD" ] || { echo "FAIL: nip94 m tag != descriptor type"; PASS=0; } + [ "$TAG_X" = "$SHA256_FIELD" ] || { echo "FAIL: nip94 x tag != descriptor sha256"; PASS=0; } + [ "$TAG_SIZE" = "$SIZE_FIELD" ] || { echo "FAIL: nip94 size tag != descriptor size"; PASS=0; } + + if [ "$PASS" = "1" ]; then + echo "✅ Test 1 PASSED: nip94 minimal tags present and correct" + else + echo "❌ Test 1 FAILED" + fi +else + echo "❌ Test 1 FAILED: Response missing nip94 array" +fi + +# --- Test 2: dim present and equals 1x1 for PNG +echo "" +echo "=== Test 2: dim tag for 1x1 PNG ===" +TAG_DIM=$(nip94_get_tag "$UPLOAD_JSON" "dim" || true) +if [ -n "$TAG_DIM" ]; then + if [ "$TAG_DIM" = "1x1" ]; then + echo "✅ Test 2 PASSED: dim tag present and equals 1x1" + else + echo "❌ Test 2 FAILED: dim tag expected 1x1, got '$TAG_DIM'" + fi +else + echo "❌ Test 2 FAILED: dim tag not present" +fi + +# --- Test 3: nip94 disabled via config should omit nip94 field +echo "" +echo "=== Test 3: nip94 disabled via server_config ===" +set_config_key "nip94_enabled" "false" + +UPLOAD_JSON_DISABLED=$(curl -s -X PUT "$UPLOAD_ENDPOINT" \ + -H "Content-Type: $CONTENT_TYPE" \ + --data-binary @"$PNG_FILE") + +echo "Response:" +echo "$UPLOAD_JSON_DISABLED" +echo "" + +if json_has_nip94 "$UPLOAD_JSON_DISABLED"; then + echo "❌ Test 3 FAILED: nip94 present despite nip94_enabled=false" +else + echo "✅ Test 3 PASSED: nip94 omitted when nip94_enabled=false" +fi + +# Restore true for next tests +set_config_key "nip94_enabled" "true" + +# --- Test 4: cdn_origin config changes nip94 url (and descriptor url) +echo "" +echo "=== Test 4: cdn_origin origin override ===" +CUSTOM_ORIGIN="http://example-cdn.local" +set_config_key "cdn_origin" "$CUSTOM_ORIGIN" + +UPLOAD_JSON_ORIGIN=$(curl -s -X PUT "$UPLOAD_ENDPOINT" \ + -H "Content-Type: $CONTENT_TYPE" \ + --data-binary @"$PNG_FILE") + +echo "Response:" +echo "$UPLOAD_JSON_ORIGIN" +echo "" + +if json_has_nip94 "$UPLOAD_JSON_ORIGIN"; then + URL_FIELD2=$(echo "$UPLOAD_JSON_ORIGIN" | jq -r '.url') + TAG_URL2=$(nip94_get_tag "$UPLOAD_JSON_ORIGIN" "url") + if [[ "$URL_FIELD2" == $CUSTOM_ORIGIN/* ]] && [[ "$TAG_URL2" == $CUSTOM_ORIGIN/* ]]; then + echo "✅ Test 4 PASSED: nip94 url and descriptor url use configured origin" + else + echo "❌ Test 4 FAILED: origin not applied to urls" + fi +else + echo "❌ Test 4 FAILED: Response missing nip94 array" +fi + +# Restore default origin +set_config_key "cdn_origin" "http://localhost:9001" + +# --- Test 5: PUT /mirror returns nip94 minimal tags (best effort, network dependent) +echo "" +echo "=== Test 5: PUT /mirror returns nip94 minimal tags (network dependent) ===" +# Use a public small PNG; if network/policy blocks, mark INFO instead of failure. +REMOTE_URL="https://upload.wikimedia.org/wikipedia/commons/3/3c/Shaki_waterfall.jpg" +MIRROR_JSON=$(curl -s -X PUT "$MIRROR_ENDPOINT" \ + -H "Content-Type: application/json" \ + --data "{\"url\":\"$REMOTE_URL\"}") + +HTTP_OK=$(echo "$MIRROR_JSON" | jq -e '.sha256 and .type and .size' >/dev/null 2>&1; echo $?) +if [ "$HTTP_OK" = "0" ]; then + if json_has_nip94 "$MIRROR_JSON"; then + TAG_URL_M=$(nip94_get_tag "$MIRROR_JSON" "url") + TAG_M_M=$(nip94_get_tag "$MIRROR_JSON" "m") + TAG_X_M=$(nip94_get_tag "$MIRROR_JSON" "x") + TAG_SIZE_M=$(nip94_get_tag "$MIRROR_JSON" "size") + if [ -n "$TAG_URL_M" ] && [ -n "$TAG_M_M" ] && [ -n "$TAG_X_M" ] && [ -n "$TAG_SIZE_M" ]; then + echo "✅ Test 5 PASSED: nip94 minimal tags present for mirror" + else + echo "❌ Test 5 FAILED: nip94 minimal tags missing for mirror response" + fi + else + echo "❌ Test 5 FAILED: mirror response missing nip94 array" + fi +else + echo "ℹ️ Test 5 INFO: mirror request did not return a blob descriptor (network or policy); skipping strict check" +fi + +# Cleanup and restore defaults +reset_config_defaults +rm -rf "$WORKDIR" + +echo "" +echo "=== End of BUD-08 NIP-94 Test Suite ===" \ No newline at end of file