From b9975d4646f15eff2158aea1c4d4568eba41b18c Mon Sep 17 00:00:00 2001 From: Mykola <3277207+kolya182@users.noreply.github.com> Date: Tue, 4 Feb 2020 00:54:44 -0800 Subject: [PATCH] Cmc map script (#1148) * Add new coin images after script run * Add new methods * Move interfaces * Update readme * CMC map script * Update maping * Update script andUpdate scrip results * Remove good from whitelist * remove old * Update list * Optimised images with calibre/image-actions Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- README.md | 11 +- blockchains/binance/assets/WRX-ED1/logo.png | Bin 9504 -> 5911 bytes .../logo.png | Bin 51752 -> 0 bytes .../logo.png | Bin 26443 -> 21023 bytes .../logo.png | Bin 0 -> 2849 bytes .../logo.png | Bin 0 -> 3650 bytes .../logo.png | Bin 0 -> 12759 bytes .../logo.png | Bin 0 -> 4302 bytes .../logo.png | Bin 0 -> 6883 bytes .../logo.png | Bin 0 -> 4419 bytes .../logo.png | Bin 0 -> 5610 bytes .../logo.png | Bin 0 -> 8770 bytes .../logo.png | Bin 0 -> 4358 bytes .../logo.png | Bin 0 -> 4256 bytes .../logo.png | Bin 0 -> 4604 bytes .../logo.png | Bin 0 -> 4336 bytes .../logo.png | Bin 0 -> 6433 bytes .../logo.png | Bin 0 -> 5047 bytes .../logo.png | Bin 0 -> 5228 bytes .../logo.png | Bin 0 -> 5606 bytes .../logo.png | Bin 0 -> 6001 bytes .../logo.png | Bin 15146 -> 12880 bytes .../logo.png | Bin 0 -> 2722 bytes .../logo.png | Bin 0 -> 5289 bytes .../logo.png | Bin 0 -> 6733 bytes .../logo.png | Bin 0 -> 4338 bytes .../logo.png | Bin 10251 -> 6123 bytes .../logo.png | Bin 0 -> 6164 bytes .../logo.png | Bin 0 -> 4060 bytes .../logo.png | Bin 51818 -> 50912 bytes .../logo.png | Bin 0 -> 3563 bytes .../logo.png | Bin 0 -> 10836 bytes .../logo.png | Bin 0 -> 12480 bytes .../logo.png | Bin 0 -> 2046 bytes .../logo.png | Bin 0 -> 3598 bytes .../logo.png | Bin 0 -> 5834 bytes .../logo.png | Bin 0 -> 4938 bytes .../logo.png | Bin 0 -> 7865 bytes .../logo.png | Bin 0 -> 8085 bytes .../logo.png | Bin 0 -> 4066 bytes .../logo.png | Bin 19153 -> 8778 bytes .../logo.png | Bin 0 -> 4571 bytes .../logo.png | Bin 0 -> 28439 bytes .../logo.png | Bin 0 -> 5877 bytes .../logo.png | Bin 29586 -> 24712 bytes .../logo.png | Bin 0 -> 2237 bytes .../logo.png | Bin 0 -> 3671 bytes .../logo.png | Bin 0 -> 7765 bytes .../logo.png | Bin 0 -> 4127 bytes .../logo.png | Bin 10251 -> 6123 bytes .../logo.png | Bin 0 -> 3709 bytes .../logo.png | Bin 0 -> 5847 bytes .../logo.png | Bin 0 -> 8678 bytes .../logo.png | Bin 0 -> 3657 bytes .../logo.png | Bin 0 -> 4668 bytes .../logo.png | Bin 0 -> 4589 bytes .../logo.png | Bin 0 -> 5724 bytes .../logo.png | Bin 0 -> 4295 bytes .../logo.png | Bin 142346 -> 53016 bytes .../logo.png | Bin 16750 -> 15097 bytes .../logo.png | Bin 0 -> 3752 bytes .../logo.png | Bin 10251 -> 6123 bytes .../logo.png | Bin 0 -> 8377 bytes .../logo.png | Bin 0 -> 6620 bytes .../logo.png | Bin 0 -> 8863 bytes .../logo.png | Bin 0 -> 7807 bytes .../logo.png | Bin 0 -> 3120 bytes .../logo.png | Bin 0 -> 4291 bytes .../logo.png | Bin 0 -> 5736 bytes .../logo.png | Bin 0 -> 4088 bytes .../logo.png | Bin 0 -> 6265 bytes .../logo.png | Bin 0 -> 8454 bytes .../logo.png | Bin 20876 -> 19533 bytes .../logo.png | Bin 0 -> 7218 bytes .../logo.png | Bin 0 -> 3489 bytes .../logo.png | Bin 0 -> 11283 bytes .../logo.png | Bin 0 -> 2849 bytes .../logo.png | Bin 0 -> 3660 bytes .../logo.png | Bin 0 -> 3908 bytes .../logo.png | Bin 33858 -> 25042 bytes .../logo.png | Bin 0 -> 3029 bytes .../logo.png | Bin 0 -> 4485 bytes .../logo.png | Bin 0 -> 7641 bytes .../logo.png | Bin 0 -> 7017 bytes .../logo.png | Bin 0 -> 6506 bytes .../logo.png | Bin 0 -> 2920 bytes .../logo.png | Bin 22698 -> 17044 bytes .../logo.png | Bin 0 -> 7282 bytes .../logo.png | Bin 0 -> 6275 bytes .../logo.png | Bin 0 -> 7181 bytes .../logo.png | Bin 0 -> 4768 bytes .../logo.png | Bin 0 -> 8945 bytes .../logo.png | Bin 0 -> 8289 bytes .../logo.png | Bin 5812 -> 4078 bytes .../logo.png | Bin 0 -> 5009 bytes .../logo.png | Bin 0 -> 2366 bytes .../logo.png | Bin 0 -> 3416 bytes .../logo.png | Bin 53016 -> 0 bytes .../logo.png | Bin 0 -> 7618 bytes .../logo.png | Bin 0 -> 2486 bytes .../logo.png | Bin 0 -> 4044 bytes .../logo.png | Bin 0 -> 3148 bytes .../logo.png | Bin 18495 -> 15605 bytes .../logo.png | Bin 0 -> 2282 bytes .../logo.png | Bin 0 -> 4352 bytes .../logo.png | Bin 0 -> 9170 bytes .../logo.png | Bin 6290 -> 5090 bytes .../logo.png | Bin 10251 -> 6123 bytes .../logo.png | Bin 0 -> 4173 bytes .../logo.png | Bin 0 -> 7625 bytes .../logo.png | Bin 0 -> 6079 bytes .../logo.png | Bin 14075 -> 10711 bytes .../logo.png | Bin 10162 -> 8380 bytes .../logo.png | Bin 0 -> 15353 bytes .../logo.png | Bin 0 -> 6529 bytes .../logo.png | Bin 0 -> 6093 bytes .../logo.png | Bin 0 -> 4524 bytes .../logo.png | Bin 43156 -> 36511 bytes .../logo.png | Bin 37618 -> 34790 bytes .../logo.png | Bin 0 -> 9338 bytes .../logo.png | Bin 0 -> 11768 bytes .../logo.png | Bin 0 -> 3769 bytes .../logo.png | Bin 0 -> 10440 bytes .../logo.png | Bin 10251 -> 6123 bytes .../logo.png | Bin 0 -> 3574 bytes .../logo.png | Bin 0 -> 5690 bytes .../logo.png | Bin 26385 -> 17812 bytes .../logo.png | Bin 5894 -> 3508 bytes .../logo.png | Bin 0 -> 3816 bytes .../logo.png | Bin 52973 -> 29366 bytes .../logo.png | Bin 0 -> 4308 bytes .../logo.png | Bin 0 -> 5935 bytes .../logo.png | Bin 0 -> 5277 bytes .../logo.png | Bin 0 -> 2637 bytes .../logo.png | Bin 0 -> 5579 bytes .../logo.png | Bin 0 -> 4845 bytes .../logo.png | Bin 0 -> 5734 bytes .../logo.png | Bin 0 -> 5449 bytes .../logo.png | Bin 0 -> 17370 bytes .../logo.png | Bin 0 -> 3450 bytes .../logo.png | Bin 0 -> 5356 bytes .../logo.png | Bin 0 -> 6386 bytes .../logo.png | Bin 0 -> 3422 bytes .../logo.png | Bin 0 -> 4182 bytes .../logo.png | Bin 0 -> 3107 bytes .../logo.png | Bin 10251 -> 6123 bytes .../logo.png | Bin 0 -> 1701 bytes .../logo.png | Bin 0 -> 5717 bytes .../logo.png | Bin 0 -> 1912 bytes .../logo.png | Bin 0 -> 5430 bytes .../logo.png | Bin 0 -> 3560 bytes .../logo.png | Bin 0 -> 9683 bytes blockchains/ethereum/blacklist.json | 10 +- blockchains/ethereum/whitelist.json | 124 ++++++- .../logo.png | Bin 2577 -> 14426 bytes .../log.png | Bin 120716 -> 0 bytes blockchains/terra/validators/list.json | 6 - package.json | 2 +- pricing/coinmarketcap/mapping.json | 106 +++--- pricing/coinmarketcap/script.ts | 311 ++++++++++++++++++ src/test/helpers.ts | 4 +- src/test/models.ts | 21 ++ 162 files changed, 527 insertions(+), 68 deletions(-) delete mode 100644 blockchains/ethereum/0x79b0CFb685cC88d79b67Ee3eedB912E369D0969f/logo.png create mode 100644 blockchains/ethereum/assets/0x016ee7373248a80BDe1fD6bAA001311d233b3CFa/logo.png create mode 100644 blockchains/ethereum/assets/0x01C0987E88F778DF6640787226bc96354E1a9766/logo.png create mode 100644 blockchains/ethereum/assets/0x01E45B8D0c51f05F17385DD3416fE3aA5BFd89aC/logo.png create mode 100644 blockchains/ethereum/assets/0x03B155AF3F4459193A276395dD76e357BB472DA1/logo.png create mode 100644 blockchains/ethereum/assets/0x063b98a414EAA1D4a5D4fC235a22db1427199024/logo.png create mode 100644 blockchains/ethereum/assets/0x07bf5F95851Ef2b2996F192569e406A6FeA2a95a/logo.png create mode 100644 blockchains/ethereum/assets/0x0C6f5F7D555E7518f6841a79436BD2b1Eef03381/logo.png create mode 100644 blockchains/ethereum/assets/0x0e8e874bb30a5F254f5144EaAE4564C7F73fAbeD/logo.png create mode 100644 blockchains/ethereum/assets/0x12683Dc9eEc95a5F742D40206e73319E6b9d8A91/logo.png create mode 100644 blockchains/ethereum/assets/0x12f649A9E821F90BB143089a6e56846945892ffB/logo.png create mode 100644 blockchains/ethereum/assets/0x13339fD07934CD674269726EdF3B5ccEE9DD93de/logo.png create mode 100644 blockchains/ethereum/assets/0x13E9EC660d872f55405d70e5C52D872136F0970c/logo.png create mode 100644 blockchains/ethereum/assets/0x142aC3BD1C94898Be6e311b020b547A11dC03990/logo.png create mode 100644 blockchains/ethereum/assets/0x17280DA053596E097604839C61A2eF5efb7d493f/logo.png create mode 100644 blockchains/ethereum/assets/0x174BfA6600Bf90C885c7c01C7031389ed1461Ab9/logo.png create mode 100644 blockchains/ethereum/assets/0x174aFE7A032b5A33a3270a9f6C30746E25708532/logo.png create mode 100644 blockchains/ethereum/assets/0x17e67d1CB4e349B9CA4Bc3e17C7DF2a397A7BB64/logo.png create mode 100644 blockchains/ethereum/assets/0x19C9872640eC38c2Cf36C0F04d1365Ef067869B3/logo.png create mode 100644 blockchains/ethereum/assets/0x1aBdb309aa592f00a101c545168BFDF9a6Ec61CE/logo.png create mode 100644 blockchains/ethereum/assets/0x1fd27F0CfC6f273b87A5E0F6fCf063422E7bCD6a/logo.png create mode 100644 blockchains/ethereum/assets/0x20b1A8a9cA1c7302b7f774266C491C7b11622779/logo.png create mode 100644 blockchains/ethereum/assets/0x22dE9912cd3D74953B1cd1F250B825133cC2C1b3/logo.png create mode 100644 blockchains/ethereum/assets/0x2730d6FdC86C95a74253BefFaA8306B40feDecbb/logo.png create mode 100644 blockchains/ethereum/assets/0x2822f6D1B2f41F93f33d937bc7d84A8Dfa4f4C21/logo.png create mode 100644 blockchains/ethereum/assets/0x28ea81fac7b1719138cBf61267198155b433E00e/logo.png create mode 100644 blockchains/ethereum/assets/0x2D153f2aDCCbe9364F9e4eD5843308AbD0bF93dA/logo.png create mode 100644 blockchains/ethereum/assets/0x2E65E12b5f0fD1D58738c6F38dA7D57F5F183d1c/logo.png create mode 100644 blockchains/ethereum/assets/0x2E68dfB3f50Ea302c88F8dB74096D57565D9970a/logo.png create mode 100644 blockchains/ethereum/assets/0x2fd61567c29E7ADB4Ca17e60E1f4a3Fcfe68aCb8/logo.png create mode 100644 blockchains/ethereum/assets/0x301C755bA0fcA00B1923768Fffb3Df7f4E63aF31/logo.png create mode 100644 blockchains/ethereum/assets/0x307d45Afbb7E84F82ef3D251A6bb0F00Edf632E4/logo.png create mode 100644 blockchains/ethereum/assets/0x331fA6C97c64e47475164b9fC8143b533c5eF529/logo.png create mode 100644 blockchains/ethereum/assets/0x3505F494c3f0fed0B594E01Fa41Dd3967645ca39/logo.png create mode 100644 blockchains/ethereum/assets/0x35b08722AA26bE119c1608029CcbC976ac5C1082/logo.png create mode 100644 blockchains/ethereum/assets/0x37F74e99794853777a10ea1dc08a64C86958F06a/logo.png create mode 100644 blockchains/ethereum/assets/0x3C7b464376DB7C9927930cf50EEfDEA2EFF3A66A/logo.png mode change 100755 => 100644 blockchains/ethereum/assets/0x3C9Ca73d5309d38c6F2C21b78b9aE1f4b2441188/logo.png create mode 100644 blockchains/ethereum/assets/0x40AdFc7c23c22Cc06f94F199a4750D7196F46fbe/logo.png create mode 100644 blockchains/ethereum/assets/0x4129D3b7a6A2c5C997774077aC02bDafd1AF1d6a/logo.png create mode 100644 blockchains/ethereum/assets/0x41ad4093349C8A60DE591A3C37dcd184558EaAe3/logo.png create mode 100644 blockchains/ethereum/assets/0x430bd07726423A54f6d82Ab0F578CE62A3b8054D/logo.png create mode 100644 blockchains/ethereum/assets/0x4442556a08a841227bEf04C67A7Ba7acf01b6Fc8/logo.png create mode 100644 blockchains/ethereum/assets/0x45804880De22913dAFE09f4980848ECE6EcbAf78/logo.png create mode 100644 blockchains/ethereum/assets/0x4E3Bddd468AbfC6C88bc25dAA5d894380CEd5bc8/logo.png create mode 100644 blockchains/ethereum/assets/0x4EcDB6385f3Db3847F9C4A9bf3F9917bb27A5452/logo.png create mode 100644 blockchains/ethereum/assets/0x4c14114C107D6374EC31981F5F6Cc27A13e22F9a/logo.png create mode 100644 blockchains/ethereum/assets/0x4eE6E959d460dE47DfE58E5E6fBAB330Ce8484b6/logo.png create mode 100644 blockchains/ethereum/assets/0x4fAC0ccD9e2ed9fD462D42B66Fb81bA9A1f6F25E/logo.png create mode 100644 blockchains/ethereum/assets/0x525794473F7ab5715C81d06d10f52d11cC052804/logo.png create mode 100644 blockchains/ethereum/assets/0x578B49C45961f98d8DF92854b53F1641AF0A5036/logo.png create mode 100644 blockchains/ethereum/assets/0x593114f03A0A575aece9ED675e52Ed68D2172B8c/logo.png create mode 100644 blockchains/ethereum/assets/0x5B322514FF727253292637D9054301600c2C81e8/logo.png create mode 100644 blockchains/ethereum/assets/0x5EdC1a266E8b2c5E8086d373725dF0690af7e3Ea/logo.png create mode 100644 blockchains/ethereum/assets/0x5a4B14aea23A605aBc463f04a6B8Aaf52Dd3e7C6/logo.png create mode 100644 blockchains/ethereum/assets/0x5b71BEE9D961b1B848f8485EEC8d8787f80217F5/logo.png create mode 100644 blockchains/ethereum/assets/0x5d285F735998F36631F678FF41fb56A10A4d0429/logo.png create mode 100644 blockchains/ethereum/assets/0x5e040aC72140F0617bC24aB7134c0C6eCae0e965/logo.png create mode 100644 blockchains/ethereum/assets/0x6020Da0F7c1857dBE4431Ec92A15cC318D933eAa/logo.png create mode 100644 blockchains/ethereum/assets/0x608f006B6813f97097372d0d31Fb0F11d1CA3E4e/logo.png create mode 100644 blockchains/ethereum/assets/0x60c87297A1fEaDC3C25993FfcadC54e99971e307/logo.png create mode 100644 blockchains/ethereum/assets/0x6368e1E18c4C419DDFC608A0BEd1ccb87b9250fc/logo.png create mode 100644 blockchains/ethereum/assets/0x65cCD72c0813CE6f2703593B633202a0F3Ca6a0c/logo.png create mode 100644 blockchains/ethereum/assets/0x68D3AF29a900D21d092778A9D0aa4F73B1367141/logo.png create mode 100644 blockchains/ethereum/assets/0x68eb95Dc9934E19B86687A10DF8e364423240E94/logo.png create mode 100644 blockchains/ethereum/assets/0x6CE21e5f5383c95691d243879A86A6025E0870c0/logo.png create mode 100644 blockchains/ethereum/assets/0x6CbEDEc4F1ac9D874987D2769596544E0d9161ab/logo.png create mode 100644 blockchains/ethereum/assets/0x6b4689E4514957699eDeB2Ee91C947F18E439806/logo.png create mode 100644 blockchains/ethereum/assets/0x6bC1F3A1ae56231DbB64d3E82E070857EAe86045/logo.png create mode 100644 blockchains/ethereum/assets/0x70968FEAF13299d0dBf78f66860bAb9DbE3856bc/logo.png create mode 100644 blockchains/ethereum/assets/0x73C9275c3a2Dd84b5741fD59AEbF102C91Eb033F/logo.png create mode 100644 blockchains/ethereum/assets/0x73Cee8348b9bDd48c64E13452b8a6fbc81630573/logo.png create mode 100644 blockchains/ethereum/assets/0x746DdA2ea243400D5a63e0700F190aB79f06489e/logo.png create mode 100644 blockchains/ethereum/assets/0x786001c9c5CA6E502dEB8a8a72480d2147891f32/logo.png create mode 100644 blockchains/ethereum/assets/0x7BD6a4E7DB3A34c485A8DD02b30B6565e3bbC633/logo.png create mode 100644 blockchains/ethereum/assets/0x7a3d3c4f30c46F51b814BEe23D970A7c9b757a32/logo.png create mode 100644 blockchains/ethereum/assets/0x7d3cb11f8c13730C24D01826d8F2005F0e1b348F/logo.png create mode 100644 blockchains/ethereum/assets/0x83cAEECace9Ec5c322c93743B2B370ED58951F5c/logo.png create mode 100644 blockchains/ethereum/assets/0x843131b15F2Ec5BeA850aC5164D2e4a3749ad87f/logo.png create mode 100644 blockchains/ethereum/assets/0x85ca6710D0F1D511d130f6935eDDA88ACBD921bD/logo.png create mode 100644 blockchains/ethereum/assets/0x86149C67e57c749d0A12e6D6c2Bf1b616619BB29/logo.png create mode 100644 blockchains/ethereum/assets/0x8D8129963291740dDDd917ab01af18c7aed4BA58/logo.png delete mode 100644 blockchains/ethereum/assets/0x8DC9947B6662485252E49B04F2e445100Ab5804a/logo.png create mode 100644 blockchains/ethereum/assets/0x8E30ea2329D95802Fd804f4291220b0e2F579812/logo.png create mode 100644 blockchains/ethereum/assets/0x8F8e787989BC652eeA01A6C88a19f0f379BDF4FD/logo.png create mode 100644 blockchains/ethereum/assets/0x8b847669B2e5dD5101736e41dA8Ec38653065aeb/logo.png create mode 100644 blockchains/ethereum/assets/0x94eea9a484F0BaE03D19623cfe389E2CBA56B72F/logo.png create mode 100644 blockchains/ethereum/assets/0x98b2dE885E916b598f65DeD2fDbb63187EAEf184/logo.png create mode 100644 blockchains/ethereum/assets/0x996229D0c6a485c7F4B52E092EAa907cB2def5C6/logo.png create mode 100644 blockchains/ethereum/assets/0x9B39A0B97319a9bd5fed217c1dB7b030453bac91/logo.png create mode 100644 blockchains/ethereum/assets/0xB351dA6ffEbd5DddD1dA037929FCf334d6B4A8D5/logo.png create mode 100644 blockchains/ethereum/assets/0xB48B7E5bF6563B3e0A85055821A83Deb8CFc12f6/logo.png create mode 100644 blockchains/ethereum/assets/0xB4a677B0E363c3815d46326954a4E4d2B1ACe357/logo.png create mode 100644 blockchains/ethereum/assets/0xB8E2e2101eD11e9138803cd3e06e16dd19910647/logo.png create mode 100644 blockchains/ethereum/assets/0xB9EefC4b0d472A44be93970254Df4f4016569d27/logo.png create mode 100644 blockchains/ethereum/assets/0xC12D1c73eE7DC3615BA4e37E4ABFdbDDFA38907E/logo.png create mode 100644 blockchains/ethereum/assets/0xC8C424B91D8ce0137bAB4B832B7F7D154156BA6c/logo.png mode change 100755 => 100644 blockchains/ethereum/assets/0xCa7A0Be200c7DE43438878EB54B8b5D31296fBd8/logo.png create mode 100644 blockchains/ethereum/assets/0xD2bb16cf38Ca086Cab5128D5c25DE9477eBD596B/logo.png create mode 100644 blockchains/ethereum/assets/0xD536bBd5414A8C2beEd82a63737B9327D2FA35a6/logo.png create mode 100644 blockchains/ethereum/assets/0xD89040Ac9823B72F64d71f66Fa2DeAE7C8520671/logo.png create mode 100644 blockchains/ethereum/assets/0xDe4C5a791913838027a2185709E98c5C6027EA63/logo.png create mode 100644 blockchains/ethereum/assets/0xE65ee7c03Bbb3C950Cfd4895c24989afA233EF01/logo.png create mode 100644 blockchains/ethereum/assets/0xE66747a101bFF2dBA3697199DCcE5b743b454759/logo.png create mode 100644 blockchains/ethereum/assets/0xF6Bf74a97d78f2242376769EF1E79885Cf1F0C1c/logo.png create mode 100644 blockchains/ethereum/assets/0xFC29B6e626B67776675FfF55d5BC0452d042F434/logo.png create mode 100644 blockchains/ethereum/assets/0xa957045A12D270e2eE0dcA9A3340c340e05d4670/logo.png create mode 100644 blockchains/ethereum/assets/0xaDA62f7CCd6af6cAcff04ACCBC4f56f3D4FFd4Ef/logo.png create mode 100644 blockchains/ethereum/assets/0xb8c6ad2586bB71d518C2aaf510Efe91f82022F58/logo.png create mode 100644 blockchains/ethereum/assets/0xbF59e6fe2Bc4eE8D303E493390b4aacab16fcc91/logo.png create mode 100644 blockchains/ethereum/assets/0xbdbC2a5B32F3a5141ACd18C39883066E4daB9774/logo.png create mode 100644 blockchains/ethereum/assets/0xc690F7C7FcfFA6a82b79faB7508c466FEfdfc8c5/logo.png create mode 100644 blockchains/ethereum/assets/0xc9A954C5A302C45D87CC07efb1259Fb3DaD99ffC/logo.png create mode 100644 blockchains/ethereum/assets/0xcb17cD357c7acD594717D899ecb9df540F633F27/logo.png create mode 100644 blockchains/ethereum/assets/0xd111BCb8C30a600c12F4AF8314235F628EA2Cb3C/logo.png create mode 100644 blockchains/ethereum/assets/0xd24DFf6117936B6ff97108CF26c1dD8865743d87/logo.png create mode 100644 blockchains/ethereum/assets/0xd31695a1d35E489252CE57b129FD4b1B05E6AcaC/logo.png create mode 100644 blockchains/ethereum/assets/0xd5dad1DB7F112037c0c6Cf0792dc2a7866Bfd136/logo.png create mode 100644 blockchains/ethereum/assets/0xe541b34f73a4789a033A962ad43655221B4E516e/logo.png create mode 100644 blockchains/ethereum/assets/0xeBF4CA5319F406602EEFf68da16261f1216011B5/logo.png create mode 100644 blockchains/ethereum/assets/0xeF65887a05415bF6316204b5ffB350d4d1a19BBA/logo.png create mode 100644 blockchains/ethereum/assets/0xf51EBf9a26DbC02B13F8B3a9110dac47a4d62D78/logo.png create mode 100644 blockchains/ethereum/assets/0xf6ABff616043C2dA572573dCC583B656297b30e7/logo.png create mode 100644 blockchains/ethereum/assets/0xfB559CE67Ff522ec0b9Ba7f5dC9dc7EF6c139803/logo.png create mode 100644 blockchains/ethereum/assets/0xfDF574766BA1A96A553e175aEfFA85ad78063F0B/logo.png create mode 100644 blockchains/ethereum/assets/0xfE4455fd433Ed3CA025ec7c43cb8686eD89826CD/logo.png delete mode 100644 blockchains/terra/validators/assets/terravaloper1rf9xakxf97a49qa5svsf7yypjswzkutqfhnpn5/log.png create mode 100644 pricing/coinmarketcap/script.ts diff --git a/README.md b/README.md index 3177e4a22..031c650f6 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Trust Wallet Assets Info +[![Build Status](https://dev.azure.com/TrustWallet/Assets/_apis/build/status/trustwallet.assets?branchName=master)](https://dev.azure.com/TrustWallet/Assets/_build/latest?definitionId=42&branchName=master) + ## Overview Hello and welcome to Trust Wallet assets info contribution guide. We appreciate your effort to open-source. Token repository [https://github.com/trustwallet/assets](https://github.com/trustwallet/assets) (repo) is a source of images used by [Trust Wallet](https://trustwallet.com/) including: @@ -22,9 +24,11 @@ Token repository [https://github.com/trustwallet/assets](https://github.com/trus 5. dApp images available in `Browser` section in Trust Wallet and at https://dapps.trustwallet.com and bookmarks icons. [read requirments](#dApp-image-naming-requirments). Also you can submit dApp to our list [read more](#dApp-subbmition-and-listing-requirements) -6. Staking validators info available on [Trust Wallet Staking Platform](https://github.com/trustwallet/developer/blob/master/platform/staking.md) +6. Staking validators info, such as name, image, validator id, website url. [Supported staking coins](https://trustwallet.com/staking/). [Read requirements](#Staking-validators-requirements) -7. Coming soon: token info, token price +7. Crypto price providers map: [CoinMarketCap](https://github.com/trustwallet/assets/blob/master/pricing/coinmarketcap/mapping.json) + +8. Coming soon: token info
`o-(147Cym_}BJRQ|5JZhlc68GF85O|VU^4Mcfj%yK^ zls9to@ilT*E}K2iFs-H?J9qG%JK8LSQnS@bUU;ed{5n2AR5AT7m>EFQar*S>P=_xS z!UgY-4@QpmqSn_3i+^@b~>e0Q!7}ghR!SoGLQN8ME0Y)fDMW17adopl>LH+`8 z0mqFGQoXnx4dFLB3i(H#0 QWTlWmAf!zZGqx!&}?nRNf{>FGL z{_2W~RHbEFx@lQkq_Cbssj?gohY-pU)MwIC=$XF0PUF!>A35Z`RR8?vKWE#wZzqo} zTd-gOBS>gm4^4~I=JUBZiDdFqcIn{vyRt=9JKJM{5%S~+6u; (D|h#fH(L} z{ijZzJVi~kiSAKTbw|Z(SiJ@o{`O9YM~fLT;r1ewmx^A8PN6xJ$7vI0E0(CJVKBPu zy#SU J`A IoIUyp(E&y;vrLAjn0NHfCt10$C8wZ_h^ z>vhw7$;S0KqF^)(gHs=;&pr3t{FN)$&)eL({-2MpS)(_kDqfR}#Xp%hj5kJfy|%fr ziC0xsch=R`{HAGY%Wqda^X!)D$|`HwvWH|}U!R5*lIQbzbJ? HwivP}nfq zswzp7n)Y^Bbn7jU9L)ekD?I8ZghE%G9QcC0zPa0Zb56@iMHjph7=uzVB+#!ss05xL zPzA8=-%jESDfiC@!P>gL)VpdI6@%35-+f!w$X_yL_cj%Sd@1b5BL>FZyLYqm&p% z;)y5BbI*NGq`D?miMQunc_aTBOIXKouCu15#{87YlQ*?Ynsm$T*|UBhiD-LHJ@r&M zW5x`Is%>QQ jpB@0}WnM6ZcNqwh+m(|q&hR=#EH zHdYLMc=KC*h&rFHnrhlG&YGqA&CwmNs&eGuv8La5KTLn(8M^{|)l=6AG8!Bz~3JGy{V%3OCh GyAW%jq<33snH^l1nZj+elt^*=2{F6x>(2 z;f5RZPk!=~<~{e^J0I=E?{iH%E1S(~n>KCMc91iokRWb5S`>=jlsf0>N;UR|sj_g$ zqsm>$sDk}ERCjj4!r%Q4Qe8bDE2{jeueWuEdr+SW>ai8Ql9CnoEo& -^>&iX$1ei}zh7N`KL-`UBO6UMKi1q7B(#-y;zVqb#q3)0Mu!eEY zoH=a%{Q1 7(-nvb9-E{*@ zof>85o_nr5 QLeb+3JqUGV%Ds=XXv{2W6s% +Hgque_4Yte(N=5E<^0@0f`?@d|g8tyK z6`3s&%Q$WdaB&ZqA Jo)64A4YY~tgKuL>9hgopTGEslY-?6s;i7r`=(5pQlaUQ&*JQtIp>wsMgOW* zYZ$7oj-w@z(;Bdc478V~PMK bf z6a^7iFFSa|5c1+wWpsUf{TfP4IwU|Ib}(Le;e|XNkHgN6j<^tVVN{Qvhj0E5;G4ZA z5{a W1
*dH64G-gD9%XE8@z97JAyGn9@KmP2~!??3}i!1 z5kx9p_0$Vun62nr=h?TMRP+Y;3*J>;^n4az3?u>QVF>`vc5W(M*gEc&rudy&ckJE` z*`NOcK&j=joVu#U^oUVHvXFns3-gOD9b5OTJn=;8w&S3`@DD2(-}k=vY1P%$a$snr z1}oRw@s0K&RKs4K%jM!VHPvFl{Q3F$^XA>x*wTFCX{Vg>AliX^>eQ+5v5$RBz7ipH z3-w+=$?!8~%th%4m!fq13_iH{csk9VTfS0t)9>qN6}+i(RL_KJtucG{Y^X@3RN^j= z=+Lx&11$K%pCFnwK_rsJzEQo&;Lg!XT4s1-hrYNXD}_;Ww(;7EzHA$RXH$L^)B$mC zQjxnVsv{MHp4gy+$mxSM^QSvOP^w&GEvXKn_nz5d4T-4Byb#}O?AY?HHOC#tPFS_- zpl9eDE- u(X zs$?$`gfnN(QaPwvGy?JA5m |oO()2gHkcrGQ$(n zDDB@S#8wPRiwk$+cx_4^`0gBs(*K@)4)Qnt64 0@kI+4uCA}E`%z_O z#sAgU*Jp5@wRrI>$1dETLRtWQo_OL(r{Rm}|Dm>UEIvK0ySs<2TD``G5hb9n2Xa{q zYcw}ELrY5w=vWa20y*!2hhWCt_X5<_7P5E>LHR;}-#xoWbyZ&-7=0;mywt;5fU&sV z*Xx^CN_t@PffObcgK2WQH|FSB=kdz=zSFhg{W9CyAbt7Oz>b-0tEqeGfSQI5jG^uj z<*aR77$4i(*7|5Oo^3YX-h=gwUsf0|xZnaUolXm~W!7)l`avzizlIky*Dwr8iOVOS zv{auvch18#)z#lewf)g#GLf&Wtd#TT&p)a_q=I&%s`(8K%}Wx=#C7?6?o^JoYjkv! zJ@edhJ9r=RG)Y=g()?7^E@~^Qz)ZxU8KvQ|*Ix&Eyc#RAortb>bsZ=rsXRej5sKjo zcU>W?hLwWt2K~LQHwtzf3zv!^9@CQVUNy8N8NdmN1no@Msf2c;7#W7~A6|zBwV@>C zKKrMV(u&~43Xsp3Ci{<}jt%YP$yt1m96B!>j3^PQ+eG=h-~CR!`@HvkD;kM@2H)V+ z1WLx^aq))JUXK-M>b>z;>?+g9KfhtahWw&Mi{v@yoO4vDrNMIh?YFC%ABjZgCo3wh zM>X{g91ZGhHj8%S3N>^Z_jpy^{t3u&lR_1B>f|X9NmW1u)zjDf=z6Fe9|bE}f$FK{ zkz&ka8#*Uuj%8G^1EC0;H_YLI(dUf~X4>qfW8zS!O%OK6Lt3yE%c-kj>2zKg5k6_; zVf?0FgJ|6Wtg2$)Fxq$5NOCUImiWDF>;Kex=rso5;0$5@vcO0n;)fg?8;d6^s;-U3 zV(-UF6T^zdtE#H3H^2E!vZ22IFG5&fZ)|LAk47Tai6@?T)Ja2cx$?>@6(z?Wd+e(c z$<%d*kv|2$Qd%EdzG9_ CZ6v!Dqpo)eKD8Ngfcx z0{pTFpbZu{z;W<~H@qq=^FruKMQ`_u1xF1F_jU#Wa=+`IZOchTcRBOG=v!7)SLuC~ z{^K9PTJ{{U$@OaJxqTJqju@4k4-X6R-PF#FKc?jsM <>o {v(gVqML4j{KDgbr?Y;E<$_ko zab^Dba#As@A5@>D+s41|i`zIL-1=SAfyNJ4dL=)k{ zrd^xc!IqjYSc7}XVEn)bKEMsbh+2Xj$2I ^{OIkv9(q-$BJNY@|LL1r>Ae*KLg+Pi?I68mK{dhakE#fmaEZb*5pl-BpNZQW^F zJ`F}*kjna!!1%!revliM6}L=rGAdEu!Uu6Cxr&99Z2B?N#HpveR$#rlbJNC+pKfk$ z9!0y6T4+p2M5o+*^UcaqOQmY(BofgdqAL0})w>;5s_i>>LSJtmxZQKunQ&5dR$NtE z3zG&0;Z=YB8`KXEgNznEhQ1Uv7r=s=8V;h*ITMhI<(xKtX%r%zN}Me`;1%_UD@yWC zePIs2^QW+F@H$jzBL-$y7o;!yE C?sW#~&vn5&f>-p5Y4tGQ+fdLL&Oh zuYdh(PCcbZBGL0=@%UBv7CVOOQ$Ckxn_IW2yi@LYL0y#M6-k&ho`EIzKLnH7b}0~< zr{50d*i7#CB7>fAMIarntW?~m2bCA4p1WT#{^yfsVJfI+ogRQTxL*i}zMjfyU%Vf= zm8&58!>fVKT4-nB?8iX2B?T*U#P0I*;hZqPR+-RNRSZnGSnod%_+W<=#`nJWy&Bp% z(MU9Q3f`G-;-b?9_3De|m}%4GqD2c?JQ4rPa4vU|H9FEs`%Kt~{(>OVGt%Pm#3Tgq zTd2Z+1aBer3(NNG>4%Pv4%Pi4c)GlaM5EA@$- !I0v+&26>406Wlr>^UGH4;hRUzCiIucmFl`*1i%?^#-g& z%GEb*$`qi!UlQ@eeU@c@H6D*{+OubmoB*-3+;r1TS|n1TM`QZAc%LZwVFszF78>8} z?d{;U+Hf(V2DS}o3myB!voK}tCg4%WnL#B8A{Do5epeNhUg*FNqBrf$3!PUQs$&KK z;I=n4Jpa^zEdXMv3R=dFEb*rLJGLrp<5kO1DjM6iL-yM10FtSFX5Z{bk(4fnx<`*C z UX_+J!E|||MQmKcGy!9=# zZC0dGaRY6{qdJZlR?a!+9QMBVy^lxZ$?4H( dh89E-JQ9> zN?kWL4#yLS>j*^M29a((=YEHcn-pG S3W(|=y3q@uukl>N F&;7dg-MT z5;3IQa?34xq@p5;*5XHXu3d^CR?%PrhGDSIu5O_2D%D^%2$m6vK*PugoQSGv%k!w3 zCL>Vjw3nc99U o|iDvYF>Vg->xB&J8> zaJvJdMIhGJ*2+Z)Vs%yZ_Pmk59B gqwe8cO=k=ks!CDBGY#B!Z}&hE!Ups_N8>_2NZ~ ztm>NT0R-{8V96V%O`Dt>8yk}!`p}0aKnxTD5sMX%r<(Bj-W`oaUqgNU=(?uS_=)}f z{pyWQQZb7l&O|t0eb+sZ>Kg=65eMdR(G!SN(F=Jw!C{ZRUQ`#v!tydfey^?QwHF!l zCxbgu%h&tc-n^he`_SFC1XRy{9!VHFE(fz!Q+gBSSFVEmU+x2$&D#Cnyf`~CyeRJ~ zHAWU)5uSfdt=8B9TN8L!mhDsfJ18&`h;$if$0RM_ztJ`QZNf6C?Rhj3iO5BZ7g@D6 z)TL?uhG<0l7A{Ov@&fKRVJ8O4WtUy1;bh%<>u>0p-jS?GoJ%h`P1AHEZ@?Y|(J~BG zDUE0pmh9REC*E=gXi;v1n74{j&Fy}IvGRJ755_QC(S;3cb @WG7;aY4Sj{ibYoOq&a^*Z9ecg7MsQ&!vG`7}KL 8<&{@XIBWuiy4Ijx3$FXw4OOwIc15xx_4!;rXX!M6 zBbMRe5y*^>E9mOR({SR-H8Ay|hd?$olOYMr62+%UU}}L})v)4*GlEVV@OV(m<(~$m zqLM;XoG?a-R4jn$I9%L)-0t|p95Y^ZHMHTdS6y|^NiQIrwT6blSib>`M;`;((+R9$ zvYmT+h$Lc35nx3$#)TA}GLwB{!`!J`)NOtI@v?7%7X{ +9A@h3>zkv|#Mcsu z*ryD`pibeGtQkWHX(Bl{y}K8VeQqVxJ--#Kx=JWfKph)VLE{XJC%qNWrPJf!DM&@H z)2EF0wCK2TLG?;S*H&~LD$LVSls|M4+E%fg)27e`W58+S1s=DP_@Wns17Nncg0XfJ z$j$2jDw}{+CCm14b0~`dnXkd?OIy|-@=|`bVz6_pb>2KUX~l}rH^K{s@hxxpAdjbb zGNKvp#5(g0v|Hy FWWysbN6?o+EEF)|9GDq#=t?H0#T z!CY@AEpi^OA4XOfUasg(_1KCmWW?d%;59+VjTgp(eHhkaKWInNq!+*Io=lst7W#Ui zOGdg<(*Q9x24Z(Nn7i9Sv~_^k-iq7S0&A{9X-F2FM}2=OiyAtcSxL?Y$AtKDdNlXj zu_-Be?7DTK((wgd;n`=Ot?5{6BGLF6D2Xq_lP(piAuHo`wKa0mq)8$Yi89m7|ER9E z`m5dD-D2s|rSkmq&z}I%DS!X_-)ST&o=&GDl54L@#N!u7bp35;8zyPARBG2Sn$3Vf zm2`4nKP+6g5n5Wefo9>`KN&9tk#bL|g8D|KVuitRig~AQeyaP=BLUt0O5%!IDU4wt zdZnTd#3F=ymx}Ip|2j#ZO8sPNL}!`Hf}j^tcb7d4jDYOu1(_WJNYwyKChXsMFoO9n zvfw2PymE_4`E #A8kH-h|9i|e$RbezbZc|gE zNF K>l}~J(7BGP{+V`Z(PwU z6 !c|w72VuaM|vt~JQ8xh)7%2KqVCwel=z8~O`>)n`UgRDA$+}EAZZNA(NSDJ zhW7-ugm|Jjn2kN;^Pzl%2UN&}jWITslj24*FTSI7wvIM|8l_zZw%h-5#u;buhK2@w zDf8)ggTIe@)H}(`hYy@55(yew%}S*z=$Oys4fEr}1CuxF`g*wj`s-i*SJYupuDa?f zR##U?Z4gCmZGE$4ng3}C@e#BQ=X0vTC=hdaKO-m&r|#~A1* ^j-9R z!$@5!_VxA2y2hpy)|($_T>B7$7@_Q%Xf(>}>*}mjWs2U=?ZUDyz)J97cbCO~^P3+` zfCwsVp|`fSS~F+P)J;X|QR{r9`dj?F@TnYC=G(5|xCz>dZnjM!+`&A(s{y!KEkPLlQqYAn zVDl9~bZo|mtzt`Ifj}Es^!1_b*9meDY6HRm$meWNDD`9)DZU)+Uce6@3Aney?1spB zyhC?oh4^M)1#82_a`A=@(zDIJ3wiv8hlg2P00%+%zDFm)cB!uG7g?s2B+n@|<*BWy z5!3@2uFT*A{{o)lw#rn}T)%$3xZ{pHj*Po?hzi}i1q&8v$ePGz^W sB~sIJ|_qN_0z@z{7{Kn@Imh4oAB?orK~)HRXwMR$(pEr*c` zy5B{rescs0^8UP(mzz=Zri$L)e9iFi0l`SUebY!t){Y&!F3@9<@0o^KNvbKuzo;Km z1W_WO9HrznXkcHR%Z?8=H#b{XTyez_c-Ib2AshO(+iv6d5)(A~)5yrkLbMCN9*f2Q zt*f)MaWseTM@`on$Hv(F9Xnyha~q%vZ6JmKQUkfr2SX|;fv9Qz@gaOL7WehveCY>K zZOVK=?lra;v=udH;2ItVV~AALoD3Q#89}0?6C)#Fp$#Z^B7{Su00{@yf<0UEBMxnm zC6t$(J@{N?V4d`CQXCr0T~ECNSa=s6%UIS|8mH7zPhx^SWsm!~PZ-ZS>#PXcgC@SF z&x*#Qe?&Vc ksaT-NyE4}W-6f=H6EzP_IBjr`ch zJ|?dH?QfIubow(o*Dj95<8|#lJ$xWN&YSZFU);V6X0KQe)jj=K5u+d@nlG=kSfpxU zKwU+sitV<)D@a9W8}OpI4;X_|Q7v;}D|$-p#ifp$Lc`%;T+y`;b#H@TUA3%Nu|Sl9 zR)0U*fxAI=_SwxRsqr&yt1j~p+kPtC03=Eza|R?)r_`tsl*-^$9rV!spjM)8CLn|G z7o>DXHK9Y$V-fb?$Lj5f_d~c3!S3u`{bOi5nz+^Xa?<#5OG6EHyk@Z#E972bL_1NZ zzG@6ZF4m)wWq65oDE& (`>a!+y7jizCIzNWV7ktn{skJePTKmPHLT5oT! z>NX^i%dsEcbkkW;fGd-!%40_iBeHvN&_LBhKe4xu&0GFFRBqo5qP7A=BC4Qb-sU{Y zycc%GC+AHxsw%Ep=2cI9F#0Qu49+o+x>o|DM-uLjRCHBT%_AjC@=hJ^FL`w{X_SK9 zAa?EoIhMxX6tk1HT@~8>T?g#n4=)~@Sv75v%nk;j?M?Apjq)`qi9)yOQ~MA(ND1VT z97{?AXEV4ajh{IVJSUjQaY>_+s9%I4O-AscM5%vrT$Dt>5_s4oNoOv-G)sM&f|M^%Vc}@nP z(#qw`WM`K)^Z5;I_O>06+O$hSXjM9a`!E}bmQl!pKy+O8(hHyng18T 2!@p*0V4%<;nst%fKJ9_2TI8fOF$RrS`Px-CoDN6@^aLWqvJKB1G(q3 zS>yGAeo;x+*p0t `mtibwR7*{7(gkluBXK$xawgI~12> *5-5a09pE-knO2K$te+v2?=($Pb%D}CWL1>{k#bIRi06%# zsb9&tF~m83x$(wVJcytA`On!eKK*Gldn`sheK*$CNsF->yutIas{R*`MBa^+vx$$7 zTg^RvZ2GqCTEoh K0J?J*3`3aG(i5(ohxYDnrt7<9nrIspAG9Oe*e& ziW*FP15Y@^-N)B(*aeXnAhbclDnEh{_MsZuH(+PL6jbbkqBP0ke PFv5?OQYID2o@f%=-0!aH(5d-P{b# zvu6YBtOwTlw|&-WIsYsMHG=?njP|iH$m24a7UQacS+jT^v|0=F>6!%#anW(O>SVm! z$@uE{f+g7fQ+IDLOJIEGJO7)Fj0~{q`dF>5X PU@LgMfCt!=q}&1lq96spd1`>Ji@lE=vS# I(gGd04qr`h>y#<*8P4NPT5J(m+{{|m#yOqa^1j-DHX=)>8(AbVSgq^) zzcq%`T2?cvr{tPv)bbp4RO*B!kJ56DW#qqB+g|fX-)JA)`qZtjNDwc$;RZH)bd(LH zQm|GCzI5$cvH7Hv64P_JW9m$ENtLFZt!J`lRi!hN>N~rkVdqX+-_;9=u3iRYWmF|W zQu{d}{mvOLh|C^{1rl*v8hULg@TjNit5-$chg963aE4m;0vtEqz&-`&N5{Y-07pht z${KTm_YfFC`2`ep(^L;^%B*7??+AG%vF5YBoRnQAh^=_0^(N!%%?xk7qp!8=V*TwB zPQdGVntsc_oI{<;U~wfNjLd;iLYkzWq26~d^a4NisZY_c_mItIVcN85%rFc!v;vhr zWah$WpJnr^s#xUNXI&WO<5Q-H3-BHt*WC?IZ{MzZt|~l10+D{Rlv)yX+;^ew{B?wI zt{R>iMSl!0o}4vg6C# r z;q>8Q_~ZvZ00<+$2i2JAU0sdyM@HtS^7&WSTjI3X=;U14ET{JKCVCw-=KALrfbP zVKSBgiPBAlDE4L>QDvogTRd)iN~v 1UGQw!W5jF&_X7Dj1f6mm3U3_4J)Ya18lc3ky5g1HG_ z1Fd<^I@3EhskVZ%;Vm)__e&Xj4<{Iho)+)~JS^LB-CCS};kmM_ufCdPGD=HTAZ^>W zP0dq}d*kEdC0b)WYC}twEP=}}zr1jaH^2GKj7Ee;7+C;Dwf~OlY8h>BmrtI0s)Wlf zlW%|f+o@qdJb`xKQrz&Ajt=>6+qe5e8`OV|lzIg3#F=RCT#1WLbU?(HbyST34>W?S zuIDVv{7D~^-`O-cm^mkx6Cdg6k&`<+8Nuit?@BnGz5S$dI9{*Dx08m;?|)HmpF>gZ z$KQV(9LM?>Mqx%{0uoO?NpE@Cg(?NY$mV0^yXMR@lhen>7Bpls$0ZQLigf0r_@04< zjoqEmWd8t*3}>Z|0HW^BMLcPTC(4fz4{lFwDzTd&jK%G4F lGF#ID_zw( z*MsVKBw3(Am9Gal=TW;VDu-e-Dc5=9$+#)N=u=T0l@!k{(ivqJ5{$|wbfJA=s%YWO zLPw!)59w<0sCkrtZFnsk$A#E{w6B&XZ_Sy|{*RMpkIX|ML5+zw#A33)qXSai-E2y1 ziMX+OR5mm +TSX!Kp5ZQf$>4u3K_`rxzNFy@xV1RXUgC7PnB;NSu3Z*@F4@0s^kAf zqwLK~maw*!D;d2~Qq=8zO^sN)V~3pNhf(gXYK9FbpBk^L(Px9EpTIyYjTz$j$k52# zNPmB0ax|lH@(QL$ROJ)#6ej@HiGp^K3xTkQW>XcJg7%3dPH{URPS@yz&@=CoiXO=b z9_h%6?G~NiTm0qVE DnHZ*p=)m*D1`Leoa2)U8bz*9En}vXWIMIv zomrWc)^dySjY8A6rt1 #3})NpW4f z5MjKGY(zUY3Y yEJysqg#}pqCok?A11)C@+1zq)z z9O(ohRb+C?P?#d_LMW- ^=<#%5EP%To>2IMbsyo!TyPd~L zLtPvyRdi$w+_+eY18RSY3n8kz%oL!FW`XC;yvA62BqE+OVv)zQ(Kt#$xl5+UI-h>+ z3Dy8(TKAMGyfc^6%s3k0I%;sa97!Q}icw{EBvX_sKUI91957s z#zrUgY!~0rPG=5`h3Dph5%vKigun<0BOr`&b1W9Ao_tJ|w0J$few#S($!PIRL91jc zKJ=-$`P2mGRWXJt1;|tm-*$$eF-;gnX=&JK=Co8Omupt6m{dvKc64Y5vQz~y8X-7N z^@Q0Fxhkj?2I7H9MLV&^k%~d- 0Y&KgSImcytC rwSred1{~L6Z#;eNyO-K56&~?zB82=VunD424AS zSYvpxROLt-j}b^XjXM+Rwxf8A5u8wi7URx#G@o^jmB(Y`alL`xNrh0KwEkcJ`j^`m zj_-jLUTqg%cp)1f&uU}indvA6zQ8r@BTB5=KL}sunhPX3aV(}{jMlA5F28Z*W6zmb z)xLo=UuX!3;ZIZVT0zQ<9c(pFjv&C07Zm!H(#Q*$!7CZWX#ii616V%?upSO-njFNN zH!LLH3?{~z1$bk~ODqk6=ar`2kSG$D%o3DDVc`SOV$_O@36a8mE3rCN3*dEl5jAN2 z*Wn)ZxKkb0t?DQxUol3YMG=K4sznh4Wt~&?P1OXDu3bpYspO@vf1e%ZNJf%^ >pr_Df8uqN)!Tk4@-E&Qhu9dhxwpRPakh&*M{COPJTv7ue^;dCom8G&~@B zRa7MnEf6$%)!4YoIC0@Wu%do|663mMp |foEETI#&dtC5&5lXZ;I=r= zXU?3-$QeZZBoYbK?#IP__uc0j{Qk$~{c`4+XYz&y)XIcaiSqDbJrenhFikQ*)f>hI zl1_>b*Fu@zXBo!jzyJMhH}=k$-7H1qCbVSVYD&DPl$eMYPWgFG4j^+REwgj~7&+zy zxjXQa3{=4>d9R?5Nw?ZcOBTc4o*z-jALPt^?-z73B9>g>l)J<&`Xs=lWUd>;slTdU z1UqR1oIwK}uZYj~^GFcK22>zXzbX{6AWvvj3V0RXwu%(u9po+rXC_*Vb_L&F9Fq^H=T*|$6D5{}_-^G1Ey0)U-l48)7@@}h%1F#E~qRfC^ zoh**3AN{tWs*23cIWsbArnY3ZSEMpnH}a_KWs$fnK7=uR!w(CRLI@6C2T7eVoRsQ^ zbuf*v5J;ma%?LJ dE&y&3w1vUT6Nb%p}m!w@EFwONUf*OQB=Y481x Re4GK&?NHyPTHrs8eb^5e>R(C
YcH8X@bEYGQyf8?T1||Rf@GndKaRyA*DCjNYx)%7}wLgCd6G} zC-xOmf5CRkDXma?jHWUf_0s)UbZ!*jQ|JoSp^?m?fJQq9D0p9)1XfcG93KR$sIcRN zR0uq>soW3+*@QwA>_eX J zgh8W5(~4LuCNpRb_4oH%%a$!G?DN*QzLov+pZ}!U{knmn7C7~VN tu3Hw3cZ_s(t&K@djq*f agG z^B +033* zaBz^v<8f*}$eoBoVIq@`!W^hQl9#mwkDEgnpWEMCShfaJekuj|(b$ylI`0D?iAD5F z@J%s`bY{nBrhjzv=^>aPtRKWI<43pNaYuje^o8H6 Uz3Hfe^ioO1>~8%kl9cm{DrZuGr&83&7IdV9f{WBQ@-V7T z%MV^b5?cE&6&*WLdL1-WeAza#sAv`LgU4~?{qBX)1yAYnZYrE(Lpt9{>KDQl`~PBd z6d*D&s1*{37~|a|LafAU@oNdW2cBHCXl&uut*o}AgFpD@H^YzK`c^spx#wV3eLcMH zb+427!iPC?=E#j3H$p>015f~+#t|WNXwRNKBoOF@uY&X6`ObF;SS8)?J9S|Kvu4dw z7lPZes;Vj_?fyS|UjipZakgJo-90mVvC9o|qX>9{phiSQ#0wKO!7E-d@rXG-V-7XJ z7&S4PM59Lk#(Zkjd>)BMG{z(G#yg;RfEYYL F(*Nr{4R0LGU5c`4qB?Xi+!abW{A)PCxy0PRDD*4*-Qq6-E`))>P=M##RDm z;+XQIu(DQ>SX@K*)19{Wprt1*)wHiW?dwJ7=!5O_z9;loT285~telBQbnm_QZZJZv z)2EJ^fLJfsz3SPo-{GF{enS`BSw#XRW(ROcEpyZQ8X?2;GC^?fk6&Em_HY{RCWU-j z4z(2Y@3fgHskfm(GXN!paXbf1`z~}w0n&4jA>ip;L7g)PA0PBPSUJ<_2xN$z1eY^_ zv&pU8`Uf@ef*5eI2pT3uP_r+Tv6a*sYudP?5ku`~3c%QAm}$oq;}AM~Oo``Ftl!#V zIovqx69A1xPqQ7@)4eC){KkE3!n7&4&RmB|u2O<8Zw`Vvl7)BFW*Z)Raq86kx+P24 zP8AgbKFS+vYGj@!yuG*EPK$ZqM$pAT;D!k>Dg#D^o}ImW_eSp#MW4}M>a^2N(_OfT zQ3#z@L_neU0F!GfPhgt|@E8C&cAZ783b;Pt3aOy?+96LL(e4d;Uq#0QT;0r4jcvwP zsP}8fJ?Ajw>oJ|s)uFHYhFPtld%A$Q=v}C$PrBkpg^F(Q(IY+R>8GC-cu2K%EfZ5I z=eKmhFDY%2(54u0NcbP|+rH_`@Q1z%U-;w9IXk4&?%nj$@19pWwQ>{Xp5i+-w~B&9 z+Omg?6%v=LYZ&i8i19wXv;l=>$~3@uGSeXGkF%5jLmQx^0b5{z*T(VmzA*VdjNT{3 zQNs;O>WT?2SduGh@zesd=pI=SKsWT9Y*#5&`27ofh_F$CbGK$cmdk?sA&q#Mtw^~G z>s@b7F6} f3Ta!Jc@MuKfRZu5(av@j`4=+@2RxRv zao*!xQEFoX3l?B9`mM~YuU!*xS>&woi1xRd1qP-D+P2oXK3=2m^mmdf?SuXJI%6q9 zej~}#7%O{o;r@~~O`%Ibu;RM18D>cmCun+jM1|^q?z`vC#jA#lKCD8B>*!ky%g519 zAA`WHTIe~T;Y-hQCi?Vd&aPvaGiV?Iuv-*d?buB5C?H!IaBwBtxRwP_%*hg93XDi8 z6BbYluEggH^}xjY1ZX3GS#Tz}Vp2Tqj4KxCiTX G4R>{9yas{>;I+LUW*ou(D_ zQL31`!wBY1*poTi^=G0i6NzD#+r*+{f=ek2CKcỷGt|Zq>a=D~M6#Hcub5HA2 zY!AfHh@u8`MO;ytNdBa2!&W$J#}%!PX^&^D4UEOVU{Wu(+d2WG%KMRMYVT)*#Nq5y zqPdmj%PQEaVFT3rBZjpu>(~4J#>&bS9ChEM>?Q#mfG+|`ia}f?P=fog2$UirLJGUE zBCcdOQUXZQF7Q|YOz`goMl1xVEXT?lu4R3WS>uGa0JClqa4)z|w3D8-`6e|OjXOni zJ+m)I>$!&>dI;BHefsp_6DCXmr)MzwkRFNnZG~hC HL)w_SByXEcb7Sg8_jff$$x-7N{uq`M&rpaL#fN*pcXm{OMB zpNOI z1woKA+u&yeNOb6#iXvfJ3|G^@Bp~VN7p&v_^jQm3d Qu1L(%QG-yUamz|wp0!3Q(wz6Ol&H!=f8HGlqm9J@(CjDNOG zCHNwPfOK|8jG`auJo-(h8;g^Uw}K8$fL!hexo=!EYu0m)OpWxob17ZytEdCg7K_yh zX^z;$c(3j(eZ-N>9W^S_1LHw1ja4);=!;zm#lS12>xCVOoJn970kuOtQ59NH+Zk<` z*_H&ON`yCb07U(^jceMi@dJ!On6RXl0HX#We5D)XHzYhkr)qpmEKU9{84`uW=r z^J}|R TbuBt33lJe(j9z`i>ENFXXq#TJ zosJ7=z=MScAbJf+9MtbI@q3;Z{`t>;MyVJ6-h1zH0*W>eCBF*7J&Bv4e<-Z3YKI+m zU?fJuMWP?Xg%@7P35=`*FtWGbep_dGG?_3=(slWFzx!Ri{gFo=*(l@8#?Z%hIUI4s z5#WR#$*kKe?p#0soK6EyXbTqXo3w!*@Z5ZuKk}woZ!e=MbYfcYU(=oMoij179iAK< z5zm_dnL7L+mfB~ZD8t+iU>S*n?Xn##*Ghm `-wr-stTV3RzDL2XmJ#3eis=y0FIEbqQl3G7>S?|{Yu-VIZg+P z5LjeYRh4XPY*e;P%cMz@_%6Hbf(RCfeA;b+lqL%R%->_jj@8@=+y^cT+#cH2_v_aW zV8QLOfddDEV- 4v}dg!4802DA%Gb% EeS>$-%q>yDi&Em z1tO~K7>M>*Yph9t(OUW<=2yzW&kDf^9T7nE6MZ^603+Q^fH3h2E+F?Uq;Gh!4E%q; zH*tL3QNOxSp8LY>?5E%SP5j|I?zls9Aq?=5BS-Rg-g&3sd;nGw7~Q*f*YTP5J;XV< zFh-0Rq4yy)?S>m}V1ow_W_$0ww+3DZV1(}wUA#I10?K8=4FZs9dq#D2wf0paWDN`! z_d(YLw^Xmb`l?*AWQjf(5+|(a39%DkOh(nrm@z}V_S$Q3>i44Y-HXok?wB!S>H*kK zT8QlvJL3UJl1n*ry&mOm`j4LHegzT+o!SF`BhK0E=X1Zm@7}*%x? aY@ct=torM_yR${AWf?9XNA>tV}M9If((I>eiJm_ z`9C_v1;o!*_8;1pvp3$5%=q~%opa7P>`#CCQ=HASsg}b{B%R>?;~)PR{zw=Kb$0#A zl`D~5Uod`ZYis2``|Kkxz4X#e5+4yiN*okvSd|3CD*9e<==Y&(^`&QyzM}(a-yqsH zfY$rav1tPB9V9ZJ|M=sNf6{c8=u2*nlSEYl6vTw;P&u~}AP);rqMZN eg_rN@tJ8>pQEu}C!4;%6A^l7%8? zp*6KV2b9Lwn9voAIc|YC9Jbw8LMMzr14 qAb;&r zGw-n=e9qJ%#(Ft{rizY1QMDR+k7${mwDhLW^rrDi<1y?-`w%_T2m5JT1$?2feL$?n zGXmF!xQ$+#bWA;6_fgt@4sk@dIyNf8W<#`DzzCw51yiK-YHGT (;3tS(G`$|p#AiFIA#&+WAhMfD!fxaOyvW)~H>0C4^N>}h^I`Z)x zXP0jG-n=*e@8pxyjU- 7_`NZixh%y2OsONmq{82r$k*``Gqi@Y$Zj?FU^#;-{8g@BVE4*d#xuOnh; zsn$#&47=gh=vWlmMqD%^Xdq5jn`6@^rdsQ=NCRY%&oPX$ph9gJg5?&@d)mK>UO%E` z1ue^I-*URwm9&2?Ep<;m`DD{6r-Oce4PIwfhA>ApwviPDom+CF3_cZt5`lb~f9C zzPP-bM4z8OaPQxit{OCIQkCmmnPUnOIvTL?9RUQwVW~r=u+)SvMH787M@$+@N^z`W zaJ3UZi}k)z;%CA)SsZ(soB(3Cg=B@+Q&k91{gaj8im^_a_)U|;zlh`T0;{Q6iFHP0 z0^K_SV#GO>6UZRN*`i#w_0K9_|Ca~OKD%yhD#iV%n34`T14sal$Q~o&q+OK=l9rL- z&N0BzF`g`nZb8_YEn#63g8>Sgb+5DS!M*4>9dZT$(R;gS(BW7dV*& xU z&;daY{rlhl9zRG}a5rbc?#&8D5JXm{Rh5b|;bpJ&T=y7yCS|ykBLqDRbsdd?>+Zkz z?%GvDM;+HqIKOUHa!_8GO6&HvNX+&2+JmJJJ2Wa0pR`aK>!mXBpB-|r0zELv5lgr& zk_Ml4E)rvDjWhHU&i&+lC3VGOP8o}%hAXz~mr=wOW8;m<3bTOarrL*1_evOQ^qbHC zu?Wn`cd%4rOG9<{b&GczddHi4?EV--jTX);Xmq=9-ZS*Ta^WK9?wC1ayubYzT; zm_eir023`?8M5&S7HMKVIG-?y1sXuK4iE(fOo54t39K*Dx;G5Rvg^5ovtB#y&1*BZ z(Sp(z4FD5zA?dvOmGr+BTAGnSOk6C4!yZN>aBBELF}b06(~1=<*wCRvp$ntkJ%Ff} z1Q->G*6NqP{AJs-+>Er@!3eT|q=~W{2_?TGN#rD{AS&p<@+I`+T$Xd)dmg&;|C&|} z9(i`T<6M$MnFW*3qphh;4a^xngk_FDPRE}rTX&@$S4=qn3-rK*xM{%{gSA8iPO)ej zi?tnaL>umwbmm)EMzJ^@`v_HnW3sk=#X;aj;$$q+>R*f}45tZK1{Pd9U*tz@Th}Wt z<}i{1KiG8yduy*Tt!t~htrkI8L7*uMqc~8@@icHC(vj@wlWeK|fd)L<|HmQ_MNu#S z5iP)uSz;i8Or(qUF(S%^MUgP@Puf_|*4Wuk$C*rg?eM21OI%v}EAdLC9rru#xMK*; zge(jI36U|-U2UEr#8S9H@Vai@I-O=kdZ_jjjvhUlmjI(8Fe-o%pPxE)D&J|RojSAH zZdTeNU<4VX4vi1qQ#kHPpk0wZU+ zR>mqTSo+8#n78AIB0W(hM9YNHCdna-fo2Ul$z$7DR*Q@^NiZfja)BG8II>2S&}~Zr zF&0mYfLK&MqX3Bd7fb4kZD7>Lfg{Ei+2px2dsP`&K3lSjmrfi%_xW*SS$#T{tH6K< zX0+C%MZ3U+m1&SL)N%nx=r|TdwiGNTw$ttdNC27~0l Qa041Ra3EX}dVSTZRdGRJWO*Q?e(v14tfr<$A@33UnwpyU^5x5s zPNj`QCBTTpUq)cm`H%np_rK!@di2pp^V-^4K5W=9_#rhH#5oDnI%9;cso?ORJ$v>R z2jmt5BM5+$dT_XXNK-$X3x1l4(o!G_Jx;&+51U!|&YdsM?ZI8~`xNKj$eC;q4ajUW zbN3v_(o?5KDNkWhbW6LO!S+!y#i4AaxMmWJ#nC&Z{Ff1+4LB2eVhqFrJyEg3C>vH< zJhj^`S@D#yjRPY%VgV4N&vA2s6bT)U;Ip%>xhwBK^TfGtckj*y*VW~S<>akMNTQt9 zy-ZD)5Is3xeDOuy@D`TOgAO_f4s;GbAO?3Sf^Qj4_{SfATqoy3>`T)0>C;hr)ZBJ- z|2Tg4-FMd(QTYBg1&jj*4A9)}$tRy|2Nt?E-)* 1Ex#ynSEJm8nXp4do^!2ZQT~t+7@pW|#eTXT3kMzbf=!?SIML&6X z2Z^ue-+%8t^=k%=9_qRLYKOD0v?975iFf&&E^U$i%Hhl%I>dmijYF2Qo_44w7KFN4 zu2-l>#^*0~bEvk@M?T90FfGTlKm^60RhB6w0LV& y0*T#7eVZ7M>uCdWQDam2-TGX>g%r9GoNLLF8XMfl;GEq9J_Z59;V~Cs x4JgSO^>~m5cO|T+HuK+zvC*bN z%V|5(cAEr8#C-(q)1VN3hSJJfn^fvfdbv8)SUdmm+Eqc_x4y*)jA|$=03$PC)a#pI zCDb {;*)5#E~eVeSWG zT3YUEYVlL&EnKp%%lV%Oki)Z@bI_Qg2c9DC=#3qti|O*D`=B7IrUVde+-cHUDm!pt zSb$k@>vg-mM8HAPVAIZxVZmra-dN}2sR3Z8Km=JZCiTSj1|Q@s!C8lIaWmcEH7)&m zFI`fZ34V9vk#Zb~W#AHU+K(MORvSN%Z4dCkfu2hw8_$|GD;^`zzebN9t=AD(it8hO z6HQ-G_Wt(UZ&wQzEKsIziv?rBy%{j-b(`sL!3Z!xBu*YroXa7xHAVNNt9{b~fK?d# z13(5pBP1 uT#Wq{5s_I?CB$5Y&+PN;nJ-dF1|k{ *yohQ3;l1bAolRW|^;kg*kotM41On6>_#B{ji;Nv{blTDa&fHktpVf3DL92Xj58G zlx _+N!%LQvj>@K+km~>4!dzs2gR<``xn2^jcCDga3K`^>9PK z(dCz4UJS-~9WkK^Fcwr(E2i&$_q+7-y68iZLfLzIElZ)EVm=Q)Bb@O7R5`!}V8O3w zob>Q3!kMp2=VQA8U%5$2#%soaOQ+Eqqo6GcrSl_|t+^WcNOe4_R)(XTMkEU(MPnTt z{Im_7;Fi&O;M8A5>nrK}t7&`f!w)}Pvf%KRpsfl<5Nfkx(DmruS8>T_cxmr^dI0p$ z*{ap8e9spixohc)?S_{-ZtB~v5Wl96q(WD4wPKwR<91=0FCP{)iV1>*ewWO|Z!ew} z7 RsG5<$}(kFrCVD{#!Vi4@WEp0)Tu6U#5C!Fx<>>7BSXIh9QEKr+K PtPdiscYjf{*;yFdV1 zWMUwb ITx z=8J2iV_1}puO0p77+V$1*ot_(#9Z8Jy5`1BT&haEj|s*Ulf7@(b*!gdWJEay7YY)F z70c4dgkv87LmB->x;89HbttKiG8c%XA@CrA2H ma<6NXT|2m>L6dKMf`;dEIK7#be-J`BgacrqfaKNz5r&s{Q zqJVK#2;>5PVp5Dv27y~^Xouoy1i08gSRjffwt>v~+W8VKB^YA?*~!7|(mi}pg(_5H z@q|6X*?aAwczL-lmnK AnWNL2Fm^f` zUp;&F $NyFjLJlbr*gZt51<{{~Lm(kG}E~O_H zaLu;udU$r={BJV~C5%4B)dZ5FY&)))G}vGpE6@pJFtfz=Sg%y=T@wk$*me$8aLy=g zK}eAg!qvkEz4h2Z2drsMr}8P%jY70ni?Ze6OVmC@IOA0mDWl6@u&CKf)@0)&JS}$O zGnA`BiUjAa<{0hJXU6&8($eCSUWnJAs;VletgQ5DP{%>B-~RTuIkM%UUz%LT_^Y8b zBis!D2wq{0{mWneQVcGB?z!hO0t{cZYE=xzS6_WqJM?W?3>bo7S$+BCm$hFK&yzTv zP7Jn%jlc4huW)3V;Oii97{){xr0Cv| tz*E-94Ix%_q;AzgKsc|B6P@ge*hcBq{8TS?2AxH*-gijDqM;%H0B~9S~(9 zS1b_#UTB>)?~@MwQr1(;E#shXSqQFzuEm{LPpvM=i&$Y%VzH(IBars$lYA+hT;M;r zVC OieB8EW?pI)&62fju4 z94%qsgWEu)1E)dRe7G2P-g)QPCGxkw{f$5K%rgKZH(=xzjIiV)AsOJZ)#>5)L&OWR z_e~0w_I=KtJzJj}nfl0Ky!`UZ+bmf`C!TmBL!2o}LE^lq^J{cK-3MdBgbBJP4McCF z4`*lsv4QGX;MQ0}-|6j1lP0On8Th@a^r?dp1VFy|=9|KGGbs{xzU;Wp`3l`%LwQL) zuO3-mL|)zYy+HXb9tyFNLeT1spW?4fmi@sP`h8FFtNDM2&B&!l9K1pmYFS#f4f`l(uIGz z-~vT@lP&~Ix=`_Rj!%Xb+VkekL(Ld~kpol~jEG3FQ7`nn=qMLd?uKy#Tm}2En0!B7 z&I0Fw=m&uQ;~)QEef##+K0gEzAaDTO4~2;F3V$TBA+EXRnz&;yUWvQvPQytm0;95E zG-9jcA h=qe3{n|HVK5`OintIqK6C zS3eVA1fi+O`|rPxu>K5<`vW)=KSlOHAmxntE`Rp@Zry^99)Ir03hrD ;PL%)xxDkMrB>3?F9&irgB)aT90E7T( zh>;lZs2=~yE3d$!Xg{x(FJI1Yy6Gkzje{6aIzLAqBlZJCAc%mbSqyvawbwMT3>ae& z8c-_YnwTi`7nweNIt)oDXskhH3`{8)m*5V8g%_4sI=3!JOxxqm!7%! K-zuCsAFjA`+xK-yTjzhLj;-#=IpqA8;4B#6oasxZdh2n zI4IQrlJT!adSN>~(Si}wX=;@Dg2m!#DZ@=tPfSu$Jf(LjT1~e$Eo!N#Jg3*9w;#FZ z_~TuF)F`<$lhOJaB2@s$&IsZs%4WdnZ@`Fbb`7%PK}qj*?+G}@NgUJ`SGX#WUx)=& z!QoRxIu)H0V6v`}Wbt8u4cl~QVHV{)mYF=oG6R}SQQDUNyg5&DNttt`jJw3)2_Ff5 zD;c>%lnG`x{zcV5o7Tf38wCD~^m<)=eFJpjE}gLy9d_c0j>@W3rBHhi7=J;75Kh|j z@4N5)59bZ86@8_9oa?#Q6BH|vFvO+O @Tj`D?Fbe79~0uJ1tTIsl72;y z{Y+=pQw>`CnS{}%NOvqHmPW6PwfP`RP_dseDW2-@tDCZ_bv2cLxc`s?|J*I*xpk=& z&|#B+BVQh>dJ}+xFtqLrU40wfdRgQoPnm(9GW)daLz%u5h)Tf#FCO>+TH>?1$A#r+ zs;$2Tz^g%`qN2rd0~r>9I=)77zqv2l%QJTQ7}tqjjCB`sv@Ke!a~tWsc5`s}86$`O zdRpKPfm;M@o?cOkAN5vsnaC9+9W)}n>eB`y=rak%$)}#mQ}y+Ngnifb(mT@(_iL{B z(oCR!erQWw!(p$zt%8cOZ#crcmd2|WSU@72l>q7NFw8i{tsYo9mQ{1bq>s^xnKn2a zWVvEd)J+>#OjtxqiKxXuWQ@f%RNKp C5DJpPPvwi~cZ zttd*Tq-&z2zQ_uJ*pYZzic4B2yS*R5l~bQ(Eu)6B=MJ6B*4I=s4J=y`ASnVDy_VuI zNpKXuH;Xc#)8+J8lu&GY(_25IE r(k}jo8Ft<5z4V-BOp(r= Gtl+jbkbOkBGL^;uEa7z-lYQ0{TuxN!_cj6eG5qc~w0dM)%~SYc7& z8&$zUu+$D3G-#{jC~gXUrojk`l9a*pf?kZfw<;kYK6Ux>8)#ZCAHQ^6#ufaB^dnsm zV&Fs>?_9Oym@^W999G)ZVZ~0H@nGLu(bCpJ6>Y8sEmr3J*uWE8PZ?_iVgZN~R#r<& zwH;q