From bb20c92c7f2e3c8fb4812c203d87561da356b84a Mon Sep 17 00:00:00 2001 From: fbock Date: Thu, 9 May 2024 10:13:14 +0200 Subject: [PATCH] push existing docs to research branch --- README.md | 2 +- docs/TapTrade_obs/.DS_Store | Bin 0 -> 6148 bytes docs/TapTrade_obs/.obsidian/app.json | 4 + docs/TapTrade_obs/.obsidian/appearance.json | 3 + docs/TapTrade_obs/.obsidian/bookmarks.json | 9 + .../.obsidian/core-plugins-migration.json | 30 +++ docs/TapTrade_obs/.obsidian/core-plugins.json | 20 ++ docs/TapTrade_obs/.obsidian/graph.json | 22 +++ docs/TapTrade_obs/.obsidian/workspace.json | 183 ++++++++++++++++++ docs/TapTrade_obs/Obsidian How-To.md | 6 + docs/TapTrade_obs/Project Timeline.md | 58 ++++++ docs/TapTrade_obs/Research/.DS_Store | Bin 0 -> 6148 bytes .../Bitcoin fundamentals/Knowledge sources.md | 58 ++++++ .../Signature and Flags.canvas | 27 +++ .../Spending Taproot UTXOs.md | 34 ++++ .../Taproot output structure.canvas | 32 +++ .../Research/Implementation/Libraries.md | 16 ++ .../Research/Implementation/UI ideas.canvas | 11 ++ .../Trade Pipelines/Existing research.md | 22 +++ .../Trade Pipelines/current trade flow.canvas | 62 ++++++ .../assets/DER_encoded_signature.webp | Bin 0 -> 14794 bytes .../assets/advanced_trade_mode_switch.png | Bin 0 -> 28494 bytes docs/TapTrade_obs/assets/anyonecanpay.webp | Bin 0 -> 11042 bytes .../onchain_lightning_switch_screenshot.png | Bin 0 -> 28522 bytes docs/TapTrade_obs/assets/sighash_flags.webp | Bin 0 -> 6838 bytes 25 files changed, 598 insertions(+), 1 deletion(-) create mode 100644 docs/TapTrade_obs/.DS_Store create mode 100644 docs/TapTrade_obs/.obsidian/app.json create mode 100644 docs/TapTrade_obs/.obsidian/appearance.json create mode 100644 docs/TapTrade_obs/.obsidian/bookmarks.json create mode 100644 docs/TapTrade_obs/.obsidian/core-plugins-migration.json create mode 100644 docs/TapTrade_obs/.obsidian/core-plugins.json create mode 100644 docs/TapTrade_obs/.obsidian/graph.json create mode 100644 docs/TapTrade_obs/.obsidian/workspace.json create mode 100644 docs/TapTrade_obs/Obsidian How-To.md create mode 100644 docs/TapTrade_obs/Project Timeline.md create mode 100644 docs/TapTrade_obs/Research/.DS_Store create mode 100644 docs/TapTrade_obs/Research/Bitcoin fundamentals/Knowledge sources.md create mode 100644 docs/TapTrade_obs/Research/Bitcoin fundamentals/Signature and Flags.canvas create mode 100644 docs/TapTrade_obs/Research/Bitcoin fundamentals/Spending Taproot UTXOs.md create mode 100644 docs/TapTrade_obs/Research/Bitcoin fundamentals/Taproot output structure.canvas create mode 100644 docs/TapTrade_obs/Research/Implementation/Libraries.md create mode 100644 docs/TapTrade_obs/Research/Implementation/UI ideas.canvas create mode 100644 docs/TapTrade_obs/Research/Trade Pipelines/Existing research.md create mode 100644 docs/TapTrade_obs/Research/Trade Pipelines/current trade flow.canvas create mode 100644 docs/TapTrade_obs/assets/DER_encoded_signature.webp create mode 100644 docs/TapTrade_obs/assets/advanced_trade_mode_switch.png create mode 100644 docs/TapTrade_obs/assets/anyonecanpay.webp create mode 100644 docs/TapTrade_obs/assets/onchain_lightning_switch_screenshot.png create mode 100644 docs/TapTrade_obs/assets/sighash_flags.webp diff --git a/README.md b/README.md index 5a1c118..d504649 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # taptrade-core ### Research -Find the current research as [Obsidian](https://obsidian.md/) formatted documents under /docs/TapTrade_obs in branch research +Find the current research as [Obsidian](https://obsidian.md/) formatted documents under /docs/TapTrade_obs. ### Implementation TBD diff --git a/docs/TapTrade_obs/.DS_Store b/docs/TapTrade_obs/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..f2523105a196c86a9676017a0c29eed86b934156 GIT binary patch literal 6148 zcmeHKQA->#5T2Y@n>!H?Dd=Nf3O-!rL^&x%SWbod)Y6sq!4}>Qk&eZ3f6j<2rG(m~+i zH?rh#0yk((5%a|#WU0nsH7em-^Y*)_Db68ol;UL`SL%5lR z`=JOkJC3i6I|$Drm&^b&aG!xWTWwMP-+%c3e?N$8%m6d+s2C9SJ%6u9sTh4J6|bTi!FELkqUW%(h%G4m5HK`w!3@llfnSz5Zs-62 literal 0 HcmV?d00001 diff --git a/docs/TapTrade_obs/.obsidian/app.json b/docs/TapTrade_obs/.obsidian/app.json new file mode 100644 index 0000000..4d49ab3 --- /dev/null +++ b/docs/TapTrade_obs/.obsidian/app.json @@ -0,0 +1,4 @@ +{ + "promptDelete": false, + "alwaysUpdateLinks": true +} \ No newline at end of file diff --git a/docs/TapTrade_obs/.obsidian/appearance.json b/docs/TapTrade_obs/.obsidian/appearance.json new file mode 100644 index 0000000..c8c365d --- /dev/null +++ b/docs/TapTrade_obs/.obsidian/appearance.json @@ -0,0 +1,3 @@ +{ + "accentColor": "" +} \ No newline at end of file diff --git a/docs/TapTrade_obs/.obsidian/bookmarks.json b/docs/TapTrade_obs/.obsidian/bookmarks.json new file mode 100644 index 0000000..ecce49b --- /dev/null +++ b/docs/TapTrade_obs/.obsidian/bookmarks.json @@ -0,0 +1,9 @@ +{ + "items": [ + { + "type": "file", + "ctime": 1715166915718, + "path": "Project Timeline.md" + } + ] +} \ No newline at end of file diff --git a/docs/TapTrade_obs/.obsidian/core-plugins-migration.json b/docs/TapTrade_obs/.obsidian/core-plugins-migration.json new file mode 100644 index 0000000..436f43c --- /dev/null +++ b/docs/TapTrade_obs/.obsidian/core-plugins-migration.json @@ -0,0 +1,30 @@ +{ + "file-explorer": true, + "global-search": true, + "switcher": true, + "graph": true, + "backlink": true, + "canvas": true, + "outgoing-link": true, + "tag-pane": true, + "properties": false, + "page-preview": true, + "daily-notes": true, + "templates": true, + "note-composer": true, + "command-palette": true, + "slash-command": false, + "editor-status": true, + "bookmarks": true, + "markdown-importer": false, + "zk-prefixer": false, + "random-note": false, + "outline": true, + "word-count": true, + "slides": false, + "audio-recorder": false, + "workspaces": false, + "file-recovery": true, + "publish": false, + "sync": false +} \ No newline at end of file diff --git a/docs/TapTrade_obs/.obsidian/core-plugins.json b/docs/TapTrade_obs/.obsidian/core-plugins.json new file mode 100644 index 0000000..9405bfd --- /dev/null +++ b/docs/TapTrade_obs/.obsidian/core-plugins.json @@ -0,0 +1,20 @@ +[ + "file-explorer", + "global-search", + "switcher", + "graph", + "backlink", + "canvas", + "outgoing-link", + "tag-pane", + "page-preview", + "daily-notes", + "templates", + "note-composer", + "command-palette", + "editor-status", + "bookmarks", + "outline", + "word-count", + "file-recovery" +] \ No newline at end of file diff --git a/docs/TapTrade_obs/.obsidian/graph.json b/docs/TapTrade_obs/.obsidian/graph.json new file mode 100644 index 0000000..ccb5811 --- /dev/null +++ b/docs/TapTrade_obs/.obsidian/graph.json @@ -0,0 +1,22 @@ +{ + "collapse-filter": true, + "search": "", + "showTags": false, + "showAttachments": false, + "hideUnresolved": false, + "showOrphans": true, + "collapse-color-groups": true, + "colorGroups": [], + "collapse-display": true, + "showArrow": false, + "textFadeMultiplier": 0, + "nodeSizeMultiplier": 1, + "lineSizeMultiplier": 1, + "collapse-forces": true, + "centerStrength": 0.518713248970312, + "repelStrength": 10, + "linkStrength": 1, + "linkDistance": 250, + "scale": 5.514946953973566, + "close": true +} \ No newline at end of file diff --git a/docs/TapTrade_obs/.obsidian/workspace.json b/docs/TapTrade_obs/.obsidian/workspace.json new file mode 100644 index 0000000..3d48eba --- /dev/null +++ b/docs/TapTrade_obs/.obsidian/workspace.json @@ -0,0 +1,183 @@ +{ + "main": { + "id": "80a386d23cb49933", + "type": "split", + "children": [ + { + "id": "83f3e4f8fc8a23bd", + "type": "tabs", + "children": [ + { + "id": "a6f226df420e6a1a", + "type": "leaf", + "state": { + "type": "canvas", + "state": { + "file": "Research/Bitcoin fundamentals/Signature and Flags.canvas", + "viewState": { + "x": 1337.3998874565568, + "y": -91.84205258234509, + "zoom": -0.28644350006291147 + } + } + } + } + ] + } + ], + "direction": "vertical" + }, + "left": { + "id": "e6a26e5c5b019a1e", + "type": "split", + "children": [ + { + "id": "3f3159116396a08c", + "type": "tabs", + "children": [ + { + "id": "35cfcb845e434840", + "type": "leaf", + "state": { + "type": "file-explorer", + "state": { + "sortOrder": "alphabetical" + } + } + }, + { + "id": "0e07985fb8283f1e", + "type": "leaf", + "state": { + "type": "search", + "state": { + "query": "", + "matchingCase": false, + "explainSearch": false, + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical" + } + } + }, + { + "id": "738df028c16ab1b9", + "type": "leaf", + "state": { + "type": "bookmarks", + "state": {} + } + } + ] + } + ], + "direction": "horizontal", + "width": 300 + }, + "right": { + "id": "5f13d93e126071cf", + "type": "split", + "children": [ + { + "id": "985598abe7b3b823", + "type": "tabs", + "children": [ + { + "id": "dc77dc1e126c6c92", + "type": "leaf", + "state": { + "type": "backlink", + "state": { + "file": "Research/Bitcoin fundamentals/Signature and Flags.canvas", + "collapseAll": false, + "extraContext": false, + "sortOrder": "alphabetical", + "showSearch": false, + "searchQuery": "", + "backlinkCollapsed": false, + "unlinkedCollapsed": true + } + } + }, + { + "id": "1cfcab3d82b07a15", + "type": "leaf", + "state": { + "type": "outgoing-link", + "state": { + "file": "Research/Bitcoin fundamentals/Signature and Flags.canvas", + "linksCollapsed": false, + "unlinkedCollapsed": true + } + } + }, + { + "id": "d24ff84f08dd4825", + "type": "leaf", + "state": { + "type": "tag", + "state": { + "sortOrder": "frequency", + "useHierarchy": true + } + } + }, + { + "id": "623d6cb84168c727", + "type": "leaf", + "state": { + "type": "outline", + "state": { + "file": "Research/Bitcoin fundamentals/Signature and Flags.canvas" + } + } + } + ] + } + ], + "direction": "horizontal", + "width": 300, + "collapsed": true + }, + "left-ribbon": { + "hiddenItems": { + "switcher:Open quick switcher": false, + "graph:Open graph view": false, + "daily-notes:Open today's daily note": false, + "canvas:Create new canvas": false, + "templates:Insert template": false, + "command-palette:Open command palette": false + } + }, + "active": "a6f226df420e6a1a", + "lastOpenFiles": [ + "Research/Bitcoin fundamentals/Knowledge sources.md", + "Research/Bitcoin fundamentals/Signature and Flags.canvas", + "assets/anyonecanpay.webp", + "Research/Bitcoin fundamentals/Spending Taproot UTXOs.md", + "Research/Trade Pipelines/current trade flow.canvas", + "Research/Bitcoin fundamentals/Taproot output structure.canvas", + "Research/Implementation/UI ideas.canvas", + "Research/Implementation/Libraries.md", + "assets/sighash_flags.webp", + "assets/DER_encoded_signature.webp", + "assets", + "assets/onchain_lightning_switch_screenshot.png", + "assets/advanced_trade_mode_switch.png", + "Research/Implementation/Untitled.md", + "Project Timeline.md", + "Research/Trade Pipelines/Existing research.md", + "2024-05-08.md", + "Obsidian How-To.md", + "Research/Bitcoin fundamentals/Miniscript.md", + "Research/Bitcoin fundamentals", + "Research/Trade Pipelines", + "Research/Implementation", + "Research/Untitled.md", + "Research/Bitcoin&Taproot", + "Research", + "Welcome.md", + "note.md", + "Ctrl+N.md" + ] +} \ No newline at end of file diff --git a/docs/TapTrade_obs/Obsidian How-To.md b/docs/TapTrade_obs/Obsidian How-To.md new file mode 100644 index 0000000..98d13c7 --- /dev/null +++ b/docs/TapTrade_obs/Obsidian How-To.md @@ -0,0 +1,6 @@ +Obsidian seems like a practical tool to organize and collect our research in a clean way. + +To get started you can find a introduction here: +https://help.obsidian.md/Getting+started/Create+your+first+note + +We can sync the vault with Git (just push/pull changes like code). diff --git a/docs/TapTrade_obs/Project Timeline.md b/docs/TapTrade_obs/Project Timeline.md new file mode 100644 index 0000000..d98546b --- /dev/null +++ b/docs/TapTrade_obs/Project Timeline.md @@ -0,0 +1,58 @@ + +### Week 0 ..May 07 - *Review Period* + +- Studying Schnorr signatures in depth (Mastering Bitcoin, online resources) + +### Week 1 May 08..May 15 - *Kick-Off and Onboarding* + +- Knowledge exchange with mentors (what research has already been done?, Is there anything existing to build on already?, how can they support me?, exchanging important resources) + +- Exchanging ideas with the mentors on how to tackle the implementation, what to consider (e.g. RoboSats specific details) + +### Week 2 May 16..May 22 - *start of project phase 1* + +Research: +- Reading BIPs (86, 114, 340, 341, 342) +- Learning Miniscript +- Researching MuSig2 + +### Week 3-4 May 23..June 05 + +- Researching P2P pipelines/contracts (existing ones, iterating on new ones) +- Exchange with RoboSats devs and mentors on researched pipelines  + +### Week 5-6 June 06..June 19 + +- Construction of the contract in Miniscrip, clear definition and documentation + +### Week 7-8 June 06..July 01 + +- Beginning with Rust implementation of Pipeline +- First simple functions to verify and test defined outputs + +## First evaluation [July 01..July 05] + +- time buffer, otherwise continuing implementation + +### Week 9-10 July 04..July 17 + +- Implementation of functional CLI tool (client and coordinator) +- Reviewing pipeline again, new insights? + +### Week 11-12 July 18..July 31 + +- Implementation of RoboSats specific functionality to prepare for integration +- Documentation +- Thorough testing (Function tests, Signet tests) +### Week 13-14 August 01..August 15 - *finishing* + +If sufficient time is left: +- Compile to WASM binary, bundle into NPM package +- Experiment with integration in RoboSats client and coordinator +* Discuss about UI implementation and userspace documentation +- Finish up code and documentation.  +- Review with mentors +- Submission + +🎉🤖🎉🤖🎉🤖🎉🤖🎉 +⛓️⛓️⛓️⛓️⛓️⛓️⛓️⛓️⛓️ \ No newline at end of file diff --git a/docs/TapTrade_obs/Research/.DS_Store b/docs/TapTrade_obs/Research/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..40aa78abcbb6a0afb8c0386cb68548f98e7a7dd5 GIT binary patch literal 6148 zcmeHK&2G~`5S~p_*aSgysMH?!g2W+*RIO4WRLL^skXt2JZ~)ZWwV{?=ZxlO35Q6*~ z@CG~zPr&2Aw?DLL14vvDLNn6rH#?qht$Y)Ey+kC!X}UwyBO(bm*y>>TiJ9xhSFGhT z>p)@G(3De2ieAxlrJ57}q5`IOn-rpNHJ#CN|4K?JrVGl@(Hc=f)u_;CNud*P%pc|v z{J}SCh=}gd2=!xBW=p&pYilZRa6kVEHdDI1dCq6#by10zv%GnN2J?PcxLfc$Sx`o`rf^ zrj=bMau=lR$j(V`dp;jN9QM`jaBtC9^ZornU+wJ<7mJSEy1#QUI=y)NZvKAp;iHv= z1Re})8y`gQ&3thfOompdpj%k86q!3rp5kws$D(nN7-E5860%N%~n6j|~ ztN<%;rGS4m$vammj#vR!fEBO`nD>K%8w@-)4(+Q0gFONO+elkOY(5PQM|li9HV$zG zCL9&$sKOsHgrg&`d|lwNap>qI{NY3RI}3k85%%s_U)gdJfkPfy0aoC;0&8yCGyDIO zU!VW4lX%7oumb;;0-}8w9ftTxes5j*ab~Yo@Kd-kQ`b1Wq#&?cF>1|LybZU8yfOhW U@Ypy+2F4!(Rt6qefxoK2cVfhc!TRelevant BIPs + +Understanding the following BIPs is relevant for the project. +#### BIP documents + +* [BIP 340 - Schnorr Signatures for secp256k1](https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki) +* [BIP 341 - SegWit version 1 spending rules](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki) +* [BIP 342 - Validation of Taproot Scripts](https://github.com/bitcoin/bips/blob/master/bip-0342.mediawiki) +* [BIP 114(Rejected but interesting) - Merkelized Abstract Syntax Tree](https://github.com/bitcoin/bips/blob/master/bip-0114.mediawiki) + +#### BIP Readtrough videos + +* [BIP 340 Readtrough - Jimmy Song](https://www.youtube.com/watch?v=rVsNFMzQUck) +* [BIP 341 Readtrough - Jimmy Song](https://www.youtube.com/watch?v=pkS9aorpxNc) +* [BIP 342 Readtrough - Jimmy Song](https://www.youtube.com/watch?v=fAEcXh6nZ9U) + +### Taproot + +![[Taproot output structure.canvas]] + +#### [[Spending Taproot UTXOs]] +#### Videos + +* [Introduction to Taproot - Nicolas Dorier - short video](https://www.youtube.com/watch?v=I7HsXKgtD2I) +* [Very good, practical introduction to coding taproot Transactions - Bitdevs LA](https://www.youtube.com/watch?v=E-HxgNkPB-8) + +### Descriptors/Miniscript + +We can use Descriptors/Miniscript to precisely and human readable describe the Transaction outputs of the escrow transaction pipeline. This improves readability and portability of the pipeline. +#### Videos + +* [Using BDK and Wallet descriptors for Taproot - Video - Bitdevs LA](https://www.youtube.com/watch?v=wsQIZRY2BD0) +* [Introduction to Miniscript - Port of Bitcoin](https://www.youtube.com/watch?v=uNZpfHEtP4U) +#### Websites + +* [Miniscript introduction/compiler/specification](https://bitcoin.sipa.be/miniscript/) + +### Signature/Pubkey aggregation + +To combine multiple parties pubkeys to a single combined Taproot pubkey and to create a aggregated signature with all participants MuSig2 is relevant. + +* [Paper, very (probably too) deep](https://eprint.iacr.org/2020/1261) + +#### Videos + +* [MuSig2 in Taproot - Nicolas Dorier - higher level explanation](https://www.youtube.com/watch?v=hrUyGW91JBc) +* [MuSig2: Simple Two-Round Schnorr Multi-Signatures - very detailed, more crypto focused explanation](https://www.youtube.com/watch?v=Dzqj236cVHk) + +### Sighashes + +Maybe sighashes could be a useful tool? +Need to do research on Sighashes in Schnorr signatures (taproot). +#### Canvas + +![[Signature and Flags.canvas]] +#### Blog articles + +[Signature Hash Flags Medium Article - enigbe ochekliye](https://enigbe.medium.com/signature-hash-flags-f059d035ddd0) diff --git a/docs/TapTrade_obs/Research/Bitcoin fundamentals/Signature and Flags.canvas b/docs/TapTrade_obs/Research/Bitcoin fundamentals/Signature and Flags.canvas new file mode 100644 index 0000000..fab626d --- /dev/null +++ b/docs/TapTrade_obs/Research/Bitcoin fundamentals/Signature and Flags.canvas @@ -0,0 +1,27 @@ +{ + "nodes":[ + {"id":"d4896274d8828004","type":"text","text":"DER encoded Signature\n(as used in Bitcoin)","x":80,"y":-140,"width":250,"height":60,"color":"6"}, + {"id":"64e37547f27f3e55","type":"file","file":"assets/DER_encoded_signature.webp","x":-177,"y":-20,"width":763,"height":141}, + {"id":"3fc5cd05ae124cba","type":"text","text":"1. A starting byte of hex value **[0x30]**\n2. Length of the signature sequence **[0x44]** or **[0x45]**\n3. **_r_**-marker byte of hex value **0x02**\n4. Length of **_r_** **[0x21]**|| Big-endian representation of **_r_**\n5. **_s_**-marker byte of hex value **0x02**\n6. Length of **_s_** **[0x20]**|| Big-endian representation of **_s_**\n7. 1-byte SIGHASH suffix","x":-35,"y":140,"width":480,"height":230}, + {"id":"64c991bc18fbc277","type":"file","file":"assets/sighash_flags.webp","x":640,"y":-200,"width":400,"height":269}, + {"id":"6a893127784fae4f","type":"text","text":"1. Creating a copy of the transaction,\n2. Empty **_script_sigs_** for each input and replace with the **_script_pubkey_** they reference. This is done because the “signature is part of the script_sig and … can’t sign itself” (Song, 2019, p. 132)\n3. Make sure that **no** other fields are set to empty before the transaction is serialized (**Tx_ser**).\n4. The flag 0x01 is added to the end of the serialized transaction and passed through a hashing function.\n5. This message is then signed by the signing algorithm to generate the signature.","x":1580,"y":-560,"width":660,"height":304,"color":"5"}, + {"id":"8526cdb3e9883674","type":"text","text":"For **SIGHASH** **ALL**, given a transaction Tx, the signature applies to all of Tx’s inputs and all its outputs\n\nThe transaction is rendered invalid if any of its details are changed because the signature will change too and be invalid.","x":1100,"y":-356,"width":391,"height":200,"color":"5"}, + {"id":"39bb6307899c5d87","type":"text","text":"1. Create a copy of the transaction\n2. Empty each script_sig for all inputs and replace with the script_pubkey they reference\n3. Empty out all output fields\n4. Serialize the transaction\n5. Append 0x02 to **Tx_ser**, hash, and then sign","x":1620,"y":-169,"width":660,"height":207,"color":"1"}, + {"id":"0e6dda772fa0f997","type":"text","text":"For **SIGHASH** **NONE**, the signature applies to all of Tx’s inputs but to none of the outputs.","x":1100,"y":-104,"width":400,"height":78,"color":"1"}, + {"id":"4783ea786041b3c4","type":"text","text":"For **SIGHASH** **SINGLE**, all the inputs of the given transaction Tx are signed and one output that has the same index of one of the inputs being signed. This is essentially “authorizing all other inputs to go with a specific output” (Song, 2019, p. 133).","x":1100,"y":38,"width":400,"height":200,"color":"4"}, + {"id":"17953abf6e32fa3d","type":"text","text":"1. Create a copy of the transaction\n2. Empty script_sigs for each input and replace with the script_pubkey they reference\n3. Empty out all output fields bar the specific output\n4. Serialize the transaction\n5. Append 0x03 to **Tx_ser**, hash, and then sign","x":1620,"y":121,"width":660,"height":199,"color":"4"}, + {"id":"ee8fd83cff1ef0ba","type":"text","text":"An **ANYONECANPAY** modifier flag exists that can be added to the aforementioned flags that apply to a **single** input in a transaction. Rosenbaum (2019) considers the ANYONECANPAY modifier flag as a way to commit to inputs only, by setting or not setting it, and the existing SIGHASH types (ALL, NONE, SINGLE) as a way to commit to outputs only.","x":1018,"y":-662,"width":473,"height":222,"color":"2"}, + {"id":"b93d1dd0b0feb448","type":"file","file":"assets/anyonecanpay.webp","x":1055,"y":-1000,"width":400,"height":297} + ], + "edges":[ + {"id":"1c3a1e2cc3bf2afa","fromNode":"64e37547f27f3e55","fromSide":"right","toNode":"64c991bc18fbc277","toSide":"left"}, + {"id":"1f578d9bd4944f24","fromNode":"64c991bc18fbc277","fromSide":"right","toNode":"8526cdb3e9883674","toSide":"left"}, + {"id":"45d8d17cc4baa1af","fromNode":"8526cdb3e9883674","fromSide":"right","toNode":"6a893127784fae4f","toSide":"left"}, + {"id":"da10b70b9de850a5","fromNode":"64c991bc18fbc277","fromSide":"right","toNode":"0e6dda772fa0f997","toSide":"left"}, + {"id":"3f4068b0a4c19f71","fromNode":"0e6dda772fa0f997","fromSide":"right","toNode":"39bb6307899c5d87","toSide":"left"}, + {"id":"a9eb41d7c10ebe6d","fromNode":"64c991bc18fbc277","fromSide":"right","toNode":"4783ea786041b3c4","toSide":"left"}, + {"id":"df5f1dd7d4be7955","fromNode":"4783ea786041b3c4","fromSide":"right","toNode":"17953abf6e32fa3d","toSide":"left"}, + {"id":"ffddd1b2b5019de2","fromNode":"64c991bc18fbc277","fromSide":"top","toNode":"ee8fd83cff1ef0ba","toSide":"left"}, + {"id":"4f220c13ebdf58ab","fromNode":"ee8fd83cff1ef0ba","fromSide":"top","toNode":"b93d1dd0b0feb448","toSide":"bottom"} + ] +} \ No newline at end of file diff --git a/docs/TapTrade_obs/Research/Bitcoin fundamentals/Spending Taproot UTXOs.md b/docs/TapTrade_obs/Research/Bitcoin fundamentals/Spending Taproot UTXOs.md new file mode 100644 index 0000000..d690e33 --- /dev/null +++ b/docs/TapTrade_obs/Research/Bitcoin fundamentals/Spending Taproot UTXOs.md @@ -0,0 +1,34 @@ + +How to construct a Transaction spending a P2TR input. + + +### Key Path spending + +The Key Path spend is the more ressource efficient and private way to spend the output. +If the Internal Key was created by a single party, the creator can just generate a Signature. If the internal Key has been generated from multiple parties public keys, for example via MuSig2, these parties have to collaboratively generate a valid Signature. + +1. Create Schnorr signature + * SIGHASH_DEFAULT +2. Put signature in input Witness + +### Script Path spending + +In case spending condition from the MAST is necessary to spend the output (e.g. Escrow, inactive counterparty) the Transaction input witness has to be constructed of the following elements: + +``` +witness = [script inputs, script, control block] +``` + +##### Script inputs +All X script inputs will be the input to the script satisfying it. + +##### Script +The spending script contained in the MAST Leaf to be unlocked. Always the penultimate element in the witness. + +##### Control Block +Always the last element in the Witness. Proves inclusion of the script in the MAST. + +``` +CB = 192 | parity bit | internal (untweaked) key | sibling hashes (deepest first) +``` + diff --git a/docs/TapTrade_obs/Research/Bitcoin fundamentals/Taproot output structure.canvas b/docs/TapTrade_obs/Research/Bitcoin fundamentals/Taproot output structure.canvas new file mode 100644 index 0000000..24da3b2 --- /dev/null +++ b/docs/TapTrade_obs/Research/Bitcoin fundamentals/Taproot output structure.canvas @@ -0,0 +1,32 @@ +{ + "nodes":[ + {"id":"10b072d0858d8ac5","type":"text","text":"**External (tweaked) key\n(contained in scriptPubKey)**\n\n-> The address money gets sent to and contains the rules on how the sats can be spent again","x":-125,"y":-30,"width":345,"height":170,"color":"5"}, + {"id":"bf9b41802a6b414d","type":"text","text":"**scriptPubKey (output script)**\n\nConstructed from:\n* 0x51 (witness version 1)\n* 0x20 (OP_PUSHBYTES 32 bytes)\n* External (tweaked) key (X-Only-Pubkey)","x":-201,"y":-280,"width":497,"height":200}, + {"id":"cfbcdba7713b1114","type":"text","text":"**Address**\n\n\n```\nbech32m(\"bc\", 0x01 || External Pubkey)\n```","x":380,"y":-245,"width":420,"height":130}, + {"id":"c6ad2069952ebcd2","type":"text","text":"**Internal Key**\n-> Keypath spend\n\nCan be a single pubkey or a pubkey generated of X other Pubkeys using MuSig2.\nCan be satisfied by a Signature that can also be aggregated by multiple, cooperating parties.\n\nBest case in trade protocol, best privacy, lowest fees.\n","x":-720,"y":592,"width":405,"height":300,"color":"4"}, + {"id":"d8a38ee5869c89bd","type":"text","text":"*Key Tweaking*\n\n```\ntweak = hashTapTweak(merkle root || internal key)\n```","x":-221,"y":220,"width":537,"height":120}, + {"id":"be201757794f0169","type":"text","text":"**Script C** (Leaf)","x":397,"y":992,"width":250,"height":60}, + {"id":"bfafd7060eb2cd4f","type":"text","text":"**Branch**","x":-23,"y":962,"width":250,"height":60,"color":"2"}, + {"id":"75d558414fae1d4d","type":"text","text":"**Script A** (Leaf)\n\nLeaf Preimage:\n```\nVersion (0x00) 192 | varint(len) | script\n```","x":-273,"y":1312,"width":500,"height":160}, + {"id":"e117a08ba66ebd87","type":"text","text":"**Script B** (Leaf)","x":437,"y":1412,"width":250,"height":60}, + {"id":"fb1a9926680eb290","type":"text","text":"sort hashes ascending\n```\nbranch preimage = hash(preimage A) | hash(preimage B)\n```","x":-143,"y":1102,"width":560,"height":119}, + {"id":"bf9d4d1c9dfc5207","type":"text","text":"sort hashes ascending, concatenate","x":48,"y":802,"width":349,"height":60}, + {"id":"6ce4d3be03adcf22","type":"text","text":"May contain errors!","x":522,"y":742,"width":250,"height":60,"color":"1"}, + {"id":"e330bfc77e306001","type":"text","text":"**Merkle Root**\n-> scriptpath spending\n\nReferences all other possible spending conditions","x":-23,"y":590,"width":440,"height":104,"color":"2"}, + {"id":"76dda8d665b34f5a","type":"file","file":"Research/Bitcoin fundamentals/Spending Taproot UTXOs.md","x":1160,"y":-493,"width":740,"height":873,"color":"2"} + ], + "edges":[ + {"id":"ecb55b0a6e548072","fromNode":"10b072d0858d8ac5","fromSide":"top","toNode":"bf9b41802a6b414d","toSide":"bottom"}, + {"id":"fe14112fc012532a","fromNode":"10b072d0858d8ac5","fromSide":"right","toNode":"cfbcdba7713b1114","toSide":"bottom"}, + {"id":"d717e74a5cf73149","fromNode":"e330bfc77e306001","fromSide":"top","toNode":"d8a38ee5869c89bd","toSide":"bottom"}, + {"id":"2344ea239a7da798","fromNode":"c6ad2069952ebcd2","fromSide":"top","toNode":"d8a38ee5869c89bd","toSide":"bottom"}, + {"id":"d436eeac8ab6f44c","fromNode":"d8a38ee5869c89bd","fromSide":"top","toNode":"10b072d0858d8ac5","toSide":"bottom"}, + {"id":"ba1b447fc2217c0d","fromNode":"e117a08ba66ebd87","fromSide":"top","toNode":"fb1a9926680eb290","toSide":"bottom","label":"hash"}, + {"id":"d990815a06fede7c","fromNode":"75d558414fae1d4d","fromSide":"top","toNode":"fb1a9926680eb290","toSide":"bottom","label":"hash"}, + {"id":"f18d9ae74dae3367","fromNode":"fb1a9926680eb290","fromSide":"top","toNode":"bfafd7060eb2cd4f","toSide":"bottom","label":"hash"}, + {"id":"9803b39035ce563e","fromNode":"bfafd7060eb2cd4f","fromSide":"top","toNode":"bf9d4d1c9dfc5207","toSide":"bottom"}, + {"id":"97746870135262b0","fromNode":"be201757794f0169","fromSide":"top","toNode":"bf9d4d1c9dfc5207","toSide":"bottom","label":"hash"}, + {"id":"b63a999a702786c6","fromNode":"bf9d4d1c9dfc5207","fromSide":"top","toNode":"e330bfc77e306001","toSide":"bottom","label":"hash "}, + {"id":"607b97aae28c2106","fromNode":"bf9b41802a6b414d","fromSide":"top","toNode":"76dda8d665b34f5a","toSide":"top"} + ] +} \ No newline at end of file diff --git a/docs/TapTrade_obs/Research/Implementation/Libraries.md b/docs/TapTrade_obs/Research/Implementation/Libraries.md new file mode 100644 index 0000000..14a65b2 --- /dev/null +++ b/docs/TapTrade_obs/Research/Implementation/Libraries.md @@ -0,0 +1,16 @@ +## [BDK](https://docs.rs/bdk/latest/bdk/) + +A modern, lightweight, descriptor-based wallet library written in Rust. +Higher level, with wallet functionality. Supports Miniscript descriptors. + +## [rust-bitcoin crate](https://docs.rs/bitcoin/latest/bitcoin/) + +Lower level, lighter library for assembling transactions, generating addresses etc. + +## [musig2 crate](https://docs.rs/musig2/latest/musig2/) + +Still in beta but could be used by us. + +This crate provides a flexible rust implementation of [MuSig2](https://eprint.iacr.org/2020/1261), an optimized digital signature aggregation protocol, on the `secp256k1` elliptic curve. + +MuSig2 allows groups of mutually distrusting parties to cooperatively sign data and aggregate their signatures into a single aggregated signature which is indistinguishable from a signature made by a single private key. The group collectively controls an _aggregated public key_ which can only create signatures if everyone in the group cooperates (AKA an N-of-N multisignature scheme). MuSig2 is optimized to support secure signature aggregation with only **two round-trips of network communication.** \ No newline at end of file diff --git a/docs/TapTrade_obs/Research/Implementation/UI ideas.canvas b/docs/TapTrade_obs/Research/Implementation/UI ideas.canvas new file mode 100644 index 0000000..95e5155 --- /dev/null +++ b/docs/TapTrade_obs/Research/Implementation/UI ideas.canvas @@ -0,0 +1,11 @@ +{ + "nodes":[ + {"id":"e8204cb906ddb1b9","type":"file","file":"assets/advanced_trade_mode_switch.png","x":-620,"y":-263,"width":400,"height":235}, + {"id":"dc9b77a5f6e0ce12","type":"file","file":"assets/onchain_lightning_switch_screenshot.png","x":-20,"y":-263,"width":400,"height":235}, + {"id":"73a35de4989447e9","type":"text","text":"A switch like this could be used ","x":180,"y":-400,"width":300,"height":60} + ], + "edges":[ + {"id":"cd605372cc750411","fromNode":"e8204cb906ddb1b9","fromSide":"right","toNode":"dc9b77a5f6e0ce12","toSide":"left"}, + {"id":"fdd17f73f4b5c94a","fromNode":"73a35de4989447e9","fromSide":"bottom","toNode":"dc9b77a5f6e0ce12","toSide":"top"} + ] +} \ No newline at end of file diff --git a/docs/TapTrade_obs/Research/Trade Pipelines/Existing research.md b/docs/TapTrade_obs/Research/Trade Pipelines/Existing research.md new file mode 100644 index 0000000..3a9fb7e --- /dev/null +++ b/docs/TapTrade_obs/Research/Trade Pipelines/Existing research.md @@ -0,0 +1,22 @@ +Collection of existing onchain p2p trade protocols and research. + +### RoboSats + +##### Onchain deposit with PSBTs +[Github Issue by Jacksper13](https://github.com/RoboSats/robosats/issues/1114) + +##### Onchain P2P pipeline as Taproot/MAST contract +[Github Issue by Reckless-Satoshi](https://github.com/RoboSats/robosats/issues/230) + +### Bisq + +##### Reduce trade protocol to 1 single transaction +[Github Issue by sqrrm](https://github.com/bisq-network/proposals/issues/279) +##### Investigations for a new trade protocol #5430 +[Github discussion by chimp1984](https://github.com/bisq-network/bisq/discussions/5430) +##### Current bisq flow as taker +[Wiki](https://docs.bisq.network/getting-started#take-an-offer) +[Anatomy of a Bisq trade - Forum](https://bisq.community/t/anatomy-of-a-bisq-trade/10979/2) + + + diff --git a/docs/TapTrade_obs/Research/Trade Pipelines/current trade flow.canvas b/docs/TapTrade_obs/Research/Trade Pipelines/current trade flow.canvas new file mode 100644 index 0000000..9a85d51 --- /dev/null +++ b/docs/TapTrade_obs/Research/Trade Pipelines/current trade flow.canvas @@ -0,0 +1,62 @@ +{ + "nodes":[ + {"id":"fe94f3c9a67875b6","type":"text","text":"Maker | **selling sats**","x":-440,"y":-460,"width":260,"height":60}, + {"id":"9d82ff6bff57a83c","type":"text","text":"2.Sell-order in Orderbook","x":-462,"y":-260,"width":305,"height":60}, + {"id":"8fa39f8a35b6f963","type":"text","text":"Taker | **buying sats**","x":-60,"y":-250,"width":250,"height":50}, + {"id":"4d60bd1ab9f37b0b","type":"text","text":"**Possibility 1**\nTaker sent Fiat | Maker confirms","x":-720,"y":160,"width":300,"height":85,"color":"4"}, + {"id":"bc83b23761a4f553","type":"text","text":"**Possibility 2**\nTaker doesn't send fiat (and doesn't claim he did)","x":-359,"y":160,"width":424,"height":85,"color":"2"}, + {"id":"b3437bec8e00d656","type":"text","text":"**Possibility 3**\nTaker maybe sent Fiat | Maker doesn't confirm","x":100,"y":160,"width":500,"height":85,"color":"1"}, + {"id":"859640fc50ee7149","type":"text","text":"Fiat exchange (Chat)","x":-240,"y":-20,"width":250,"height":60}, + {"id":"e94e83cd61e18e1b","type":"text","text":"Taker","x":-1220,"y":400,"width":110,"height":60,"color":"4"}, + {"id":"534b2aec29273277","type":"text","text":"Coordinator","x":-1097,"y":333,"width":157,"height":60,"color":"4"}, + {"id":"09c6192278d0c20c","type":"text","text":"Maker","x":-1000,"y":430,"width":120,"height":60,"color":"4"}, + {"id":"1939841fedec6c0f","type":"text","text":"***Possible Keyspend***","x":-1203,"y":580,"width":263,"height":60,"color":"3"}, + {"id":"ab10f89dba11c188","type":"text","text":"***Protocol A***\n***MSTB*** (Maker seller taker buyer), maybe some nomenclature could be useful for further thoughts","x":-340,"y":-700,"width":405,"height":140,"color":"3"}, + {"id":"f61c6285cefa3b31","type":"text","text":"**Timeout**\nMaker gets his own Bond and Taker bond","x":-757,"y":660,"width":374,"height":79}, + {"id":"b9b6ba151bbae01d","type":"text","text":"Maker","x":-637,"y":920,"width":134,"height":60,"color":"2"}, + {"id":"425368ae6596b423","type":"text","text":"**Cooperative Cancellation**\nMaker and Taker accept to cancel trade","x":-196,"y":550,"width":362,"height":60}, + {"id":"0cb3e5ea0f8dfb8b","type":"text","text":"Maker","x":-196,"y":920,"width":115,"height":60,"color":"2"}, + {"id":"e2f7dbb8041baf43","type":"text","text":"Taker","x":200,"y":920,"width":115,"height":60,"color":"2"}, + {"id":"247142651f831887","type":"text","text":"**Escrow**\nCoordinator collects Evidence of Fiat payment","x":600,"y":367,"width":433,"height":67}, + {"id":"8dbbfd87977269b0","type":"text","text":"Taker wins dispute","x":1000,"y":580,"width":220,"height":60}, + {"id":"cae35a028b34a2f8","type":"text","text":"**Maker wins dispute**\nTaker can't provide sufficient evidence of fiat payment (e.g. bank statement)","x":475,"y":580,"width":250,"height":159}, + {"id":"898c648993e5d4f1","type":"text","text":"Maker","x":475,"y":920,"width":125,"height":60,"color":"1"}, + {"id":"d58f256b0c1fbb19","type":"text","text":"Taker","x":800,"y":920,"width":110,"height":60,"color":"1"}, + {"id":"4d414222fef35d69","type":"text","text":"Coordinator","x":1360,"y":920,"width":160,"height":60,"color":"1"}, + {"id":"f57afde511e8ac94","type":"text","text":"**SCRIPT A**","x":-712,"y":1080,"width":250,"height":140,"color":"3"}, + {"id":"b3099a08b3bd00c0","type":"text","text":"SCRIPT B","x":-60,"y":1080,"width":250,"height":140,"color":"3"}, + {"id":"da056e0d063f396b","type":"text","text":"SCRIPT C","x":413,"y":1080,"width":250,"height":60,"color":"3"}, + {"id":"3c9f98938fad14f1","type":"text","text":"SCRIPT D","x":1033,"y":1080,"width":250,"height":60,"color":"3"} + ], + "edges":[ + {"id":"0452390c8e326418","fromNode":"fe94f3c9a67875b6","fromSide":"bottom","toNode":"9d82ff6bff57a83c","toSide":"top","label":"1. paying/locking Maker bond"}, + {"id":"5c69a086cc90154f","fromNode":"8fa39f8a35b6f963","fromSide":"bottom","toNode":"859640fc50ee7149","toSide":"top","label":"3. taking order by locking bond\n & submitting payout address"}, + {"id":"d2599d1347bf5417","fromNode":"859640fc50ee7149","fromSide":"bottom","toNode":"4d60bd1ab9f37b0b","toSide":"top"}, + {"id":"dabd41167871657b","fromNode":"859640fc50ee7149","fromSide":"bottom","toNode":"bc83b23761a4f553","toSide":"top"}, + {"id":"e8af56d7bbf332bd","fromNode":"859640fc50ee7149","fromSide":"bottom","toNode":"b3437bec8e00d656","toSide":"top"}, + {"id":"24e029ca9217e5d1","fromNode":"9d82ff6bff57a83c","fromSide":"right","toNode":"8fa39f8a35b6f963","toSide":"left"}, + {"id":"244fd8e5cde7ee1f","fromNode":"b3437bec8e00d656","fromSide":"bottom","toNode":"247142651f831887","toSide":"top"}, + {"id":"7409e2562900eece","fromNode":"bc83b23761a4f553","fromSide":"bottom","toNode":"f61c6285cefa3b31","toSide":"top"}, + {"id":"7b9eb4c7df6ad656","fromNode":"4d60bd1ab9f37b0b","fromSide":"left","toNode":"e94e83cd61e18e1b","toSide":"top","label":"Bought sats (escrow)"}, + {"id":"dcd01ed41d5129a1","fromNode":"4d60bd1ab9f37b0b","fromSide":"bottom","toNode":"534b2aec29273277","toSide":"top","label":"Fees"}, + {"id":"18976f0f1451edc9","fromNode":"4d60bd1ab9f37b0b","fromSide":"bottom","toNode":"09c6192278d0c20c","toSide":"top","label":"Bond"}, + {"id":"492605ad1ed05298","fromNode":"f61c6285cefa3b31","fromSide":"bottom","toNode":"b9b6ba151bbae01d","toSide":"top","label":"Maker + Taker Bond + Escrow"}, + {"id":"2674ef5128f75398","fromNode":"425368ae6596b423","fromSide":"bottom","toNode":"0cb3e5ea0f8dfb8b","toSide":"top","label":"Escrow + Maker Bond"}, + {"id":"145bd54f1037a13d","fromNode":"425368ae6596b423","fromSide":"bottom","toNode":"e2f7dbb8041baf43","toSide":"top","label":"Taker Bond"}, + {"id":"2d05cba9001d314c","fromNode":"bc83b23761a4f553","fromSide":"bottom","toNode":"425368ae6596b423","toSide":"top"}, + {"id":"0660ca0a50ba6756","fromNode":"247142651f831887","fromSide":"bottom","toNode":"cae35a028b34a2f8","toSide":"top","label":"Possibility 1"}, + {"id":"9b3b38743a629a49","fromNode":"247142651f831887","fromSide":"bottom","toNode":"8dbbfd87977269b0","toSide":"top","label":"Possibility 2"}, + {"id":"b355d2e09719aca7","fromNode":"cae35a028b34a2f8","fromSide":"bottom","toNode":"898c648993e5d4f1","toSide":"top","label":"Escrow + Maker Bond + Taker Bond"}, + {"id":"576229e1d5f72190","fromNode":"8dbbfd87977269b0","fromSide":"bottom","toNode":"d58f256b0c1fbb19","toSide":"top","label":"Escrow + Taker Bond + Maker Bond"}, + {"id":"a2b9b90f6f7a973e","fromNode":"8dbbfd87977269b0","fromSide":"bottom","toNode":"4d414222fef35d69","toSide":"top","label":"Fees"}, + {"id":"e18ea56127e2c901","fromNode":"1939841fedec6c0f","fromSide":"top","toNode":"e94e83cd61e18e1b","toSide":"bottom"}, + {"id":"cf6a0dd14c4b6225","fromNode":"1939841fedec6c0f","fromSide":"top","toNode":"534b2aec29273277","toSide":"bottom"}, + {"id":"b735412385ea0d09","fromNode":"1939841fedec6c0f","fromSide":"top","toNode":"09c6192278d0c20c","toSide":"bottom"}, + {"id":"e65e294cc356fe69","fromNode":"f57afde511e8ac94","fromSide":"top","toNode":"b9b6ba151bbae01d","toSide":"bottom"}, + {"id":"94c7b24ff5a761ab","fromNode":"b3099a08b3bd00c0","fromSide":"top","toNode":"e2f7dbb8041baf43","toSide":"bottom"}, + {"id":"5cc19e98879e3a76","fromNode":"b3099a08b3bd00c0","fromSide":"top","toNode":"0cb3e5ea0f8dfb8b","toSide":"bottom"}, + {"id":"bdbd42ea0e67729c","fromNode":"da056e0d063f396b","fromSide":"top","toNode":"898c648993e5d4f1","toSide":"bottom"}, + {"id":"adc7cacda2b737b7","fromNode":"3c9f98938fad14f1","fromSide":"top","toNode":"4d414222fef35d69","toSide":"bottom"}, + {"id":"5f984c88b11c03f9","fromNode":"3c9f98938fad14f1","fromSide":"top","toNode":"d58f256b0c1fbb19","toSide":"bottom"} + ] +} \ No newline at end of file diff --git a/docs/TapTrade_obs/assets/DER_encoded_signature.webp b/docs/TapTrade_obs/assets/DER_encoded_signature.webp new file mode 100644 index 0000000000000000000000000000000000000000..bbcc09da950bb3443ca37665b35164a25e9924ae GIT binary patch literal 14794 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 G_`d*2s^z%= literal 0 HcmV?d00001 diff --git a/docs/TapTrade_obs/assets/anyonecanpay.webp b/docs/TapTrade_obs/assets/anyonecanpay.webp new file mode 100644 index 0000000000000000000000000000000000000000..d70ebeb7f63f5d4c0c101d5ab84ff2904df30b26 GIT binary patch literal 11042 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�VI`{}~ak7tQPjHMy%SK1s!8+DBoFoL@0-dOsh&Gy4=1GPbu zA)<9n%{>o7Gm@qu{m7bv<)~X@mVhbNWSk5pF4-JFa(T zZYC?!so}7ZRv*4WeownY+(>#84U`g9)|s)aQC8dELSxOV#u(EX_yh#)JoRV`YSU=H5`E-raV~eMU3qYx-%!D;5vlfZq;<}6(ODQ?XmM%W zXmXy+Hjp^|*16M}^-b1L*Xgw(sq6IVuK4t)P@<34*~3fO#aP!Z#_czhC6q;>Mxg{B z(ap@JnrFIEwWKZ-AKkOJPPrDjMn3cNRoU~=(IDC9CEfv*tBR7>&(HNF@FFu?e;16l zB^|yB!=p~1iHd#l0^jX|hm7U$<#Iz>pZrcVj%VX_s=OplT=R-mW(&8r0+^5WbYo1% zW=-=$Ry{WU`feihU^%E^s$~^u6*3C&%rTq=`sIdn_Bl8&M{wEMI2RW9wH_MXbRZoL z{VF=L_Act&3E6#+*-jW^b*s7ezB=vl;XJ25b3aGjn(VuO3ch@ug;OH?NU9?|7p(QV0(Kj6 z@$UOh-;GW8B>7w?tPprrTr~f0&*$je6n3I8y+}ulD`<%y%~Zeg`AN z6awzI5VOSokUh6o5o;3=H&uorE=M+`t2B*G1ZYOuI+I!v5wfAH%l~DvT;R-kze7H@ zX*f`eahnh-^aQk1BmI?lvqCF)GYUHZEp)onO{Jcbx%41!6Y25Z@}B-qX<*yY==|T; zvA$p8+F@`H&o650(FFN+_kZyKkxOnNuc-n8`O|_xp^+fa6L2UL3<7zvgFwe-Adp}V z2!!XF->D%CoPhnPBqt5L17D9)T_M05f~&l~2MB~q^ZpH?phe*Ri|o|@)9GAvbH+KLvoN3ADjFm-hYDA%|fqptz*zBgGKR*#6JHjc%nJ0 zm0nej9iOQq992BoPEurX(I_QMVS??~aU`t97=$TEwTRGvcw!BW6nUBTC4HPt=*& zZ?o!2wC{BJ<=G!$-#8Whb4+zQ=`}8_L~L&LR-c@|9d=7;pC}Juz1eTq#i+$^bz>+& zn|jQ2G{@IrZhW$%XDB-IG6RJJbdr>RYUrzvRE5VC?)05AWzGV>{>;}AWcmIT32yAWIE#@@8yyE z+g=&-&}5+RQz`m7i4 zQ(`ou?k0gz!IyQx^z+@n-G-a@i|cJsrKh}&a!2=(0WTh#EcA8(%qy4EU~??3B}v}p zBFvB=Ayr|ob~QDNmXkVpL9iVIGO^D~4o2$p{y3JzZpnwosJQTmN&kn|Lh_5m!iypk z&!^A3NK&B`JN>Fs;=n8PIu&@S+muanRW2v_&fIZ}LKnP=_}NnK=(RrdK7HefjGA@3 zf2>T5o8&6v;LR^(Z!emqx3*wbwo0E$8s;s1L%=Uc8W1@kHIS2nCmb6kY)P7ionBKV z9ht_{N{mo5aLNy46~!ycgKM3~P}-!A~b`mFm{SR2OUzVLu};-v88Q3j4|g*NGihqO0yMxoS)i8E=57Oe|aRw>Bw&-$3XZ zt8=sh5rzB3{&$)N3@wk|WrC&2KqA5dj}KpAL|S6fZzpP#p{Y^X%4I%yb*^5a zZ8u+{XT&69LNwpR0glPpDFuWv>Pp9aY*)(P4}*vBy=wW7V{XNVxc1 zUF~9x`B3sxGUN~sejW-{lX4D?!ijdkubh(K2%GVHqsjUA>4QBfZSZI2{PGuK=A6JW zvII{(%WX=3^yLQ67?{7zgT1Z;1_@2lWl67j+}q+qv^5X{$J{X@-YX}c_)HX~#W~Ff zgJlkuH1Zz59uCM;m?Dc>MU-*L5^+F=EEp$Fva3>g;beUB@QwYXs$6J6n3y@6nT8)u z-hd7=;};M?6j!HLF+hldyAC@Ez=pC4f<#Rafr!bW6iI+Jq+)?;0P8Xb$<_)kdi!z` z_ly|G)wWukBFKDRC&jT3S5|c7(Zgs+J3*7MIyiJ z1#}Cow(zaEUKeFaGL|_~^{-ue*1)FRVHwG9i+i+$LiO!T+n=|C#(IP|)#J|@x}|eX zElG+YRxlVrGwiviBreIBzKmbW5yCUmFBg3jJ?1=w!weB>6+09rsEirTBeI0zl&1%% z;_j*E)x5q8?r9Quo^j&mp(dMk1_&zmc#m@KCCDg+6|HR$-l1OU8x|-Qd)3^*L^<{RzrLz2hlp2`*Lz2 zmzL<4j7d88#T8Qt0e)Rvt^z)MR=^rdMG`|mgb_inE`w;LzfC2oycI=YJH5B4&jc8j z=&L~G(m>F7?G%CQbf?Ez78eDUXXa4P+5{&{#&bvLFBnxF*$Jy{>D|4D*z2H!P6JVD z6Sa9;DkkowQp>XSoFvB~@gjG)uZ)vJZs z?P~LF6hGUK|F(lQzfwH>Jy}c@MvZqF=htkOK^Qo@o~lXU7AJJwb?ye zJ=sZIM15pmM=jNwhXwO1=DXTGK^U1GJE=1)xNsqZ43w_IQ?l%|Hr(?4 z;UgJ{DJJ6sAk&G$%2}utLZp7w1t^>r$(>^LoG5B~g)x~WJBTGjxAI2+0rLZO??#nR z0tPhG8N{~mUJ#K=U%u-cmbdIi6T^H`EKM*Sk(Zd)cf6Ss|2*ne?PWkJ$9>4*Gs^m9 zpQqjaC?8+e8uZa(iF4Mw+Sn>tC$wS^qor09DOC+FB?=a_C>bYdO_AgbdUGEO)4*2p z<^HZwqHt^GP19vx(e?x3Nuae(_O3y@?8ma-K8L{d7sX87HUC9f)aK~HI?qFU2iF-% zbqAAm(a(dIB~JX|OViVvj~hfHIEB5tb@{71_{~F)M+^xOuY{IRq}w?xqq4<7suEOHCAL@SH@r2R{4PhNjy&cKM1`>CjDgqE0HlJao%Bqx- zMpy)f$<`XgS-vWoQ3#aoba@}c8!ei{6IRx^8kI!fTr9&tv*L!Lvg6P8nCX|YBM5yO z1Z&`qK}$o*!+~5NFmE`kKfMVg8S&|33!&khHOG!cGzvZxVK% zS$#UN65X)9jYj)+ZeA9SKc!Oaa5c5DzC@C5B{a`V)cr`j&|koA$CCOB?9HqPOoC2jMp_~CN~Oc&F(nfpjm1fGf|)$|^SGu`|F z656hz8C;gD?k(IA)yp;|A)MPUH%A}|3B4iMejb!OZqXR$xc`VMCgq|U3nEgmA#tL2nh0>ug-G$= zH&^crV3Rip6!61+wtYn}6fJ4h10_b-5$l+HX`z;5G7{h>mNE`gm=;e}oXlc^(uD<( z#h=60HOegrR>_HL;OI~VA|qdZc<7NuybYM3gnxuGHG*ov?^zBj52J`k=IQ4mlp_g+ z9M&Ei1*vjzdDM4T6h2NuoRwnrp}|TqnzM zQY{L0vOm?|OpvN7!2t&3E}b$;drCU|2J}e;XZWUXWgR`$ozoU>19QT4Mn&D0%uAOfB_!8fS@m-vMI_)}c+W76PG?>-MK5CX{orr{rj_Jw|SBT^)z7swqvP+X~ zD!`iUdY|46&EG#9sqP4mpU5#{wh_Q)pXFGi=e4M7XuTyijM`P>l-^nuDE5oW zkV{BNh)Zbg@vJ_nm_8nnl9KX@3SP2_&s;BEJF_DqHuj@Sm1#RveTr022rQDoDv`Lf z^w7L`-wJ9gQqTDta;p=OBEE2JtgSjCjuGsT%yySkgt=ifAuJjtC7~wl2Xb@JkgX{o)!%ql0(n8->m*h?4YvC_3Nw#xYI~-uy_;#c^K(7$*aq z;9Tq9I@~lI{)OyKZ}0sWS1MauV>kHTC#VsX9GMK6R9c!_9tMe}u}V?F8f5-pc0o>A zNV$30PK@DePpF2l=Vs6A|P`4R;PrC9(eoe8sG1t7~j8zV|YI zMF0kT9ohkI6QNixK3{~HWLvbpJcC(Not=g)YAK_U-h%?%PI+W6oUlDvTKn4#4LUNn zaANtz0489i_&hz&%A}U${seDRMMg>%vif4oltVO}|K>=4`vorHyr~!1PteYmCPI`| z^u>q2v!|dejU)ocmZmKo7}v2;P;1)8w%%Bf?^;kp<7N4xV`vP@Jb&TCU8D`8uq@uC z%ynhQgp>|x9DesF?GoO)-o2uRwzi=x_DI8t`9mz)e}6NDd^7228ZJ|QD2+(5Wl~U5 z{gE;=c$g^=`M!VfznRAAZ7;B_-O7Dn#AKC@^jFz7;Xx*A9QyxrL1`rN{qRPt8~EgD ziu{3vTQLu43Y@x<8JaK$AVwpHh)UPPzVm{;#traTSFY|D8pEjmY_^e8XjFlHeaX?I;HkG)a^nh@$)UFT}hdi z5^3$l)Si#ghU&3A|E)v*^2I&3ij=vxM;CHPwnc(Ut3Kx~G9}IA_<#1MC&lY|`{avU zZXDBAKFAju$@mIZdWhww*RKj9W0feaf5$U@sjm^!lffQFt!D{ak5=Fz91?k2wTWa@ zRIk?j&B0|DtC$|gyQTY3Zk%g_^nJ|Ord;buoSu{9>j{`shdBcirT>HDD{cZ?{VPcu zRYMEa3WMbAIbBj7MFlGsb>C9@7vX-ImL45Tt0Zz?0Ha{D_u>1!17 z-ubXeXw?`b>e(#I#9>Xe|L80YQcAL2_RH44XM^vUD!%x25LDRzI}x5VkD+&kaTd%P zc5+!zG4tOz!-zPXl9}!xc%gFthFdugsSfpsRFtvj0d~Omv$5E<=3jNo?K68fdc3Qk z!=-omNu{Y~t_*c(0WPjIQXz-!sz2A#;z|&@~Bno9!+syem|Q(EkwUgnask4m%V7v!bw zn%e!;Ozm#=T%#-bJBQaZ==>EjwN=&kk_CT7Zk*N5VavmIsr0;*+t0q2`1eRxSH#`E zA?wuIQ2kTR^u z&Lt=uF&oa+Z?Me*T?WIyAd))|B{|ugi z?cap4ad0SjMi7e+A(<7^y~A*2AY^2k8+WQ7@iRXYa;R5VBPw8W_-V4%8G7Pas}&{Y zD;qwfiR}lLpzxT)xO`V?-<>KWD56@qF5RryjR$b~ahgcbd7^Fq2@;Oc;D&$IY}D*& z5Le{~ew>6fI<%*^cWGTODrxM6cqBbyXn90+Gh`D%DYZnFS59GeiiX9g_$O+54Ad0r z$%Zdh1G}EPj&=xZgha*S;pJSkPNqHQ4(-LeLCg!BCH{TTd1oiBD7rwp!2VzWZXZr2 z`t#M5=yoM|D_T|eN=ayNaaZmM;qGO3VizoHcS(S+Y+cm^gD#!J%sZ7MO48cWQpkuE zfq>hLqm5%TyS4qsT<6g*dJi1D_V=lFfDpd}?7` z>Z8@gW;aBG_%*b4z_a_d)%63z4D&l0p-QYB&`5YjQHg&!Tm`x~f}XVa*9Pbk;CxTLy_Jp(R4;<5R5! zz$w%UYY(UZeAg1@)yu0H*VafL9)|AI>@pk8b|HWN%1ON3m!)E1A+Z=s9s<`Y2X-F? zajzKedPcFH;ui@)=uWc?|MA%#%}U`d>#Za8k08~_BhcnqTzMU_PE?#VpKA#O-#kU0 z(}kKC+d*X`1a3cnfW$ohE=LJa2O+x)SWmQ!AOT5R&zdD{?$7Y7JDMV4B6`Lr!Ek^& zLa7x}tyW!Z|C#~wrB;|Z@=T>h0KF(mM0*^?(4UyO*bR-gZTF9OSp67Rj#&IC=^qbM zSjQXKdmyE?Xd3w;tvGVUM55@^ohzIKZ;?yHFGB~!01cNyTt+A3JbE*CEI>`>AB5(I{fXyV(J+si zFL+qMs4j@6Rxn_YHAM(7&J2gHiNEYUb1kW6M3zM&C(!WQh142>QouBu`wBj`muo|; zN+&2}|EB0ANFr-vQ`+$rqZOM7nU>3u;j67=<~GfHP< zws$1s0pMO*6nq(tNYzTDb&yxPx;9RFZN!#Y^!$;uoE+TFQS@RKq|8hd^U(z-zGs6z z3pz9oZURAk>0nkCLYV+e69){VH2B8fvb=J@x_Qu%^X8^lVejqfO)S+44wE)|UH}^z zNF%oih~jKt^>Vkvi4aK|u#F%XYzVNQ5xAG~$C5d*jLx84KBV3eZyl%WVM0SZ)vr+@ z-+Pm7rO6gdJ6DmSS^APsbjDJs!jLOr-uRQ$@)B7Vyq(-4P%hLPyn=6GEv-|+$xkSb zS=hmz2wQzSJ^GZdWYr?_Rbzuack=Iz)&g{H7<#QENE#g(Jh zZbS+5P8w^dah%aG35COxGK-b^+YVb>c^y|8AWG@&%l!S7pq|#Vh8=mSn3#|{Iy!Ph zgZ#sj&FC4mv?b&MgpOJBW6Hk4pvF-BZ6`53MbH9ms?r%b!)%qPz<|Q(?awvZ=Ht@S zIm_`;Y-{^s>zs85J5A)~?eHK&phrjl7wYwMk<8SIlc{D z&Y@ml<;q9azokhvy?7hgB2D;n&Y>8BMh{0xSV=I@%F1fDx~6Wh&bW&lelV1cwYs{r ztPF~TgrusrcDO_;MqNwmQwxYP7Sq$8%iiAJwegzS!0==@5~6e(YUBw1RTu(%b|$N9 zLzigH1pT$rUpDmy>|K*egTc9h4qa?}W+mTd(C~VVtHtYiYkmUDx)N#vg@A~RpY~3l zT3R4M7jVuD8p`8X?oMmg0&e8;JrSzID+S}3lmAv&Bc7@}!Dyh~JFvyG91Y2uon zT|5o1x`ED~nsQvw`Bd6FzU2U_^VP(bIr;MYxzFVRgno4|j5V`rTR3(?$ z?)PQ$t-p|ew;EBbtPapON%2uQ%bygd==0HWk?ut)b1BChgZ}3OeauN|f zSnoL6aWu(V?LQGY53g3s<_k0t>3?PbpB)blyavo}`~k1ajw&>qeNQ`6B}!N(W`KwU zh-Pq3QSi#ZZC_6anU@LKLr1dZ=TkL!5Nc5$MZzVbTrF%oz8+HUS4NOj%&~3Evm}yM z3K1*(iiyRD+?OL)WLL}iehmdI{k7f9?Ccn}z8B2+(g*F1;j3`>;{^swYwOXTH5qMf z<$Pg+>jdlF9zN5tLa66m4ej#E%AqgS{J}TuxyL82r|~XB^CBc)=+K4^++p-HLZhQ; z18)XojXZ`pr&t-ospIMCbHbL+G%YQy%zKU0EsYs@G?;qZ&b zNoVutpferMN&i42^8p(xUVf2A0@cj`H+fk*xS0=AqJCGFpFVw(CdTk0Me5;G3;OINMs(?&NkuN~HXkk6 zn}vLMNOB}}Y0yWtWd$5a+6qCA@jsEmez=}x^-#h|u32?4T{qZ-otBRLY2jsuC|ire z=3N=j=1$G4JD0vK-n5r%S<%ta?PoEnX9$?q2{5<`Fn80uAV@$li0u1UrQQlA5(uF# zEqKPlGEwWttJ{~{L2E`37#nYbUE50(X=B6TQ*!fnF!VGr?1MwbE@E4;saFr3O5Zt{ zEgZ!CebV>bEccFtcVn!y8uAF2?~I{3hMN`cX`Bzjbx6MxqAne)$}YR{O&U>k5q}St zKk$4qo!P%f)HY78*2~*_)M+!E{D%9NhIY;rE_~_2hj@x`RWuDTI`oW%(>#6bKx@7@4{Y(n=CsW-iYrj z&Ib=_Fq=MvL=mLT(Yh-R*-(cL$(C?d{FT445gTU&g)eB}e3Ns5Rgkq3i==?Wl?l;u zbNM{)TxR9S)BN9C#0&$X!CLOFHxtG$90^b|iAeNQwLSm3VaX54VWOWjn%od!6d!kd z>v1Uw(Pdz+b;=|71OUR&AZ($B2ex-aCFzD%xSl%|w&5JXApjq`x=(T(g4V z5655mHR{J4V&+}z6!5YGT5k@$e_t-Gt>vaJk55d*uXn;gxbhS88)~4+`?tdcsRiID zpp}`R!Hf75EFRtbn3$GT^1u@8>>Tor!l5Cspi>@2QF4xya1mEfU^pfsG*cWOtWw}A z;nT-*->`KBdV{6G8PYpz8#>B)pAduI7G1R+~{vY$qfud#AulMVEp-n%x~~CMcZo7aO}hE0tHRWZm~~`dJL7{kh89i zj{Q1Dy*CIqfd+yv5zDNt&HTKMjl*xyS2>px=h1Iooxcm6K;Ocg`?ETC059sMRJ)%J#r6lIkkpGM7Zm74JrKuyoCYFik8;>~&^n=01~990 zsdd7rvnZ%P*ONE^=v}Z8(Pk!P&YO!*T=i2oIGGLh#p@Mz84#+RpIOUXnSr>0M$^Cs zST(KOqI7Si(ZYal%@-!Mw6rwxZ$kO}{>vj0P(R`Rwk$W_YuET8uO=bu&)77l>E^nO zN-X3@>@0!TlnbyQ_HVVAV^6c^J2na;Wmmxhc7h~yX^ix($m)dew(aWiN>>$>OiWx~ z@uu|J=HZulEvet>RTS`S=LW8FQ6`MI#QH$c!|z%IqJ$5#t1PrMp1u(=)|jG5HWBetgQO zn0MGqYlMYQp)%()h_@b_i3K9&DNe0uzAgUTN?(~*M~9YAkF2Pui0r$=GYy1LNGDg& zG#ZqXkdPQWQ$G1p&FBfsWf?(0ngUn77mdoQ_d$~!JatjEd#_QyJYdgT(p*MDn}JY` zXqik1rEe3uWg9_HR6Ku@mSulJfG4d^t{8FHgk9rJw!1`>ay#Zx(8%t)Wll+WqlNQ> zyQA?XU9~(peb%!S@w|X@zj=Zikf2@XiXkvM4q#8gcB8sTosPe&&2ZnpfB&yU{i+Mb zmxpiEW7cc2)fkkL>qqTB@RaoGB1b|*mbK7&rk=#K)DKsslS)4*L@FV_OAKYaQ&wt9 zoV6IEpy7fGr=YPr6^0C{eAoqjl*Z;!&~n@S&8tj=wvgSn>oWFj#nd69nwHJ;!Gu{_ zBa(TNoiM4Ys!BXKSd>~J{)Bg7adG!2-?p@(BBH0DaXl~T>ndIIYGQ3I^Y1@@Xlw0h z((CF}7nZb!R##youz!jhiu|LGhm_GEhcEqQVcKVt4k|BSF{|%`k2nrpt&+;7dZfx7 zeHwKk_Wk>gZEPHE7*>MCIGBu1byK8TvBK~&uLzqLm~C%T{~l7E8XTaW$lp{f;TPC&?zHByjVL{8&%WHS0 zM9Q^mlOsR{n3~gi>+ar2g1m}~jJ5fVhGA&Jqw z^X0LF5ISti#k(YA)`qc8K93_ZKu`#S?u3 zm*s4z_V)IYy7WHM8WBuRb|W`cB55!3w5ua$Bd9BrDTNIcNHZCqD56^eCdh@n*H}DLFQMWG!Zyw6$&!2xxOh^LjNt7)!?Lyr? zB}~`C*&j_ATf9E}cv6wH(i(s#*wtyq@!5PPf#2^h`dV&Y!^0n;Vmu>$H(#=RRow<3 z*l*vQ_`M%M*2dmA2B#`H>~55QrVAqKpln=wr$PmquiPB}i2^(q1@%OI))Zo)8BYc@ zun?6nvH$j(Nm;+v9(6vOSWj~gn|MH58LF;A;9v+;d zqa&cQnK`-TIFb}v!AJH_oS5ie&7h+=_MFLMMmNYUsTM(zwd%oW+KNr^`i?IY3|UJn zk{h{m%B2Oeb|7S&E*OhKI&3tXrTmc&U!$Lr70sws_$}17rN0b$dLOse(8*L14ocDG zoqcB2A6JmQH7-zKO6dp9*!w>=7Wed!I5|0ikB@=>Ihh%ZIls2lk2a}~8Mh2yw2%5} z4PZSQ_+7Q~+Cll4NHF>;N>*DNm?dzp?D@Es7HrS<(8OBe_D$9wuw2rsAZ-mZUIL1^ zPzhY}c*sxcLzPI7iCNfHqiK`N>mV3+K*S zXwC3cUAv@GKC+b4DExgl2SunvG{5Hy*_J&Xz_Tf1P;Kidz|WMi{kB@>$+cJAZm|+b zx%Op}4agWDID>V;i(R>*(ysNev$Ogxif0`ehU!qL7`2_1BlniJwxNSN=|CD8Z4D!X zxPL*HR-OX+;A2OdGyE`sT5MMkwV!}4r?kdG@V(PEMtir5c9M^Y+0p0>GOEyV>9Y$66g3h9)h zea+2SEG#VeT-M6@$@YJT9SpU#qc)x8f`UY9b(or(n@i@8(tEn3xnq;SJ0>+CHia!;VmvM zK5X6h@>Q`(%9df2$)zk+bai#jE-XZ5(5dbH9?#HgbtLG${pRv0B8LtQ@CX1XIF?QQ zE^ih>A|kizpL`ahi3AFpee&yTWFsRZzJEU36w@Oj!$MtMUAdlZ2mrj}xY3RQ#LvTB zTVKJ#D{bk3-GvDX=HIif^HG3~UjJz8>h5zrk|_KB9fz&w z22)FWB%Ma7!Tmrn=co1QB~YO3p@lp^-JPz(0a|FWMwc!iLn>F;kCQa$Mx)OUU|_>m z$AN(Jo){Lx*5axvcwi+v~bs!mO}FI@YuSzsNJ2(Y%IO`?kDj9 z(`N0t(cB36_XdvA&%2y*Ug+WCGrY5bxUbWuLE5k@EKD#g>r( z^bWA(7t(uQ;gy~MKA_tf5giS5{jDka`0ysPSfqfC^UL-Iy`_x}P!?U=Iy;};uB?4` z*mdQ1J^9x55x}yoo!x-xzb9SLOx8beSxSS?xruT@5f0qJb# z=4k%i;@*E(!utL__lUIcI0*dMf}a z!M8Q0FhRZ5)xMV_cy2rW5TMXSdl>}~a_s+{GXgTcFnv3qlifSzR6K zSTf1bbb-(%VC=hNin*eD!If5jAT-{UF5n>9cN36_B5Pm+^mlx6qG4bV-_+DpRYQ=M zm#1NBiY9^XuWgKp0f9_P0U%}vxW6ypN)SlbG{{SNNhstkF!1T9lAetXz^0smLGIm3 z6cXOd$_l(fy6dV{w#@h5vomMm>nX0P`uZ`T@VeYQ55}{zvjfsg|7a3Xqt}U!@V}R9 z-@Q0GcKd~@;uHSB2X^Q7UD)4;heP(?WwrbC)zw4eu;@ygnlRPGUb&q+4sZcXfPi*Z z^(hdDZSVF|{>%w;zZJj+Q2OlVW)cb!?@j_+Z$DFgcQ{>9AZNAnx5kQUMn)#4%T=4A z62L5g4sHLPu0$#7vQVXA;IkF-+!i9GqJlyicrj3XZl$kJU=sXj1r)LX{W$F2>=AqgnH+>vqt+`BJSu`0wB0WD=nUAQcdc1rr0Tfe`@& zxbN+vE|7rZXrjRB9j8Dw(+J8<|b-#WEJVS?h8*>LhTph?o0MiJ+Tnw#|#gBX(DDc^eo1RvE zFKkbi>&J%B#E3mf+BUt3fQy$ZUjeQ`6TScyhP?S{>FDg$hrBXv1wT7Y0UI*erojT% z)AV2E^{L#Jm9zG6z}S-uGpbh{=ON5}%FTwv_9`UooncLmt0GVhV(O_Jp<{ zlb5LIanHTzo0#`YVo2u{8K$hc-d*~4qXWyki{#+oz&s+Ry87X|=wIUgSPB)OS$#IW zbcwe)Cu)u(r zjXSw*1x-8LX+Xesei_gzLG4U-sPAbteNM~Fj0$->3>kel9f!qeaaR}7^WEuC^Doha zF|rV1B0gti|G(Yq`9($BHJdTalk|*?kTY27m;<}6w&y`IGEumK-5+1ygbGx(bakb& z4vJ~)WMpL8uO^r@^z^`OERDYPQUrkTsISJ5KyP6bbIB`I7k$`)dS57ziP1zK$ZK^R zlv4;WP{^1sA0{kPME=|ltOMP9fbw@w+qOpm=5)IOYrK;Ihu^oy>%;w?`>pF5XFGfQ zLEux#@(G8{bbi%R8Gvj?Mi3~2Rt2$BSydG^QI?7r748@i*{vh^@EX`|ueZzlPbc+q zR#r6cr2YDQ|L(T)zJHV(8B@k zcy|q*{emM41WBM@M3B9NItc-_ZkBJL47N-kS>DfRVAo^VxH8h;<3iE`p$!pve(Pz&&yu2Ud(yQA-x1YBZn4ig z4oTmOPCUH*$HSs~!|8Ri`~U0iJHwh-+jT=PQlvL23Mej+CIZqT5)ZRf_Bns{kMrYr5fVveGMSn8 zdGGd2T4Oo<4)!(z_xuEEXw%eM<3;F$iS>rBv|tap*RPpNVe5D^Gc$+Y*lB&nmO_O_ z?T&0<toluWnxkj3ogGjA?b|n5yARah9OV=h6&ckVe0Yow(SVA8 z)E`)vW#LWo5(P&r&huT%6#Xzuvucc4o(`6an!*C>FAhtSR(p+R01tuod+l|!uc}4K zb-wjcPqpQZZx)e}k(=LBj9^?dRE-Lzuvyj1ova_j}N;ddWa41ntxX?4l@{D=a z@+OzAvMJN2`4+|RS5Q>%{_Z4y6u`koF#*<-kd}@bc3n1oBbV{z&9JMJi;EV_+OCRL zrH(49syze(%hfcw;N8tfM_}lXhHl`SXULObbVBs+zxez6L!EH161dfs)nD^Gk?%Au zj5UNR9=bzj$79bBgiaV37?_|>TqWLBFfYDF^Qt%Y^XJd^>yNWBTNmAqMaW%hYAULG zp=E5R_}l1wS9<3U#(+618GvygKAZ<&ba!Du(}WZ9Olw;Ll~qoGqwm}_g%5sr%22F6 z&|)v#c@dKr1L7CJtm5a#AEl*n7rUL)(TP$FfinXYYF+CS>8je@)5DhHCYTQsKjpkL zx+i;v$F+69?Sb>`1X`M>dN- zKtQHZ$Tmk!O$}%$1ee1ni6YmyxVVB_v?SxgLAR8%7oforxpBmVhSi(o?OCNp2EAki zt}KpJb`r~yli6Jfb$no>ysvc?Bh-F%AAQFx4EVGZ1v@#h(q)ixo^P+$_j>F?X`>LZ z?)>87Hb89YSaF>UMYj(|!M{0nn;zPvEErVTdKc|DF{UU0Pt!!Emw^UTgS09WS%p zpHWp+<+Anz2H?iHuTAMr(&tQ79;jy+KrO-KcpKa8)t@j@;nRA&zYfP2c<)i0w{PAY zzWJ692E+wDJxweYn_Z=P;so8q{(4ne@LoWXbuBj>td>pk44?u83j3)E-J4UL=&8y7 zc+td!O(=NNu5R_4z8}oUWWcT>00}{0EG{mVkdy?a>3)w>s}`&J_rbkhTiHpV1_K`p zl)Yw|UK(W3YMU5ezD!v=o=Bc)k6x^2bAed^0R$D!xKeJS(=({6mgNq5*#l<-*IgIK zYk4x1a0qbuh!-aMMqA-(v&zfmcc*z8&tb7bs{!hXN6u14w}dS&x{mqJWkyWbCw_l? zD@zmbRRcKzHwiPi;k*k+Pj|~CIkm}?(N$64xKY*v=iZlgTfcv3wu{3sz^nbH$NK-^ z`ZF~(_xW?`b4DiHzxoTy;59i)JS#!_j_KA>OQTgcfB~`*@$7#AAPa@_YZ5@ZF3b() z;mM%P0SKR|StyC`l*>>LR15}+Ivv5PflOV7S!%D%PVq9)B1`}%WTefR_`%PQPm@az zwoCn%DhCnzrXINNGSqIRbpSwosU+&zDl=UTq>QfrXkZ8obpp6E~VPQC$k5y zT3W_H;vf&ozzM^r^IYc~uYQCnC2C_LL>LZSZ@_O$Deli1O02+PZ*_Y~!x&bEq74T} z-zmcU7=I1*-TZMy?}xt@7cmgXkUxDoF!jNGz-?WVaLhN!_>iLU3+^JILc$i zQ~UW-938et)-%P0|4o!t{%$kT@k34_EUVxhkr(D45{Bu_? zHHPp|DAoCCP_>p;1pQOCuypqGB6&__p3cb#lJB>$iOiEI;yD5NUC}9VA<_Dq2)6Nq zU0$I`bNbfTRsa>cyPjl5bE!`^w94dp<1=G*o>bGZVik7JW`Zz3@ZomlG?cIQI4;TL zdcBCaf`Z^VCK*mn{ag*aUlyCV;dTCWowt7_9k~GI*A8~hc)X)BJN41Uvur;-^C0ib z%OoOtNFe>V?j?P-^VYn_tYvjZXxc^%yq_=m$`a6V7b1-O@u|N4LaK3TL^|B0KgVY7 z5m>XyVw;p7^}eR=lSGAVohaKmy~)U9Lke92{P|5Q5@Y_lm@y4P=bciz{HxIEE8oQ74_*lp4YWtp!Xx87nnf)qZRz>^@1f`GnJ?C_gzpiH$owE_gX!?b zxuPUr6HW+J9K`5x{2bH!ernv=;j$SQOe=9RE+c;a3~uGXtwGCuV@ zqt7yF;Mbq@;Uec=^=g`#DIZD1S|6?Nl)ZPj4SR_;nVv~7E>G6m*m#PcPcrVqq$Yzn zJtgSJKFj{-&Tum>4ineavwqZRKGcSQQ9$pEVu^dAR3z_bEDyFy~=!g*W|7;K!Zs1jpvA=cB>{M7=GKhG| z&mD*y%xn!|{X39g>&WZ6XG%Uw9ZTtVid))nniTzIY3mE799B=jsQznvgMYV z$M*Vrgv8Y`cO^9;RxMeRBW*>hZu!%Cc~18Wj80q>!mHg5nuTWZn3HOQyKP-FO z*U)w{y^;YZV;2{H(fL$w(o^v`W|kUF%xY>=$vBe$ri>@$Xm86G(YX6}e?pd?PG8N* z*mgdrIdtx*$?lq@9|@ll14;h~ap-!${3$EP*WR)b0GUh7jxf_#UOyN7jkbJKQqey!-Hn30s7on0}b%KrYk^q*;Ic_1&Y zt*yZv2*yQQwdagShj{wAG_8Z5@5kL?Zm#GmL(QGFUe8_4WVT3{<@;Jzd2(!xJ7Ok zo&g#;vI-32kmg|#J$6Jj0E**+4sDBNmd9QjOn9~nG6^wE`_z^N z?f8JS$N)m7W;*B@)ia5zZ=8Daa`38067#!sZ4e6$O8rX%x~##Tr>aTs9Gk;wHg`af zxG!XSj2~;+|4kPO%pH=c3w@Ox%paH6y0_+DyQD}To@0O`)SX?d_XM@4EO5i!O+{T@ zaM0S<`Z9j_0vI2piG#g~%>|nSetB<{I?oE=H@lW7=DIFurBIe4)7yjK2o?U@OE3e0 z^v3{Sb;Ejk$_>pv}_Qx){KHxsVk^y>aa11|4gX5J+UMC4ByT=~9;3 z+35wmkh;onbZCskF>F$J^>WQZIJaK*Sufg<%@*NFZxsrZRh4^N6=H3}7hN01p@#y-&v5$v@srvjQ3!e6TZt zNL#2-n4E3N(`}CwoG*X6JNM&9Spewc%;uG=fSrW6Ww1pCfFl97S2wzwn{$^mY~OaP zDJUqgcxIY2Cs0vkB8eIcSSV%_$h+)Ht!RiXv)3+#iA-VDx;~(CqAqA>T|96lHikXQ z;)Mpks!!2`x0jdKd93e`zfwUAA6W(1v@3*jacKem{@TFki2?(FBt5muqWZQOiNH}F zb{amCr2yP{L0@0%+BJTdeNyVTFc^lGf;5fWuC9H-Jlbra?CF16c=`PKWR!q=Hzh(3 z5fKnb8Rh&>zL{c5$^iZsm#3+H9uq2Eco-QO!=)uV<@aaM`=Y}cmoR^FN|EOyK7Q13 z9j`IV$WpochZMK|2W-gCZ!dyNH=5~$;i@O9s-SS$IISFFWE=`oYzD_j!EjIHHXUD7vCh zfXb!-Eg@tFY^1as&boIH`C)TL_#i)3O;Fhb70n`eUQ?5zqM}w|}2r6(ac(jL1HN8ZilQq74MVxP_8h78sNGfO=pcHJk}Slg2+S{tbT!A8+1y6iOncQYjg9LXAC*D*{TQuF6FFUF^WOk-n+YV z=yoUz{e`+ops4Kc?T~E_)@(M32m83jb?8YHrO{Ulhui`i(B)rBrSISKoiNJ6I6I#N z_OG$^o#Tp`ncbHsXBdd(HMY%^_jbwc!BkHux@imZzW?>tUmrFaHq^&_M%{+0aKh`$ zjmYUh2oOyxj0+(HKC$G=hFEa2^72rh4Z( zOqnw`T?U@-=WH}OcXaO5FsVK|3N#;ZX`YTz=>}gmH7#@KV3)dDPR%2OZCxI(MKnL~ z+9^;fDk`MKw_O0-H?@b}2}3RXPaLI+!N@hkd0O)$&1#oF3l^ywln)b)`=~W(@ayHJ z$Kk81s}90Kj7Nc>zz&l{e(+SJuUDgTZY{EcPp6lBzNECImbk|lVGf_u;AG{t+<#4;5QrBJ}Rjp+zHP9qk~l;2f>Z(c-w_%%?7V}?GUra z8zw88M@&~tO`k=wg!-n6=OqDQy$IDGqQ#PkD%rRN&9r)@j-V(Ll|HuD5*y+LRehW$ zV(LN3eK2SfVx2LtuvWc3;*wHd*vG1$F5MqYTweZouoH41<20H80}Nqm!7H#UlNZ07 zIChcOypo#ytFROi?|NTyX)~zYY=;b$929NrO7FLCZvxhC@4{&(6Pk6XC;MRc*6tE6 zqy-A}Q9X8`1A*hV%ZaMXP5CCzz(46@MFfvTVRRzsOjPqH`!|8q$UNXb!+7=TRVZGd zI)8lcH3$8?>vhmpBR2hI*M~?bE>?O9%wLV%%5hYfRjpKO3*O?;vmWIfH-8W)j4dsB zvm*>JTKo~Zhm&Y&p$8DOMOIaZZ7@f=!Oa4mV`S0>)w54rlIs`x zjKW2bIU}uZXlJL<<{ zYSvF|pCLEF&yPE~wY91Rhkjq^A0Cc{VObd$vZpn@prPuNiN zP$9K%$e~6i{PVp|4EcXoMU%>mJ2CRSU8ZS%Vh@L16P48znT7KtAeeCKJmpa(vu5sJ5?WeEDwYSfzNtgNicH)5j>2j}u^B8m0jhvO2=4AGF2A4wh1R}%rtOc#1evV4tP{z zdf$TUvdvr_E^-D2F$#r?Y~D>@%Uln(g7pA;Qpscin;fbVBE|;>s)8^8ou35-0G-19 zCjxOB&?W%YL5lkj2>cFL2ZSulxWI)2+Xwo024>58gx6AW9guc_K3%{l5zV%tQV^4Z zQ}(Pws{UjEZ2GqK^i;j=CbwQd<0;7QEm49+1=I**f`P&foUMDZSwz0PqnxQ8%X&4f za*_fC+XcC{xICwE!TPy4;@JzF5?5@Y4Gp#wvPU3C!2_hlw@>tqciJ4U$s*9k&9pnz zQIPQ5J0DH-0`aJ(wsy*=7TyXKm5}s@<@~C7|If8;EZ$!$cB5`e$@o`claCXu2jn&Q zfwxo1G?XMi6w}*Ln|ZIp8A#Yr9)D*R2+I|Hf<1-l3)y27O1h|iFMVY{X<;n@WFnNU zSttFRmHM>6xq5N_hUUJFV~2~Hg-s-KYnr#s59udAr(wbA>E?SS%n6#fGF2x;6N!Y& ztP^<`^^z-m1PO=YHYjJ}n{Ryo-LOHp%uMuW-!uT-NvTVKQQXp)v=lkF)6%W^r!rN+ zZ3Zrlx`Ul4d=o)Rip)DqsikGRNzWui@cLs+CFWkFB$=M+Z9|wC={=Jmri?2^Q3xB> zFCDhF8s^u-JA6;8(03$oe=|$9X^`iB)7)WgNzzj?b9tCqYi^bnhDvD?QtcK*RlzTz zc1*(GI|bD0CUl0a)9jC4uhh?X^dqpf>3+Vb7QSXoV&pl`tEN-Z)cs5H%B1ZYi$TaPmLi4&ac^I^AcJ^i?p+3Pa}Uot)xY&L|?zV8X&P zPpjET5d0DmB_=%DqB@x+&z4d^bmeKTpWTqi#l&h_{JCANR}Ir=wJ-{GB#pJdDJ_JT z5N7)u+&tv!2*F^eAoBn1K8YdMcW*l1RaPP%BG^^X1U8&uh>`0~??Ukhu#bFi?)qsJFK~RMp0HP*MdDzZ= zejMD1B+X#;C|UP0WpLA5?90Rgdt)VN^R}3Ba^uB?6y`zAgCE3che-tJF9>-);|Q8vdO95nHcZ>fN?>GUq~aG>6ieRJsUg^) zASNM&{Hs#j4+NB0P{tM((J5PeD~n#BC`np=aRZ0t+9c<+LQyK zs=G33{<7{1$B*&TBaQEHu?x5`LO$zDql=n)+AgjB&)$B?FD5dn%FLAnrqlz}WoVyd z`yha;3j=#K2UK{#YXx2o}|@bK`5T@wvKs{5PmXxgC9w=3-z zhstr2{$!e4V$?w$GUO2zHH(_CgSX~%PPz*14#4NxRFmMGLSorJh;e^8M%fxe=eraY*v zU%r0L(75|Urp$9jM6=fgG825=aR(` z9}&sO0L?EbEcBfH%;!4MAXrdf59t~hl`UZ7w(MIc@}K#u)VtNa3K_50Hiuzh#I!_+ zq{~22miIs^-sbVSSei;jiFpE=3r;TG)yj0dp9X0lUEx>*}R< zqYpvOTKw`-Y%|)7W^+QxNc-sqoHC@3bT91SdiXzw9f*dP_rSR7Io}SvjtsdFTaat& z(^S3Z4=E~7{ndp2Oi!NyLeK&!3Q99G zGWuWz4TT0VW|D&>Vstp)gTe(x3PJV!2^|C>0|29l$e)?XZ1MnCIssubNVd@eO=;g= zTabf{Kt;uBUz<&}$KP>1kHsOm>T!3Jy7ng~Akr1G_f~uJOG=`^+L8&`(g$hE z7Q``$Q>U~cF4RT)mpt(DIAZWdEl>t>;J&GmdSp~o7ArY1k;QGlGNkYFGj6tUYZzFv0`*>20? zKcYqm<6Yun_nb%z6d`HoCk0WDnxM-7{vf$8S~B+2`*!Eq%&%CyueWy&Wc!wumH-?!A$n)+ z_;S?)I7A>VkwE8TM{oDwW&MADj~VS57kY$Vx^;Svk@_Bc6X^`kVrdt`1cnf%+elR9I zi1i!x`@5SwbfDlN{--e~&FPz;n-FOSDB!bq@3@iRAOKy!yhwboT`2HUAOXpdK-3BK zHzP!5&n9c%aT;i5KtUq&dfzBSO=Tgs=cbMYRql}z4m*aYVh-LDl#&`!>+KuvAY?x8 z=V*CSh*PygDYkR zia0RJAE84ug4f?>L$oCa%uYn?8scvdz5*Y!jGLG7(4n32OrNEZN*MhB)msvj2r(eL z9Lf&fJ_({Agnx>vh3WX~8s6UFFL|uQeXujDSA0cu$kwjsYpv_dhy(HRH!x+8Itfua zif&W!ZLk&ZOF1UcP54}c%B{D4RPXOREd+3`JtKr6u_Gv*!AVD%vjk{27Z#bbDUzebFV+l?z%f?`J z)MR<5bnp4@ao>pq$eyu72Gj57i*ynM@X99+=((0q_BM-!v9}4iR?D%Y@3`wX?v%4y zU?6ae94H}BD2rR|R%X8-85;ndZ@hnAF0w46M6y?%ekvzVo<#alz)l6=2uX-svmO>- zsDG59!KwFTy}QrR?74h}z$0W_U^41~9A4FEW?xvvy~2PxHx>I+qM}r9Z*_fyX_$;C z6C=BzxgbI`vgJ2FKT4{&aV|pld02B@qwbTzt19ww8!eADf>aPaA2JQopr2qM#T%OS zZ9r+_9tYBe0%<`c0Jl{+9>|lP~Y&_UF_*fx$!D4W5V<`5W?-!46>7?dv%`$d*zfG2}r`ZAY zzX>#n$@|nTcYXJ^|Lg^qR(asDk&B~RY zb=mv-jyT9ZzEr(6n}LLWMbO3ch+?}<(+lns}6-2USCThR1JlFKGvpb3n z_$fZ--D}|F>e>p0wY$3;vAZdj2H}E5l@pLt=YKnM<_gUrWP4dP+v(li-1=*ZM_k`w zTVCy~kFOVtiswz;`f#6Ngb4Za)O}DTi*xhE^Z=_BP0TcIw#ks*X74efcZRzv-W{0& zuCX(2w92`KQYNMOSu+4Z~Q#5MFbbVp)0WWgDNLBWGs ztvI0XXRm{zcvAI6!R^b~^r-BziF#(|c%Ak9N;vG1(B%X=hrj>XD`p9n;hy`u{?*sj z)%~D~^|>7WfLw?GNpEq!0nWoz`wGK{>R^cJd+x-P* z5ZjX050h{YpuvL*KLgPkqQ7xk1R?}I5c2~jdgQnf&oXL<04+9MvD-E9p8$ZXXMWh>#b zxYb~I2%C|Vz2_gU?<@}Q3A;Cd>fgBCUt00=jLX1-eD{hTFi`!H@gRzV2K+2HmjVvY z2QYCeYKBuKEpE4@?9{;AM}}sT5sf*v8I=pMK?IS) zm;rU$mOeMwW#}E)g&L-0Mz5oJ`)tNVHAX1FS1kyRDT z0a^HfBD#eFh0GR0ev@I3gd~qK8U;f?K)8lSuYr8hfjzAZNzKG48_HphWGqpm(WoB%QsR6AicviqZ*pNtQL< zCzq>dSnAdWtPtb|fyhLd!UPX-OEvv@(zF{=zDUO+v_o8rJ&D={6!%-;$(ReA&6{hb zAqm0L)#=Rw63qiaFvi34{q;N%R zXc2+v2g08qwLh{8GteZYhZy*LVk9(n3$B6S2gXvGv~?UXoi|3i$V7}N!+`vdOV-Wm zC*RjgIX;EJ3n={`!rMU=MhByWdZsn;~JO zRYF`J#YICNGQ~(E7JAYUt1G>6*YVSjwE*?t)n~$XV7=H?tw1Qp4($tFED)vAKsqXb zsq2XV1kDHI0R&(ed%wJ_UlkO9qBo$k`?;edOiWL2^eANZppy;MM;Ok~K$5v(&PNNx zZc0g=-Q7;Z5{wFJWRD4X&&R&K<3e?iH z{Mz2x@84U!`?`>7$;zaIi4cgOGvQ72>aUBJVl!ca%Pd67eWPO)Jr;L{mNiedyyP+d zZvt`}uII_TE-w1N$~62Rvk+Sc!3-2T--j%+;OidZ94+;38W^A;%8Q~$QB&}vXy6eA z+%zZz{{2{oLIOqg_unZ|sAy*t^}k+Y2=~aphj2rd`OkZ*f+BbaeM}!g(`VDC)x>#J#mGy&del9aZ2NxI@Xy$}60b zJ#$J{`HGx^ioBAFoV=v0tct8`Zu$g#;l+Pjzzyf%eAEB`zCib1x30hf?8rMf`Z?cJ z(S~0}H*b15dZUz-JNg1oz_Yyne%9F8&(YNq&`m83+J;2ycj{_}%8arUf~h@6}P z{F0UX=a(G3LQW2rl#@lCkVBr3Q#@BKd}y?XuiyD__WpFi*w$8&AQsgG{J5kvuT z+#wIiy9OXa_v0q*(-Vc(FTmev_PZRPLu5K2&ezchV+3MF`w{ZEj(~4K`ek|%yVt*; zH}4eT*9eu{xTSRjq81$?qk|9caDNtrhus4=z}JaGGLnHT57OYH^)Zu@KvPrGx!$io2-BUTVx@U|P@rKUabmdqI<{SF&$ z{A>@Gx#Jnp&g8L_X+au;Rbt`9=YkQfT__nspMjdl9|fIJ0HCo zdnovQ>VHJ!%|z~wxjhEJdmX4gdZZ7$)ODfxS&1|Mwr_t{0B3siXcG*uS&Yvhpm_)S_JYT_K*?=8+5 zvh8tL#dr&X=M9S1uFE7nb~?Lau@r#s2nSaCy3@ z$k)ffLi-|nfZcwVpoxN5hpzyme`Q%w1yN*N4RJmPDYG$2tj)qE zw9Y(4X2k;kvzUyT`%T(aPkBo$q3}rYPT{-y?h^a-_joiV%)8iu8yYX3EjhNwwEB4a zWFIyn#PJdECWJE`xP~y{zMeCz=0NttblRg0?vpP!SPk4QQvN}Bu%1tUhd<>79HyC3 z+(Uj`CymCf;(PWqaPQ=R#YR;$x*2)Tyb_A^H$`lHoc33n|4p|g6^>c(y&QMc|IIvk9+C7C zCO$#@&^?zejjD`ME7gBHFy>x7R)OLAcl_MU{#}x^d;lDgN(TUf*ge$_JLUN=s0Kbh zD{w_ZlMb7pb0-XX-P!(JoSnZPP&)z*BIW9mzt_*yJK0W1E1%9Tk|hCE*ER}1iL0pm z9*?!SQuoGI9k|L6M6yb~B`C0ih2Y7Zhm4Ln>tN2r3fV=l#EOhQUnQNUJ?_(Q4$}B| zSh5_C#wgp47TwYP3_-$Yg-cN06N4tGiSx?Rem&xMd2aT8BfY%}eV+l8ZqZ~C@PePX zZ@s0H9>*TaAqyMwD3V-4<%v4YSLYIm4D6BLmS*IhkW&Utc8j&7 zr`PD!p?xp_~8 z+T{L7rUSVFe^kPYp^&_xbvGnJ4lWNb3}7y2Q!AH&tK*Xl(GsHeSTNrzlyvQECl zHc}% zCo;iYaUSq+;-o2KqLTTyT%nsJbDB?*RxDqRvp;8-5%A#ZzCiz+`V%LoVhI=b>&!3y z(a8HTsTO3XgYZ8hXey;M9~*82dHd^6_*{T@nnd_#n#oVyVb#)n0?DX&ugl~JEjziU z8~La?w@J(4MRJkv7h0*6vc{sQb4z(!*M?WDEk>jc%iRPOcx%l3Zn_#Fb*>wLxBA6~ zD12WLGo0S^$wFfi+_VI2A4A&t#?A3j7q`y&*IeRL9CgCf-!ch`nJy_pM->i@(U*!W zR$jlttY*J(+JhL-=$)o-#BE=!St+%Jj$if8hlO2LnQ!~HYsr!Ar8>YEWHPF~lLIwR zevvv#oqN=H??;@x>008HN%yYk#5}$@H<);mpQ*Z_Bmw;(cluM3$vU0HemsDFLZ%WYB)M zx=;@}+s3Kb4Gcg(G7ZZO-HqJuavP0lP3)%Qq-idMtp%1U$mI!SsQ>V~$MYO7On8%1 z6R5zUyWps2pLsx-q)ibLI^8vnlgU^zIns6QX=IT4Lq6gGLa;M%=##RksTNSoS=5SKDEZ$NxTQ*ejH_q^GMiq4So6zf0jo!LJK}M^uyh(d^)LNZ-Nb6 zqP0g2#Jy$%16u=-pSa5<0Rn@q#s|erR6oj|N`O6^!{}cLqF&nrDNR%s&Wl$4ger5C zIX{<=zV^tb-l}6T7pzM`e`9anz#buEh}?FOS-Dr1W#R@b4(LShy*o5W%aftT<&-_qRPT>@5nsm&hU9^;HZ%T@)s?6LRbsUW&O!GJ-7g`zb120>6IluqLQkxzw|Lk|w zVwoHnpu{W|^9tHJVYnvrmCz>|FW~(uzf?8ddtn{tL*u=NKr6F`%~Etmf^%U-Gw3T1 zD@>Am{}?4ZFR)YE1BwMCPc@c6#nMPORZ_ z39DrWos3#qhsDy1=qAq!f@Z*%QMJDOg9%d=UC|m&557{tIWwwsk+4mlyDt>HxT-?0 z;n$fv4ERvS7)h}jC$RuyBl4K*!l3NdAPy2YZwnbS9)DC>(o-ngYikR+KjPjOYuhkU z%+13God*xjd{mJaelPJY6Zfk5-o5aA47ZVIwqpX2Pk37)7JKw8a_i$G9=mbbzQRAxtsYBQ@eZbY|Rw=PoC|c?tXh8I0q& zJCCei31c%qx9MZ8HOWo})!~$@I|KBJw?P%dD3*NsNt#~SXl9L$YiZm`_JR)T#6#!> zcUTG?OK*j@Sk&`z)EDWi?+X}E88KS&=mhYiW8>3#ST3I(QRYT>&J}yBS*oZXRH+hIZB8@!_2Nm` z9vckedk)#Q**SHD*UBq$VF35(?#n;t;a4dHp`G!uQD&T>rSQFeF2b6Crcm#{De)g9 zoa5&&Geydr3M#QN;r3r?QW1sI@%wWnE0ANb!OQjL{-}mb>f|=a0Q$B>tp^VtULS#W zskLdEZnE9!+m8;`2Ac$X)hjt2WKfz#s~(a;gj?!K?-&m!2>1fWo_m_c(F#bkJ3F?6 z)nz|Uo}IZWsxHqF2}GzOZrGN#&F@C(Jx_?}rXpx0p)Yy7Nvebwjc>_qRD;VcppU!v zcH^JAjYOmhT1Y#w{c0lV2-B%_zsXH1I=>3n6^Uq$xXjie6_p%ag-J4-w+vL)jZ&$se6pBL8OEzSlN8(g%vfkox?`j2RJmrpH?Hazl5#?;8dUTL8_Z858r zCD!tF7H5$-n+a4?W3;&-hlTo>Pc?{t=PDbM^=&-Y)&o87A=X{>;pgK(k`(TjF_7XU zp&TS-ry319w%SNh_v$K@7cYu0>xsV1hoa<_%o=8#$$f@0XNb&`R~&?6Y;$$ZeZEQg zX)?wilUVwi+UfESH;m_vqLa=j#=AujD#*=QCpS7nfY8MH-IN_jzdi!CQxG@#Qy{WC z@i&*g;R0yhy7~TtL{md4n|gR$fOrh2x>(0iO?0W88*SS6go6T&Q@pQyZ0x(iG+_&! zas&j6*Trcs_dj>&zkr#<>Ng8bTaV`GI8x(DSum=3B$sr~XCR zT2K@UtPtCg`ZrDYOf}Fn0RxK_wD$tCyjr-}lFGeJQ_RXelZv>o9;GlGx@r|v8va`F z=9r7YIw|r87%p62LaLVTXC(Njyo@q2|6vuVD{CN6>n;4UG;FIOC11hW1#gvVMCH-( z5xvG`a6y9>X;-3lxHj2E(U%g<+d7Nvn+1DIJEIYLe)id_ABu_vd;?DigIMeh*^eZL zL;z>sS$Ki@?}(SDR!oOFr&gh+oD_!QL@lIyAim1{URJ_vh`lB6$atfc+FH7j9rZ!W z;-{!jc;R2guvb{*D>%3D{nQT1b5=KIx~f~N1upSXL6`Yox;lnDi#Vfa5cCFlh73U# zUL0R15YbDVBAv?*NcroOIJ1ckb|94ci?8i|!TL<)yV$YafLxZ6N7*>cC`n6H%2se$ zz$dV5j4sM-woAoEP`-rj@BFSI=_^HBEdTO&DHGeg={{33@2=x@+Fmp3cLacd=J~>? zgWu<#Yjblwj&Sqb^_bI{;~h$dChH@N>spmseNZ1%@ip1^{C0G5FA2IR7Ic|exJBZh z(+A>ygmvSW-kHnq&Um}+JcvDFqDzk-sW`I>6INa9z-x3aj(ll-U?c|VUay&$nq5*W)Fk93+L{-4Ki) z^^;{)my|Z)v69mDR=kYfdsmW@yQ*ZK1Y9)>4#T$Wg3zJ@Vn~pUTe`UaJ;v1qQc>ObienZL$aw$^J6D z)fS!}(ZJn$55*$qtA4}=>vaK$?r!>q5-XnAsv z-tz_VT+DB78U*&)m~>fhe|+*kR3|#!TGje)M^rO2C7v*KC>#(LH>^g)$&xO&m}9j(V0maeExmkbt;vmfnF^I0@I$~CYT zYDI%lBYGl%1gsJ`p=TTeGR-b4O3j80c#b4kA~%UreT0>+!L&^V1(#K^T`!{6je3>T zZf0?8Tp4XY#DH3g=>^n?Pwx(@%UW_mMn04)6GP44(LbWt20uL+KwqtfZYuwzWG<63 zGDX{cV73x#0e#&l?6_4MNzM(l|51U87Sfm*p0Ll%st&BT9;3acM@<8e_J=86{#>wC z_dT8;#!8o@#?Sp|f!srlUx@)XU#t}#=9Qt{ln=fy{lrx4fa1zpvK2d9z5Bh$9+A8* z*>T8CjALH)@eFV0fpUyj@vNOFOTB00X2&jqC{Z?lBOBXfieyo!R10=B2iYX$zEGbc>j?XnvDI#gr`fRy8{o?TA4s`iL1D*GGtUkY0Krp*k z>Fpa85gbgFgc3;Wqorwp?S`&IWT9b7ysr;Y^U5s_cvhx`=4 zezwYu*|k?n-SPOGi&EzMl86n)_iQ##4SY4zigoE3&;HX^QmroeHi|q-KTDE_=Bo!f zj8Z`qIUe%L0JL@uVejy?_i}p2NGEn3F&`Rp3;tND?(dLp5h9x{3%B;kH_?0p*s8DD zCd3XGNhX_3M9O1~*MUfF3ad2E1#R#&AUR9lR%SdiOz-F&#W0mzzmD>r8;LxM*WIoX zl#M&MeWymY8@+$m8c?VWRc09eqFzLmb%#p3&wiKhy9j$VRhM<*g2VUAqP-bSQ@{B^ zdDKa>*vl!ezA!W7Th=hz+r7bz{*OE;dQeXkEb%?ahvmgJv82dHOl}Q&eRbsfMionb zg8t6qd{t|WDU?4|Ff0`530Na9dc>Fg4KG!*A=gA>n_07YDpU5xvplRHbp3uMMmb_3 z04*Ce0FBI9pKS0n-usALPDsOP%}58@!pzUE+Ggx;?)MM_GxqDP>q5MXf+W7HmWe5> zTW?9}=#t98HSSB1eC`Cu53xx@1UGFRLZcOoV3gwbc*>Krv)5`^^}E?=rryvamlMp> z=kE%_#Fk)^H#N#l-$BZFf7<=sV^Tn@J{> zZoGJd_ux6p9qRHfF0e6CY)yb;oEb9aQh+D=i)y3kl9lPj@7it8rWtN*x}+dUj(N2Y zOz}XD^%ySoYYsg_sQWoG0a>ysh=4VqFam1jPM&D_#%^V8N#l^luxGFMI9yS!R@Z=eNXgI$u|IH@Lr)=q5sG=y(WZNeaHiup20uT-xyk zau2SzzxJi8On?G>aO`RzdM5HLbe!^AqKk7_i@K1|Cbqau1_G)17*`964o>>;)vmyq z;>*jBhM0tRjcp=_$uAOtq<`R^Qp4{%!b2>d+w9!;Ym&yb9QUVKV7<=~-kx5j7H#KY zm$#7ZXAT;^%8N()5=X7`NF#k0EaMHN{U|a{NzAJoS?` z(ZqR_p$DAPy^;80CAXRR7^-s#@V2OX8*j6>lcdsXi(-farc?;n$y#V_-r$6V^QW&k z-AXX|u$7NByPoAJCbTvoULEylv^T@Bh0^($wCg2eGvXD_Mb*3JbhXm>sBqtg)o1-i zrbDGxN&}!Bm*b>`5b zPf`F;|E&gpHRXTW;;&}?uLtR`eu?z|`yHcD{_Xz@{5M|zJ^$hSUqu4|lF$Jte;r