From 97262457dacdc50a81cec67f6fcc115d61c63b7f Mon Sep 17 00:00:00 2001 From: Christopher Jeffrey Date: Thu, 3 Jan 2019 10:44:41 -0800 Subject: [PATCH] tree: update tree and add faucet. --- etc/faucet.json | 15 +- etc/tree.json | 524 +++++++++++++++++++------------------- scripts/merkelize-airdrop | 34 ++- scripts/merkelize-faucet | 10 +- 4 files changed, 300 insertions(+), 283 deletions(-) diff --git a/etc/faucet.json b/etc/faucet.json index 68c7c1d..a4355ce 100644 --- a/etc/faucet.json +++ b/etc/faucet.json @@ -1,11 +1,12 @@ { - "checksum": "c279a537100edad6fcfd6f9c0aabff6a71404952b40d9e73aec2b3296b3aa4b4", - "root": "ce58fb15d295d5b20d3c6b5f15d9cc9e4a587fd1cae6d4e4f5a3776538cb1aa1", - "leaves": 226, - "depth": 8, - "participants": 0, - "faucet": 0, + "checksum": "bf41ef1e9fe313e674eb32dd95e71338c01be9fa5413fd8dbe99ba32c416e16c", + "root": "4c6cbc2f051396836be7cadfcb5ed64f9b538ab90f27aa06c3a5333c2eccc0a1", + "leaves": 1348, + "depth": 11, + "participants": 1152, + "faucet": 7210996294824, + "shares": 1554, "sponsors": 67, - "creators": 159, + "creators": 129, "external": 204000000000000 } diff --git a/etc/tree.json b/etc/tree.json index 7843f5b..2b44242 100644 --- a/etc/tree.json +++ b/etc/tree.json @@ -1,268 +1,270 @@ { - "checksum": "03117cdc16ef00a9e32ab15d5e08659d6ac58592e1f091883d85c324fbbbe858", - "root": "3d1bddfac73e3a4f25468ca038731e9498e1e6287d6534087552003cd99d54e1", - "leaves": 204178, - "keys": 898660, + "checksum": "c8445cacdaaad918fc3d84abe75c641898900b3d43ace31549e86f01fb1bb12d", + "root": "3283b85aaea4738f936b9fd62251b4358683a7ecd2b930d228edcda7482c4a45", + "leaves": 203606, + "keys": 895962, "subleaves": 60, "depth": 18, "subdepth": 6, - "reward": 4662598321, + "faucet": 1152, + "shares": 1554, + "reward": 4640280756, "checksums": [ - "f7a8fac23fba52fd9909ead79c220843cb7c82540398cf66c6881155d58ed572", - "1d87b033c08a76fdd3fd5f14ea83aee80f413a2987f04e6af169c07ff3431ab5", - "3686697d643c53ddd7378ab3cff0864cfdc925cde31056cf0259d0a4d0ef04b6", - "a14b5a2c4655709b34eb130a672f28165a86e206960d4df465a89d2ee9589afe", - "27feea9a3c1a5d7422afeb4e69e170b2fc9b65b0a303985807911d9398392f51", - "e92584b2620df04132bc156372527ad4bb0398df8c4f3bfbdfbd5ad5f132e812", - "2a2f12a01723b4c41baf48236a140bd28a7b92893faa34b247955d7f5530e9d3", - "7699f62a7a035e9df91c7ae06d4d23a8033adf72fe482bbf4802d116acf6714f", - "add4936808b1c4714b4d4e35aee2f7ea2815afbd5713b7eff55beafa59f83749", - "9bc4930496d10a09c6f69df3b5da879d79bde741c03ec576a9e7093d96a64dd6", - "fd8a7c6c91a999fd8f3c47d490152e62e085171568d7731b72fc8764da9c624e", - "bf3218c56765ac9c749dd68258e9941ac48db2ce457ffcdc7890faeeadb93791", - "7bdbb1652f0ef36f40e1a8127b671a12c867b910e92bb0e1c83fe9a282948f41", - "6fe64e2b736303fc9643f9df36dfa43ba3eb225ebb9f401f71227d26ed587190", - "297c56b4d3fae0753e1ed83fdb15a128f56533b23b40b51fdb7face32276e153", - "0ae643df768bed229800ad1fabae1924b8876d680a1944b78ece01a3e71d1527", - "baf1f21670fa6e7a6b6e10dac4d1d1b8851bc5d9763d571781758b04b5699150", - "5a8027c57d93b6d7c169d6875a35c5194c4dcbc63e302ece0a33c0eee9fe7cac", - "7e9c44aa42659d2cf3bf57dca0f316194d3efc3f014b9e967d590644b865b957", - "9ff18e586f97d236c055727ef37f2a63943544a9cae51d523ba5ff9ab1e8cfbd", - "0c35e7d48df01d4132bed1b840c0f46479b0dd3936c787453b938d66a0f4a2fe", - "e3c8d92e8014f62d7862d35e5e5d48c312c7664682650bdf924882976a2d617a", - "d7f994e33b44021e4f313ec59e0d835728033dfabc95106bd016e5e88d3ffb6e", - "bb0e4790f004897191477c38f0924d1ee9b27e4fe3fd161ad1ac87a4496f122a", - "2d2aa2f54292d2279e69b10fdd59c6bd84c4af3ada1d934dd15c79af68804847", - "7ba08d9a3785267eb143e9e433e5fd90a3fc3a1e5e927fc5e8d4b3c430599193", - "2c600aaf0280026aa9e94e2b02696ce5ab89826c13e54e6ef1ed9a7dda0ed54c", - "9b3d66b45b97d9cbc51ab79a2e9280c3b25d172f3f3db44ae2455d8700f1babe", - "ca63fb0634be2465d8e2e06db359f0682c7d327962a1fc974536bd0910cbfb2a", - "eec5ec07124c0ffb48fe4de43efb8ac01dab4cb89bd17b04f7981e11390080af", - "1dc7261d16cf4451e971c01b67487071a63c7fdc420eae7eeb20429b4650f1a8", - "887f107173291c25be939bbf161d3cfde645d2c1d90338863607fe734654c2be", - "3a2e02352b834d4257f45c929bbc25279afb1e38bbe9d4a92a90e9a5e703a26f", - "f215f495c1703d155511895919f68f5b07232a6f681df9777a3d0e6c06bcf31a", - "af3f15f25032e38d505996d62f6d84c4991ab008cb7505bde408d788f12d2fd1", - "e0aacf021756ae18979d8a0bd5c0a7540323d0bdee81a1f3499334c18c343285", - "384971c0310fbfa32ce308ce18bc39a6286e8b65e6ffd2acd0756a5347a0952c", - "dca5b43cabec7f200f5847b13b551d52ff5874b30dbcec94372538993447c3e5", - "0463ff3b0406e8beeb08fdacae4405c9efe7db7f4b1d83e5ff97c93c0bced3cc", - "f174f1f35f0258ac2be170cbb17a78ca4c193396d73e8568543a5c712ce7d723", - "c54a2a43feec9d67682c15868f185a2fa32da3d0d295613ccec37ff6499b6a28", - "7e974658964dbb39fc7fe14f8a0726948265464f74cdf772a4ea8737138334cc", - "b9233d33bf718e78d927274a66fb8975beb4570c9a713795b756cc73e5567110", - "09ae0773d0bd2dccb9e8e4b26123abaf9b943e80e2c1624c1548d368a98e868d", - "54033b6dc02819e491dc698230a0483a2a3138568925951b5d19d8384b76b985", - "2b6820679404ecc0ed04a02f9dee6ef3567cd633eb6adc562d18ff0be3074ea0", - "9c043229f609957b3eda490dbcb9f718cdff3bf03d982eec979d124e10df1f70", - "6fdd54aa59692754e5ba325b0192ddb66445d31f2dac57d176885c62ca4b7f92", - "efe4ff72bda1279b972e55c93fb254daa67f81507ee0b653bf8d244621ffcaaf", - "d690e9a0fee34c5e99ef5058b308d87af8953b43388cb6e2b1f5f2ab8215bdde", - "f1ca11a277552fd977930c6462a7c227719d63611faba2c3de8da1999f9816d4", - "4ee6643f0d74217d33552a3d45148ab2b27117389e8da0130990ab0b3142001f", - "e0d3fe06d5373a77c6a1253cf5818e924a51f8b92995b82942e6d8d82cad8041", - "0148c410329c4566a4ed1b281b3c6d5bfaf617b6f6f9d9befff9f23e2c15de5c", - "7c82e22ef3cc885cd0245fc563c5405850bf081b73ca7ac19ed935d95260f6bd", - "19106d878bc99e3b8b3adcccbe0018a1513342322f74d2b0517fce4ed0e763f9", - "7ae2cca3a760c4b5fa0e8e8be950c1d2e0962fd9f1d88fff50f4579aab979586", - "3cd47fb22dfe58ae2a99e20b25e7a78c502e857b072684c49a14c6e9be84c1e1", - "0e22f46008f7dd93d8b80890a9e10be93dbb0a0cb20168a38b7c285e3f0f136a", - "56bc124f908f325cb73a1862206350d1685a163816337dbbe45704a434939233", - "cc315b7dc7db47b8a8b10190ee3a447a0acba44e0a8288662840762e6e698978", - "803a3b11369da6f565cadf0f310cb7ceae3b9b564d55d4d0f7aa3c6ef3c4a207", - "4a66743e9b0109304ec46559d4e7f52075e05e6e7ae6769b7ff015757ed072e0", - "16803f3efcbd9558de4ad8a1b97febb758a199eb1217c3bf3a145ff58a53b325", - "75ad2ad250af8725772caa9393b7d4cebe35671664cc0f8ecd5cf8cb95045cb6", - "ca1c4e84f270753d76a07147d823e586a43e79dc6031e0fa7e41ce33c7b92191", - "5d4d7cbcdb9fffa414eb54af0b016ed0b1dcd7c36279f24f2279df770ab4ed0f", - "42d040efadf7967282c26270ca7502862eb5b572e98104575926da775a50e1f4", - "66e4fd44756618662713a3c576014150533cecf9bb1fd568d23ad503c4b30a90", - "9261b742d96c4759e6dc1e34e54b01f6888584b1bc0f685117ce116e9caf864d", - "495bd9a761888c3524238673cff305dd3d353fe389f9537a9fc477f16fff820c", - "11f2ccc949a9c8e9237d7d3577303276d9af46588f77f569437493e4f917be81", - "171f839e4c541d69478bc7ae753b23758f07f94b98178d289a92107229c042dc", - "a64e2ec7e63ec79cd1f39a78ccab2378c0a78c9364ffb5246ad36f870a899937", - "167a906d5e99ce7c5d4ebd417e32a9f06045a7fa1a270b18486f25cfa40a28c1", - "65634bdf9a945c11818b46e074ecb7fe17e52cb9230804cdeec3b4ab548cb9d9", - "9003d325d7e39ec4294fdb286c4fc6f4488f9f332c282934d361d8fa37f488de", - "acb32a85979eb9669ed257067b9f033efa6821280be49472a0e39bddb9142421", - "02c7004dfc95080e0f35e7eccbb0f21762f8c59e211e9739fc1fc6092df7182c", - "11010ee4b950835174fd163408504c0cc180143e6783f0e00c1bc9c2b14a863b", - "fc5ed4b8e50cad967a4dd4677589666ce5d659c863dace3edde176c3be86cb03", - "ca18da8420aa422856f7e8eff69fc13918339b9240d51da83b729eeb4709c350", - "40578ec33b3f1775f0986d6f5552851c0b3c410767013cddad5075d5c1927b5d", - "e51f07732a72287c4a1259746c5dfb81fcd44baa393a2f4f96c4343b1382df3f", - "200ec37bbb5c7d64967e8b1a8e296456a79b1c4a0e406d4ccb2115e576cbb5e2", - "81743ade2092b318dec6979b1af7e7a83290cefd3f46b01d8d29f49109d57573", - "0e52c6d51f5736724f7e1b7a32860279116c73a0c3064ecb3f3d9ca329255dd5", - "4393ba93a572509549d0e11f1385a511c862295132a5ae94abab28abc83ea4d3", - "3fea16971dd04f9fae2d41dcd35debf2c864ca8244c401db821aac2dbbc4e8d2", - "1c708e1278df57bfa06067d2607a096066dbb4c5088e6e2a8e37c3bcced16a0c", - "4bf621b733c1f3afea22263234396fe611b7e3224aa19dcf4f15693118312fde", - "1df9337e0db204b1a9231f46ebc2ff93dffb8ccaee54a65448662520cad47630", - "42e9ee35624059dfb94caedee7d7e0f5a6a26f9b3b16d5146d962b7f1e94e6f6", - "16ea49536a7f06e0263f8f29acd74d89265ea68b93a78c2ce05591a7b65d8084", - "8d9b3a7999935d7ff468f75a7a7f614a0831ee2e241c49251bbe5b918d1dcc89", - "af0e61e29228673b60cc0e3da84d4809638be9fa3af06f23ac0daa6396d7d6fd", - "835c86540488c33fd288c425d9b51d17aa12922b16372a3382af23159da61e5c", - "71704e125d9c2d3a1021026e5e2658a9e93d95b9c4cc38e1991bb7f9080ddd0d", - "0045958402e3376b61d50d36fdc6c87642bc691a535e70af8ef415fab64b2657", - "a5e497cdb8656452cd54df1b5a1b6f4ac570c79f1ba1ea18b54cfa08c72cca6b", - "887399146cc19b1ca9222f317791629c5aa1237b45445b26490d6aa3ad3401ff", - "ab9ca15b03dd81100d57975cbc55816e285a4258a7f15cac86b13d7d183e3d02", - "046bda4ef4e0fc1b1691be8f5fc7f3722793151f81996dda99ad008fb44f8e93", - "f8768b8341069d8444bbe3a8d743b068828ebf5226ee65edbfebc6bfebcda751", - "f19df63377f5fd16a2559a9008d835ec6d4f198bea01e81d894b76ed9ae7dea5", - "4b7de0f0567b5473f0d688478bbb4e8dd1f0dcf12d0ea49d4bd851f8cf9166f3", - "c3889269f049aec427bd252071674e75173c4a297b824d78aa7ce09a90b8a8bb", - "688d9973a91b4dc1b3bb1ce04dd286705ddc3713d2cd06548071959feffcb6f9", - "dd63606c50589afc4dcbaa1b72fb3f8b152a0e9744a7bdbabb24de1a7163a88e", - "927cc248ba5dcd29a7ff53d27d3db94b462ebf771fffee168ca5fbe036c97ca6", - "6f9b38c73ca6a49d853e722fb4e1710aee56d5a5abb8306980a3afd27a8b4b5e", - "185e7aa7801d4cf8c78462cfd8a38b60cfdca92450e6fba36b6547235942e2e1", - "c1ed5372359e737af62b5bd58f3fde7108376b79a2c531eab57dadee7e23c635", - "7610afa46b966f7766252a0d0f9c11623ad055d07591b4b2d1313c067b94c96b", - "f6f3b152e1c0f2db46cd0daf7a285df2a2e4e3f79061545c5bde99c6f246a5a7", - "7371f413a65cec678ee6753e6a10e6a592dfea9253b2e0ba887918260c4a8231", - "a50572d67f67a3fd2500e14289bbe7c5257e5e3c657632b9549d677ad9a015b2", - "4e7cd41d4a045fd3df68c227d7d5fe14f9c48a6efcc32e8e7b620f2938cbfeac", - "9070349d0cdc614f2c45053d3dc4331fc2a1db9e46145a5d5549d6ebaf2c4dfa", - "d5885cf7009e9cdcac0897de7d7ecd08b2e2f26f7ef6a5c4dd445aeeb0313f88", - "9a5dbec46c9a5b5c0c07d2804c4624c57ff38aad914942b453d0f6216128ae19", - "e7f2fdfb4b7e45a0a445dc3f7d29fe792a5f549779d951814a453817e3f02dc8", - "97bf0787aee370ef22e1a0086e1b93a6fc2b66cce15f2922d31e64e9942c5dc0", - "cbaec70973152b2556ed8207d056b91dc3ab300f80ccb70f4261edbecd07e6d0", - "334bd850a16e9a404d477dddb7ddc0e95b66cb9a3efd681648a8dc708edbb354", - "ff43a76d08c21cc2fed45e529a4e25dc68efe4daaa21e839e6b245c718c52d42", - "86fcbc8662c39c584f999f1eb4373d6d25453d9d285346ee1c2411813aa9fa59", - "6a531677b56c2f9cee4394af8623a6e1757ec8532b038375e6bf50b5cbf84206", - "9d92d1fe76ca8b1e45767d3e41804524087b8b0f3e8360941932d3f00b48dcd7", - "6e23a9245de57e8a7b314ccb18c72dc3907539a0b92e4e3096536f64db694af9", - "3359e1b569a729dc791e014ee7a74bf7d4ac98afb38ece175e3c784e94f84da3", - "5a07eb19c94e599da62ddb1a8006fd37f1cf95ee7cbfed5c7eca21ffce8d4bd7", - "de0ee1948e08fbe79a29ffc4d3e8101772cf6c7f91fe7365ca5fbfc77d644242", - "06847fd2255b867c0c2b95c1accb71465d94eb8f54a13fbe6b135df4f28c83b0", - "5341f451f9bb2ba9e0327661fd0339ab944811b8817fee3ba138ad523912956c", - "5af3412ef8cb5182a9bc4c752392f3dc5233bfc4cc2418eede438eb9bc5b4939", - "7e2b73edc59662d55d6544eaa845c901c9cb18a6663ccf8114581f46ff3a8953", - "61a77e636bac7cdcb74c14a22f5674835b72451e9f3450a9a1d1451752db4cbd", - "d52ae388465fe776cda1aa95c176a38d369f45f0192e878664646aa8d94bd7de", - "fe16b7fcacfcdafa432f03fa674f81a5a64aa2c6652a2e05532ea2ab8079683a", - "26bf2191d61bec549fe93ffb1217ac909cb0c887a207195d9e0872da401ddd47", - "967d0c7ab4023621fb9235f44a308d6632f9764696280094f6808709338f64f9", - "ff3e648c65e254ddb7a0729c686df63b431e1fac0225022c7618f4262bb88a2e", - "51284a0f0781196adc3bb6ebf90b2e17305c2393bf2081869305bd67eb7f36c1", - "82218d11e3d4b2b0d8742c94d04122a07c0c54fccb7a60afc8b6c559a6b44761", - "23f5055ff1cf0ab174d100ec19a739d5bfda726ece5e29f1db60d1630b39d42d", - "420b03e75b6f1d127857b62655c03d1297a605e7d074c88d12ad88b78b0afc66", - "db33f32603945d863d8eccbea2e8b55ed954a8cf388dd773338d54562ff59f99", - "6e8660f70a3b1e9cbcacca772d6314bcd7cfaa6183942794943d38dacadfe547", - "15b81d7fba43b91211ba8a41c3d7b522839e9070972baa7d9ebe83c9eea7d1d9", - "6e6f6f86f3af1e8d48734a1b2d38c5e75f46f2843bd6d1487e13f98c33df0490", - "0d2170f0ee1b658e31f0ae9b75da272364e0c93b950129696d6cabc2c9492ccb", - "e389266be2ca3126459e00e2d103fb2ce2e6a49aadb9159eb673603f53d358a3", - "b49ad6b0f28a9bc36425d9ebcca30753181f4892d12f070f94a875b3199bf220", - "272704cd20d6bd0ae7c88a10b6b30d388a841a2ab283b62b348b7e2847f826f3", - "b07ec4b2df0526c55a3386adbc08f18bd0244093423588db0da4ef4f7907fdec", - "19954459c1e85bcd487ca606008fc976368d705766095f635ebd20b3bb91b4d0", - "4d48c40041e19e3e106c15fbbae89f4e2ca488e597ccc0a3a35d6352857dbd11", - "b45f488bc7b123ccfcb396fabdbb6b302e9cdc25af5b416b38e7f0f4918002b8", - "a7b935fd2584adcdae7d96d9e40faf3f35b505261be8e59c9a3f06cc1a70dac6", - "b37f2ac6985ed67c2ec107b877969f239d2ce3f55bd956eaa4ad99bbb2392c47", - "b6deabcc7d94c30d0b1c0123be023cf18ea96516edd172f20ee71f664327e69d", - "50e501ee7588e092dba78b5ce5154199a104cc392fcdf5a8549ca46df6ab0a8c", - "2115ad72c4055b674cd0243be85a1bf4ace9601014626d222c72ca8c7ba0106f", - "e86de714a8ad3fae71bdacb94935eae8bc008685aa2b4b417498f5c3814d4b9d", - "2b5c98dfd9129b83172ab663487c314c076c09976a135ca17ddbe896b6226379", - "9dc61a87ea50fdd70fcfa286abcf6b73fd5176b5584f98effdec35c7344e2d78", - "7adbf19ee0d8f9784e05c203b52675bb89910150254dc1c20f49e8206f85020b", - "21e03a17944fd773e20c589085312b6157565ca8a7bad928c731c59cf25bd915", - "111fd82754e9711436697243ff907cd67351ec816d8d1f970e383cecde93197d", - "dfd36fd7293e4fddba8d5f7d5e07bef1b333697a2fc60542863d8b75746a8fb4", - "c0342b797b66a5d5cd5d001920de868f69e7afa8599f0f3429ff67169d91ae76", - "1f1f00134f98761ff77eec1e3c6486680dcd0fc31fa13b867980c6eaa8df3c4e", - "9bf8a2a3151311d77f903b2e95067a82251778ef2706a69a2fcc129571ec40cb", - "2127e92328ac8288e7afa820679766c679ae0731df6e48d79c06ab94414765ab", - "e9c00cf8fd9c63fc89dc4bc43e6eeaec133b77f984e4683989044a22f3ae5f5e", - "d59776f5dc474486f3471d8e768c3797d799b51d6ef84e46ebc22154392d3590", - "6cad3cd9a2cba5a4e9d38362377394b9fa56bc41b3456ed9b6d50f0a8afc3dfa", - "d5e9a02cd44274313b03498eb7d04eae3bd310a4043c064e1472d8d664c43bff", - "9076147fca7b3e59e59cdaea756ac5e152343800d426a1e32e56d7c8a442d23a", - "b58c55011b9c2957d6937bcf1d29ceb6a87b1545a6ac5d4ec607bf2399d22817", - "4c70c8c0c260b4b94b4fd1762d3653c858f7d9d400af05cd859ede9962d96b3d", - "1c8a4a4767bb42002b3f49895a712b484b3a91b49b4660a7d00152121e5d9233", - "5de16f2031b7c3c4512fe176268f3165c2a62c2a68d2bcea3c655746bf0c29cf", - "85e60924d48f62f7bd7e706966ef96bb4e5abf03c3df06ccd5320637a63cb180", - "169ca57e495ea936330183465763eb5eee486fb96ea8f156e173378e3d3091fd", - "acee937ef542fb7bf895571c976a4fbef663344a22b98c699eba60b28107be09", - "0f541b970951abdeb97410b9b7aa2a2e61121dad199bb25f84229cc4c2d4fc0d", - "913041388f8ce000b3d8b321e5bf5a4905ec2455965911e87ed4c8a3e38e076f", - "fa100ea42b1e4cf5e7ff5a948405e65f9ed39daf40f65eab11b5ec50c6bd57da", - "3cc9f695e3ba068b3f83d10a9523f8a5334c55881372e6dda36bf85b0ccbaefd", - "24dfc8b2789b9bb18a9d09c72fe17a1c04697edaa9a4733d3ba3ed320889e885", - "b5bfd2c867f06b4c1272378a73b9991020f0cf5d30a37c697d6e624fdcdca8f0", - "7e6b7a902d2bbe51044504f7f82246139479c7962b76e6edb2443548a651ff68", - "9148055e8026f65e352e8bf7268dd102fdbb520c0de105525460cd5f4b3178df", - "f5963c47e7b07b265205a06b42ab908b005e251ab71832f7e34a1fa9f5c34208", - "8ce0f3aae28e17ee14e6f8000f93589f1c1abe9f8b8aed1faca3d24f963040d5", - "5198a2c31f42e1de28630653b684234dc1d616b3465e5e5852efbabcd9921ff2", - "ce062eb5f54a1433f054391e8e02c06c1f738d48d905b3a3624ea625ccac90e1", - "c5f9bddd9e37257764c89f97138e0dc0709cb6bf18e7d5eadab39293adfb49ee", - "9fa6466ca9643c36537573b772eabfa401f62a2b0769c6b8a8d7c126fe61311c", - "7a111b75c5d62ff18ffd3e0bd609453f2679c004525523b81ac653f4865233b4", - "543b519a616e29b09a91ada8f94388f38eef481e6f4e21d82f94287a634aee52", - "da1c840ff92334d71cccba8455cebdb8d4bae76e1054251ac00579d306974060", - "1e978c27320b5868bb8109413ac6b3893283d176839496c005d05e1deb7c658c", - "4e62ea34407a66675c63dab24a941c220a642171e61f350bbb476e7694515f97", - "77098e1a552cc156510f53aa94cb1fc703e555827e1a466560aa139fbf657171", - "c04aeb51129fde92e17351cc3470efcd4a2cd8d46be6026eaf515d9b172a079d", - "29dc33026d0f45f05bf76587dc30b4cb148d777a14a84456a1c8e20d99b596eb", - "651f89c6a728d91d0fd5e5044edcae3b1fed7adc11f428e4cc0f0e64e290e441", - "ef975ee7ecb871afc5ac8c7a65cdb16faf6ae028e95ae4bfb47f1238b7fdb112", - "68d8fb14b95bbd4890e074635189b500f6d8f75d17d9d4d913fa79570085d149", - "108d99a24ce4e6a06bd7fa49c23902d011992a61619a191ea4ca3f325f29c63b", - "bf8bf5fcc8a488b29c5a37d287d8da9a419b86ea05f1950b8a6eef4b00ad9b49", - "a996b76bd3422502f9a73addbfd46b9df5c33120105b0d7ea278136a026bbc8d", - "70dbc7894d9899ffa49d1b73c83745b909de2abff7818b08cfe7682dece52d13", - "26080918070c6b6e24985e85d1f1fd3d178b3b3d5148600ae368339eb83eca4f", - "475933ba8ae978c880c1779df54788ef6f5c1b6f0f56423c0f365ec0d09f7b6f", - "22a7e6e915aa4bad848f051d9bce9f9561b9bc56e7437a03b870291dedc5a03a", - "70d230504315c99d181fd3e9b7d8d76d5d8eb031caef5aa3d58e171ff0b14663", - "b46f9a0204bea4343ff95332109c37aabf522b1035d3706461efc14ec0bc652b", - "1f34b90c0905fafd90a677a66d2a23f580001406630e4324a9e45621e0498b7d", - "743ebb6881c8e8433b4d9f41469911e9fab98aa9bf185348e5c0b7f0f9b9e0c9", - "b1fde68edaa0dc8fb35a736b11e9e6481c1663e76c5fc46cd710eb9b8cc17ddc", - "b38ffbfa2594260420e39d4dd2c45776194c966fbdb4be30292dea059687d7c2", - "12e584b418628b211a208b1cd91302ba8d954c19c23717eac8f13a17381eac78", - "9a75bac946ea8e101a423ab87c0438f0f37f8cb67a13aeef0027b31fcb2c5708", - "69b017a4e876300071615832830efcdd3c28a3fc50dbe9a0fef7ce3c2326b93d", - "075c9b436ac4da95a8b4820cdc9c64714a4c9a445814de8fda00d1e4d0f67cfb", - "8088e39ccaa18d6fe620a94007946f3753b9791bf4da08628c0d4bbcf2787a9f", - "82a5a8a51cfb115cc09e089415ff50ac6fb9d52e3327779cb7aa3e5499a55e89", - "a1fc310bfaa79c4f5276d319df6711f079d59e5faea1024765ab83ea4e400970", - "48b462e762b9e3cc066249168d22f03271f0a5f022463d7f87d403346b78255d", - "173cb72790988c1aa2899c68589c42c70300b04efb05f69c923e233f38bc20c7", - "d1f5dcd02c7ff60feae3e4a05971ee6fd85e0f422edc351aaa2d32c5d1001590", - "9315be23a044f3f88daa4b88ba68e258f716ca00148765553ab94b93d389dd34", - "5b4d2fb45e8946e8e0a4055a839c000b0110766b04e2844261a358b66200061f", - "55db1987bbe174e128bee1465433a5b2e426978bfb3367af4a37bdc8acdb0a1f", - "08acf6bb251e859eb65f3432618de1aed5b93c043d7030f4e2ba923dd177900f", - "57f723a76238e2b70eab8a184cef93957f2166f2ab601c0f92b15b252517ff95", - "658da5891e4d9f025a151ea0d89594c20b9e4813a484457453120b8752fe2416", - "887234592552b8483be6675eb11193adf0fa8539489b14e7728f3175f9f360c5", - "4e397c0aef47b37d3246cfa31bd44414d22628d43e0613bca38b8f4b6219d152", - "dc4f2b18a642a75a0c4e97c70aae519d065d0be041a4ee4dd8accda8ff1983fe", - "5fb61080d66a343d248207a26fc7d4542b338e34ee68e061e0247b7f54004551", - "3195b13c3670f3711d6ee14a24dfd6e24f99055b51b5515887e825525790bec0", - "4e060dc3b69f843d5222ea88e5c795fa63ed9116aece38082f5ddb6bcf1a2372", - "8e11895675d78a7db9c0b4e2fe622d9bc1f954ace2c69dd0f7e5219e4f6d49d3", - "9bd6684ddb67ac619f5944c135451c5f5bedc92a4ae2fa992af4cbde185ac9a6", - "a5ea0a5574b57cfeb9cb3e79dcbd92faa83d332c0c08557dfbead13f783a1b0a", - "93c32a61d1c00e261a50ef2169fbe25d8817783a8838dfc418cfc0be0db40677", - "e6e75db536343f98b19748f74a95c28fcd7d6869088e10db3b0055f30a4e071c", - "f0539f150be516523474cadaa81f7d105009a5e6149e277f439836d0a26f2bf5", - "647773938cc2340a1f4273e0cf0220283d88f75069b1e3d2b474f585842d9638", - "e24d499e853319c2be64595f5bdaa3e13431f9ead1ad8be89c9992085df29055", - "94178d9b70a297715f716b600ee22855319bf2ce163e915f089e96775d981a51" + "caa551e53e50b416fa62fb6719724726cd7570f704efc0359726175bf1cdf37a", + "63745cf93e431b2ac6bd197f1c142cab6d46cf5a87d44ce292309aea2a5ac164", + "3025544dd3c9cc73cb334bb436658c44fa8aaa63ea41722211be3a6aed6848d1", + "f4ed4ea6ef78ec7a37cd49f648f6f71b227d58bbc91563130e23a85e69636c22", + "81466269fcbc4fb5d0c6371e1afb4f45c858f9a8380a8e9df61b6d0d5d588c96", + "036c6597498587e8b462941a4f413a5ab45f5885ab2ce324386d90db8eb8dee7", + "f3d06a105a4a84e6cec6c8333c11d63a0f4beb7eca750d97b64a0c862752e91e", + "5ca082644313a813b56cd046433f31597854784be72ef883d5508da38612fbf5", + "0d16b1af5cfbfbdc2464ae79b5970cb19dd7ea4cc2db538f3eb27d90b8d94e14", + "53cdce67b1c3168e3d8788df1aee3eaf55151bfc597ad74e949dc4946f1482bc", + "01e8c12dc948c1e251334f31468ea90ca8a470a2ee336ba06b1aac89f835f0cf", + "c7c0a86be49571cd217c4cf5665288463c2ec3e29a024a2f61ac1f5b26669ceb", + "357d42c73d043a92adbf2f4044f92403621252bd902d67e4ec4778712a751051", + "f4220f59c010a06fd77adddc5fc98c5460cb8b6eb42596690cbd8057b10dce39", + "1937121916f6688423487cede02f2d39d397cd342837cf0d75f92c85d515aa57", + "7cf84b2abfe8babd4c0c6c5ba42727421384cd2f9575afd20561bcd36fcb1eac", + "e53601c46922ba525b37a54be63cb4f920943be76b5822a0db3db1dbbaa529ad", + "e80741b47b0759f310df6c5f18f48101355323eaa0ac41d09cfd0f3373a78e3a", + "f9d9f01905447fe05ce3fe64c0569ab34d2a7d67cbf3b718c26617e031584c63", + "145375691a69fa862e92fe05a201fe35b6fc5520e05d8a667856823afb9f795f", + "fb95bcfa65acabf211fefe93013ad2542f4ddfaa5012d1c6d7538a9759c59f98", + "23bf1655f4b92b1975a445160b40c306f6755f075b0b7e42e3ff8de2013a323d", + "d15e5879588a6b0b244902b7d5d0f8040dd08993dd78e15ac67fa43d2f7ddce1", + "719f6727eab11626b0a9d71bf68b64d41bc93e1eecc4534ba0fcbee078543cf8", + "0bb7efda4545d6759f7aa405ae050b01fdaabaa28952bfb30f1668e728eb572c", + "c81037a6a321e8020d3c8dfc0a8724624ad69fa28dcbfcae80292460f5ed83e0", + "37a5b7de5c846c466653a29c356e0f202e7e27ccce81a96df47e9cd26cdbdf83", + "9a71e02d171b4c08ed431680cc373409cd457bbbe5ddb175207b62a1b0fe8da2", + "2d72ceafeebb308e96d52cf6f7e0f59dacb01ca2a19dc8f0d0c821c797c2abf7", + "d236ce0caf4613f2987a21211ae03d645e1899b4f9b185fde51d11bdc538abb1", + "9fccfcfb5d930aa5abf5a925f342583b3123ff1773f2bc38964700b0e676e890", + "a72510b24a1a28171c1c29e5d8a25d4a8634a9d5a127682ce71bbff3347a0217", + "ed78c900d481ad2eb345ec06d1d874696c2667b3b81f2cb8e6e738b68e6a3c01", + "b83a590d771a369c8fe0dac0bb664c99d314814f022b3476ca9fe5de05947897", + "4369f9b31d9609e32cac46bd871741a1aaf1cf6600629716bc5c0c1f0dfea269", + "f15c6f50b3a93281eeff350504619ee4c1ca9aca424c286331ca155190a8cd64", + "30c6524dc03d61763a0a9bce1b66bda0adf85b889b8119da733c28e1aad86d31", + "650e4a0270c2bf64c6eee2765367f5225b28a6c33bdc0179872dc3551dbb3340", + "dc5c0569fd5af7defbd0ed472139941440274ae02e70fbc92f830c67597a36ee", + "10e88abdfebacee4bc7729f53b65d827b0c605c6bea1255fe7f4ab6fe4c08c30", + "20b15e3199cf1acfbf1a5c32143ab0894e33194df46270094013312f0d7a7138", + "5cd49d03ea8a42a96e922226c78baf54f4ca02bab83c4755fe084f279d116e6b", + "3a66bc9d688c78596399f02d311f8215bfa0f4bfde1ae5105450c1bd9b4aaa1b", + "5c5cd549c483a6c681fba7b99f6bba481ffdfb3905aa81a1da368615ad44a68e", + "b842f582804ba97c839bc3dc26cfd05ab2e9a4e385b8e292fafa85b28c090ff2", + "c68d4aa626fd725e1c5364023a2555a75b6cdf288ba8182200dc2605be2193f2", + "4de6a7259790c0232c5917b26a61f2b354f77b682b829cc50e101e6aa8e58158", + "15c2bf28ecd814c6b05f824d7ff1002597cf285891cb13fad03164563adb88e7", + "f98aa03cd39afdcb6a12d9c4368717a955204b24c9945fb45205e863bce1eb04", + "19d885ec0ca22c76ebe44e318a412cc4b474a68649f6ca06bf1e54e64535e390", + "0da13f7b63fb0d059d24a20e0ef42e28b4eb59fdb067e6af7a9b899fae153a36", + "80b89922d0c904dd4b0e7c3b9110005aa5fdbf498f660ed01417b566836ca19d", + "fb7c0f3352242efe6fd62364453c6ba7e5a86ee20baf692ff0feed80961a1d02", + "e32364010aa7e4a4d51ea5c6abe75d50a5e5664878ad33463c1924f24c335edb", + "f4cdfd3b6ee397ae2569aa5fb21608d6c5f2647469e11b17cbdeca892eb8bed6", + "2be8afbe077ec4c6f4a62a548ca2c99f4061c6eda621a2cbddd049b392913322", + "295510a3350ed9fea223c1d8014193fa8d549c8dd7cba7fa27a6c22fefc294b8", + "8330311439bf48aa5942b959308883ac7f397d996a48711351fe482bf378cb02", + "b524febadb534ae93f888a608f9f7130a44675ebfc67a331f6d5d3cc383c0337", + "9a10c863c5f56c13478478f08581343c1a7c79de591682ad9f23ee99000b7fd5", + "8cf88ebdcdb54d618d44e733a4b08772e1ca4f57ac6e6f80a5cb214e5de79252", + "d81ad75078caed6398b81581024fe9664cf15c1dd255a337611296c8c8926a2d", + "001016f9fe0b5edf9f67c7fc4026c1281e87eeba0e973402325a2e61cd742347", + "26c06c40473d7b1aa942c2f4208074704449ea987bacc62e9067d47a45423190", + "4680f3e0f40693c080cf98a097012580ce8bd1829f2cae8511f477e63b73be3d", + "235655b80e572a460ef7897b0c3278da67ff7959d8e64bbc9d706a80c448ecbe", + "12e95ce0e037c96d6b08700f6fa6ce2d7dd885234df3881d31f6bccad6cdcb1c", + "d8200f34d1956cefc9f51e6c011fe0e999fba36b8533e8a778705d859ac8020d", + "d0d51405aaa0ebcd13aa3ce44b8c19ad8698bc147229803d8165c41c034799ed", + "ce62363651e02505c47688d8facb25fb3b5dbce0d394bf88eee8597b136d5793", + "b7987d83e032dfd51fbae74a79a1fdd9f0b25ca0846e53b71aedfcee42e0854c", + "be4c9fa564b50c59912fedf1fa3764c913001366ea53ad2b006046c0b5511a93", + "d15bdeb1ae77592ed7ea67673819e15bb2585e58d1dc58c121b7c11e8739e60c", + "5731317ae4359ec5d5a224770bf0dc0575ca375414ebe0e7cfa084846017f886", + "e964667b93d45d5b41a4aa51164c3c74c7e918db6422b9eabc20ba51c5a9f419", + "42512a23b60a600e37f38614c9eb509d0f2bcfbf7e746eab18878422b81d0bf3", + "eb1170c4041ea924dc75834d31fc11cab042d6b7e2d24c852bc2149ba611f370", + "f4cda8fc3a3f052a71cabda975ed0b84184857f411b8dcd990bdd984e10f9a02", + "baa1a63e96e0cc27c5ba4cb110f6b2811cd4a38477b18db0088ba46d30215abd", + "b6b13466bc04ab8f113b756b28b45338c041dbb4aa418db8258ce8549822c230", + "47b2fe84125c538c288e09d09892beff3d5c27bc743f20d1279251348c247bde", + "47b3eff4a5fa0b8a0f2070ccd973633c40398a77dd6cd04953a8ec4337a22c1a", + "94eedff8ff91cc209866eb046df932969120064aad6a5d4cccc23e57657f28d1", + "cee3bf973cd81fa055fa0ef75725d56abcb3a9256ac6df4ed668805f07999943", + "5cf75e961ff6388dd8f056cc241cada43f54081fa53085d3200e5bffb4354dd5", + "ab7ce4640f350ca0a85e5b533419fcc48378489ab5e57db5f6ca8258598cd36d", + "813b7f640aa2b21b3d76df8d2c1549a023a2087be4b24f98b400c896decd2849", + "50c81db45ad4a47ce7e9ed13ad32aa72d5af7f0756cf90bba818ff45728fd4a7", + "19b9b825f1543a1120035a8c9b11683bf768e8f0f031a7a24fd97a39d1baee1d", + "0089f90c908dd9c1d839a0ac70e591768a2442434acdc42668f75878d11d1de7", + "e393c06fff73a0da91760ab1a35623931aab2777940971509ffce5e4b54a6d82", + "e6daeca00948ed5d073365413314b6f2ca2ffd908e2b4865cd2a85bd17197ab3", + "31319aa48aaf2dd9d94c5d63648f5341a18f084f55280111fdc62d5259359460", + "567073fe2865ff6486ab86a09432da415edabc4584315375518a67fa8d7be10f", + "e189546a3cb6f4edc9ea11d91696e68903595c27d11230521218c867a326829c", + "901ccedc935a7f9674547657ee616549c87cbc606f9e4e1f16f6379eecfc7a73", + "e4cecb371cc713a71c937ca986682f52ffffc4533dafa040fb9f07d9f74823df", + "0f92f6ee8ca8c3de6f6a0f41b23704d4b79bd05a290dce71da93a25d98d040cd", + "e169681b8db0f3c37a091acacc0075f72742e122934da2ff91bfa6c9b318b6a8", + "2877cc2ef15cb975b358100d57cf46c85fceb918548b6caa5537837205d76a2f", + "fcb637c91db91f37dd1adae6988143c696bf9004675337b113acb823552ff2db", + "1369c985a2cb3ef06090d4d0be2825f02ce7e8a20e9f583f77c44a04fed56dae", + "aecc20fcec9cec520e4fb1aeaa11fba44061ce1a168e0f54d839eb272590810b", + "22ab3e2c75096cba7052650759a94e7846f9ce643009764b224ce63869fa3218", + "a1efa54ff48f526cdc62fb6cb22702ddb23ea30fad1f8b20f45ed52447fe39af", + "42ce29ffc72b3a589b649922badef1bc74ac09dca6e841f5621bb0b700238769", + "fd56f573df8f9053e0dd054ea6c5620badfa1562fd7be9bfd7e97c9154b4aa5a", + "bd2057331645834cf1d2c387bf01af044ba2c089401afe2bd3d6fc0366e9a7e4", + "e29d5901b3ab64593341b5f3b4762167000088da96b5f678d8916dec85db63b4", + "d4017c843ceddd01bf72062677afcb25aeba96214823ecae2bbfab269b625b46", + "b202c775e98f73b236b5ea0d27cd5559a8c0edd99668a22eb0ef9faf4d99ce71", + "3baafa9e70149266b0db6b0bd0e3116a1ad7251c4a25f19c04cfc1f99881f0b4", + "e9ccc0dd1f6db5eff39ec69e9a3c1ae7e545cf6fe4026c44ce6e298c9b2cb908", + "663d2adac9406939370845a558e8f6b4f6cd1a55b8cc2b021a7af80b02690293", + "9f7a9da31d195e356b1c1e8fc4404ff0e5d79f1edfb0f585312172bd15cf3f76", + "4f272f1a6ed6aadd317055e113036b7b7ee5be69d8be6157f612402617a5597a", + "a77fecb5f5866b1f2b33650230a2420264f9823fe2a24707f3562112283f115a", + "d0a2ac85109004a97e97b5312209e66865add5648f0f6661f1e075721da69dbe", + "3b1e73deffbc01cd83997e31a8343f22d5a63f278c8ef08fd7cb50711f9c683c", + "adc76c0ac8b88c20223773cdb37ce15e49a0ee4513dd5a8e81ef8ff3a691598a", + "f1a70d30093f124fae95c597578173052aeccaba1002df9fb70e769ef9b5ab4c", + "7dea0d9023cc6da8d33c070df35ca8642a82ff404f9e3221b165f3820eacf7c7", + "c3a0d8215af27f81eacb3079124ac5fa4e1530480cbb2296bc654dacf568581c", + "13773005d7f8f58192801f8f0b7d28811972391e787648315e200fe4ecbd357c", + "7abea35d1fe29ad001b06a7189d3bdf58fb56938d4fa60a5e47640f0a8a07189", + "3ff33d9195a2cff60d3848d009923a15eef4f14b494b19000e317fd9d27634b3", + "1b859481be325d755835d0db179aa1e1b6d290b789640218a2c6396cd754ccb4", + "42a75b02d0ef8c0cf695f11ef09bf027cdf079bacd3056ac4454bacdd811a910", + "83b9878c24253edfc358c32f61c394f61a9d13ad42609eab7e22d422dedbece4", + "e171941a38c3784aec0ce9b4b42e2a78ed50ccc84a95edfefb7f8332c32dfe90", + "c3c77ff60c16990cf7a49721aa70b5bd377f630a9fde405ac8f130c874ba7e66", + "dced92c320ad93f5bc5144d93e7df4d94199bc1598148e437f5e3a041c9e978a", + "a9dd760bb28211a3b2c0bf7279c8ac2356408c1f802b2545844034f34539865e", + "bf03d05303116a44cd532dc727cd33e3fef6add974d39becd4794ee8bca3c6bb", + "71e42de67391c5dd21d854a4f2a35bd054dd84a0f40934d57ae9ff4141ed654d", + "d27e7771599bbd1fcbef5f1614c8d0294af79dc4dfa934a21f355a07375a63c7", + "43f83f56958a83be6c446a4e37f5850ee2d7b0fb44dee48ad9cf622a8c59158b", + "55786749c1e586362837fd7e6f73e99b5440b738fba6b31d003d6d1917eeeb61", + "d078017c9c132701d91c6e2c09570fd9b23665d7ff365292ed7e3b7bea4d198f", + "99041b24bcec378abe0aff160d547ea4111f2783a34ba86609da08707348524c", + "fabc025a5a7f5b3f5c4634d856702da0639086b443ec5900c6605383940dd447", + "6402e11225cf7bbfa9d8a430277ca7bf8ef4c37e2a449b728d3546906f97a421", + "a16adbac24f0590a343eac0ec033eb88c263000c941329920b96a00804964698", + "eb93402d41a0cda6437e18b9fd09e010c17895f777a65e392e723787b6702763", + "a2e3b57a0776a4973afef525347565b8c96333f92316e2ceb4382653a045fd1a", + "31c362778a7154a4000f2d1515d7d46203f740bb5f6f25fe4e68bd10183ee583", + "5f97899e46508ad3ff883c40977b586fb527d50dd21e0e2982e733f67853f392", + "e339a76258211918528d019febcde8012a0824fb4b7fc89fb123616737647f55", + "99b51793af411a4104b83282c87ce6c03fc3518c63bc38366863b7cae72e5acb", + "255b1e0a9953c5df10f8d7f74e1fda3f5d6737cec63009bfad7313246269b453", + "ba3ca1a93215768141305ab7a92f26a2949c22d95714a3f2764f07ce5befd6d0", + "930aa90a9df97b9b40db3bd11be6fe1273f084d8ebc2c75acd483fda1cc30d3a", + "24982091af19ad799eb5117614e669af1f2d137ccec830cfb2221b2ef9256dc0", + "173ea1f3bd4c6be22e760d9dfe118c827b0a527d47d7bbed84ba8b3612b414a6", + "5f3be331e9bd610699349cfd39914e40f75ba0d78304d0214a5dde60153f1755", + "8fab783902e218ca4dd775005cf4e36f863790f9827b46c41789e6ee95aa54ce", + "6e85c83b3e07d2bb78215d50a19a0a9f892d19d9e5e03401b7a9b4d79aa48cf3", + "1011fb90b0a7fe986cb74cc4b7fae163064e99dcee3930c3c118a600639d706b", + "e51d639f6ee18a4ff6d3d1098e88530d407fb1b3d0c542f555fdcff4d78928d2", + "cb86b9732ce6a89446cb0ca85d19e498899abc3a44a4bca0e6e68d8e0fab187f", + "2528cd67e39142bf268faa4633c42d1b4efcae22ddfaddaf9687c46d997e6dc5", + "e46c2c3788bae5493042f868e89e11cf6dcab972dbea70c84026fec3ea2de196", + "1b9fbc20050047777e5eca1367c5e14aaae29b72cc5fe848f986ac0e20fe5e3f", + "9f03a259c567d375ea6d803a3c88c49d66a54ad4a74e52f1f1de8d523210140c", + "63b3bce455e99b0ea6083debe539e6166ad027d3ce4b24603042ecfa115e02ba", + "229cda0cc90bccb9ec3711db7668c778f421e3041547ba1c00b12fed770a6a10", + "87350a4e6fb5c18e60e355cb0d150bd8c51d87feadbf70c826b5a00193a475bf", + "e0b2a585f41ca79a382ee6817fd6e08abf9189dfd2b5d711f5bf96e46e2b2104", + "3d08b5648b3050d6b459e4d34c2145dfe6504a8281fce1597beff567e12695f7", + "fa9e27d92ed2735a986fcc427fdf39f85f77d65d9f0f89a1bfd1095053f236f0", + "05b0e494c5ac1390bd7c011ed361b93c56db8d19bdf9cddca98131ddfca7e4b5", + "b9424d1acb4f52411c14da56de41d3f48d9a9fd795e4c07c160c047128e9c719", + "8f5f96f23a1dbb1ea6a09889a2039bcd6f3b263f8795f833cfbde832ddc0cfe4", + "91daeb98a367e0a11e4863acc7ad4dd3f6895a7eb60ffe5dc8a0b2e8db423f75", + "ae2db5c35da8b35acf0225d9b7c2344667b92150d71fa66ad4e61f4711218a9e", + "5023a1fef35410c8e8d65d1a9fa8329b3f626761c5ce1d0862bfc6663fda6a75", + "ed5c17665e0b2bc7125f64b4a7b4869c377b17deae90e7fcd0a27e015777085e", + "6bf9578a60b586064915b36119ff2f24bfe34c18e7c9ec7fa7576a2ccee0480d", + "95d71395fc9f8e9c87cf71b76fb1b544e9ff304c0f795615555f2c332e5195f8", + "a606d7fee6a3ea49c5d4bd5f9feaab1ba8a01629e228f4936f0c4f640533c80a", + "b76bc4b89a767a409e2b53dcb0558609fc70b73df9436aee7f0dd07a35bda801", + "d13a468ceca122e61bfa60be7bd84330190dc83050c758abf76a9a6d0ba3dea5", + "490b49f5bd392e847e6cea593c536a1d9b5d1f053195bcd1928a6c8a10a50a7e", + "abda5f5dd910e015ec083a69aa34d239570ee102b635ecda96518d48c3ded1e7", + "5a76ca8c2baebb9c6dafdeadfe87673aa8d3fd2082c5b955508b2c5ec89d17a0", + "c5ed00e93d9cef6e1e4b2c310ee058dfdd27239ee49cc55c63be236b11fffb9b", + "c4686b3ab3d3a4dc952d411d03bb596a6e1243f3992751cde202d3a3c48e422e", + "1b79368ddb964a4b7d8e07ba7b61409401abf9df61d70639d9dff25920576768", + "c481a08df17497819ce5d05b495977f1eae2e0c1f50c0b91f5d701b4b0780b34", + "f15e5a700fa2a784a68244fa23766082e1cf92a46974f8786a0e216d9ca52a9a", + "6075b2ea4e0e056dd5713e0d035294a587de60d68b92d78879844fd5be05aa8c", + "f41c83481847d47111f63025bf86c01347edbe55f1185fc98ef820ce27ee740b", + "2c2ab2791b25ad0509dd53361663bdecb88271d87a474e0b20182c8a644ced15", + "7a177d511de1970a870b814626dedc6524717479783155bad323a8fdf81e1c63", + "cfefa4c1da490a21e73b99fd872c577f792a2398dd8f388fd3f46f9a1335a807", + "efe353cc18d3a669811e4e8a3b1ddde3c8fa6ab1f58d3864824f37f42ae2e709", + "e6864e82dbec690daeb10c219d3c39e4987ad055fa704f86d5a93abaa4eb678d", + "e7c98506b3610a18036341be9116c7014f1ad4320ea90b835a43d13bade0c014", + "5b17ad65996a03b900dec95eba104a01794f790523ed378d872173ae0c6405ab", + "aa40a16161ca9e1a2d81a39c8ea414af885ba5058fdf8df4f499d5b67b782ea4", + "737bcde4ed0fcbac1c5ff3637d92273f888868c702de6d7d6181f1a9ffa564df", + "025822257594d59938452dba4127084034e6369920bf19bf04f714717e295b3b", + "333c12d315816bd4b9bc60ea17169a6a17f254b140e9fbe6228e09d79653a64f", + "11181460524dac22f17a8cfc5258e656fcf0e3b2d7c934a99c995dca25757b72", + "031227f718e4ef749e5513792d6e121a9a4d32a21c6313cba85a0102b26c04f8", + "76a4d427cb8752298dbe38085e8b2ac821a1b366588428c7a285e7d370c00ac2", + "07ea436ca96cbc413828e9bdc4894985a7d759b9da14f3e2c69104d598abf923", + "27979ad36330d10c12f2c0c3474a3fbbfc2eabc1d2c640f925de0a9d5f3e3706", + "5db09e7f99f8fd9eaf48e649b443912a1e160190b7c3682f16599f8c12442d12", + "e7c7ce81deca2b5dfa1ac341b68b36e02d2925701209a4fc6cd25156c9c7a4eb", + "2c1215a6ab5fbb08fb7b90ae857f34c732e7248f0e8d15fe96d5120ce99f3746", + "24b7eefcac7ffd4292ea0c907408fdc6218c74f75ce5e2b429cb9354c309cdc4", + "f9e9b977cdac5cc30c229ff41c98ebe9a2f9eba13062283aec8f1dcf86aa1447", + "73101a3bb0cd6a87d541004de9cbff51581157c7ddf72ede7ba052341c2ca7b3", + "a8178375678bd44238261815e1d6bd7d7ba68ec7e3172fe8f76ad4f29b9f609f", + "337f54384e4e36a9fdfaddc131157ba0323447891a6e73c671436233087c884d", + "e44bd264ed2fc8acc303d55f85508dd97a21a451da48d097c8e26e0421f00e27", + "13323db10daf3ded7c035819fd9a40584a759a758d47856892c40d755ec8a66d", + "7e6190bc196e5c5cdbd6f5dd094703850ef96d184ee9cce4325f3bebf201f7b2", + "41e026e3573f35b5bd59031f7f8a6f613c92e6cabdb4b6ac5c0bba76953c0096", + "5af8eaeeb82a5e7c04c285293a511e8aa4efac52ea84a2fdfcb4d6deefae13d0", + "2eaf566c3ca4bceb369684558faf1ecf3b2ab8cc8b737bc59011aafc73f8d0eb", + "3bf21093aea0782095ea499449a0d293033ac191bbdbde8db6755b50c4ad4050", + "01451f2f2e8b5a19cb1fb3a526fd5d06bceb84b23c3eceeaf94bc2983eb57023", + "bc74d0ced8506cb6e44634f4520a300ffb05f2b0b34d00d618d4b65398a352a9", + "a738857788f5ce24f82a0f4f5166c7770c03a56ff832e00a2098caeb3d48a64e", + "ed6b5f203f795e0f0b015cc110fc95642ca0dc838a942c23f24af082c04abc11", + "0747e8be2589c2825965e6965bd1415cfd6c5cd75c4bb6a7d86e5c8fbd08c097", + "2b06e1a4d3374166ce1a3798a387305d2803456a479f693a5db538d62376221f", + "a392a15b60713c41ca084e48c4b1493984d147c2ca8acd606d724eafd6566c8d", + "c254d998e4a92cb73deceafe0b7af799639b720ed07bbaf93dafcc4d5489cef1", + "a57b397039bd0d0ca21746b8dddb159c78dfd937d7cd80d192ed80a18d47d79a", + "a368b43a61dba3075d4222378c97bc93c1eed2b47460b2808c4b88e239d9d05f", + "b74ff7d8d81adc4fd9d413e2e08ae4b80245e75e3665a15f66c32110ee04b66e", + "34a359c2e02db80de5fe3767fb82da5789a2b5f7f1472aab74c1e084b20e182a", + "1b1c3c948fb423cd8a4f7a8eb8e3f9d0ae698af2cea93be12470626e47232ea7", + "c2db8f2b74f362cf0087e13a6d80115f21fc86cf1198f631bb9ebee9c6daebe2", + "fc62c723619f8c5b1dd578a1b1b5e83a63eb62767de3c9b2cad00e6342a69cc1", + "210b080ccf19f3148439d3262b7f0f5dfab3f4db848d4bb67d28204f997d0a27", + "4ffce20647440adcb70d21d936fe35b6333ea33c9b15b76956f48db1f9ee0f17", + "bee5f6ce2549be8f623bbaa3b26bc70d328d68726da132598c6c1132b8ee531b", + "5776ad341a3bb6203c97f9bdd68792a70338c80a9a3e7f8c28c9f44843a9cdc8", + "72ff7e94b643d8caea75eef3ed5e9cba044f4b479eb5dae8d04d4ae3533ad233", + "bf0254113c9e6f9079d9aac4b31e110f89a57abc29bf3a5696c8a3c8f0900169", + "4e1f09c1379e595b2e9881ec1d3583d5a7fb44a07b4931349b3a319c91e72fd5", + "a0f2321a6b50107e6e6725ad70bd9c12acf2d30478b579973f3a902daa6d0fc9", + "83c91345a46f8b4d1cce99b9dee811ce1f60619840bb263f5d2e7d08416464ad", + "05d525d088ca7e1c41d8affec72a06b2524d9e2ec065bf99c3cd156029608462", + "1851554956a70458163b592ec211b9ddaefdb3ea9dc3832ecdf891a5aa32a7c1", + "6faf093564af6790e5c7f560586b9a755ff55f5cbb2fc2bd1bf26fd005858cdf", + "7ae842fa2289724de1d1ff504c6b4ccfd3c277e41d4dbdaf156f5e7378336bf6", + "d4880f5924ed3d80124a3b3743375eec11bd6cc628e7c3cf3a75264d3246cd25", + "d63029dc8823056c427325a65483d3ddc7807cd3970fd1ec5b2d43f0a691e2c1", + "6efb7fee63201b60986fed42a5f1105ee02785ec2a8394f671e6471a3302c81d", + "3c62d8a51ba302f80b21b8b5c9cfc43c778cd7712a059cd5fa72b0a75a477e80", + "abc31233f71c78d74cb60b3fc7990402d14e70e3d6bec82f55a640ccf282213a" ] } diff --git a/scripts/merkelize-airdrop b/scripts/merkelize-airdrop index 9a525ab..5f9537d 100755 --- a/scripts/merkelize-airdrop +++ b/scripts/merkelize-airdrop @@ -23,7 +23,8 @@ const {SSHPublicKey} = ssh; assert(process.argv.length > 2); -const PREFIX = process.argv[2]; +const PREFIX = Path.resolve(process.argv[2]); +const BUILD_DIR = Path.resolve(__dirname, '..', 'build'); const TREE_FILE = Path.resolve(__dirname, '..', 'build', 'tree.bin'); const TREE_JSON = Path.resolve(__dirname, '..', 'etc', 'tree.json'); const NONCE_DIR = Path.resolve(__dirname, '..', 'build', 'nonces'); @@ -45,8 +46,7 @@ async function main() { ); const root = hasher.hashTree(); - const maxAirdrop = MAX_AIRDROP - hasher.faucet; - const reward = Math.floor(maxAirdrop / leaves.length); + const reward = Math.floor(MAX_AIRDROP / (leaves.length + hasher.shares)); console.log('Checksum: %s', checksum.toString('hex')); console.log('Tree Root: %s', root.toString('hex')); @@ -55,9 +55,11 @@ async function main() { console.log('Max Keys: %d', hasher.subleaves); console.log('Depth: %d', getDepth(leaves.length)); console.log('Subdepth: %d', getDepth(hasher.subleaves)); + console.log('Faucet: %s', hasher.faucet); + console.log('Shares: %s', hasher.shares); console.log('Reward: %d', reward); - assert(((leaves.length * reward) + hasher.faucet) <= MAX_AIRDROP); + assert((leaves.length + hasher.shares) * reward <= MAX_AIRDROP); const json = JSON.stringify({ checksum: checksum.toString('hex'), @@ -67,6 +69,8 @@ async function main() { subleaves: hasher.subleaves, depth: getDepth(leaves.length), subdepth: getDepth(hasher.subleaves), + faucet: hasher.faucet, + shares: hasher.shares, reward, checksums: hasher.checksums.map(h => h.toString('hex')) }, null, 2); @@ -86,6 +90,7 @@ class Hasher { this.existing = new Set(); this.subleaves = 1; this.faucet = 0; + this.shares = 0; for (let i = 0; i < 256; i++) this.buckets.push([]); @@ -107,6 +112,9 @@ class Hasher { } async hash() { + await fs.rimraf(BUILD_DIR); + await fs.mkdirp(NONCE_DIR, 0o755); + await this.readExisting(); await this.hashGithub(); await this.hashStrongset(); @@ -120,19 +128,22 @@ class Hasher { // Format: // { - // github: String|null, - // pgp: String|null, + // email: String, + // github: String|null, // username + // pgp: String|null, // email + // freenode: String|null, // username // address: String, - // value: Number + // shares: Number // } - for (const {github, pgp, value} of faucet) { + for (const {github, pgp, shares} of faucet) { if (github) this.existing.add(github.toLowerCase()); if (pgp) this.existing.add(pgp.toLowerCase()); - this.faucet += value; + this.faucet += 1; + this.shares += shares; } } @@ -339,7 +350,7 @@ class Hasher { const email = block.headers.get('Email'); - if (email && this.existing.has(email.toLowerCase())) { + if (email && this.existing.has(email.trim().toLowerCase())) { console.log('Already have strongset member: %s', email); continue; } @@ -398,9 +409,6 @@ class Hasher { } async writeNonces() { - if (!await fs.exists(NONCE_DIR)) - await fs.mkdir(NONCE_DIR, 0o755); - let total = 0; for (let i = 0; i < 256; i++) { diff --git a/scripts/merkelize-faucet b/scripts/merkelize-faucet index 5af9763..3d550b7 100755 --- a/scripts/merkelize-faucet +++ b/scripts/merkelize-faucet @@ -10,6 +10,8 @@ const blake2b = require('bcrypto/lib/blake2b'); const sha256 = require('bcrypto/lib/sha256'); const merkle = require('bcrypto/lib/mrkl'); const AirdropKey = require('../lib/key'); +const tree = require('../etc/tree.json'); +const {reward: TREE_REWARD} = tree; /* * Constants @@ -41,11 +43,11 @@ async function main() { console.log('Depth: %d', getDepth(leaves.length)); console.log('Participants: %d', hasher.participants); console.log('Faucet Total: %d', hasher.faucet); + console.log('Shares: %d', hasher.shares); console.log('Sponsors: %d', hasher.sponsors); console.log('Creators: %d', hasher.creators); console.log('External Total: %d', hasher.external); - assert(hasher.faucet === 0); assert(hasher.external === 204000000e6); const json = JSON.stringify({ @@ -55,6 +57,7 @@ async function main() { depth: getDepth(leaves.length), participants: hasher.participants, faucet: hasher.faucet, + shares: hasher.shares, sponsors: hasher.sponsors, creators: hasher.creators, external: hasher.external @@ -73,6 +76,7 @@ class Hasher { this.proof = []; this.participants = 0; this.faucet = 0; + this.shares = 0; this.sponsors = 0; this.creators = 0; this.external = 0; @@ -122,7 +126,8 @@ class Hasher { async hashFaucet() { const faucet = await readJSON(PREFIX, 'faucet.json'); - for (const {address, value} of faucet) { + for (const {address, shares} of faucet) { + const value = TREE_REWARD * shares; const key = AirdropKey.fromAddress(address, value, false); const hash = key.hash(); @@ -130,6 +135,7 @@ class Hasher { this.proof.push([hash, address, value, false]); this.participants += 1; this.faucet += value; + this.shares += shares; } console.log('Valid participant addresses: %d', faucet.length);