storacha-network / w3cli

๐Ÿ’พ w3 command line interface
Other
30 stars 7 forks source link

feat: `w3 delegation create --base64` & `w3 space add <base64>` #158

Closed olizilla closed 7 months ago

olizilla commented 7 months ago

export a delegation as base64 encoded identity CID with w3 delegation create --base64

$ w3 delegation create did:key:z6MkviAsUfBwegmB57byQ7SZTFtX4jNjo315EvgurjWYoTRX --can 'store/add' --can 'upload/add' --base64
mAYIEAO0OEaJlcm9vdHOAZ3ZlcnNpb24BvQUBcRIgL7w/mAWPOV8Wt/B0ygdaOI+20/ZG8pX+5YzZ5X9U4y6oYXNYRO2hA0CbPDJlxyrorHHdNAUnRUDA4xU7KHgHHstkM8tBxq+6KaQP5xLCknOh9TjkR0S0yuK/fiFxKwRDUHfECFEWQn4DYXZlMC45LjFjYXR0hqJjY2FuZ3NwYWNlLypkd2l0aHg4ZGlkOmtleTp6Nk1raGZ6VHdaSjI4YVJvYkNwNzZ1WFJxenNqSDZHTnUxOFdGd011bWtBRjVvaleiY2NhbmdzdG9yZS8qZHdpdGh4OGRpZDprZXk6ejZNa2hmelR3WkoyOGFSb2JDcDc2dVhScXpzakg2R051MThXRndNdW1rQUY1b2pXomNjYW5odXBsb2FkLypkd2l0aHg4ZGlkOmtleTp6Nk1raGZ6VHdaSjI4YVJvYkNwNzZ1WFJxenNqSDZHTnUxOFdGd011bWtBRjVvaleiY2NhbmhhY2Nlc3MvKmR3aXRoeDhkaWQ6a2V5Ono2TWtoZnpUd1pKMjhhUm9iQ3A3NnVYUnF6c2pINkdOdTE4V0Z3TXVta0FGNW9qV6JjY2FuamZpbGVjb2luLypkd2l0aHg4ZGlkOmtleTp6Nk1raGZ6VHdaSjI4YVJvYkNwNzZ1WFJxenNqSDZHTnUxOFdGd011bWtBRjVvaleiY2Nhbmd1c2FnZS8qZHdpdGh4OGRpZDprZXk6ejZNa2hmelR3WkoyOGFSb2JDcDc2dVhScXpzakg2R051MThXRndNdW1rQUY1b2pXY2F1ZFgi7QHob+19JDMUBs+u1e646vN2MLovQUXA7xJeFs2THUcb+mNleHAaZzctGmNmY3SBoWVzcGFjZaFkbmFtZWV0b290c2Npc3NYIu0BL9X+p4Uyz05zSH0ol8TYPXpwU9EljNRo1O18uYbWlvljcHJmgL0FAXESIC+8P5gFjzlfFrfwdMoHWjiPttP2RvKV/uWM2eV/VOMuqGFzWETtoQNAmzwyZccq6Kxx3TQFJ0VAwOMVOyh4Bx7LZDPLQcavuimkD+cSwpJzofU45EdEtMriv34hcSsEQ1B3xAhRFkJ+A2F2ZTAuOS4xY2F0dIaiY2NhbmdzcGFjZS8qZHdpdGh4OGRpZDprZXk6ejZNa2hmelR3WkoyOGFSb2JDcDc2dVhScXpzakg2R051MThXRndNdW1rQUY1b2pXomNjYW5nc3RvcmUvKmR3aXRoeDhkaWQ6a2V5Ono2TWtoZnpUd1pKMjhhUm9iQ3A3NnVYUnF6c2pINkdOdTE4V0Z3TXVta0FGNW9qV6JjY2FuaHVwbG9hZC8qZHdpdGh4OGRpZDprZXk6ejZNa2hmelR3WkoyOGFSb2JDcDc2dVhScXpzakg2R051MThXRndNdW1rQUY1b2pXomNjYW5oYWNjZXNzLypkd2l0aHg4ZGlkOmtleTp6Nk1raGZ6VHdaSjI4YVJvYkNwNzZ1WFJxenNqSDZHTnUxOFdGd011bWtBRjVvaleiY2NhbmpmaWxlY29pbi8qZHdpdGh4OGRpZDprZXk6ejZNa2hmelR3WkoyOGFSb2JDcDc2dVhScXpzakg2R051MThXRndNdW1rQUY1b2pXomNjYW5ndXNhZ2UvKmR3aXRoeDhkaWQ6a2V5Ono2TWtoZnpUd1pKMjhhUm9iQ3A3NnVYUnF6c2pINkdOdTE4V0Z3TXVta0FGNW9qV2NhdWRYIu0B6G/tfSQzFAbPrtXuuOrzdjC6L0FFwO8SXhbNkx1HG/pjZXhwGmc3LRpjZmN0gaFlc3BhY2WhZG5hbWVldG9vdHNjaXNzWCLtAS/V/qeFMs9Oc0h9KJfE2D16cFPRJYzUaNTtfLmG1pb5Y3ByZoDbAwFxEiB9iHpD1ttdKEQCvBZ8jJBD7Wqw1abOtYwNCKAKYALXMqhhc1hE7aEDQJ7U8I+a4Au/eb10r9T89weG/Nl2jccEUXHs8wq+i2tU0Iaik8KaKvovDqqE57JU8ZoY0JAzOBW7cMLGcV6/UwthdmUwLjkuMWNhdHSComNjYW5pc3RvcmUvYWRkZHdpdGh4OGRpZDprZXk6ejZNa2hmelR3WkoyOGFSb2JDcDc2dVhScXpzakg2R051MThXRndNdW1rQUY1b2pXomNjYW5qdXBsb2FkL2FkZGR3aXRoeDhkaWQ6a2V5Ono2TWtoZnpUd1pKMjhhUm9iQ3A3NnVYUnF6c2pINkdOdTE4V0Z3TXVta0FGNW9qV2NhdWRYIu0B8YzaLs8NDe7oZt6rlpsW6iMh8XsoXZLvkHPqtftYRXZjZXhw9mNmY3SBoWVzcGFjZaFkbmFtZWV0b290c2Npc3NYIu0B6G/tfSQzFAbPrtXuuOrzdjC6L0FFwO8SXhbNkx1HG/pjcHJmgtgqWCUAAXESIC+8P5gFjzlfFrfwdMoHWjiPttP2RvKV/uWM2eV/VOMu2CpYJQABcRIgL7w/mAWPOV8Wt/B0ygdaOI+20/ZG8pX+5YzZ5X9U4y4

...yes, what if we put the CAR in the CID! That way we can detect when the input has been truncted, and the screed is self describing... you can paste it into cid.ipfs.tech and it'll tell you it's CAR flavour identity hashed bytes!

import a space from a stringified proof

$ w3 space add $PROOF
did:key:z6MkhfzTwZJ28aRobCp76uXRqzsjH6GNu18WFwMumkAF5ojW

see: https://github.com/web3-storage/w3cli/issues/154#issuecomment-1885042715

Usage

on your machine

# create a key for ci
$ w3 key create --json > ci.json

# create a proof for that key. copy paste it to env var in CI
$ w3 delegation create $(jq -r .did ci.json) -c 'store/add' -c 'upload/add' --base64
mA...

in CI

# set key (jq -r .key ci.json) in env so w3cli uses it instead of generating one
$ W3_PRINCIPAL=${{ secrets.w3key }}

# import the space from the stringified proof
$ w3 space add ${{ vars.w3proof }}

# upload yer stuff
$ w3 upload ./my/cool/stuff

License: MIT

olizilla commented 7 months ago

base256emoji was also considered, but wow

$ w3 delegation create did:key:z6MkviAsUfBwegmB57byQ7SZTFtX4jNjo315EvgurjWYoTRX --can 'store/add' --can 'upload/add' --stringify
๐Ÿš€๐Ÿช๐ŸŽ‚๐ŸŒŒ๐Ÿš€๐Ÿฅ€๐ŸŒโ˜€๐Ÿงกโœ‹๐Ÿฅบ๐Ÿ˜“๐Ÿ˜“๐Ÿ˜ˆ๐ŸŒˆ๐Ÿ˜•๐Ÿ˜๐Ÿ’ฆโœ‹๐Ÿฅบ๐ŸŒˆ๐ŸŒŸ๐Ÿ˜“๐Ÿ˜ป๐Ÿช๐ŸŒฑ๐ŸŒ‘๐Ÿชโœ…๐Ÿ’ป๐Ÿ˜…๐Ÿ‘Œ๐Ÿ’Ÿ๐Ÿ™Œ๐Ÿคซ๐ŸŒ‘๐Ÿ˜›โœŒ๐Ÿฅณ๐Ÿ˜‚โœˆ๐Ÿ’ก๐Ÿ˜ˆ๐Ÿ˜ท๐ŸŒ“๐Ÿ˜ž๐Ÿ’ž๐Ÿ˜›๐Ÿคฌ๐Ÿคง๐Ÿคฎ๐Ÿ’“๐Ÿ‘๐Ÿค™๐Ÿ“ฃ๐Ÿ™‡๐Ÿ‘‘๐Ÿ’๐Ÿ™‡โ˜๐Ÿ’‹๐Ÿ‘†โ˜บโœŠ๐Ÿคค๐ŸŒˆ๐Ÿ’ฅ๐Ÿ’›๐Ÿฅ€๐ŸŒฟ๐Ÿ›ฐ๐Ÿ˜‹๐Ÿ™†๐Ÿ˜ฑ๐Ÿ˜”โœ‹๐Ÿ˜จ๐Ÿ˜†๐ŸŒด๐Ÿ˜ถโœ…๐Ÿคฏ๐Ÿ˜‡๐ŸŒ‘๐Ÿ’™๐Ÿ™‚๐Ÿ˜‹๐Ÿฅด๐Ÿ‘†๐Ÿ’ฟ๐Ÿคท๐Ÿ˜ข๐Ÿ˜ฃ๐ŸŒ“๐Ÿ˜˜๐Ÿ•บ๐Ÿ˜ณ๐Ÿ˜Ž๐Ÿ•บ๐Ÿ’—โฌ‡๐Ÿ’ฐ๐Ÿค“๐Ÿค”โšก๐ŸŒŽโ„๐Ÿ’ปโžก๐ŸŒผ๐ŸŒˆ๐ŸŒฟ๐Ÿค๐Ÿ’ž๐ŸŽค๐Ÿคฉ๐Ÿ’›๐Ÿšจ๐Ÿ˜ท๐Ÿ’†๐Ÿ‘ถ๐Ÿ˜ ๐Ÿ‘โœ…๐Ÿ™„๐ŸŒŒ๐Ÿ˜๐Ÿ˜’โœ”๐Ÿ’Ž๐ŸŒ”๐Ÿคญ๐Ÿ˜‚๐Ÿ’š๐Ÿ˜ ๐Ÿ›ฐ๐Ÿคค๐Ÿ’ฆโœ‹๐Ÿค—โ˜บโœŒโ˜บ๐Ÿ’œ๐Ÿ’ƒ๐Ÿคค๐Ÿ˜ˆ๐Ÿ˜ˆ๐Ÿ’๐Ÿงก๐Ÿ’ƒ๐Ÿ’ƒ๐Ÿคค๐Ÿ˜ป๐Ÿ˜๐ŸŒˆโญ๐Ÿคค๐Ÿ’ƒโœ‹๐Ÿ‘Œ๐Ÿ˜†๐Ÿ˜ณโœ”๐ŸŒŸ๐Ÿ˜ˆ๐Ÿ˜ด๐Ÿ˜ฃ๐Ÿ’ž๐Ÿ˜ณ๐ŸŒŸ๐Ÿ˜ณโœจ๐Ÿ™ƒโœ‹๐Ÿƒโœจ๐Ÿ’๐Ÿคฆ๐Ÿ™ˆ๐Ÿ™ƒ๐Ÿ˜ด๐Ÿ˜š๐Ÿ’๐Ÿ’‹โœ”๐Ÿ˜ž๐Ÿ–ค๐Ÿ˜”๐Ÿ’ž๐Ÿคคโฃ๐Ÿ˜“๐Ÿ‘‰๐Ÿ˜โญ๐ŸŽ‰๐Ÿคฆ๐Ÿค˜๐Ÿ’ฅโฃโœ…๐Ÿ’๐ŸŒˆ๐Ÿ˜ฌ๐Ÿ˜„๐Ÿคฆ๐Ÿคฉ๐Ÿ‘‡๐Ÿค˜๐Ÿ’œ๐Ÿ’ž๐Ÿ˜‘๐Ÿ’“โœ”๐Ÿ™ˆ๐Ÿค˜๐ŸŒท๐Ÿ™ƒ๐Ÿ’—๐Ÿ’“๐ŸŒน๐Ÿ˜“๐Ÿ˜ฌ๐Ÿ˜‘๐Ÿงก๐Ÿ’ƒ๐Ÿ’ƒ๐Ÿคค๐Ÿ˜ป๐Ÿ˜๐ŸŒˆ๐Ÿ˜ˆ๐Ÿ˜“๐Ÿฅบโœ‹๐Ÿ‘Œ๐Ÿ˜†๐Ÿ˜ณโœ”๐ŸŒŸ๐Ÿ˜ˆ๐Ÿ˜ด๐Ÿ˜ฃ๐Ÿ’ž๐Ÿ˜ณ๐ŸŒŸ๐Ÿ˜ณโœจ๐Ÿ™ƒโœ‹๐Ÿƒโœจ๐Ÿ’๐Ÿคฆ๐Ÿ™ˆ๐Ÿ™ƒ๐Ÿ˜ด๐Ÿ˜š๐Ÿ’๐Ÿ’‹โœ”๐Ÿ˜ž๐Ÿ–ค๐Ÿ˜”๐Ÿ’ž๐Ÿคคโฃ๐Ÿ˜“๐Ÿ‘‰๐Ÿ˜โญ๐ŸŽ‰๐Ÿคฆ๐Ÿค˜๐Ÿ’ฅโฃโœ…๐Ÿ’๐ŸŒˆ๐Ÿ˜ฌ๐Ÿ˜„๐Ÿคฆ๐Ÿคฉ๐Ÿ‘‡๐Ÿค˜๐Ÿ’œ๐Ÿ’ž๐Ÿ˜‘๐Ÿ’“โœ”๐Ÿ™ˆ๐Ÿค˜๐ŸŒท๐Ÿ™ƒ๐Ÿ’—๐Ÿ’“๐ŸŒน๐Ÿ˜“๐Ÿ˜ฌ๐Ÿ˜‘๐Ÿงก๐Ÿ’ƒ๐Ÿ’ƒ๐Ÿคค๐Ÿ˜ป๐Ÿ˜ด๐Ÿค˜โญ๐Ÿ€๐Ÿ˜“๐Ÿคค๐Ÿ˜ณ๐Ÿ‘Œ๐Ÿ˜†๐Ÿ˜ณโœ”๐ŸŒŸ๐Ÿ˜ˆ๐Ÿ˜ด๐Ÿ˜ฃ๐Ÿ’ž๐Ÿ˜ณ๐ŸŒŸ๐Ÿ˜ณโœจ๐Ÿ™ƒโœ‹๐Ÿƒโœจ๐Ÿ’๐Ÿคฆ๐Ÿ™ˆ๐Ÿ™ƒ๐Ÿ˜ด๐Ÿ˜š๐Ÿ’๐Ÿ’‹โœ”๐Ÿ˜ž๐Ÿ–ค๐Ÿ˜”๐Ÿ’ž๐Ÿคคโฃ๐Ÿ˜“๐Ÿ‘‰๐Ÿ˜โญ๐ŸŽ‰๐Ÿคฆ๐Ÿค˜๐Ÿ’ฅโฃโœ…๐Ÿ’๐ŸŒˆ๐Ÿ˜ฌ๐Ÿ˜„๐Ÿคฆ๐Ÿคฉ๐Ÿ‘‡๐Ÿค˜๐Ÿ’œ๐Ÿ’ž๐Ÿ˜‘๐Ÿ’“โœ”๐Ÿ™ˆ๐Ÿค˜๐ŸŒท๐Ÿ™ƒ๐Ÿ’—๐Ÿ’“๐ŸŒน๐Ÿ˜“๐Ÿ˜ฌ๐Ÿ˜‘๐Ÿงก๐Ÿ’ƒ๐Ÿ’ƒ๐Ÿคค๐Ÿ˜ป๐Ÿ˜ด๐Ÿคค๐Ÿ’ƒ๐Ÿ’ƒโœ‹๐ŸŒˆ๐ŸŒˆ๐Ÿ‘Œ๐Ÿ˜†๐Ÿ˜ณโœ”๐ŸŒŸ๐Ÿ˜ˆ๐Ÿ˜ด๐Ÿ˜ฃ๐Ÿ’ž๐Ÿ˜ณ๐ŸŒŸ๐Ÿ˜ณโœจ๐Ÿ™ƒโœ‹๐Ÿƒโœจ๐Ÿ’๐Ÿคฆ๐Ÿ™ˆ๐Ÿ™ƒ๐Ÿ˜ด๐Ÿ˜š๐Ÿ’๐Ÿ’‹โœ”๐Ÿ˜ž๐Ÿ–ค๐Ÿ˜”๐Ÿ’ž๐Ÿคคโฃ๐Ÿ˜“๐Ÿ‘‰๐Ÿ˜โญ๐ŸŽ‰๐Ÿคฆ๐Ÿค˜๐Ÿ’ฅโฃโœ…๐Ÿ’๐ŸŒˆ๐Ÿ˜ฌ๐Ÿ˜„๐Ÿคฆ๐Ÿคฉ๐Ÿ‘‡๐Ÿค˜๐Ÿ’œ๐Ÿ’ž๐Ÿ˜‘๐Ÿ’“โœ”๐Ÿ™ˆ๐Ÿค˜๐ŸŒท๐Ÿ™ƒ๐Ÿ’—๐Ÿ’“๐ŸŒน๐Ÿ˜“๐Ÿ˜ฌ๐Ÿ˜‘๐Ÿงก๐Ÿ’ƒ๐Ÿ’ƒ๐Ÿคค๐Ÿ˜ป๐Ÿ˜ฌ๐Ÿ˜š๐ŸŒŸ๐Ÿ€โœ‹๐Ÿ’ƒ๐Ÿ˜“๐ŸŒŸ๐Ÿ˜ป๐Ÿ‘Œ๐Ÿ˜†๐Ÿ˜ณโœ”๐ŸŒŸ๐Ÿ˜ˆ๐Ÿ˜ด๐Ÿ˜ฃ๐Ÿ’ž๐Ÿ˜ณ๐ŸŒŸ๐Ÿ˜ณโœจ๐Ÿ™ƒโœ‹๐Ÿƒโœจ๐Ÿ’๐Ÿคฆ๐Ÿ™ˆ๐Ÿ™ƒ๐Ÿ˜ด๐Ÿ˜š๐Ÿ’๐Ÿ’‹โœ”๐Ÿ˜ž๐Ÿ–ค๐Ÿ˜”๐Ÿ’ž๐Ÿคคโฃ๐Ÿ˜“๐Ÿ‘‰๐Ÿ˜โญ๐ŸŽ‰๐Ÿคฆ๐Ÿค˜๐Ÿ’ฅโฃโœ…๐Ÿ’๐ŸŒˆ๐Ÿ˜ฌ๐Ÿ˜„๐Ÿคฆ๐Ÿคฉ๐Ÿ‘‡๐Ÿค˜๐Ÿ’œ๐Ÿ’ž๐Ÿ˜‘๐Ÿ’“โœ”๐Ÿ™ˆ๐Ÿค˜๐ŸŒท๐Ÿ™ƒ๐Ÿ’—๐Ÿ’“๐ŸŒน๐Ÿ˜“๐Ÿ˜ฌ๐Ÿ˜‘๐Ÿงก๐Ÿ’ƒ๐Ÿ’ƒ๐Ÿคค๐Ÿ˜ป๐Ÿ˜๐Ÿค˜๐ŸŒˆ๐Ÿคค๐Ÿ˜โœ‹๐Ÿ‘Œ๐Ÿ˜†๐Ÿ˜ณโœ”๐ŸŒŸ๐Ÿ˜ˆ๐Ÿ˜ด๐Ÿ˜ฃ๐Ÿ’ž๐Ÿ˜ณ๐ŸŒŸ๐Ÿ˜ณโœจ๐Ÿ™ƒโœ‹๐Ÿƒโœจ๐Ÿ’๐Ÿคฆ๐Ÿ™ˆ๐Ÿ™ƒ๐Ÿ˜ด๐Ÿ˜š๐Ÿ’๐Ÿ’‹โœ”๐Ÿ˜ž๐Ÿ–ค๐Ÿ˜”๐Ÿ’ž๐Ÿคคโฃ๐Ÿ˜“๐Ÿ‘‰๐Ÿ˜โญ๐ŸŽ‰๐Ÿคฆ๐Ÿค˜๐Ÿ’ฅโฃโœ…๐Ÿ’๐ŸŒˆ๐Ÿ˜ฌ๐Ÿ˜„๐Ÿคฆ๐Ÿคฉ๐Ÿ‘‡๐Ÿค˜๐Ÿ’œ๐Ÿ’ž๐Ÿ˜‘๐Ÿ’“โœ”๐Ÿ™ˆ๐Ÿค˜๐ŸŒท๐Ÿ™ƒ๐Ÿ’—๐Ÿ’“๐ŸŒน๐Ÿ˜“๐Ÿ˜ฌ๐Ÿ˜‘๐Ÿ’ƒ๐Ÿคค๐Ÿค˜๐Ÿ˜ณ๐Ÿ’ฅ๐Ÿ˜๐Ÿฅ€๐Ÿช๐ŸŒด๐Ÿ˜“๐Ÿฅ€๐Ÿ’˜๐Ÿฅฐ๐Ÿ˜Ž๐Ÿ’พ๐ŸŒ’๐Ÿ˜ต๐Ÿšถ๐Ÿ”ต๐Ÿคข๐ŸŽ€๐Ÿธ๐Ÿ“ธ๐Ÿ’ฆ๐Ÿค—๐Ÿค“๐Ÿ‘Œ๐Ÿ’—๐Ÿ™‚๐Ÿฅด๐Ÿ‘…๐Ÿ’ป๐Ÿ‘Š๐Ÿ˜‚๐Ÿ™…๐Ÿ˜ซ๐Ÿ˜ญ๐Ÿคฉ๐Ÿ™๐ŸŽ๐Ÿ’ƒโœ‹๐Ÿ˜ฃโญ๐Ÿ˜Š๐Ÿ˜๐ŸŽ‰๐Ÿ˜‰๐Ÿ˜Š๐Ÿ’ƒ๐Ÿ˜š๐Ÿ’ƒ๐Ÿ˜ˆ๐ŸŒบ๐ŸŒฟโœ‹๐ŸŒˆโญ๐Ÿคค๐Ÿ’ƒโœ‹๐ŸŒฟ๐Ÿ˜ณ๐Ÿ˜ป๐Ÿคค๐ŸŒทโœ‹โœ‹๐Ÿ˜ˆ๐Ÿ˜“๐Ÿ˜“๐Ÿ˜ˆ๐ŸŒˆ๐Ÿ’ƒ๐ŸŒŸ๐ŸŒˆ๐ŸŒˆ๐Ÿ’ฅ๐Ÿ˜๐Ÿฅ€๐Ÿช๐Ÿ‘Œ๐Ÿ”ต๐Ÿ“ฃโŒ๐Ÿ–•๐Ÿ˜”๐Ÿ˜ต๐Ÿ‘‡๐ŸŒˆ๐Ÿ˜„๐Ÿ’˜๐Ÿ˜ข๐Ÿ†๐Ÿ’Ž๐Ÿพ๐Ÿ˜Œ๐Ÿ’โญ๐Ÿ˜œ๐Ÿคฒ๐Ÿ’”๐Ÿ‘‘๐Ÿ“Œ๐Ÿ˜ด๐Ÿ“Œ๐Ÿฅ€๐ŸŽŠ๐Ÿบ๐Ÿ’๐Ÿ’…โ˜•๐Ÿšฉ๐Ÿ’ƒโญ๐Ÿฅบ๐Ÿ˜š๐Ÿ˜•๐ŸŒฑ๐ŸŒ‘๐Ÿชโœ…๐Ÿ’ป๐Ÿ˜…๐Ÿ‘Œ๐Ÿ’Ÿ๐Ÿ™Œ๐Ÿคซ๐ŸŒ‘๐Ÿ˜›โœŒ๐Ÿฅณ๐Ÿ˜‚โœˆ๐Ÿ’ก๐Ÿ˜ˆ๐Ÿ˜ท๐ŸŒ“๐Ÿ˜ž๐Ÿ’ž๐Ÿ˜›๐Ÿคฌ๐Ÿคง๐Ÿคฎ๐Ÿ’“๐Ÿ‘๐Ÿค™๐Ÿ“ฃ๐Ÿ™‡๐Ÿ‘‘๐Ÿ’๐Ÿ™‡โ˜๐Ÿ’‹๐Ÿ‘†โ˜บโœŠ๐Ÿคค๐ŸŒˆ๐Ÿ’ฅ๐Ÿ’›๐Ÿฅ€๐ŸŒฟ๐Ÿ›ฐ๐Ÿ˜‹๐Ÿ™†๐Ÿ˜ฑ๐Ÿ˜”โœ‹๐Ÿ˜จ๐Ÿ˜†๐ŸŒด๐Ÿ˜ถโœ…๐Ÿคฏ๐Ÿ˜‡๐ŸŒ‘๐Ÿ’™๐Ÿ™‚๐Ÿ˜‹๐Ÿฅด๐Ÿ‘†๐Ÿ’ฟ๐Ÿคท๐Ÿ˜ข๐Ÿ˜ฃ๐ŸŒ“๐Ÿ˜˜๐Ÿ•บ๐Ÿ˜ณ๐Ÿ˜Ž๐Ÿ•บ๐Ÿ’—โฌ‡๐Ÿ’ฐ๐Ÿค“๐Ÿค”โšก๐ŸŒŽโ„๐Ÿ’ปโžก๐ŸŒผ๐ŸŒˆ๐ŸŒฟ๐Ÿค๐Ÿ’ž๐ŸŽค๐Ÿคฉ๐Ÿ’›๐Ÿšจ๐Ÿ˜ท๐Ÿ’†๐Ÿ‘ถ๐Ÿ˜ ๐Ÿ‘โœ…๐Ÿ™„๐ŸŒŒ๐Ÿ˜๐Ÿ˜’โœ”๐Ÿ’Ž๐ŸŒ”๐Ÿคญ๐Ÿ˜‚๐Ÿ’š๐Ÿ˜ ๐Ÿ›ฐ๐Ÿคค๐Ÿ’ฆโœ‹๐Ÿค—โ˜บโœŒโ˜บ๐Ÿ’œ๐Ÿ’ƒ๐Ÿคค๐Ÿ˜ˆ๐Ÿ˜ˆ๐Ÿ’๐Ÿงก๐Ÿ’ƒ๐Ÿ’ƒ๐Ÿคค๐Ÿ˜ป๐Ÿ˜๐ŸŒˆโญ๐Ÿคค๐Ÿ’ƒโœ‹๐Ÿ‘Œ๐Ÿ˜†๐Ÿ˜ณโœ”๐ŸŒŸ๐Ÿ˜ˆ๐Ÿ˜ด๐Ÿ˜ฃ๐Ÿ’ž๐Ÿ˜ณ๐ŸŒŸ๐Ÿ˜ณโœจ๐Ÿ™ƒโœ‹๐Ÿƒโœจ๐Ÿ’๐Ÿคฆ๐Ÿ™ˆ๐Ÿ™ƒ๐Ÿ˜ด๐Ÿ˜š๐Ÿ’๐Ÿ’‹โœ”๐Ÿ˜ž๐Ÿ–ค๐Ÿ˜”๐Ÿ’ž๐Ÿคคโฃ๐Ÿ˜“๐Ÿ‘‰๐Ÿ˜โญ๐ŸŽ‰๐Ÿคฆ๐Ÿค˜๐Ÿ’ฅโฃโœ…๐Ÿ’๐ŸŒˆ๐Ÿ˜ฌ๐Ÿ˜„๐Ÿคฆ๐Ÿคฉ๐Ÿ‘‡๐Ÿค˜๐Ÿ’œ๐Ÿ’ž๐Ÿ˜‘๐Ÿ’“โœ”๐Ÿ™ˆ๐Ÿค˜๐ŸŒท๐Ÿ™ƒ๐Ÿ’—๐Ÿ’“๐ŸŒน๐Ÿ˜“๐Ÿ˜ฌ๐Ÿ˜‘๐Ÿงก๐Ÿ’ƒ๐Ÿ’ƒ๐Ÿคค๐Ÿ˜ป๐Ÿ˜๐ŸŒˆ๐Ÿ˜ˆ๐Ÿ˜“๐Ÿฅบโœ‹๐Ÿ‘Œ๐Ÿ˜†๐Ÿ˜ณโœ”๐ŸŒŸ๐Ÿ˜ˆ๐Ÿ˜ด๐Ÿ˜ฃ๐Ÿ’ž๐Ÿ˜ณ๐ŸŒŸ๐Ÿ˜ณโœจ๐Ÿ™ƒโœ‹๐Ÿƒโœจ๐Ÿ’๐Ÿคฆ๐Ÿ™ˆ๐Ÿ™ƒ๐Ÿ˜ด๐Ÿ˜š๐Ÿ’๐Ÿ’‹โœ”๐Ÿ˜ž๐Ÿ–ค๐Ÿ˜”๐Ÿ’ž๐Ÿคคโฃ๐Ÿ˜“๐Ÿ‘‰๐Ÿ˜โญ๐ŸŽ‰๐Ÿคฆ๐Ÿค˜๐Ÿ’ฅโฃโœ…๐Ÿ’๐ŸŒˆ๐Ÿ˜ฌ๐Ÿ˜„๐Ÿคฆ๐Ÿคฉ๐Ÿ‘‡๐Ÿค˜๐Ÿ’œ๐Ÿ’ž๐Ÿ˜‘๐Ÿ’“โœ”๐Ÿ™ˆ๐Ÿค˜๐ŸŒท๐Ÿ™ƒ๐Ÿ’—๐Ÿ’“๐ŸŒน๐Ÿ˜“๐Ÿ˜ฌ๐Ÿ˜‘๐Ÿงก๐Ÿ’ƒ๐Ÿ’ƒ๐Ÿคค๐Ÿ˜ป๐Ÿ˜ด๐Ÿค˜โญ๐Ÿ€๐Ÿ˜“๐Ÿคค๐Ÿ˜ณ๐Ÿ‘Œ๐Ÿ˜†๐Ÿ˜ณโœ”๐ŸŒŸ๐Ÿ˜ˆ๐Ÿ˜ด๐Ÿ˜ฃ๐Ÿ’ž๐Ÿ˜ณ๐ŸŒŸ๐Ÿ˜ณโœจ๐Ÿ™ƒโœ‹๐Ÿƒโœจ๐Ÿ’๐Ÿคฆ๐Ÿ™ˆ๐Ÿ™ƒ๐Ÿ˜ด๐Ÿ˜š๐Ÿ’๐Ÿ’‹โœ”๐Ÿ˜ž๐Ÿ–ค๐Ÿ˜”๐Ÿ’ž๐Ÿคคโฃ๐Ÿ˜“๐Ÿ‘‰๐Ÿ˜โญ๐ŸŽ‰๐Ÿคฆ๐Ÿค˜๐Ÿ’ฅโฃโœ…๐Ÿ’๐ŸŒˆ๐Ÿ˜ฌ๐Ÿ˜„๐Ÿคฆ๐Ÿคฉ๐Ÿ‘‡๐Ÿค˜๐Ÿ’œ๐Ÿ’ž๐Ÿ˜‘๐Ÿ’“โœ”๐Ÿ™ˆ๐Ÿค˜๐ŸŒท๐Ÿ™ƒ๐Ÿ’—๐Ÿ’“๐ŸŒน๐Ÿ˜“๐Ÿ˜ฌ๐Ÿ˜‘๐Ÿงก๐Ÿ’ƒ๐Ÿ’ƒ๐Ÿคค๐Ÿ˜ป๐Ÿ˜ด๐Ÿคค๐Ÿ’ƒ๐Ÿ’ƒโœ‹๐ŸŒˆ๐ŸŒˆ๐Ÿ‘Œ๐Ÿ˜†๐Ÿ˜ณโœ”๐ŸŒŸ๐Ÿ˜ˆ๐Ÿ˜ด๐Ÿ˜ฃ๐Ÿ’ž๐Ÿ˜ณ๐ŸŒŸ๐Ÿ˜ณโœจ๐Ÿ™ƒโœ‹๐Ÿƒโœจ๐Ÿ’๐Ÿคฆ๐Ÿ™ˆ๐Ÿ™ƒ๐Ÿ˜ด๐Ÿ˜š๐Ÿ’๐Ÿ’‹โœ”๐Ÿ˜ž๐Ÿ–ค๐Ÿ˜”๐Ÿ’ž๐Ÿคคโฃ๐Ÿ˜“๐Ÿ‘‰๐Ÿ˜โญ๐ŸŽ‰๐Ÿคฆ๐Ÿค˜๐Ÿ’ฅโฃโœ…๐Ÿ’๐ŸŒˆ๐Ÿ˜ฌ๐Ÿ˜„๐Ÿคฆ๐Ÿคฉ๐Ÿ‘‡๐Ÿค˜๐Ÿ’œ๐Ÿ’ž๐Ÿ˜‘๐Ÿ’“โœ”๐Ÿ™ˆ๐Ÿค˜๐ŸŒท๐Ÿ™ƒ๐Ÿ’—๐Ÿ’“๐ŸŒน๐Ÿ˜“๐Ÿ˜ฌ๐Ÿ˜‘๐Ÿงก๐Ÿ’ƒ๐Ÿ’ƒ๐Ÿคค๐Ÿ˜ป๐Ÿ˜ฌ๐Ÿ˜š๐ŸŒŸ๐Ÿ€โœ‹๐Ÿ’ƒ๐Ÿ˜“๐ŸŒŸ๐Ÿ˜ป๐Ÿ‘Œ๐Ÿ˜†๐Ÿ˜ณโœ”๐ŸŒŸ๐Ÿ˜ˆ๐Ÿ˜ด๐Ÿ˜ฃ๐Ÿ’ž๐Ÿ˜ณ๐ŸŒŸ๐Ÿ˜ณโœจ๐Ÿ™ƒโœ‹๐Ÿƒโœจ๐Ÿ’๐Ÿคฆ๐Ÿ™ˆ๐Ÿ™ƒ๐Ÿ˜ด๐Ÿ˜š๐Ÿ’๐Ÿ’‹โœ”๐Ÿ˜ž๐Ÿ–ค๐Ÿ˜”๐Ÿ’ž๐Ÿคคโฃ๐Ÿ˜“๐Ÿ‘‰๐Ÿ˜โญ๐ŸŽ‰๐Ÿคฆ๐Ÿค˜๐Ÿ’ฅโฃโœ…๐Ÿ’๐ŸŒˆ๐Ÿ˜ฌ๐Ÿ˜„๐Ÿคฆ๐Ÿคฉ๐Ÿ‘‡๐Ÿค˜๐Ÿ’œ๐Ÿ’ž๐Ÿ˜‘๐Ÿ’“โœ”๐Ÿ™ˆ๐Ÿค˜๐ŸŒท๐Ÿ™ƒ๐Ÿ’—๐Ÿ’“๐ŸŒน๐Ÿ˜“๐Ÿ˜ฌ๐Ÿ˜‘๐Ÿงก๐Ÿ’ƒ๐Ÿ’ƒ๐Ÿคค๐Ÿ˜ป๐Ÿ˜๐Ÿค˜๐ŸŒˆ๐Ÿคค๐Ÿ˜โœ‹๐Ÿ‘Œ๐Ÿ˜†๐Ÿ˜ณโœ”๐ŸŒŸ๐Ÿ˜ˆ๐Ÿ˜ด๐Ÿ˜ฃ๐Ÿ’ž๐Ÿ˜ณ๐ŸŒŸ๐Ÿ˜ณโœจ๐Ÿ™ƒโœ‹๐Ÿƒโœจ๐Ÿ’๐Ÿคฆ๐Ÿ™ˆ๐Ÿ™ƒ๐Ÿ˜ด๐Ÿ˜š๐Ÿ’๐Ÿ’‹โœ”๐Ÿ˜ž๐Ÿ–ค๐Ÿ˜”๐Ÿ’ž๐Ÿคคโฃ๐Ÿ˜“๐Ÿ‘‰๐Ÿ˜โญ๐ŸŽ‰๐Ÿคฆ๐Ÿค˜๐Ÿ’ฅโฃโœ…๐Ÿ’๐ŸŒˆ๐Ÿ˜ฌ๐Ÿ˜„๐Ÿคฆ๐Ÿคฉ๐Ÿ‘‡๐Ÿค˜๐Ÿ’œ๐Ÿ’ž๐Ÿ˜‘๐Ÿ’“โœ”๐Ÿ™ˆ๐Ÿค˜๐ŸŒท๐Ÿ™ƒ๐Ÿ’—๐Ÿ’“๐ŸŒน๐Ÿ˜“๐Ÿ˜ฌ๐Ÿ˜‘๐Ÿ’ƒ๐Ÿคค๐Ÿค˜๐Ÿ˜ณ๐Ÿ’ฅ๐Ÿ˜๐Ÿฅ€๐Ÿช๐ŸŒด๐Ÿ˜“๐Ÿฅ€๐Ÿ’˜๐Ÿฅฐ๐Ÿ˜Ž๐Ÿ’พ๐ŸŒ’๐Ÿ˜ต๐Ÿšถ๐Ÿ”ต๐Ÿคข๐ŸŽ€๐Ÿธ๐Ÿ“ธ๐Ÿ’ฆ๐Ÿค—๐Ÿค“๐Ÿ‘Œ๐Ÿ’—๐Ÿ™‚๐Ÿฅด๐Ÿ‘…๐Ÿ’ป๐Ÿ‘Š๐Ÿ˜‚๐Ÿ™…๐Ÿ˜ซ๐Ÿ˜ญ๐Ÿคฉ๐Ÿ™๐ŸŽ๐Ÿ’ƒโœ‹๐Ÿ˜ฃโญ๐Ÿ˜Š๐Ÿ˜๐ŸŽ‰๐Ÿ˜‰๐Ÿ˜Š๐Ÿ’ƒ๐Ÿ˜š๐Ÿ’ƒ๐Ÿ˜ˆ๐ŸŒบ๐ŸŒฟโœ‹๐ŸŒˆโญ๐Ÿคค๐Ÿ’ƒโœ‹๐ŸŒฟ๐Ÿ˜ณ๐Ÿ˜ป๐Ÿคค๐ŸŒทโœ‹โœ‹๐Ÿ˜ˆ๐Ÿ˜“๐Ÿ˜“๐Ÿ˜ˆ๐ŸŒˆ๐Ÿ’ƒ๐ŸŒŸ๐ŸŒˆ๐ŸŒˆ๐Ÿ’ฅ๐Ÿ˜๐Ÿฅ€๐Ÿช๐Ÿ‘Œ๐Ÿ”ต๐Ÿ“ฃโŒ๐Ÿ–•๐Ÿ˜”๐Ÿ˜ต๐Ÿ‘‡๐ŸŒˆ๐Ÿ˜„๐Ÿ’˜๐Ÿ˜ข๐Ÿ†๐Ÿ’Ž๐Ÿพ๐Ÿ˜Œ๐Ÿ’โญ๐Ÿ˜œ๐Ÿคฒ๐Ÿ’”๐Ÿ‘‘๐Ÿ“Œ๐Ÿ˜ด๐Ÿ“Œ๐Ÿฅ€๐ŸŽŠ๐Ÿบ๐Ÿ’๐Ÿ’…โ˜•๐Ÿšฉ๐Ÿ’ƒโญ๐Ÿฅบ๐Ÿ˜š๐Ÿ˜•๐Ÿค‘๐Ÿ›ฐ๐Ÿชโœ…๐Ÿ’ป๐Ÿ˜…๐Ÿ’˜๐Ÿ˜น๐Ÿ’๐Ÿ˜๐Ÿ’…๐Ÿค‘๐Ÿคช๐Ÿ˜ข๐Ÿ’›โ˜„๐Ÿ’Ÿ๐Ÿ˜‚๐ŸŽŠ๐Ÿ‘‘๐Ÿ”ด๐Ÿ˜๐Ÿฅ€๐Ÿ˜ฌ๐Ÿ“๐Ÿ”ต๐ŸŽˆ๐Ÿ˜Ÿ๐Ÿ’จ๐Ÿ‘‘๐ŸŒ๐ŸŒ”๐Ÿ˜ฒ๐ŸŒ–๐Ÿ˜ฅโ˜„๐Ÿง๐Ÿ˜”โœŠ๐Ÿคค๐ŸŒˆ๐Ÿ’ฅ๐Ÿ’›๐Ÿฅ€๐ŸŒฟ๐Ÿ›ฐ๐Ÿ˜‹๐Ÿถ๐Ÿ“Œ๐Ÿ’ก๐Ÿ˜›๐Ÿ˜ฎ๐Ÿ’ง๐ŸŒ—๐Ÿ‘ถ๐Ÿƒ๐ŸŒฑ๐Ÿ˜ˆ๐Ÿ’ฐ๐Ÿ“Œ๐Ÿ‘ผ๐ŸŽผ๐ŸŒ“๐Ÿ’๐Ÿ‘ผ๐Ÿ’๐Ÿ’ฆ๐ŸŽต๐Ÿ˜จ๐ŸŒŒ๐Ÿคญโœ…๐Ÿ“๐Ÿ“ธ๐ŸŒ–๐Ÿ˜–๐Ÿ’€๐Ÿ™ƒ๐Ÿ’‹๐Ÿ‘Ž๐Ÿ’๐Ÿงก๐Ÿ˜ซโžก๐Ÿ˜ฎ๐Ÿ˜†๐ŸŽ๐Ÿ‘Œ๐ŸŒ๐Ÿ˜ฐ๐Ÿ˜โ„๐ŸคŸ๐Ÿ’‹๐Ÿ’ฉ๐Ÿ˜ฎ๐Ÿ˜๐Ÿ‘Ž๐Ÿ”ด๐Ÿ˜Ž๐Ÿ’ž๐Ÿ’ฟ๐Ÿ˜™โญโžกโฌ‡โœ…๐Ÿ‘Š๐Ÿ‘ถ๐Ÿ˜œ๐ŸŒ—๐Ÿคค๐Ÿ’ฆโœ‹๐Ÿค—โ˜บโœŒโ˜บ๐Ÿ’œ๐Ÿ’ƒ๐Ÿคค๐Ÿ˜ˆ๐Ÿ˜ˆ๐ŸŽ‚๐Ÿงก๐Ÿ’ƒ๐Ÿ’ƒ๐Ÿคค๐Ÿ˜ป๐ŸŒŸ๐ŸŒˆ๐Ÿ˜ˆ๐Ÿ˜“๐Ÿฅบโœ‹๐Ÿ‘Œ๐Ÿคค๐Ÿ˜ณ๐Ÿ˜ณ๐Ÿ˜ณโœ”๐ŸŒŸ๐Ÿ˜ˆ๐Ÿ˜ด๐Ÿ˜ฃ๐Ÿ’ž๐Ÿ˜ณ๐ŸŒŸ๐Ÿ˜ณโœจ๐Ÿ™ƒโœ‹๐Ÿƒโœจ๐Ÿ’๐Ÿคฆ๐Ÿ™ˆ๐Ÿ™ƒ๐Ÿ˜ด๐Ÿ˜š๐Ÿ’๐Ÿ’‹โœ”๐Ÿ˜ž๐Ÿ–ค๐Ÿ˜”๐Ÿ’ž๐Ÿคคโฃ๐Ÿ˜“๐Ÿ‘‰๐Ÿ˜โญ๐ŸŽ‰๐Ÿคฆ๐Ÿค˜๐Ÿ’ฅโฃโœ…๐Ÿ’๐ŸŒˆ๐Ÿ˜ฌ๐Ÿ˜„๐Ÿคฆ๐Ÿคฉ๐Ÿ‘‡๐Ÿค˜๐Ÿ’œ๐Ÿ’ž๐Ÿ˜‘๐Ÿ’“โœ”๐Ÿ™ˆ๐Ÿค˜๐ŸŒท๐Ÿ™ƒ๐Ÿ’—๐Ÿ’“๐ŸŒน๐Ÿ˜“๐Ÿ˜ฌ๐Ÿ˜‘๐Ÿงก๐Ÿ’ƒ๐Ÿ’ƒ๐Ÿคค๐Ÿ˜ป๐Ÿ˜ฌ๐Ÿค˜โญ๐Ÿ€๐Ÿ˜“๐Ÿคค๐Ÿ˜ณ๐Ÿ‘Œ๐Ÿคค๐Ÿ˜ณ๐Ÿ˜ณ๐Ÿ˜ณโœ”๐ŸŒŸ๐Ÿ˜ˆ๐Ÿ˜ด๐Ÿ˜ฃ๐Ÿ’ž๐Ÿ˜ณ๐ŸŒŸ๐Ÿ˜ณโœจ๐Ÿ™ƒโœ‹๐Ÿƒโœจ๐Ÿ’๐Ÿคฆ๐Ÿ™ˆ๐Ÿ™ƒ๐Ÿ˜ด๐Ÿ˜š๐Ÿ’๐Ÿ’‹โœ”๐Ÿ˜ž๐Ÿ–ค๐Ÿ˜”๐Ÿ’ž๐Ÿคคโฃ๐Ÿ˜“๐Ÿ‘‰๐Ÿ˜โญ๐ŸŽ‰๐Ÿคฆ๐Ÿค˜๐Ÿ’ฅโฃโœ…๐Ÿ’๐ŸŒˆ๐Ÿ˜ฌ๐Ÿ˜„๐Ÿคฆ๐Ÿคฉ๐Ÿ‘‡๐Ÿค˜๐Ÿ’œ๐Ÿ’ž๐Ÿ˜‘๐Ÿ’“โœ”๐Ÿ™ˆ๐Ÿค˜๐ŸŒท๐Ÿ™ƒ๐Ÿ’—๐Ÿ’“๐ŸŒน๐Ÿ˜“๐Ÿ˜ฌ๐Ÿ˜‘๐Ÿ’ƒ๐Ÿคค๐Ÿค˜๐Ÿ˜ณ๐Ÿ’ฅ๐Ÿ˜๐Ÿฅ€๐Ÿช๐Ÿ’ฉ๐Ÿ‘‘๐Ÿ˜—โ˜บ๐Ÿ˜ต๐ŸŒ๐ŸŒ๐Ÿคข๐ŸŒด๐Ÿ˜š๐Ÿท๐Ÿคจโ˜•๐Ÿ™†๐Ÿ˜‚๐Ÿธ๐Ÿ”ฅ๐Ÿ‘๐Ÿ’ฉโ˜น๐Ÿ˜ข๐Ÿคช๐ŸŒผ๐Ÿ‘…๐Ÿ”ด๐ŸŒˆ๐Ÿธ๐Ÿ’จ๐ŸŠ๐Ÿ’ฅ๐Ÿ™‚๐Ÿ’ฆ๐Ÿ’ƒโœ‹๐Ÿ˜ฃโญ๐Ÿคฎ๐Ÿ’ƒ๐Ÿ˜š๐Ÿ’ƒ๐Ÿ˜ˆ๐ŸŒบ๐ŸŒฟโœ‹๐ŸŒˆโญ๐Ÿคค๐Ÿ’ƒโœ‹๐ŸŒฟ๐Ÿ˜ณ๐Ÿ˜ป๐Ÿคค๐ŸŒทโœ‹โœ‹๐Ÿ˜ˆ๐Ÿ˜“๐Ÿ˜“๐Ÿ˜ˆ๐ŸŒˆ๐Ÿ’ƒ๐ŸŒŸ๐ŸŒˆ๐ŸŒˆ๐Ÿ’ฅ๐Ÿ˜๐Ÿฅ€๐Ÿช๐ŸŒด๐Ÿ˜“๐Ÿฅ€๐Ÿ’˜๐Ÿฅฐ๐Ÿ˜Ž๐Ÿ’พ๐ŸŒ’๐Ÿ˜ต๐Ÿšถ๐Ÿ”ต๐Ÿคข๐ŸŽ€๐Ÿธ๐Ÿ“ธ๐Ÿ’ฆ๐Ÿค—๐Ÿค“๐Ÿ‘Œ๐Ÿ’—๐Ÿ™‚๐Ÿฅด๐Ÿ‘…๐Ÿ’ป๐Ÿ‘Š๐Ÿ˜‚๐Ÿ™…๐Ÿ˜ซ๐Ÿ˜ญ๐Ÿคฉ๐Ÿ™๐ŸŽ๐Ÿ’ƒโญ๐Ÿฅบ๐Ÿ˜š๐ŸŽ‚๐Ÿพ๐Ÿ˜†๐Ÿ’ฅ๐Ÿ’”๐Ÿš€๐Ÿชโœ…๐Ÿ’ป๐Ÿ˜…๐Ÿ‘Œ๐Ÿ’Ÿ๐Ÿ™Œ๐Ÿคซ๐ŸŒ‘๐Ÿ˜›โœŒ๐Ÿฅณ๐Ÿ˜‚โœˆ๐Ÿ’ก๐Ÿ˜ˆ๐Ÿ˜ท๐ŸŒ“๐Ÿ˜ž๐Ÿ’ž๐Ÿ˜›๐Ÿคฌ๐Ÿคง๐Ÿคฎ๐Ÿ’“๐Ÿ‘๐Ÿค™๐Ÿ“ฃ๐Ÿ™‡๐Ÿ‘‘๐Ÿ’๐Ÿ™‡โ˜๐Ÿ’‹๐Ÿ‘†โ˜บ๐Ÿพ๐Ÿ˜†๐Ÿ’ฅ๐Ÿ’”๐Ÿš€๐Ÿชโœ…๐Ÿ’ป๐Ÿ˜…๐Ÿ‘Œ๐Ÿ’Ÿ๐Ÿ™Œ๐Ÿคซ๐ŸŒ‘๐Ÿ˜›โœŒ๐Ÿฅณ๐Ÿ˜‚โœˆ๐Ÿ’ก๐Ÿ˜ˆ๐Ÿ˜ท๐ŸŒ“๐Ÿ˜ž๐Ÿ’ž๐Ÿ˜›๐Ÿคฌ๐Ÿคง๐Ÿคฎ๐Ÿ’“๐Ÿ‘๐Ÿค™๐Ÿ“ฃ๐Ÿ™‡๐Ÿ‘‘๐Ÿ’๐Ÿ™‡โ˜๐Ÿ’‹๐Ÿ‘†โ˜บโŽ  
olizilla commented 7 months ago

Just base64 mutlibase encoding was considered, but the identity cid wrapping lets use specify that it's a CAR via the cid codec for self describing goodness...

...and as it gets length prefixed we can detect truncation, which for long text screeds seems like a win.