From 74fdba50e08c894ae2bf0210f3226ba3030be221 Mon Sep 17 00:00:00 2001 From: Nesopie Date: Sun, 31 Mar 2024 22:10:08 +0530 Subject: [PATCH] feat: add validation checks --- output.txt | 6001 ++++++++--------- src/constants.ts | 3 + src/features/block/mine.ts | 5 - src/features/encoding/serializer.ts | 643 +- src/features/encoding/witnessTemplates.ts | 2 +- src/features/script/Script.ts | 8 + src/features/script/constants.ts | 1 + src/features/script/error.ts | 6 + src/features/script/executor.ts | 314 +- src/features/script/stack.ts | 37 +- src/features/script/utils.ts | 2 +- src/features/transaction/components/output.ts | 31 +- .../transaction/components/transaction.ts | 294 +- src/features/transaction/errors.ts | 4 + src/features/transaction/types.ts | 2 + src/features/transaction/utils.ts | 23 +- src/features/validator/hash.ts | 76 +- src/features/validator/length.ts | 6 +- src/features/validator/script.ts | 70 + src/features/validator/signature.ts | 233 +- src/index.ts | 147 +- src/types.ts | 10 +- src/utils.ts | 39 +- 23 files changed, 4033 insertions(+), 3924 deletions(-) create mode 100644 src/features/script/Script.ts create mode 100644 src/features/validator/script.ts diff --git a/output.txt b/output.txt index 4fe1824..d3a4dd1 100644 --- a/output.txt +++ b/output.txt @@ -1,207 +1,166 @@ -040000000000ffff000000000000000000000000000000000000000000000000000000008480b4f2416569cc2764c6b7d0de0f3d9cb4398c2732ec76c83de61f187a575038230466ffff001fe83f0000 -000000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff04032337080000000002ced4bf4c000000001976a914edf10a7fac6b32e24daa5305c723f3de58db1bc888ac0000000000000000266a24aa21a9ed369aed05437704386465193fb32cbf129ccde9382dd7e15f2ad2ad463da8708a0120000000000000000000000000000000000000000000000000000000000000000000000000 -3e3dab2f737cae50d76a4a9c08207da3c41ca8a648d9c8a078edd8d5cafceef9 -a9f1f2279711f476c30e2e1382a0e99358c662a48fbd1774d7e5e7f8ea27d98d -b9ea7324bf46de83ff81f0876dd8e6e8485318165cf9c5073549dd8824c7c2d3 -a703509738df47bf2ebd5b0d202ba6fd1f33ebad70458c49d2f9b9a293d525c6 -8a8c77517ae397e1228d9e88d692ce7846f723717379087d811b5da4d4142fdf -a7a39be437c8b0e607897480061cd2a23e7d491336e015487205c05971258f34 -2726b3b0f3bad42f2552a99e7bbf08d3d7dde44c820817790891c152146250aa +040000000000ffff0000000000000000000000000000000000000000000000000000000074f73031705c2fe4af7dda53e980a8f4473dc397973978c4799b65e0338e7d20d6910966ffff001f4d1d0000 +000000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff040323370800000000025ed00d4c000000001976a914edf10a7fac6b32e24daa5305c723f3de58db1bc888ac0000000000000000266a24aa21a9edacf8e4c264791e7dcb05883e523af5bbc96a43a95e24d709869e4591479c4f9f0120000000000000000000000000000000000000000000000000000000000000000000000000 +856369de879a4b8078e41d89fea4ee880865de10aa74339473a4656c009036e3 82f9f96db7bdbb9e70626747632e373b34eefd50d613dfea7092744169591b6e 7cb2a4f55245bae141a5d6ad51c08d7a9fdf2c2b905e4d97639ed80b82e69800 a9e537569db3c64340ed5abcdd983e9bb1b6ad6f90c93bc80d31c5cc0490bcea +4ab3cc4296fee78153d60d2884323a84260157db0b83a72309272f109ad9dd32 99bf982da397947eb0999292e909c17c78d884e18d3e59ac03fd2aa7f0241c7e -9d34c9b4cf094d63b2f332725b20376d9a2f36b1da15e9ed094102d5d7fbb267 dcd522b3588c7adb0418454539e1a929fff936f211e5a20383fdcbc3ad8751b9 423c61f1ec58b9400a373e1052c26debdd5d55eb0057900c3dcf41f54762486c -f2de32e39ca853add28011ef802f336e546789ea8abb093c44d0b79e2783315a -4ab3cc4296fee78153d60d2884323a84260157db0b83a72309272f109ad9dd32 -ca371c508eedf480c948d905fc079b3e5ee06bc49e9678a56a606438f98c9936 141655b0e4239480afbdc12874e642ffeb94da72536ee4b8bace750820b26a06 +0205c30e63e36a248faba5bdbbdde7a4185cb2bd314ae62549578575abb6da72 +c0d67d6cb71d5cd372060a6f508017d0e90167f111a5219a0008cfa5eb37b0fa +ca371c508eedf480c948d905fc079b3e5ee06bc49e9678a56a606438f98c9936 18698d18715a88a45c9a57f08c1e94c94b3d4827620f7a7f1096bc43afdc61dd -4c6e1339f6ec894ac4685f4ef934180d376b1870005fb5c6298261353d46cbac 7e4a05a078f4d7afcd686d117e319f8f14d69be43a0609bb9a9cb36a75a88abb +4c6e1339f6ec894ac4685f4ef934180d376b1870005fb5c6298261353d46cbac d46e76a0c8559b76ac00bf5a2f5df1aba3aa2fa8dcbfa9ab288027813b627f24 +6e0ae197a30f26e0de708f95e52ebb957de42ace5c08ab62092454c58e066f51 +3f67e2aa009e5560a6c6b5341f3a5851cb448322758721e0922ea81a2b474776 +bd2e7dfc9c1a42accac2fd14f74bbfcf89a2d61352a077aef349ebcbc98c0be5 +cb2930faf9670b24e09be9a5a98e72d1b5cfd0dcecb1b1b5452eb85a1ce80ff4 219f3b922ac3fa2735f437d6542a26b7d744ac8899b53cb50e7f059ebe1c2960 -0205c30e63e36a248faba5bdbbdde7a4185cb2bd314ae62549578575abb6da72 -c0d67d6cb71d5cd372060a6f508017d0e90167f111a5219a0008cfa5eb37b0fa 6ea28e620d2e612dab764fa3cf844d0a2b7c709655dd705d9e90058c23213d64 -c7036d46c010aaa07efc49c33c6f0b2178d1100d379eafea99fdd1cf122a2a31 eb3f8d9ed92b6b80c750aa909ac172774c006ac0170f41e3afa2b58ade0e6eb6 2383ce5d0e87d094815e0b232550347873cbf7ccb679581206dbff8f98c57d7e -5cff2d191e70272427fbcfc4941de630b0c4afb41f230e41645a0a49d29017b9 +f2de32e39ca853add28011ef802f336e546789ea8abb093c44d0b79e2783315a +c42a6175ee0cf75e5a3d5e9c6d5a3570f184cd6e09b181460883da288d690a79 +c7036d46c010aaa07efc49c33c6f0b2178d1100d379eafea99fdd1cf122a2a31 04ca6e279ae6f0a1d10b55b3c9193f686f354c317b9577b425de57fb80294d91 -c2968c8a276978bcac607701f1415f85b526d0bea59d85e6c875f33bfbfa478f -1f475e98718bad1ef571f381c9104adb1c7b0bf35934dc66a8cefc7a6228ea6e -4e50503a0c54a46edb1fc5b1f08cb34c0ee3f747a6835f39b080828dc74ffb53 -96320c590c0b5965db5e386ea08a4a41b09283ca798fe26afdd92035313ac9c0 -ff172907aaae2527caaa32041be1b2362dd3794f364285655441265109aa2a7e -605f2b5c3c19c4fa6fbe2225b0ca6581cc91bb9791e5bf95e46449928d54369d -9a8339fbe8938cfc20b92e42be5135cf737fbf40933ee4f4614ebbadda64633f -fd3617676ee8f8aa39c079ca7d90194b87ff560ee44cedde57bfb8fdedefcc11 -f5b639eb8813deed223214a7b8bd8184f020e50e6c83e74fc6f1eb8e6eb59745 -aae960e7625d443cbdf267ad62806ba2658d957b12fbc2a24ee9e29f87f07984 -a6e77b508d7c226be1f06dadaaf8539e8955b9b9cddfb698ef499b235eac0730 -3af7826badec8313fdfbde8db845f94197a117b63c61bc083db1889cf512d375 +5cff2d191e70272427fbcfc4941de630b0c4afb41f230e41645a0a49d29017b9 9a4b7a9e63a874cda9c82adfb592bd91be77baaf988b6a22bca45c8d24ff1c8f -f791cf14638b9f654f96bbafe52ceea831e2556bea9de2033e5e67aedb4c2c0b -e499c7f1374cc9b3557263842ba22c3db1059ac1c28b138a813899353f03f29c -6e0ae197a30f26e0de708f95e52ebb957de42ace5c08ab62092454c58e066f51 -3f67e2aa009e5560a6c6b5341f3a5851cb448322758721e0922ea81a2b474776 -cf26971fb787c2fe5af1618dc6b8bd461c34513e59cee4b85ade0e56a074bf3f -bd2e7dfc9c1a42accac2fd14f74bbfcf89a2d61352a077aef349ebcbc98c0be5 -cb2930faf9670b24e09be9a5a98e72d1b5cfd0dcecb1b1b5452eb85a1ce80ff4 -aafa88e7f286c104e41f086a41692e56d4ee84bfd088c3a943249daa3b2dc1dd -0c3d66bc640e838589c1c5c9cdb849e5cd09be039b205dea9e29eb4c806d4e2e -c42a6175ee0cf75e5a3d5e9c6d5a3570f184cd6e09b181460883da288d690a79 -472b247652475d72a024277d3ce24239f0807fb2bdeba74ee6a4892b56ff4a1d -f4e445d5489a045450ba8ce0026399bc305a141e67586f5be70aaed16440c0c8 -c3e2ab606d3c52bef8e90bcd7cb1f200c160af6e87c702fe9d515c47d9977292 -bf9b42429c88f6586e952480cb73dfc7c63524b110d59bbc4a77d789063dc260 4408e4d4f52837e9504056c8e33b7e921a10c072b520ff810fc938ad1201b652 -f72124836a446d30325251979447bf01e31c7549b2edff61591f74c8d495e0f6 9dbafcbfc78f1f71993186add1d5bceeacac926ce70a133f3c52607abcc3ee97 58f4ab89c3f24bd539d3f3ba5931e0792f0316a0569c6e5bb7a4150b07aea87b ec6a92468759cecaa854e9b0155d4a94e52c897fe96607d592218664d1165a11 379c9c1070725589a0fa9626a59bfab6de21a50e600815be7d6af70edf059f3c 5c5aac8345686bd466014ef256a503bc896f4186366fb000daea1f90a4143377 0eee63cc7561e6909a0215fe338c2271ea5b09ec726abe605b2bf207266600fa -3e6b78c462057f8c89c2e54adbc2be1f11536e5889d97b15d465a2b708cf7033 -6fa62b4b30bb7451889b41ca2c7c7037a28e6bf6b988932f8ae47418cf1ebcbc -80d544f7cc27c1eda2da5dce085f0c202c492b832998cfdc17892d2a64d9d2cf +aafa88e7f286c104e41f086a41692e56d4ee84bfd088c3a943249daa3b2dc1dd 961ace1aeae3f11523890212486fe4e7b7e74bae2d0dbbae6e69d0d26f4824a3 -36fde4fcb94b05eae159c961c9ecaf027270d8e61ffd159e17ade9218d439420 -32b34bf06121fd0546809d7d061aa8d157fc9c47b9908c45da54b0a555fe4144 -4b6e5e84069dd775e081aabb27853557f8f78e0d03bb14cf5861c512eaaaf95a -9860294ee083abd8caff150d667e1b74788bb59efc6001caaae80de8f0829322 -ec7c3f7409cd0151c00c44d756ab583fe5fed84f8814db603cd3fda6b3bf3cba -ede7be5d4753a25139d6b6ff033cbdf0e43b729733cb09a6a3b44472ad27bdab -96047183f58322c63eef4f9568a9dd301e73ce14b879f2470d28e83298db2dda +e499c7f1374cc9b3557263842ba22c3db1059ac1c28b138a813899353f03f29c 39959f0279207ca7414d864aca5233d998d4ebc950f15a4556f4dfd3b1932b92 16fd8522e6aa9171c97571b7f14cda309c75fc34293c2989da0634522d9dbc0e -12c79c875a912d44341f779fc73831f207f11a0876d870e8ed35c80ae9fc66ec -f75ec76214779056154f67d410521217631bd713a28637774c9f2b1abd2d5294 -30be773bb8f925925ae59276d51c4effc9abb3b5fab11de0572c623c117791fd -a8ac062730a37a6794828720d19ab603a81e10f3cbbc74ec2d224f0f84c86cce +f4e445d5489a045450ba8ce0026399bc305a141e67586f5be70aaed16440c0c8 4a930a5f30e9f9d2605df8e9bf446931a9f7535b97c6b5390e30d28c052b180f +6fa62b4b30bb7451889b41ca2c7c7037a28e6bf6b988932f8ae47418cf1ebcbc e3e3efe45babf86d2a23dc93592c1e707963c604615c3eb5b5e9cb7b6f13cca9 82bc13847269f69b43bf20f546160f90fa3002f55b62923f8e2c1366a231ac8f +4b6e5e84069dd775e081aabb27853557f8f78e0d03bb14cf5861c512eaaaf95a 1c8aa90e20d6cedde86efa10e4a8bfb57a9f9e5b3e63fa7b0fade6c5cdb3def4 -2734ec0d4290f62de2948d8c081befb55ec5d4cfa2b5e34a2016ffc521e64d35 -65a1235d78ca22063623735626e962dac4b5de67c7c5937685446f74413f7459 -86f66ebf59c0592fb50262ade1e697e9fc7763d8e516077932758b5e43f937ab -98b311d237876ee73dc1b92f0f5aeefde9e9e63be86cfdcaa39679814535ec60 +c3e2ab606d3c52bef8e90bcd7cb1f200c160af6e87c702fe9d515c47d9977292 +9860294ee083abd8caff150d667e1b74788bb59efc6001caaae80de8f0829322 +472b247652475d72a024277d3ce24239f0807fb2bdeba74ee6a4892b56ff4a1d +0c3d66bc640e838589c1c5c9cdb849e5cd09be039b205dea9e29eb4c806d4e2e +36fde4fcb94b05eae159c961c9ecaf027270d8e61ffd159e17ade9218d439420 40042faf7f045b8a20165281feea6e116626cd9bf6150f8775b7c801050668e8 +ede7be5d4753a25139d6b6ff033cbdf0e43b729733cb09a6a3b44472ad27bdab +98b311d237876ee73dc1b92f0f5aeefde9e9e63be86cfdcaa39679814535ec60 +5518611b2b9cf3985941d8d9a077967282b719331947da7099f2eb2d43d5892e +96047183f58322c63eef4f9568a9dd301e73ce14b879f2470d28e83298db2dda +f75ec76214779056154f67d410521217631bd713a28637774c9f2b1abd2d5294 +65a1235d78ca22063623735626e962dac4b5de67c7c5937685446f74413f7459 +b7ca3553f6badfd051773b6ba3985d8cb7faa3312e1253206f3053b0281d9317 +8f82186c8a18f34a42c4fa2f536f6de0523d6cc772c383875d19a2b0dd463bc7 +174778a55e20ada4655858d87bc8a1f0e9f0508f419ae0bcfebfdc54b0225471 +a57adc7478e44365ac3d9c9d4241c77d55678c5fb579a1cce4e202e44a588113 c760f441017ddae392a8dcf1d696e5ebcfd94d564c03675cede5663b285af16d 2e820ffbb7e6c0cefd39b5f1b4b3dfd099acf5449be3aea4097245f2b08b1252 +86f66ebf59c0592fb50262ade1e697e9fc7763d8e516077932758b5e43f937ab +30be773bb8f925925ae59276d51c4effc9abb3b5fab11de0572c623c117791fd +bac8a93b420cfbd2481d6bd51ab68668a964011a9ad74956140c75f229e6761d ac4fadfbba8ea96d4371ac8acb30d3559c8f7c8de1abd372ec0bb64419cbb3f7 +54a84fc41e6e200984cb6619039afdf16ad80447521e9314ef363c1a8df09193 ed8dddbae3333dcf0faf8bf676f9d65ab3573231b18d28922e089003618da116 -0b730223606fa016fb5f57674158eaf08dac03b91a48d49138f44d6adfc161bf ed3f6a1342dcf2655aa958ebe375aa2e5b3fff62606417097b0e2fcbfd069ef9 -5518611b2b9cf3985941d8d9a077967282b719331947da7099f2eb2d43d5892e -6d1642a12cffc513a6c1354f841e7476430d45cdc238b554411ebf5068baadb2 -c2d5332e5697b475921fbe72297b2d6f303fdb66203b61af57158f6f082a3469 -3ff06318588ec7ec5524872e4f66e00298b840d464abfdcfc3e95848a58834cb -54a84fc41e6e200984cb6619039afdf16ad80447521e9314ef363c1a8df09193 -b7ca3553f6badfd051773b6ba3985d8cb7faa3312e1253206f3053b0281d9317 -e7901fea9d74c2754e870f75ea0f387a0d4715065f09ca404cd5c0cbaf7308bf +ec7c3f7409cd0151c00c44d756ab583fe5fed84f8814db603cd3fda6b3bf3cba af264d1b737eb930b641a5a92e568c22a30efb18d2055ba9b67f026873edc480 +e7901fea9d74c2754e870f75ea0f387a0d4715065f09ca404cd5c0cbaf7308bf +fa35790c97843ff87c1f30df70ae076ab34f741d7586dfc24fbb39d4dc18c829 e5a8658b0d25cba6b4b0e02149531c400880f8e753f9c141de54358fd9c5d860 14dc80bf5e4b280a9f7b4d7bb2f8f784a233d62c3bc9a7a5b6de1efe9dce79cb 80f766a92f0d0231ddaf8793f114142d5c7b9e4c0ff83af3d68abee31d7a97bc -f802785b2d0a170b2fe5081469792bf2daa1904688bfc0518a4e70511b641713 -d50105061d189373582a6701ff841cbe43ff92e92a8f24550929ed50312b036e -8f82186c8a18f34a42c4fa2f536f6de0523d6cc772c383875d19a2b0dd463bc7 -174778a55e20ada4655858d87bc8a1f0e9f0508f419ae0bcfebfdc54b0225471 +c2d5332e5697b475921fbe72297b2d6f303fdb66203b61af57158f6f082a3469 +6d1642a12cffc513a6c1354f841e7476430d45cdc238b554411ebf5068baadb2 +3ff06318588ec7ec5524872e4f66e00298b840d464abfdcfc3e95848a58834cb +17ffeeedc4e155c244058704e19c8cb44e23a60c464404612ab8a8347bf79ccc +79c5e6c08b109e1dbdf6dc45ca52bab264d99b9c9efae428f54ee24ea403ef84 0acf2d678a416f19d7dcbca05c8ff935f0b66deb165e6bcd4adede640c803ab7 -ca7ed12cb676e78db3a67a02991e3214d3df66e41e9d54124644d6485c5c93fa -a57adc7478e44365ac3d9c9d4241c77d55678c5fb579a1cce4e202e44a588113 -81fced3ba74758ceb872813e94ce557ffe9cb2bc61fe4d18b16c8f40f68d4e70 7732a0e3ca2c07ad4c0a823811ad5fe50d23e258bc876d905484809ce11af5da +81fced3ba74758ceb872813e94ce557ffe9cb2bc61fe4d18b16c8f40f68d4e70 925c9e11ff464190f5b5b8199785683fb613f6432bddd20f435536762f97cb44 -c692455532dc6993bf554067fbd46f22f75820b4f86d25bc80f34949fc2a5ea4 -17ffeeedc4e155c244058704e19c8cb44e23a60c464404612ab8a8347bf79ccc 4dc0081058331df702e3ce06f633eb99b6447f3d05d348ac7c5cb4e5b12b17c1 -deacd7168c603fc222cf4f31b6e843ee0df24fc79fc7728bc74e5f114e4078bd -e28f6b4426d7fbfd2ea1911c17e5873bebbac8060a49985bd87d4fca5cefb8fd -695ee155ab71adde88b72d58cbbfa6f83bdf2cb79a151f248abea26dca04e88d -c2e3f6aaf36f7c80c4d3be4b31872b8fbc69611f14f480d0ad1b2b5d0244a7a2 -315bbb5ddd2fec60af39fe4417b8d696ed052eaeba5248e3a341061ea05fed3b -d33d151dfc599bf9da2d862c6bcf393df16edb7b223285d2d4438e53bca343d0 -22510da10e6a25428caf8f43a535723df010c504bc790479177f1ef093b70cf0 -717b106c2921561a6911337ba203d76114ef9853a00cb096f6b7333493b469a2 -6bd4c3ef4b5ce7c5ff1dc141734c72c0892ec7002d9b94ed745c8fc071dffbf9 -bac8a93b420cfbd2481d6bd51ab68668a964011a9ad74956140c75f229e6761d -60adeb042c157c4d80c39f7301813207153cb31154630b05a9602ad8bc2e0741 -322eac5bef60997a058efa75018524a38dc712a38c53820ba4b1693ef1cfc8ec -388b8101ab65e449d2260f10b3131d94c1dcc4740f0776f7bf6e0eda775b46c5 -284a31ef4aaecab69aeed51cce585eb4217655f4c5340723aa1bd1a0506a93e2 -54b042c2adfdcb615fa41bf5a559af7058adb10efa573d853951a3da1a897bd5 -556c97252f2d2525d9440e18eec7a8673e4518a45efc9b0d2ba9ee5588d4c39c a2cbc1a3aaa3a3fb264a6d9cdfa186023ce42767c3ecfa1228a2237124f8a884 -fa35790c97843ff87c1f30df70ae076ab34f741d7586dfc24fbb39d4dc18c829 -4c275235574283f7e254c6aaead2585919b306f7ea02ba657e92284b41ff166c -713a3edea7e49bd9f8bdb8c356972ebab14d3646db7e9791a213982e91dc91d0 -79c5e6c08b109e1dbdf6dc45ca52bab264d99b9c9efae428f54ee24ea403ef84 -2c450f3efbd18910d0cd9917c7a6ac4bed5a03da76cf0bab40ec61a113fdcccf -5d903c0834254ccdf8a0d8fe15e20a29df10c5568d1c0ffd03d90bc7d7cf9470 +d50105061d189373582a6701ff841cbe43ff92e92a8f24550929ed50312b036e +388b8101ab65e449d2260f10b3131d94c1dcc4740f0776f7bf6e0eda775b46c5 +717b106c2921561a6911337ba203d76114ef9853a00cb096f6b7333493b469a2 8a766c63d4d5225d7040968751c714a71c790e115d897cfaf0b7543219dbd840 +556c97252f2d2525d9440e18eec7a8673e4518a45efc9b0d2ba9ee5588d4c39c +ece578abc2d8e38d8f892387e00d449d5849b5559d3c498d94448ec1d2d4087c +32ea519c8a31c99b41507e8830a1007b477fb277aeac7c0e6414d4446d550bc0 f261ca135c20e9a10dc4959e52e36dcd44e9bfab35a66eb0ddeb7d493e35d2c3 -0b4cd564fc665c688935228518f7e80f889a63f8edf44ceb4ed19bcbcf8c1f38 -90c32b1af80079f25601acfa9357e8f5a4593f85b2b13da93b7bf4b64ec98bbc -917312b205bc24c9fbbfeb42dbd55a5395ffe42ff0107eb521b09a95f3376f2b -16756221b5f74595cffb914b6b9e15da83bda270dee089caaffc4fbc21a14fac -0eef5de84d6660777744672a74e8deac645ce27b8fcbaeecce7bc682ed7aeba1 -07bd8ed721506e4eae7f636032175d512b48acaf848a13795000a42a21369ca9 -81c922bc8d5a3d5f9713446db8c11c88bd9d4e8d708b5941fabf1b7310f7a4cf -1dd42c86a9902d4df9a5dd2dbd40998e6106a08173ceeea2113316ff0f37a1dc -a96b1e91e1d0553f3e19a3aab84a229816f06f9b9cd8270461d2b0cd18907850 -5ec4c2941133aa27750ccd0a2d6ea7176c6858ec1d7ef472b8131266aeacd6c7 -1960c5c74460bd4e6e0dd43ba6ce22b10566ee890b324a5accd6a55dce6b583a -d4dd7722d73316395a5d5862f3d875f6080dd5e6f008e5a8cbef8e4bfe4371a2 -dff82e49447d9abba6ec0828a5845f3dd9ae7c6da1417f81bd7727849cba10fa 280f13a1ba4a4582a494a37f047502b44d483d9326b8f32e955c28dca7cbf5e8 -27cc3035e74126bd5762c295a2cb384bf572d296e6936d3941e58e70abfae223 -802fbd6b3e8816a4375caec919cc6d2bc32788b26dd416bd40d584afe32b11ac -81b3b214a11d78d72f44384710db6c0669b0389b8a3ff57483c9ae0bfb48a0cd -3de020a13bdb46b349eb1913f00268d85c3283eba8c7989be1d73286d1290611 -63dc2cfe61115832959586019584aabbd7050eb934a9630dc579d0c6b44663a7 -64890f48f2b15cbb8d7eaf7b0d8766763396dd40c825ce9621466f163f62cd68 +d33d151dfc599bf9da2d862c6bcf393df16edb7b223285d2d4438e53bca343d0 +b5d3c7844be6ba6e3743404617074e8f36022d1cad3984a19f3f86bfa5f5873b +e4db2d84306a2ca488ebe1d8099bc0f5d355571e0643c02eb7030b4afa2aa971 +713a3edea7e49bd9f8bdb8c356972ebab14d3646db7e9791a213982e91dc91d0 +b53121907425ef5ba688a54f1cf2a36598bd070fdada6d9e96afbfc417f896af +0b4cd564fc665c688935228518f7e80f889a63f8edf44ceb4ed19bcbcf8c1f38 +6bd4c3ef4b5ce7c5ff1dc141734c72c0892ec7002d9b94ed745c8fc071dffbf9 a62a1dd31befa1df1d86b3b5a4d99f5d175367fb4a3784af64bccd2ac3937e3e -36474fde7d01b0014bd2de348e00862701254557e02b6b5bbaaf3b16f9b6208a -94514171a18c90b3d1805067978ebd1c9e8420ea54b9133ce5e7519c6827e79c -98d5db4b5cf8a6586e1d0ccc9609c93a456a0acf37f2f2d790134383de93af99 -950935223f090e4837b54e5d99e9223756ead5160993201e1883ba689006399b -05a563b9303722862a85fa6af05bc222fba54b1fadbd5e4dd5e209d082606476 +f802785b2d0a170b2fe5081469792bf2daa1904688bfc0518a4e70511b641713 +d7f53da808083724990ba8a9c8cd757275af9c31d60fb7afa399f7c8d05ac3cd +917312b205bc24c9fbbfeb42dbd55a5395ffe42ff0107eb521b09a95f3376f2b +2626f494d095b5653ccbd6b7f521a3d564441082de5dd1bd8d92ea35af0c9fa8 +e574b31645ff906cdd8c7231b52ae3b7c57ef35fb42b00d6efc454b898945322 a68efc2d414d79d0a9b6109cbbaccf508a14fa3fab9a1f41ec637e5124ee9ea6 5a1f2617b4c599f5c6754331b30448e8c40e6a4678a7db59c265a0e6e6b33604 c84e878b9011308f15642618bb87e682206ff1af3c7e1cabf48c40963e29d6fc -d7f53da808083724990ba8a9c8cd757275af9c31d60fb7afa399f7c8d05ac3cd -2de2fa0c42cad98194644bc0d5671251abe5a6ecef4e7df8fd694864938424f6 -e574b31645ff906cdd8c7231b52ae3b7c57ef35fb42b00d6efc454b898945322 b5e9ec2fac3a9dd54e2dab079130f16466ac56cbedaa3a5e0340ae6cbdddb034 19c40dff6bfee010ca3d3f41461b540109ec1d5d9fbb70584810eb2e4226666c -7833892b4befdaa9dc27ebae9a6febdc4cc377830a2c764e85dd59babbd0e1c0 +695ee155ab71adde88b72d58cbbfa6f83bdf2cb79a151f248abea26dca04e88d +45579d8ee863c929042470780feb709aa64eb76064cdebfa1c986791942eeb1c +9a7b093350784a4a58953425e10092430ad91382a560aed051d7cd9521daeaf9 +5bfddc04dd473fa5f66d64953db2ec54345bb9243eade72e08185fd90ce4a39e +c38635dbc58cbbc0820a1dc915352aac68d81449c3771373ba49d7e858645eda +98d5db4b5cf8a6586e1d0ccc9609c93a456a0acf37f2f2d790134383de93af99 +950935223f090e4837b54e5d99e9223756ead5160993201e1883ba689006399b +05a563b9303722862a85fa6af05bc222fba54b1fadbd5e4dd5e209d082606476 3342db73942aa29f867a42613a78884e75bc1d269cff41031f937918a2b5c72e +36474fde7d01b0014bd2de348e00862701254557e02b6b5bbaaf3b16f9b6208a +19d38472925ec6165d305765a595602ef266278c9fddf6ef1f4dfd534cb2959d +90c32b1af80079f25601acfa9357e8f5a4593f85b2b13da93b7bf4b64ec98bbc +519c81bb189641e1b578970c31e502fefb3976701347ad2500b1e34a233e324d +03d3b51f4d9f6feb3c27d74f6bbc736d4b82fb913ce92c1af4db488933d85cec +d0fa3356fb263009d4fc8d7d6ba59963a560baba8da03501fdc411ff26b76ad6 +9703993c9f792b3249dfa34ff79486aac0c5ab93d242cbc99fe7c29648a1519d +9a962ede107e9dbf1446b90edcea263e4e0329bda913945c942e2cf163a131b2 +a33209ea85de442115cbad15d34c1d380d7644762cf92dd547e4ec282ded6fde +5bdeae4ee68af5210922d314535640186268012bf24185616f8ab169c614b56a +11af62a102b611ecb44523dda00d88333c60a82dad37d1b788dce1bb37796109 +8ff7bd41d5bcec3ee55e2e7a081e42c28b3993b9faed97ff326035b68df2d7c7 +103e930a4dad476c9c2d8e58ddff8eb83feed2ec67cf5e5ada4e159d3dc4171e +7ed9904f2a18765bcf114045d80432e4ed17bf34398beb731640d767a235765b +d96b8abbea5a9829f8307009ab8be44690592fed4b6a8a36f095faba5994a908 +97ceb5fa2a8508a15fdffd58c3964274ec937605292139827dc8b7c7effac2a2 +857d9c6f5939be9e57f28aa8d9567cd532d94350800dd1626f89c4740e45b9be +4e3e235645095375b07ddb912745f1a674a51d9d7d83db61c7d07cec47ebee81 +6c82dfa980ef40dbfb69ea169f040cc084beef3a159214e2bc667b4b868b2d5f +5d903c0834254ccdf8a0d8fe15e20a29df10c5568d1c0ffd03d90bc7d7cf9470 +4c275235574283f7e254c6aaead2585919b306f7ea02ba657e92284b41ff166c 180fc03657338cc3d16140554d431d0df85407b8e58b479f565bfbf7370c0b23 f5ae2bb44eb210b5918f0b5149053607221ef2e39ff757997e8b9df7c676c40b c20de979128acb6246d620475355ef5d3f678a171e81c67defb87a55292d6a32 -2626f494d095b5653ccbd6b7f521a3d564441082de5dd1bd8d92ea35af0c9fa8 -7a8276889445d030876b938f30b5a3610529f2e8891e5e1215ccfe2ef5608fbd -45579d8ee863c929042470780feb709aa64eb76064cdebfa1c986791942eeb1c -9a7b093350784a4a58953425e10092430ad91382a560aed051d7cd9521daeaf9 -a58f1188e808960d7495c3cc99b7016f790c671f11a399190baa644f518ce2ed -85b968dadb55c3130efb9ae5da3a0e4561af5e888b18acce732587546477ff80 -19d38472925ec6165d305765a595602ef266278c9fddf6ef1f4dfd534cb2959d -c38635dbc58cbbc0820a1dc915352aac68d81449c3771373ba49d7e858645eda -3aed4d5c352758c9ee43fda617923c7a06a3c9a23936505d88325727c4ead7ef -f79855e919a6544776db70cb78b112b69779ac5610796545aab268f3c4ef6139 -da1489c42411d7e46e813c6498f082279c6d76eee66684e2f3e47d2af5ca2f73 +7833892b4befdaa9dc27ebae9a6febdc4cc377830a2c764e85dd59babbd0e1c0 +a96b1e91e1d0553f3e19a3aab84a229816f06f9b9cd8270461d2b0cd18907850 +63dc2cfe61115832959586019584aabbd7050eb934a9630dc579d0c6b44663a7 +3de020a13bdb46b349eb1913f00268d85c3283eba8c7989be1d73286d1290611 40177bb93d21ebde38ec26fb248fcc8bef7d7bdaf763c9ee610a04594fe90173 -c892deb36dc8c66669cb068fb19f78708d862e96e143395af893ec18f3abad8a -f2aa5cc77ac7e6e8f0d98e174a57c0ac7969523aaf7e9b2514acb3222f99a84c -c434bcdf967d3529ff6356502f3d88fd455e6bc8e4d9c532ccfbb74245e981e8 -8b8b6e6ef79ee377cb877ec25de30e975444ea26d97aa5fd6a5728897491b59d +da1489c42411d7e46e813c6498f082279c6d76eee66684e2f3e47d2af5ca2f73 +94514171a18c90b3d1805067978ebd1c9e8420ea54b9133ce5e7519c6827e79c +730a5e1878cdd0abab7954690f6276ddf548da4f50af29b13d54e9ffe023b9c9 +f79855e919a6544776db70cb78b112b69779ac5610796545aab268f3c4ef6139 7ac9a1a7a96e92108c1c3f755f089211b504c56b25ed59340cf57827f397b9e2 d0251a830a057750356e4e64ece9fdd57e02ea8f059b4843798da841883c3767 0edf9bed57bb4d663c690e17eb20692f0339f337f3c8f881d9834650a38c4b62 @@ -212,88 +171,67 @@ ad01dab939f86eda47450d5e9c751ae42d3c4b07d66edfe21c86bb0c72aab84b 4028ec7f3f6e3757d7a34ebed1900a1ffbfe037cb412584d8b9fda6885839933 15a5e73f8199fc632c395093f4755f0205f1d062c42cd4c555bf685196a41e75 8a9f5238a30730e1f48702a4b796cac78c54ab0cf9ed0b60fd0fe46fe84899e1 -b26b80ba9aef7d5550c2aed207cab3fa463a3fad2fbde60570a17f8e054b10af 2b4ce090fdade2c9cde0122f338a527db86dad3b7cd35f25ccd08004348ad08d 8d1db6e351895158ab17d482ce481af1230b851648088dd4d291e5f0a3a7c5ac -7494ca987f52215a8c4b7fa34c5b7f055ec0977d95753abf105a4a89e36398ad -4e3e235645095375b07ddb912745f1a674a51d9d7d83db61c7d07cec47ebee81 -6c82dfa980ef40dbfb69ea169f040cc084beef3a159214e2bc667b4b868b2d5f -c533328538493b161ab22b5b21608f2376b0904fcc661014f6789b565c80b17b -6f044006e0f8e505e0ade1518a4d48b29b60f5c3cd19e9d36ad0e27a9a7278a4 -50b07d5766b622b4f56e7b14c54ba7e3d005fb9b7f4b058d42acc472f3cdde99 -88caea9fa731401104fede6d8c55a0a209f5b47d9b2e1faf7b93b1e40100b48a -bcbbd606f8afc5d83d31f726dc786543184b559c7d8693e65427c2b4daa49ceb -306a1316f4cc6e05f5bbd299851b22ae46c32ebd60e0dba32c63686ee0ab8115 -a96ec364a114d00d1325e104066171490b2a068b9384f63628ca8e5c5b01e4e4 -39a6b04359507f40a03704af38902e01b41f56727cc6ac3259c94b817967c704 -48ea1dfbc502933bc1da6ca3a95fed4016baf58b62c1af1b423c1932bff73c94 -ebc4619508fb6428255da96960695c6214bf3764ed388b90e58ab453d65d68c0 -857d9c6f5939be9e57f28aa8d9567cd532d94350800dd1626f89c4740e45b9be -5e8299e043d2565c857e542190b1192c9abd7e9f1d734ab1a09017d9b1188233 6356aa747802299c61f0674fb2deea7674303669df3fd051ca2e2cd36ef977cd -ece578abc2d8e38d8f892387e00d449d5849b5559d3c498d94448ec1d2d4087c -32ea519c8a31c99b41507e8830a1007b477fb277aeac7c0e6414d4446d550bc0 -bd6c0982cdf3673d593e51429b6e00aed22caaf5d542663b47c168d7b95cbf8d +ca7ed12cb676e78db3a67a02991e3214d3df66e41e9d54124644d6485c5c93fa +f2acf0f4fa4c8b6c22b94033a45f3ce8160ec9aa1eaecfd86cf9a414525659ba +3aed4d5c352758c9ee43fda617923c7a06a3c9a23936505d88325727c4ead7ef +97a23b7e4ea9c25b1e0474830c3dd25e138dd5bc21cae8b6248195dd33791c73 +a1336bbd99a29ea2f67ebe76fe412ab5ddaedda6ab558b691f3d4a70e4163dc3 +298ef9d30184ef7324454cd741a30e4cf7534f2a6c85b19763fec7dea0126178 +6d2e1a44eb44f5de1d4a9bf675a0242b508f7bfe39d033513eddd9b05af4ffd5 +e2c3381e65d51a2bf34738abdab15a8e9dc774123b2c5c3730775c6df6abb8fd +edf1a5813fd40fbb31f60dd590090017e6debef9f494a388948d6335bac41585 +e1097653c71e000b75ef33457432c62c77f7b362ea903b6a6278b357029bb008 +78e4ad6f958e8b33711eca19dae8c476396345442262e17d2df86b0394dc8e35 +c113ea84a8bbd605ef94492d67463889db5e22f8017141557b35b0f5790023be +26dcef0933fc0129904955dd9604cbc0b086635ebb9b1203ad743f6fd4ec06ee +796154afa4abac52e7ad6818f2101a7d3bb2cadf517d8b9945d3a94b7a37bbcb +5e8299e043d2565c857e542190b1192c9abd7e9f1d734ab1a09017d9b1188233 +1e7e9f8eb8cb5791b0939390be2f915d12327adcf792a39396a63d0fb0dacd09 +ff5e0b9d91d323cd52385e821996268bbb03f0f2c58b7cfa689c63982d50c603 +c892deb36dc8c66669cb068fb19f78708d862e96e143395af893ec18f3abad8a +1401025700fd9a9e477e39b78282b1e9929920395d9f4cb77afb671af0f740a4 +01321499b5bac27b175405193197f9c463182e8084176704dff84680390242d3 +b26b80ba9aef7d5550c2aed207cab3fa463a3fad2fbde60570a17f8e054b10af +d8268bf2403e94ac9c58b0279c280d188a0fa17e72b733dbba67f3d034c7a7c7 +7eb403d3e797b816fe7c0d1f79f1c0d20281720c5333ef58547a3cea1dbe8559 +1364ed183589730bcf71f8e18dad4fc801f5551801412f996f8d65b1df649812 +f2aa5cc77ac7e6e8f0d98e174a57c0ac7969523aaf7e9b2514acb3222f99a84c +d63e5aa48b96bcc0d1a5d9296fc77c637d20bf1de5b4fb102c8bb0bfda46774e +a0f788702b89b1d271a1abe2bfc1942dec066072d2d3f730c01a839d000b9929 +0690c27ba648761ef907db118873161d4a86c1355c875a8abd699bbd0b75b155 +7736f8e70461c14f7c8889de01455aa40845e2985764053bc005dd3186f513f6 +4eac7bd28c274c5bed25333cbef3a221c975cbff8f5979c7ca7dc4fef8ad2ab4 +4e4bd49a3e505a86c07a46338a054c9a2b155c7680fd544628c793731a11bd99 +85b968dadb55c3130efb9ae5da3a0e4561af5e888b18acce732587546477ff80 +4eda2b12862c3aff56323d76a33f0739c655249305ad68a49d73afd8b4ee6a89 +0d2f1793b999109f5997e0a3163090c1369cbd67d9f7054084d6a5c33cd690f3 +7039f15f6a34f84a97d74fbccf7df103aa4e5df20919c5cbd9239eaa20e7a30c +261b872085835c90fc6f61c9a27dc5e40e02f922a9bc444f9c567971458df508 +88caea9fa731401104fede6d8c55a0a209f5b47d9b2e1faf7b93b1e40100b48a +7664930facf6ef1b1c45356f31feeaaeca1254196fd8e6f242a18811afb5af21 +9e9e49090d21634e2f904c6325934d5e7ac92537da11a937d7eda49d604226e2 +a87c1a7866e1eb3c15f5547cfe70c4aed987c0693f40a1c59edbf83bbe2fb94e +7ab4ccef3e61177373bb8f4cb731a1351aa465a71c1ecb11ba22a41d8ed4da28 f0a9b97a66cca15db4f67b3fc02cc9a30d346adc0182a1a25cebb6a60d04a7c0 -60fdcf3feb60c735c8381fb7b420c9b7d66408b91bd63c1e2b4015a436c731cb +dd1c2b0a7f3da10495990563d4aa0291f7a9678bb34b5c2c248ce03cb9e6b40a +83ed96125a09c6a44132a796bde8b7cfd1b7a2570115afba3b8ee9bb1b5311c7 +f2933541b288fe96a9b2f93873fe0890cbfd03df9f7a227d2d620d292d965b58 +fddb94f850d234d4870150812d16bfc2ae715ff67498c1b33acaa894b6e5a924 +cc9f6cf8ac765e680de75ef675706f617b3f55f449cea8ce7f1d3e7156d56e2b c6c2401e683f9ff1f7a842f047d8348b547328d99c6e3b7c020e28e2d76f802e 7284053e63d6ecdd6a1fd7652dfde9879db49e373a9100e5f0e809fc321973a0 3e2ecff17d797418a1a5d76f187e04589c435a654cc673cd26cf956d2004824b 658f5832cb37d4ecf4a99ed412cc51cfda06a6a20f75acf5c8042f34471e42aa -06567a37846cadd42c2abc9269f0565933bfe83b3af21a8355719a5aa3336ae8 -cc9f6cf8ac765e680de75ef675706f617b3f55f449cea8ce7f1d3e7156d56e2b -1cc6dde599434cee96f7f902302dda99011ac6fbf658c67ef2bacb3d833a829f -1401025700fd9a9e477e39b78282b1e9929920395d9f4cb77afb671af0f740a4 -4af8f9baebe95f09d94b4bfd84eb0e40fd0dcf94ea9a916f790074b0fb0178ec -7eb403d3e797b816fe7c0d1f79f1c0d20281720c5333ef58547a3cea1dbe8559 d62de862d1945bc26b1ab03a52f824935ff56f1cbf42a576cd30a1bfc56e1dfe -f6f320848b6d7a76630decc2673e2efb110bce2378f2d5d13fdb48ba884c1fa6 -1b87cae7ece0269f12b7d6e05c20ec604e1af083585b4db7b95386de332af5ca -9839459692ba235f41b2848f1e6e2f453f0636c6c31389f112cdcbcceb2e7df9 -4e6e89304a2f551fa660b6dd4d15d47757f443b9ea2adb5c0a3f1620f5c2ebc8 -d8268bf2403e94ac9c58b0279c280d188a0fa17e72b733dbba67f3d034c7a7c7 -7005eb763cea301c86e5c5b87995c16dff71fe9989aabee51a48340a365febb8 -bd56d8914979e7ef7b000663c977d74323ef51f110a7720f94aa8bd4bab901a3 -2af29573578cf55118c8c6d3bac95887ef7c20a0cd0b782e608b80b92aff0ea1 -33c1f32af9477a8f7c548b3bbdc36f1e8718f51f69edc2e188651f296ef26ab9 -97a23b7e4ea9c25b1e0474830c3dd25e138dd5bc21cae8b6248195dd33791c73 -03d3b51f4d9f6feb3c27d74f6bbc736d4b82fb913ce92c1af4db488933d85cec -a33209ea85de442115cbad15d34c1d380d7644762cf92dd547e4ec282ded6fde -b5d3c7844be6ba6e3743404617074e8f36022d1cad3984a19f3f86bfa5f5873b -e4db2d84306a2ca488ebe1d8099bc0f5d355571e0643c02eb7030b4afa2aa971 -5bdeae4ee68af5210922d314535640186268012bf24185616f8ab169c614b56a -1bf7e3b41e917a8110419403a02baffdef98da621b7b78068c9313a959c877ab -519c81bb189641e1b578970c31e502fefb3976701347ad2500b1e34a233e324d -b53121907425ef5ba688a54f1cf2a36598bd070fdada6d9e96afbfc417f896af -8ff7bd41d5bcec3ee55e2e7a081e42c28b3993b9faed97ff326035b68df2d7c7 -103e930a4dad476c9c2d8e58ddff8eb83feed2ec67cf5e5ada4e159d3dc4171e -d0fa3356fb263009d4fc8d7d6ba59963a560baba8da03501fdc411ff26b76ad6 -9703993c9f792b3249dfa34ff79486aac0c5ab93d242cbc99fe7c29648a1519d -0690c27ba648761ef907db118873161d4a86c1355c875a8abd699bbd0b75b155 -7664930facf6ef1b1c45356f31feeaaeca1254196fd8e6f242a18811afb5af21 -7ed9904f2a18765bcf114045d80432e4ed17bf34398beb731640d767a235765b -9a962ede107e9dbf1446b90edcea263e4e0329bda913945c942e2cf163a131b2 -9e9e49090d21634e2f904c6325934d5e7ac92537da11a937d7eda49d604226e2 -a87c1a7866e1eb3c15f5547cfe70c4aed987c0693f40a1c59edbf83bbe2fb94e -d96b8abbea5a9829f8307009ab8be44690592fed4b6a8a36f095faba5994a908 -11af62a102b611ecb44523dda00d88333c60a82dad37d1b788dce1bb37796109 -96339705465f96c1bb9fd4d0794541d800dc4e09899ac361f3340243eec262a4 -0d2f1793b999109f5997e0a3163090c1369cbd67d9f7054084d6a5c33cd690f3 -c70c16945130e196f9c67e3fee330b0a549dbca034932785718946542a81afa4 -6977bf58e30728ee7e728c5d6e1a54f77e961ecdb7f7878d9c6cb66ae3cd8185 -97ceb5fa2a8508a15fdffd58c3964274ec937605292139827dc8b7c7effac2a2 -899e497185cc1803ffd86cb066253c1a02a2f2cb1d1638bf11bda2931719fcf9 -298ef9d30184ef7324454cd741a30e4cf7534f2a6c85b19763fec7dea0126178 -8b560155c1240016b6f1400bb53026b0791c7c0d784f0afd2a31251a9b5c5dd5 -261b872085835c90fc6f61c9a27dc5e40e02f922a9bc444f9c567971458df508 -f2933541b288fe96a9b2f93873fe0890cbfd03df9f7a227d2d620d292d965b58 -dff75bcf43b8b0962e1e21838cc6e2d00a6ef02d95a9c6ea785c37a40bd56413 -42b7511e313cdd893200a92d9a49a91a41321705737a6f0c2ec69e945244890c 223331431eca79c16086dedca44d6b40bf07dae7f92213599b1be57b4c59fc60 +beb17508e483c079270952af15ae6fefce3dbf176830a75b919a93fdff69cb32 +67ac48d7da0db58b0af12005631b1c9072a74bf8d3e40e75189e0a5bd53c7a0e e4cc146d80927fb85e975684236915db7c7e71d5ad0e05b595d03527909f8b15 28f7a397b1ec84fc9e5f1f8071b824cc071210ca942618a1a95a0596a646d01e b8155da65549c3a4ba7459185cb1d4dfbc5c2c2bfab19c2ee172140b459a598c -1b389c93b9724d7a6183ff9d15cff8ecc79504d86de136c63211529a0ba6098a 8e5d2c73f16db3465998dd683d089d8e2aa810781e71d4973e84bc5eb6f0402d 0df4c61bd5dbbae778a595f568b9e5c62be14de45c40294df5795c31d43f9221 a8956e278741124dafe3bbc80935050f96dde750a99fac0df2f3f6797b704f78 @@ -301,828 +239,612 @@ a8956e278741124dafe3bbc80935050f96dde750a99fac0df2f3f6797b704f78 7d7be68058fb28b05626b6ac91b5c40e12f7fb36ebce6ce5fc3fd787f97e8fed fc392a3a4373eb3b5ec958c0638d48947cf11b0c4632da94e0e36a8993fd5dd9 b26fb04a5fa4f8b18a8e283a15a471230e1e5fffd30fd8dc4f57a0a1722cb270 -1364ed183589730bcf71f8e18dad4fc801f5551801412f996f8d65b1df649812 -beb17508e483c079270952af15ae6fefce3dbf176830a75b919a93fdff69cb32 -67ac48d7da0db58b0af12005631b1c9072a74bf8d3e40e75189e0a5bd53c7a0e -5bfddc04dd473fa5f66d64953db2ec54345bb9243eade72e08185fd90ce4a39e -f3ad74ad35bfcaa5a1337ccb412f3dd75e28f14f94b2996aeae07ffd7bb8afb5 -7736f8e70461c14f7c8889de01455aa40845e2985764053bc005dd3186f513f6 +53af8b0766e295e36c2a825107fae5e9afebc612c129d6c9b9f49f31088d3f18 +8b8b6e6ef79ee377cb877ec25de30e975444ea26d97aa5fd6a5728897491b59d +bd6c0982cdf3673d593e51429b6e00aed22caaf5d542663b47c168d7b95cbf8d +1960c5c74460bd4e6e0dd43ba6ce22b10566ee890b324a5accd6a55dce6b583a +64890f48f2b15cbb8d7eaf7b0d8766763396dd40c825ce9621466f163f62cd68 +06567a37846cadd42c2abc9269f0565933bfe83b3af21a8355719a5aa3336ae8 +d23c777d0f6b79ea799659345844b116cb06f43b5d8b88af330a10cccb374417 +802fbd6b3e8816a4375caec919cc6d2bc32788b26dd416bd40d584afe32b11ac +1dd32d989bd71c1bbab157ebc062696cec35fb719d91e82c8754a91e92f57194 +1b389c93b9724d7a6183ff9d15cff8ecc79504d86de136c63211529a0ba6098a +7871fbacb811b77520185d6e566d591a81f90d0732daa21d49a006fb40c3c15e +097df028f48a7b2f897296385a4c4c84c81c3a33903d4b65058ddf777af805fb +bd56d8914979e7ef7b000663c977d74323ef51f110a7720f94aa8bd4bab901a3 4a966a0e5f8ad8b63f6e3008b53929e9bdcf06fc80f7fe82dcfe566db50950e2 +5d557a9146084fb040a3ba3821252516b177bc58cc92ac80e7453e2e48305d34 +19900fa683a0a608d0561d96dae615c611e80c473ce329bbf976adbdb1324c5b +dff75bcf43b8b0962e1e21838cc6e2d00a6ef02d95a9c6ea785c37a40bd56413 +c533328538493b161ab22b5b21608f2376b0904fcc661014f6789b565c80b17b +50b07d5766b622b4f56e7b14c54ba7e3d005fb9b7f4b058d42acc472f3cdde99 +2af29573578cf55118c8c6d3bac95887ef7c20a0cd0b782e608b80b92aff0ea1 07b47665c77f8824b7d254ec23f9557cc602ecc448f6f441875f1070e631616f -0f17db0f0057ae61cf7ea6096d8a50f8f873dcbcd943091e2d5afdea02978041 -a2ae3e8f3106237a29b4af337025a26339a48a6d41567a5e799c3dadbed8ee5d +3552b619ebb46f767e7d7638db8ca166a044abf1f9bcbf5beaee51bd80b259e8 +f6f320848b6d7a76630decc2673e2efb110bce2378f2d5d13fdb48ba884c1fa6 +1b87cae7ece0269f12b7d6e05c20ec604e1af083585b4db7b95386de332af5ca +9839459692ba235f41b2848f1e6e2f453f0636c6c31389f112cdcbcceb2e7df9 +4e6e89304a2f551fa660b6dd4d15d47757f443b9ea2adb5c0a3f1620f5c2ebc8 +a54ac8afc3c6dc6dd5f7421e1f5aa2a8dd47c9261de3fabe8a4cf811ed4440a0 52ab7cf7292824041f8ad6d45a64b8cf768a19b5d21e6b53cc8072d2c3df69e9 -7ab4ccef3e61177373bb8f4cb731a1351aa465a71c1ecb11ba22a41d8ed4da28 -f7b32993e5661554730f5deee7004594c4539ef21afae7741584bb46a6fd20ac -c1317ace4697bb4b6a954561e8d98dff092b9ab16013a21f089148fd2b0cb01b -cad7bac7deedccf53adb059f5f1686d7f97ee15a0f0d3b56f4e54d477092cd11 -add4466812a39d41a59f23c14e7ef5f923d498a415b3b5a9e243db0d1ddeffbc -9a8e6e5702e567cec516ef2f53d8d90e0c0cd49c71d1a3d62de36c18742b39b1 -7871fbacb811b77520185d6e566d591a81f90d0732daa21d49a006fb40c3c15e +33c1f32af9477a8f7c548b3bbdc36f1e8718f51f69edc2e188651f296ef26ab9 +7494ca987f52215a8c4b7fa34c5b7f055ec0977d95753abf105a4a89e36398ad +41671c742a150a339237ee364a18347cc82273d67013b82648ff7c0c029ada9f +0841e13a1385b570bb3fb787fd613e623ac32bc3b8c8c6d77b95c6bce57913ef +16eff1df7b6dbbf538c53d2862c848da9693fe29166753ea1f32d25544b6d86b +d65d1f550b9a5ce05cc9b84ca23b35896337761f47c76c9124bd58cd0c0369cf +81b3b214a11d78d72f44384710db6c0669b0389b8a3ff57483c9ae0bfb48a0cd +30f084abfa05053fa8669ebd1b88a75db76576408a8ec055416a481b92e5920e +78916d8645652a97356502ebbec2c258ec461ce55eec41c78a9eb7a7da43db72 +82f7ec6dfbf9bb507d69da194bc0f1c77cfff635f3fc96cd9be3f155907459a7 +6f044006e0f8e505e0ade1518a4d48b29b60f5c3cd19e9d36ad0e27a9a7278a4 +0526ed2c7a5efb144983a4acf9ebad98d8eb8d33290b4f62ed48baa4170a0044 +c70c16945130e196f9c67e3fee330b0a549dbca034932785718946542a81afa4 +1e93897df26f965d16de3666a7e5cea7c5d6a826e4a4465bec67c934ef0df98c +439dd378237970695611c399a4f35eb0ed01ab827d8425f130ef01e378f18739 +7fa7ebfbfe8d79a68ff506c27ded2f25d329e1edc76b2cf6cab5ae8b23a8fb56 +281ca10c0afd57fe65ec03f4ab003ee63b0d19f6cfaf4bc69218d2d624a069a7 +a2288459fb85ba2b6c78eafb25d788b1bcf5f0602efdbb61190ddcd5b59aa603 +9a0eb20e008c91db791295e0e491241e738005679a943463b727b2d4941940a6 +88b18a7cd273df6a7349fac20a5e96828dddd693c078b7641b838155ddfdf334 +e1c6c8650c2e262f08e1f37f1bcb80f9bb1ccd466274360559c345288cb602d5 +5dc788a912b206aad5f17c0f7208ff4c147fd456b0956c835cc66a90453a1339 +0cb8bc074faec722e3fdbc600f3b9213dbfd7e1ad9dd623cf6017fc6fc50b44e +127ae7c479881992556b4db7dcd780b9a8ddf9e66ad6ba036d0fccc90f92ddfc +77f3eaaafe0e39820d9a9f3e35060a4812b18da65332df255a090cb4c80ed140 +801b1656646d2e028fb9fdb67245580b775efe29900c622c1f36d1907ffa43da +4af8f9baebe95f09d94b4bfd84eb0e40fd0dcf94ea9a916f790074b0fb0178ec +7f9bc724ff18d6838b0b1a9edf2f3c389039813dba2ea749970889a4777130b4 +c434bcdf967d3529ff6356502f3d88fd455e6bc8e4d9c532ccfbb74245e981e8 +0d15be900e19b304b3a036428ef9abc5e5ca72666d08f6f67d3b38b41118b695 +0bfde97052ae7f8bf710d2d93f6e2f7c4312014d0b159c6f9afc7f65cf34c664 +0f17db0f0057ae61cf7ea6096d8a50f8f873dcbcd943091e2d5afdea02978041 +ca4668b68ed24e8e2aedb5347ab42e8b522ea7dd40b520a7d0d76b9ab025044b +0e994bce6fbb521a1a97a67717e318fe863699d7b3972021588aab9b99ba4e64 +ce3d9d5cf8f47b944e30e0f039b42da1f42ad72bd678542b28f446101e27579c +d6f6f3c416af59cfb6fc6f3bc789cde377667984e0605264f92df509fa2bc575 +dbb9134b15077990e3b4fcee8555428bfc2f078883e6ddb501efcca6a7af9dfe +a28b24c9489963198ac44c708355b67ba60bf3dc85017f76f9b2374492f95b66 +ae1a8abe5890fc0080bd4d3f53cc329bb58b73ee896ec5d2719f237cbec366dd +15f212bc09cf72c5b3c8e882230e9ab9e139045f0a4c828ac97d669c7dae7940 +6d23245752c483c1818b54975d7edfb6eb2fc2fab6a077738830d6fb8e64e1fd 68f670165f20c4f8a08727c1dd6eb92b394faf04bc77e90fdf3da1033bb7c3fd -a1336bbd99a29ea2f67ebe76fe412ab5ddaedda6ab558b691f3d4a70e4163dc3 -024e73500c65a511234ee4f2cbba24ae8482b59c2021ba3b3fc75bb779892a3e 69481cf47cf64685ccc68100279fdc8c99281cd262db350d41dae9285a500aeb -da92a57ccec105a5371db14422ca22646396c428f4548c4676c2934bf8ce6bf7 3ddd5113dd25ac5156fd99967e2cad71fd379b2b2ba32f43191431d50bae1023 -117aaf616ad1547be97c088bff1fe0cf701a76b5576ab1a5064dac4bddf0ea24 +da92a57ccec105a5371db14422ca22646396c428f4548c4676c2934bf8ce6bf7 +a4001d94a9233f037712b7f35de31b84134acf74f411059e9188bc8f2cf3b768 +4c038564c8550e7986b86090540f0b3ff7f5e591730d57c15bee703bf82bb934 +b72b231e70287cedd8e0dd3a73eafef67e27d7063a80ec4e7a5dac0413709391 +36373533c2dcbd7da81ee367c1ca6cc9d20530c5153c3b870ea543156bef8e8a +bf895a54b0c2c31d18435ae46b70ee47f1ecd6e2f51f3ee59cd6eef092495488 +e76fc7b7910c28fd8d9e354d8fe60fef8008e34ec617c2ca0ebd58b6c844ab3d +517d387a13cf0ac6e6f67580c63abdeaf3d2b1aab71606251369a4c62a682504 7dad48614024ba1e2becdcef5017e14c02b77eba6d1853b2387655853abcd728 -c6b403a62d1f54a54f425cd3264b12668e50a27728ee86aba5ebab3f9bd2a77e -19900fa683a0a608d0561d96dae615c611e80c473ce329bbf976adbdb1324c5b -a6d46bc94d189fd88f0ecf1c709329dff46272f763f7b5b4654dfc9cb8cba26d -9889ad6d0f3652f12fdee137e46115852cfcd2b8650c6d52741d987464e0eedf -b6970b46a55e006d1b66e4cf71d607c15776936f62bb39098cbe2f823a4f5deb -f52866f0531169d3e0e995bc6f4e076024a7150152b02e5a5402f09a524f6bf6 -b934d2aaa349df6167e7612c5cf5c7d9a4029555fd3f703745479c5e62b19abb -6d2e1a44eb44f5de1d4a9bf675a0242b508f7bfe39d033513eddd9b05af4ffd5 -796154afa4abac52e7ad6818f2101a7d3bb2cadf517d8b9945d3a94b7a37bbcb -e2c3381e65d51a2bf34738abdab15a8e9dc774123b2c5c3730775c6df6abb8fd -edf1a5813fd40fbb31f60dd590090017e6debef9f494a388948d6335bac41585 -e1097653c71e000b75ef33457432c62c77f7b362ea903b6a6278b357029bb008 -78e4ad6f958e8b33711eca19dae8c476396345442262e17d2df86b0394dc8e35 -c113ea84a8bbd605ef94492d67463889db5e22f8017141557b35b0f5790023be -1e7e9f8eb8cb5791b0939390be2f915d12327adcf792a39396a63d0fb0dacd09 -26dcef0933fc0129904955dd9604cbc0b086635ebb9b1203ad743f6fd4ec06ee -ff5e0b9d91d323cd52385e821996268bbb03f0f2c58b7cfa689c63982d50c603 -5274dc12379d81494bc0a907f4a49c1cbaca59912e2e6415b0438949a4759b4e +c0834ac98980e228860ef954e563f21b749a407594c4c165e27fd2264e6dc8be +3871aaf82871b34d5b3f1f5c9e56d170e152483014f6702a231a70204c5c1ca5 +6977bf58e30728ee7e728c5d6e1a54f77e961ecdb7f7878d9c6cb66ae3cd8185 6de8b59377f776db437cb004cfb451f7a3b34803153d67876065fe0d8fac0079 -bda36effbc096d06c3d290dff31e6483dd93ec6924a5323c88dc2329796d6bba -7de0efb4b5afbab288998ea80ebbc05f7e04a8147c3fd3254eeebdda3a097e61 -f72b95f11adfa86e0cc159070e4fc63f847fef043ff79930f3fec71e7d24070b +8b560155c1240016b6f1400bb53026b0791c7c0d784f0afd2a31251a9b5c5dd5 +899e497185cc1803ffd86cb066253c1a02a2f2cb1d1638bf11bda2931719fcf9 03f5bd0a3da53ea4de7a317e4f05af850daa05345927a1433120acfaf85b2e24 -b08dd8e779274e37e0caabb9c62ac9e74555d41bcb7662cf2c411af64f1ea8d0 -c01e9437a83182bffd2b2f2fd7b66bba0b7410dc475987a3fffe0754cc217a26 -c13175c938e3f403e540909a5e11b4d78388a98b8d7394fc098b466d8cd41b41 -eb19d975da3e1a7b398a98f6bc0255b11e5a44c7305bc48ddd6f30afc357582c -b03141821bbac69485b9160261019aa97cda2e7c0d0580e0a4cb2a06d9a78bb9 -bb0c45fa302281328b2e3a3c639f127e404f424f05540bdb16104287cc6d201e -2829cd35adc5226ca37e0dfe5e33dccb4d444e07add3662505aea5a835c8464b -38bd56f192cf929341e20be9bed44c48eca5f8aaeaafea93364bc09a437924d3 -1a73b1a7d94b3e65292bb543e9b89889f8113646152219b2d096809a87fc86bc -362769bcb7846c3278c5c3a012a34e73d3ea6b75c16f0eaa43ac2767725c459d -98425e9199000c0dfb177e3f0d718923763ebd4807e772eca895bc6768b72a35 -4ce7091f3009fbb79ae6a32f6c800b775967dfc6098e6d7791d623a9deef46d5 -b4d5b929508742e1b1d80ec182af65aa9b3f824752c719f7f868ed122ce9a671 -dc630a523ddd69bba1395e8ae1e5c5e09b3bb840b732ec77cb58e0a409f723ba -2f7ac1a687be06cb1f44770fc24089fb71cccfd89d600324cccdee8185bb35ec -c68f558f43992d5d342c75ab608b1d7aac0c54c906dd8f828082b78dbbb87512 -ace7ee2696f4233eb9b7be1fc1161367ba18e7732a6126c761f826a021020bcb -0841e13a1385b570bb3fb787fd613e623ac32bc3b8c8c6d77b95c6bce57913ef -892f45f0d6b31d4dd4117e426cbd6fece1870b38dd8732dc47310249861df253 -82c027f6621675d7cdf7b09892a71ebcd2a8d52ecd993a504cbc4e5c8975eb0f -e537711d6bac1ecef536176e2ca96f0e1f49d2d97e5c7e59598bf6dbceb394f3 -220b5e06c1047a23cc38e7cc434ed12e7049f3e22de3bda349d50d14ba1d7eee -465c0c2fc67577ea72fed03c703b20088c9e8b20cbf319f2e3ecfc992a458c48 +b09703aa3602aebfafd0a9a26f8e961e5ab02fea46b8763ccb8777fd574c3870 25769fc7a569aed0a28781f9b21e4a672e414a4fc56282363a784b9c6911c4c2 -0bfde97052ae7f8bf710d2d93f6e2f7c4312014d0b159c6f9afc7f65cf34c664 -364adb47b2b29937ed44aafcc53ad7220c571ffa855aa34ee5cbfbd839fb23f4 -d63e5aa48b96bcc0d1a5d9296fc77c637d20bf1de5b4fb102c8bb0bfda46774e -84a5c9ce69cec019071deaabeabfbec1fb39192256c21e54adc0e6fab1075214 -268cc7fa553f6bf74ff8fa0b1e1634b026f7e9b263b6d9b0d11fe010bad8bfc8 -d6f578d9ebb87678f5414532e1d7aee5b5d790bcbb64453cd367fa21bd55d27b -98f96428557224974a1251b27e4aede05e49adfc2fd47832af7fecaa2bf32398 -a7a75a7a238d5cb4f5372c0125c8736beba594cc3d5aa3a7bfad40497a959dea -05e178ef5e61b682e6a7979882723c7de34e4984d75ecc7b6fdc063e99deafd7 -e4f69d3b7a8a5c2966381efeb2055708ce462937b73f4bc362a5f7c286333f12 -4072328cd818f938c59c137d7d5cba67e3adbaff2cd87b3c447f6f6e81db4739 -60b7302062349a2a027fc6befa7dea6c288bae41e84ab4225f315dcc4559630c -7caf72c076992de5bb24db15004c97da0c135910eb85986ea106de9b9a750b05 -f771abcc6c86ffe5a7d52ae1426e4f3350061a12434b265a220cb3b9bfac781d -3edeabcd5fc164fac3067643bca935d5c81984194a3a48f923a83ed8f63b2c22 -730a5e1878cdd0abab7954690f6276ddf548da4f50af29b13d54e9ffe023b9c9 -470c328f227b29acf8ecd0c2e561392fb5eba574cffca432a9985d58f8f76ffe -fac0885f02dc598f4605e23cc6c61c970a018f7b79d2987e144a153ab422b6a0 -9106a079c941883909fa260020d50a9b694a9591869905182e82fad78f1cd2db -817a2ff30db424c792c2b8d75bde952639fd4fafb1ff10615153ad977de8b712 -575fdef412da126c48e174fe5f15564cf363d1921a042b56ee33f633046e61aa -d1fb19f3ea8d473568b5d7d76e64387ec807b94a2464353bcda50a635acee66d -5f467b8f736b115d34364891a6092167072f59e312bccaa1396bc780cf9f9eda -4130ac060a127f86e8ba1cd7a953222df6537561f015c2b208ac78b42c301ed8 -e3b709f7dfd355c4bcfe4c3641c90a9abeb464184a91cce8a21ce21090affb6a -7c7ea78d5852ddc414d1590a5e71d93a8d387e0fc79e4727894d81a762e3c922 -240f725a10322ea5155bf6c4fb20d106333aac9bd8d309caad4a0b953e960d64 -040d9e1eb98d7010039a179d4be21d392549fbd7680dbedbf81c2838d6ffdd0c +1bf7e3b41e917a8110419403a02baffdef98da621b7b78068c9313a959c877ab +42b7511e313cdd893200a92d9a49a91a41321705737a6f0c2ec69e945244890c +045bcc862bb05ad4d930553262026b858821f3a8777e9a0c19f614f8adc763db +7ab537baeb7583cbaa96ab0aad7a8ff9666e48e5f21d4a18a60384700e3ce3b0 +207dd5b925fd3bf40b54a38aafeb6ff57694c739e0a6186256c171eeeb680f70 +306a1316f4cc6e05f5bbd299851b22ae46c32ebd60e0dba32c63686ee0ab8115 +a96ec364a114d00d1325e104066171490b2a068b9384f63628ca8e5c5b01e4e4 +39a6b04359507f40a03704af38902e01b41f56727cc6ac3259c94b817967c704 +48ea1dfbc502933bc1da6ca3a95fed4016baf58b62c1af1b423c1932bff73c94 +64c26cb8cbbf62885ddd6b25ffcf1681ac7ae33734d6972c9724a4a6079596ed +f1ffdf37774a4ed93a9f0e4ff0acdd890039732d2dc41fedc9ac87ec72fe4e59 +39207da870665882f1db828c522afb4410f6c844fe4874e9a7e9206a3e20700b +05aadee34a129b58b75d14c6d88892aba5e53cba750745065345185845fd8c8f +ed51a553f501e5aa5a8bc4610b0630cebcf3f57fd6986db450732e201a7109e4 +d767c637d3e3da42e13fe617d49a9f7e0085510eef3ce4a0e78eee978f677d05 +dad90841dabf14c12e65dcc4c0484ccf1a4e2ca6617b355bc02aea5f1ba5ff7b +ee7408fe2e7f8b58e928251df122e81e05ccba3305ba2871c5df1e3d15092963 +4295326514606b504fa78a0ea8c057c24c714ea57525e87a121d54b49ecc6d26 +2811dc3d1be43714d6ea9a41109bb90731bb83bbbc14919da1e5a6534a1f663a +0b16db8e6c08f5ca6f2cd5de51281320bf5bb910ac6a1238f271152b9ade85e4 +a1f5d621cf61d8900bff0aa7111eaa1f55a3718e6a5e9673babff08565ce5eaf +ac1a4a40be1a14543d2579c2eb0cde8c447a41c7f42c63743d7847a8fd6a5361 +2400f8e114afafdf863cc5b885577e7eb5f4bb665d59ad4c3c3d02336f6a88c1 +b71ebce0f3251587174fe1ead0e8e29c8f4f0ec6fbbc853b09aad8e5f38ede08 +07aa11bdcc83c04d7e5607c67bc8c9049fd86a29b4a92787c03501b4f16913f5 +7d42eefa6d5fc90c3009d953d78f80714730bf3f894f37277aa5b0788e73019a +67b9f087ebe0d5a3ea85f514628d56d55ae5cb0cb8c05c65cc2318d47b00444d +488ad886f5bb5bb953b8ddf552a8fd8ca44413244a4680a84c886f0ffc507eeb +dba7615c48105027257f243d3dbacae3ab54c904207f9a7eee7b479d64fa5dc1 e47f93b6f682b6893010788aafd9046f411cafe2ee21bb351adcc14f8d479cf0 -ce3d9d5cf8f47b944e30e0f039b42da1f42ad72bd678542b28f446101e27579c -2aae23125a349be545cf1b1220b3f04ad5ac648de82b9bc62ca678a1fec7d5cb -f624a8c2eb499d68ad12a297c642be16f95f1be9d74e037c681675b2d31bcb3b -ee6a429c7954d2990d127a7e430aae39a36a0c6993de496e32d8c2e3afc2d8f3 -b6d7ccc42e309474a6a0d9850585fec117dc4bae216157a829eb5634a32386ee -11fccddd29f350549340ec788eb6fd5319d393e8e4c37d009838dcc32f6fb1ff -985188879264416ee63df9e29283e2476fff6d2ebe95d16342e6e43f0d60f186 +7b8f88d8379877d6555929fb15d3dee064494e36aafa49ab050f5fd5e9a8db1e 07bf86e8efd6b1df59a943ac27f62309b1f364b0dbf245f572651ddef1497c82 -b9f225e49edfab33ec836f2f67e8cf8fe62be882b5db7d70e3ac7f128f13634c +2f4ef9708215278a83b4afc481739d72fb4a32e0ab1e1de798218940864811ca c062bec1e20bb8d362bd817fdc306fe7e0362271494d3447927f32b33740c581 -3552b619ebb46f767e7d7638db8ca166a044abf1f9bcbf5beaee51bd80b259e8 -df3ddafc7262357de69223f09b951dd13b46cab01f0e732a8920e71fe19dcebc -d76c9094e55417d0da50477b71c6afe4f2217469a006aa6f047184847d200bee -42a334097eb92c051963ac3cf3e6e10ce648f5b2b7d3c5cb99af759ce6db8f0e -608ba3d80de3b62a638d72c0098da1e11409051b5d28c53c26681e6c4005841e +298594c4def5a7a4c66864b1ca399b4a8f9789775e2cd933974799da178e1cda +ff0539ac4defb4eb74e8da337dad1d7162668b08b01862e64d16ba6b79e4142b +dd3f8bb7db33ad0d835f5755cc74c9b1b2aa2c12ceec44e45a2ad49e8bc340a7 +2d80bd690255210e0a0be1589f928838dcde966dc43fa70d1354723780bfbd17 +3038762454ddcd24cc1531c777e18f19d9849d30041dc7640483c4ef58a53b8b +a8b277ce1965ab563f7d330f59ab57351d10c192b2393cae30e435a4f9ff067b +985188879264416ee63df9e29283e2476fff6d2ebe95d16342e6e43f0d60f186 6f46cda8672a7d660e2f8cec69ea0c344a2e80e9b1dc1520753dd5b248f5e561 -b5f63504bdf241c4cade256ec7b50e2af600271e733540d696f0815861851dc3 -3a0b1d81e17f81bc939b95dda8c86d8fb3e094624c8dcb0bcc386dfb8867bbf8 -0d8b53b61a7b853a15585e5129e857ac7d0104e47e2f9abc037b12e4b17cc0fa -5ff411985b1f657a13e88608397b94ded01c3cbd9fabf35d71b4910bd7bb7683 -f886079b5e515474b04d7ac6150f80041edf3a30b5cadd8672df9e81e52f455c -a6787a17984b759762c3c940a14de04480752263a6beda995cd5c47bc39eada3 -0e37eb5a34197814cb05b199bdef273b73a6d2513fcfed62aa2cc37f3bc854cf -75894976e962181a200c54977d41d71c5975c10de57834b38accbeff3be77663 -176d30e2d5fb9425bd17ff738c83399d1eff1a0d5995bf6d1884856606a42385 -07510bdbf19ffe635112f830f619b576e3225b4e337f0d35ef38235768d4eb0d -cc4d47024e9564d4838be1e428ae2bd6cdaee5ee9cc39757c9f4a0722563d8b9 -a54ac8afc3c6dc6dd5f7421e1f5aa2a8dd47c9261de3fabe8a4cf811ed4440a0 -4603c0abec9a834a6aafef5b4fa7b7845329939161d01115110b07ff46cbcce4 -457f85e29fcc3b8f031277e7e4666f6d805ca9993fc2f0c023ba1bf391385639 -3df9ec618a7ab2c9489f9c9ec2517878633c8b6327050e88277006a6998239ce -ba1db109d3d87581e330d03e65dd1d6f0e443d7e88c0620ac9bae07e397ed242 -08ef1e78a4095367e127c7636e39b18f5902d90b4ab3eedfd32ed2d1093726ba -4fac49f0ef846f5f3365b6e8e7aaad05e0d62d92d29229c751a7789703a559e5 -713402a6359166b60f3be43795f9311852b6d94ed4230f96f44e690e13794eff -abc3ce9b610e4c2bdf1c41706366e6c84eac7dab6657199f85315173dbf64e89 -df0291d524420253464051254e3961669a2d9aa35a678b8574416de67064f103 -9ecba077ff031b53218ceae09277c165404a22c67ceefa7c1afa31d2b945eb45 -f2acf0f4fa4c8b6c22b94033a45f3ce8160ec9aa1eaecfd86cf9a414525659ba -3bae6cbc781f2c93b349959a364c7f1d62b945622a2bfd28fcd7b00b5e150a52 -d2a658cb618779e9c0e32b1112be65dd2419680d3041c777e2e918fec0985c3e -ea547b1a2d1aa673ec287e733e998599891f364d96f914fec389984c3c6e71af -e7175b849b545a19ae5f73bde21088c8c87f6635e180a4bcab95b3eaad44f746 -7c13b3ac0d8d033eda4f82a9af0cf10da854d197e3d86e653b22c78367ee4c8e -643afb687180376401a40486938c76ccb8d8a56b26f309d8d15e0d405f35f6ee -7ab537baeb7583cbaa96ab0aad7a8ff9666e48e5f21d4a18a60384700e3ce3b0 -7a303868654848c44973fb90d0eadf17d989112dff5512c9c5ff141041477bbe -04f58bc425d53137b9ebe81015772fa158a7a78f7f250e04cc98c67275f7084d -d500b19571b1726b7555b520e3ee5505816cd5f8448a4274562f4558e6089a81 -439dd378237970695611c399a4f35eb0ed01ab827d8425f130ef01e378f18739 -627581a968bcbaeb9965be5c2c6e8dfe07eaaaf47c04144d601ae1104f863b77 -f733baceb57ec43f38a18dba735039c67a40983091bb87afd6ae307cba6e3b9e -a6c2ddab5d3cbb48c603534ba6635709df72f1bf1fc3dee5dd76bbbdd734f229 -cdd158c0a0d82bdff5b9f301264c7d2e79e47570651f67f0836cfb3ad949b214 -d65d1f550b9a5ce05cc9b84ca23b35896337761f47c76c9124bd58cd0c0369cf +54ad84f9eafea39b70af34512d1efbc4cc44121a66ea2f916912ae226006c0b9 +669c6446b835ed2abb8be6ec42ad85d4009f155eee771d04337d9be216cc0450 +f32b5e08ed44312dd4dc87eebc7b57f1fd43cd74aeddee5424fda8caa4a1b072 +c4c8c4b4e2c79189654ff9f7d88393e5814c09f19140f04e55b1f9dfb8148d59 +f781ec4f3210fe0abe5e3036c6b6fbb68c5af853f7805abcf60e614ab8470a07 +39fb5473e9dd678b14535aae8bfe73858d8d3deae4a85f90409fd01e63184e09 +326d0359570720abcbfbd94c8b2420484b6422f597a4100bf247fdbadf6679ef +4ff31616cea77b08aafe30723b2c26a998287c132ae2ab6e385051642891e375 +6c4c29a4d9b71a3d86b93a449d92ae04f37cc4f68edefe704e5c99742439df8f +2bfa9fac19d0840ea40d716f1189e0ed3f025f3a234d857bb7e1f47bed99016a +93cf1f595ac8d95cbb7924e7999268e25fde9125e6e3b2cb547c9b74b121bceb 7caf880f60690ad2053a4e56fc80905d5e828c8abfd0ed6acaf0341554d6f249 -ea79c2ae945c08f5c45c526928d9ae05b297b272121a590e465a36c3039690ca +75894976e962181a200c54977d41d71c5975c10de57834b38accbeff3be77663 +91dcfb839003e14412e5aa90a8f5220b66678b1e0fd8f2ff7656f1f2e025ae5d +47034fafc46dd2de661bc712d78026d362e05deb800fac4b8c4770fa5c45d349 +f7a6a7d4f3cca0b9a28de0745d567c0f76a0d197e6e0e9cf038f88d894dbc42e +d766a88a811e504f11a240466641b16f79e22913e36c693b45551203303b8689 +651d3d15cd67c720584b591285ee8c59090a0ebd63ecddb25df96deb56c4beb8 +f96c824868d59d38926f486bc58ea697f57e73a694294e304397000bca02e08e +7d11ba00dd419b6c810613c35150aff7c8842023f76f5aea496ee897b24df273 +117aaf616ad1547be97c088bff1fe0cf701a76b5576ab1a5064dac4bddf0ea24 +f72b95f11adfa86e0cc159070e4fc63f847fef043ff79930f3fec71e7d24070b +f968896da3071ad93ce32c5604037321f20d329ed8ee7460e8bc1eb57699cc11 +441addfdb7ed114c033bef6c6560f13aabda1da4e2855727e0281f715936825f +1069a8297a96ecdd987c975905d420dd4d2b94dbef1914a4af294a3509fd6e80 95afe2c38a58919edd94178ede7b3be71146b831563c69f9dc0809bfc9bfdc72 -045bcc862bb05ad4d930553262026b858821f3a8777e9a0c19f614f8adc763db -207dd5b925fd3bf40b54a38aafeb6ff57694c739e0a6186256c171eeeb680f70 +11d2e1f351394e9afd3fd561d758c1e23d65723f66daf08268ba07e794bdb29d +11276d9cff6e97e4dc70ed5e45f8361ebb240d5f208a8aad9d807da3094a0d65 +039dc7156f8d2210a3136e670638ee236f560a84e2ec239db3c6728d5be10ba3 +046ac6bd6752e9d3496289d761a49b2a4787a33e253401172ff36392d42db73b +27cc3035e74126bd5762c295a2cb384bf572d296e6936d3941e58e70abfae223 +c2d781875f992eac370ce0faa9e606d8d0a53930f3d30e5ebc6edda406597d4e +7cdf92543f32609c353e765b012db568d05c31144d6c4964b4a713ad7bd0dcd8 +7151e75250239fdfd37246f6eb9f20399aa6869430309b1bfc622256420840e2 +34c7ccfa4e8e20644563b2651eccb64d7bc31d3e8a681bda769e7c17b9bdc881 +c6a868e0d22945bf46ecb0df469c11a30485da01f6dea71669adbb95a9b3f8bc +701cca74fa1dae963b0949dc583e4970bad2f27f5618a09e700b763f822819bc +87c9c83a2974fb47023abe3827da17428a4028192e38b1c89bd65c1e196d3e42 +cad7bac7deedccf53adb059f5f1686d7f97ee15a0f0d3b56f4e54d477092cd11 +bc8abf0c2ad8027211595630f6e65eeea97145ebae192fdd5a47c9d5693cc7c0 +645a8611f80c7494449a8644b831563becdd4dc27a5c451d2428cb0fa79eeee0 +5a4e2ae70b108a9881be2f89b28980e48d4e81614af16be4b6a749511e0d4acc +f2a13c19986eb0b926519033942411aad2244706cd01d2ed0b191bda10a79207 +a7885f0b559ef89848795212a6f80eb28c351cabd5f2209c93f473768d38fc80 2c5e732a3265796cfee9d92ab1e728f401186cf967194a2784a3982dea570678 8dc13ba68b4259cf1498be2fa79bce99fcf62f90f3118ca375d92aae6ff894af -9a0eb20e008c91db791295e0e491241e738005679a943463b727b2d4941940a6 -281ca10c0afd57fe65ec03f4ab003ee63b0d19f6cfaf4bc69218d2d624a069a7 -ee7408fe2e7f8b58e928251df122e81e05ccba3305ba2871c5df1e3d15092963 -01321499b5bac27b175405193197f9c463182e8084176704dff84680390242d3 -488ad886f5bb5bb953b8ddf552a8fd8ca44413244a4680a84c886f0ffc507eeb -2811dc3d1be43714d6ea9a41109bb90731bb83bbbc14919da1e5a6534a1f663a -0b16db8e6c08f5ca6f2cd5de51281320bf5bb910ac6a1238f271152b9ade85e4 -013295a1dc26d4caa5ee29676e7afe1acbe2bb35eac87ef8430415d98ec57012 -4eac7bd28c274c5bed25333cbef3a221c975cbff8f5979c7ca7dc4fef8ad2ab4 -fbb7b594c89df8970f9c52689814adfaed19a6028f0220261e3e30be0fcabe10 -63377566ff48bcd51e5ecbc8cf0d61fbed98d4ca4d14928e46bfff0054eb1fa7 -4928b35d4a4375407d4984352ac715787a026bd60133644e9a4a496e9e17a73e -3a104d3ade01ab3b7f3e29915c8e032354aa811d0476f4a16322aafcccea4e56 -c3bdce9d2a6a9a5bec080feeb96babd80644d1a53e39e0340e695d50bae395fa -9fd0509589d6f83538f5b7a2ea6a4d74a061ee1b4118ca833820683856aaa28a -ec7286cd86bd479efc98d8af58b5b3c13bd5b4733266485cfb72016797409355 -f3d3d75973a0646d8b93fd27f4dc58c0f27800502dc773186fb3a28aeb53ec64 -a60ac4cfdea2a39e53241ad5636f993bdef01463e81082de8b41b0a83b6d8654 -7e65af60e9c8babaf0dded1dae5d84bc6461c23b2b61a59cd2b9984f880b0abc -86e07b9b5052aa371de87260945555c358155f7bc461e8d5b50ebd09d19c8380 -f35ec75fdc77f1b7e6ccca702bf66dd787e6c3165d4037cf2943c59e5fe63839 -c9a782f519986779d6f37be3d9309bda4cdfe58e12709c1b4da5e60217ea18a8 -7ca940f27837c872dd94a4223ca3c1e0e0b30e9c3db060b3ea0595120b43050e -a1f5d621cf61d8900bff0aa7111eaa1f55a3718e6a5e9673babff08565ce5eaf -ac1a4a40be1a14543d2579c2eb0cde8c447a41c7f42c63743d7847a8fd6a5361 -2400f8e114afafdf863cc5b885577e7eb5f4bb665d59ad4c3c3d02336f6a88c1 -b71ebce0f3251587174fe1ead0e8e29c8f4f0ec6fbbc853b09aad8e5f38ede08 -07aa11bdcc83c04d7e5607c67bc8c9049fd86a29b4a92787c03501b4f16913f5 -7d42eefa6d5fc90c3009d953d78f80714730bf3f894f37277aa5b0788e73019a -265ff1c60d30b1cf11ff069aaa39d303bfe20ced38b1794dddc3d67d5322805b -645a8611f80c7494449a8644b831563becdd4dc27a5c451d2428cb0fa79eeee0 -2f4ef9708215278a83b4afc481739d72fb4a32e0ab1e1de798218940864811ca -6fd1af0ad43bbcf728184c6bcb6a48f1eedc2bae0066a9bc42fa9cddb1de028d -d97dd52b18670c246b5b389106b35b96b05bf678f2ff17dc6b0e97023d3950d3 -5c940b126e3e4e80148782f32aada256737ca6479dd9fe53c74f0793f0861f88 -df8b130db7321fbb9346d6b53d7b58e9f6d06afc77de17b3757a1471ea507869 -9ddd6f17198fbab21a0ba18c7cf2b5f37511a2193b018c9746618dadc42cbf90 -3871aaf82871b34d5b3f1f5c9e56d170e152483014f6702a231a70204c5c1ca5 -d24eba880a83cb5c3b23031778132f7a32a592bc4cf17312ce5f37b170c061b3 -e72d4ac01e830056a2e59decb441e983d99478ace0e976bcb6c4d129542b4b3e +e537711d6bac1ecef536176e2ca96f0e1f49d2d97e5c7e59598bf6dbceb394f3 +7caf72c076992de5bb24db15004c97da0c135910eb85986ea106de9b9a750b05 +2450129d3fb94817aa50d0657aa50c40e41a0e2ac1c801005604457262d10ded +aedc3cc5b83ad3e2f6ff5729e7ccd3917f74917e85ec4f01a07a5082b2da5982 +abb37929d054efac2bfa3a27e161c3ea83bab536cc5fd8357b7609cf76e410a2 +a0f648f1e14453d1ba1b2ed55ba3313d4c06f2d4bbe0ba80115f58c1a30686aa +3ce2cd3a62b9e4a55ba93f1ae35c8a1719fee86167e555bbcdb61846801cf5a6 +7cee578215fe3083917f6cc903658b829ed48855e0bf1184ba25e4a891d7b38f +39ba3110af35cf534115c7cf0454e6ee0f794dea2022729bb55ddce066808b97 +5661fef3a650d471443d266de66ae4b8f732806d90124761a56df096c380c92c +b9f225e49edfab33ec836f2f67e8cf8fe62be882b5db7d70e3ac7f128f13634c +a1e6f8a6da1a9a63eeace306f5f25fb32dac58301afc7908dc98236618396579 +55cd37e46ccc0186c2ed4992a19f88882e136afb8f2df63a3b488218ad946aa3 +6ed26ec48723fa93c261054c395595d6079f55b1137a5670ede801f14c37f4ca +d05141eeeb467a622d8ad66f4c06137667a000503049acb5632d2bccc6ba7956 +a1b10a3936672468789a594c2180d470aba330f9eec77df6d15cad95991306d9 +df3ddafc7262357de69223f09b951dd13b46cab01f0e732a8920e71fe19dcebc +ff3fafcb58d546a36fed36931daf9b88784770d5aed6a507d78bf08d545eabd2 +6f7d353fb1c3af2694b54e268e9207ea59d1b699f56fc38fb0b4f410c1b6f36b +dab2352f68395c0974aa2470beca4a662b3b1081285133ce6904f398d6fb1ae8 +4d3af0600554a229bd5e12822640d2a266ec6e73148289d671c5550c04f1c56e +ff02f7cf451deda817d588a6a427ee12742c9579fb79c2ae523fde28ae12d7c8 +637c4ce02275c033abd0a61743145b6ab1ec2b8bf0aab010e7bad09cb952bb86 +168c200d11549d5dc869e4d6ae1776df9b0c826d7a8c91fa398a46c5c4751230 +c6b403a62d1f54a54f425cd3264b12668e50a27728ee86aba5ebab3f9bd2a77e +9a8e6e5702e567cec516ef2f53d8d90e0c0cd49c71d1a3d62de36c18742b39b1 +392334c51eb432b855b42312f22809650738d052817c386b2d977c3dff73349c 7a126647dc3d67f451311abbadc653150d192284744132903c0391cdf53fb775 -eaa600a87b48bd3657c05984102b2b721cdcd8ae8d9d5b3bd224aa9d5cea4169 -3fc32c3b3dc18000567f09f1eca85919ea78d102c9ad59dee55ce5580e0d122e -70ac8a1459a2c23b25dd2171186750c54db098b8d6d214f3a1cb9c91f7a4545f -49d80493c154495f3a37c6e6d9d7f6a778bd446e78bb2d0f6b3bb9fe1e9c20e6 -9828454f217cb6808a10723946e745053d79f21ab32a3c63d844d1c14981415a -c4c8c4b4e2c79189654ff9f7d88393e5814c09f19140f04e55b1f9dfb8148d59 -f781ec4f3210fe0abe5e3036c6b6fbb68c5af853f7805abcf60e614ab8470a07 -cdafcca089590bf2f114448a20560127cad8a038fc9dc4db56592c3c8ddad976 -36d6c6ebe044e5bd11c9d4968b412ddc7f7b3861091089418e41a3ae4294c4c7 -3f9e7f855027d7d6f3db697ce76b41323805d879d821224ffa77c8e0b4ba9118 -9914e1d946c72ac4359706c114f9e769752a6fd1f3cccb14a7c132f7db8e373a -669c6446b835ed2abb8be6ec42ad85d4009f155eee771d04337d9be216cc0450 -5eaa449ea80c7b899ed2423a6419134828fdb1c95a05fc633248c76759d743ac +05e0a6b5831d424b4a5a15d4327a4d58912592c6bc276850f40b3f8dbe9dc11b 160611167dc9b4c26146db926011d738d8aa5737c40898ed1cc7229b037b084c -42411e36049e5b40425ccb17d66de7dea5535a9aaff06c485b46724953c9ca78 +3edeabcd5fc164fac3067643bca935d5c81984194a3a48f923a83ed8f63b2c22 +22c09e3e63325f7e59d179503dd5a5c8cb47280a65c1804527e269f16d64257b +66ff2fbfc811dd292770204e2c0bb341e79a3983e06d3dba57806cfce215aae5 +e889b04c26ced952e274295c361b8ac091675a74d1676a5476b6b59f3bb863f8 +42a334097eb92c051963ac3cf3e6e10ce648f5b2b7d3c5cb99af759ce6db8f0e +0319b25f8aceb5b26f50bd2492e0b58cee82a1ea363764778a75396b0d8806fe +ed9f5648ad024995113b031b7e7e28f14bb8a8b158ab623e1bfa47369ab6549c +1d15c5d0d8cb8c943e1f5938731b0639177a7735080ed3127896508b39343446 +463618c9d140a1647c57ec49ede38ba1f9448c766c4311f4de107460e2876e74 +5d59da2f8dfe6e6bcf5bea27674891a1f70d1f37bedf5f87dbdd6e87b88728f3 +a625706b3edda1762a075bba5299ba80e89e657961d2c828a7fc3008190c64b9 +e2ca6f1b2cb0217a97918cadc778464843df5bc64ce53d5c316b51a88caba2ec +2dd773e71f63d9c03b8e1d9da398d525807d14e1a0f992488e47e686af48856d +8ddb7fc82ec8baf3c4d3135da8f40d6468925d01dccb01678351e6a19dd8a187 +a2ae3e8f3106237a29b4af337025a26339a48a6d41567a5e799c3dadbed8ee5d +36d6c6ebe044e5bd11c9d4968b412ddc7f7b3861091089418e41a3ae4294c4c7 +71bd2d163bde2a4dfa155a3f2ffbaa4586650c0f18123d511897e98f5035d397 +ced856f750aabeefbab75dbc00f528490732bbec8bdb0f7ee4c429428c489d03 +f7a19a04950cd2de96dcb6d40804b6aa7b93d13ee45ffa89d1aa6b0112f5b0ff +d26ec68f4a8de230c260a37f6e0ca64d37003e7463f3394ad6856f2f532fcba6 +c1a46710b7a46e288fe4320da8203285b3bc86bcc2611c0066c916272b324a05 +2fa6608ec030a3a1e729312fe747228fd3ccab29ce1b34f112d861625c7cc519 +f5b817445c2df1d76d7f57729ddfd3002c4cbb2c9310d580f0646297fbd40a23 +89d88aa4701fc8afe67b6871c3cae0070c79900a4c0ca2eeb0aa11d6b453dd0f +3511de76972a27609eb0f7099277ff2b8000edd74962a1469eb0add2705665c0 +9ecba077ff031b53218ceae09277c165404a22c67ceefa7c1afa31d2b945eb45 a4c7349ee82054614b3f572ebc6407b404a141ac40e39f014d433c6e4546a54a -bec91311457d7dd90a4f4fa2f702f7839df02eb8ec249819cf713b8a2fd135f3 -b48aac01954957f25bc94e250549ef939f4c68b23b724ea74b251c98ff547406 -4b3e7110c0d2530df209fa6220cae437687de65c8e778fb4378f09f30606579f -5331ff0a363d439bb81d4dd948dfee657c3c574802b6121688f18a8adf22374f -b09703aa3602aebfafd0a9a26f8e961e5ab02fea46b8763ccb8777fd574c3870 -a0f788702b89b1d271a1abe2bfc1942dec066072d2d3f730c01a839d000b9929 -d3498ff59cd4b517b50326c74c487d03ded7e0416bea046b59d80d7ca7272387 -96ba6e6dc41e037a4161c43b0ecdcc41a02c4646cd67f7fde4839d6e30299b81 -3629de258182cf4ac67476ad6eb39e8f8611eaceb0404b61d23f3833eb0abea9 -22cd12a8c47e310d4a8180412a53273f222c7aa1bf6042e49b4ecf491b5072aa -d54763e40d7c730668e369beef8d67299eb4df9d4ff5bb3b98d7ca52539bcbc2 -5e0285293faef10a3c97f7570688bfa75dea27af4186b33fd6395b67398fec00 -35873026dd1149bcd15cbc7fdb71c8e8b704dfacbe65cad50d834b27ea774042 -67eeef4cdc88e0fc4591ff511ccd001a0bfc13f039a49b5f4e2e5729da7205f2 -5dc788a912b206aad5f17c0f7208ff4c147fd456b0956c835cc66a90453a1339 -974e9434250fd63b91112443c00d5d64d860a7686385e6382a479b75d30a5f70 -0526ed2c7a5efb144983a4acf9ebad98d8eb8d33290b4f62ed48baa4170a0044 -1248ea75ce4301c6c7e3a0958afadbcaed1b68f3c2ee3910c8b8f30dedcecd56 -67b03fff7be275b03f09e082e771c876821e61bb22155f86342b54e723ff8bca -dba7615c48105027257f243d3dbacae3ab54c904207f9a7eee7b479d64fa5dc1 +220b5e06c1047a23cc38e7cc434ed12e7049f3e22de3bda349d50d14ba1d7eee +add4466812a39d41a59f23c14e7ef5f923d498a415b3b5a9e243db0d1ddeffbc +dd745c0a05a7c832fb395606a1468364a5a36911ca23de538728b6fb6de97b4d +84a5c9ce69cec019071deaabeabfbec1fb39192256c21e54adc0e6fab1075214 +08ef1e78a4095367e127c7636e39b18f5902d90b4ab3eedfd32ed2d1093726ba +f624a8c2eb499d68ad12a297c642be16f95f1be9d74e037c681675b2d31bcb3b +c300137ec88c0bcc42558bb00cd377048688942d7f71e0c064a3d9b1751ff61b +b205142a83648a3b042b1ede7da30ba12746a23b11e8d075349b17d6bbcb867d +cc4d47024e9564d4838be1e428ae2bd6cdaee5ee9cc39757c9f4a0722563d8b9 +a6d46bc94d189fd88f0ecf1c709329dff46272f763f7b5b4654dfc9cb8cba26d +f771abcc6c86ffe5a7d52ae1426e4f3350061a12434b265a220cb3b9bfac781d +2658579ef19fc30c16a573883ac4b0d97b943fe7f4c8d3437fb94c4aeff6240f +3df9ec618a7ab2c9489f9c9ec2517878633c8b6327050e88277006a6998239ce +abc3ce9b610e4c2bdf1c41706366e6c84eac7dab6657199f85315173dbf64e89 +72ff75266a6eae6461130f0487b8bfe2dcf471dee61cc6bc1d4c60ce9759587a +713402a6359166b60f3be43795f9311852b6d94ed4230f96f44e690e13794eff +9106a079c941883909fa260020d50a9b694a9591869905182e82fad78f1cd2db +470c328f227b29acf8ecd0c2e561392fb5eba574cffca432a9985d58f8f76ffe +024e73500c65a511234ee4f2cbba24ae8482b59c2021ba3b3fc75bb779892a3e +fac0885f02dc598f4605e23cc6c61c970a018f7b79d2987e144a153ab422b6a0 +546306d2bc307645534e58e2364dcd5bf342084ce38366b961ecaba61c5cb02b +99c93d938649e1dd5d0e6af35ded02d574b60338f3f21aa031b57e3bcd6f9b24 3e403252010e3f1bac62e325a318919253cc3d47d0c408aa4fd2ee7d81bdac5b 50d7b599606078402612e0f650a24326ca65360d4946cc7b62a23dc0639e0033 -4e4bd49a3e505a86c07a46338a054c9a2b155c7680fd544628c793731a11bd99 -4c038564c8550e7986b86090540f0b3ff7f5e591730d57c15bee703bf82bb934 -9e9769201a31a3b2f4b6c856cd49c34a97b61185d487fe64c81bb08a384b82d4 10c5dd0d943008f61df52ba020e877c3d50edc5a13249ba3cdef75cefa7b8099 6499ff42493740187b1098a7ce2f732c150fb65918542c3c2e3989f074f72d33 a7992e04276bb786a9222166c1ef100d6c011a4553d864c09f7b85dc33b4c175 6e07b825b8d9cebc2e54754e2d2a06260b65a4d3b1c8e75f3da3fb496c295c7c 6c0fd58e39eb116c2a77ea129f3f2eb76cae47b2a202299b37ca6e0795f6e6a9 67b831d200d7a0ffb9f2ac6d0dd16a064e0b8c0b75b1d0cf0ac120542c6734b6 -143a4c141a9d1a44c03625e031b769a03725a7edf5bdd629965975cfed341662 cb54cd5bc4513e2b21afc21d445315b1211b0e329fe645d932e9a0edd66a22b0 8a38113689cff9e66c956ca46c15116e328797f826235ffdf6fab271b223059f 8db84f0ea2a6ebf26bbab4bbe685cd6bea94cb0d03af70dea5486ef8bfa40d5c 738841d2e2e86dd471d7f8dc50757825643dc546bc1180f8a7c37daf96a01763 -b93a3dee4b4d3bd2650f1a10dae6434975c846d77f056eeba7be2e28ed51d2ce 99708d0ba80cc26e8e025e3b1e0e4794e52fa7b94604fcedb9b1c77da16a4958 -4eda2b12862c3aff56323d76a33f0739c655249305ad68a49d73afd8b4ee6a89 -284d0d226ee59d91b836ba783dbd481b0922bff84177b80f67486e96a3a84c80 -7b8f88d8379877d6555929fb15d3dee064494e36aafa49ab050f5fd5e9a8db1e -7039f15f6a34f84a97d74fbccf7df103aa4e5df20919c5cbd9239eaa20e7a30c -455c96b9a44229c9ab9bd5be3e379310556f3e086b977ff533930ba669569292 -1e4d2b827c7174693046a2c0b31410622acffa56d154d5f510af52f0b851bf1c +90e946d607cd2eb6b496edbf0a583186f4d252687cc22a652511b4b06d29098c c590c942c3200e9f59a0c9dbd88289269a1b225be2ee7f0c005afc568fe6f4b4 249cc5a1c6053da8586dc854dd4d9adde1b0a7186991022bff7fd1867dfde4ec -11d2e1f351394e9afd3fd561d758c1e23d65723f66daf08268ba07e794bdb29d -58a5e69fa928a295fdafdc33012e15d495a2e59899d9d203a79e226959a79e04 -25da48a74303a1339b8aa7e242fdcc97d6889bc1a2066e4478205607564147e8 -c4ea15e50f72ae587d840828210a88350884fba15b82719853627266dc4aace0 -f8cd1682a37f06cd5b3963a9203c51fbfa1aebb8f82c2c4ec9b30787b1dd9048 -58af1ccc221542955bca9c2600e71ef9157b43eaaf4d40f47d81cec81ecff561 -4478abc4570b369152a238834cb111481b74b8fc3023ca94fb8275b4531e72c0 -0cb8bc074faec722e3fdbc600f3b9213dbfd7e1ad9dd623cf6017fc6fc50b44e -6dff74f3fadfc512a89b2af803d782eca182bacf855f81437ea7288a0d2ed57e -b8c5da06edea54f81a2afe3263f3c22b0aedefc1e342c0188695ce2f45daf614 -dd1c2b0a7f3da10495990563d4aa0291f7a9678bb34b5c2c248ce03cb9e6b40a -0e994bce6fbb521a1a97a67717e318fe863699d7b3972021588aab9b99ba4e64 -f8cebe6bb3a258aa633f2df0408a6370e7f85959271d9881f466725907d060d2 -081a4a6f808e8a6e95493aef34d86d683dff6f48657993b2afd16c5821ce739f -83ed96125a09c6a44132a796bde8b7cfd1b7a2570115afba3b8ee9bb1b5311c7 -1de3ed4c04240b7ccd44f91c9b525a0106600e0f149ed16a753f178a457b77f9 -1fd99ad634b9eb3dc774907af4162e7314d56e1ed734d05ca8e608b60a9d1597 -1e6a9729a9afa2bebc71992dc2a75cc86333a7d64282f225ee9249bf7c97d483 -a282d558a0012a5f69e89b9065e7bb9d112bd5ae0722f954cdf3ce6926b8b9fa -9aab36a3ad54cd4c9ce53651b081ad80f3a511b202cf247e8194f2e9bc09d3b0 -fddb94f850d234d4870150812d16bfc2ae715ff67498c1b33acaa894b6e5a924 -59332166f9a97a45a4c02c8dd89d1ebc3e5b702e8cea783af9e7ebc367d4d0cc -c6a868e0d22945bf46ecb0df469c11a30485da01f6dea71669adbb95a9b3f8bc -7ede431fd5e0d28973f204643c962a9777230456ad3c903298399d4a054e3dc4 -5a4e2ae70b108a9881be2f89b28980e48d4e81614af16be4b6a749511e0d4acc -701cca74fa1dae963b0949dc583e4970bad2f27f5618a09e700b763f822819bc -a394a3dc3d212253a75c8d1e5ba23ac91a5aa5597c979208da5f046019cfe93a -88522ba2f65a5510672a5710b91b6bdbc6d1b9cf776d6f7091fbc538fb6226fd -53af8b0766e295e36c2a825107fae5e9afebc612c129d6c9b9f49f31088d3f18 -65d1b1b964611d0978f80fc588ce80fff0f97155e2ee5f785c0c16f6379e0987 -57a5ac37dab9b6b5fb2aa16abd8e727493e9695c09235846771218918448089a -f2a13c19986eb0b926519033942411aad2244706cd01d2ed0b191bda10a79207 -d23c777d0f6b79ea799659345844b116cb06f43b5d8b88af330a10cccb374417 -1dd32d989bd71c1bbab157ebc062696cec35fb719d91e82c8754a91e92f57194 -abb37929d054efac2bfa3a27e161c3ea83bab536cc5fd8357b7609cf76e410a2 -87c9c83a2974fb47023abe3827da17428a4028192e38b1c89bd65c1e196d3e42 -a7885f0b559ef89848795212a6f80eb28c351cabd5f2209c93f473768d38fc80 -dd745c0a05a7c832fb395606a1468364a5a36911ca23de538728b6fb6de97b4d -8159c21795df9ca9bf0817d8d1d74fd8594722a23d877a1e639072e839d676f5 -57068109ca9011738cf90f2e46474f122dc8c875eff23dd92b2bb1b59d1dfab3 -d28f1866de6029d2c2b64685ca5f23a3bba98e5867b0251d89432b84ab4a4b36 -9409542217a10329ef0095e92a29e4464059948371ae9a3d6c58319a52052c90 -fe0880764cc9d15669dd6a23f70d54f4d15415286b7daaecffa54f940e64bdb1 -637c4ce02275c033abd0a61743145b6ab1ec2b8bf0aab010e7bad09cb952bb86 -f948a03b285b8fecc125c42ee230e5ac22228263189583c2d0a572e35496fca9 -097df028f48a7b2f897296385a4c4c84c81c3a33903d4b65058ddf777af805fb -aedc3cc5b83ad3e2f6ff5729e7ccd3917f74917e85ec4f01a07a5082b2da5982 -a1e6f8a6da1a9a63eeace306f5f25fb32dac58301afc7908dc98236618396579 -3aa0256dfa305f9d3c4d77f98ddebd4a37bbbbf229ef2b2e215128522296743d -2f8f55f4f5922146fcd74d16b4f59fd5b6d294af58fd472345d751d4124ad70a -d05141eeeb467a622d8ad66f4c06137667a000503049acb5632d2bccc6ba7956 -c260babbb811fba86335691d88185d89be9ba660ef296acef8e062de070cc460 -e7d4b67dfbf18e54c3371c8d01d724653d0d898132ced1a7eb20076d94da667b -1a0692982fbdfc193d188d80e550a75fbc5c0951b0a1e4de1043ffaedd1937f7 -934548bb4b93faabff276b5ad2fc6109a883eadf8ad35c2d27fb0b839903c90e -213056fd6df457d3aa6f4e6c11f896f52ae12c87387d27bbcd4a524234cbb67f -8c850c8ece0bd7c7874c24d43b690b3372c94c98b31141058f2c39dd3c461194 -31225a10229105786287f151f03835858a0de7601ef48d95c84a0f3c42ef6b03 -d36d32f6824bcd3068103206be6bf0a9b3a6f66d02aa9804730cc66b95eb88dc -d4956c0e29270ce7bfd33fa2f4cfce1ed0a29be6daaa9ef0b25815d84960b83f -105377b32d928c0ba51a870ceffe5f03b990402e973bbeaf85b7da6868faff34 -5d557a9146084fb040a3ba3821252516b177bc58cc92ac80e7453e2e48305d34 -240c9d483e0a076e22d7ebee2061550b4285bc7555cda61f7b322604eafe82b1 -6ed26ec48723fa93c261054c395595d6079f55b1137a5670ede801f14c37f4ca -f2c058b4eae46402ca11d3ee717125c87f469e125f14cdfd776fba2b93f5a4e9 -09a17e84ea6c120ee4bea8a25223630f04363561517ded52656cdae5feaf0762 -b6a86b01e92c218ca7e9442280b51bc6483efe51194154ce42ae2c77de5e8200 -4e4b2967dce0a6e668296c0458400f53ba82553ceb771a638cdd4b67f8604afa -54613008e5aace1c10728907d0a5594a63ab040c7450635eee651479eb627f5e -fd791d73340ea96b303db2309d37091973a15acb75185901de5cd3998ae73085 -90e946d607cd2eb6b496edbf0a583186f4d252687cc22a652511b4b06d29098c -10fcf1711e8f39ad18774fbd5e87b71a2daf93b9b05b74cf2e98461752623fd8 -3ca5ca8af594f080db65859790cc26fb8427a7d904979c2980161f60b8890798 -ff3fafcb58d546a36fed36931daf9b88784770d5aed6a507d78bf08d545eabd2 -a28b24c9489963198ac44c708355b67ba60bf3dc85017f76f9b2374492f95b66 -9356d379aaad972d8ccd01b42526052de6992979bf7cbfff7864aa33f86c42e1 -b5982a49c140f41d4734209385d1c5bfd892c5567af814663c311f3077455697 -66ff2fbfc811dd292770204e2c0bb341e79a3983e06d3dba57806cfce215aae5 -e2320ca55d9b49bc7218ef0eecf41829297453883a09f97761105825bfef93b2 -fbe7bcc698e37418d807168c4d4301a58b9bcd1cfcaf64205d254cf2dc6a76f1 -a1b10a3936672468789a594c2180d470aba330f9eec77df6d15cad95991306d9 -b652284255236d66c4ae8df6a40047e8ed165f5822e9b475a1946d152bd82575 -18a47798daa35369903ab19f19fdddc32ae80debbb673ca308264e51fbca4e3a -22c09e3e63325f7e59d179503dd5a5c8cb47280a65c1804527e269f16d64257b -71bd2d163bde2a4dfa155a3f2ffbaa4586650c0f18123d511897e98f5035d397 -ced856f750aabeefbab75dbc00f528490732bbec8bdb0f7ee4c429428c489d03 -0319b25f8aceb5b26f50bd2492e0b58cee82a1ea363764778a75396b0d8806fe -f7a19a04950cd2de96dcb6d40804b6aa7b93d13ee45ffa89d1aa6b0112f5b0ff -ed9f5648ad024995113b031b7e7e28f14bb8a8b158ab623e1bfa47369ab6549c -1d15c5d0d8cb8c943e1f5938731b0639177a7735080ed3127896508b39343446 -d26ec68f4a8de230c260a37f6e0ca64d37003e7463f3394ad6856f2f532fcba6 -c1a46710b7a46e288fe4320da8203285b3bc86bcc2611c0066c916272b324a05 -463618c9d140a1647c57ec49ede38ba1f9448c766c4311f4de107460e2876e74 -41671c742a150a339237ee364a18347cc82273d67013b82648ff7c0c029ada9f -902d07ef61a6330dae40a656b7f8dc8372f7e575bfd7cd47f17588dfcb6c735c -2fa6608ec030a3a1e729312fe747228fd3ccab29ce1b34f112d861625c7cc519 -5d59da2f8dfe6e6bcf5bea27674891a1f70d1f37bedf5f87dbdd6e87b88728f3 -a625706b3edda1762a075bba5299ba80e89e657961d2c828a7fc3008190c64b9 -e2ca6f1b2cb0217a97918cadc778464843df5bc64ce53d5c316b51a88caba2ec -f5b817445c2df1d76d7f57729ddfd3002c4cbb2c9310d580f0646297fbd40a23 -2dd773e71f63d9c03b8e1d9da398d525807d14e1a0f992488e47e686af48856d -16eff1df7b6dbbf538c53d2862c848da9693fe29166753ea1f32d25544b6d86b -8990d1e75556bce3b4e7e0fa03177c3c0dabb88c9b029c1a906a8e2804d4c418 -dd3f8bb7db33ad0d835f5755cc74c9b1b2aa2c12ceec44e45a2ad49e8bc340a7 -2d80bd690255210e0a0be1589f928838dcde966dc43fa70d1354723780bfbd17 -3038762454ddcd24cc1531c777e18f19d9849d30041dc7640483c4ef58a53b8b -1c953063092f0b338818868df48e49aa6e134b6022248a20920456c693dcabc2 -6d23245752c483c1818b54975d7edfb6eb2fc2fab6a077738830d6fb8e64e1fd -060310ba5cb72f3be139b05a50cf4d89be78cad3fa61b82b7e00167439a53ee0 -f1aeb130fe0ab732fc0b36fee6b89c183fa3afaea4165cfd919c828cb3dc27b0 -7a8890f086d1b76ae9adf5bf7de2230b444874e6f34185d13f011f5e523a4c11 -746765793a4cd8fc2e8d65c699c5da82dc6ebbbd2412e8e39075169dc5a8d7ad -89d88aa4701fc8afe67b6871c3cae0070c79900a4c0ca2eeb0aa11d6b453dd0f -8ddb7fc82ec8baf3c4d3135da8f40d6468925d01dccb01678351e6a19dd8a187 -3511de76972a27609eb0f7099277ff2b8000edd74962a1469eb0add2705665c0 -d1fbbd30fc61e23fbde66a1d308879cd5b55328a03f2716a6e053efef48af9e5 -f1ffdf37774a4ed93a9f0e4ff0acdd890039732d2dc41fedc9ac87ec72fe4e59 -30f084abfa05053fa8669ebd1b88a75db76576408a8ec055416a481b92e5920e -b4b167623fbfb5ad1192f6457affe12c3d5014c9beb30a8c82ecb81e281e5519 -3d80f3ef189bc602d14e512c6167ab9b6ecfe474488d29486a58b129666dce3b -06f66590d610151f94870cfb2be27b38dd798bad8d0c71c3ea558d09ea8911a8 -dc5ab4ea3cf0dc8b9d4f0e5a9d72eea4c94e4296162141cd74d1e4f38673624a -f93a88ca79470a5bfb6d6ee27a33cd2579a9392b23c483ef9bb4a61a8db53401 -78916d8645652a97356502ebbec2c258ec461ce55eec41c78a9eb7a7da43db72 -82f7ec6dfbf9bb507d69da194bc0f1c77cfff635f3fc96cd9be3f155907459a7 -a643772e10c7370a9e2c20d5416908b6c281fb4e83e15af6068db64db2892197 -34fbc123ef45b39e393919cafe4d75138a117d8eb96bba48506f4f0fe50592c6 -fa545494c3b2f6a34bb2d7f1dae71979df159ef9b5204b5f0e4df265f4b2c949 -f4fc1c3d765ed81d4c7a3926364d5c65f9ceae3c8665d01d4d66d99515ff94b2 -72f59b18126dd3391a44e9dcc754ccb9028b327e6f9d111deae18480de7d6fbd -580e0bcc88214146b362948cd2154b9100d2a895c1741106165cefe487199054 -fcf954cf99fe5627f8b2cea1fa76d56872a2ba7c5f1666bb8640227263e3e6bd -07799483358740d519f7cc57e0426027eb33ab3012fa5d565f5cb2fadadde7d8 -0ed889d89a873a3b3872b85aeb438331f9f34dbd833a8e0476342df14cc5bf50 -5de644c2ee046ac427826427d4f6adf9d68af70a45698308c70ae367b264834f -a0f648f1e14453d1ba1b2ed55ba3313d4c06f2d4bbe0ba80115f58c1a30686aa -2450129d3fb94817aa50d0657aa50c40e41a0e2ac1c801005604457262d10ded -8b6847d7cc36e6369432813aa3e5b5e162e0f84d5dc0d5e29ab7fe37f350b77d -7cee578215fe3083917f6cc903658b829ed48855e0bf1184ba25e4a891d7b38f -e1b912f72b5ea807cd51479f803c46658f78110f6a7cca7f476db7df0e2c3bbc -25c50c4a4938207dedfb73c603539c602c1391581fc7c4554bfd7cb186fd3b25 -6bc4a0f5bc77e1ebb244b53445b219d3bad378683bc645000bc8a760e5c93550 -3fb12d1e75fb9ff231ae18839b4eef27e60acadf27353597b10ec7eed55ebdad -6ee3df8af2c0f3641ac5b73f89660e8048678621b77efd0e36f849e610e3d543 -e9ad7580e9c06c3376aa72aa47c101dbea978d333fb1c85ac923d54e779edab5 -62fe449d1d5f8e12178d10b53ee448060096bd5f3d8d26c71705eb7913d68176 -b5bbbc2185e790ac3d1e3df6c56287fda5079fd63d154b58e7e5531d064a4ea4 -546306d2bc307645534e58e2364dcd5bf342084ce38366b961ecaba61c5cb02b -e89caa31fc4edc8bf78c98461103ea56c2d366c13ff35002f3f90693eb36bade -99c93d938649e1dd5d0e6af35ded02d574b60338f3f21aa031b57e3bcd6f9b24 75a7d001d4431f4322ccbeaff6887a352912a745fb6fe62b444c9b3b73e88c83 7aea63730475f78c5fd7ac7024422bceedc91000eba7f19e1c65aaca1b6e2254 -f0824c0d9f0edaf1ce22fef31266908d8f655dbb7f6ad6445081eb6aaea42dad -154cb1f1a6632d3d96e52bb23412cd09518201faba4e4097d2b30290be93432d -034b16ba7f92180e0e5d4ba5eeef2cbea5da5b2de715baf5371d686caef66857 -bdeb134236ff8c5177f6b19f2b836c4b192c29109859277054104806c88b9600 -1069a8297a96ecdd987c975905d420dd4d2b94dbef1914a4af294a3509fd6e80 -1e93897df26f965d16de3666a7e5cea7c5d6a826e4a4465bec67c934ef0df98c -7f633879eeec4f76bea7d75a6a233681400b8912690fcee8417c4de875930a4b -90be57e7b35ae0d4a53a56e52170562d756962dd09b8dd94fe9c5a41fffc4894 -39ba3110af35cf534115c7cf0454e6ee0f794dea2022729bb55ddce066808b97 -1aa08b068d7ff1837b867dc9a73f4dfa2d4b3cca25469f81e1b75ba8574adbd1 -4222afc57e02b67576c5fa6e010f64760614f9c6a8ab280e2a2ce51611cbdcb0 -f1b994fc964f19fe34bc07b9be1a0f5a9fd93bbe41264b643a63b1186f1850bf -808c759f58afcc8cd45273a76329dd5af35bc3338f0d43f57c6291096500db32 -d0060cc3b53efed24564faa7a69ed3e862d5c206751db52ea6471adf7fd110a4 -a07e1e086f9d0e93ac6e98a5923d88d57414438481b9671cbfeade4dd1ebb531 -7720c1db850568c67822c3c95d3121241c54c1ad6bc95a14427eb36a98d4f4dd -e52984bb6962c7885407710b5850f2adca1c803830a8c9ea1c44e412be9696b3 -3cc865c7a44cf2b8f869fac5505ede66aaa618bb532ca698912971ea8ca91736 -64c26cb8cbbf62885ddd6b25ffcf1681ac7ae33734d6972c9724a4a6079596ed -5ee990e6350e6f9eb03c019000e263956f991925034883009d859fb1cca5be50 +f7b32993e5661554730f5deee7004594c4539ef21afae7741584bb46a6fd20ac +6effa7057a3dba4e4f155d077b2b7814839df7768609a009c0f1a94c7ba4edf7 +b5bbbc2185e790ac3d1e3df6c56287fda5079fd63d154b58e7e5531d064a4ea4 +09c12608e99cb664901294cd6653928418e8c33d334fdcf83eaf5e829d8217d8 +5331ff0a363d439bb81d4dd948dfee657c3c574802b6121688f18a8adf22374f +9e9769201a31a3b2f4b6c856cd49c34a97b61185d487fe64c81bb08a384b82d4 +143a4c141a9d1a44c03625e031b769a03725a7edf5bdd629965975cfed341662 +b93a3dee4b4d3bd2650f1a10dae6434975c846d77f056eeba7be2e28ed51d2ce +70367ddcf0dc8453cdf3e94ee436a6bcbb85460d1281ecc1da3e41276c139082 +1e4d2b827c7174693046a2c0b31410622acffa56d154d5f510af52f0b851bf1c +ba0e197f3304528f1dd1325ac3b6e5ed58db6a37b4593c7bc42c1e71d9be033c +cef5b6662ed578e7ea673c6f340218ec48495e62063832e9c07f9d1f87ab7f8c +cdd158c0a0d82bdff5b9f301264c7d2e79e47570651f67f0836cfb3ad949b214 +4b3e7110c0d2530df209fa6220cae437687de65c8e778fb4378f09f30606579f +11fccddd29f350549340ec788eb6fd5319d393e8e4c37d009838dcc32f6fb1ff +54613008e5aace1c10728907d0a5594a63ab040c7450635eee651479eb627f5e +176d30e2d5fb9425bd17ff738c83399d1eff1a0d5995bf6d1884856606a42385 +07510bdbf19ffe635112f830f619b576e3225b4e337f0d35ef38235768d4eb0d +ea79c2ae945c08f5c45c526928d9ae05b297b272121a590e465a36c3039690ca +3629de258182cf4ac67476ad6eb39e8f8611eaceb0404b61d23f3833eb0abea9 +22cd12a8c47e310d4a8180412a53273f222c7aa1bf6042e49b4ecf491b5072aa +d54763e40d7c730668e369beef8d67299eb4df9d4ff5bb3b98d7ca52539bcbc2 +45a3024768cca65a9c8bbab2d9bc8cdfa509530d2aa043b7c3f5471f7272bc2c +f23d4a1e8a337443d921b51c34c9de6fe12c20c7b064f3ac11cbef74e9534d73 +bf12d1867d278b420660fdeec8fe5a611848e761735faccfb98a49f8a5ec1902 +fc8237f6d970b1366af7a0ebcccf86613a142bf91f3b81e7d3308f1b9535b6da +2d655ed33b7c702bf578a1c9062fac0b947aaca69b96d79106bce6a3682013f2 +909884b7d0b8e514ba9f1bc9925cbc0b4f817d5c5570fed07cbe3409bc8fe82c +58a5e69fa928a295fdafdc33012e15d495a2e59899d9d203a79e226959a79e04 +37b980b4b755193baf6a3e2f34374b7525ca87f2fbb552cdaf5930b334695139 d8bfcc19f0adb907cbe6cf7a50b5f593a8a26f046742336389849bd8677ce4e0 +fbb7b594c89df8970f9c52689814adfaed19a6028f0220261e3e30be0fcabe10 +5ee990e6350e6f9eb03c019000e263956f991925034883009d859fb1cca5be50 70434916738ea44ca15798387f0ac552d2b1a0736e0846ba19d883c7601ebf55 -37b980b4b755193baf6a3e2f34374b7525ca87f2fbb552cdaf5930b334695139 -acb8205b697427c87aadef83574b5abce930faf83b6bf499784ba3e396059bca -7fa7ebfbfe8d79a68ff506c27ded2f25d329e1edc76b2cf6cab5ae8b23a8fb56 -4c512f1b316fe78347d90484cdff2a262255d69d4527163b47bf63fb857d7090 -acb1e7146622a4aee93dbf47a8d969ea84d0f47e098d82e6e975afdcc3eaf47a -d036ea10494c005cb7951d49d6d3467043bdad638731cbfd460a8cfc65f380e1 -19b15029b708cccfcd81d68cf1196e6577c010e7b72b270f3e4b2dc3067985f9 -5499bcc9db4bf8020d6a3b02fd042587cb48ea4c47ea693d707b77b80f21a1b0 -a2288459fb85ba2b6c78eafb25d788b1bcf5f0602efdbb61190ddcd5b59aa603 e8a1c5d41b6730af5bafcfa8d402126ea8e3bcbdae8292139ebce25ebaf8b152 9137d59f9fab575066c34d0c8d1adbf06d76873e35264068512e6a001106ada7 -88b18a7cd273df6a7349fac20a5e96828dddd693c078b7641b838155ddfdf334 -66c1dbcbe1ea61c2b450aa97adb7fe84547085b89b2503a04b0c14f8ce0af95f -e1c6c8650c2e262f08e1f37f1bcb80f9bb1ccd466274360559c345288cb602d5 -830b8ea98a57dbeab4366df7ed2a5ba68d0f475564874434647777ef4b521092 -127ae7c479881992556b4db7dcd780b9a8ddf9e66ad6ba036d0fccc90f92ddfc -6e0aa90945fbbfde4c43bfef3caadfda10cffcccf715e1158a15c6761857f938 -77f3eaaafe0e39820d9a9f3e35060a4812b18da65332df255a090cb4c80ed140 -bf83bf172395f3c95009fe319fb028630a7d0905b47fa2f7c8794fd32a6443cb -801b1656646d2e028fb9fdb67245580b775efe29900c622c1f36d1907ffa43da -39207da870665882f1db828c522afb4410f6c844fe4874e9a7e9206a3e20700b -05aadee34a129b58b75d14c6d88892aba5e53cba750745065345185845fd8c8f -6a2b09e2a9a9265f13ddf3d9e9fb25ad0f9e34ff788443213a8eac5a293b974e -7f9bc724ff18d6838b0b1a9edf2f3c389039813dba2ea749970889a4777130b4 -b72b231e70287cedd8e0dd3a73eafef67e27d7063a80ec4e7a5dac0413709391 -0d15be900e19b304b3a036428ef9abc5e5ca72666d08f6f67d3b38b41118b695 -f8f2c826dbe61dc2dfcde6f85d3021437384775a9abc2b2cac871c3465c67c7e +1e698bfa4efa5a08ca99e64cac5dddbbfab9bf5a0c0c2d47098d85a5c3ca99ad +f4886352cc49a8aadaa77022f051c560a0fc461cedf3a429e4fae07346fbf746 +1248ea75ce4301c6c7e3a0958afadbcaed1b68f3c2ee3910c8b8f30dedcecd56 +74244e57c8cdd4652ef2a6213fe61d446fd9c92679d9da7be442604a168ebbac +52728973666a8b29d75923e5d38ca49a7aea947a5e445aee98c44d68966a0d5d eec17afc7e1d454a29dfc9b1c33287fcceeaed8745df8947f3938031e357b95b 9cee2d55ea102faecae5a88a54124cdc8ef445bf1ca81c5dfd3be73653269952 975258d2c45a91a46b28f7edb3bcdabc9ce7a5c646f0bc1e76ff66d558df8be2 -f5ba1c0bc4941433c992bfb928588e7d104edaf9e80b216ccd10fec231baec28 +148d7c0ae548a910ab82eacc32043d423cfc4e63fed29f613fb3a76001b83a45 +d384e942183a61829d0c99d84c87475eefcdf6277b72989655007493e4bf021c +9d43a58596639ed577a208d86eb3ff599972c0db25bd8f37701a5fba55105100 +2c6c58338eddec9db1d914e214446ea718002e30bb5e7334c444b970277ad264 1f59003c3ddbc2fb750592acce2ee0a1cad08007603899b32e77afa21167e071 -b4a15830c05b58ef859ee5d5f8977a367e33c14fecb65541531c50defe96ef20 -c5ce85572cc2bc159f3ff3d2bad5546fbe3705a36ea95d1e27c9a70195af8517 -d767c637d3e3da42e13fe617d49a9f7e0085510eef3ce4a0e78eee978f677d05 -dad90841dabf14c12e65dcc4c0484ccf1a4e2ca6617b355bc02aea5f1ba5ff7b -33f0fdf01081fcacd1a1d78204b1086c50d9d8798e7b216c6835c0bd8114db54 -5661fef3a650d471443d266de66ae4b8f732806d90124761a56df096c380c92c -9e0c47600ec33341362a32de8980709e1bba02c90cfb13f5e6f5db613a456f1b -b419e5abfea56ae0b6c0b5ef75633514de82073a41edfc50fe2f9fd1baa4594a -97d2d0596bfc23a3da80b241f3b9c9ccc5b6d0bbca760fd447c3ce286e260a56 -8aa951de6e9f5c1b616c392308e5d933c1c08f9c72c7fbe3f5dca11bce472154 -7ef71ada196a4fa0287d09f60852b7b108ac663cc92085f6768989f1be64bca6 -e7deb5cfbae743d68bc230350e0075d5b309605343d3b16e0f8b84b52e98ea28 -33324d7e00beb6d9daf773452a55205f9625adddfd34b0ac0cace69bf35a77f9 -29c563858081e8b6c8143ce5611fdd6ea5a523bea18cff94f8bc3c0310c8707a -ca4668b68ed24e8e2aedb5347ab42e8b522ea7dd40b520a7d0d76b9ab025044b -0697aefb8dbfeac95fd51c3e0ed814d8cf6779c144b853bf36dc3839b4fffd1a -9ba01fbf55a0017996806e94ef163bdf08e1b5221bb49f82b2b6b6b807939742 -fb1759f381a5f5eebcd590efc472e47c63b72ad8e5a503a9eb5fa47e6edf1aa3 -bb506f964b618bea1d16b53d3f82682fcba33641d6fc5c3e962488c6e0f41e35 -7b410ab6bef4f847ed227ad0470742b425978678a22afdf3f57b2306713d64ae -0e30768d6bdb4b26f6076b3bbd9526ab9d3a5784515520539cf18719d48d9568 -e535597cf230f8f59f386034232f56439ef518cacf3e564d98d3ad81c878756e -5529b79da55654025f9cfc29b3602222ebe626ba4ec6921d20b4bffc65b92b12 -f8d9e70096b38b30dc608dd368bde84887f5ea03185d7fb97f03b903128c92e4 -66222e5924f15dcd202f8f1323ee76fc088ef3073351f7d72bb8e24dd4df90a1 -d6f6f3c416af59cfb6fc6f3bc789cde377667984e0605264f92df509fa2bc575 -dbb9134b15077990e3b4fcee8555428bfc2f078883e6ddb501efcca6a7af9dfe -99f10c8fe5f1aba938d343e4388c5d3cd0aa06aae35d1b3784f43537466ddb0c -22a37a0a183b02dec4d15a04dcaa6547a7bad9435380b01b0108fb842e704996 -52728973666a8b29d75923e5d38ca49a7aea947a5e445aee98c44d68966a0d5d -5ae7ad71f06b2727223b76b1bdbae43aae5e3000936988b13ca4507ae0252ddb -ae1a8abe5890fc0080bd4d3f53cc329bb58b73ee896ec5d2719f237cbec366dd -7aed463e4dcf547d349da528b9811b5e28c94e6b250aee6add5d3005afbd09bf -ba0e197f3304528f1dd1325ac3b6e5ed58db6a37b4593c7bc42c1e71d9be033c -3f7d71eb2067d559de8b7d2610c78e55bfc94f4737265feb2bce7b580b411cda -b33a0aeca0c98654c6ce705fbd367dbb7486f6e49a878402025d3466944b0899 -15f212bc09cf72c5b3c8e882230e9ab9e139045f0a4c828ac97d669c7dae7940 +3a0b1d81e17f81bc939b95dda8c86d8fb3e094624c8dcb0bcc386dfb8867bbf8 +0d8b53b61a7b853a15585e5129e857ac7d0104e47e2f9abc037b12e4b17cc0fa +a6787a17984b759762c3c940a14de04480752263a6beda995cd5c47bc39eada3 +0e37eb5a34197814cb05b199bdef273b73a6d2513fcfed62aa2cc37f3bc854cf +5ff411985b1f657a13e88608397b94ded01c3cbd9fabf35d71b4910bd7bb7683 +f886079b5e515474b04d7ac6150f80041edf3a30b5cadd8672df9e81e52f455c +a6c2ddab5d3cbb48c603534ba6635709df72f1bf1fc3dee5dd76bbbdd734f229 +f948a03b285b8fecc125c42ee230e5ac22228263189583c2d0a572e35496fca9 +817a2ff30db424c792c2b8d75bde952639fd4fafb1ff10615153ad977de8b712 +a22cc7f6ae35ae45c24c495aa46ef64d0c2b66a914ce7c21de38569266f3c7e9 +240f725a10322ea5155bf6c4fb20d106333aac9bd8d309caad4a0b953e960d64 +040d9e1eb98d7010039a179d4be21d392549fbd7680dbedbf81c2838d6ffdd0c +4072328cd818f938c59c137d7d5cba67e3adbaff2cd87b3c447f6f6e81db4739 +4130ac060a127f86e8ba1cd7a953222df6537561f015c2b208ac78b42c301ed8 +e3b709f7dfd355c4bcfe4c3641c90a9abeb464184a91cce8a21ce21090affb6a +7c7ea78d5852ddc414d1590a5e71d93a8d387e0fc79e4727894d81a762e3c922 +e4f69d3b7a8a5c2966381efeb2055708ce462937b73f4bc362a5f7c286333f12 +98f96428557224974a1251b27e4aede05e49adfc2fd47832af7fecaa2bf32398 +268cc7fa553f6bf74ff8fa0b1e1634b026f7e9b263b6d9b0d11fe010bad8bfc8 +05e178ef5e61b682e6a7979882723c7de34e4984d75ecc7b6fdc063e99deafd7 +9889ad6d0f3652f12fdee137e46115852cfcd2b8650c6d52741d987464e0eedf +457f85e29fcc3b8f031277e7e4666f6d805ca9993fc2f0c023ba1bf391385639 +f52866f0531169d3e0e995bc6f4e076024a7150152b02e5a5402f09a524f6bf6 +892f45f0d6b31d4dd4117e426cbd6fece1870b38dd8732dc47310249861df253 +82c027f6621675d7cdf7b09892a71ebcd2a8d52ecd993a504cbc4e5c8975eb0f +a7a75a7a238d5cb4f5372c0125c8736beba594cc3d5aa3a7bfad40497a959dea +b6d7ccc42e309474a6a0d9850585fec117dc4bae216157a829eb5634a32386ee +ba1db109d3d87581e330d03e65dd1d6f0e443d7e88c0620ac9bae07e397ed242 +d4956c0e29270ce7bfd33fa2f4cfce1ed0a29be6daaa9ef0b25815d84960b83f +09a17e84ea6c120ee4bea8a25223630f04363561517ded52656cdae5feaf0762 +b934d2aaa349df6167e7612c5cf5c7d9a4029555fd3f703745479c5e62b19abb +d6f578d9ebb87678f5414532e1d7aee5b5d790bcbb64453cd367fa21bd55d27b +97d2d0596bfc23a3da80b241f3b9c9ccc5b6d0bbca760fd447c3ce286e260a56 +8aa951de6e9f5c1b616c392308e5d933c1c08f9c72c7fbe3f5dca11bce472154 +7ef71ada196a4fa0287d09f60852b7b108ac663cc92085f6768989f1be64bca6 +e7deb5cfbae743d68bc230350e0075d5b309605343d3b16e0f8b84b52e98ea28 +33324d7e00beb6d9daf773452a55205f9625adddfd34b0ac0cace69bf35a77f9 +7de0efb4b5afbab288998ea80ebbc05f7e04a8147c3fd3254eeebdda3a097e61 +1f908190610cf904552c33c5e4c384cb5adf9994e240973824c7316fd1b12528 +465c0c2fc67577ea72fed03c703b20088c9e8b20cbf319f2e3ecfc992a458c48 +b6970b46a55e006d1b66e4cf71d607c15776936f62bb39098cbe2f823a4f5deb +bda36effbc096d06c3d290dff31e6483dd93ec6924a5323c88dc2329796d6bba +cdafcca089590bf2f114448a20560127cad8a038fc9dc4db56592c3c8ddad976 +897967a478729fd11f19fe5d8301dfb66eb32bb8687c13afd7c13a78f23a5531 +9541e1db3fa8f9382d164db0d2a23e4b4106e32676452bf192d39c0954675a7b +7c13b3ac0d8d033eda4f82a9af0cf10da854d197e3d86e653b22c78367ee4c8e +830b8ea98a57dbeab4366df7ed2a5ba68d0f475564874434647777ef4b521092 +c1317ace4697bb4b6a954561e8d98dff092b9ab16013a21f089148fd2b0cb01b +29c563858081e8b6c8143ce5611fdd6ea5a523bea18cff94f8bc3c0310c8707a +905c1f304ace286b3eba316810cd3e54ed43aca9162d8ab1749f15fd6305edcc +d28f1866de6029d2c2b64685ca5f23a3bba98e5867b0251d89432b84ab4a4b36 +575fdef412da126c48e174fe5f15564cf363d1921a042b56ee33f633046e61aa +bb05c3ca0e6fdbb691c143e9fab0677f96dd1cd549d3d756384bf6cd9de141f9 +9828454f217cb6808a10723946e745053d79f21ab32a3c63d844d1c14981415a +d1fb19f3ea8d473568b5d7d76e64387ec807b94a2464353bcda50a635acee66d +cb0e2ffdb432fa68b7c0046235053f3d3a339dcf1c58fbb16cd182aeca0f4734 +60b7302062349a2a027fc6befa7dea6c288bae41e84ab4225f315dcc4559630c +b48aac01954957f25bc94e250549ef939f4c68b23b724ea74b251c98ff547406 +3bae6cbc781f2c93b349959a364c7f1d62b945622a2bfd28fcd7b00b5e150a52 +d2a658cb618779e9c0e32b1112be65dd2419680d3041c777e2e918fec0985c3e +b5982a49c140f41d4734209385d1c5bfd892c5567af814663c311f3077455697 +c260babbb811fba86335691d88185d89be9ba660ef296acef8e062de070cc460 +7a303868654848c44973fb90d0eadf17d989112dff5512c9c5ff141041477bbe +c3851d80e6332e77d6f2c5c9a45ccc7483d6ca0e45bb16485ed1a77d7a845a71 +35873026dd1149bcd15cbc7fdb71c8e8b704dfacbe65cad50d834b27ea774042 +b01438564a68e79d76727a90d55d0da60a96cda7b36514ef8743cb2bfd5a27d9 +081a4a6f808e8a6e95493aef34d86d683dff6f48657993b2afd16c5821ce739f +59332166f9a97a45a4c02c8dd89d1ebc3e5b702e8cea783af9e7ebc367d4d0cc +a02920445705cbc5bf6c6aebc4eebb029cee19b84a0443d3fd3bc34d3da35340 +2d8392894196e39908eca31f2948247aea2441db010d4933a80a9b232a7b115a +3e2165c8477f786601591cdb1c222505ebf3c1438e6090888c170607129ef816 +35600d15fb97f1b630ca7b5edd18169949458ff4d2b7b5eb092e6fcb0ee5833f +cdd5369767b8e3b2db8f59fdc468fbe5cfb38ac61be7163736b14d861a724235 +b556adf434eb2315e38f27f68081adccb376a016ba1f46bd0c18fec64cd73608 +31e713c3ddfae0ae6452c6e39834326560ff931c51de3849fadbecc23156c9ff +480689a2cc9c577fc8c23fec07445d68df3e82b5d41ae0e2445270a232114d5a +2fb086aa21b95e743c4a7205695de52cbc527d55ea5810c09e0bc3d87ee3db4b +d3498ff59cd4b517b50326c74c487d03ded7e0416bea046b59d80d7ca7272387 +7fd985706e29c97769bd5389f3d4e33af7cb37fc061418a372a17d5a4dfddcc5 +6cfb3cfa41d3ed8aef017355f256baa5f1d25b29d4fa159ad1e7989c07248a62 +1d5415a646692c3b55fd9ddcf858dd0802349ceb1d00908c3617bb8bdc0e857d +1332bb42b6e501b42f00d07316d40c2591ad9f4125b91b43dd4e1023998349af +c570983c576a8b69fb5da570e314f6fca38a4bafa24920890827023a37f3fa54 +a8847d71684cc3fb83c7e7c69cfde982501fd135282cea18392f9db01a2d0799 +04f58bc425d53137b9ebe81015772fa158a7a78f7f250e04cc98c67275f7084d +c92d76c4aa58bc09284323c7afc1e154dc013de7eb9293cf1f0e3bd0dbb5b005 +827d08ebda90e1c613b0ecd9e75fa046792cc459695852bb0c28b8771455f6ae +1fd99ad634b9eb3dc774907af4162e7314d56e1ed734d05ca8e608b60a9d1597 +1e6a9729a9afa2bebc71992dc2a75cc86333a7d64282f225ee9249bf7c97d483 +6dff74f3fadfc512a89b2af803d782eca182bacf855f81437ea7288a0d2ed57e +b8c5da06edea54f81a2afe3263f3c22b0aedefc1e342c0188695ce2f45daf614 +a394a3dc3d212253a75c8d1e5ba23ac91a5aa5597c979208da5f046019cfe93a +88522ba2f65a5510672a5710b91b6bdbc6d1b9cf776d6f7091fbc538fb6226fd +825476d83278902757eb85768c8506a49138e4de1173a74cbfe8dd73cf088dd6 +121baa5e5fff412f85f40f46d10e788c14e841a15cf571f721242dee6cffac0a +e4e0b5e1999ddf993f60bf13c1bc0d8d7f36821c0ee933f295d9696b79a11b02 +03aed9b68c1b79deb9672fe6682e6ce3e12041cdf480235dc923c6fcf86fe03a +dbfc078e49a3d0fffb8f5c0154d67e61df267083df69800aeef10c7ffa470959 +8aabe62b04d72c6d151d3f9618cad28f28679d122994f772667fa1ee0bcc880a +ee6a429c7954d2990d127a7e430aae39a36a0c6993de496e32d8c2e3afc2d8f3 +1822438f78a84c1da77efe797fde11fef3bb37e5e4e7adea9ac52f6fde54de1f +e9d134237b7315d4ecc6431e1964b5e1f46403139ee4f4a986ad6c44ec794016 +608ba3d80de3b62a638d72c0098da1e11409051b5d28c53c26681e6c4005841e +345e80954f70ea9964ea410a4e9ed2afbdc4494554c8c8feda46f1aebcf4c206 +b419e5abfea56ae0b6c0b5ef75633514de82073a41edfc50fe2f9fd1baa4594a +0e30768d6bdb4b26f6076b3bbd9526ab9d3a5784515520539cf18719d48d9568 +825217c06a33d7e84618c185fe02ab5d03330098d3e3374503f5e5be4a9408e4 +3936b1dda4b305615b0d849e119eb6e4fd6fd3594d27230fc5f31d689ed5b0b6 +f25f01f2117268e17ae1d9adf475424c872c49d09723aea986bf5709960cfc94 +0d50a2c4ea199f506b763db1722e23e3a87d865be9200b8c1ba204c765a1bff5 +3979a345203a44098bd71d93255d3d4de64b89c48e27c80bcd5568746ff5c93e +cae6d8a1648f14dc007e9718fa7d52765f2a8e62aa5cb257503b782de2af859a +d36d32f6824bcd3068103206be6bf0a9b3a6f66d02aa9804730cc66b95eb88dc +974e9434250fd63b91112443c00d5d64d860a7686385e6382a479b75d30a5f70 +8990d1e75556bce3b4e7e0fa03177c3c0dabb88c9b029c1a906a8e2804d4c418 +22f1bcb84b2607883f23508a4b014ffe61aba9b5b44396899840207047c630b0 +3f0223b42a8ca21374ad8e9813a3772e48173610eebceef9b4a7df71f95b4061 +27fde813f981a417db07f007393d75b6d877b39cf07cc3ccb08949531b5ac443 +fb428bd36aae243e7eb0275147a9078b52086f291428d9f0dac84169b594cb4f +d24eba880a83cb5c3b23031778132f7a32a592bc4cf17312ce5f37b170c061b3 +11dab833a0ef6148102c47175aabcd7f9cf9e2753bd3e6e3edca4aeb489278c2 +5de644c2ee046ac427826427d4f6adf9d68af70a45698308c70ae367b264834f +f5ba1c0bc4941433c992bfb928588e7d104edaf9e80b216ccd10fec231baec28 +d66f430cac85b212f2306f52f9563032589acd2958cdacc835424c1cf7998692 9bd10504173663388f7ddffb61ece4f9e02358043de1fdfe461789469766c885 -09be352a5dd60b3612413e04bde1efabadb801ed660ca0d48be24590b70946a4 -65109c0b4e4e843d8b0e27b429a78d1277ac999af71ef7c31952e45b0f747b2d +66222e5924f15dcd202f8f1323ee76fc088ef3073351f7d72bb8e24dd4df90a1 +114a73b8dd925cb4303f621e91466088a8f560a180e9132d6cb7ef3890a3846c +b4a15830c05b58ef859ee5d5f8977a367e33c14fecb65541531c50defe96ef20 +e535597cf230f8f59f386034232f56439ef518cacf3e564d98d3ad81c878756e +22a37a0a183b02dec4d15a04dcaa6547a7bad9435380b01b0108fb842e704996 +8ecd0e72a2635db88210e864319cbdc01703efa59ea4cb44ab77a5b096980b80 +f5ae995b6b91f3f406a8fb25e8f0e4c7a9303298115a5755434576bfc1770b32 +8bb0611bed8947b3fdb1e2447d01aae17e1165cd56a154d81e13d45a390c3447 +5ae7ad71f06b2727223b76b1bdbae43aae5e3000936988b13ca4507ae0252ddb +6c1cbf22ee54a5561da18b7602a2f48581bcf231f23b674a73c4b705f3d4d6bf +c88aeb00c1d40dc6177eaa3db6513ce2c628551ef79c20fdf05e9421eb54a8a8 +1e9ede7d8d7a3d03fd080758fe7f95d77199018874f730e9f4362b262ca51855 +ec36f3792241887786a9bfbe8980870436d88ad76a64bf40b67a08ec36076153 +c513e1a3da2c46acdfe5d4233292ca2e403e989e01a79e49c23f6f61173a4cb8 +089badebf6c4de916f77b325f5ed8adbe11617bf6cf635cfffdb6a25de264e1a +20c2c39b963dec9798cb967a4f1f299b8e432f8efcec017d65d53659e7adcd7f +cc06b323014d0add345767c3d63aef96d79a872d377418c47199780159a6f8ac +9356d379aaad972d8ccd01b42526052de6992979bf7cbfff7864aa33f86c42e1 f24a966f093207d23fa00d96d5bf534059b3a6bfabb411b4c3848d3e9f99f97b -a14630eb406a928c6f08c226511784bc851212327822e4a6c6226e65ba0ad87b -db63d9e2e47a293ad7c0cbcccf38db5efd651c29573ad26c39e863b71bb228c9 +76dc1a816583f375612b2c018f923b5d305f88ddeab7901f1861e65b934e7114 +09be352a5dd60b3612413e04bde1efabadb801ed660ca0d48be24590b70946a4 +7b410ab6bef4f847ed227ad0470742b425978678a22afdf3f57b2306713d64ae +7ea1a6e6cccac54feee876402cf4f61793b4e7c50ecd337b1adbdf64c7efa3e4 +c58bff0930fc3afd25967b428d7d2882af9bb221ef6426fb02067482d6844474 +ad743104000b476ec403846375831d12035e3b5a278b2967b297caa2b2ec482f +7094760e2202e4bc377392a270a28098dd488d05b174e5560ea014583b6a9f75 +6a2b09e2a9a9265f13ddf3d9e9fb25ad0f9e34ff788443213a8eac5a293b974e +2834f7559dab12bc93227ed3c027b3386186b310a77d8f24098a272dd5c874e3 +f0824c0d9f0edaf1ce22fef31266908d8f655dbb7f6ad6445081eb6aaea42dad +826028c8ceb00cc8a72262b28ab4697c9ed5100076cc27dc76381c8491c78c10 +2e5dd132f996c9eeca24d4663f937e5e5935b896b1bb696930977cb0ed722e84 +a3be5b6c843f8c9f87e38b02f182017072b3df459a1a7e3f227fbcdeb1373d1b +a3f469286adc9e2496736c4f2e9dcd444c691e4d365b8b40eecbf848c0507c04 +62fe449d1d5f8e12178d10b53ee448060096bd5f3d8d26c71705eb7913d68176 +d919d66c2fc1f1710d858d0a46f3e9536722aa85b8247cab9ed5fef3545c8646 +cba59aa4f9f94cdfd6a57aa854124f86fe5f442dabee2a486529a213c6c45578 +30be3e9123203d31cca49bcf7be527507afea03be6b5405357d0be5e6d0218bc +a5254f0e7f9171b5bc979917ca87f6bc8419f71fdc3fb512f37965df3b9420a9 +fce76341c19a2f02723e1dbcdc600ee9af75e677437b81d7bf592dbb5e2709ca +93b14882192a4c7a1a3a98118255807c1b7831433401651df0a911c64115fdbe +7ede431fd5e0d28973f204643c962a9777230456ad3c903298399d4a054e3dc4 +d500b19571b1726b7555b520e3ee5505816cd5f8448a4274562f4558e6089a81 +ba45936a67c752a9e5eaa26fe974e0cd661b31226140a6fc4a932aedf4c149d8 +46b6cf791effb657f1767ff42379c0c6a321849006a730e44298c5c69eaaaae1 +35323733a4dcdf7689937f828cd8114150e172f3dd0f6a494e039ddceda36228 +6c7cf4f9127aeb9c96bd81562a17afb776a9cd2091daadc0b20681214b5b8fe1 +5269d9bc7e99a97c4dec87f294c3c8232be0c956fab350ab89d0bea9e2799fe4 +bfa0ca24afb007e9a169c627c8c15aaf28379c091bae5a5adae7504d7d405cfa +635b5ff06b705b4af8296be77cb8273e6ca8dc756747aed4ba41b6a2a1fa4681 +e7afaa3577d559b05eaf5db73ab7925f9ec68b72efc59d4a85456d006d2727ac +90be57e7b35ae0d4a53a56e52170562d756962dd09b8dd94fe9c5a41fffc4894 +627581a968bcbaeb9965be5c2c6e8dfe07eaaaf47c04144d601ae1104f863b77 +d773020f9d2824a4cce3b50d8de0699498d9363f9d60297d0ea4cd7567e1ad9a +4fac49f0ef846f5f3365b6e8e7aaad05e0d62d92d29229c751a7789703a559e5 9c39060aa8c4ae392b2a128aac74b19ae4fc648b0260af15c1cab6a5dcb22496 -d9920d28aa499f164621b167ffbe20687fed0f29e36ea1fbe254067913dc1ca9 -7c8d5b4f0d75bb55babf4cd2259210cd05a62e9a839ddd78c9d6745686ae53c3 -db7fe099ade891eb1eca805c745ef3816d77814c8250309f7e7c5670444718de -5b4a6f3ec40c0e6721cf2848c6ebf1b12f862eaeeac74b2677567c5e32754996 -9bc230fc05458503dac38f290fa1bcdc13d7d6d5832dd01533fe554a845d847f +237da897b97bd740690f192c8b644db259d12edab83fcbb4acfcbe02444ed831 +2d117c8be3f51498cb536997f55c4001cc55ba26b0cf101e960a441a094e9521 +d4135551ccf12c7a1f0a3df9d7af5e8be34dfd8f7092a14b87f7171dbdb5cb47 +79da1786f50eb8fc41670def568ba1f946e25a4629a1d5717954681fe914d0f6 +d3463ec9fb16032c62bed673c9bfef7c10d65d1ef46d87a3277e0ee405e3375d 0f87e62132ede1f231d8194ad4f5f16c1a5ed32652bc58be70c29b243a57bf81 +eaa600a87b48bd3657c05984102b2b721cdcd8ae8d9d5b3bd224aa9d5cea4169 +3e343bb863be7a3526da971802089970ed815e75a6b8f66e97e4d7751634f695 e9c04e201717fa800c9d7a42095d93065c3f82e45d5403028a3e1a35c3e0d74c -9005ce579a43b1ea968532718d2df5cef8d1d9d0f63ff2571ff92fe3ddadb156 -a3f469286adc9e2496736c4f2e9dcd444c691e4d365b8b40eecbf848c0507c04 -56b9d1938f7155691e95d7af717e2d313b57c5f06382726f3690dc5e26508945 -a9b291759ccc9dfe70af766569141c00ea4c9d8a74a4527ccd073fc5c3739645 -34f0d4ac9f4630b64c9c9a04cd62b1b2a3d6c14e293c096c905336aba5107e2c -c3851d80e6332e77d6f2c5c9a45ccc7483d6ca0e45bb16485ed1a77d7a845a71 -a4001d94a9233f037712b7f35de31b84134acf74f411059e9188bc8f2cf3b768 -0ce80f60e096ccaefcb787ef0ee3cf7bfbf7164649a3c7e63c4705684d373045 -aa7638781f16b52f40d2e691550bf4682ad10f323584ea56566b007d1580444a -5c088b8837d4b3414a4604358ee7ad7ea9c26abf50e4c733de1777a18c1f744d -94c0376bf8cc96c8a728db4ea9abc5b1daf2efb7be05dab3c6bf7ad4f462c358 -693d2d94c81610cc0811148dc54c9261ba75a5bde19a33339caf987d2106d1d2 -5f5f41a7d1783b044ca77c75d8c6a9104a83c9c9aa9d1c5f59af8f27f3427208 -94004f1e307c3a0ed43e0270049c61dadb0c6900c7b7181b58c4d768b3475e34 -6df0d989547117ba1bd109a3e35329ffa085bb7f1f7b5663dfde4cf70a10317e -30be3e9123203d31cca49bcf7be527507afea03be6b5405357d0be5e6d0218bc -8f654f4732bb511b1a5e9e0930f546daaa31a3f7b717699862e908ea6e776d3b -4f4057f3593f2c693402d0dbda82b71f4b6db7658dcd2e9b8dc16b3f71598fad -082c545a2c78588c3fa89819c223a151dcb9c19b05ea0736945781cfc506cb19 -85ba19f40c28c1704ed40eaad07ac840a1ebb89da3c2a0458eb63f61ac482f78 -9c184685c9b3dd107f3da78a1e45f11aedfa94c260ecfd6a72149ddc84973de1 -1e698bfa4efa5a08ca99e64cac5dddbbfab9bf5a0c0c2d47098d85a5c3ca99ad -36373533c2dcbd7da81ee367c1ca6cc9d20530c5153c3b870ea543156bef8e8a -12240c0db033b5d9ea704eb0b90581b86e8422c5514d28e0951c547483a523e3 46c0d97acc09e143d657af6e9b6f19ab32fc1d6b6c385a2e3c483710dbad0d17 -b41ae160dedb211e207908fd64471220303110da81e6022c0219765b849523e5 e883f54431fe2d695db4ddb8525d0259849c04fd2147894de4b19161fe6240c3 -2e1d2933de238ffb0690fd7a0124c6964a28e082c786b9fd6c072844fe8a10b7 3ca8440bb6377ebc8b0951930accd582ce631a72dc10f7a83e1b0ad6e2bef840 eccc616bccda53868b317cc2574238e06f132e1d2e8b7545ea36fc7fb6968506 -6313c4ea814c91ec72c3e2930dd9370726a5fa41615f8f12aebd34897dcdd4a6 600ebd36e6c63f625603a24b986038550352581f0d23f5b259f167d7af0fb95b -f0fdbfc57e4bbba5b108025953edae824830e0ae489328d103c2096f0165561a 64cd6ea7c4b938ab5cf922be0a0186f4e4a8625bd638fd181a18beada1a39c74 31e67840a9a42ceddd3be18a42e891f8fbbcff35b14681a8c6c795a63e8811ae 0f443c93552e2cb76e9ce698c46a66b05be7d23e9a7098d8ae2c1720f57cb1a3 -802ffcc10c75831684179c7958b901c9c9fe618cd7f27444526c24d6f1b32288 ece104f0b952dae0a2eba0a757ac135eea1de09dcb1fcf7a41b0a575ef561659 -a8fdbbea8d798e25037d3760e2791d33675d245a919b872174b9a93daf449ad9 3db56d3932d3b267e64507085e2e08f110f402614dd5ac4e712f7c4799d39939 -ebcb831312463f4d2661a000367c3e887485003bc9c90673028e8381f0c4eb22 0b27656477bbf51496eef9545bae40975fc98e490073b813e5b87f4d2965e860 -6a1778bc880fee5e38b9ffd5dbe2c23d60f516855b97ebafec02a1185a06f9f9 df2a2982263273c225ee5ad2ca8f788293509bc8f1d52594d7d811959152d627 -f25ccee0fa4a91d275179ef2761f0a7e79b0b561b0a8020d890ccd8e85e7e57d -a2f304e5655bb15ebcb38ff17d815fab5ef607b9a6dc680f58ff92f47249032d -1c8e1f67804dbadd9f2750f2e558714bad0121fead00636150310040fe21306c -015a14c8dc0d3bfe379bb05f6bbd7aa54dfa9f119d6056212f9ff48119926921 35881bb03a8166d27115e5162f0b75d0f507cac7c1e5a2d0fa7bd07cc3302b72 f51119d7b4a3f6c79f0efcbbeda584f1ab39591fd8e13a342c463d289e10b481 9dfb8ba71da5da1f65f919718be9bd2dc0c7cff251f5550e539831e52f9b7077 -ab783bbf9f00e2bd402a52dadb00a06710fffcb8740d4a822c52070292026cfc 3114959a1e65e7740c3f3df693b81912601eb82926c0176020bc659edf9b7760 -66a284eb6a431b4d9686191c41ebbddd452b97ed6dc58e3dbf726d748f10efc1 21bcd9dfc8feef98ca2aa9306fbdfd8bed0f8c2da3d6b04dce3463af1eb676be 348daf413764a22a22c5a9338181784ca6498a40662b273abdea31683c3fd096 d9b28950af2c4127a079a6f24fb4711325c672611329b2154f9b608d6ce14884 6d4e4e71a78872cde6ab7565db7acbf89d79df8adaab44f070fad17e31bb813f -70f716da7a64617f58126090a3cbd619c851f059728b159b5a4bde0e0e93bcd8 6e84008da1582804ff67c02031cdd97fd022fa91d62dcfc38569e32cd0687253 -8d4b0c071ded6acfe348b76e44043232a893842416e33431172d041ad4be5690 -d15bdf5d7798a4d842cd7abc494484c5060ba11aac6dae658232c01d76cf32a5 e532475b7f95c8cf5e25dad22baa2b987d89c43a5de50f7793fdcf19030e564c -7762396939fda1cffc72c273232794bb9e8fea91af248528c408ec39a1436be6 -4bf775e63669aa919b49cea40588033c1b83520cf0b417580b102fc58052f1fc 908d538ee1cb3b270730965424c15ee1085c16fc8b54d1e92e91d870a8184ade 58d3f7e1e6a188456640c063c50d2be90afe2a07457e5288724d718d56f52d0b 9d83a58b181ba41c9c448ce17f3523faf7aae2e4d7903256190ee6d0d8e49ac5 -133e0b0bd67b98f2ef8fc13d36b768ccc316fb51710a9c8f8cdebd709d4db09e 64b0cc9f781ce022975807938574ebcf9e45d07074b1c93e3b29e1261c5ab6f7 cb67ec18fb933e4d9887fcfa1944fc7aab5cbf0b6d67326432569810418b9ee1 01982254408efcdeb6f632f3bd79589e62e450950facdb43648172fc8938dafb 977fbdbf4c84386f36a04025938fb937d5ad51a49f0e18b37f8db3aa44e2748c e9b0f421e0d030e575a0833ab352d2307190ff2520c52982384486408579f37a 83ed46d4a973f050cf9a1fd62b25f58b5bf17d88e2eccfb6223753a44e6a60b2 -237da897b97bd740690f192c8b644db259d12edab83fcbb4acfcbe02444ed831 -bf895a54b0c2c31d18435ae46b70ee47f1ecd6e2f51f3ee59cd6eef092495488 -e76fc7b7910c28fd8d9e354d8fe60fef8008e34ec617c2ca0ebd58b6c844ab3d -b480bcbf8c02857ea59a95e6d7529bc65de9de53167f5cbf185ca0b3299154e8 -713cfb7e01dfccd2075553b3f786ad19e6b5d3d13ba47f0d800b290749a526c9 -0f1d3efdd07f9feead7b2015b02d76ba6f0d61d66173507f76d986291b2543f6 -8f5d087992f35b70a24caf747bdbc2e6469e0281533ce388742c5d2149a899f6 -df4926d13709bb88e23192eeca032937599ab4b8ef93984aa618eccf1f4cb06a +265ff1c60d30b1cf11ff069aaa39d303bfe20ced38b1794dddc3d67d5322805b 3a840bce2b245a7384e43ff653e44eb6926bfa2c518a26d56b71f7a3e8de6a63 8612636b7e6b06f90ab40705a5166b8860d46bc5c3c77ec825b1f4578c830ffb efaf97118f119fd1c18c1062088a1f988cb682e5cc6d74b15d3a03d10d881854 -1442b1e915d2b58716dbb0da4c1c8ef7b0eb71166046d5cbff1031a01e21efb9 957e3dd7be77c9679a5508cff9efbd4034aa1a6d39d1ed5564e3138bae30bd90 2bd577b17c182d9d2fa2d97c28a2ba99abcca77034dd68a68ec6fa2c36cb52b9 -712afc0cf65e12be4da48dcfabd800d34d13704b5dad99256ba184dddb70583e f13eb362c038ee2cd7ec96e50f97ca9a948d087b69fe9da064d2aa519889e976 -d88f50ef0357e84ef769a7e5dee65b43b6ed2576d99a9576091d6bece77b3ce3 1b280fa1b034b298a1e3487d0da13f3d3be3b387547245e2ce78d20ca9c945cc -de96dc6d65b10125aa25782f4562226d6d15f4f3273f37c1a99c9621ef2f0f2c -bfba6117cb85a5fbf4d5acc2e1f4033e9a062906b9e081a1e0f075d28d54770b a3ca6eac9fcdaa02a95fcfd2814ceb70f52de8bdb9c608b7ac71d6da87bb61f8 acaa0d222e0e57c41ece26be229187ddc91e03df8ebdf01297cfb665c8c6cc3f 51938cbaecae5085f08b88a3856c8798f92e964fbf917ca22061e48fe54cbaaa 7778c8aad8abce70ceb03aea8b2964a9436c1aa04d0157e2324e579fe25175b6 c8a0ff2a90148713a01f45b568befc40925be949135db70d745a8fa00caaac6e -9152662afc5b0b642a85dbfddec329585aa5e65c32ff9e4e9b25e98bf241819f 31590d929b8f7bd494cf3068dea0b7d0a8c8df13d39094ec965f6cb14cb0fb31 872f81136150bcee7853b80b5af56742e4f1b3b5f149510ca9e96c0f5e707b58 351ad9aabf0bac49e7d348f9a153eb88ec9828041a0cf3e176fe6458e28d3de9 -65502666bae303206d40cb1b8bf2500b6698a8d4a66289b791468f4f49703b7c -517d387a13cf0ac6e6f67580c63abdeaf3d2b1aab71606251369a4c62a682504 -35600d15fb97f1b630ca7b5edd18169949458ff4d2b7b5eb092e6fcb0ee5833f -800c2bb19d5907ebde7f54a749a3410f464919ca1636513d27d4e34d479c9bb2 -c0834ac98980e228860ef954e563f21b749a407594c4c165e27fd2264e6dc8be -345e80954f70ea9964ea410a4e9ed2afbdc4494554c8c8feda46f1aebcf4c206 -2d747cce829789de7a7d63e28e2ca010f08ac41460fbd7cf7c2f401acd03a3d2 652517493b4632b68a5e95f926106265d5629b763d7700b04a039c0fe7c4f001 20269504b5b1295b68a04bbb152356c2ab5232e9c9f6f89f7a0b979ff7a692c0 -b17f07860b0c14e2bc6d34e195627d0dc4adece75d134042e84603cd96939578 -68d9901c3e1b60e588b5a162449195b9307a153766f2258f3cfa189ca4b5d618 -e5576849d5981f76d3b1d19184110c8991132115dbf1e780e7df0a7241df5a8d 147652be2b51a411e060a0bf72a4bee43d4ae1ba1aad56ab0304c6f85a637372 -da8966bc61cdadb5845c8dc43b288e92c0bc742755969b349fd721d6a38af544 -b2ba410dff075a4f91aee02773677a8b4c833c934ccde6e74d34ace4b7148580 -1c6c6f407aba94a67d6406b2b57dda4f46405b2092961a4c537205fbb9622718 0cca72a6471a124b710a974ebe899348c13aa2e8832a007ad2c31ef9d9f61f95 -1a5627d7132751ed567d8144723ead630341d4f3f9916f392c6735d9837081ac bb8cf5260a7ce66ce410e4e87d3449954be5f478f27e32beb05fa23dbf4b6614 f150324921e7f086290f507a9c15b4a119993b3b5c294bc43c40c7da94acecd4 -384d7a60507c144e6d622d7554b72a26a5a95572f1da765aa23cfa9548c33237 367509085f0347369b4424b861471836f951b97444009aced38283fd987319e4 -cbd16c3072a65bd78bd24e8842634293963f8bd0c23553dfb27bfd0f800b3bd1 b335e0400d8ae441941a233a9d6570883cba9e9e7ff5360e79fb5e944cf4eb90 f824e7342eabb60dea659908b2260d74af16e1dcb0cba75242578eb1e1f008ba 64c8923e3688c047aa6ddf17b96a79100024d2a6bb159585cbba90b1684045d6 -f5d2ffa85eef5d9b1e0be73942a7c8d179e2fb1d81124dd9d6778d2940068a7c 96b1d4f4bd34d18af1d5b9a3c2b813050f629173e94b6399fa44b5b6ed83b63e 71f0f8938aa0805e168a744e482bc5ba215a4718ee07f0e37d6c4dca84fe5a44 -6644192bedca2dcb2c4b193a91b91edf32193b4e7e524cf42676cadbff6aa8bd db40e013c249571a1c29c19f1076986838edb1e9314911d0742fb666d732d47e 05d6ba704be1c15b03f503c341076c384605bc14eedaaa7c65c949aeaf9766d3 -5515285ee161a6d0e92b746fdb4a0d3d8727045e79e36fa76f20e0ffc132d987 824c9b33d01799162eb0f5238337ccb6ef32a4a6999182c37316f4f29dfe5890 -79da1786f50eb8fc41670def568ba1f946e25a4629a1d5717954681fe914d0f6 29206b40de3c7f641971509f8581c80d426b450e80792deb110490d3c047a405 -894d64b630d030d27ed1f01865fb97f2d191adf7eac737d8ff1e1bc245b9a046 -66299b177b6709e2ff572d06abb742105a9d8d7cc1fe1a01b4374e4f14120ea7 17e8a80951f5b676fff4f496c6688905c4151002ef6cdcb4c195ca1ffe696604 -c41f3826d749c13b906bb99b28914185fe596ee62a1acceace8abc134564a8b8 921a3d090a8f862d0071602ea7bcfac8aade06bb4d682d312133cff1a027327d -8a160b1143d1c2d99e83c011c8faf7474e6b796a7fd3d28544ec086ac9d29854 dafff17ea8fc52bf2c4a2e56557e881ca6ca9ed52be64c3f1c8b7fa6ff50d9ff a3f2555889532f1bf1e71502605a316895b2f51314ec7ed6606df58cb1d2b5e5 -32ead108423bcd3a15975e0627f73a67f8c69136cfd89ca3f7776b17252b1c2c -9faaa6c7b786c447618edfb1c76a8e36600cc3621dfc1ba1fb63a9c8330db494 8653e98db1837b29bc6f84fa0fe01f1e9428b5c140f359b1d14a5726aedd9690 -89a311aa7fd60268c5c9b4144d88a4e8d210db42283ab2cb09271ee34bd7796e -497b8e5c841531203de45e56a8a6a3df4158d75e6530cb700f61ab9fb8dbaf97 -a64b0b9c82cb7c840d9dbf9a9d3689e566f737b09c2404eca0fcf25de22d6953 -d3463ec9fb16032c62bed673c9bfef7c10d65d1ef46d87a3277e0ee405e3375d -9541e1db3fa8f9382d164db0d2a23e4b4106e32676452bf192d39c0954675a7b -9819bf168db06e1a166be928b0fc4c567a6b683558731764a524d25bcb38c1ea -3e784a3eb07caab85420934308adcbcba09a09a7d03faa5c79aa5726866bceee -6cfb3cfa41d3ed8aef017355f256baa5f1d25b29d4fa159ad1e7989c07248a62 -97e01fbad0e04bf7f855562ed81464646ca5a6b29d4d058dbd165be5f785c155 -d3f3bb38d56bf26d8de02f0b6d1facf7dfed129db8fe4f67f5fbb5257b3d8d8d -c570983c576a8b69fb5da570e314f6fca38a4bafa24920890827023a37f3fa54 -9daa68967cf3ecf5dd41c4218131afa3af4a46b3e40ac3088b98623d6dc31dac -7151e75250239fdfd37246f6eb9f20399aa6869430309b1bfc622256420840e2 -c300137ec88c0bcc42558bb00cd377048688942d7f71e0c064a3d9b1751ff61b -7a1845f7e5b71035754a273d448641e521a69fdf38b50a90ca69c65cdef4afa9 -31e713c3ddfae0ae6452c6e39834326560ff931c51de3849fadbecc23156c9ff -aa102c4df0cf41da6fdda24cdf6186a236f8821c2fcff496dc7ddc63b81b5897 -74244e57c8cdd4652ef2a6213fe61d446fd9c92679d9da7be442604a168ebbac -79c0002d3dfbce81fa061affe5bca46e46768bc26ea3b8d1249107cee4669148 -f911c270502646024c02ad50e01c618c2e0580df3344ff172f6670ae8013749e -b449b2179974b2a0a6533cc00a7c6a2b5597b6ac8f91c456e1e8b4ee5867393e -7ab188a5b0c7741fbb3e2c0b1f8afdaccddd93e11e3fb1ecde1c8783ccc84933 -8d53024b5340e46556051eae86e17f94f80283692ab6ecf7a21e485133736e9b -ed51a553f501e5aa5a8bc4610b0630cebcf3f57fd6986db450732e201a7109e4 -9dc6882e862362bdeeef60fe5dbfd20ec25de0ee273ca77739697273751680fd -17200dad22c5279c536776f132ea3048d7cde91f74e35fdef34a6598d10ddbb5 -6eef97c80d9e975c678a26044da564a51e5850b88630fbafb73204a5f7e34449 -485cd6b0eb17c59ea62f4a9feb82e0c9ceb4d395e711056b4814c4ff5a99e176 -acc3b0bac7b5caee72177e82ef621e0f6bf43f17710bb740cf8cb58c054cfcd0 -5e06a4087bfdfc9f9bbb94972a37f82d3acc52a5daa93e22172a1f2ffde28cea -929ef760d05cc55d231f090a215e1a783abc00a9115d1708e3fd1aacccd5d5be -f0acd6ef6f67edd92fd0e560919e44661216d8c961fd201c50ea512ca102635e -7ea1a6e6cccac54feee876402cf4f61793b4e7c50ecd337b1adbdf64c7efa3e4 -31b80f8160396bb957223856d0bee2bdf03eb24245729bfeea0350a7d54cedd6 -4295326514606b504fa78a0ea8c057c24c714ea57525e87a121d54b49ecc6d26 -ab6e37a7502da756e41d25a8b2a4981d082277286e1847d5c1c493df2fed18fa -d62452a654340aac6f62cd9302bc8007a370aa332153e29b4df6ceb58b2d6fee -3936b1dda4b305615b0d849e119eb6e4fd6fd3594d27230fc5f31d689ed5b0b6 -825217c06a33d7e84618c185fe02ab5d03330098d3e3374503f5e5be4a9408e4 -67b9f087ebe0d5a3ea85f514628d56d55ae5cb0cb8c05c65cc2318d47b00444d -4f30834329f7edad2f63824893b0970e12707b6b0e0526532ad86bcf96695ecd -6a53100cfeed1647a6b5c3534fa199c67c52b71606382b50d4f386525a77dc88 -93eeb04421798c8af37e8315e4b610eee2161884facacdc79fdd0582c1dea0f0 -87b443922d7d60bb7f0253071619d1e31912c44aa70f50875e962484b33c55ba -11efe081ba7a9b427f1385c783783afce90adc901a8d7545628fb19907b8e5e5 -037da7389842040606552c1047bd8f583b426010206cfe52b8f1ba70e4885b7c -afba1f2ecb46524d0dd327765370cc48131eb91803ca3e902f979fc09f5e8532 -e4cb79d5604c8e65d3e7b79969c269203e3b75ba3fc2d0d8216fd0acfa76b3c4 -15e56695d9c7c64e636e6cbe2319a5d84b2d627d3982824e75d895eae30720e1 -bb05c3ca0e6fdbb691c143e9fab0677f96dd1cd549d3d756384bf6cd9de141f9 -3f0223b42a8ca21374ad8e9813a3772e48173610eebceef9b4a7df71f95b4061 -27fde813f981a417db07f007393d75b6d877b39cf07cc3ccb08949531b5ac443 -155396dee935f33703c1edcec21ec872eee1947bf88a5b374dae028336f3758e -45a3024768cca65a9c8bbab2d9bc8cdfa509530d2aa043b7c3f5471f7272bc2c -3b363c755d5101f861b8e980b36e5c70a6b4f9329b4132df65e3b72b37ad128f -65d04046c2e30fb9748d3fe663210ae2291c63d7424ae311fefe2dd94f182c2a -1deeb28dd349ffa2560a82ea3d682be183af204e8683bcaca175414896d9bcea -e611412545b9f7a1ef0feb6b4d2a0824f51e654445cba2247f0e8d7b08118cc2 -e9c3e6b0047d3cd30819dbb495a29603cca9ffb00edfd960550efdb913282bd0 -7e988284817f893a3a2f9c51a7da982b2f29d7494121f5d83a0008671c865929 -0d50a2c4ea199f506b763db1722e23e3a87d865be9200b8c1ba204c765a1bff5 -c513e1a3da2c46acdfe5d4233292ca2e403e989e01a79e49c23f6f61173a4cb8 -298594c4def5a7a4c66864b1ca399b4a8f9789775e2cd933974799da178e1cda -b556adf434eb2315e38f27f68081adccb376a016ba1f46bd0c18fec64cd73608 -6c1cbf22ee54a5561da18b7602a2f48581bcf231f23b674a73c4b705f3d4d6bf -c88aeb00c1d40dc6177eaa3db6513ce2c628551ef79c20fdf05e9421eb54a8a8 -1e9ede7d8d7a3d03fd080758fe7f95d77199018874f730e9f4362b262ca51855 -ec36f3792241887786a9bfbe8980870436d88ad76a64bf40b67a08ec36076153 -8633ca380177f2cf0640837881a84e52a397ef61b2d43cd8f6fcced9c8cc778c -ff0539ac4defb4eb74e8da337dad1d7162668b08b01862e64d16ba6b79e4142b -ccecca8dc6083c5066b3618fc42d6fc27745c51ade1b82d332b2a6fceea44f1d -a8b277ce1965ab563f7d330f59ab57351d10c192b2393cae30e435a4f9ff067b -704d2fa42e01e568826c73dcd922f0ea3e3f5c26fd2e406bdb84b5ef23bcc8dc -24a5c4e494dab9094973184060483c1a2b85d1ce1b9a82a626eac5c34b121d8f -1ec0199e01f4d9300bc2367af6f1a2bfe40f32239239842bfb98970f5fb599d5 -54ad84f9eafea39b70af34512d1efbc4cc44121a66ea2f916912ae226006c0b9 -b85f8721ee147e0f1d0893b2f12999caed4ff163bb2056a19dbbd4413a4bcd4c -d4bb030c8880a87764f4df89137678bd1eeb517f1ce66784ca21a1794130cc75 -19fb3c01e4be5f4b538b400a6da152cf59d1898b2eb2ee3da7832c53fd35d468 -62446c242dfe108964b2347b1ac672f95dc6533d5a18a8588b3eb85c12988ecc -089badebf6c4de916f77b325f5ed8adbe11617bf6cf635cfffdb6a25de264e1a -1bcae69ef7bc9d3b637a2ea4080f01a9932e6d20290adb87596d49531a6b223b -a4a2b60ec629521a023e7a8c1648373380dad586c854c2dd6c8a66b2f8d3838c -76dc1a816583f375612b2c018f923b5d305f88ddeab7901f1861e65b934e7114 -3979a345203a44098bd71d93255d3d4de64b89c48e27c80bcd5568746ff5c93e -d493c02ede0463a74aaf120dd1cf140c2e7f5b119ec3556ebc5eb6994bead7aa -ec24d9a807416ea69bdf6103e8c003aad17c35784b1b2b2f82272c10a01382cf -271ea297da421ab506d26597c863598fd7b897d26b7514d7904ee828137400a9 -f32b5e08ed44312dd4dc87eebc7b57f1fd43cd74aeddee5424fda8caa4a1b072 -7a9e9fcfb71a5c23f8c763b8e6505fe8c17f8dc5af52b19ebeead87e078082d0 -0225feb554acb116bf399e804c206761345e212195848f7d574f336f891380d2 -eeb2f90835be6a78b974e5604c1bbbdfafac2975ccf860dc6e29096a92a49629 -39fb5473e9dd678b14535aae8bfe73858d8d3deae4a85f90409fd01e63184e09 -16f7b3c2975183b8940328b9349c0ee4380bf743b605d2d888fca3fb5dcfd302 -326d0359570720abcbfbd94c8b2420484b6422f597a4100bf247fdbadf6679ef -4ff31616cea77b08aafe30723b2c26a998287c132ae2ab6e385051642891e375 -6c4c29a4d9b71a3d86b93a449d92ae04f37cc4f68edefe704e5c99742439df8f -2bfa9fac19d0840ea40d716f1189e0ed3f025f3a234d857bb7e1f47bed99016a -93cf1f595ac8d95cbb7924e7999268e25fde9125e6e3b2cb547c9b74b121bceb -0f1fb147da2fdfe64d6ece99f07e3a06eefbc841824fe110e436ef96b35a1d22 -d255c2af6fc2897d6c4c4eabb50a8414e173006e9f9080b611bcfbeaee826303 -e889b04c26ced952e274295c361b8ac091675a74d1676a5476b6b59f3bb863f8 -91dcfb839003e14412e5aa90a8f5220b66678b1e0fd8f2ff7656f1f2e025ae5d -47034fafc46dd2de661bc712d78026d362e05deb800fac4b8c4770fa5c45d349 -ba45936a67c752a9e5eaa26fe974e0cd661b31226140a6fc4a932aedf4c149d8 -f7a6a7d4f3cca0b9a28de0745d567c0f76a0d197e6e0e9cf038f88d894dbc42e -d766a88a811e504f11a240466641b16f79e22913e36c693b45551203303b8689 -cba59aa4f9f94cdfd6a57aa854124f86fe5f442dabee2a486529a213c6c45578 -5221e913f5349a2aba2aa2ae3fc76d35b87b0212b7030d50dccc1d59ff529965 -651d3d15cd67c720584b591285ee8c59090a0ebd63ecddb25df96deb56c4beb8 -482806525297e1a46d25b7b08adc7193f2392978911116a605c0302bfd67adde -d8d129d6e734c1fb8483c7745677b1d4504137c1318785955054f432d1b44f57 -635b5ff06b705b4af8296be77cb8273e6ca8dc756747aed4ba41b6a2a1fa4681 -e7afaa3577d559b05eaf5db73ab7925f9ec68b72efc59d4a85456d006d2727ac -7db930cf1a40d5f75ab55727271356ee2907d891bee0c29283cbb0646489efbf -46b6cf791effb657f1767ff42379c0c6a321849006a730e44298c5c69eaaaae1 -35323733a4dcdf7689937f828cd8114150e172f3dd0f6a494e039ddceda36228 -a5254f0e7f9171b5bc979917ca87f6bc8419f71fdc3fb512f37965df3b9420a9 -6c7cf4f9127aeb9c96bd81562a17afb776a9cd2091daadc0b20681214b5b8fe1 -5269d9bc7e99a97c4dec87f294c3c8232be0c956fab350ab89d0bea9e2799fe4 -fce76341c19a2f02723e1dbcdc600ee9af75e677437b81d7bf592dbb5e2709ca -93b14882192a4c7a1a3a98118255807c1b7831433401651df0a911c64115fdbe -2ff342a5e7367c65aa623357649905e04cb48aa40aadc450cde961ce8b99065e -32581354946c249046daf4acb0a2296e3b446c44e0d7cb8529a54cdb90fe93e8 -6ed40e63e886d5f8409c468f1dcd94a60ea266f813270e1ef5c6fd9f950e32dd b73e65d50a91efc5f7c9c42145569ac42ff083cf5bf1ac68682a62fab5667338 -5b06bb0eba9746e7f3ba26a6c125c80eda3f27aa88bf753587f6a76c794c3739 91a2f03502d4fb54854bb4a85ddcd4724e4caf0545ec2dd7103bc9ee001ac49e -cb0e2ffdb432fa68b7c0046235053f3d3a339dcf1c58fbb16cd182aeca0f4734 -054e776502b4aa4cb46bd049fda6776187ddd5222a9ef6ce30816af197e949b4 +d76c9094e55417d0da50477b71c6afe4f2217469a006aa6f047184847d200bee +9dc6882e862362bdeeef60fe5dbfd20ec25de0ee273ca77739697273751680fd +17200dad22c5279c536776f132ea3048d7cde91f74e35fdef34a6598d10ddbb5 +b8ad0ab6e67b2bc498007a7983282ebd1cb737c29939a9add22133a033d8e74a +06f66590d610151f94870cfb2be27b38dd798bad8d0c71c3ea558d09ea8911a8 +f93a88ca79470a5bfb6d6ee27a33cd2579a9392b23c483ef9bb4a61a8db53401 +34fbc123ef45b39e393919cafe4d75138a117d8eb96bba48506f4f0fe50592c6 +f4fc1c3d765ed81d4c7a3926364d5c65f9ceae3c8665d01d4d66d99515ff94b2 +0ed889d89a873a3b3872b85aeb438331f9f34dbd833a8e0476342df14cc5bf50 +8159c21795df9ca9bf0817d8d1d74fd8594722a23d877a1e639072e839d676f5 +e9ad7580e9c06c3376aa72aa47c101dbea978d333fb1c85ac923d54e779edab5 +e52984bb6962c7885407710b5850f2adca1c803830a8c9ea1c44e412be9696b3 +3cc865c7a44cf2b8f869fac5505ede66aaa618bb532ca698912971ea8ca91736 de59f372a007f5c83e40e5ce731bf7bdca3bbe60cfae906a1f55321e3e617a42 fe4327e8a50f82c4d9c5db51fa034a3481f9081c70c5e044c6c3aa5a90629021 6ce439a73c43933b7fa5e1c4827289701331ba64c57c8c8144925a26414a0f20 -d5c8db08359a29eae0a8832314eb860eab1ec9813264b708f228d0294eb46ce2 -63b0ed06b2d3a6eb78e176591abc3548a027a0e7f261d1398516925f5944807d 6b9beb2916c456bdba6c4d260197ca497838e40c83551e87215793214e9e9461 f4152041fc564d4d6b790f5742dbbd2c8cddf7262c1cef3cfd62de10e639679b -779dba5cbe7df2a30aa2c5fb6ea01e4d138ae5f0daaba524566bd3591b9503d7 88aa4846f29a1034655fb2aba40de2d9471248755ddce97cb3cf90c937488295 f67a518f790b12caea7eb0f80d85798c9032fe177396289c8f5ee068b40df854 e9a4487734fb9e8c064504cf71e0ffe53020d97a3cf8f19b9678e8a3e0cebae6 -a8a98b1813fb488d4561f0e0d6261cf613b26b676df3b58bec889a65f7f1fb3a dd6bf5c6dd325941405718734adc3bb5a2563233a6dba612f56d9146691f73ff eb7092dac401b4574fe51762dda03960e86697abed02544ac5b6e64eb1b4bd2a -fd0744eddcea5bbae28b65daa28373241ccc009e56854382c16b9d17cf2017c3 -3823b06f22f403535f1ed1e4c0bdcba397c7362f9c66df370c63501f16b7535b -5b72faf5c8b978a25a4f9e99a860caafc0a845fb6deebd79f88425ff933de029 55653cfdf72d99322aa90f0ec4897665773f87546db9b3e6d516c8af3419d004 001d79a968a5f679b7b17276bc2d45700b575c0bf40befb52ec7687bc00d4364 08cdd7c9ae5549749aec7669cde41cfd3350a168ef14e22ff28ec57e2e800b54 @@ -1130,7 +852,6 @@ fd0744eddcea5bbae28b65daa28373241ccc009e56854382c16b9d17cf2017c3 fae03a1b8eadd2075e249e8ff59ddb3ac07d267b4bc54ef2e8431246c0139c94 f4e8459577e7008ec0445f378de02310c1a460473d63f7223cdc29c1cd944486 d59ffffc8fbc1fcccd315d954b945e0e0627af266b1272146383563a52e3bb67 -89431b8dc29ccc26985d898dd7aa4907fb287a3fcfd487393ee789e0daa4a49c 995894adae1c301c9edfb54e0166db3787444a057b2407a33db046a4ed9a1059 a16e5b8ad9206b62ed761868cb054e9deca8669a4456c8c4d750aecc7985c278 86a6e2174c3e73cb2ec30cc8cdf51dc04068cd33b9fc33c7e0fd8bfe2c5c6d94 @@ -1139,116 +860,54 @@ eda102f79c40e83233a35b4fe49949873c68c1cee341bdfbdcca0fa88feec616 91d677a0fb9060e510b0d174829cc12222035e41022b96103a7424ca3ce710c5 9ab2ebd561e7c6cba8cdf99a3875892e7da05b1ad54e186c3f3d50111fa7864c 64ae5823b7b1c003fcba38db5f20f801f59aa0baf4e4802c7a84edccf1251036 -db2dafd6ba4e1fe84d1b47361c4671dae4c52902a276e30f16e6c6baddf57662 -a47628794691fbe9ad4d4adc4a16137945f46a8ffea83bb2610d7f7ec8d02ad5 6201e48a9feed9a81a8d7d444a05dacf5d9b5486d3ff7fa9691a1432b85a06b1 709156584c9b6aa7a0190f1871079e5a9fb38dcb31964bc6daedba75eb7e24a2 -61b7e3389045d323b3c9b03bfff11f90e17e4a642ca3b44c889d91ee264df9ad 4fc857383643eb2573dae3c1d7549d86aa7ee7ca9ae22feca7587f542d34a6b3 -5f2842a66f2641c128340337063d0f34d5ed4e6bde2a9d268e54fd4cb7317492 -2a493a9719c03c11032e65e6994219c19f4c81ee1b9590c11f1da4bd972bba98 607090de17c627a10e062c9da4f1814c5a1a3800b62515612c2445e0867b8891 -3e343bb863be7a3526da971802089970ed815e75a6b8f66e97e4d7751634f695 -4dd70c7440fc53726c040a6f0c6c05e11c8c3035afaf93e692e35b2915be55b9 c37c81f56f36d4c08d3afd5072bf8779b12949abfd2d081af230ada474cdd45d f839a3289a26053c41f8ef47d4f91eb0f6fc7be7f41eb2c64b0052710ce2ade0 -7c5375fb3241169471150411cd1f3c34f3b7b20817b41ec80d521e88c15aca28 192261e3701dfcf5e68c2c5e4825d05e4d32944387d6224d44e3de1e7e5142c4 -6adeed92841ff92692ec0aea23818ecb1d4e037b2ab4326877067b2c797cc809 178e2d42ee98128abdb6e6b9a6590167076dfd05d333aa354e612f06170664d5 485a1e59e27585d965346c2a1e6cb67f31f6d882a64d5723cb920efc78bab1f1 -720d7a60dc73b27fa50203fb5a8bf9c2439499439327da2ba21b198611e50cda 062e970a200653a49b73447a30badc489dd0d54996273222a8ac611089ee1553 ac8c3b473609bcec27ac20edc391565ee43ecf6da585de417a55f4bdedff6c1e -49717c89152bf8d8a9383d4087a338ecdfc9a2578a88bce15cf01a0f2fee9bd6 -cb85ef47a1c2f4924cc6515a56cdcde23b47981a49d5120577146e8872b94db8 5799dfe8f070bfc1f9e34b9d96626d34246bf6b0bf5bab3a785747607c257621 -413b1f0f3dd7a4e73e7cc8031780de1bb3456a270e7be673d1ff54142d6eda81 -961c9e2f015e4bcf06e6cf2e04b3deeb495cc92776085af8760d77ba61af452d 0d24f819e32fc965da611cb3196f49d3184f722086a397c6d1fba1a7f7a2e65c -478ddb2dc0844d1abd69b0372660a51003c0ecec8ff89a86f93add30f2479cce 8f8fd499397a381b3e8c53f6073c80e1600143d189528e774d222dfeb871aacb 60e41a641ccb5ea996b71d29c6c4ed83646050c3c5f2cd9dcf7dfeb50ba6ce96 12a933900479150cf873a4e77ed04015b46aad15374c4882d070914739d92639 df189bace51935d6b17035b1dc15ced2354cee565fdcdb115c6acfe479b491de d5cac87f4c205e89c74b3f28c0d88537a676b23bb8b32523dc58807d1446ff5f -346d1a913ee4cbcb0311fa8dc77e65baaf8d95249b77581e707cf6cb18e46c55 -d7cb93fd68148815dba1ff84bc5e9dd32d4f61fce2798842e4755ac338458c94 95c8dd4f9d2ccfc2396a9452fb60758da5f4cfe120b3047407073b96fc770eb6 898317d173769f2943bac260acabc0b66bcb802bd92d2efe8c5728f81a646e3d -cfd473c7b1f15e558e1f4d211811e718174dd57a6d9a045342579bb707a52b94 -a323e9cce1a9c4a3951dfcf9e525bdb78a77a34d73e2353beb79009c8f8a73d3 -627a256c14b4d4841e67e79a2cc48d9f16934e77c304da17c52c230e7421153f ffd77a505db6e6ebdccda183dd8590d5ae8bad19445c5377d2b3765a518938de 6f9554affddc3ae995ac0821a500494c00ff3dd07a076483cbede6b39b71f5da -c9015c6ad7f7e59f8fcfb19f87347c9c9285a0356b668f969f3cfd31fd7dfd20 8b27a452d1c0d29f04406f3ea1be8e3c3ad23138e84cf07d68e1e30d474fa284 5bc8bebe7854329a8c85d7aa6d8936010267ea8ceee4217bb047ea6bca7d5fb6 -3cd813f9df72ffc561df4e1bbf1ece86f5365bd9b48d7f7169c7b20dcb2372f0 -463f0da046415fda3a49d52738fdad88bca8c30d94d644027e3cc043c72e4eba -836ba1041dd73136db41d8c4b587fab80b840bfbbe4723e1d6fa16c7c60a9b9f -7054852442e64431b1764b50666194bc04ad70e4a80f29e086b61c5b79e1160f -74c8060014daa6a8fe0ac7161cc5dc798537a80880e87feb91db18c6b737351f -c97af89a9475d93a2aeebe1392d14f1fd44352c3ad3e391d0a8829a084bdd5c3 -4651b78a941d1428530d8c198d2e689a7a3b630019e75dea624cbcb547a8c1aa -65b8d22960e35b4a7282d4d36fb546c16da9504447d91edd2f2d198b3a00a6c9 -7e67c6d922bbdbd0b7c9f3ca720dfb0ecf19d77e649c14824159d855ae13de59 -caff29e3a569914c4a73374a55922380f01c138fc78b3fdbc74d85939dd2675d -1b01e39790ba05ff0429ba79b632ba44e451a812645b1ab3b117589f587c8cde -dc88c021ff75fb9fa6d6bf783262a6f9e48d8701a64958e0ea5c86f5be805731 -cf5defde2692c92c514841b231404db099ab1278e1a3b6bca120917f6a99c323 -ded2e8a42e0043841b46b598628ee65a04121860fa485c0f64b915d5fa128073 -cae6d8a1648f14dc007e9718fa7d52765f2a8e62aa5cb257503b782de2af859a -d41d8cd8e328447860e92ae464e47a58f51c8ea2d8bdaa238d91b64fc88f3946 -c9245a992a5dbb470c0df0a2aecb46e0aaf90c80ce3aa0b67f615985ce0d704e -6a00d75b34368c65711afd5a979bbc669577ac49f8885156d1f07e2c6bfa116b -5e9dad9498d8e9921a87d8ad814dd4e060da7e275a11d81acf0e396ca02aee5d 36aedff968224e7218506864f75a342bbef3903ea09ba5168e546d62760a1e97 947506106adc4c2e6fcb8b5f31d8251dcfa10626a0fff1d69c9b23d59118f6b8 -2e09cd097b1d3ecbd45ede4b4019d62480d27222aab708d3574b03503375bc51 -7986704f56406f40de9da0f75f7fadaae830c9340d893da8e853d4ed632d3613 c915d5eaf3f70f36f1e095ec72266acf9c2e363e8a1dea27d6048818b625e0ba 66b926a712476c9e407169fcc89f7623898e836a115a7c2dc47322db62e048b9 6ccbdb2d47dfeb2b644d180ce58c9f450ac4fab5ffe007daca501b859b4b51b6 23cbb4c14577555a88da040cd36c94d7b15896227d79f605fefca77bfb39bb9e 276a064030948a10086df5354a0dccf4c731a60ba801872512b25dc58667019b -778568f790486a29c250a45d601120f30a83302e596e402e991c2fd97f196e60 f2584170829e025e4682e9225cd63ae8b81674dd234f0dfed03f709f0dbad9b8 83921e142baf96bdcc921e2c91ebcf3e6b673e0bb95ebdd625ecdc469adb6920 05a5366a6fd57e3a3508eb6938aa4633dca934c79444adf8dbc599feb8213e8e -c587bf02524cd4a5dd529f855ee41192501255fa80f1073e044d678ec8865ed4 996e281a807314354c977a4fda773babcfbe9f39ae515dd0491e1f988c84e1bf -5e451cdfe1614ecd48f73d93f767d651686985c7a6bbd033a4325b76c5a9750e -c9016fb840750ae7a0aee9135af8f90baa0cadd457d668d431a3b40e17879ff3 -089aaf0d90529605e92de89f303b6daac6a8b3d2365ab1843a06763ff3a61b65 dfbe33121c223233c241bc67a7325c1c2cf62fa78a19c7a9e4d453aedb7ea34e 28aa63e4010e7edb1ea207cd0ce4894999dc6ffec2b6ee67650a7da941818aae -67abac191dd421c0b0d763c3436f1f4ab2a4f04c5ee12418ab28c4a608f8b7ed -2152369bb55306c2662ef31e432878b4a7d9cef62ebabf310301e965da618370 -7af5d784ed2347849ed485aa544625cfc10da0bea977667e9c0dabed82130418 -bab3cb6ca7624513c290056ca9d9dd768e1e24766c8274a9f16ed1d8305ff426 01ee8800c65f6014a1e2dac189f34275cf25179f19eeefeaad35c12dc31539d7 8acc603ac9514f7855327761c04d49f5ec931178a3e207e3627aad366cc9f21a 7ca89786bad85851d5c7f07c78af2a55d82d3d012630132ccbc48dac54821c93 5b389164f3c8e9d099b5a59c4c5f97eebf5d5419b665527a6baebb0be3b4b78f c59c09f01974c399ed6948943cc3445530c972ca51031e8b8f0fb1ef3b987156 -6b474f895489a8052f928dc8b258f80ae24331fab35650b150a11c396bcc378e a7d7b66f67ff1cbb5f22d0d4cc6ab42611e31b9d9dcfd69dde62c5aa3b416265 -7a8e0f41d6e6dda7033f8a8e456df113d2eba6bc790742cbf67009eecb0eb580 -aaaa34fbbce3383dcf4ea32475a0e0a32774ffc724e840190db16bf190c34be1 -cddf84e3199014fbad13a3c1c06c3901934ada1afd5c1640bea40d5185e24bc8 b990b47243d3ab10d3ca2600afcf32f83fb9b6d0a9c170cb3792f75b9e84ebb9 -a6c9247a760bdd862af1157fef8e4dcac2e33d7f60e394b149f4e22620486d80 -5bc5992d69d5842e119fe594c175638081880bc4631796379bd2ccd3b7124675 -c52e5c7afd23d74de3a860f57c60cbe4f63c75cc388db596364492be46297f24 628eb42962587fb549c1e94206cca16a08e1e2555a608902117f8e18fbdd6bbd 7e4343f658dccd29fcd344bacd9a1d4668daa639bae1bdcfd59329fb0443ae6f -c2c976499bf3dff472da9252e990e49a00c66d2277eaeda63d792d4d24863638 14cbf5058558a52e50d17079b4921681b175316819ed608767263cb1ff25939d -e97e360e51cfa9ee2fa7720c8d660faf5246a4fbb0c8d52c84e0af76b7be02c6 a932b9c6eb071075818a2dd348f426a1d5250c1543094dbde1359da691bdf401 -e4446d9caa9e7af06db07bf83e81b96c8e783c48d0653664f47043e0387c8be2 -5c87e98e4541a0b55e3d0f1cb1831b93e003cf35063ade92502e6379b53c0fbd 29a21710d9356373534d3b5ac515c0f52a2d9ae58068781fecbeee46bd5e3130 2454b8f91192d97c939e99e0b1cd37e90a64f56fabaccbd198253eedba3e1091 2450b64e81119ab6f2367db9b69a532d9d89fcedcd7b3e46300a48eb09454300 @@ -1258,1954 +917,2418 @@ bcfbe08160c723651915066e1838345254222b2f4fb7bd9461e9b7ecef66f4ff 13ca31126b43525b3ae84aca0ee5cc888a799478e1aadc757937245e2988ae54 0b76c0fd4b90994ed02ba9fabe22a434aa99baa8723b1472d260a611fe82c93b 9145f71698b5ddfe75d65a91abaaf52bc64ddb46f74b84e20bdaa84c95fc3999 -39239656b9e496c7f8199908f229c5c6a2b7822d5c0d3bfd36fb2d6355e2cb1f -82759072950f9f88c64a7e33bd096899bc70d3d9ffc667b90b15d1698c2b06eb f46c0b0dfc887b3fa919cabccad0d37e06e9820f9b9d420e430165a80da44006 0007f518fef4069ed7afe6f093fc73da3447133d5d6abd59c1978a2b597b6aa6 -a407b187e8bb9d07a2fc0800394007cbca0de39896b14c67dd99501c3407f9df -2bc241bae962f35ad45d7edbd69b18b7da0608223ac8223af03e83c51816c494 -a9c777de2eea92af61dee0cfb16531d8df5fea9d68757bb86f3ba261c245ef1c -9d50f89b92494f584adb7dd6ceda9c7905b0e57ff7c9c53af0eeb81cc3eb95bc -59cda35f306894e1b6e9a4b427ef92d6bfd624fcd19e95c6740fb7cc5ce60a72 -2df4840889eb2d34a57abf0a49da348d9dfb82f0c68c4a0fba22495baa9f5c59 -2bd47d0c8947dc44d858226c4def55dda2e2b3475e0969d34cbdf3830f1a9eda -ee4ad1afce4141b78ac310def0f73e2c0320332e5475fccb9ddf5adb1170204a -5a783ef98d4ee4575ebaca024138aef3455642bc44aa85e663ff16ad0fb95ae0 -f96c824868d59d38926f486bc58ea697f57e73a694294e304397000bca02e08e -7d11ba00dd419b6c810613c35150aff7c8842023f76f5aea496ee897b24df273 -e4e0b5e1999ddf993f60bf13c1bc0d8d7f36821c0ee933f295d9696b79a11b02 -d66f430cac85b212f2306f52f9563032589acd2958cdacc835424c1cf7998692 -f90dabcb1ec8980623df239c6ad6a325fc79736a572eeba369c61d1e8036d1c8 -703df70ca47c3ef54ce613eed28d9f303113f0a0878708eb264892dfd863d1c3 -20ea71321c433eb6221f9f7baac2d61cb06446315d517e3eee827b6f73469306 -da9409a087ae100441a578b4354b74a8dc4be3acb8757534206ab8f0da8152c4 -7cb92ecdb39820505d2d5fac724fa131437a4e94744f962c5b232e9701347cae -780d298936dd67f594bbb737af993fcc87384be16b0240a4f591aa02d87d660c -ec8e91a3180c8d0ca9f4524c27ee9241e737c1638d086bf75c62dcc31bd3695c -d2685a67fb9c2b770fd60b2b2c1570a764f4befe0695fc6fce0d3fef206a1974 -7d1e92c898a9b7048b451cb1fdd7b9be6c3d81f9f2845a01e45214752fb41865 -5e4264597a493f7a3ec9c66f6d4f820d0b3b5d645f7a6d94051c72266db25bae -878e637261705bc7591c6aab1f8146879e79fa7b3e64ded2f0d9a804bb09cf7c -562020c589b13373527aa059a1f176bd54a0b2187d0aa7007b41d97f99facb96 +6e0aa90945fbbfde4c43bfef3caadfda10cffcccf715e1158a15c6761857f938 3f95cffe8d3e623a5e1ef500f16c331a1999354267e030e0c7eb9a6f3a4d6e08 d030eb85299af43118e703a1d61a6915432289734d164f56d7c08d44351b05b2 -4c5092439b4c117a91a7c7ca5d6dd79ce365f664f4b61060b99315947da64484 835d922ab34992eb523ae79468800af340042e5ca31e3c374397f9a9f2dd78db -1e3853af76de2f01c704981d8471d960ec786e09e1dd4450af152a618d30bfcb -c1ec95bde4686e2705aab12440f1bbb594ed37e7fb3467f280ab6d4851009334 -06531bf411cb31b669e4b6ce0354cfa2c2bff30d55c33553c6bf8a4da946e20d 641b5ce7a7989b175c0bbae12d446a66bf955fe43c159a882fc041af9c88b8d0 -9e48f83e5ce4cd704858f5185bf4eb98ab9966ae0f5fdb777362cfd8c1cccedc -8d8d1a54b84c50b98f2b7cc7629711a9e8545e31325a6a1cb88321d3faa25b02 2a86d46e4403c4c63ae49cdee6e9e28b0eacebf2f1f3b6008d076e12b40fdfde aba137d9fa97658b3c2857b146e05927af961acfffa2a9394940f78df2ad2956 e13e223dd787f78182a6259b8408e59062a5dedcdea20028d600d111de5b6390 4f1df95bcdbb6e0e161608439d10e34b4e5ed9863d2eb2ea8c07fc6137555cc9 2c17890130218b6495366a50f67c8d77c00e9732a11196ef9ec89b66beea9771 -0bd2dabab83ce32e087466c1e5b07a6c21e4e84028d057af6413e70f3f0133a9 7134a8ffb3eafbf1083c31cccd2b66853b5851af67919c4cfdbb93d3ae68b512 -1dab7aa7e13a55ab9031bbb7d95f3bc5a81b4fe1cdf664cd572150a3d5ddb87a c42a5311c9455740f127beacd6486b7ea17808017ab26bae649049c2e1546389 -eefc82010b4c7e42733d702c3869f9bc170fad49f47948787dbff27795f29562 -884e559f294971a6868c3555ba855fcb2607384a9d1ccf10ebb2e6cf1e2a7bf2 -89daa601b73311e42dee11cd34c8c16e2432471bc8b8f3d27a413fb4c59dd6dd a14f3dc4df4f5699f98079d5ca1344becc3e494c83a5447c117770b0f20eb2fa 6f9558627aa174d26b5c33d38cd7972fd1fcd7050313bce8503aa9ab62e8ba95 3ea8889ee4c95fb3331a35771a3cd78e8cdaaec9256c959ca9873f71a06e5066 -85773081178a29401b1b3ca794d9c5bdc4b848d0f4cfd69a7f98bbc1497fe4ef -44734a9c48b60cda6ebc42c26d6223e978afdb2e6506f0233e43041f99eb8db2 -0571c659eea0a98ccbee0d8638803b5be1153f9421d026bfafc8efe95d3ca2f3 -501f1dca1da3cd30ebdedc570901243597c4a41366bc4c4ce0bed7f9cff00c39 d3f6882c3dec342bb97a67cf7dfab7aedaebcc908c28c67a20f3397b48e76d2b 87a2c54dc30a58883b1527e035ca6d366331fa98fdbbb4837ea8f0cc79d741e8 -55870eb28ab7890c01af34865100a9dea848e86321f519fbb65e28fe677299b4 -7ec39703c5a00985484b1493d258da1c9971efdeba3315bbd3584684c9ccb803 6b0440e834a8897e2320489405e8fa8f600fff109c27490e52d2b3e36d3d3567 -8ecf7c0bba830dfd339172926ab4ae8fa3d2bc054286b6838bb41e1a519ba5f5 818c13eaf4509e2c83ad278749a4b8163acd53f8a99bea07b58e23c5e5d08c00 6000ac5b4e2494cdd384e7236e12bb8d2b5cb706cf6336ab7567683b442dd224 4e330922eb98fe785af7e08855ffc179635a6446fbcc7b03037d08ea53a47a7a cecdf0e17c2e8d917566d25e6d77c2781192e12906850167c6f84b1a718a7923 7758863fceda314b0a792657d3ed3a71194d496caf394e72fa6436007b6c0dd9 -59267ee7cda1f660422d54c2782ba0cd26cfb1455057a6cb6106c58aa6205d0c -72cc00ce506867a2515a279fc5dbfd97dd3654261ba7723d36997e5637cf8d8f -8230a1fd29e3dc4ae4891e3be52206c7a55da54b44ad8ae6f6234b45ce37f753 f09360d3782e0deb53ebcaa8532fa1db2de664c7e2476176fc40bce84481a8c6 -edbba55a9aac364dcfd6c8ef59b7e908b4c6d28c9a3d0ce7b65d2dad9edb9f3b bf471eaac162f0bf317235a006d4126dc5ee52fb0d96eb1049616a88d198327b dbca2ff00f47927d5b0a60a733f37e3064d5ae83f350f675477842d5d301bb5e -48b16434770b5a2873c290e50e3bd6f59a90217815523abc5ec8033b5c5004ec -f8454f608795d1d233fe53ed86b361dbd19aa63c591ef9a2684ad2cf8252d104 a4aab845c099b1285b6a49620d63c54aaf6c7c8683841db00c929c85761d35ee cfe35b7eb9a0f0c94267d7e206f538b850ba365097a93cf1e41044e30a0d601f -6c354d1c4a23c8e947e7ab849942de1c4ec0cc158d14801487d857fce67dafdd -1b033479aee1b28f7d7af5ff029d9d7f8f2b81cc9fa3459c489bc0ec215b0e6a -7d25666f06424e2d9bf6a108d65400a4581fb9e9be54c92f71baf6c2d2f90f55 89a3698e7a773840e0ea749bc429101a3a3706277b9d5282722cfd05278c4a65 4293449d34fdd8ecd449a35f09e9a49a29f81b0a67eedce32219cb1cdb9d5a45 7710dc7e96e4ab0ace1d56ced45f568f3bfb46f735f2bd6e34d2f286640014f0 -0ad7544dc295ccb5691ce57cf65270113f051f63b28524a0c2b48f7b1aabca61 -0ebfb0ad538f162558c170e95e72f357dc1c8f4b90ba12b54ffe397fb7124c9c -099c975d37f1c9422e16db0e4d2903717508a550bc54ad27be2713d8d74e276a -7cb995e1362c2bb21640c886e36641c907c14ccafd84f307a1f74b0eeb782870 74ae453fad0f8309bf9bda41c2684728c7535f0767ec393fff595bffba3a1ec5 -00b0f05b0b9fa3dea1e7c74211c95467975ae8efa02f03eeecef8febdac9ad0e -7ed8b2c5407db118cd72363d965c5a09d194c3de5787a94f57d2bdb493e6cab0 -04032ea20e8b0594766e67a6517a247e059bcd547748fd6cd2b659c59a138f66 630eec291e2f1c8503652dbf174d8dfc44e714c1bf8651ff39f74dded66568f1 3ea6c4f518e19828a0ae70f6e0f4b70d420f16826f32e50804173d5e1091409e -4831babf5696b40d935cc552991af295b6de7a51e4d85419695e28dec0739bd5 815d4153654775ff14bfb50fdc22845f5f50b037d2e536f8d79fed1718892981 -2f9d9071cd9ecba463f5c636faf106afa0a09ff87ac24497290a36d718cb70b5 -a887af491831652de111eca63da0423046089cc5381b347d70ed9bcc21fcee6d -91c023eff478100e94768b16a8c6b0c95a3d8abaa51e47117196c26064ad5a71 fddcf1e50a67ac5416609d603e29ba40d250bf67ae9c25ebeb587b82fbbf0373 -d9c35922a4c7f0f6e0c7ae397232009375505686d13fabf211f72730977ebcd8 -9d9bd71488f5e33c3974a2383ac182f9c827c86b233e6d17024fd5a52c9152fd -e00e397f1f27d1cf78a68252e1c4c8e491cfcb9c6d31dc40ab15a0aacaa7b12b +422d2ad4bfecc31958abf7bc443f67d4d9cea0cc98a2caa9e1a008011ac8d0ad +3cd813f9df72ffc561df4e1bbf1ece86f5365bd9b48d7f7169c7b20dcb2372f0 +463f0da046415fda3a49d52738fdad88bca8c30d94d644027e3cc043c72e4eba +836ba1041dd73136db41d8c4b587fab80b840bfbbe4723e1d6fa16c7c60a9b9f +7054852442e64431b1764b50666194bc04ad70e4a80f29e086b61c5b79e1160f +74c8060014daa6a8fe0ac7161cc5dc798537a80880e87feb91db18c6b737351f +c97af89a9475d93a2aeebe1392d14f1fd44352c3ad3e391d0a8829a084bdd5c3 +4651b78a941d1428530d8c198d2e689a7a3b630019e75dea624cbcb547a8c1aa +65b8d22960e35b4a7282d4d36fb546c16da9504447d91edd2f2d198b3a00a6c9 +7e67c6d922bbdbd0b7c9f3ca720dfb0ecf19d77e649c14824159d855ae13de59 +caff29e3a569914c4a73374a55922380f01c138fc78b3fdbc74d85939dd2675d +1b01e39790ba05ff0429ba79b632ba44e451a812645b1ab3b117589f587c8cde +dc88c021ff75fb9fa6d6bf783262a6f9e48d8701a64958e0ea5c86f5be805731 +cf5defde2692c92c514841b231404db099ab1278e1a3b6bca120917f6a99c323 +ded2e8a42e0043841b46b598628ee65a04121860fa485c0f64b915d5fa128073 +9d50f89b92494f584adb7dd6ceda9c7905b0e57ff7c9c53af0eeb81cc3eb95bc +2df4840889eb2d34a57abf0a49da348d9dfb82f0c68c4a0fba22495baa9f5c59 +2bd47d0c8947dc44d858226c4def55dda2e2b3475e0969d34cbdf3830f1a9eda +ee4ad1afce4141b78ac310def0f73e2c0320332e5475fccb9ddf5adb1170204a +f90dabcb1ec8980623df239c6ad6a325fc79736a572eeba369c61d1e8036d1c8 +7c8d5b4f0d75bb55babf4cd2259210cd05a62e9a839ddd78c9d6745686ae53c3 +db7fe099ade891eb1eca805c745ef3816d77814c8250309f7e7c5670444718de +a9b291759ccc9dfe70af766569141c00ea4c9d8a74a4527ccd073fc5c3739645 9cf543dfa3de324aca1c3df864e025bb978564f44c00adb52edd9e1b05319f65 f74f06dd877c776a93b14c325337f439279b23ecb982581b0ce6c7c7a294daad 3874e84d2114a3631b27e2a89eaa2706de9d462cf5ca42b2aea29958649a481e -0635c503df05d4c7792522000bd03f24eb9d861ce394f3226b9f060c7d020ceb -280aa849df5decfb645429b5cf0032c2b35718cb6fc1dcec7736266f2d775002 -1ebfe0aecbd30ff546cc33081cde3abc7bc8320ba6cf824c189d31a5911b58be -cae34367610dc3eb123c6140d31ad2ec7799189906f7dd7b7e4905dc5afcf2eb -0b036dfcd54233607db0240ed765315133c90befe834949c470a7e132897c7e8 -6cc92eb7a9ea78d759f3fcf3675c31c71f7a1bf9f47483eb211d940bc1b2a2d2 -83eca7e15818ee0d7ee40481736cfec306f904ec786c8523ccb45c95e4b526dc -df0a177d041d1b7da1d8a8f58a583523a7616388e5e250b87d3f6721bdec4703 -422d2ad4bfecc31958abf7bc443f67d4d9cea0cc98a2caa9e1a008011ac8d0ad -7ee39c538e97395d94b36396eba5f140911d1156f0ac03945cb920f299564261 -03325e9459c1ae99fc443f7b8b3a3cb01b2a2b17a42b8121c5cd8c83b375fd75 -f04f8cbba9c6391662107ad4a1b9eacbab6ef0f7811e38fb0e1f1ef105ee406a -062cebe6830405ed6f76e7cec183f659798910fb427bb85dd5331af9ae108b5b -c26aacfab1d28b5285be0ed573ce035ea8f93a8f90d00d24b5271e8499354ed5 -5605842dbf1e3aad27f8785b5ac186b5d2611630adf30edc68a5325fd379b2fb -16d99335dd5705186137eb676101a21c79649df906bc3cc1407c884712d76456 -673081e3bf2aa46e0ec23880efe3202adbbd3ed65c9f814d4a17467720d5e436 -8c8e4c4e689ffeb48c44096c017275395ef09494c9829c17767f3f5e15dffbe8 -27290145da0856d54f5852cdc3b37ef6b6a9f5de2b199dae290fdd0dd3356e3c -114a73b8dd925cb4303f621e91466088a8f560a180e9132d6cb7ef3890a3846c -fbcd48cff010e1755fe69a21337550dd5b58664b63f67a826a3965cbb802d999 -cc06b323014d0add345767c3d63aef96d79a872d377418c47199780159a6f8ac -1da8788d59a43aec654d688970b044151453076ec26d940f2545a3ceded9e2ef -218b089e70b2a495c56915dad7a55a9a3c7c729fcf4a45ac48fe8036500929bf -f968896da3071ad93ce32c5604037321f20d329ed8ee7460e8bc1eb57699cc11 -f01ad807f854a6930c0300298648b2912b524ca6b7ddff12f8b8a16c6dc7f133 -441addfdb7ed114c033bef6c6560f13aabda1da4e2855727e0281f715936825f -39f771138da2f22786ce2fb216bfa431a485d655baf3eb0f0a12f4bdeea1b9f1 -55de053b7de838af416492b03df560f582099ac29f21b2f54c5b051f71bf29de -da0d7b63bea7141f6bda10bf9392df5656633c422868db496f26edf35d3af889 -364b923ec382e6623c6fc551ac6a1f26d5078dfc4324805a981e3d788ef6ed03 -7fd985706e29c97769bd5389f3d4e33af7cb37fc061418a372a17d5a4dfddcc5 -2fb086aa21b95e743c4a7205695de52cbc527d55ea5810c09e0bc3d87ee3db4b 7cae6e6ea152db0e106164f91883b2f181c636286e6aab59b6ab5e46ff692820 71cceb56ecde070538cb20f4a49590690c7f48d9ada1335aa91572ab34708338 +6f366de696e5e005b051af2478e2fd2b69a5c628b1cb284bbb7f0b3f09fc5764 +b41ae160dedb211e207908fd64471220303110da81e6022c0219765b849523e5 +2e1d2933de238ffb0690fd7a0124c6964a28e082c786b9fd6c072844fe8a10b7 +6313c4ea814c91ec72c3e2930dd9370726a5fa41615f8f12aebd34897dcdd4a6 +f0fdbfc57e4bbba5b108025953edae824830e0ae489328d103c2096f0165561a +802ffcc10c75831684179c7958b901c9c9fe618cd7f27444526c24d6f1b32288 +a8fdbbea8d798e25037d3760e2791d33675d245a919b872174b9a93daf449ad9 +ebcb831312463f4d2661a000367c3e887485003bc9c90673028e8381f0c4eb22 +6a1778bc880fee5e38b9ffd5dbe2c23d60f516855b97ebafec02a1185a06f9f9 +f25ccee0fa4a91d275179ef2761f0a7e79b0b561b0a8020d890ccd8e85e7e57d +a2f304e5655bb15ebcb38ff17d815fab5ef607b9a6dc680f58ff92f47249032d +1c8e1f67804dbadd9f2750f2e558714bad0121fead00636150310040fe21306c +015a14c8dc0d3bfe379bb05f6bbd7aa54dfa9f119d6056212f9ff48119926921 +ab783bbf9f00e2bd402a52dadb00a06710fffcb8740d4a822c52070292026cfc +66a284eb6a431b4d9686191c41ebbddd452b97ed6dc58e3dbf726d748f10efc1 +70f716da7a64617f58126090a3cbd619c851f059728b159b5a4bde0e0e93bcd8 +8d4b0c071ded6acfe348b76e44043232a893842416e33431172d041ad4be5690 +d15bdf5d7798a4d842cd7abc494484c5060ba11aac6dae658232c01d76cf32a5 +7762396939fda1cffc72c273232794bb9e8fea91af248528c408ec39a1436be6 +4bf775e63669aa919b49cea40588033c1b83520cf0b417580b102fc58052f1fc +133e0b0bd67b98f2ef8fc13d36b768ccc316fb51710a9c8f8cdebd709d4db09e +abb65a16c3dbc43e828b5a9072207aef0654fe171a1bc688e624a2c2f07a6650 +713cfb7e01dfccd2075553b3f786ad19e6b5d3d13ba47f0d800b290749a526c9 +0f1d3efdd07f9feead7b2015b02d76ba6f0d61d66173507f76d986291b2543f6 +8f5d087992f35b70a24caf747bdbc2e6469e0281533ce388742c5d2149a899f6 +df4926d13709bb88e23192eeca032937599ab4b8ef93984aa618eccf1f4cb06a +1442b1e915d2b58716dbb0da4c1c8ef7b0eb71166046d5cbff1031a01e21efb9 +712afc0cf65e12be4da48dcfabd800d34d13704b5dad99256ba184dddb70583e +d88f50ef0357e84ef769a7e5dee65b43b6ed2576d99a9576091d6bece77b3ce3 +de96dc6d65b10125aa25782f4562226d6d15f4f3273f37c1a99c9621ef2f0f2c +bfba6117cb85a5fbf4d5acc2e1f4033e9a062906b9e081a1e0f075d28d54770b +9152662afc5b0b642a85dbfddec329585aa5e65c32ff9e4e9b25e98bf241819f +65502666bae303206d40cb1b8bf2500b6698a8d4a66289b791468f4f49703b7c +7720c1db850568c67822c3c95d3121241c54c1ad6bc95a14427eb36a98d4f4dd +54cd546bda2927cd8af5d9ff7d649ab35e8a5d92f5c3a8708ec336532899ef4d +4c512f1b316fe78347d90484cdff2a262255d69d4527163b47bf63fb857d7090 +3f9e7f855027d7d6f3db697ce76b41323805d879d821224ffa77c8e0b4ba9118 +b17f07860b0c14e2bc6d34e195627d0dc4adece75d134042e84603cd96939578 +68d9901c3e1b60e588b5a162449195b9307a153766f2258f3cfa189ca4b5d618 +e5576849d5981f76d3b1d19184110c8991132115dbf1e780e7df0a7241df5a8d +da8966bc61cdadb5845c8dc43b288e92c0bc742755969b349fd721d6a38af544 +b2ba410dff075a4f91aee02773677a8b4c833c934ccde6e74d34ace4b7148580 +1c6c6f407aba94a67d6406b2b57dda4f46405b2092961a4c537205fbb9622718 +1a5627d7132751ed567d8144723ead630341d4f3f9916f392c6735d9837081ac +384d7a60507c144e6d622d7554b72a26a5a95572f1da765aa23cfa9548c33237 +cbd16c3072a65bd78bd24e8842634293963f8bd0c23553dfb27bfd0f800b3bd1 +f5d2ffa85eef5d9b1e0be73942a7c8d179e2fb1d81124dd9d6778d2940068a7c +6644192bedca2dcb2c4b193a91b91edf32193b4e7e524cf42676cadbff6aa8bd +5515285ee161a6d0e92b746fdb4a0d3d8727045e79e36fa76f20e0ffc132d987 +894d64b630d030d27ed1f01865fb97f2d191adf7eac737d8ff1e1bc245b9a046 +66299b177b6709e2ff572d06abb742105a9d8d7cc1fe1a01b4374e4f14120ea7 +c41f3826d749c13b906bb99b28914185fe596ee62a1acceace8abc134564a8b8 +8a160b1143d1c2d99e83c011c8faf7474e6b796a7fd3d28544ec086ac9d29854 +32ead108423bcd3a15975e0627f73a67f8c69136cfd89ca3f7776b17252b1c2c +9faaa6c7b786c447618edfb1c76a8e36600cc3621dfc1ba1fb63a9c8330db494 +89a311aa7fd60268c5c9b4144d88a4e8d210db42283ab2cb09271ee34bd7796e d4c64b4503e737de8d7a84156a3f6811cd40bd80f1173a2691193ff333039aca 4a19454e927b2236bc99a3b116aa5322a4dffb4dbde8263437dd25c62ee1fbac 9943a47e446a9057edac23e79f7de354a43008069ea29959938fdb5a29dac095 -ad743104000b476ec403846375831d12035e3b5a278b2967b297caa2b2ec482f -9d2a3d36db09be26110ba8085024cf6a801cd29c6766b965c4a338a52c33326f -11276d9cff6e97e4dc70ed5e45f8361ebb240d5f208a8aad9d807da3094a0d65 -f932a6f921ea2c1e7d920be5667f963c1dda94b976f1dc0ccaaad5af56750330 -039dc7156f8d2210a3136e670638ee236f560a84e2ec239db3c6728d5be10ba3 -046ac6bd6752e9d3496289d761a49b2a4787a33e253401172ff36392d42db73b -83e21a4166e71ac1eca43d29f4aa850416dc8462dfa808c7ce1e3affd5a46cbc -c2d781875f992eac370ce0faa9e606d8d0a53930f3d30e5ebc6edda406597d4e -7cdf92543f32609c353e765b012db568d05c31144d6c4964b4a713ad7bd0dcd8 -271171197888fe90a37ef2fc0f579faf60e1d1075710780be8dbebdc2977c4ee -fdec7f88568b3eec307146a2d1f170922f7e135c910da21c6a7aa446d39f76ed -9fd94c4688e627d4d5a41fd7674b61bb4ea7d9b9735d62d4f71e145eab1dd401 -d90ebf4ddbe21e8865117fcc940ec652e771c6fda2d74b6193a128429ee5f8e3 -f86d0d2bda62648678d25146ff40cf13674ffcc1302da6146e109e6e6915c79a -2fda462c1b05dba19cf2ba5e9a19a93ec4de0bf42389bf5831694bbe35a9f27f -eef1f2d9d4f7cbaec3e50738aa2f25f75bcbe7ae80885129cf26dd61fcd2d684 -34c7ccfa4e8e20644563b2651eccb64d7bc31d3e8a681bda769e7c17b9bdc881 -5f3491ff9569af2f43ab0459b30be6ea7849400527841350ded83f9d1240c7cc -13bbbc98f8f34a9fc31303dd75b1bc6ec7602348ef5c985816407e1397ae1d6f -91733a34f18065dcd59641011b45890114a9c2387d52e1bb7f89e3a7fc5b258e -e95ba3c7d65ba8f7f49f766161b390a4044e1c73b3e5aa3091b4b41829e8b9c0 -537c5fb3a61cf78d62951194a1c039402c146eb34eeee1a08771bf178fc8bff5 -885b538b492494e20bdb1cf146226229d29aae3c94942faaa8fe7fe84295fd30 -96c4dafb543012b8d4a1cbd9d5cce2ca609ccb914fe8c3182f932e066c977595 -2cc9123974ff8558289f0d5e4b50fc8e1ebc3e5f33e836fcc074834bf84b45f3 -0fdfdce7a90db27147ee168103b36985f61ad43065fe6664951c5861d361c5aa -6df284f006191e823c1a496076a7b45e8562f840d53e152b4c4d335acbb9b42b -a2d6ea0af7a5523da36883e03ee1d77a5d4b49eef097643f51c5cb4d3e066f41 -6bd4278c6a22a03127387fbe11a27dc7e926d506e72bddd67c9128db5ae79d23 -f78506452b9582c177fefd3e3b3d08d247f6bb163f01e5827fba55e11e1dc153 -817e1591e4aa336dfd0bb42419920cf29832e62b9ec4b07daf023fe55ca4cc6f -02f15ca84bd65b8bb6fa65b417bda821894a01059dcece02a30cd708f1b9066c -e11f7b74d4a92600fc30643d0b23e0a40009fe1c92197d95824207c75c81e15c -9435e09487f12fa449e9e898d890af6eb2037fab659ac1b91aa157d8d3316212 -89b5005a00d77d1608540f2d27f6b140e0ef33a01ae9c1d1b6aea027bd00b16d -a02e2e9dd842efd5a5c16d4d8461dbd31455237ed09d0675d69dbafe0ca46c0b -d5c92eb2a4ea105a1f4331eb49899c00d37bbd498a0097db32ef077c9356a4ca -15bb8444baf346a30a87af9f53b26a3ca4be96a70a168b387ec7ba3f839c1c78 -880e5231be0dfa9722db86a78f55c93fb220f9f7244301b03b3d2a2659e425a5 -8519bad4672807650d689487a8f1ed93ea0d75875b5e5bd3b1e02e5b436fa358 -350cb1f7231b1ff85666c2fbd77dd406ac72691de726950ee7ccceef1579761f -e526ab77add39fa2bfb4e6d47f69adfa4a24afd9eb068629324b526ac89e87a1 -62794f160c85497efb4fc594bb01d711dd4872d14382afb9edb362bd4d7b163a -73ce2b15f1c5ff2a0ff77ba7ea7cdbb8540858f51302e466e99dbca2289d55b8 -1569eb5661775381952b58d67b6aa7e4ce17c322849638b12fdf1b66af8a9d5a -5c07819d89f3132f6216cf62009d95cfda05bc4345330647adee20b3abf343b2 -7d3fb1a2704a337bbc7b96611a5d59c3a1df4f0c0c23f9432c5f50bbc3abe82b -ddf2ed9160bca4243c312c8326977dcfd999608576e0231fd3daaafd9183f2a3 -bb141dcdd14d89f9a00cde6002444d5cdb467d63e3b78fbf0bbfeb5dfe2a10c3 -5a619554c8c43fa7522766829bd6f0d22dd82b87a767f2de84283ef25384051a -20a892c9e456b4a15e8fcd621cebe3fe0cee5985b9f17d75c92de6d69bb1107c -1f8fcdaf407627592cc49c95cd70762f2343bc123f6e82572a63c7f0bc7bc0bf -944982f057f7a2c88b54ebf5956f587388d1350ae295b4df480ac39cc2aef7e3 -bc26dbc2db2983ff0f029be6e3e1015ef4c56081bcf4d4162cd1c17c7a2521ca -772b3d57c5cca6c978150ab6309aae771bc322646272ae0a2d302c69a72c0fc8 -01ce47fddb3920c763b17ab0a5aa17ba4ead8d651a4b97461dfbc5afa0958c3a -a951b9a6204acb6a254c328942688b006c73daf7af93d7dfe1d4c784f8a9a51e -38d5382e11cf3ad6476b7451cd501ebee0539453d2808f0cb76f5637da63074f -78dcba76bcdd404f4597c6be549455acb4b12597f0675427f4da3a48ac5d7af2 -d03a4c0196ed88ac144d2284b21c5478cbaf5c1a96319f18bf3ae76e0f5893b0 -840a97091ab8d4f782c0daf9f3c7f67eaf7eae595a42d5fe0f7778a4cb3797b6 -e24360a549a9859b0d8fbd98f25dff341962d74891f5e68130989c5903343d88 -429ae4628927a9a5c16230a8fd6f0e5f652396aa94de3ec9b2b67eac09a0a6cc -bc8abf0c2ad8027211595630f6e65eeea97145ebae192fdd5a47c9d5693cc7c0 -8495c2d5cb052e421ebe71928ed2d389c24020db270a7e72363d4702b32b0d2e -983a56dc55c6977d039725e9918d00e98bd598593ca1d0847b4391273bf5cb50 -334b70e6b9a08046cabc7bae845a1abf759ef02ad0ae99fbcc17f92b5976b0c9 -32271a0e0ba74a715cef2511e927e9945ef1a2757d0655130e5114949c94b205 -78699d0d5143ebd1d652501c5ccc2e92c1d839e827311c9c8843e33eabf5f499 -4745a9c3ae1c1b4a2ed9ae0c2e9d476d65565e6a44454f58a33c82485c99b18b -e472d24de8e1ba5d97f42adc6e6c0dd7dabf119c1ef99e36b52d8524efcba420 -6eb72d5d1558dd1c754f718441ab50e79f3d87e2728a45bd1856e20662c8999c -a5a042f615d022be9f2a11d88e4ab384f656d9119cb013543da577d340687dc0 -ac2507c9cc2b5f3201f09b1f757fce7fea029311b620ba116adb7f7527b2dbb3 -6c5ccb215cada17f9c38a5b55b7bdbaf2b2cecafb51b788e90bdb7acd2427483 -dcc9d1893280cb656eff20f3725e7cb8bb787b5f94abbac07c067913eef011f2 -ee6845b61efdf0e7cb4aef0998b116e57e294c72b72c4629846b743311d3030c -3d392ccb5022723a96ed2b7840998e2f6ea3e5d76ad05adbfde0c7ac908e15c3 -26eee3889d28f7c059fcc72286d576c4a578ecddba3215e09b793728d0809e16 -20559e49311ac1bc57e553216cb7ee53865d4b2f4416d26e29cad3914d54100f -4562c14eee738de09fbddbd313289cd51f11ad81951be73a6c49a7fd2c10fe3e -3ce2cd3a62b9e4a55ba93f1ae35c8a1719fee86167e555bbcdb61846801cf5a6 -d919d66c2fc1f1710d858d0a46f3e9536722aa85b8247cab9ed5fef3545c8646 -81fda39873c6ebb85ff1a277c9acf4b0651b1911d0fd5e7a960a28da58d88e24 -2d117c8be3f51498cb536997f55c4001cc55ba26b0cf101e960a441a094e9521 -d4135551ccf12c7a1f0a3df9d7af5e8be34dfd8f7092a14b87f7171dbdb5cb47 -7797f3a58d73c3ab36bb88215437846dc662b64120f977fa544b72ea8d321030 -a8847d71684cc3fb83c7e7c69cfde982501fd135282cea18392f9db01a2d0799 -fb428bd36aae243e7eb0275147a9078b52086f291428d9f0dac84169b594cb4f -55cd37e46ccc0186c2ed4992a19f88882e136afb8f2df63a3b488218ad946aa3 -abb65a16c3dbc43e828b5a9072207aef0654fe171a1bc688e624a2c2f07a6650 -289a6c36994466d9800971f5797735a9ad4355404f255bfe479309226cefe2d5 -67d917f49aeb5d9985b9f7bbb376185e9f208e3062b77cc9a2545ed27f779b75 -67b5315dd933ddc61ed5995088bfd7e2cb856ef815ca5fb034b37ea45875ae68 -2331814ae1de551b87950fb6540fdc00258971360f341fa848c6cf951144aba9 -49441a6d2b5bc10d86eb6571a7649b267e6363ae43a4271614485a7c169cb2e8 -8a26a0852b5240947925b864d91db59995cbf1158ad0189e108452c5e96bb477 -86e67d2d97850bce7595ed9f6468623152e8af46953208ecdff8bc0296a87acb -e6bed07a1073eb3a92062c8233e83810f54ad0c54a1dc924b12322fb6eadb57b -9b94d7014d1ee3ceaa69c9b10d76212603318deca6ae13c499540c057aa33b56 -be7aa895482831955e05c4278eb715c1ed3c8bd465181362e92f85cb74912c5a +f1aeb130fe0ab732fc0b36fee6b89c183fa3afaea4165cfd919c828cb3dc27b0 +dc5ab4ea3cf0dc8b9d4f0e5a9d72eea4c94e4296162141cd74d1e4f38673624a a2e8277ce1aad09fd95b2432b0fe5a2f6a24c17791b4ca528356d8582e3e62ce -f9921cb1d0fbdda2fe9b968b714adf525a9ca42312121d3005baabb5d13d223d -ef1560aa667b7c62ce76a5336c42ac1e4e46f5c00c8b8e6c3a0ebd01e735e8a7 -3eddde63ea46afe6e97bf3b8da41d1a229252ccb007bf59374f5efa4c98c2e2b -a331f1cf43f0add8ae45d1e27ff743e691becfb5a47ddf0afbf335d9d8c5963b -dbfc078e49a3d0fffb8f5c0154d67e61df267083df69800aeef10c7ffa470959 +a643772e10c7370a9e2c20d5416908b6c281fb4e83e15af6068db64db2892197 +72f59b18126dd3391a44e9dcc754ccb9028b327e6f9d111deae18480de7d6fbd +580e0bcc88214146b362948cd2154b9100d2a895c1741106165cefe487199054 +fcf954cf99fe5627f8b2cea1fa76d56872a2ba7c5f1666bb8640227263e3e6bd +07799483358740d519f7cc57e0426027eb33ab3012fa5d565f5cb2fadadde7d8 a8bfb1d54d2e2f6ba3af36c332b6c33a58117ca84e21aa13db2874595913d251 0132e5cb9d76ad5b470a4192e01655ee073b383965b1d3aa68cd29f4da983d78 -389441c88d003100dd2b18ae814870500bc359bdcff9f26bd341c57947be3331 -6473b797f5b28987987577a4b46acb49f5d154c6ee402ed9114f7db3bf939377 -41fcda1f907a7b6faccd818e3a68ebf2d35cc13e3fbcd824c6562d6d3e20de70 -0ebd5b7a3cbce0720ebfb86c41832c91e947549aec4fe3e9bcffcde2d83f63a3 -4074c7ef2f047d54ba02f5760187df82f58f5a2fce59e2698fda66edb22b75d4 -91f512a6372949ef37fee9f44b9ec329c6d5f65dec5ae6c6241e599caf118888 -981b74ebc69354d8fdb6e521274027b9b281818372bcc77129be31a8ac13cf5d -f391707cd506589a73d10a6dd2dc1d9e30208ec4ece130a91181a4927c57d051 -5e7ebf071b1d7b76d502be1580c1e58dfd274b74b17b9e5e510f1afa1c369c6a -e475b8b813803365d0434f1cce9de3b9606435b1b766d78612cbf218249a82b9 -9741f2cc66730e45feb28d904dae8d5586797fe832aa78c66b200a1616a526e2 -4ef1b6ef735dcb41721edcebe5645d4c926af523489692b7b261310a677ea04c -96199a009886066775754e23d565d952640e6954ae259f0c222841b511a4e821 -8084ec51fa72904745f19e3f6b71486980b8ebb020085e064cf74eb21a294b12 -7961456a8b5b93771bcfda66d1f7e694288ad65e3592ede99f3c5a0ac3c31795 -4d225e2584fc6763f02e46ec15fdb6cdc44be16df5a0c9e87836288b822d5155 -24a1e103bc83dd7bf1ca8d9515553717896972804638445b3ca9e41a671f001c -e8df671e19136a1f1b82ebb8980589e3c0fe4b97d13623ad45faf06f3169ce0a -e7e3c6160851e8b7bbac99ca699cea7858093ad4643a33d75ae8faf91f835bd7 -e135d13dd7e9e195c0d1a9d396e49576a6f832a1a93c176ee4c0d1572258a828 -9906c67e04c5ccb2921ffc06a6a101f598e5095cd5027a014865d58f65b435d7 -1d2129049016f97d52768e92e3ddf2d669915f3f1ad324b8ff23805671b0a88f -bee1bfbd8abaad8530780e8c8fc6acc2b7265bf0159c61ad0f638c1f8405ab79 -e23c724e9dc9eb215bb603f5ec69f33a7a863d01e0c33cabfd52be253c826a75 -8d48ec0c5083ab0f5428bf26360e7221fe02ae2fb371c18902d27241b072522e -bfb16aa39bdcc9f429a27f16138ec7362e0becac0788969d24dbd13b6c885902 -30af43bb9eba76c66515354203eb790f122af9fe9464312247275f039946c061 -b1040c4ab8942c097e1a0a8de7bf2a97cf798ab1b0402fe729ad3b9faa69c65c -272c6b9acdf9c14c70e06d2ccc564b9de022f8cec9730546711a5715996574c1 -6f080d9992ec6c76ebe5f624853f64cc3c616d0b10fe20fdb6780c8fe47192ba -6bcb51e4a8c45b1a599ffd146f7ca52c54578be305dad1ff96efe4503433fdf0 -09477bacf10f3e97d2cacda589866dcb82bdad25ff8f3285d3980fbed3455fa9 -5b87326e1ea8b276f28801c5f4d249ca530fcc257c6944305f68e4e052972643 -6f7d353fb1c3af2694b54e268e9207ea59d1b699f56fc38fb0b4f410c1b6f36b -dab2352f68395c0974aa2470beca4a662b3b1081285133ce6904f398d6fb1ae8 -4d3af0600554a229bd5e12822640d2a266ec6e73148289d671c5550c04f1c56e -ff02f7cf451deda817d588a6a427ee12742c9579fb79c2ae523fde28ae12d7c8 -ba4fa39344f707bb65912099b652b673fc95ba3fb9e186f67abdbafe934465dc -378952e80a8b59a6defd4f38d9269c0cf89833c886ad0945f715839a1633d27f -8c84a56cc66296a3599f325dbbdd268669b07a29ee29cecf1b7351be6cb050a9 -6953f23701a306b0893a2d0761544407759511c80e057c113b2dd260046c7e91 -22ecce78d190c103f9179d917f7a6a2f347fdac0371a955402d9c5e98bedbd37 -4bd119ca5e4d3782d9a2aa30653407d4de122a98268ec1d55424e1aa718b6bb8 -447d49d08a3eb6183af91cacf1920c169b421bd7a6628edc236f7d7b73b9bd1c -0cf9bbb08d0ef4d77b5e0e83b18d92a713a8198a7b8c4de9d4c25b92a5014386 -2856bb4324a31a7a27f801efc888bf85a6cf8f7df4d19c1013df008a3602ad15 -11dad124ab5bdf74bbbf653bdf0e1286ff715dc0fda04d4e4078b1693593ea62 -319c346f1375204e421bff10a2de0d37adee62634b2fa6dc046714f14c08260f -627320e8ddd3f373041722d98af6732ff47cbe0ba9e65c0994128f4f2885d45a -6feecd025d23b7c4b558a14d7a04f18babbec2b24fe612d9b04dd2c9b8f45446 -076c1e52bd9ddef4e553688ce99ecaea7a0f89c0e2b651ac839802102931da2a -0c33fbd02b4ab8141772c350600961765848e72069e4c0a9397e55b4beb9a1a6 -b86bf2d7648253e0d2ded5e81843f190064fd37aced6ead38f8611498faab564 -e01d7bad8125f1a466528e407302551465f8bc50693f609645047afdc5700e78 -4ae8009bf4a46e119f91820f418940fe19fdcf7cc1bd2ab5569d08be57a8284b -168c200d11549d5dc869e4d6ae1776df9b0c826d7a8c91fa398a46c5c4751230 -c58bff0930fc3afd25967b428d7d2882af9bb221ef6426fb02067482d6844474 -bef93e4811c3f7133825033ace72adb52d34c3e1447ee6c589a813f4c1fd0d4b -392334c51eb432b855b42312f22809650738d052817c386b2d977c3dff73349c -b72b35e22ef707071ac43ae4e7eafcf027eef76dd351bcf84ee0f749e8bc0bad -cd390b3b760c981be2b472cc7bca1af1efe641820075fb5c93e680a621e05146 -3920b85d7095379fc66aa854372f6dd0bba86821ddc1ae34c600f3a8f747cafb -e8c2d9a8504b514e292dcf0aba49c437ed98501a190719aff0297baf890a5b54 -fffccc385a9b1a669136dec710e826d99da70d6e6a2aaebc6fce2202abd0be21 -cb4d13f1974f1d29b917136fc496acb3902f632dd88f8e53f1f5d3e18d220e56 -3f7cf5ca80d86836c05785d41c13f8ced0e417f985d936b91f439f2ba9490a96 -3d49c1b7bb44f5ce022d8c617593a26b957cbeace2e9fa3f38c2eccc6abfb6b0 -50c4dac1c4f00ebf780e3974894ca4d4981e473ab4f57e5974bc71d4e0e94c5d -d308506c751775ee7b5d2d217656153457fcad5ecc22fdad49ae3cccb48d98bd -7c13e6548467a8d892d890f944bead7cc60823059213005706a0f5af1fd4fb72 -27cd79255fb2b51a07f435b836a15f15dbcc866055893047c1d7114ec371c181 -3d125f02d0fdc7ed4ba7ebfa4a4133604afb514eda30723ef39a3ec9b156b69d -e04bbaeef4aa47a881cfaa7bb09f1d7258481bb001098737da165b47855932b4 -5950cc57aaaa91a79644f7f510339823a4b602bfba9c6640b8ff07c1a41fc06b -51ea531c1bb769bdd220aeada686bb321a8fbe646fb1f22662c7352c3220e3da -5ed717a11d4656c86249585e246fb9a6e3d762b7d8dd56a4a729a6265323a3c3 -05e0a6b5831d424b4a5a15d4327a4d58912592c6bc276850f40b3f8dbe9dc11b -62baa93a61368d738ff19510d6bdefb483d22db1abea00b8a144a86a538c9043 -1da883051a17ab3a8cb2fa64859fbb717aa481a1c821d33e2717a746f1fbdea3 -772d8ae411f280936af9a0c198af115bdd0f14bba063f539a83408930bc9e118 -006fa988d1f9f8b5169bb699259eed3d414c3fe933ee31fbed7e0bb10113cf07 -16783f0e4a5d86534514280720695825665b2b897b5b1df5e105a1b3b8f4558f -74a04f6734ad88b61468eaecbba86e10fc5132c461dec26a15daac9b6e3ca191 -827d08ebda90e1c613b0ecd9e75fa046792cc459695852bb0c28b8771455f6ae -82fb88c35a2dee24d11109ecfa65b9e3ad6e10d37f16538c3a87cecf69d5ceec -cc29e0e2c3f34ba58c036c63b774fafefea9368d0fd83e050187484d8ceda8ef -1c508ca9f1a4e1b3c17f0b0aafed62de8bdbd3d2d1e068bd404adfe8788b0836 -a3d3ac697f33ada49392469e66a14204de4464b23ddef2e6b4cdc212dc43bcab -fe804ade979ba0e485efd3e3b965b8d9bb283bbefa6be9acd0f779a23e605fb1 -5e1c71de443e12f56b486c4f6962ca875c8378845cb80c5082314dc4319a25ba -f41c60ea16b21f696611aab3a62552037fbe95012ac4a459a6c19c2c23cd3222 -e676273e11d0e82fcb4eec39a01622a331a6f3a47a56dd088b85afdee0984e97 -d81ff50ebaff0e05977eb39b0620edd84a66488298d9ce37c7c916a3bdeb18d2 -f7d171d7416a02bb4b42f643d8c85b2cbd208c80381d77a3646a1aaf60afa035 -21173ddc88e389dea03a7ae0fa2175103eda21214df14d4a73d4faf6f92c35d7 -0c43c7f0c6ba6a59de1a66b7932b56c2737ca0efb26bb6d3d5011ec57d50cc00 -3d45cfcc8f8ea0126e1e84a4d84d3fb4ba4481c3fdaad535c797e059bf02d9ed -b205142a83648a3b042b1ede7da30ba12746a23b11e8d075349b17d6bbcb867d -c0e00e27175e649b149980011aa8baad5691a9afacf951996968df7a3dd3d0f7 -82a8960f1d0601bc102de5035d7ab4dbd2558fd6348929fcfffa24b16cc54ab2 -1746bc146bbb4a126fdf15448ef86191ef644fe9a48ce7a6648ce6e726a81817 -21f6ee607f03d7e2d42a9fd11cbed242d09cae0c1b893658fc2e9a0989a4f470 -45f41535db18427bbebbab0a124ccaa4b688f553052001d08945ed8738b03039 -097e9143da8b6e2a53da13a68a496750cb3bc103275e81bb758af55c3dee6737 -a1f49c8f8c043f5b0a9f8c5cb7132952a0576b98a5637dd3d946d5ce8aef90e6 -2658579ef19fc30c16a573883ac4b0d97b943fe7f4c8d3437fb94c4aeff6240f -45ef6f2985a53a10673ff0f2cf3b974d5faf5d6951bfcb191d4e57cfb7bdcf65 -f9247545acd45cdb07197ecc547976d007d31305d094a3e61d05e793d918be37 -cab3cdf822d993f077f6a6812bcac1740dc36ef24a0852dc0c79da7530824f08 -6706f283f4399f659e2072b95062708e0e45928d250d36ec8dc74da3e505d7c7 -d83885af7a465c6337e5e0ee014b2225ada2d47be3b4297b574000d94a551c13 -72ff75266a6eae6461130f0487b8bfe2dcf471dee61cc6bc1d4c60ce9759587a -08bfd9b83964375d2b206144f38ea9a5e2965ca00425630ab795c9196b3b758e -6effa7057a3dba4e4f155d077b2b7814839df7768609a009c0f1a94c7ba4edf7 -14034095e038336c10d445083d6d2eff7cb91ef46c61d3fc2d2f5b2300039045 -a8ca117ae3556e2970c1ea6552f8de10b3d2d3c70d77d1452c38db53cdac73b7 -09c12608e99cb664901294cd6653928418e8c33d334fdcf83eaf5e829d8217d8 -70367ddcf0dc8453cdf3e94ee436a6bcbb85460d1281ecc1da3e41276c139082 -cef5b6662ed578e7ea673c6f340218ec48495e62063832e9c07f9d1f87ab7f8c -c5bbf4c3e1c7d2c49b8b0ba00a4760f0e733970387eef72382c3132365f9d293 -c47329c7d747c80316273bb726e6ee87bae8fa3cf0ad22dcfd6d9af692459d07 -f01c623f26750a8e3d8a9f5802f880f5fd8f3f3d384546efcd615c44c909e82d -cf7187f109d9a7508d791ea946555b9bc14b235908642a522ebdb1da88301646 -a2ee143cfdffa356d48527451b75eb81fecce1eb390dd10aee90987eebf0fd37 -f23d4a1e8a337443d921b51c34c9de6fe12c20c7b064f3ac11cbef74e9534d73 -bf12d1867d278b420660fdeec8fe5a611848e761735faccfb98a49f8a5ec1902 -fc8237f6d970b1366af7a0ebcccf86613a142bf91f3b81e7d3308f1b9535b6da -2d655ed33b7c702bf578a1c9062fac0b947aaca69b96d79106bce6a3682013f2 -909884b7d0b8e514ba9f1bc9925cbc0b4f817d5c5570fed07cbe3409bc8fe82c -9bcd070fded5d3b8a1f44d1b11af7c7c6a7f63f06fd84018f46158c2e07b9ce4 -29bc16c7ffc48394f743fcc7f9625718b0e276e7eb995c9e04d9ae110f37d419 -cdadd96afe76973232d3d4b35015cdf8f30d77a41b6a561ff5478c2e1e0e1e6b -ef184829c8cb5c7cf358c6bb2ebacf26cc6904fc9d6c4678340a42e081609323 +e1b912f72b5ea807cd51479f803c46658f78110f6a7cca7f476db7df0e2c3bbc +25c50c4a4938207dedfb73c603539c602c1391581fc7c4554bfd7cb186fd3b25 +6bc4a0f5bc77e1ebb244b53445b219d3bad378683bc645000bc8a760e5c93550 +3fb12d1e75fb9ff231ae18839b4eef27e60acadf27353597b10ec7eed55ebdad +6ee3df8af2c0f3641ac5b73f89660e8048678621b77efd0e36f849e610e3d543 +49441a6d2b5bc10d86eb6571a7649b267e6363ae43a4271614485a7c169cb2e8 +fe0880764cc9d15669dd6a23f70d54f4d15415286b7daaecffa54f940e64bdb1 +1a0692982fbdfc193d188d80e550a75fbc5c0951b0a1e4de1043ffaedd1937f7 +934548bb4b93faabff276b5ad2fc6109a883eadf8ad35c2d27fb0b839903c90e +f8cd1682a37f06cd5b3963a9203c51fbfa1aebb8f82c2c4ec9b30787b1dd9048 +58af1ccc221542955bca9c2600e71ef9157b43eaaf4d40f47d81cec81ecff561 +4478abc4570b369152a238834cb111481b74b8fc3023ca94fb8275b4531e72c0 254b130178ad82a2440aa4506bc45c23502772952bd20adb094701c9508040ef -a76c827945cec184ec7b07d26bc7220a40541e18cfa76584ccdc1604030acd20 -a623a136b1ecc81ceab6e6952ea0eeddb721ae6a834eb5bdd591d4c2e09c0e38 382be311d3c2d460664c00ec20e53abdebddfb7c96977a87075deb3f3d3deef3 -41bc2dca735db7dad282c45304d38f29cdc0aefa0a051d7a020bea0759acde01 -c655919f90fdff70682d735adeb0acf3b801ee718206606647e92f0d9e5bef23 -16aaeb7ec76c76b97cf688d1b2294d800019c50f0a2ccc17f23c4159c8f70aef -7cb1ba66844b01a9ce5b62a8f01f5f794bf8b1ca4486f1d1bdcd9b06025b9ddd -fffe2b35f54fc10993124ebf3e88349f4f2489c43f2c80557ce3ba79fb198e3f -b55ecb85efc83512e8a464ecac7e1a02e5e827461665645fe8260d7c295159cb -5ecf18f584bdf50ca374bfe49104126da278b87286df2df5d90c73b64133502f -39cf67812ec7a1101581c280442e72e0d2fffc9d0192e45e24938f8941024d9d -0a01426f2d75f1386ade1d9d32f7a16f56905970c136fd7ca974a8aa5598c937 -5f2551bc1d21afccc5ca0c2e901dd5915ddfb39e0a10a51267d087a9bb5126ac -20c2c39b963dec9798cb967a4f1f299b8e432f8efcec017d65d53659e7adcd7f -3559ae081d4927a809fc10cc833617dcdff12222a06f8fcf3e280a0769a6405d -edf6637fa0a2d95568c8e67527e4cf15be07080ecda9bf51cfb9beb759c74f13 -83008d633b3f9725000f57cbfb5a1735b40dc93828f13b7926bfd9803d0a9af6 -9de6110647892e3de1d6d5c72bc19c1fe9a3f9ff6bc6b02b98bae900444ad46c -f4886352cc49a8aadaa77022f051c560a0fc461cedf3a429e4fae07346fbf746 -0f5a9d1884ad420d48bd6a767c5a5cf16db2431d2c728407191a02d4ea466017 -e1e53a01f56bd6daacbe53e3ca18fe1fb6c0722184c84165611639e71eeb44e9 -6f2e1ee03b1cb03a9f217d1ae6cfa47e61602dcc2b411bb87b2a72e486d7f194 -2e7961effdbb9138213d6f70cfb4f3e4f318b6dc8d175b51cca269d50d0b872c -527d9f6a8cde74dd2ad2c808a82256255b9b67799fdc247b4c18d918064b776b -ea4a97728861a5ef6d435735ccdaf537578e66053d732104972eb251145ba8b6 -50891e815ccda97f39be0e8241280f3c395ed6d004b532c8b196d1f78658b695 -3d36e0bd2df2cc4636eee6ce4f5972177204b1ce822a1718dcd05ad8cc10711b -163eb5b16c2ff906cb63995a55aa3ad17663f43479d1cc2d3c4e94b6ccec817b -d5ed744c1e7b5bbde1e4383ff923a95e9767cec754f32237431589fdf6b83247 -d2964a2de13d4d2d552e42d07676084075d1d0d8d5aeb267ada7281f7017ff2d -566da9db11a7fa241e1676efbc33fb9c351579fd33eed0131cd263e0f0c83c73 -fc1f7b712f8d4e266f7ea3d34a7b1a1955fdba2491f87f984b39e16798f49048 -60cab9b48d2a5c2e0a23bb3cb125928ca3d8dd3969736d7fb4c0e0e5c7f27f13 -3ce0bffe8c89b1e755c96ccf272bb0fbfd8a82d84249f3ed0a6ce74fea9a24ae -55814621087db83fbeabd92ef54fc3f5f2edcc42a430a97fcaa79716614c812c -3762bbe7d4d70214eef75b472ab309fcaa517ee073adfc98b0ad2dfd64f4293b -1a1d940ef602def2b76eafb52aaeab8b77aa2bfdc21e0489a75e89e4bd15ee14 -3ac5ef8d2fc91e2a576877409968b14335b979bc0b7dfa223f60833159cef366 -c0de42baec677e4bfed6ec2d07b64827a801d8b1cf8572ba11e2c4a8ff5e541e -c51c0760a166ceec06b8ca3fa512aa8bdd341abd43aaffbd3a5e3cd07889fba2 -3499cacb254415d5bee42d4403a8437262e6b6f37b6fd1a3d38c969f78eb2c86 -7824a85f07cf458b9ddd128a48fe804a01d34db43102f57908599624fb386a49 -efd292678d4a6f7257b5e4cba4aab7710e695f3cde9ff3657f3c7c7701ae0ff3 -101582090f156863f0d60553843e736dcbe979a1428b0716d953ebec1346e048 -b4550d346740cbfd5cfa103e5a9df4934f8cd6f17f9b19e01c03b473c91ef5e5 -77eb3b059eae31dd90e4ddc8ae12380cd489ed0657f4986da29039524e12a206 -05c0e236c1aa8a831f3ec29a42bde79a300588b06c498afce66d60a58fa6c97c -246d2f0c2c7b5cfe734edd5576b24d1982f2242b352f366f8151de85dda73f3b -3ed0855164d4b07ace5cb2122cbb622448645286db80ea1dbf6b1d1e2216b09e -fbdeeb6aa2846d3d198b141c52e5e24857e041a23e03b8662c644b524b4bb55f -c0c43e9ab2e1e0c65c2c9b371868803945d27f97a620b96045b222af31fc5c6a -a5bbf8cbc4969821303b40f563d6d7acdccf091b91af2fbf10123bfc262f5b03 -263dcd0111b98a9f0b5ad33fe4f8180ad31aea276b3cb37254e9d1ed29da338d -183a93f988b0202655ed39af920a3ad5b52d1869c7cc4f49358e9441d8964d3b -e58c19664f105df8ea7a2789391d1d27bb4dbdeaeafd399bf8c13161ca2da3fe -8bf35e9075cea17c16515ade3e605ea5283a40cda38f1e1f87bd1717ff173316 -89d9767614808474d53dbfe3abdce1555ef0294f17c4c8fd207451a27a9125c7 -6ca93369c14a6579885da258cc85b6457cca20a06c3caf57a772816dc27713a9 -5d3e1a71c176991bda8da20f0d0331fe960d81014c4fd09a51d36cc4168711d0 -236689bd068890e3d5ed0223b66606a4843852abd2fab7267b7f77d3cb01434d -16a25d53ee2c9eccf46a415c7e4665018e04181c27915044045a77f77ec075bf -6f3b87d989ec75bc64469a31d535e59cdfd0476a6df7686162534a944d88e5a5 -f795435c879cc8228b5aa89b3ae30bdae861fc9245b82ce7de240dc8b8749751 -2697c2453e57e8373bf02c4761e948c720858356ec239a22f28f58474de6e462 -bd988dca987a913a0264e481bc2e8961668a3bb29f51c42cdef4b74c99b561dd -00c4a55f63c44d2e8916cf786988cb22b7cc5630ef25cd571c8d094acd0f5d97 -4f7d9562c25467a64f0403269de64a906aa4dd0a0f0091a7f0d0e683872b4885 -7bfdb3aa0787da35b2ec4cd4887da0c2ed737c8028bf763cb735faffec2ecab6 -50d96c43c78ee35c96954ecb5e72be8d0142f6810c928a3c57e7590458f5b16e -8b67051186fc1bb6d3a879f9696621d0352af7abfa6278b1d2c70b6c5f042d3d -a80f68d30b4ed14f6f24461cf9ef99799d651e8af9c9bb218f343449e555ca74 -aa437628638cb98163f14fc91b2029b24aa19303fde63e9c33a509c1a9a7b62a -af283b8c1fe2e2a43dcd6992664eb1f1272aba683c9f75aece89bebf5a6a8ba2 -d3db1e77cd4bb36faa5f8b368e089f7d98d4b076bb8688f353ad35d42e99436c -74a2d23794c84fa5c0fe24b2ac6d9ba6836edc6862d454076134f04d47226ae6 -90fe4aabd2952cec384983efc97cdcd430768b8f8e31992f8bc332a40af48222 -c8a6c5ca8fb8661dbf24e21b5a9fdd2bcb38ab008a9af4105e679c47ca0d9ab8 -5d6628d684f9038cfacd56ffff298c81b31348b1615377c36052cf2d6db3f377 -e5475fa306f96418265f79674ff58bd5b4690bed88805f6ac4bec0dd488613d0 -eb6a5bf60f77d656d6205509c2611f69bec685d147b5e5538d4d03fda578d3de -0f77aa190ff3ab7ec9d563cfd66173fce4850f2a349c6073fd0cd9123755dfe4 -c3102ee4267e930ca38cc9a266e22aa8637d74bb08af30beb38f324fa9a43bc9 -df232b152bcf40d35f5cc78ba3a4199a13de9225979f9935e98b269f67a92cb5 -eeba0bc4b12d6cecbb4854f89eb3822477e72690682267f85aa2afd34f13dccc -e4fe49fac453c21f32723fcc5ac066553ceb0d6eccc03794a0985e3ac31c5702 -1fe3d42c34d70c8f6192be9f4771061c6fde1d55a086e18184a1f8af5c0fd87c -3130e1de4fa47a4bb3976388e0ad80d5d2e95ebf1de12a2a3484322aaed6df20 -10d44e89c9be89253117ce4af117c8b2b2cf3bb228f964e2b23e84c51044da5a -c6ee231a1bafe97969c02b0025d777ac496c0afef31b6d3e5c42bff099b32e86 -7fbd9853cdbde7cb5e11eafc0597b1cab3a895a39a05fc9c5b5981a0122bc144 -99f12bc99f420c60d28263fc8d546f75acd2d7c8cd485e42658dab9f06930fb8 -b02aa2d6a8158f5f6d4e1e669ec566ea4079b87096f2bbc19bcf196d51eaff7b -6494cdb062c4a1bc3e74760f9fd389c69c9cd0dcba246c0c58ab37688671edbd -261bb9755e4299510e74b033ea9d2c4484dd200a49681e0fe12875cb9e0f654f -e6c4f35ce3bdf932519de9c9056b196fa84d1aa9860824b177e89a9010b04ea0 -47a4ff75b8b3f006c2651d78d50cb28eb7086bc5ee042774873e595dcefdedb4 -a27cebdf5ea140d5a01e70713d8f483ec273482721f8ee7357a2b21aeb88b675 -5a32fc52360d43ba7764ca33a5692945ddcb11b7f4e6b2092e439fdef23d7b15 -aabf894a815ca072db22e11b6b296980c73efc1ff097e7a33a873b340e1e8cfe -22592e2d1463064769e39ae6d68f5f23d6327c91aab1fde108b7f4a3e381b51d -22ea615c9f50f226d81a21ce7655083124a20de4df222fb2335884637e616692 -fa928cdadefddf0aeb7027e05d97be567352fb973a357e6054bc06454a88c917 -776595c53a1a39c135c9078b917b4824b7c4627ffbd54aefc2102c5d27db5b30 -0435c719db432496667c9aa78a0ad6b05a95f31557cc9977799b73c4a4f486e9 -57dd36f69b16e1f54b77755753c486ec5423497412b2f65a09865a4bb356430b -d1e78f0babf79268778d6cf15aa5d366487bf62287ff001003a4ca8efb704d87 -46af7ed7dada9334b223d9d70e3eb6290979bc85f78e8617411e9503716b6a7b -08d65b4ff1c2336f80ba3780a5578e129e6805379a340489aba9fdff0c4a6e13 -8ad482e9fabf469deaddcb124ad27ba2a41df82fc811c03a1f23bc11df9df1b7 -15509b01e5ee29fcf75399ecacf7ec7036b6178d64dec1b5c930512a116a692b -05b0ab9e186a891133458510c8dddf7912bbbaf930637f0467247c0229808fa0 -13c644c4dbacee307d30d6719879ffa546756aaaa3b29d1125382ecb46474b1a -cbf62c4d4c652c932ef0ece58c8fbdd616efe3c138bbc768871e62ceceb40e11 -301c86e6b4295861d2e93071d7d7955fa68110befdb4cd626d68cd1bcc2d7b9f -5dc2a2e28431c6d64e1522bd945269bd9f839f98825e8affe6671b7388399d7a -b4b9d8bff7d67683bc8479715d9ac68422324f3ee2313daab0b8fd78825d3d97 -6495d86d2995256fd14b84d9e4f003892adc6a99a16739a6fc555621933d4214 -098613fb6ecf597581eaf7d9e9d7a5c65979c89a6b58f687b514b52a707e2304 -3ec6d85de8af1626d4c4f324181df7812bff18f2146c493c9bdc6f48d0927be2 -75a2485b07644baa16e610b7fd06a67d6b9e884425439ab217e89e3e2e393eb7 -f6b5c4a9424fff38f6dcd4d1f60b5f0feba7dbebf6b901d40e1907e0fe79ccdf -1c458f8adfb5c24e6219e920287a37b0d96f812666ed48e0f287868ed38319be -b9adce74312e75a20002ea7e9a90ccdab10701f2b3dd2cbbf71a9b032cb2bb94 -c717f24a62c365d78e683c3613ee02e7303c64b63f5fe5b35cd9ff0049bce0b8 -fd7b01d012f67f58e12e076369da78c2b63f34b25598b3a114e59768ddbbb3a2 -32fb14a5a33e69c9743dcdb7758fe961d22b1949acc22584253a4b8c3f19e99d -ba97ba9d8a277042f04755cfd8d92c08f2ab7675c2da2b59cd1f8fcbcd5a69ce -b9b515b6171b47940809366f5d58591a56063db03fc39f678a03cb2b455f9428 -d128466ffc4c05b162bb51ba979b747b90c98f9704ebb2832ee773c3ac195e46 -baf45c152415f62e545f316c9048cae5e19d8b6da792633fd82b55e49262f892 -dad984f66d522bb2f71a9a1a5454ed10f090ac48d220a3ae9cf429959a3cab05 -b54ea07a9da21367d1e83e979163f6dac8d05e6a748b95328b25d4fbc9546520 -82165279ff017d9ab50e7aba8aa5b6e7c40dce4c88d69dcaa7cecf50ab313606 -83c58937d81962c11ef39d84386438a80ec20b6f40eda53486f56c9c9a451d35 -b1eca3f6ac95aacc306520efdee1b71902d7d2d2d16f6e999570d2415d63cd82 -52f2754cce304036e7ce4fe00cd5689e0001a6cb0deb08989427c41b7ea13b06 -382ccc97cb3b301af8f77c21953f2e9d3bc627cd7f3e56b661368e825f375f45 -25210853c824cb8a26f3cad66c473d4f8a38b2975f0c167b2f7f56f938f69c82 -11cc05625f4645043575deab804056c7a517475eabf6719193d7f4d9000a6f47 -99806ff619938f6910df77d8861169fb71c676466f21fc697b37613d513c5665 -b3c16e152733eca6f7052b51376fa3be6f6a97aaaafff75f2609cfd651a9a594 -6ee23c818d67787c3e7c8ef85853b5a993dbd85c30a55e7778cb872c4ecbe5da -862937f5972ad3bbd69475cc04dc7c9eedc5bf48dd225ebb513fbf697b4d1b5f -4bc8a6bbd9f01b7c20fb59adc81352ff087ff7dbc52efb3cc55f188edebf47d8 -ba4a2aee3d05fb1ee2977a42f6fddc33c9e39f1fcb442226ccea1e6ca561b617 -c47454f6454564cf2c6e624cec87e29f75666a814712dcaaad1d723702b1dec1 -ffaa91cb56f697e8c9b9134405a1f9f8d6b430617fd05ce436318ed362becbda -94f50caa126f720468e8e0d3b6058451c9924c80a6b3169e4923d974c511ea79 -28a93e8d422c208429df5443c3f3f536c44cc93677a99759b55c03a62711e468 -bb3b87601a2cb367d2c70ce98552d7ceae1190be52de6afa7d6fca55d1a98e63 -3e6aba35d3e71b8ba7185968d56d53b60bd58159dc138b45a662aa748047eb9e -10267868aef4a7cf60ac5da26c132d7faa38346273b4f87279f02df87c52116c -5413fc25a705ac68cc05dd7add5b553d923b2ec3210637c804cb13e2e6e3c464 -b74e33932733bdf0738930c2b37fcb582baf5ea99b999ee4edac8127e980eea3 -17f1914e5c8e1243dd6ce054aee9cc603902291eabfc188108da0737beb66891 +e676273e11d0e82fcb4eec39a01622a331a6f3a47a56dd088b85afdee0984e97 +31225a10229105786287f151f03835858a0de7601ef48d95c84a0f3c42ef6b03 +a07e1e086f9d0e93ac6e98a5923d88d57414438481b9671cbfeade4dd1ebb531 +7a8890f086d1b76ae9adf5bf7de2230b444874e6f34185d13f011f5e523a4c11 +d9920d28aa499f164621b167ffbe20687fed0f29e36ea1fbe254067913dc1ca9 +9bc230fc05458503dac38f290fa1bcdc13d7d6d5832dd01533fe554a845d847f +56b9d1938f7155691e95d7af717e2d313b57c5f06382726f3690dc5e26508945 +34f0d4ac9f4630b64c9c9a04cd62b1b2a3d6c14e293c096c905336aba5107e2c +054e776502b4aa4cb46bd049fda6776187ddd5222a9ef6ce30816af197e949b4 +d5c8db08359a29eae0a8832314eb860eab1ec9813264b708f228d0294eb46ce2 +63b0ed06b2d3a6eb78e176591abc3548a027a0e7f261d1398516925f5944807d +779dba5cbe7df2a30aa2c5fb6ea01e4d138ae5f0daaba524566bd3591b9503d7 +a8a98b1813fb488d4561f0e0d6261cf613b26b676df3b58bec889a65f7f1fb3a +fd0744eddcea5bbae28b65daa28373241ccc009e56854382c16b9d17cf2017c3 +3823b06f22f403535f1ed1e4c0bdcba397c7362f9c66df370c63501f16b7535b +5b72faf5c8b978a25a4f9e99a860caafc0a845fb6deebd79f88425ff933de029 +89431b8dc29ccc26985d898dd7aa4907fb287a3fcfd487393ee789e0daa4a49c +db2dafd6ba4e1fe84d1b47361c4671dae4c52902a276e30f16e6c6baddf57662 +a47628794691fbe9ad4d4adc4a16137945f46a8ffea83bb2610d7f7ec8d02ad5 +61b7e3389045d323b3c9b03bfff11f90e17e4a642ca3b44c889d91ee264df9ad +5f2842a66f2641c128340337063d0f34d5ed4e6bde2a9d268e54fd4cb7317492 +2a493a9719c03c11032e65e6994219c19f4c81ee1b9590c11f1da4bd972bba98 +4dd70c7440fc53726c040a6f0c6c05e11c8c3035afaf93e692e35b2915be55b9 +7c5375fb3241169471150411cd1f3c34f3b7b20817b41ec80d521e88c15aca28 +6adeed92841ff92692ec0aea23818ecb1d4e037b2ab4326877067b2c797cc809 +720d7a60dc73b27fa50203fb5a8bf9c2439499439327da2ba21b198611e50cda +49717c89152bf8d8a9383d4087a338ecdfc9a2578a88bce15cf01a0f2fee9bd6 +cb85ef47a1c2f4924cc6515a56cdcde23b47981a49d5120577146e8872b94db8 +413b1f0f3dd7a4e73e7cc8031780de1bb3456a270e7be673d1ff54142d6eda81 +961c9e2f015e4bcf06e6cf2e04b3deeb495cc92776085af8760d77ba61af452d +478ddb2dc0844d1abd69b0372660a51003c0ecec8ff89a86f93add30f2479cce +346d1a913ee4cbcb0311fa8dc77e65baaf8d95249b77581e707cf6cb18e46c55 +d7cb93fd68148815dba1ff84bc5e9dd32d4f61fce2798842e4755ac338458c94 +cfd473c7b1f15e558e1f4d211811e718174dd57a6d9a045342579bb707a52b94 +a323e9cce1a9c4a3951dfcf9e525bdb78a77a34d73e2353beb79009c8f8a73d3 +627a256c14b4d4841e67e79a2cc48d9f16934e77c304da17c52c230e7421153f +c9015c6ad7f7e59f8fcfb19f87347c9c9285a0356b668f969f3cfd31fd7dfd20 +0ce80f60e096ccaefcb787ef0ee3cf7bfbf7164649a3c7e63c4705684d373045 +aa7638781f16b52f40d2e691550bf4682ad10f323584ea56566b007d1580444a +5c088b8837d4b3414a4604358ee7ad7ea9c26abf50e4c733de1777a18c1f744d +94c0376bf8cc96c8a728db4ea9abc5b1daf2efb7be05dab3c6bf7ad4f462c358 +693d2d94c81610cc0811148dc54c9261ba75a5bde19a33339caf987d2106d1d2 +5f5f41a7d1783b044ca77c75d8c6a9104a83c9c9aa9d1c5f59af8f27f3427208 +6a00d75b34368c65711afd5a979bbc669577ac49f8885156d1f07e2c6bfa116b +5e9dad9498d8e9921a87d8ad814dd4e060da7e275a11d81acf0e396ca02aee5d +2e09cd097b1d3ecbd45ede4b4019d62480d27222aab708d3574b03503375bc51 +7986704f56406f40de9da0f75f7fadaae830c9340d893da8e853d4ed632d3613 +778568f790486a29c250a45d601120f30a83302e596e402e991c2fd97f196e60 +c587bf02524cd4a5dd529f855ee41192501255fa80f1073e044d678ec8865ed4 +5e451cdfe1614ecd48f73d93f767d651686985c7a6bbd033a4325b76c5a9750e +c9016fb840750ae7a0aee9135af8f90baa0cadd457d668d431a3b40e17879ff3 +089aaf0d90529605e92de89f303b6daac6a8b3d2365ab1843a06763ff3a61b65 +67abac191dd421c0b0d763c3436f1f4ab2a4f04c5ee12418ab28c4a608f8b7ed +2152369bb55306c2662ef31e432878b4a7d9cef62ebabf310301e965da618370 +7af5d784ed2347849ed485aa544625cfc10da0bea977667e9c0dabed82130418 +bab3cb6ca7624513c290056ca9d9dd768e1e24766c8274a9f16ed1d8305ff426 +6b474f895489a8052f928dc8b258f80ae24331fab35650b150a11c396bcc378e +7a8e0f41d6e6dda7033f8a8e456df113d2eba6bc790742cbf67009eecb0eb580 +aaaa34fbbce3383dcf4ea32475a0e0a32774ffc724e840190db16bf190c34be1 +cddf84e3199014fbad13a3c1c06c3901934ada1afd5c1640bea40d5185e24bc8 +a6c9247a760bdd862af1157fef8e4dcac2e33d7f60e394b149f4e22620486d80 +5bc5992d69d5842e119fe594c175638081880bc4631796379bd2ccd3b7124675 +c52e5c7afd23d74de3a860f57c60cbe4f63c75cc388db596364492be46297f24 +c2c976499bf3dff472da9252e990e49a00c66d2277eaeda63d792d4d24863638 +e97e360e51cfa9ee2fa7720c8d660faf5246a4fbb0c8d52c84e0af76b7be02c6 +e4446d9caa9e7af06db07bf83e81b96c8e783c48d0653664f47043e0387c8be2 +5c87e98e4541a0b55e3d0f1cb1831b93e003cf35063ade92502e6379b53c0fbd +39239656b9e496c7f8199908f229c5c6a2b7822d5c0d3bfd36fb2d6355e2cb1f +82759072950f9f88c64a7e33bd096899bc70d3d9ffc667b90b15d1698c2b06eb +2bc241bae962f35ad45d7edbd69b18b7da0608223ac8223af03e83c51816c494 +562020c589b13373527aa059a1f176bd54a0b2187d0aa7007b41d97f99facb96 +4c5092439b4c117a91a7c7ca5d6dd79ce365f664f4b61060b99315947da64484 +1e3853af76de2f01c704981d8471d960ec786e09e1dd4450af152a618d30bfcb +c1ec95bde4686e2705aab12440f1bbb594ed37e7fb3467f280ab6d4851009334 +06531bf411cb31b669e4b6ce0354cfa2c2bff30d55c33553c6bf8a4da946e20d +9e48f83e5ce4cd704858f5185bf4eb98ab9966ae0f5fdb777362cfd8c1cccedc +8d8d1a54b84c50b98f2b7cc7629711a9e8545e31325a6a1cb88321d3faa25b02 +0bd2dabab83ce32e087466c1e5b07a6c21e4e84028d057af6413e70f3f0133a9 +1dab7aa7e13a55ab9031bbb7d95f3bc5a81b4fe1cdf664cd572150a3d5ddb87a +eefc82010b4c7e42733d702c3869f9bc170fad49f47948787dbff27795f29562 +884e559f294971a6868c3555ba855fcb2607384a9d1ccf10ebb2e6cf1e2a7bf2 +89daa601b73311e42dee11cd34c8c16e2432471bc8b8f3d27a413fb4c59dd6dd +85773081178a29401b1b3ca794d9c5bdc4b848d0f4cfd69a7f98bbc1497fe4ef +44734a9c48b60cda6ebc42c26d6223e978afdb2e6506f0233e43041f99eb8db2 +0571c659eea0a98ccbee0d8638803b5be1153f9421d026bfafc8efe95d3ca2f3 +501f1dca1da3cd30ebdedc570901243597c4a41366bc4c4ce0bed7f9cff00c39 +55870eb28ab7890c01af34865100a9dea848e86321f519fbb65e28fe677299b4 +7ec39703c5a00985484b1493d258da1c9971efdeba3315bbd3584684c9ccb803 +8ecf7c0bba830dfd339172926ab4ae8fa3d2bc054286b6838bb41e1a519ba5f5 +59267ee7cda1f660422d54c2782ba0cd26cfb1455057a6cb6106c58aa6205d0c +72cc00ce506867a2515a279fc5dbfd97dd3654261ba7723d36997e5637cf8d8f +8230a1fd29e3dc4ae4891e3be52206c7a55da54b44ad8ae6f6234b45ce37f753 +edbba55a9aac364dcfd6c8ef59b7e908b4c6d28c9a3d0ce7b65d2dad9edb9f3b +48b16434770b5a2873c290e50e3bd6f59a90217815523abc5ec8033b5c5004ec +f8454f608795d1d233fe53ed86b361dbd19aa63c591ef9a2684ad2cf8252d104 +6c354d1c4a23c8e947e7ab849942de1c4ec0cc158d14801487d857fce67dafdd +1b033479aee1b28f7d7af5ff029d9d7f8f2b81cc9fa3459c489bc0ec215b0e6a +7d25666f06424e2d9bf6a108d65400a4581fb9e9be54c92f71baf6c2d2f90f55 +0ad7544dc295ccb5691ce57cf65270113f051f63b28524a0c2b48f7b1aabca61 +0ebfb0ad538f162558c170e95e72f357dc1c8f4b90ba12b54ffe397fb7124c9c +099c975d37f1c9422e16db0e4d2903717508a550bc54ad27be2713d8d74e276a +7cb995e1362c2bb21640c886e36641c907c14ccafd84f307a1f74b0eeb782870 +00b0f05b0b9fa3dea1e7c74211c95467975ae8efa02f03eeecef8febdac9ad0e +7ed8b2c5407db118cd72363d965c5a09d194c3de5787a94f57d2bdb493e6cab0 +04032ea20e8b0594766e67a6517a247e059bcd547748fd6cd2b659c59a138f66 +4831babf5696b40d935cc552991af295b6de7a51e4d85419695e28dec0739bd5 +2f9d9071cd9ecba463f5c636faf106afa0a09ff87ac24497290a36d718cb70b5 +a887af491831652de111eca63da0423046089cc5381b347d70ed9bcc21fcee6d +91c023eff478100e94768b16a8c6b0c95a3d8abaa51e47117196c26064ad5a71 +d9c35922a4c7f0f6e0c7ae397232009375505686d13fabf211f72730977ebcd8 +455c96b9a44229c9ab9bd5be3e379310556f3e086b977ff533930ba669569292 +49d80493c154495f3a37c6e6d9d7f6a778bd446e78bb2d0f6b3bb9fe1e9c20e6 +96ba6e6dc41e037a4161c43b0ecdcc41a02c4646cd67f7fde4839d6e30299b81 +da0d7b63bea7141f6bda10bf9392df5656633c422868db496f26edf35d3af889 +364b923ec382e6623c6fc551ac6a1f26d5078dfc4324805a981e3d788ef6ed03 +a9c777de2eea92af61dee0cfb16531d8df5fea9d68757bb86f3ba261c245ef1c +59cda35f306894e1b6e9a4b427ef92d6bfd624fcd19e95c6740fb7cc5ce60a72 +14034095e038336c10d445083d6d2eff7cb91ef46c61d3fc2d2f5b2300039045 +a623a136b1ecc81ceab6e6952ea0eeddb721ae6a834eb5bdd591d4c2e09c0e38 +284d0d226ee59d91b836ba783dbd481b0922bff84177b80f67486e96a3a84c80 +c4ea15e50f72ae587d840828210a88350884fba15b82719853627266dc4aace0 +9409542217a10329ef0095e92a29e4464059948371ae9a3d6c58319a52052c90 +e7d4b67dfbf18e54c3371c8d01d724653d0d898132ced1a7eb20076d94da667b +213056fd6df457d3aa6f4e6c11f896f52ae12c87387d27bbcd4a524234cbb67f +3d80f3ef189bc602d14e512c6167ab9b6ecfe474488d29486a58b129666dce3b +fa545494c3b2f6a34bb2d7f1dae71979df159ef9b5204b5f0e4df265f4b2c949 +bec91311457d7dd90a4f4fa2f702f7839df02eb8ec249819cf713b8a2fd135f3 +1aa08b068d7ff1837b867dc9a73f4dfa2d4b3cca25469f81e1b75ba8574adbd1 +f1b994fc964f19fe34bc07b9be1a0f5a9fd93bbe41264b643a63b1186f1850bf +808c759f58afcc8cd45273a76329dd5af35bc3338f0d43f57c6291096500db32 +d0060cc3b53efed24564faa7a69ed3e862d5c206751db52ea6471adf7fd110a4 +acb1e7146622a4aee93dbf47a8d969ea84d0f47e098d82e6e975afdcc3eaf47a +d036ea10494c005cb7951d49d6d3467043bdad638731cbfd460a8cfc65f380e1 +19b15029b708cccfcd81d68cf1196e6577c010e7b72b270f3e4b2dc3067985f9 +5499bcc9db4bf8020d6a3b02fd042587cb48ea4c47ea693d707b77b80f21a1b0 +a76c827945cec184ec7b07d26bc7220a40541e18cfa76584ccdc1604030acd20 +41bc2dca735db7dad282c45304d38f29cdc0aefa0a051d7a020bea0759acde01 +8f2bea76e84bbd50f2653dde51904cd9ec30fb30a3cf7ce63c8117e66cb1e42e +5e0285293faef10a3c97f7570688bfa75dea27af4186b33fd6395b67398fec00 +cfa9e00f6f298bd911857ea037d09e2fb42b0a5145452ade9b2d9b8464ebb6f8 +105377b32d928c0ba51a870ceffe5f03b990402e973bbeaf85b7da6868faff34 +5b4a6f3ec40c0e6721cf2848c6ebf1b12f862eaeeac74b2677567c5e32754996 +25da48a74303a1339b8aa7e242fdcc97d6889bc1a2066e4478205607564147e8 +cc9f421202086446002d6abdb57d7163666f98233995d6ad6d69e0c75ba704f0 +9914e1d946c72ac4359706c114f9e769752a6fd1f3cccb14a7c132f7db8e373a +013295a1dc26d4caa5ee29676e7afe1acbe2bb35eac87ef8430415d98ec57012 +902d07ef61a6330dae40a656b7f8dc8372f7e575bfd7cd47f17588dfcb6c735c +746765793a4cd8fc2e8d65c699c5da82dc6ebbbd2412e8e39075169dc5a8d7ad +9005ce579a43b1ea968532718d2df5cef8d1d9d0f63ff2571ff92fe3ddadb156 +57068109ca9011738cf90f2e46474f122dc8c875eff23dd92b2bb1b59d1dfab3 +67b03fff7be275b03f09e082e771c876821e61bb22155f86342b54e723ff8bca +8c850c8ece0bd7c7874c24d43b690b3372c94c98b31141058f2c39dd3c461194 +3fc32c3b3dc18000567f09f1eca85919ea78d102c9ad59dee55ce5580e0d122e +70ac8a1459a2c23b25dd2171186750c54db098b8d6d214f3a1cb9c91f7a4545f +7cb92ecdb39820505d2d5fac724fa131437a4e94744f962c5b232e9701347cae +780d298936dd67f594bbb737af993fcc87384be16b0240a4f591aa02d87d660c +ec8e91a3180c8d0ca9f4524c27ee9241e737c1638d086bf75c62dcc31bd3695c +d2685a67fb9c2b770fd60b2b2c1570a764f4befe0695fc6fce0d3fef206a1974 +5e4264597a493f7a3ec9c66f6d4f820d0b3b5d645f7a6d94051c72266db25bae +878e637261705bc7591c6aab1f8146879e79fa7b3e64ded2f0d9a804bb09cf7c +4222afc57e02b67576c5fa6e010f64760614f9c6a8ab280e2a2ce51611cbdcb0 +f9921cb1d0fbdda2fe9b968b714adf525a9ca42312121d3005baabb5d13d223d +ef1560aa667b7c62ce76a5336c42ac1e4e46f5c00c8b8e6c3a0ebd01e735e8a7 +3eddde63ea46afe6e97bf3b8da41d1a229252ccb007bf59374f5efa4c98c2e2b +65d1b1b964611d0978f80fc588ce80fff0f97155e2ee5f785c0c16f6379e0987 +57a5ac37dab9b6b5fb2aa16abd8e727493e9695c09235846771218918448089a +243ca60f74b6a49daea14dee226b9d0e607c87236244c9400fa44f3324eabc84 +8ee39da18e0d1b41f81e28f3a66ba3f4581fbd2add9c0fb81caef44a4c51da7f +21fd932155561171784ea65cefe5d498701dfcfa4f91b088859f6444bef177ee +935171cc550745c318b2718afd7cc0b8d5fdf308f69a81136498bfc35a30f30d +67eeef4cdc88e0fc4591ff511ccd001a0bfc13f039a49b5f4e2e5729da7205f2 +7f2bf8c264bf0178ca76f1a862d39fb8015918a0cac57161a2d2f8eac88549d5 +cdf64c97975b25103f47537f196c6ded385cb11029c9177e0d245e58e8d1950d +322462b55df6498b891b3bea0ef7d7e284f66830b4a151f1f9c22b4b9e0214db +55de053b7de838af416492b03df560f582099ac29f21b2f54c5b051f71bf29de +9f34209abcfd9f16b67fb02fda21b077c3e2a9c0cfdab1b85fb3ab45a507ab8d +c15c904023b54914307539e930d4db5910cc0ec238a4bef9148b8df40ed10c90 +3e89c69a29ca3485dad7d4a8d975be9507a2305e798f845febf3c90ee5b79fe5 +c0d350d50c6462c343b32f6e768a19a3a94aa9c5a42b3d2c12cc15d42e0bb800 +e6d009e7aeb59b85ef01b64b71f6d34972e2918f487b87356952bbba365e8515 +34c5e4597f28921f87fda175d16ec0517d2e3178a4ec46a11bb68f4f34abf539 +76189824bee81d9616da50257d9dbcc8267edb91cbc23351fe5124dc724c0e12 +acb8205b697427c87aadef83574b5abce930faf83b6bf499784ba3e396059bca +482806525297e1a46d25b7b08adc7193f2392978911116a605c0302bfd67adde +9344199726f0eb987bef254f511032b98a917b2a7a938bc12a10d48a73504bbc +6412354bbeed31a54a7e0fab8924726edb2f79eb4e134c7a9631aa8230e31e3e +efc2568c6026f0d1e843e812035551eff424ac7c419dd26a2f9d5c8d7abb5a0a +732c0d3d30aadd3d73e7ec56023cafe20d98dc46aa6beded8cef1a1d5a5c12fc +85f353f7ba11efb38ccf91e31cfc26a76fa197746df672773a3c67a4f19d3fa0 +42411e36049e5b40425ccb17d66de7dea5535a9aaff06c485b46724953c9ca78 +56e703b7b0b109a0ec6d1a0f64b0d0cdefcb157e1a66202149f392be259fcfb3 +b90813408a5550d1d7efd0a7dbe2ccfeeedb655f4009ef60d80a5b203fc2d3f5 +d83885af7a465c6337e5e0ee014b2225ada2d47be3b4297b574000d94a551c13 +858c5086b54258bab7ef61fdbf4c08f78b87380dc8627684df1cb4d2e5d3f1e0 +7d1e92c898a9b7048b451cb1fdd7b9be6c3d81f9f2845a01e45214752fb41865 +9d9bd71488f5e33c3974a2383ac182f9c827c86b233e6d17024fd5a52c9152fd +00eb746ab26a55ba6c53d8b3260f4d3cb48919e629ab9f1a8071158d11ab097f +082c545a2c78588c3fa89819c223a151dcb9c19b05ea0736945781cfc506cb19 +9679c2b2e05b13e317709a23bfd5429762b3ef92f6d3d84217444dd1a99b8217 +9d2a3d36db09be26110ba8085024cf6a801cd29c6766b965c4a338a52c33326f +b449b2179974b2a0a6533cc00a7c6a2b5597b6ac8f91c456e1e8b4ee5867393e +94004f1e307c3a0ed43e0270049c61dadb0c6900c7b7181b58c4d768b3475e34 +6df0d989547117ba1bd109a3e35329ffa085bb7f1f7b5663dfde4cf70a10317e +aa5a705c3925310445303cbaaf57ad76ef3937cd871bf6e350603c4676f8fce6 +b7f796d5bb80286bbbe41f963eecfb5ab9dc41e036e131abae09789cde8582f4 +8f654f4732bb511b1a5e9e0930f546daaa31a3f7b717699862e908ea6e776d3b +85ba19f40c28c1704ed40eaad07ac840a1ebb89da3c2a0458eb63f61ac482f78 +16f7b3c2975183b8940328b9349c0ee4380bf743b605d2d888fca3fb5dcfd302 +e7175b849b545a19ae5f73bde21088c8c87f6635e180a4bcab95b3eaad44f746 +280aa849df5decfb645429b5cf0032c2b35718cb6fc1dcec7736266f2d775002 +4f4057f3593f2c693402d0dbda82b71f4b6db7658dcd2e9b8dc16b3f71598fad +be7aa895482831955e05c4278eb715c1ed3c8bd465181362e92f85cb74912c5a +8b6847d7cc36e6369432813aa3e5b5e162e0f84d5dc0d5e29ab7fe37f350b77d +f04f8cbba9c6391662107ad4a1b9eacbab6ef0f7811e38fb0e1f1ef105ee406a +a6a0d82d9cb5d8e8954090692cdaf9a225bf3000155fcf645c94af63a5969cf1 +1de3ed4c04240b7ccd44f91c9b525a0106600e0f149ed16a753f178a457b77f9 +ba4fa39344f707bb65912099b652b673fc95ba3fb9e186f67abdbafe934465dc +12240c0db033b5d9ea704eb0b90581b86e8422c5514d28e0951c547483a523e3 +9ba01fbf55a0017996806e94ef163bdf08e1b5221bb49f82b2b6b6b807939742 +c26aacfab1d28b5285be0ed573ce035ea8f93a8f90d00d24b5271e8499354ed5 +16d99335dd5705186137eb676101a21c79649df906bc3cc1407c884712d76456 +27290145da0856d54f5852cdc3b37ef6b6a9f5de2b199dae290fdd0dd3356e3c +497b8e5c841531203de45e56a8a6a3df4158d75e6530cb700f61ab9fb8dbaf97 +a64b0b9c82cb7c840d9dbf9a9d3689e566f737b09c2404eca0fcf25de22d6953 +39f771138da2f22786ce2fb216bfa431a485d655baf3eb0f0a12f4bdeea1b9f1 +a254fa3cf6f2a002fcd7c8d7b7d42b073aceca69e969a5b0467d4d294d8c6ab5 +062cebe6830405ed6f76e7cec183f659798910fb427bb85dd5331af9ae108b5b +5605842dbf1e3aad27f8785b5ac186b5d2611630adf30edc68a5325fd379b2fb +673081e3bf2aa46e0ec23880efe3202adbbd3ed65c9f814d4a17467720d5e436 +8c8e4c4e689ffeb48c44096c017275395ef09494c9829c17767f3f5e15dffbe8 +7a1845f7e5b71035754a273d448641e521a69fdf38b50a90ca69c65cdef4afa9 +772d8ae411f280936af9a0c198af115bdd0f14bba063f539a83408930bc9e118 +9daa68967cf3ecf5dd41c4218131afa3af4a46b3e40ac3088b98623d6dc31dac +5ae5be014ba43d0054e9e5a8028cef55ef765733fc42c58d91985c4a1a95c980 +d774e878ef009be9b0e4b5f48602559fddea82ad860643969158582a9c418185 +b5c00d9c573736609f09ff5ad1b68ccdb90f53eae4a43e26f003cceebba47b3b +3f7d71eb2067d559de8b7d2610c78e55bfc94f4737265feb2bce7b580b411cda +006fa988d1f9f8b5169bb699259eed3d414c3fe933ee31fbed7e0bb10113cf07 +1b6dd3b5c41b2d5d99fdb2d0fbf7dcb9f29142f37f79399f585935da05c5de55 +e24360a549a9859b0d8fbd98f25dff341962d74891f5e68130989c5903343d88 +f67aabadecbe6dc46b1897f2045b8f06999b7442cf047abcf901d5ca778adef9 +c80ffb705968cec17279f13518fd7a673dc1af8ca8482f7ac7fca67bad58e50a +c9245a992a5dbb470c0df0a2aecb46e0aaf90c80ce3aa0b67f615985ce0d704e +2d747cce829789de7a7d63e28e2ca010f08ac41460fbd7cf7c2f401acd03a3d2 +9fd94c4688e627d4d5a41fd7674b61bb4ea7d9b9735d62d4f71e145eab1dd401 +d90ebf4ddbe21e8865117fcc940ec652e771c6fda2d74b6193a128429ee5f8e3 +f86d0d2bda62648678d25146ff40cf13674ffcc1302da6146e109e6e6915c79a +1c508ca9f1a4e1b3c17f0b0aafed62de8bdbd3d2d1e068bd404adfe8788b0836 +fdec7f88568b3eec307146a2d1f170922f7e135c910da21c6a7aa446d39f76ed +f911c270502646024c02ad50e01c618c2e0580df3344ff172f6670ae8013749e +fd791d73340ea96b303db2309d37091973a15acb75185901de5cd3998ae73085 +aa102c4df0cf41da6fdda24cdf6186a236f8821c2fcff496dc7ddc63b81b5897 +a00cd42bcf23bbe7d0957c05ba84d07d0b1e5a063f79b858068126da36007da6 +9819bf168db06e1a166be928b0fc4c567a6b683558731764a524d25bcb38c1ea +034b16ba7f92180e0e5d4ba5eeef2cbea5da5b2de715baf5371d686caef66857 +8633ca380177f2cf0640837881a84e52a397ef61b2d43cd8f6fcced9c8cc778c +0697aefb8dbfeac95fd51c3e0ed814d8cf6779c144b853bf36dc3839b4fffd1a +154cb1f1a6632d3d96e52bb23412cd09518201faba4e4097d2b30290be93432d +79c0002d3dfbce81fa061affe5bca46e46768bc26ea3b8d1249107cee4669148 +c5bbf4c3e1c7d2c49b8b0ba00a4760f0e733970387eef72382c3132365f9d293 +c08573554a6e1a3a7c8c41a8a3f5f90a99fc2061af8d515048562a8dc0409c13 +3d392ccb5022723a96ed2b7840998e2f6ea3e5d76ad05adbfde0c7ac908e15c3 +20559e49311ac1bc57e553216cb7ee53865d4b2f4416d26e29cad3914d54100f +240c9d483e0a076e22d7ebee2061550b4285bc7555cda61f7b322604eafe82b1 +060310ba5cb72f3be139b05a50cf4d89be78cad3fa61b82b7e00167439a53ee0 +26eee3889d28f7c059fcc72286d576c4a578ecddba3215e09b793728d0809e16 +7cb537397a8f371c82b503a459cb2efd310d62f1a36d3578e840e0bb59790db8 +5529b79da55654025f9cfc29b3602222ebe626ba4ec6921d20b4bffc65b92b12 +18a47798daa35369903ab19f19fdddc32ae80debbb673ca308264e51fbca4e3a +df0a177d041d1b7da1d8a8f58a583523a7616388e5e250b87d3f6721bdec4703 +b6a86b01e92c218ca7e9442280b51bc6483efe51194154ce42ae2c77de5e8200 +0c43c7f0c6ba6a59de1a66b7932b56c2737ca0efb26bb6d3d5011ec57d50cc00 +4e4b2967dce0a6e668296c0458400f53ba82553ceb771a638cdd4b67f8604afa +a282d558a0012a5f69e89b9065e7bb9d112bd5ae0722f954cdf3ce6926b8b9fa +3ca5ca8af594f080db65859790cc26fb8427a7d904979c2980161f60b8890798 +b4b167623fbfb5ad1192f6457affe12c3d5014c9beb30a8c82ecb81e281e5519 +4f30834329f7edad2f63824893b0970e12707b6b0e0526532ad86bcf96695ecd +f01ad807f854a6930c0300298648b2912b524ca6b7ddff12f8b8a16c6dc7f133 +9aab36a3ad54cd4c9ce53651b081ad80f3a511b202cf247e8194f2e9bc09d3b0 +67d917f49aeb5d9985b9f7bbb376185e9f208e3062b77cc9a2545ed27f779b75 +2331814ae1de551b87950fb6540fdc00258971360f341fa848c6cf951144aba9 +d1fbbd30fc61e23fbde66a1d308879cd5b55328a03f2716a6e053efef48af9e5 +86e67d2d97850bce7595ed9f6468623152e8af46953208ecdff8bc0296a87acb +e6bed07a1073eb3a92062c8233e83810f54ad0c54a1dc924b12322fb6eadb57b +512a462521cf2221911e06dd58fe975ff1511460cf4d14d441e9a40b4cc203fe +3e69b5bde7413bccdfebf6f0062d25d1dae155121945b172324ad520ac0018f6 +3ede11a5006c288d12b5b65bbd33d398a764491b4400c8fc3fec83e974c0875e +45ef6f2985a53a10673ff0f2cf3b974d5faf5d6951bfcb191d4e57cfb7bdcf65 +f9247545acd45cdb07197ecc547976d007d31305d094a3e61d05e793d918be37 +645def9858a5f318b1a0c6b2dfe362e03ead69aec62d92dec7c4f64a1e0bdf58 +ba0777fd2d720c9dfd4da24b7eb3f2c658c5f872263d8c52584d6d1d3634ef5e +12a32fbb6f1d8785290fca81c9479b351fa8df646dfa4072fc91e5cec339de14 +e2cd5463424e7c2ffd6cec1c81621d20bfe1b7741ff1548574ac299b2e65eba1 +a2ee143cfdffa356d48527451b75eb81fecce1eb390dd10aee90987eebf0fd37 +b90c582f4030f83144dc7dca84bd87ab8bb4995828c3acb8cb81cb91f0204689 +67b5315dd933ddc61ed5995088bfd7e2cb856ef815ca5fb034b37ea45875ae68 +1e991c6854c4499ab7da19f2754a355d17a2c978816bda6a0ed61aa6af9ad04c +9397eeaf9f5700aa1a7e468a1b1027c1ce2a34d6a7854a83373a5c0e9427d9d1 +7cb1ba66844b01a9ce5b62a8f01f5f794bf8b1ca4486f1d1bdcd9b06025b9ddd +65d04046c2e30fb9748d3fe663210ae2291c63d7424ae311fefe2dd94f182c2a +e611412545b9f7a1ef0feb6b4d2a0824f51e654445cba2247f0e8d7b08118cc2 +188b80c55bd013cfd7a2b25db62ac91a1c4a51b68811b20456c9145d91fe0b04 +9e0c47600ec33341362a32de8980709e1bba02c90cfb13f5e6f5db613a456f1b +6a99330b7970acd9c2a19683ff733421003ca4fd9f629d4482463be1beca3277 +749066255f2d3a2f1409f764c7c8220c96cacd114b3a693c3b14a6a2b15e0385 +19fb3c01e4be5f4b538b400a6da152cf59d1898b2eb2ee3da7832c53fd35d468 +1ec0199e01f4d9300bc2367af6f1a2bfe40f32239239842bfb98970f5fb599d5 +1deeb28dd349ffa2560a82ea3d682be183af204e8683bcaca175414896d9bcea +f8d9e70096b38b30dc608dd368bde84887f5ea03185d7fb97f03b903128c92e4 +aeaa1c3944e465fbc1ee7018797af9fdf568f2a16446d8b9fb6cd6dab0510f1e +1c9c35b8e8fe7027321497991a3922626ffe6b452c86c7e49af00aa59718acb8 +2fd9d204f7986715a302c2735679684960263f8f7b8e805f768acc37d98f347f +4e4b14e0d955bfa053ce4a7c3245ab1253406b480f70247d7a5ba92636d13926 +f78c827099a5ebc612c5961ea844a23193229463ee792212a836585e28872856 +63377566ff48bcd51e5ecbc8cf0d61fbed98d4ca4d14928e46bfff0054eb1fa7 +3b363c755d5101f861b8e980b36e5c70a6b4f9329b4132df65e3b72b37ad128f +2fda462c1b05dba19cf2ba5e9a19a93ec4de0bf42389bf5831694bbe35a9f27f +7ab188a5b0c7741fbb3e2c0b1f8afdaccddd93e11e3fb1ecde1c8783ccc84933 +1e08b4da220dd0fa4aba50feaf5c2c7e6451da2ad81fa3834300efd733c036ab +a301e110c14e1f6a4e721f9b65259b429230fdfd24218f447107d0a26980af6c +1bcae69ef7bc9d3b637a2ea4080f01a9932e6d20290adb87596d49531a6b223b +e89caa31fc4edc8bf78c98461103ea56c2d366c13ff35002f3f90693eb36bade +e9c3e6b0047d3cd30819dbb495a29603cca9ffb00edfd960550efdb913282bd0 +99f10c8fe5f1aba938d343e4388c5d3cd0aa06aae35d1b3784f43537466ddb0c +f2c058b4eae46402ca11d3ee717125c87f469e125f14cdfd776fba2b93f5a4e9 +389441c88d003100dd2b18ae814870500bc359bdcff9f26bd341c57947be3331 +93eeb04421798c8af37e8315e4b610eee2161884facacdc79fdd0582c1dea0f0 +11efe081ba7a9b427f1385c783783afce90adc901a8d7545628fb19907b8e5e5 +037da7389842040606552c1047bd8f583b426010206cfe52b8f1ba70e4885b7c +485cd6b0eb17c59ea62f4a9feb82e0c9ceb4d395e711056b4814c4ff5a99e176 +acc3b0bac7b5caee72177e82ef621e0f6bf43f17710bb740cf8cb58c054cfcd0 +5e06a4087bfdfc9f9bbb94972a37f82d3acc52a5daa93e22172a1f2ffde28cea +ccecca8dc6083c5066b3618fc42d6fc27745c51ade1b82d332b2a6fceea44f1d +5eaa449ea80c7b899ed2423a6419134828fdb1c95a05fc633248c76759d743ac +f0acd6ef6f67edd92fd0e560919e44661216d8c961fd201c50ea512ca102635e +b652284255236d66c4ae8df6a40047e8ed165f5822e9b475a1946d152bd82575 +fb1759f381a5f5eebcd590efc472e47c63b72ad8e5a503a9eb5fa47e6edf1aa3 +bdeb134236ff8c5177f6b19f2b836c4b192c29109859277054104806c88b9600 +5e1c71de443e12f56b486c4f6962ca875c8378845cb80c5082314dc4319a25ba +cd390b3b760c981be2b472cc7bca1af1efe641820075fb5c93e680a621e05146 +cb4d13f1974f1d29b917136fc496acb3902f632dd88f8e53f1f5d3e18d220e56 +3f7cf5ca80d86836c05785d41c13f8ced0e417f985d936b91f439f2ba9490a96 +50c4dac1c4f00ebf780e3974894ca4d4981e473ab4f57e5974bc71d4e0e94c5d +d308506c751775ee7b5d2d217656153457fcad5ecc22fdad49ae3cccb48d98bd +5950cc57aaaa91a79644f7f510339823a4b602bfba9c6640b8ff07c1a41fc06b +51ea531c1bb769bdd220aeada686bb321a8fbe646fb1f22662c7352c3220e3da +5ed717a11d4656c86249585e246fb9a6e3d762b7d8dd56a4a729a6265323a3c3 +62baa93a61368d738ff19510d6bdefb483d22db1abea00b8a144a86a538c9043 +1da883051a17ab3a8cb2fa64859fbb717aa481a1c821d33e2717a746f1fbdea3 +6a53100cfeed1647a6b5c3534fa199c67c52b71606382b50d4f386525a77dc88 +87b443922d7d60bb7f0253071619d1e31912c44aa70f50875e962484b33c55ba +afba1f2ecb46524d0dd327765370cc48131eb91803ca3e902f979fc09f5e8532 +e4cb79d5604c8e65d3e7b79969c269203e3b75ba3fc2d0d8216fd0acfa76b3c4 +d62452a654340aac6f62cd9302bc8007a370aa332153e29b4df6ceb58b2d6fee +8c84a56cc66296a3599f325dbbdd268669b07a29ee29cecf1b7351be6cb050a9 +22ecce78d190c103f9179d917f7a6a2f347fdac0371a955402d9c5e98bedbd37 +4bd119ca5e4d3782d9a2aa30653407d4de122a98268ec1d55424e1aa718b6bb8 +076c1e52bd9ddef4e553688ce99ecaea7a0f89c0e2b651ac839802102931da2a +e01d7bad8125f1a466528e407302551465f8bc50693f609645047afdc5700e78 +4ae8009bf4a46e119f91820f418940fe19fdcf7cc1bd2ab5569d08be57a8284b +db63d9e2e47a293ad7c0cbcccf38db5efd651c29573ad26c39e863b71bb228c9 +6eef97c80d9e975c678a26044da564a51e5850b88630fbafb73204a5f7e34449 +929ef760d05cc55d231f090a215e1a783abc00a9115d1708e3fd1aacccd5d5be +4d225e2584fc6763f02e46ec15fdb6cdc44be16df5a0c9e87836288b822d5155 +24a1e103bc83dd7bf1ca8d9515553717896972804638445b3ca9e41a671f001c +e135d13dd7e9e195c0d1a9d396e49576a6f832a1a93c176ee4c0d1572258a828 +1d2129049016f97d52768e92e3ddf2d669915f3f1ad324b8ff23805671b0a88f +b1040c4ab8942c097e1a0a8de7bf2a97cf798ab1b0402fe729ad3b9faa69c65c +272c6b9acdf9c14c70e06d2ccc564b9de022f8cec9730546711a5715996574c1 +6f080d9992ec6c76ebe5f624853f64cc3c616d0b10fe20fdb6780c8fe47192ba +6bcb51e4a8c45b1a599ffd146f7ca52c54578be305dad1ff96efe4503433fdf0 +15e56695d9c7c64e636e6cbe2319a5d84b2d627d3982824e75d895eae30720e1 +6473b797f5b28987987577a4b46acb49f5d154c6ee402ed9114f7db3bf939377 +0635c503df05d4c7792522000bd03f24eb9d861ce394f3226b9f060c7d020ceb +f8f2c826dbe61dc2dfcde6f85d3021437384775a9abc2b2cac871c3465c67c7e +d493c02ede0463a74aaf120dd1cf140c2e7f5b119ec3556ebc5eb6994bead7aa +ab6e37a7502da756e41d25a8b2a4981d082277286e1847d5c1c493df2fed18fa +b72b35e22ef707071ac43ae4e7eafcf027eef76dd351bcf84ee0f749e8bc0bad +3920b85d7095379fc66aa854372f6dd0bba86821ddc1ae34c600f3a8f747cafb +e8c2d9a8504b514e292dcf0aba49c437ed98501a190719aff0297baf890a5b54 +fffccc385a9b1a669136dec710e826d99da70d6e6a2aaebc6fce2202abd0be21 +3d49c1b7bb44f5ce022d8c617593a26b957cbeace2e9fa3f38c2eccc6abfb6b0 +7c13e6548467a8d892d890f944bead7cc60823059213005706a0f5af1fd4fb72 +27cd79255fb2b51a07f435b836a15f15dbcc866055893047c1d7114ec371c181 +e04bbaeef4aa47a881cfaa7bb09f1d7258481bb001098737da165b47855932b4 +6953f23701a306b0893a2d0761544407759511c80e057c113b2dd260046c7e91 +447d49d08a3eb6183af91cacf1920c169b421bd7a6628edc236f7d7b73b9bd1c +0cf9bbb08d0ef4d77b5e0e83b18d92a713a8198a7b8c4de9d4c25b92a5014386 +2856bb4324a31a7a27f801efc888bf85a6cf8f7df4d19c1013df008a3602ad15 +11dad124ab5bdf74bbbf653bdf0e1286ff715dc0fda04d4e4078b1693593ea62 +319c346f1375204e421bff10a2de0d37adee62634b2fa6dc046714f14c08260f +627320e8ddd3f373041722d98af6732ff47cbe0ba9e65c0994128f4f2885d45a +6feecd025d23b7c4b558a14d7a04f18babbec2b24fe612d9b04dd2c9b8f45446 +0c33fbd02b4ab8141772c350600961765848e72069e4c0a9397e55b4beb9a1a6 +b86bf2d7648253e0d2ded5e81843f190064fd37aced6ead38f8611498faab564 +e8df671e19136a1f1b82ebb8980589e3c0fe4b97d13623ad45faf06f3169ce0a +e7e3c6160851e8b7bbac99ca699cea7858093ad4643a33d75ae8faf91f835bd7 +9906c67e04c5ccb2921ffc06a6a101f598e5095cd5027a014865d58f65b435d7 +bee1bfbd8abaad8530780e8c8fc6acc2b7265bf0159c61ad0f638c1f8405ab79 +e23c724e9dc9eb215bb603f5ec69f33a7a863d01e0c33cabfd52be253c826a75 +8d48ec0c5083ab0f5428bf26360e7221fe02ae2fb371c18902d27241b072522e +bfb16aa39bdcc9f429a27f16138ec7362e0becac0788969d24dbd13b6c885902 +30af43bb9eba76c66515354203eb790f122af9fe9464312247275f039946c061 +09477bacf10f3e97d2cacda589866dcb82bdad25ff8f3285d3980fbed3455fa9 +5b87326e1ea8b276f28801c5f4d249ca530fcc257c6944305f68e4e052972643 +bb506f964b618bea1d16b53d3f82682fcba33641d6fc5c3e962488c6e0f41e35 +e72d4ac01e830056a2e59decb441e983d99478ace0e976bcb6c4d129542b4b3e +3d125f02d0fdc7ed4ba7ebfa4a4133604afb514eda30723ef39a3ec9b156b69d +62446c242dfe108964b2347b1ac672f95dc6533d5a18a8588b3eb85c12988ecc +74a04f6734ad88b61468eaecbba86e10fc5132c461dec26a15daac9b6e3ca191 +8e47ad27abffcfaf9e0802fd405467d3a4e53569b78a3461dd04f7da964ee0b7 +16783f0e4a5d86534514280720695825665b2b897b5b1df5e105a1b3b8f4558f +155396dee935f33703c1edcec21ec872eee1947bf88a5b374dae028336f3758e +a4a2b60ec629521a023e7a8c1648373380dad586c854c2dd6c8a66b2f8d3838c +0f1fb147da2fdfe64d6ece99f07e3a06eefbc841824fe110e436ef96b35a1d22 +82fb88c35a2dee24d11109ecfa65b9e3ad6e10d37f16538c3a87cecf69d5ceec +218b089e70b2a495c56915dad7a55a9a3c7c729fcf4a45ac48fe8036500929bf +21f6ee607f03d7e2d42a9fd11cbed242d09cae0c1b893658fc2e9a0989a4f470 +45f41535db18427bbebbab0a124ccaa4b688f553052001d08945ed8738b03039 +82a8960f1d0601bc102de5035d7ab4dbd2558fd6348929fcfffa24b16cc54ab2 +1746bc146bbb4a126fdf15448ef86191ef644fe9a48ce7a6648ce6e726a81817 +097e9143da8b6e2a53da13a68a496750cb3bc103275e81bb758af55c3dee6737 +3d45cfcc8f8ea0126e1e84a4d84d3fb4ba4481c3fdaad535c797e059bf02d9ed +66724a7dc43fdba2647c5d453b7ceacd918334c716aa52cb6829cfef0a094a8f +8d767a9227b54640684c4a1fc3a43fe07b01fc73f9f77583760456507c5bc6a0 +0225feb554acb116bf399e804c206761345e212195848f7d574f336f891380d2 +d41d8cd8e328447860e92ae464e47a58f51c8ea2d8bdaa238d91b64fc88f3946 +703df70ca47c3ef54ce613eed28d9f303113f0a0878708eb264892dfd863d1c3 +08a76911a1e58d455aaaa0360b2b2cfee503d6d40ef17935d354ec4128a71417 +08bfd9b83964375d2b206144f38ea9a5e2965ca00425630ab795c9196b3b758e +066e102cdb294e5eba2df26dd8968b7406d76540157c86cfdbc3dbce4c20d068 +625656df09de81b47d05a764145bdd6aee1623139b5c3c22bc4af0a61b50c1ce +38320353b8dac12d5dcbf91a1b36a38f083652465424c556fe3791ab090b2ebd +20ea71321c433eb6221f9f7baac2d61cb06446315d517e3eee827b6f73469306 +1da8788d59a43aec654d688970b044151453076ec26d940f2545a3ceded9e2ef +084b469a565a8db2db7db3f367df813a0fe251a313ecf9a20363b7bcdea13a6b +60adeb042c157c4d80c39f7301813207153cb31154630b05a9602ad8bc2e0741 +e88149bef1cf7f539db9266c2329f1469f128823e45fbc33f2ad7210d3a7203b +542b2f4401a7f5aaa3781aef83889f7f48f9dfb3eefe6c8b51ab1f37ff916735 +4c58617ea1249b1c7f7d312d1635134381e78ea58bbe60363f260f71ea00d868 +c47329c7d747c80316273bb726e6ee87bae8fa3cf0ad22dcfd6d9af692459d07 +33f0fdf01081fcacd1a1d78204b1086c50d9d8798e7b216c6835c0bd8114db54 +a216c554f5429a2d9b78b6d215e318f471f5fe57c845919be8e05518167df4af +6cc92eb7a9ea78d759f3fcf3675c31c71f7a1bf9f47483eb211d940bc1b2a2d2 +b662580d2161840218833e521143aa2bf181c842fa37f98be1bc5b9137068e3b +173a85542a577f34d1731310d94a58e0ecbb7538c84ba021c18aa780d651c7f0 +036da43312463ef1dff92d7c894a5362e07ff5b3111d1f166ba4cd91f3b142b7 +39cf67812ec7a1101581c280442e72e0d2fffc9d0192e45e24938f8941024d9d +f41c60ea16b21f696611aab3a62552037fbe95012ac4a459a6c19c2c23cd3222 +04cfa7237e4f3122190b8b8dec28ff94a3d00955c77d1c1d4cc51537db0afc27 +098613fb6ecf597581eaf7d9e9d7a5c65979c89a6b58f687b514b52a707e2304 +75a2485b07644baa16e610b7fd06a67d6b9e884425439ab217e89e3e2e393eb7 +bd988dca987a913a0264e481bc2e8961668a3bb29f51c42cdef4b74c99b561dd +a3d3ac697f33ada49392469e66a14204de4464b23ddef2e6b4cdc212dc43bcab +637021c3dce8526150cb60ba3eba354a4a9fea778d4623cb407b67a1f95f5236 +ecc619c9d1dad94414049c3ad951d244ea9b29e6d3b099e756dc26495653757d +7336c1e3443fdf8a25c3b821ac378b0d2659bc49da81e9fe129142fe7a20782a +89e1a2dc4491c787b59afc4fcce6683038bea98fb0a7e1db598c5eb775c20085 +94fbfef25f116b423f810f60b8d4c6f494aba8d8b7c90ea150346cc88818e9fa +0f74c58e39cef7493b87318a2e6edbc8cf34ab3a0e83db5f43f40d7cc7af0d26 +9feeb4fd5faf78b95d767460d8efb78188f512090eaec0771ec9e65f88d57b4d +706da21f6d8d90809459a27f510625ae05c302a2f286fcd052b1b1816e368f30 +1ab9a612073725423d6626148e72b4b69d00088bdd12340889a7efddbc8620d5 +5589729fb1e1643a57acdee33090e0dc320bdc66939d0ee001532cc4f0e5bf15 +b935bfbd37db1723740fe6f076e5bbf53ebbc1052888396723dfe8e2543dea40 +53dce74fdd2e3aff6c5738ed520c01530e3c239693eccd248675002765aaa721 +00c4a55f63c44d2e8916cf786988cb22b7cc5630ef25cd571c8d094acd0f5d97 +4f7d9562c25467a64f0403269de64a906aa4dd0a0f0091a7f0d0e683872b4885 +7bfdb3aa0787da35b2ec4cd4887da0c2ed737c8028bf763cb735faffec2ecab6 +50d96c43c78ee35c96954ecb5e72be8d0142f6810c928a3c57e7590458f5b16e +8b67051186fc1bb6d3a879f9696621d0352af7abfa6278b1d2c70b6c5f042d3d +a80f68d30b4ed14f6f24461cf9ef99799d651e8af9c9bb218f343449e555ca74 +aa437628638cb98163f14fc91b2029b24aa19303fde63e9c33a509c1a9a7b62a +af283b8c1fe2e2a43dcd6992664eb1f1272aba683c9f75aece89bebf5a6a8ba2 +d3db1e77cd4bb36faa5f8b368e089f7d98d4b076bb8688f353ad35d42e99436c +74a2d23794c84fa5c0fe24b2ac6d9ba6836edc6862d454076134f04d47226ae6 +90fe4aabd2952cec384983efc97cdcd430768b8f8e31992f8bc332a40af48222 +c8a6c5ca8fb8661dbf24e21b5a9fdd2bcb38ab008a9af4105e679c47ca0d9ab8 +5d6628d684f9038cfacd56ffff298c81b31348b1615377c36052cf2d6db3f377 +e5475fa306f96418265f79674ff58bd5b4690bed88805f6ac4bec0dd488613d0 +eb6a5bf60f77d656d6205509c2611f69bec685d147b5e5538d4d03fda578d3de +0f77aa190ff3ab7ec9d563cfd66173fce4850f2a349c6073fd0cd9123755dfe4 +c3102ee4267e930ca38cc9a266e22aa8637d74bb08af30beb38f324fa9a43bc9 +df232b152bcf40d35f5cc78ba3a4199a13de9225979f9935e98b269f67a92cb5 +eeba0bc4b12d6cecbb4854f89eb3822477e72690682267f85aa2afd34f13dccc +e4fe49fac453c21f32723fcc5ac066553ceb0d6eccc03794a0985e3ac31c5702 +1fe3d42c34d70c8f6192be9f4771061c6fde1d55a086e18184a1f8af5c0fd87c +3130e1de4fa47a4bb3976388e0ad80d5d2e95ebf1de12a2a3484322aaed6df20 +10d44e89c9be89253117ce4af117c8b2b2cf3bb228f964e2b23e84c51044da5a +c6ee231a1bafe97969c02b0025d777ac496c0afef31b6d3e5c42bff099b32e86 +7fbd9853cdbde7cb5e11eafc0597b1cab3a895a39a05fc9c5b5981a0122bc144 +99f12bc99f420c60d28263fc8d546f75acd2d7c8cd485e42658dab9f06930fb8 +6494cdb062c4a1bc3e74760f9fd389c69c9cd0dcba246c0c58ab37688671edbd +261bb9755e4299510e74b033ea9d2c4484dd200a49681e0fe12875cb9e0f654f +e6c4f35ce3bdf932519de9c9056b196fa84d1aa9860824b177e89a9010b04ea0 +47a4ff75b8b3f006c2651d78d50cb28eb7086bc5ee042774873e595dcefdedb4 +a27cebdf5ea140d5a01e70713d8f483ec273482721f8ee7357a2b21aeb88b675 +5a32fc52360d43ba7764ca33a5692945ddcb11b7f4e6b2092e439fdef23d7b15 +aabf894a815ca072db22e11b6b296980c73efc1ff097e7a33a873b340e1e8cfe +22592e2d1463064769e39ae6d68f5f23d6327c91aab1fde108b7f4a3e381b51d +22ea615c9f50f226d81a21ce7655083124a20de4df222fb2335884637e616692 +fa928cdadefddf0aeb7027e05d97be567352fb973a357e6054bc06454a88c917 +776595c53a1a39c135c9078b917b4824b7c4627ffbd54aefc2102c5d27db5b30 +0435c719db432496667c9aa78a0ad6b05a95f31557cc9977799b73c4a4f486e9 +57dd36f69b16e1f54b77755753c486ec5423497412b2f65a09865a4bb356430b +d1e78f0babf79268778d6cf15aa5d366487bf62287ff001003a4ca8efb704d87 +46af7ed7dada9334b223d9d70e3eb6290979bc85f78e8617411e9503716b6a7b +08d65b4ff1c2336f80ba3780a5578e129e6805379a340489aba9fdff0c4a6e13 +8ad482e9fabf469deaddcb124ad27ba2a41df82fc811c03a1f23bc11df9df1b7 +15509b01e5ee29fcf75399ecacf7ec7036b6178d64dec1b5c930512a116a692b +05b0ab9e186a891133458510c8dddf7912bbbaf930637f0467247c0229808fa0 +13c644c4dbacee307d30d6719879ffa546756aaaa3b29d1125382ecb46474b1a +cbf62c4d4c652c932ef0ece58c8fbdd616efe3c138bbc768871e62ceceb40e11 +301c86e6b4295861d2e93071d7d7955fa68110befdb4cd626d68cd1bcc2d7b9f +5dc2a2e28431c6d64e1522bd945269bd9f839f98825e8affe6671b7388399d7a +b4b9d8bff7d67683bc8479715d9ac68422324f3ee2313daab0b8fd78825d3d97 +6495d86d2995256fd14b84d9e4f003892adc6a99a16739a6fc555621933d4214 +3ec6d85de8af1626d4c4f324181df7812bff18f2146c493c9bdc6f48d0927be2 +f6b5c4a9424fff38f6dcd4d1f60b5f0feba7dbebf6b901d40e1907e0fe79ccdf +1c458f8adfb5c24e6219e920287a37b0d96f812666ed48e0f287868ed38319be +b9adce74312e75a20002ea7e9a90ccdab10701f2b3dd2cbbf71a9b032cb2bb94 +c717f24a62c365d78e683c3613ee02e7303c64b63f5fe5b35cd9ff0049bce0b8 +fd7b01d012f67f58e12e076369da78c2b63f34b25598b3a114e59768ddbbb3a2 +32fb14a5a33e69c9743dcdb7758fe961d22b1949acc22584253a4b8c3f19e99d +ba97ba9d8a277042f04755cfd8d92c08f2ab7675c2da2b59cd1f8fcbcd5a69ce +b9b515b6171b47940809366f5d58591a56063db03fc39f678a03cb2b455f9428 +d128466ffc4c05b162bb51ba979b747b90c98f9704ebb2832ee773c3ac195e46 +baf45c152415f62e545f316c9048cae5e19d8b6da792633fd82b55e49262f892 +dad984f66d522bb2f71a9a1a5454ed10f090ac48d220a3ae9cf429959a3cab05 +b54ea07a9da21367d1e83e979163f6dac8d05e6a748b95328b25d4fbc9546520 +82165279ff017d9ab50e7aba8aa5b6e7c40dce4c88d69dcaa7cecf50ab313606 +83c58937d81962c11ef39d84386438a80ec20b6f40eda53486f56c9c9a451d35 +b1eca3f6ac95aacc306520efdee1b71902d7d2d2d16f6e999570d2415d63cd82 +52f2754cce304036e7ce4fe00cd5689e0001a6cb0deb08989427c41b7ea13b06 +382ccc97cb3b301af8f77c21953f2e9d3bc627cd7f3e56b661368e825f375f45 +25210853c824cb8a26f3cad66c473d4f8a38b2975f0c167b2f7f56f938f69c82 +11cc05625f4645043575deab804056c7a517475eabf6719193d7f4d9000a6f47 +99806ff619938f6910df77d8861169fb71c676466f21fc697b37613d513c5665 +b3c16e152733eca6f7052b51376fa3be6f6a97aaaafff75f2609cfd651a9a594 +6ee23c818d67787c3e7c8ef85853b5a993dbd85c30a55e7778cb872c4ecbe5da +862937f5972ad3bbd69475cc04dc7c9eedc5bf48dd225ebb513fbf697b4d1b5f +4bc8a6bbd9f01b7c20fb59adc81352ff087ff7dbc52efb3cc55f188edebf47d8 +ba4a2aee3d05fb1ee2977a42f6fddc33c9e39f1fcb442226ccea1e6ca561b617 +c47454f6454564cf2c6e624cec87e29f75666a814712dcaaad1d723702b1dec1 +ffaa91cb56f697e8c9b9134405a1f9f8d6b430617fd05ce436318ed362becbda +94f50caa126f720468e8e0d3b6058451c9924c80a6b3169e4923d974c511ea79 +28a93e8d422c208429df5443c3f3f536c44cc93677a99759b55c03a62711e468 +bb3b87601a2cb367d2c70ce98552d7ceae1190be52de6afa7d6fca55d1a98e63 +3e6aba35d3e71b8ba7185968d56d53b60bd58159dc138b45a662aa748047eb9e +10267868aef4a7cf60ac5da26c132d7faa38346273b4f87279f02df87c52116c +5413fc25a705ac68cc05dd7add5b553d923b2ec3210637c804cb13e2e6e3c464 +b74e33932733bdf0738930c2b37fcb582baf5ea99b999ee4edac8127e980eea3 +17f1914e5c8e1243dd6ce054aee9cc603902291eabfc188108da0737beb66891 30f11d0627b5ba00615f00d7c5f8ae8ede781b4de4a2023b9557fa5c4044558e 8b97c2be125d2d4d404c3383fd8072b25d46a482aaaccf55730a56742fb157e5 3c096a9f245bcb0ff1ed90278d2752d11a822bf1813f896155519b0b237eb20e -c92d76c4aa58bc09284323c7afc1e154dc013de7eb9293cf1f0e3bd0dbb5b005 -af481e2d6b741da62f760c7324607ba467279ed2cc26a24846c9604d42092f8e +b02aa2d6a8158f5f6d4e1e669ec566ea4079b87096f2bbc19bcf196d51eaff7b +d3f3bb38d56bf26d8de02f0b6d1facf7dfed129db8fe4f67f5fbb5257b3d8d8d +30808259fd38cf81b921cbba2755620032aead75bcaebcd3521f3683981e9b48 +429ae4628927a9a5c16230a8fd6f0e5f652396aa94de3ec9b2b67eac09a0a6cc +983a56dc55c6977d039725e9918d00e98bd598593ca1d0847b4391273bf5cb50 +4562c14eee738de09fbddbd313289cd51f11ad81951be73a6c49a7fd2c10fe3e +a1f49c8f8c043f5b0a9f8c5cb7132952a0576b98a5637dd3d946d5ce8aef90e6 +800c2bb19d5907ebde7f54a749a3410f464919ca1636513d27d4e34d479c9bb2 +2cf261b770e40d61165f56df0f6865ec5249e2113b95d91aaf3f5ec5db468055 +fffe2b35f54fc10993124ebf3e88349f4f2489c43f2c80557ce3ba79fb198e3f +eef1f2d9d4f7cbaec3e50738aa2f25f75bcbe7ae80885129cf26dd61fcd2d684 +e041111696696d07e5fb4b6a439f43c33601426ac65700515f29344299f18fca +8a26a0852b5240947925b864d91db59995cbf1158ad0189e108452c5e96bb477 +954fc6d2f8581e4af6d1ac4935b84696b977349404cc339611324fd76c737c25 +ee1bf839d511d2b0de3b07a837d1175316a7f94ef0528d3f8dc94cca211620db +6f4da6f46fe3eacd86f19b981cdab577dc969cc9cd695c3cb9be7539d7604133 +a30e227f2ec8c79561d8f5e1311225dc8476459106dcb32b1769324b9de23afc +a331f1cf43f0add8ae45d1e27ff743e691becfb5a47ddf0afbf335d9d8c5963b +2e5dce6430ff0854db8fa0cb34c8eb4daf12ca8e51da8de9a14a02711ec96c92 +fc206a8e0afd37e8458953c6a8e35d9820cd233c5b8a4e4f63e10023a37be64b +a41a28f7e42bdaf72848ad408e8c6d2555275019d3a6391f24f54335b202c350 +319ab99f5daa2548652043db0a2e53198ebc29b80aae4b0b88e1ebbdf4cdab7c +ac8d9e90423c04d5e0f8a181b2d4ede788b86d236d2f8875d002c00ed667b1f9 +0ebd5b7a3cbce0720ebfb86c41832c91e947549aec4fe3e9bcffcde2d83f63a3 +378952e80a8b59a6defd4f38d9269c0cf89833c886ad0945f715839a1633d27f +b8157616e0b5b009a95ec2a85a740ca336305de3fbef75382c09fc9030cd9795 +f7717f073832af434ed4623dc485c325694e53a1eb443739276518c78ad32248 +11447e20b4e7ca4c7d4ef7b49ed412582414b35f4d457df735f6ce053067a2cb +356e79b2aa8bc3449492dca3e3767d52abe4493c93fa378740de2ec43ea077e2 +fc4cdf6dfbc54cd15227026648c03a6be8a1bc57e8b1f4286ca57f25fbef6d11 +38c2ac73630e567a5a70ba8dec51d0df8d39df8fc67f25b1f35dd02f4b6e150e +c0e00e27175e649b149980011aa8baad5691a9afacf951996968df7a3dd3d0f7 +e1717cdc0a92bf120df74c1c5c15188415e650cd967bbcf433ec66ae8cfb00cf +304685258605cd9da92209731642c74b7830895aa5a5e949680b55cdef503c18 +41ae8d981e75a54402220564a078d5ffcae1a74650b0a98667e073a3610927b4 +67f75a12b2c2b1cb3f667d22f93253005f739b82e08508c4b7d9f25ea4eeea8b +c569c33fffa67e7aa4998d74fdf8701847e17ac3a0b55bb1672d5196e98146cf +289a6c36994466d9800971f5797735a9ad4355404f255bfe479309226cefe2d5 +4ea7ee648c9d55fbbd37b8ecdf6368ca095e3b8d23439fd0de17b23029ccc470 +5d700bf1233e052b1504ab4ddbfd13a8bba907b9fffe16d1bae172e90e4dd680 +da9409a087ae100441a578b4354b74a8dc4be3acb8757534206ab8f0da8152c4 +3f119e27900f4648319011d21d0ce403317ddd16c73b7c7df0d2c3bca31ccd8e +ba61babda725bb53aa37475a778988c3e84029081852f0f2be114a98f46385f6 +e9f52a4e61f8a1d0f7360036187f8fe457c7d8f6834cacf006ac136a31c0c0aa +5e3d459986161589455cf0b7e112212fa173fbf20f65bf1f4588338e2b05620c +2ee04e2fb0c8aa150e523fbd82d065248289057a3ffe946d751105aeea3cee39 +fe804ade979ba0e485efd3e3b965b8d9bb283bbefa6be9acd0f779a23e605fb1 +cd2a8466cb8279dad96eae14ef42b075ea97d520df7b0afecffe0bb7f1728417 +9bcd070fded5d3b8a1f44d1b11af7c7c6a7f63f06fd84018f46158c2e07b9ce4 +82004e7a7b50d39c92b1cee4344b662c075e22816fb20399580212a66d122d9c +bfb1a9b8cf4af746bffb1cdd3fcb885602d2e36d31966131a6cf9fcf97d5449f +9cce800c65bf76f69e573e3c88d7cd99c0ff058b3d6e15f220ec784e8c0bdfdb +6b97b650c06a253aa0716be82054881cb85632e2ba8f8e206819ae30bc721009 +56e4905b054e12740109b887afa013157ae9bd4e23a1a9d0eefe4092ee921050 +2d34e1c97c3de2aa059c6a2d22ca918e20e263d35bfa39b96e9cb098f556ecd1 +11984f44a9187f6e645c7b0105b52905c82efb94565fc95e4ec55ebe03557e16 +1ac207c0dca85dc12d10a043aca99b5c9aaf583d2aa8fd41f41f9b31696963fe +a2d2517008b95d931b2a5df400ac1015035c09bc79ccf0c6365884c08287dc87 +198fe38e4de28af59069a6d6df1543487694e5c7075c7bcab9534394e6d44160 +541edb4b74f309134cc57851f44923294804f642eb85f93b25271e681b400f1c +7a00d22ac3ec77adab6b50aa90951d2ba7f6416386e69ffcbdae0bb85416de0b +382be757fa40774ff39680eedb1b520833bfbcc779896eae4e2e5bf892451e03 +cf7187f109d9a7508d791ea946555b9bc14b235908642a522ebdb1da88301646 +1b47347427d8c4a8fda115503a96e5350983bd0e454f831d2395528e16542049 +5f3491ff9569af2f43ab0459b30be6ea7849400527841350ded83f9d1240c7cc +3559ae081d4927a809fc10cc833617dcdff12222a06f8fcf3e280a0769a6405d +7797f3a58d73c3ab36bb88215437846dc662b64120f977fa544b72ea8d321030 +ff9358cee4f94e0b4813c4424b7fd7e5931dbe4fb447623d5a0416f01b013b52 +8664c750ee7d618f862ed441ab6bb3df65fb98f855a4ddb9bb95e1a0dba626b2 +1d79ed2edfa92c3995312ed11a8cf4aad36cc1e3a8f4bb42d2aa0f29205e3485 +73216ba3a01c98b22dd99872cd38185c41e9433d4e71d8d092302c7c2f11e742 +2697c2453e57e8373bf02c4761e948c720858356ec239a22f28f58474de6e462 +b6f2429998c10759d7a63385e50565b0c2316ffe6e4b51c29c0b010980f1afeb +6a435c38ee831717289e529b29802cecf3bd72107ad3ec42a39932a619d955ea +13938be2ecc799bcc779775c67982bc19e52cc3a5ee16c07c8843f3b0df6f7ae +fc4730f915a2ba9822bcb1916c5402fa30eec3512a21d079b23032351ffb70ac +5332608e2dde3668d992ea5572ab94f28a5da401c6230dc13c69b8257f47e322 +5bf97ec2da86ff87669e31c06d97ad3575c3336a449c0f15e474ccd90c709da7 +e321fdebd3bdaf82765582fc1e37f150d86a01c9c2b54ef4dd82975a528b5761 +51feeb2726169f2a5e2826a3548246bfa3972cc4f862ebd7d106b0c847656d49 +ff92f58d3fb194ebe093ee9315b1117fc03b75f270fae86c5818e77bf1db7978 +f7d171d7416a02bb4b42f643d8c85b2cbd208c80381d77a3646a1aaf60afa035 +21173ddc88e389dea03a7ae0fa2175103eda21214df14d4a73d4faf6f92c35d7 +6aed957c964c83361e50f1047a34468e95a810d961ff08036e5c1727fa233879 f111b475c585d2b5f72f35eeae5ccc006ced57e916d0c849091bd27baef60e09 -89e1a2dc4491c787b59afc4fcce6683038bea98fb0a7e1db598c5eb775c20085 -94fbfef25f116b423f810f60b8d4c6f494aba8d8b7c90ea150346cc88818e9fa -0f74c58e39cef7493b87318a2e6edbc8cf34ab3a0e83db5f43f40d7cc7af0d26 -9feeb4fd5faf78b95d767460d8efb78188f512090eaec0771ec9e65f88d57b4d -706da21f6d8d90809459a27f510625ae05c302a2f286fcd052b1b1816e368f30 -1ab9a612073725423d6626148e72b4b69d00088bdd12340889a7efddbc8620d5 -5589729fb1e1643a57acdee33090e0dc320bdc66939d0ee001532cc4f0e5bf15 -b935bfbd37db1723740fe6f076e5bbf53ebbc1052888396723dfe8e2543dea40 -53dce74fdd2e3aff6c5738ed520c01530e3c239693eccd248675002765aaa721 -148d7c0ae548a910ab82eacc32043d423cfc4e63fed29f613fb3a76001b83a45 -d384e942183a61829d0c99d84c87475eefcdf6277b72989655007493e4bf021c -9d43a58596639ed577a208d86eb3ff599972c0db25bd8f37701a5fba55105100 -2c6c58338eddec9db1d914e214446ea718002e30bb5e7334c444b970277ad264 +af481e2d6b741da62f760c7324607ba467279ed2cc26a24846c9604d42092f8e +1123036bcf240cdcfb398a9dfdf4b17e4b0af4d02cfa89c728d2095aa4407026 +4bf4b1814d5bf55ac3f0a36d2acd116631ace9241267da7101f07ddb8504ffd4 +cc29e0e2c3f34ba58c036c63b774fafefea9368d0fd83e050187484d8ceda8ef +5221e913f5349a2aba2aa2ae3fc76d35b87b0212b7030d50dccc1d59ff529965 +e6dadf2527a69744447b12927ca0a3161e819398a7bfa5f08bf3ed20c0b6d014 +ec24d9a807416ea69bdf6103e8c003aad17c35784b1b2b2f82272c10a01382cf +32581354946c249046daf4acb0a2296e3b446c44e0d7cb8529a54cdb90fe93e8 +271ea297da421ab506d26597c863598fd7b897d26b7514d7904ee828137400a9 +0031da6252125a1199f740e3c90c45359d27c695c6849e537e4173dccbc9e1e4 +e92895fea3a705929e77f06c3384ecd6d30ffe2057a0f5b654d2bdc680e0427c +f1ae6b8a1e3ae6a8746d867ac44807b86dc72889f415eb543bbe6018bf2c6dde +86d44a984bf04e3822a7e604f58b006a1718eea01e36858d395deaa7925e2e44 +7a9e9fcfb71a5c23f8c763b8e6505fe8c17f8dc5af52b19ebeead87e078082d0 +6c136af58a090cf460cfd495f6d46e1572a75fa0f7f5f7191e6b974f1edb6023 +354432c6a726ef3697f5df89bd938ec4902f6854e0aaaf5a7e030a1c1f8a9a96 +36d3492ad5f22e98f29ce0cfe575ce63a3f7a04b599580d33ad8b5251a396fa4 +db956d6f8d75e426cc1448cacdd556af8d1e1a490e5abdf326dcacdbc3c47755 +172ee74f2c13defd1ab4fb05bce2a2750f3c4d0952f8451fb5c736268bd36ff6 +d17c2beda41c5e4d75813937ba1562d7c3092855711b60a476ced4bea19daa1b +7f633879eeec4f76bea7d75a6a233681400b8912690fcee8417c4de875930a4b +617e5b9b772aa2cca910e0f7d71c68fa781ae5f6c87717d7ca0f51bcb8f06c67 +bef93e4811c3f7133825033ace72adb52d34c3e1447ee6c589a813f4c1fd0d4b +288e69bace0c84bfa9150c95b2f75d797e2ca716b1b08e6a989838fc6a56d194 +3aa0256dfa305f9d3c4d77f98ddebd4a37bbbbf229ef2b2e215128522296743d +01f3cecada7ed1deedf23eebc6a9f95668b08a45e2d34e033e96a3d40a06025f +1ebfe0aecbd30ff546cc33081cde3abc7bc8320ba6cf824c189d31a5911b58be +7ee39c538e97395d94b36396eba5f140911d1156f0ac03945cb920f299564261 +7a41df7255c7d308e663b53c8df7ee8da507079f20c599274142e59721ea21d6 +d1e1bce3634ccf7d4cdf1253338818a413904af68d0d118e24f691bb3aea912d +f561dd555e9726ed474a1f5cb1dbcaceb70496264f485d77372771d9504c2e77 +3bc7809e5e37b5f67db4d3a5f9dfc69e2c96aa6eaf68c5b03a596dab012d079f +c365c722abaa90b1a2dd9cf4038cb0b497159d84a4fbea01cb4927dd4a5778bf +0b7edce16e4ba271bd363a15540898ce5e659aee52545fe890a55a6e71a25984 +23042ae487a09a15e2ec0ae325959f5a302a30ceb1f998dfd82c4b7426ba0c6b +a59a2b64cfffdced679d468fe7e1e38013af804c6b17db6a70f0ec611801d30e +80b657e3d565bfd82b87fc9dec95c4915bb969a449f8b7371196667fc69dca00 +d5b93229f11a527bf2528a0554b95ec5dc21fd451380332b17385543cd3c7a83 +5feddc06542c849b33217e91abd13e8ebc208b35fbaef85bfbfe5cd88fbad54c +a85a28b5fd50e7fa846a74e37f29b820ed74f4fe2dfcd08b506bb54f4b64dae8 +82fa56e84ec7e396f97806f0617814b2da473e6475be1d93cefa5216ebb473bf +20288fd650524b6ce3c45522c412664ceb382bc78b0d72c65e964d7e0a168606 +5b06bb0eba9746e7f3ba26a6c125c80eda3f27aa88bf753587f6a76c794c3739 +5c6c6337984a961e21770ae4fb3c3d60cdd6c44749f66fa913cc0afba0bcfee6 +44fa2f9505fb9eeb49a19791cb187ca1382baec6fd2ab51db31da77e95e0c726 +098c2489bdbb5d728fd74327edf0303f0a2185bf5871b636ab9322cdfe7e73d5 +c0eab7e1d5cab91a06e028929ccfe0dc8f3f8c5b324ac3ff628c12d7cfc117e9 +cdadd96afe76973232d3d4b35015cdf8f30d77a41b6a561ff5478c2e1e0e1e6b +cae34367610dc3eb123c6140d31ad2ec7799189906f7dd7b7e4905dc5afcf2eb +0b036dfcd54233607db0240ed765315133c90befe834949c470a7e132897c7e8 +03325e9459c1ae99fc443f7b8b3a3cb01b2a2b17a42b8121c5cd8c83b375fd75 +97e01fbad0e04bf7f855562ed81464646ca5a6b29d4d058dbd165be5f785c155 +704d2fa42e01e568826c73dcd922f0ea3e3f5c26fd2e406bdb84b5ef23bcc8dc +bf83bf172395f3c95009fe319fb028630a7d0905b47fa2f7c8794fd32a6443cb +1c953063092f0b338818868df48e49aa6e134b6022248a20920456c693dcabc2 +b33a0aeca0c98654c6ce705fbd367dbb7486f6e49a878402025d3466944b0899 +a407b187e8bb9d07a2fc0800394007cbca0de39896b14c67dd99501c3407f9df +4ed03b7ec42df27459b802a2d2c4efd22b7d3bbad6de74cf0fdc1a2155eda0e1 +a78893790d028f88634b1ada5beccd99c48cf02174ba417baa29361f74fb4be4 +489763c2caf67a698913d5e7e8a22902899c590d8c47490a893d6245e27ef31b +ef184829c8cb5c7cf358c6bb2ebacf26cc6904fc9d6c4678340a42e081609323 +cab865910ed8ade413af57a20af437d6cde5581b3d15d78bcf52ae5586ae1d3f +47e49fb45d2940fd9e7a905cb76e42b51ce1e69d7b990ea3807e56d1c4bc8cd5 +6d8f052e2b4e842617c8341c666d10e573f950d009d15610e3b4a297783c26fe +502bb6f07a4f9c10c4bd7d6a17336feb8f0274c0672240925e64b76830ef88ed +4e3f7578572f4b54fae02b769e63357c6797453f9acad2636ecedbd309aeae25 +b6dc30e17f48612e805bf459c1163b93c8c797160dd719f351153bccfde4d033 +8d53024b5340e46556051eae86e17f94f80283692ab6ecf7a21e485133736e9b +40a69e4b7f733b8e60cdbe2e7a5b1fbeef864f1ad7dc821ac9210414fbd6c485 +c1a25668b3a665e9bc4eca605bb028355a9edd8533f9af7db56595f93fdf476e +f00a189a58037af7e6ce33a409698a586e901f2e2fa03d53f02d20d4a52bca89 +e26b8d1382d9e04fcce9bf4b43072c00aae4f029c1b6be2a842885a2ae94160f +2f8f55f4f5922146fcd74d16b4f59fd5b6d294af58fd472345d751d4124ad70a +e51ef88f3ac585d5a776f026977dc229c81e68b360f8cef21dcbec48844f90ec +3d60e991e18031eb99096770d84f35af0b5aa98e3d25f8ec62bc1574a602fdf6 +5d203e1faa69479af10ad34a9aacba6d9ced6b03f3a9d934ce30554c335f60a6 +997e1901d513430719c2c96643cfbf5cd32e80eba160122cab14f36c7cc0e4dc +2d8fa3fbd052969fa8259eabde5bd22738943c006a9e1218ed697896fb545488 +65109c0b4e4e843d8b0e27b429a78d1277ac999af71ef7c31952e45b0f747b2d +793734e5e7974cec5ea1753af5a9471b67edf56bfd97748c28ace6392238d0e1 +5d448cfcb36c8f6b1c56cc5befbaf65e834c80613744bf76af759eb735b9336e +ed1a896d53c1f83c97cf26993d4342bfa7c692aaadeaa0b181c6edbcb0dc9d7c +bf9b42429c88f6586e952480cb73dfc7c63524b110d59bbc4a77d789063dc260 +4e3cc5f1c2097d8c6800482c8d39147a403a9a5080b0b9d777e1f00c815685b6 +b0d314667701e86f4c84b8eae07fa37871870b27a9121758785ffa1531af4939 +0a01426f2d75f1386ade1d9d32f7a16f56905970c136fd7ca974a8aa5598c937 +c46bf1f9866e899e1728e8cd6a19adb5ddc76de33696ccf288cc2a68988c19b2 +f932a6f921ea2c1e7d920be5667f963c1dda94b976f1dc0ccaaad5af56750330 +83e21a4166e71ac1eca43d29f4aa850416dc8462dfa808c7ce1e3affd5a46cbc +271171197888fe90a37ef2fc0f579faf60e1d1075710780be8dbebdc2977c4ee +53bef52f912acf44b45bd8d0ade66755f325cd7ac00e72795ec9dfbab4c1b896 +8d1e30bfdb34a2491dea6621d3be49bc6e255a15a7aa7a0657ed4db707c047ce +3e784a3eb07caab85420934308adcbcba09a09a7d03faa5c79aa5726866bceee +908f32cf4db4d6f57cb4648627b7e0fdd2fb570ee190febb1e55c5dc951ec361 +e7213208762ad15b3d801bb0027c01fcbcb0ae0cd083d2b364f44cbb64b7bc0e +6bf2e63258dea34f07f25ae21b6109a755606909c434d856cf18fcf482660e1f +fbcd48cff010e1755fe69a21337550dd5b58664b63f67a826a3965cbb802d999 +09b6166c4643184817811d12c0d5993df05786da29993f9b6a7050a14bceb186 +562000f6699d4068280439df1e9779fbc278ea84b4c0d5c68d64df3e39d39b88 +d9ce2462e1084615471bd6c5bf6b0e1b384e35780f8b3276695796bc9f1b41c4 +0213d5d7b9b82dc36ef3e19420bec516afd1b27d7ad03e243530c198a111bbca +3cfab790d298d6b94926800691e569714f94bfad6819bf79df245d7a88f31b89 +a264b30a431cce5b1a1669223b7ab0f3aebdc5285f251e4f48aba3726f5978b9 +81fda39873c6ebb85ff1a277c9acf4b0651b1911d0fd5e7a960a28da58d88e24 +061b01691efc83a8ac9a6d474953f12e467ea3f8f61296ca8fd7447741c18727 +ec4552c85106e0284254b8b8e62ca7a8c07a415cd868df056ff3c7dc3b76c802 +334b70e6b9a08046cabc7bae845a1abf759ef02ad0ae99fbcc17f92b5976b0c9 +7aed463e4dcf547d349da528b9811b5e28c94e6b250aee6add5d3005afbd09bf +2cff0c2f6f3b95dd33388be72b1488a1fea1821fdd0b5f94d416bcb6fbdd5b79 +180ac14dcdbf3759430aafcac0a4b28201914a6b2ed15bb4b470cbc9b7244997 +f01c623f26750a8e3d8a9f5802f880f5fd8f3f3d384546efcd615c44c909e82d +4df12c98405835675732fc1852e3a193a8844c71973e4c1e7c9a131b3b72fdee +88b77a44cbda3eab2f16e5e71712b6c95e90a22d39b305075d44186adb84ca6d +d6a3a5a8c6fb82d1bfd28c7d4f09549552aabd0c599022985e1cf6612b80c976 +5abeccf01f8074a8004b4c10492de2274eb6fe70fbee2f07da0e9693751fbd4c +012c1ef4a62a6f41ab0d416a1a48660fc1215f5489e660ff41452044d94a0bde +354a82835d1c0264bdd4ae12c8ce33af04560d96dcce0472f412828841b8e1f7 +5f2551bc1d21afccc5ca0c2e901dd5915ddfb39e0a10a51267d087a9bb5126ac +16aaeb7ec76c76b97cf688d1b2294d800019c50f0a2ccc17f23c4159c8f70aef +2a71c8abbe494f5a7b77e210023aba67ee3ad72873d80d9106a6a904cb08110d +93be193605b4a6decb7cb4312e3d45cbfbebc5869e619a209539bf58eeaae8d6 +f51a2c88523a07e0df9abcedbce12e768359a02704093ab088176f9e64880317 +de86c733a263624132acc1d49d8401418dde8131340f7c705fc372e4b104432c +278fe7a833141ed5e770d3f204cf837137243c59b083fa703486785d9be95cb5 +0977d2f7d367d7b3a8ebb4b09463fa9bc5e2eeeb93dcde380a46bbbc2ba72a04 +39050ddffa4765287812ea46793c03180ca10f7c270fa6a3565dc41d28a271bb +43c1206686871994f42d1ac390303c9a56406b21568bfe7c8005eb4a1afb21ae +c9bdc14687387d7d7761ebd530bff5b4189f279464ae3f63f9b8b93ce9b1927e +2ff342a5e7367c65aa623357649905e04cb48aa40aadc450cde961ce8b99065e +10744ba895073a0c7e50c8dcd45c3318cdd5fb6f969ad5d44a9913879604105d +788f0d52e2e9bfc0db0a8ee972fb2b4ad3d89a49a994c78184138adcc6e5c492 +137e59ffe9bc6853e04b50423f5c5307b4dd24122921ac718624360aa1c28233 +290079b62dbdfcfd0ae51082dc6fc7cfe4c22603dabc72083e9fa8b9ca54845f +623d128c689a3fb4ad54a8354feed630c7c053eb76a11a5a0280d7d9e65d9c4d +8cbe833cd2e0cabf04a7c6b2dab874253ad1caa1b1fbd54e0f797c622486248b +df0291d524420253464051254e3961669a2d9aa35a678b8574416de67064f103 +270d3702033f5f4175d70ba59c7a048819e2a301b2c462bc376dfb095ce0de0a +4bc8885e02aae8662c1717a198a5b5e567ec210c963d7e773b2e0d0d38d252dd +b480bcbf8c02857ea59a95e6d7529bc65de9de53167f5cbf185ca0b3299154e8 +a4bbc21a3a5133b50bdaa33e1fc82b93aa0ee1c9609c583a310b9ea1cb2b5708 +e00e397f1f27d1cf78a68252e1c4c8e491cfcb9c6d31dc40ab15a0aacaa7b12b +1ed1e232ed6faf18f7b9111005949cc3be914e0e77d72eef1bb58a439c208da8 +b85f8721ee147e0f1d0893b2f12999caed4ff163bb2056a19dbbd4413a4bcd4c +b75a67cf8f598b5aacea7fee52d6a5364329398aad09ffa4965e5133d3d753ae +f69f1db424770f4c0968895cce8e672dc25e987d402138ba4887b083ab821247 +4928b35d4a4375407d4984352ac715787a026bd60133644e9a4a496e9e17a73e +3a104d3ade01ab3b7f3e29915c8e032354aa811d0476f4a16322aafcccea4e56 +c3bdce9d2a6a9a5bec080feeb96babd80644d1a53e39e0340e695d50bae395fa +9fd0509589d6f83538f5b7a2ea6a4d74a061ee1b4118ca833820683856aaa28a +ec7286cd86bd479efc98d8af58b5b3c13bd5b4733266485cfb72016797409355 +f3d3d75973a0646d8b93fd27f4dc58c0f27800502dc773186fb3a28aeb53ec64 +a60ac4cfdea2a39e53241ad5636f993bdef01463e81082de8b41b0a83b6d8654 +7e65af60e9c8babaf0dded1dae5d84bc6461c23b2b61a59cd2b9984f880b0abc +86e07b9b5052aa371de87260945555c358155f7bc461e8d5b50ebd09d19c8380 +f35ec75fdc77f1b7e6ccca702bf66dd787e6c3165d4037cf2943c59e5fe63839 +c9a782f519986779d6f37be3d9309bda4cdfe58e12709c1b4da5e60217ea18a8 +7ca940f27837c872dd94a4223ca3c1e0e0b30e9c3db060b3ea0595120b43050e +987d76b51bd48176ab3cc630a5ee0214112fe8f48ee5fa905b325293b98e58a2 +97e0ac16d62be1b320b11d23a2ce09671604115889c09f4070d4666a26821693 +927c98c0b02b2fce276b058cff33de28ea737685992458fd9329259d5c410df8 +23fab74d3f31d8dc74ae91a9bec15339022604ef4afc3f2828e2f49d9263d1dd +d8d129d6e734c1fb8483c7745677b1d4504137c1318785955054f432d1b44f57 +eeb2f90835be6a78b974e5604c1bbbdfafac2975ccf860dc6e29096a92a49629 +dc4cbd599bdca611ddc90a4ec272b3741ffac658c5afd409cc4585ef211f22c5 +3ec4396863837402f0637ed078eab5edd7f2d837912110d096bb491f30495284 +df335381e8b04effac9f6dcc57a09a66c4c9e09b8264d022630634f465b5c35d +09e3542b832f4bdd9eefd92c35c5963846fa5d3a76293207730489e7f9125921 +8a65208a2f456b92a25da0605eda8dc7cf899cdc8320cac31fb63ed08cce04ab +372e95302e54cdbbc6221aa066d3f7bfc08cde388b6e4cf4a448ee180322518b +c3a542bc37788d3872c92b68220899ca76fef89e0d32101dc45e075b3ffc5cf0 +79c5a8ebae612f0348b78395aab01a27087e4b5892c6f93f20b14efb0ded051e +46ed70f073f99030b6acbbe679a633c9fff8780fd002761a88c284c3a12a21fd +f32ff8cd620719cbb69c3b03254aed834368b7a5f69cb4b7d3f0332f21e29ea6 +46af53efeedb1cd366dc8d031baef9f893b2f27745ba12096c8d18288486ffeb +a6a3db0e7c85368f1aad28359855230b6dd6678c751f60e19592ebb487abe17d +4ec75bc934da27bd34f45b6ba301404ba0d686381e37f46e37b305c37a10be35 +6fd1af0ad43bbcf728184c6bcb6a48f1eedc2bae0066a9bc42fa9cddb1de028d +d97dd52b18670c246b5b389106b35b96b05bf678f2ff17dc6b0e97023d3950d3 +5c940b126e3e4e80148782f32aada256737ca6479dd9fe53c74f0793f0861f88 +a6177179254b203b5b3d8097a222c673ab8e885df8e7050e6dbc30ef5f5bbf17 +62602d5306f7404e2d7203ad3d64a0da646e79cbeb6a09f0038eeee65949d60a +3553913143ef96c9c0db1e05c9f96f02fc12706d9f2a07c2c7d44a574f972482 +b7a717a08d7bb771d800c19fda05a4e7ac9bc9acd6c3ebae94156b8bd6166344 +a9447c68d4a3db76925058721bce734737952edc8d836a78603473b5b322e7df +4af214321b0237fdf4eccdcf17e33e316bdc199961794d6d7e531769021b56ee +df8b130db7321fbb9346d6b53d7b58e9f6d06afc77de17b3757a1471ea507869 +9ddd6f17198fbab21a0ba18c7cf2b5f37511a2193b018c9746618dadc42cbf90 +81e27781d8e21f909cc12bd273f13ce10082e24350115f49474d079de6bcb1eb +cab3cdf822d993f077f6a6812bcac1740dc36ef24a0852dc0c79da7530824f08 +56f0aa36b51c2971c5e5337de1c9ccbed6570f6a57f81c7ce1d4c1c54bc60ae4 +43cdae759e6c10cdad953e07d348814685318b379b2600f79e6b39aa17ab7462 +93e9bad50782458a1581abd5b4e3a70be5d23ab7927dfb5a5104e40a4aef703e +a24deb27115094d610054aa97a3913742363fca01df49f71bdb5239ce8b914ab +29fd68962c30655aa6ef9b192d19649b133468999480b2d1fd4ab8fc0b535a30 +1d029bd990eeefe93b253a25a969b8ebd1bdc5095b8b0e81494c78a6693c07ca +6408aa26ce074c80a744472a2d45f92a5dd9bb698d09894c166ba3119979e9ff +92b0dfd5ac0b6e2e8dae164570747de735b1c26b71b5afb813e26ba22622fda8 +87a039f6ea334b61bac246684c75fe201746851a72d944ba75757b7f858bffc6 +62fd468573822af8cc7e7ee67e0bd158b9314a7d7d15a504de8a47da9423a1f2 +424792ca94267b11bdcda5af5d896fa624f119b2c886bf7211e19cac7500ef82 +a8ca117ae3556e2970c1ea6552f8de10b3d2d3c70d77d1452c38db53cdac73b7 +30296c8fd2fc9ef712dd572846767e4f8bd09788350ead55456e57db2fa22e45 +8f40974a37ce9865fb4560d2be69716014c511403b8d6c16096f5982200d80bc +9c184685c9b3dd107f3da78a1e45f11aedfa94c260ecfd6a72149ddc84973de1 +a14630eb406a928c6f08c226511784bc851212327822e4a6c6226e65ba0ad87b +317537faded98a65ce6ad9a5c7db62569528ebb33534075207fb16c7b4c6dce6 +81cecd7d1135ab9f7c92b4530d93858961077ad2321376f5225e4e3cf2f39fc5 +30604dde9d5aca8b3afe3085e006be1c315d70726dd5764e7f5a6d633e825a80 +7e988284817f893a3a2f9c51a7da982b2f29d7494121f5d83a0008671c865929 +d4bb030c8880a87764f4df89137678bd1eeb517f1ce66784ca21a1794130cc75 +13bbbc98f8f34a9fc31303dd75b1bc6ec7602348ef5c985816407e1397ae1d6f +b10fcf88e9ea770c7a170ff150188850041e14d2c5f30cb80320d2fc13152cfe +8fcf3762ced81771b824c50c3543210f06fa1b3276cd8bb5741ab82d10bd9735 +f89b2a5849c961c420c17819571c34982427b9a05c5ede886df502643418eab3 +24e3949aaf10e4155e3cb7be1f4eac2db9dea04e31cf904c99737fd5322dd0da +ccc6253c11d89af11bdcf20bdf513112ff3c0bc6fe526045542e1edf9ac6ecd6 +2a913432682d6dec351e66034b7f9cc2f64385974684e06b57dcd5e491730b0a +1ddae77e15cdeb0eb24af3eb70eb0e4e69ef93f16ed26869b716569b6adf1b8c +7dca003d51c42ded7feb497a7bd163adacd9f8274302dfaa4f889c9507c667fc +b27bcbeae0d3682814c3f308d66d77da0ce24c2a41c130f39a5768d30b64f5b6 +624317485b0dea29daaec6fd6bb7fda31cc6ea00e3efb5efed4aff14d0068a4c +fe67f3c3c7bd2b518863e241d77de378b0c6577ef9492284a5948db8370d7053 +fd7a567bc2a68e76f39540ab8e01a9c9bf6668d3d77c5705c195429778f12546 +063739d777ae4310d036c6461c1a5b3d731c78b26dba37c06c0c6c5fa3cfde63 +64f175931b26812b1af8c29c20724b2e2af3d0c151c453b601c2274d43cecaf6 +2b7222221ef1f49b38f0b7d5ce04a312dd4c56492ef4ca45fdaa57f419a4f2d4 +15229d101ee197bf179a9e11235901992d486cd99aafa632086733afb1e8008d +095fba50cf84cdd4f4d3dba6ae9ec9b06148eb46bef19029e1471a19a0459984 +5246ea08c3eca4fb23e14d1d2a040fc55ea7834223eb7d235b2d47eb950f5574 +366444ef34a7aef346e045035d5a17c66b0aed8f93538a197b04fdb740159859 +6d591ee06e1d68699f42802480d586fbd988ab6abd7b911cff06b307a0aa7e69 +0c2fde2e6a550c3553e91c733636e75ebbf6f62052d7b64e79b6c04ec1530b21 +d445ece16d21807ab1d287109a775938ea09418befc20224a918882f7c81a619 +4891006444918b895fd13ec97d4b7d671141e0675b9d64fc751b5b1be7d4c3cd +3cb68baa7d424517cef3cf785191f4a927f75bd5111765e24f541277b235a522 +e5145332793533c93b0d20d5eec0e9003c78458c25eaab02bcd3fdc66ab92ec9 +21a35f23ef8bb1f20bd309738445653b35794f195464d641b823416e0d220ee6 +c7c0cc6d879fac3a5774bca00cac0e8a56c52c930e51d16c8bb45ac3f8fba3e8 +a5dff8ab3c4b4e44770d76111f22a12aafd300f11f23e14ececf8c0a8bf60b16 +56a628c6ec9d0e183c4bf8e631c9b19627bef283e927c5de83f45ab3bdd911bc +9d3ad5c70154474405171bf4f645225891fb70aaf0a01eb44ea1ee3c509da33f +b73474d1689027e4e65dd1bd0c6b0ac279101fe5f8a1f03820e11081c0bf2728 +cfe1b508511f26ede8468852f80f2394b92a109628c01dd414aff5ad2fe629bc +c5f8bc0f398b69700b270a4f8cdc53199f84dafe40f3a09b72e37848aadc2aa1 +24712f29874d05505fe4c74320dd51cce66def98b76fb1963b26afc1945b4c82 +d4f0e7ab0e8643b608fe22c68747cdcdede17e1c87753db6df06227377b6aab5 +903d757c6a163a3ea489cf28de8c37ff4fb81b7977912a1f86747971752e5ccf +5982a1b482ecbf33192fd3425c05210bcf500dcbb3df20abbb7f21cc73d18766 +41697ee8c0c57ad63c51c1aae8ef5cc81ddaab3708d95fc45b872ad35c26edfa +3bccf768043487e4680f108599ddf52a68c60d217a1bab253d4e3026b7221d8e +416c5f21f2c823cff8c48ca91e15e61a7e4d95237ff093fc3f17c67466a55c08 +e53f5793517a0f950040fb771eda852275d7430afdba83e21a41ca49682bd39e +00d6eda8dab9a1fabc00a0704057f0a9b152c4c5b8183bd019f4888410633d6a +fb6a93a024fee3c14806ea03c7dc494e53c49806ad9a2d27ed008aa63dfade7c +6141c7b3b3a3eee139e608a0bad9ada5f122610fe5bcefc0aaa6a6aa54d368f5 +5bcad6dc58b6a2568ef82fdfef18f5cc8e5f189cdf43423ddb4234745de64194 +9f85769c112dad02f50eac20b2c55c2a0d654e6e56d38ca12df576f2992b1329 +041fd3a18ce6785ac452ce452ddc21ba73de2e1788e9f4926d7912c66f089bb1 +de7a0328bcb32ffadfeda9edbe576ec37cd2b8ba64d88f7190f061475f360901 +dc5a626c9414c1d79c0071ee763f621e3a9fac9351bb34ac3cec3241fd5c4cc0 +faba3f4ba4e7416f035bb807e50873cd8c510d2d001ca449d5a7586e8acf36b2 +f34b2aefe1c19bc24688576d3e0a49c80fb529accf23e15f11eafdcd0b9180ce +d29d21fae667e384ea891c751b42487777c44df2c8f1eba14f5b2704db92c06b +abec8a200db7e423df225cc8837f3de9bd5d5a4713958de796d1dc34bcf6f5bc +93b81be2eeef5fe7cfa547fbf16829fd729cd7ee1e75b4908cf1e07ad14d4d59 +e8d4d8766642b7ed625c76f03636326cf78f9aa8aa744e49e392507de3335a53 +4fb823aab5e47c7fe40075d699a7056390cf0b96d8ac78cd85dd417785f3452e +66c1dbcbe1ea61c2b450aa97adb7fe84547085b89b2503a04b0c14f8ce0af95f +24a5c4e494dab9094973184060483c1a2b85d1ce1b9a82a626eac5c34b121d8f +e8a88097a902212e22fe263e797ccdf899247600dfa1cf69ace87ca22bd494dc 55473324a576e966c7b1249ef44b7b53323cdecffceeb6f7790ae51549d59da5 c7f94ecf8cba8b421afc55fd627b04ddd81618e05f84ada21e13d23835d054cf e6168843909f84c7a2cf6dccdc0a0b4670a83d6b440a5434d2e01aa9af41f61d -e9d134237b7315d4ecc6431e1964b5e1f46403139ee4f4a986ad6c44ec794016 -2cf261b770e40d61165f56df0f6865ec5249e2113b95d91aaf3f5ec5db468055 -121baa5e5fff412f85f40f46d10e788c14e841a15cf571f721242dee6cffac0a -9679c2b2e05b13e317709a23bfd5429762b3ef92f6d3d84217444dd1a99b8217 -b90c582f4030f83144dc7dca84bd87ab8bb4995828c3acb8cb81cb91f0204689 -abec8a200db7e423df225cc8837f3de9bd5d5a4713958de796d1dc34bcf6f5bc -a22cc7f6ae35ae45c24c495aa46ef64d0c2b66a914ce7c21de38569266f3c7e9 -e6dadf2527a69744447b12927ca0a3161e819398a7bfa5f08bf3ed20c0b6d014 -d17c2beda41c5e4d75813937ba1562d7c3092855711b60a476ced4bea19daa1b -8cbe833cd2e0cabf04a7c6b2dab874253ad1caa1b1fbd54e0f797c622486248b -9608843146ca38d716f36f79a7e137c18b9b2b1cf88dd7ef189e5fd93553234c -b6f2429998c10759d7a63385e50565b0c2316ffe6e4b51c29c0b010980f1afeb -e53f5793517a0f950040fb771eda852275d7430afdba83e21a41ca49682bd39e -a9447c68d4a3db76925058721bce734737952edc8d836a78603473b5b322e7df -749066255f2d3a2f1409f764c7c8220c96cacd114b3a693c3b14a6a2b15e0385 -1f908190610cf904552c33c5e4c384cb5adf9994e240973824c7316fd1b12528 -93b81be2eeef5fe7cfa547fbf16829fd729cd7ee1e75b4908cf1e07ad14d4d59 -897967a478729fd11f19fe5d8301dfb66eb32bb8687c13afd7c13a78f23a5531 -8f2bea76e84bbd50f2653dde51904cd9ec30fb30a3cf7ce63c8117e66cb1e42e -38320353b8dac12d5dcbf91a1b36a38f083652465424c556fe3791ab090b2ebd -1e08b4da220dd0fa4aba50feaf5c2c7e6451da2ad81fa3834300efd733c036ab -6408aa26ce074c80a744472a2d45f92a5dd9bb698d09894c166ba3119979e9ff -905c1f304ace286b3eba316810cd3e54ed43aca9162d8ab1749f15fd6305edcc -d773020f9d2824a4cce3b50d8de0699498d9363f9d60297d0ea4cd7567e1ad9a -87a018d99d9c8f83fdb33c408a5d68c532eb9c550878994942cd11a885f6b636 +950dc7a272cdc559569325c25bde0f9407c18aa2c4da2c56f2d9cb68fd1cf1c1 +fff5fcaf7a52047be6ee64077b44aaec937275306033b09ebe03a8a6e85817bf +bd2085bf1bf0c90179089c4cfac8e1f57c59e2c03fc258c4dfac808f23a4d88f +caac504295c06c09246ba121e2902a0ae44354c4e96af29bab4d4918fb57cd4a +6700f7bac64ba80f5845856267dddb739bd7fc4815e205a41c8222e9abb6e9cd +c655919f90fdff70682d735adeb0acf3b801ee718206606647e92f0d9e5bef23 +844180c0a4f8625627a583a4eecf22bca9fca008b9e6ec8e22fb01b677de87d8 +88877248b629da0df5a8e31fd0d1fbecafe48a3d1fc65eaff141ddd9bdb3361a +461570b1d4894e0eaef5db795ec75726a0305808104be67e3022ac55eac6159c +ce2e97ae718f6c6b5cb537b99b511ab73f5577cb52ace204ed57c5971143b441 +55e2c2b106554f42fbe3ab601b74fac94d6ea07834df928426233bbf558713b7 +d7d0f5173c2d2cd92f96978b6e462baf37b55e24bc46cf485497e3b5b8c59811 +f67dc4fb5cd09c2513b293727f428cc5e87510431ec94fed40652fdaf0248673 +d15229547c87b42528ee4780606a14d0928dd0328142e5f3bdd924b8fb6ec7d4 +ee1090a4c597e3f5feca0e4516753b0266a5552f34336579540c6f9c8d863caa +03ebac2aaf222d7332789dbb1423e3869edb30bc3760f6f3669ccfd3cd787677 +5b71faa9dfe326cfca20c3e57f1d8570365f88fce2f835e8f7a8ddbf5f6723ea +ed8c4e7cae43bfce7c0fb1b5651c34110a08d7ea51a96d5cdd8a21d6dd9478fe +d54f8f64da628450848655afa5bf68b874909434064a19b5e534cd4790e57ef5 +b09e35107e2ba0e49bec515675b144d8870aa7f3e304384ef1356d0aadba40d0 +b6ee205092cca81398420d74124bd62d493d6514240fabeadece7eeedce133d2 +df64016f1686c2d2ca0db01cc59e9d2d70c449633199f0c9a9ded4603a22a2f8 +c6ec0ef150433414fe0aa25d4f9eeaa63a926b13de41e7c0689f737409100af1 +5273f51ca9d8193d91172ab050fb1f21cefc2691d35973cc04231456e1ddd418 +120c5ea29685dc1f59d6fc60d494baab02f5ecd31835f70e9d3fa1acab230cc1 +b63963dcc7976de3ee8a2fa4e9fe2af0008d04cb76d6c56abe00e07b388e4e48 +f1159e6bf0904cc092d0ddf098dce395ef760f3ccd8a41c475d8ec42080fdbc8 +d602b052b18af6e2d715d5ab39fbba754a02fa138f7059139caea465ab37fbad +e4e87ac2beabb8a8b8782ffc6971c41ba8465bb0c4b3004f18123a31bc08236f +d55f5fe8070f399887c98bc27f29827bba4ec26f158ea704e555eaf50e0137e5 +d25938359f998563af3cf5377af5aeb60cd4333112a1ca5516869ebe07fbbc90 +8a843c2fc2db153123d56d0a1d7c2aa2ec0552aa0c9297bf1d2756404e9348be +381e7d018f74d95bc67f91c3b6e85a7eb6fe5801c221ff20bee127528845c265 +e20b79694ae88509bfa5f7a20bfee10e79ec126b3ab103df4656e6ff6ee07232 +bce2ff8528e17fadadf3d347949fd531672126d57ffb27c1ca869f503c9b2135 +5676b21586b3da13f1f03642a5d4d6eb502792bd1c44563bf6cd59b2737e7553 +021f7fba0b72b5f3d31eb93d06ca0f8cca35f948798e133faa75b74047e8c180 +d647901bbe0cfcd4cef8fc87b6925ae88e9f7e501441077a47c7006a93bae1a7 +71531db280f61dab2c5d70bd100850b5b348a2fbaae8d488cec04339d1262b45 +f12fcc9d8b0f8544e8e45094100c678d32d842fe91c29a9f0f6e187ef7192a1f +42fb4252f03aef5d460299d694eaa45095482fb59282600c4095a9fe3aebd2b8 +98f4a1691f83beb110f3bc2b726e3b4542a3eba1116d57820de95393f93cbb21 +2895be4341ad9dea12c3265f71e00a20cedfbad75856b20d37c13b0d63dd7eae +4698904a9d5e8e35d1875977a6c75243bc895d6efec907108beb7916aee6fe9c +045ec692a5694e0275016b0ea672db9561be18db0d8f720fdde195b7f95d512e +80547dc73a2729ea79a000d5e5fdf384dabd99257bf46c91cb24a577b33374fd +fea9879e7da3c571ce7b413841442c9d2f0ca04984cf23177c9cb9c52f801c58 +ee2f6b4b245b84bb272d19861c08c795ddd66bf08428bfc389c5aaaa4adfc07d +fc75eeb010333a7d4cc49e7ca2caa58923b1e1eec3ecd0a8fefb878b2cff45bd +e00e93dbb808e4912e4fd9c9227f41fcc7ec70e684f30f8fe9a9a1d36c8b0733 +3261ea87aa7e8d461e6f7e8d0b1e6d5418e1ea542ab21472eeb0bc2c997fb01f +b935f6a4cc18eeedefb78d3498ec8b4dc6bb61d038b9df282686d09f8aac7d53 +7dd522ef376dd0e96306abc1be6e1ec4eec4695fa380f30a7ce452cb358f85dc +9b470b7033ec2ef0e9d4d264c5be22c205d0a528d75a6c03ff2af481e0b33107 +1db51a96fad880e9ba77f07f28b96172f84915116b4b5c809bd6d1267488f4d3 +b73076a77722f691ef78f4198061dddf6572f95eaf2c45b7a724b1808bd307bd +39901295aed33206b618dbe15dc11caa383b499ef9b8144c69f393558ec81744 +b88e1c041fc748ca4fafcf5f31e00c20467f1130462d9e01604d20d00aa6fe8a +822828130ddca55f7b943fcfe1bd331cdfe357430c6d8d1292d110bf44862661 +0922b68bca7566feacc3c1f70d8e910340c509fd4f7234d7c4bbb26d11d304bf +22fdc216dd348375bc6d3277761ad26a9b2754c0bd300c119380d6b849efd1fc +eb3e29a4eb5af8387f80fb1bfd7799af6418c1243d8f637035cc6278a35d2747 +c1ccb2e841f110ec639fd46cf287648e11ee0da44de72b3e2cebfb2f67e705f7 +5a783ef98d4ee4575ebaca024138aef3455642bc44aa85e663ff16ad0fb95ae0 +5ff0b645ccc18f67606b99d09bcf24d1177d111c9bbb2f57b0d215b5caf9bc85 +01c3f0d92f56bad0fa7297e363253ce91afd9fea6f4b220431b1a3006541882c +8495c2d5cb052e421ebe71928ed2d389c24020db270a7e72363d4702b32b0d2e +7df3307e84b5aae70c7244624c4e627e19eb810f4990be57cc02349263a0026c +a62ef44c94bde81531ec6938d9971802c6b01492bb487d552052ef83707de93f +2fe0f577c3bdd5ae66ab06b97092334b740ab016de1fb629e2c7a94d4d967e32 +e56ba2317814226cd32a8ba488550afef6e5a44361697f125d889458c238701a +17af26a0fc638c9153a57ca5357382d28d7e8f07f67ff02e9b5921431d3957a0 +63ea086abb5c4fc1ce57eab83104666136b29f41c7b454d12fe6eadaa365371a a66a23b610e7e51079f6d9f522ec9f6df279e99bcdc922a55ca043828edb9b0a -8856c8742cb8f53f03bba5cfdbf6a0a871a6d5e5608d73a47aad69ec45ba1631 -2e5dce6430ff0854db8fa0cb34c8eb4daf12ca8e51da8de9a14a02711ec96c92 -6be7a5e610ad76a763eb69fd4eeecc546b1a5bdb539226a73d857a2469d5f0b9 -b2bf524e651095a0c04adef422b2d979a079dc64a45b9e538679e2fb06d516a0 -0e8dfbe308483b9b6397f3e773313be0dfd1533a2fa613bc09af5aaf872fa816 -ec89952759c2db1bb7ad63f54e218cc20b5251f1d20784028c89f92cecbc7eee -59e6e8185a2ec697cc254fe507d4381badfd130081ec27e382437fde1b96e7b2 -3dc4a2e8b72094538eb0c76004b52fd0932326ce0adfa20685a213788b5af607 -ff8209519db4c18f015cdd52200e7dbe27a0d8091df4c6e711b6192549f14e66 -23c1f8ca022dff9e586aaf43743916b5cb5b45d505ee995b55fa14560bd22516 -9a73611a2ead901874359d3110e525af13b59fcf2cba9256bdb6c1080b2ee34c -b6844a6f003d20f3748ab1243f7a8fe10aa2638da7b690c705a9a44eb716ac93 -696bcce1ade2f87a0690541f4e4e49a81300b98fa2b5505959c9b15223af8248 -8364be172ce150337eb679b9b34a26692e6feb02af1546248613bf2e36150769 -a756c7578e7c7714bf306cc5d18847856df650b635f08e2dac52cfeae828a2b2 -ae093579f0656707564e77bf66fc8362ba2bd9139120dc55e686e6ec7c5539bd -927a44fe896ad089a853dbe41bbec352e70091fcdc56d1661ada059c2b29f887 -05d4d804ecb533a1c9a0ab8c8a7289b0f4707afa603e4956b88e5de047a4f5c9 -7ce153a8e9b6e5c2edf91fc7166e509122d817fb1eee02eb97f9ad78af8838e9 -b6bf3d7f8f848e05bcea458fc0f78cebdac333e837aa0edf4a016504468efc20 -b4c84381e21e3c92542fcd12f78a0f8256d7c872db269cb263d7afb9ace6eb31 -04a81673915824914d8cfe04a6e6b3089f7a5ee7cfe1ec22da44f0d5370985f8 -36792858fdc8f06037ff810c96d9b27de081bf5b2586bed7490ef219b04f265e -8972ab46c5c794bfb7db4e00f68584fba246e838b431a4a84f10e7c136ab3d16 -38d6e8570f385d2bf0cea6d3e3ea963a00b74cd1305111f7351f6f95cc830075 -6f6ef4b81707e397dd1a032c3c3537b3bdaaf83f3d9e1360e3e4d8b273103b13 -2834f7559dab12bc93227ed3c027b3386186b310a77d8f24098a272dd5c874e3 -db8fdfef803ab67034b3208302d19e1a4afbf38ba4a7c3e270a8bb6de37265de -f930414c753569d688581c391a5c4e41bb5e43c829ae94a031eb36a7195940ce +ae4283a8eac969535e1beaee23a1ffef309b08df04c3eac5f24f3385958a67c8 +cd820ddfcea985d1eecbcf48f4139e934bccd849fb1a1f1a225908f1be097ba6 +45226dc82b41a1754b1ce1f18e264f447d6fe8d7757d12d601938906965f58d7 +66cd25d8f7f77441d2c57e8bb3ec0d9ced98a8e54b6b107dabdecd98fdcdda08 +4b4a5fd88c4bc90b87addec6f07175323721de086ada49070af69ac80d5e2e82 +8c0078b31019640c61301a28dbe9931d449ae82cdc72b16f25afe678d0f7fa35 +2f26ef45203ba477bb9ee38be0049d4b794ac169805608bae95ea71a7b1f0d71 +b3598df24340bca2767fb5cc23949a174461015e7ff7dfd0fb32c8eaa0d21aa7 +f366961a77955c9bd8ec42a120a97b0e798417b53517e31d0eaf7e8259de4e72 +fa4f07518e2407aa364550fa344152b424fa0eeec4cb9a1b7eb946321ea1c5db +2aa77a090823b10d01e1023ff86c2577f23af0b4e10abf5a2baf069a606707c7 +21aed7f6bdad94bf02279e528f53c49a401a1528f79291cb7f8da7d544d1e97d +935c8162fb14a2e82ab4e3e2ba0d136506da3dabf939f6003fecbc34376945e7 +65775d2f215148ed213fcc5587d35e09a9561563e7de65a08867e7da49245229 +81b211124200c2b3ec489e6289ba20b3cc928cddf80451b8dfd902a03cbe5058 +fd666abae3f3cd985bade5b089391c6547d6604eff3bfc779c03cea5dfb7f688 +7a71af3b5fc9aab773eb25cde6e21b344608ec7f1db3664e1aec04e97ca440e7 +5016303f5807c16d2228e13f9e46eff5fce2c138d7845b86046b4ea6987d9f7f c016cf9ad8fdcccf33a39eb7878cfe6ceec4a716d4234f47562d99d0cbfc026a 3c9ff8b37e02d2adefacad4c319231203f6549f75dd0bd605d432a6a47d57922 -63ea086abb5c4fc1ce57eab83104666136b29f41c7b454d12fe6eadaa365371a -b7f796d5bb80286bbbe41f963eecfb5ab9dc41e036e131abae09789cde8582f4 -fc206a8e0afd37e8458953c6a8e35d9820cd233c5b8a4e4f63e10023a37be64b -a41a28f7e42bdaf72848ad408e8c6d2555275019d3a6391f24f54335b202c350 -095fba50cf84cdd4f4d3dba6ae9ec9b06148eb46bef19029e1471a19a0459984 -5246ea08c3eca4fb23e14d1d2a040fc55ea7834223eb7d235b2d47eb950f5574 +87a018d99d9c8f83fdb33c408a5d68c532eb9c550878994942cd11a885f6b636 +8856c8742cb8f53f03bba5cfdbf6a0a871a6d5e5608d73a47aad69ec45ba1631 +2ebec5ad12c46e226578c88154097977cdd7384df4b47c98ae1b5a73009b8d0c +9d175467aa29dd3b5e8728e15a6de49b99b762a24fa0648fe57604e4270675b4 +6bd1806df951cc6074b1c1019e3cf27ab493e421bda830ad54c2965badda0a2a +a72e8cbadec2b9dfc5ba8fa553620dd13e597c1094dbae865b122453cfd27c94 +c94bc2d1b33fc6bdea57b3008f25f3cac75a82bbe644367b13391ec6eef37e93 +a97ed1e2a1279358e6456ece5bba564455f11d1ef0949fdeaa25168b377d7af1 +a15b8655f56da3154c8420bbd3f38b03abae9ca95ae22238b8906bcb85d6e545 +63aafbdc6470b5288f70b3ac6063a59acb0a88492f2560023a4112c2a77f9795 +cfb81afba1a930f28497bf4b6168868612c220b0eb356ef17243f0f522af2b8d +d9bd905c8dd80fa063f579e0b8665c85353ad28d199052eacd4b79cfe233d032 +7ccd9daccf569a6016173298dfcf6e74a16b169b68599a853f19e516139daafd +6b6f00940c2048e1087a6e3954929f5bae1be3e74af0e4d67c16c7645a588105 +280428476ef9fa360b6e9334fc1085371a6991a8dea25d21c89bf52303d4ed27 +5e92e851331bed72c2f071622f935b13bc546052ab6bf1d93c4bedb1874e4ef2 +9acbca60437a52735c17a2f6642bbab45a5fc2248d19dcb7e3a61ad061e246ef +cb7602a69a31ea6228d44e8de00f25488160ac5be7e893468e3ef6f6a5be3a38 +d9d3b508ad5c2bd3aaad9a141b7d3c7512b01b9f97a67109e8eae5e406535d9b +4cdda6f7076a26b5dd63f5eb3542fe151b7266a8f79620d968b33a1a2694e2f3 +d255c2af6fc2897d6c4c4eabb50a8414e173006e9f9080b611bcfbeaee826303 +174568b0887e4da8e29ee0865f208791e813b1e5968c922bdaa6c7a49ed36e20 +a165a12860c2450c16f4328c28d018b9fb41c42cbc498cebf4109ecfd2828e72 +da34d3d8cc0268ab89016204d52f4d556510de4f136f27e67b01cd9f782adb47 +ce5182f11629e431c827bf6a72ba0974d6510ed12cde60901ce079f4f666ca27 +364ae47222dc0f386a8ac92450c00e661ba2d9f5f3716c7f2537d48df6cf016a +ace9740a9f9ded55e044c49947b6594247a72034e1773faa820fdfaac84d1444 +365d15023ad3cf01dc64efd7abee52477376594bf13b9cf73973fffeef536dd4 +b94771d38835fa037b5f1b6314c96be80516b3d31522b5734d239d9348959499 +cdb48ce1419f0ff4844347c039219f81ee34c21a8e14f5d1d8b2459114c11ea1 +bfbaee3d514c35bbcb02769a3912d98b9a873cb0a78255809184354cc429cfc7 +ceb2038750e3a6026f622889e891579d4d24e91adb4c5ec9ff12e008441fa3b8 +7da5fd597c97f37ed5e8553ac7f140ca877eb6a4fbcb351c3d070996088bc4da +c5ce85572cc2bc159f3ff3d2bad5546fbe3705a36ea95d1e27c9a70195af8517 +8c0c61e66aa62b5c851018f2971aa32ced258ba4b68ab2a6d63c770f787a3e58 +470e4221ed1035f2a001a3570f0c0448c325308963e5c49b630e1d7b0970d532 +5f6f13ec777a59b17791c8292a15a8b0ac48865206eb224c6edcad18b198bea7 +4411171fbbe196094e60c70589d8212c8a03f8678d1283d428f0ec49bacd9233 +45da9ce932d5a27515b5706ae3ccbb005ac08efb276a9f4e49becceab45aa940 +b8ed2ecaa7512a086403c68e050e027b596ee941f96c433a92b8574d664b5184 +779a5345eea3680a5f485fd7f4afe55f8bf09a8f832f68088fc095e4dfa1a490 +6ed40e63e886d5f8409c468f1dcd94a60ea266f813270e1ef5c6fd9f950e32dd +9b94d7014d1ee3ceaa69c9b10d76212603318deca6ae13c499540c057aa33b56 +5a59688b1cc209913f15a6babb28d95b939c0a0a64b778164749965ec39995c4 +d7fc700a746c511fa7989ed994740e2c6adf8177df4c47f6dc5eed9af7976ee1 +ef200b36c2008e9699130d073a87ab0444c5a5982ae22818065f4651cf82bbab +8bfb5bd6a1da16e1be0f8089c9d524ea3b5c8507c82b80242ee129d35a14658d 7a45b4b656d182cc8074f5e80834354c36247c29b0cef6b3f0abd61ea8b4b11c -319ab99f5daa2548652043db0a2e53198ebc29b80aae4b0b88e1ebbdf4cdab7c -f7717f073832af434ed4623dc485c325694e53a1eb443739276518c78ad32248 -0031da6252125a1199f740e3c90c45359d27c695c6849e537e4173dccbc9e1e4 -0fb5f6a27d1c71ad4c058b0feaf60946523a6092f18f658efd3ccbeef6e9067b -0683ac705a28e52cf290a07d9572bcb75be656e8a83f45666d2dea9b7241ab76 -8ecd0e72a2635db88210e864319cbdc01703efa59ea4cb44ab77a5b096980b80 -f5ae995b6b91f3f406a8fb25e8f0e4c7a9303298115a5755434576bfc1770b32 -8bb0611bed8947b3fdb1e2447d01aae17e1165cd56a154d81e13d45a390c3447 -88b77a44cbda3eab2f16e5e71712b6c95e90a22d39b305075d44186adb84ca6d -356e79b2aa8bc3449492dca3e3767d52abe4493c93fa378740de2ec43ea077e2 -40a69e4b7f733b8e60cdbe2e7a5b1fbeef864f1ad7dc821ac9210414fbd6c485 -51feeb2726169f2a5e2826a3548246bfa3972cc4f862ebd7d106b0c847656d49 -17af26a0fc638c9153a57ca5357382d28d7e8f07f67ff02e9b5921431d3957a0 -5016303f5807c16d2228e13f9e46eff5fce2c138d7845b86046b4ea6987d9f7f -f67aabadecbe6dc46b1897f2045b8f06999b7442cf047abcf901d5ca778adef9 -c1a25668b3a665e9bc4eca605bb028355a9edd8533f9af7db56595f93fdf476e -cc9f421202086446002d6abdb57d7163666f98233995d6ad6d69e0c75ba704f0 -381e7d018f74d95bc67f91c3b6e85a7eb6fe5801c221ff20bee127528845c265 -542b2f4401a7f5aaa3781aef83889f7f48f9dfb3eefe6c8b51ab1f37ff916735 -354432c6a726ef3697f5df89bd938ec4902f6854e0aaaf5a7e030a1c1f8a9a96 -cfa9e00f6f298bd911857ea037d09e2fb42b0a5145452ade9b2d9b8464ebb6f8 -4ea7ee648c9d55fbbd37b8ecdf6368ca095e3b8d23439fd0de17b23029ccc470 -5d700bf1233e052b1504ab4ddbfd13a8bba907b9fffe16d1bae172e90e4dd680 -c80ffb705968cec17279f13518fd7a673dc1af8ca8482f7ac7fca67bad58e50a +9c3b58309b3cfd129f6f46a803732446716002f5c51b5784d10a9b7bfed4888c +9608843146ca38d716f36f79a7e137c18b9b2b1cf88dd7ef189e5fd93553234c +7f91eec3b26934d7add813437122aeea8bbd34f6003ec520544db0a655a2490b +01e1bc3b0791e66f7b6f67fd0cb4572f33fbe9ba79dbc8261696d45976aa8698 +5acc8d0d01a087bccf76d8b00e2e718cb89a851b9751334a4570a0e7a78c43a1 +75300adb34e13214f0ef195fcec89295d26eab98b457091ca12d0ceb8aa00d32 +9f417a32dbc3cb2e077053f85d7dc0aff7d706f99ffa1a9354ebab33cdd7e94d +c1c0e93e54663673f53a4e774d8d6b6d79199d1300731ee2250fe6cdac5cb368 +fbc12bc889fb3d8150fde2311baabfee3fb762da5021d852fcffe7081899f0e0 +9eb4324ae44eafae1c214f61a4c883e744cd622bd677024dd7214d36c263b5ed +3c46e1f7a29a8cd6df966c1acfcbfb07725908dda4ae7c67daa3b79c4562946c +ff3b31b767765ba551a4b150a76101060c2fe2c2e9bb68335b505313d4b4bf49 +da9b42321867933ea4d5d3829dc6d26e577a11d1c3bb08972b1f036129ce0962 +0eb252c01c7a74e104b664fe14a99b6d6fc4ef5b9eb22a4deb6708030bb993ae +02f6e4c9a41a5203552da8b7fdc135cf7302d6e83079b53afaf62eeb3b25f59d +29064c4d131a6ffc8b5143973f9af28cc2ff85a545ea9d498fd740cad6a340db +f930414c753569d688581c391a5c4e41bb5e43c829ae94a031eb36a7195940ce +482fd9128a281f14c6213b8065189a7f9a3b68da0716936b23b45976a4364c0f +8d423895ffd10527bcdbcd8bca0468716cda0c5a6fd8483e9dbf4e5bc6d5ebd4 +5427596611e73a2494666e337e30fe00a1cef14f5517a9dbe62224f3cda97fc7 +66785ce5a8d57ad364d8caebea4d44777f6f6d98c9c1deb473f09cdef9048d63 +e19ec8ef252fb24a7f74466d93d7544cc5bd017ba084a7c6671a14f174f8ce66 +6e23730cc2bf817dea1f097a519c6c1605f51d7ccd254ce7f1182f9c2a0155ba +14e3dba3758c1ce86a93f7b93a15f5920f3a88e34776609857ca3c1068ca24ae +59e6c30bd72a3104d733fb2d197dc911f020b6e096d461b0da9af0a32c0f33f1 +99b139a1bfa3b50973c882be74108261f201cbc20696f1aca4dda3547fb83628 +f3669de7875dec76e286e7d6cfc90751e7e88a9faca280c0ac94d73e71a80647 +d55aca5b4557ee675e81889d1126530759a0d30820b1bf62a1eaa3fbc30ed56e +ab58465bbfc39244fe92a6b13ef6479fcdeec6cb118038659af63a8218a53cd1 +5f46924f2e23189d6f9481e1f718bb72376577e3746509c9405f49a37497493b +d7bf714c8bc5dc285e4c5555c9563c5ee1c857863ad8810773392a05e249364e +e2042fa7d7cb4da795c38bb17b76bfb94965e0164c0930362db0c28bc06e1fb2 +f2cced87d8f89e172229c1bab7650b87124a8f7493eb9d76c7ea49d056a07b2d +c4fca7284be57bdf4caa683c351f214654c137bacaf7bd0a6cfa966f605a7cee +afe05592e2aad56bd8e04eae47195187fa54defa5c3d7264cda0733f64e4c3b5 +47eca767ef1806a13b3160dd02a4eab001b21b51b32bd7dc9b49384f168f9354 +4a50886835d6d59d07f28d08d650b3a691ecd74fba087c182011bb969e01d01c +c85c0199ac0089d5c701b32e0924a34fc2b9c1bd07ea4d905b9219aaa7adff61 +f3ab26267ca7a03dd265362982db98daa7c6e0aee3e808ea089386a7a8312bf0 +7046f234639d52b16a8162be089659e1e64b77038537307c09dfdd2e5de2b2b9 +9cc491797d5fa756094e953f824ef09d21f7db694e6ca95b44429e58ea9cc1e5 +ea57b6b06cf20acfe8dc444cb8a5684efb0a2699ce91f213fdf85784d8d9f9f8 +57f115bb1460d42ed38bb9cc4e167fa41895256c739c1e9d57b26fd32bb8329e +dcc34853771f1edc6c43fdf08fc89266735f9dfb19ec871eeae7367778ba2cae +c5927770b7704c09100a47dfe7601886cfe749e2a0efb751c809fde69a7e6bad +d9adebcf8f0ca1350198b597ba38fc4fe565918ea1ad1b9dc71e66396011fe5b +396e5b31ee4c56a7080808e04f9c16deaedb9e757575657edd2236a426797f0e +0c7694679a8a9c9e01797fe6d50b205f78bfa08c103a6a071f254f315202a472 +8a05f652b44f71aad20f58a04644f00f6ba6c8426d02373b841740cedd89ab9d +7849853cd88485833cb6c66a85a549fe315b5029a624c5b3f9408e73783403d3 +a29ce83ebb869439cca17e8ab0a2c2c46ed4ddef68af71b09f2da49d45ce34f7 +ea1a2c226edbd132f7ff4768fc4e43eb7f78719676e26dd57d187817dd53b853 +f6c8576710217355c82c12e3a474a0ab7424845fd97461db0a865a763e7bcdd5 +751ad692b11556c12583effe3a744ae8e3a65f21b5f3c4bc24f4b4e4dd497196 +2a22457b1e2830b6338a9b573b4739a3c8ed460fc71b5fdf52027f24e90cecc0 +64eb8c24f9364529b7f62990757840bb418ec5abaf78afa90542003a4a22da80 +c0252a0d11028647001beffd1d62c42900c47169c083d23f94d4187756a07563 +623beca6a69c5fba9d31d49200b9495e2890b57075009c0342f4bfaf5f3a47a4 +9fcae54b8ccaa3c00114513bc2448d11b1cc8ff31f3937698fd40cc221a09663 +f6688172613d08ffc52e324f13d1609fc2e28f9ccf3b3a427b740e4ca9163d2d +8971146d485d0f4d74624e51b16aa8adf0ae3d1a5ab999e76b8fa1e573d6de8e +9a82462893ba03430facbbe10da9bd40ac580de81cd1cc1481e2b12040fd1eec +a109a097255499032f8e99b116ddd7ca99f096996446baf129f6c2df2f3f751c +f916591fdced3e6f86599662e46965250d7db1fe3a6bfcae64b23ea1afc10991 +9008c80895976491b9cb22afc42388886d626f4e45d2e78ff01a7fde4460b4f0 +c01e9437a83182bffd2b2f2fd7b66bba0b7410dc475987a3fffe0754cc217a26 +c13175c938e3f403e540909a5e11b4d78388a98b8d7394fc098b466d8cd41b41 +eb19d975da3e1a7b398a98f6bc0255b11e5a44c7305bc48ddd6f30afc357582c +b03141821bbac69485b9160261019aa97cda2e7c0d0580e0a4cb2a06d9a78bb9 +bb0c45fa302281328b2e3a3c639f127e404f424f05540bdb16104287cc6d201e +2829cd35adc5226ca37e0dfe5e33dccb4d444e07add3662505aea5a835c8464b +38bd56f192cf929341e20be9bed44c48eca5f8aaeaafea93364bc09a437924d3 +1a73b1a7d94b3e65292bb543e9b89889f8113646152219b2d096809a87fc86bc +362769bcb7846c3278c5c3a012a34e73d3ea6b75c16f0eaa43ac2767725c459d +98425e9199000c0dfb177e3f0d718923763ebd4807e772eca895bc6768b72a35 +4ce7091f3009fbb79ae6a32f6c800b775967dfc6098e6d7791d623a9deef46d5 +b4d5b929508742e1b1d80ec182af65aa9b3f824752c719f7f868ed122ce9a671 +dc630a523ddd69bba1395e8ae1e5c5e09b3bb840b732ec77cb58e0a409f723ba +2f7ac1a687be06cb1f44770fc24089fb71cccfd89d600324cccdee8185bb35ec +c68f558f43992d5d342c75ab608b1d7aac0c54c906dd8f828082b78dbbb87512 +ace7ee2696f4233eb9b7be1fc1161367ba18e7732a6126c761f826a021020bcb +d730db24faebceaedfc407e8a5a8a6217fda4123ba2d73ac48ba6387695ce65d +432b8b381e70611b52307ad0d70988316ba3b554080e4433dbf749b1f1378533 +c0d75845b1b21b6d6392f8fe8b7c386aa79d78f732df7d5d42dfcafec965d7c1 +8ffa91f2fe706360ef61524a7070376f76336ecedd9cdda18757db84fd09c3cd +39319f2f3bdb3c8439ac3d98f5dec67e2627545956580d39be424bf0c3125480 +921b6972870e18520f1072d0f20d7cc4d477574539865b9e2429d8995bab8bf3 +3d41cf85b32a6bce7f766fffe54d399be503d7d4310e9e39aaa32d31a7831817 +58bc766d3c2b53b2ba809ea324a118f3462fc9b31d6b0c84b59a0ffa57b95229 +70744b835941646b11baee6a2eee6fc8d7679081647860804f51166eb9081942 +d2165a3dc4f46981795609d095fe8b2aa8af73c59e72c3c823c6cb330c878375 +a2c0d000b692661825fc5675ecb1d21129e48507d85e9d77b78b6570609c13f5 +229399c8cb0e5809c0e2c61b589d7e4a6ea418ebb78e13a7f3246619c9b01fda +5c37b68c8f8023cca53be56c331f26e8e3a15c1f71b03e90ce8a10b5e3868d7b +53367c9fb5e503dc2a026bb2f32ffc3d83d594cd35b5489c75a71c1bf0b5576f +5661402eb416e30e22d780d5952d53c176c87593e59c6a762b917f50733f3d50 +27f4d324cf382295ec0f2e7b4a68a809091247f7818f82f704e9daed8fbd759c +dd6cf15cea29938d2858d090633276a985b5c5b946c8e79d508c486c3546076c +bdd5c8d0c2852b1cc69816e8b475fc0cc9dad0725ee623f4d3cd88cb106722bc +d175178c5df2ee708924be190724ec5f3bf7a34395a42c8a473fa98c67e5ab29 +4a3a7000d6c0420732c0d2723155a7167661361c771f83619fc8dca8d2f16c5c +4f061d9aebcfa8df098ed2ea7060eff01aae92099cd93b4ee49a0026fef35952 +042f4525c7afa81c7f11bc0687ec919ffc82e6f30aee26f3269fb8afd73d3afb +d1ff1fc52440a62586e14e94a6d02591e83ce92d39e142c72faa7385ee67c9de +3b9681e3c166773d2af66da2e0ad4ae3b583b7d1c796f3b8fc1f33f5b13b43cb +0fb3b87042b3b7f168912927b00b155b05201955014afa337b1dd6cf65917a3d 87066e286356b7fe565c089ddd872510fcfb771d0bc8e090afb155743db0827b -908f32cf4db4d6f57cb4648627b7e0fdd2fb570ee190febb1e55c5dc951ec361 -470e4221ed1035f2a001a3570f0c0448c325308963e5c49b630e1d7b0970d532 -b94771d38835fa037b5f1b6314c96be80516b3d31522b5734d239d9348959499 -cdb48ce1419f0ff4844347c039219f81ee34c21a8e14f5d1d8b2459114c11ea1 -04cfa7237e4f3122190b8b8dec28ff94a3d00955c77d1c1d4cc51537db0afc27 -5d203e1faa69479af10ad34a9aacba6d9ced6b03f3a9d934ce30554c335f60a6 -5f6f13ec777a59b17791c8292a15a8b0ac48865206eb224c6edcad18b198bea7 -4411171fbbe196094e60c70589d8212c8a03f8678d1283d428f0ec49bacd9233 -c569c33fffa67e7aa4998d74fdf8701847e17ac3a0b55bb1672d5196e98146cf -2ee04e2fb0c8aa150e523fbd82d065248289057a3ffe946d751105aeea3cee39 -1e991c6854c4499ab7da19f2754a355d17a2c978816bda6a0ed61aa6af9ad04c -6a2cb03353b8b417fe11f7fae8d01fc51d456ae99383ce76980981b6ee8a7f60 -b446a4e6f04aa5782dada0957b6367a6222960364b8b627df23cd60e8f74f3ff -c5ffcfed21367f36ae6e0f2498ad2fbc8b468f3549973edbe9061e73b2591256 -106043e339be2d1875f53e1510712c7773c6d85bacb806034bf4ee0d6d7b6b76 -84df2c3d71d1dae9f957b06e3b14132eb8b02bf4fab6ff3b00d60295276c3d82 -ff4cbe61d1509efea59ec719e1e373381e8506ba45f30143194db878d7f007be -b84be88981bdbdca09c94d8b037be0aaa59861965a097e2ecde9c4e23ac154c9 -4a86991d9eb0d8533a92cf5e135b59f0d64bbe4e66ae7382a16c74714d3ee33b -cb6956e264a5fd11c99a08b537f9513a13a2e3412b031dec3c01c45d1f7ed667 -4147526b3e1020ce01bff062c83eee439e4926aed7b3e9889d17484f67edce5a -1286458756197647e666f30b00951c4b8f9033c3f8708659fcacb9f87c99acbd -a657f12435c3336e8def2c5f2f5c5a9fc2b7012bf68922aa94e0eebd488c4283 -6c1fc4b2ab8d7599c9f7e055bfcda026555cd2c791ee66c7d44b5b2b0647d4f4 -baefc8b06f7965221ac8f2ddf3c73c0bf40d297ef34ba57fa9c0358c8e83fdc1 -bdc84807b41c22bae70216d341cbc79e13a5258ffe518248ffe32e6f6cc54426 -850a93d11a35c42c331ea1118385dcecc91cc7a14dbdeb362d2f0f7f86d362a0 -842c88684ed2da4e7446839bf1e2ffc71b202e31a6fae8b456ba1afe1cbf4de1 -1e8dd11dc725fe3f65f3310412b9d56e9d8081609aed8cb55bce973cd515fc72 -575996b053ef583b96a624e9b3bb2088392bb97d5b9e55a5c1b78e54d01ba157 -e8f453621d9c0cfdbf7e2db81d20438edb164556ec0fda938c10773e8205199c -99ce519cfbe39d9910bac61c05b13d3b42f8918905df146cc2a6700d528a5b4f -e6278fae46b87933a015183d6a9f7375e79c3c9d53f507edf53be779bdc0cdd2 -7a22eb14427e9ea2e1bd93f49084f9895781f066c387de1495feb2844a4287cc -cd122821ac60bfbe6414372ea6222629aea084875647824ef2962fbe9e9e008c -930d10248d6ef210cecbcc5e26358f1c1eb44a7e56c7514472c548427c239b84 -6c4358ef84bd789ae8ab0cdaab2125df4e0d9508b732a36e4ab64bcf645a30be -285b3940945e27957a0a4908248c7811edad770f81244aca667826cae47150ea -9397eeaf9f5700aa1a7e468a1b1027c1ce2a34d6a7854a83373a5c0e9427d9d1 -c0eab7e1d5cab91a06e028929ccfe0dc8f3f8c5b324ac3ff628c12d7cfc117e9 -11dab833a0ef6148102c47175aabcd7f9cf9e2753bd3e6e3edca4aeb489278c2 -33f3419df0c07e31190bf104dbf0fb5e26afe4426ac7b07aef8eb511707fdba8 -b0d314667701e86f4c84b8eae07fa37871870b27a9121758785ffa1531af4939 -0c74aa73bd8c3dde03268a2447d1df9dba8ff05c48e14e70f62c785f8c0e0447 -489763c2caf67a698913d5e7e8a22902899c590d8c47490a893d6245e27ef31b -bfbaee3d514c35bbcb02769a3912d98b9a873cb0a78255809184354cc429cfc7 -ceb2038750e3a6026f622889e891579d4d24e91adb4c5ec9ff12e008441fa3b8 -45da9ce932d5a27515b5706ae3ccbb005ac08efb276a9f4e49becceab45aa940 -7da5fd597c97f37ed5e8553ac7f140ca877eb6a4fbcb351c3d070996088bc4da -997e1901d513430719c2c96643cfbf5cd32e80eba160122cab14f36c7cc0e4dc -3f119e27900f4648319011d21d0ce403317ddd16c73b7c7df0d2c3bca31ccd8e -b01438564a68e79d76727a90d55d0da60a96cda7b36514ef8743cb2bfd5a27d9 -bc5aa0be6822604bdc51681f79f79979c96707959745cc7656c0755315220a31 -aa0fa1b01d03e4e3414e68897809c9303784566537eb511bd5a1ca9b9e93f0f6 -6ad2432e7390f323434708677009a5a9f160f01d1483c1d84d310256cd623be7 -a165a12860c2450c16f4328c28d018b9fb41c42cbc498cebf4109ecfd2828e72 -b121ddd4c5dc762bc6c56935919db200c0624f8ba9ca6522a2ed14e9109cd5de +e809ced51d8913022e7d949ab42dced250e121e309b118320dc3d2b46b210c43 +057ce720effaabfd7c1579f7f2ab28d57879dedbcd8726c6d0e592e384987e8a +6669b64ddef2594a23dadaa795325938fc48c57a016cfe2a2422fd3e68ef35be +25280625fb975446ee1bccf778933b3036e146ef59991fbe79d9613b0c9d5839 +6c6e704aad88ad3eeb78332fafe378d8feb7174549eb23e2ec2232406e71b447 +4268e9770e9de360f66a68388e3ad516b99fb6ecb0398fcddb404f2314c93852 +533af69d70a896c05386d68233d0b4f628e410aeba52b30c95c7c1a5e821fd96 +f06f753521a12846778d9433cc283977687b418651519bcedd858f45557cd0db +31b80f8160396bb957223856d0bee2bdf03eb24245729bfeea0350a7d54cedd6 +75633ad93688b75d05e60de48956a0385f67b8d0a276b16a121783b7284aa832 +2842576e749d4f68c51eb75c913a88d6ff343dd564cb2650d3e1917b8867a350 +547914966f871354e653fecbd7b36aa72574572239f680c4dc07fc2fcfe47cec +3b613d5533cc0a8f092b7d94f6de89d0888e03c9ae11f4c31dfaa97766c29c7c +4acd515ca47d6ed0a3529f614334c26835a6d4e976c14ab910bcaaa7b36d0a23 +88259a5412270ef7d7ad5e193bd1fb80116876572be64e5ed4ee0655a90663ea +3415272952cd2403d3472d2796ceede3a698257173ebb32c88e7a8cbf07044cd +c7053257b8e58e97e15004238014c2ac5c29133469df69fd8895251a131127dc +879b31c585a599d4d5562fda8e8afbe0e95e3181c49b4ed2311f4f937d3257e4 +fe1e001716914fec7c17357fab233efb81cc67772a559dfad42174174522af25 +3d90d0c89cc5dea2e84c35082618ba10266e222475d5ee2197824a7d59523857 +d00dcaabb6665ffe310c7715d47c253d4c1363548865e13ccab1e8731961e43d +7d60d4e0f52d6bc73c1acaee6fe332f247f6e6adb84991a03122e3ac849c9250 +239abad46af37f676d73b160d653d43d8bcd21818accdec68c2ccfe05b767c1e +515a70d79f2f4e3ed6ae1e4dfc0f6d260d1445e72b22b0b8043ff12d06bfa975 +c3eca74e820cf051171a008e87fd3dd35926d1dbf83d92cacbecb6a5c46eba70 +8336e695305d3d09e868595b7bb0cd2113cc4b5a8fa2a3fb82d0b773c29f9d7c +72023407d0df8ddcf13f937491ad34554535d82b6f3c196c5a8941c7192aae4e +7c984fbf2f922cd11ddaebd62e14206306993bf5d89fa28ac073645d0d6b5bd0 +523d94de2738df3d17c9916f28f1f917ad924981bedc05661b9745c426b626e8 +1c80a0993cc265142aafff11cef0ea2f556fb8b4ba5f17e2146250f7456d91dc +28a5fb4c5359819be76eb2e5072a6d7df64fc87dbb48550481ce0752f8961405 +c67f93f277fe77cd78ea15fa184fa70f352a82508ad2fa66d972ddf49c08d5c2 +035f34539f9e91fb89cc28a20e34ac2fecfe32c6b488dca969c872e8a8b83889 +41c9519949e3e3417f7d2c6cc96fadd580ecc55a2304f658ce3a279db4ca73d8 +55c7362b043afea5300915bee55df239d1ad86f07262e445bfefba3e4432f12a +25c4f8f8cf15c2476d11508794f3399d685afa08302a4281e3659fb0059e056a +f1526dabef35d633231945a9bf0fbb91407df2b800fa0ec5de9d9f98998fe26a +51767f184ad3e3e96c7eea385e948372e9ff8f084ca0ea42aee6aa294a40d65a +1b8b42d9e60256d1931abb4cfae3a9bce173db7153aaefdc2938e367cc93c0d8 +665e701e426304253cb6c6c0e18a892857b2889daf06067ebbdbf6ecc367cf48 +38c528d4b1bd8880a26d015f7be69d4fbd200611f2c914916c08e1d26e0dce66 +9d53c8863c352d1a0816ec77d8fc422ab74f1a0438f2aa18b3dcba27f25ee916 +07319cf4b9a4d5bb01e5f47d8bcc6eba7abdaa1d5d28f5bb68a576e87b84a8a4 +c137fa9351f1d335316d242728c8d89f3e4347381696b119f82ebf1cd96860c3 +616a3c7621e815d686d7e10c4c09e34b1a6381de3698e8582abf7a1c8194bf24 +bf0a8a673a9963cfc7e02a016c30f4e642de3e2ff775b15c7e02cb07d0a96ee4 +a92898793b636e3ab616742ffa1e48215e19b1104a9c3794a0dffc54e43d3121 +aad99827508566c232737285acfc38d8c9414335fbbd8a08d9b19b8fc0676429 +81a1ad2ac4e0b5fc0bfc1c843991619c8307e8843adedefdd6c60c93ca9d3af2 +08dd105aff64eddc47cec570ea24608e43542dfdee00ad3f60d917b4fc9d4e48 +5a6773112b8156643f2ad4dd4734e500e459a05c245399b71b0344affbef5e52 +6ce03f19092ded9a1832c68ce71e95bf15dc2c731975b91735e6576beeaf6d78 +b694fce273598ed927c67369dc061372edff607f367e6cfcdeb9ed6ef96784a9 +62de6453795c5938bc18cf6e5a19c547af1f69303a7b02bd747ea30b44319f6d +ed6773eb8f90c35ef22f222299edfa17bcfce15a88c48f63884adf771ae49431 +eaa7d0979cabbf027cb0410f6562c7b037e918299d628dc9aa11f0ee246bc3e0 +fe784bf70453b9b2ddde668f2d474821507573434f84a46e1b1f6c28a5f1ecd7 +ee1cefc4067d1c234726e772f6829166cfa052836ae8cb5ead8e1823437cecbd +45a091a735aa1be3efa3ad89fd1d044b3fef4fdbff6148c7a9e24b1cd1048d89 +5fe0768a47090dba2ecbb66cf4c8d405f992b0e2a24c03cf480f77a70cd8efd0 +530a73dc0b0c926e263ae6116c7b9df471b71f0f650e46d9a84ae40763f14009 +0cd6bd62e97825f463e21cf2cac000f58e3544368300d796ee08f7a6de957dd4 +8ebf6fb79e91b4b5336dcc829225d877eb09052d011fb5f9c0f8a1394c9e4b14 +71eb0097b55369771caa4aa4e2920c457378d7f70c61893163e4bb2447bd8ef3 +4f6478da3089556099aacc61f5e41cc7b73af9c15b25ae0ed797c1ec31f2412b +9a08c19ce90878d34fb68fbb19f0f66be2c612a56ecee5e312a6a7ccb70bac88 +685bd9a78f0e4c931d5c2bc64811713395af006a61bbb70f682e6760d2ad1e2d +aa802720724db4fad5a7acb36640161a964aa9cf01e917768efb377ffe94d744 +385e81e1ce9261c3a12ff8b8e7dd10db7fe0090809a4761541e59a8af1942a8e +0c67d43ee7ad19c26a3d24c8267c37bb698f884c6a7fbc91713e5610a88882ef +e44ba2671ef3ecc2237df2f7e6be07e85da67596717204e8a86a1bc0683f9b4b +d5d1b373000ca31029591f41ed5c09906dfaa220e1f9c3f5aafdce09f0087d71 +7f246e0126b79821c8f055ea427acaa37ef150d6bbdb984f6179bba05182a9bd +995c63406978ab13032fd8122e894e096329a0afb9e676a5f065fed3c2337ee2 +04b98ccd521cd715ddef40d5d75d46a3c7ce6416be6aa61b8e51fd6374dd9b7b +0ab3728f08daf1918dbcfe3f866296a5a4b9bdc42c2b86a4cf624ba6196abd84 +e5489b5f9c859fb0173eda877a3f539a33b0fdecb066bbf4b5c7df9cf6622ad8 +97808dbceed22294e2ea05aa750ef944a60775eee96e02d28628dd0b115bfc3e +388565b9f8e5780db9c571f6b55593dd84b9a16fdb1b74f8b32d9a613ecef342 +a8bd1bfe0acaf4d654b3a228a1540c9b5d6e20aa5eb25934762e50b7763da8e4 +005c6196f3e89db6e0b8c0802a35e3e94338d468b319ef502de294281a83bc35 +542aa5ed26b440a5cfeafb15044601b3bb5cd6c0941dcfffe3542ef71969dfac +bc23a5aba168c77fe23a7796517509c283cfcb900341a85e079b257477a2a572 +88a3f0651f201d9e9973a45412f002b085e499c52c5394710ae8591ea1ca21c2 +e846a28d93f56652b27e8b994a0af7bbdf7adaae2d5fdd6c3c70a508b5d07dd6 +efd7ffafabb07c548fcfeb9f0eb862233828c466fb584e1e3dff21ef2316d56f +2f479813aed08440c90f05c349fbe0c1378801e30c6b1daa05f82f426196007d +c6f95309ae789aa0acfdddcdbb9dd967e6ae59fee45025e726957534649e9a61 +aa97df76c82cbde7f46edcd233cbdc0ce61922fba824a00fd52071b104a9a3a3 +d28dc66b4e32439458fc7fc0ce9afd3f189cbe4bff296bed6cc6febe1df208fd +1799a808a2a721cdab00a7bb5fc052bfc601d5350d436298816af8d500a7925e +b4baac3dd349a1b2adcae0e9c1250ae43476d3405b9834172879c6aa7101e8b0 +4896cd2098056578af3292355516c06963776d8fcb7115c53da5e4b9e6a19a0b +b9264d8578ef6bad18c4b8d2fc63abdc4202af2b0d932e6b0f867239b072e32f +4fc00f3ada7ce14c0f5b8b147a8e31045409c0f1300b8a599038a5c8aa42da64 +09e6c65b9cd9b595b77cfe5c31d6c9eeb28540bba0494d90939639309d600e39 +55df19ac1383afdd44259c75d24c9110096df6296c25c324a182c7cd8245bfa2 +1ab4803a92eca1586329084df13a0e7876a8e144afd76951ae209222ea41c2ca +d5a17e719a5519f459d7969efeea4fcc85d372f22f353a64844601889739aea1 +245c007e0de8e24d7cbc8c6ce3ddd0b5ac8cb97bbccb45b3409ce101e329b5e1 +f3d221c5086b88e12afffd8e1a3da0769afc6dbbdc4f376eefc485cee2a9ce34 +da4de266cb78083af982e454488e4defb19d79f28916301e86f05e1dc10b89b5 5ad2b66b5b883ec2bdd3eb2fde47998a3f629f3274b156543b5cefa200833962 -954fc6d2f8581e4af6d1ac4935b84696b977349404cc339611324fd76c737c25 -2d8fa3fbd052969fa8259eabde5bd22738943c006a9e1218ed697896fb545488 -29fd68962c30655aa6ef9b192d19649b133468999480b2d1fd4ab8fc0b535a30 -ee2f6b4b245b84bb272d19861c08c795ddd66bf08428bfc389c5aaaa4adfc07d -063739d777ae4310d036c6461c1a5b3d731c78b26dba37c06c0c6c5fa3cfde63 -a02920445705cbc5bf6c6aebc4eebb029cee19b84a0443d3fd3bc34d3da35340 -2d8392894196e39908eca31f2948247aea2441db010d4933a80a9b232a7b115a -3e2165c8477f786601591cdb1c222505ebf3c1438e6090888c170607129ef816 -c7c0cc6d879fac3a5774bca00cac0e8a56c52c930e51d16c8bb45ac3f8fba3e8 -1c9c35b8e8fe7027321497991a3922626ffe6b452c86c7e49af00aa59718acb8 -fad4ad7256902a9455965f61f597f7e012c7d4a1815b2e6d70fe8d515057e083 -ba61babda725bb53aa37475a778988c3e84029081852f0f2be114a98f46385f6 -c46bf1f9866e899e1728e8cd6a19adb5ddc76de33696ccf288cc2a68988c19b2 -30808259fd38cf81b921cbba2755620032aead75bcaebcd3521f3683981e9b48 -269e84d6dfa82637c0f00564c3dd3ae1184b5c9b470de45a4c2ad5d58a2b781e +6c7c2d84cd618bc265e01477211bf6e7a93868e48acbb0f69870612b3971ee81 +3e9751556d4d6409c8ff03b3e580b5bb476feb83d9016bf6fdc9965489753c1c +0c7ce46482a9d9f511c118ba18d1bc505fac643ab3a825ae02fa533220566592 +505cd667f1e9cf8da3f8cff570cccae918027d5309ba6c6f01b9096d5493b591 +28aaefaaeab2c648acfe61b53cade9cc9d72985718d85da2936cc80ccc6fe3e0 +fb0d306f8957a9512e727e3462ece44ea1a1f0cde3d11d9cf796aa92cdcd3a44 +1074b8e6979809cc6cc15a4d5436400b0e81ea3830b0bf74c7cf7c5ac7663580 +fd8a839ebe70c444c15274a6c6baa10acdc71712e47d99f1e7b0264b100ccb28 +376b128f543f9a9050197790f20d8a0e3f77486389d608a227d85b66bac0aca5 +fa0f5c3c9f7632620c7bf9c19a86dae5d8f8f9ffa96795cdc2bb9acf3f22603a +e5ed29fa002d202a7fa263f641f632ed51ef433f679bd8780de0b98e99020a20 +9202ac89a242769a93b799d05ea95b49805762144adbdfa086c76024a552cd3e +5dce03f43abcca94ce924661e4d9d74d5388d10a55a71ddfd45de8d6efe77f6f +3345bc6c8a5632342ab8e74c0caf2eefc2baffc0c4d8e78c11d0914ac4d3c300 +efaf0009b6ba0807d589a552975cb31279868731754d507fbc22dd7824200dde +46ff842c9e2f7d06621781a0d77707024f1d2abcd98c329e10c5db5ad41df708 +31c2a886a7da65b2d6f8f7b9521b77095e44164c1d14481656ba25d4dfef8c26 +6edb45a2a50fe1efee2cad6d4e6e9832ca0915cc9c119f39af5355fb8413b289 +0116cb33d4af228a15d3f2951370c24b3da23274e9835307707067ec7422640c +7f66c3bee096d46b8ea320ddc416143aed6667dcb6c13dbf491444a052834f40 +5570fb237a0e1081b8ada535ede51dbc63635716b9f61051737af8be970f5581 +ba8f6e6fcee0d6ef74ff123967c1cc9d6d3e683ebd1e9adb099e2dc0929f0850 +48da683177c7dd82392d21f0a13ad7556ae07eb9fd03870df7968412be97f37f +062a618c336ab945580126a14aa4d07ec336ccc8f3e32339cb1cd0a0d1dd7674 +d35899a1e92bd4b4667f3424182905bbec0ada6ec5853ec2f22b293fafbeaa85 d1156e5752876584e17b45f887a826b8c3b9a72fd33e70805c9d8f3f03bf81bd -cdd5369767b8e3b2db8f59fdc468fbe5cfb38ac61be7163736b14d861a724235 -793734e5e7974cec5ea1753af5a9471b67edf56bfd97748c28ace6392238d0e1 -4e3cc5f1c2097d8c6800482c8d39147a403a9a5080b0b9d777e1f00c815685b6 -46214fdef4207c98b4c38a99f64ecc5f1a080643c01e264276cfd5b16876a43b -32935c77dbb2bb8fa90923b3500e6cce6a8ea765a51e4deef1da48f03c90d14f -f00a189a58037af7e6ce33a409698a586e901f2e2fa03d53f02d20d4a52bca89 -480689a2cc9c577fc8c23fec07445d68df3e82b5d41ae0e2445270a232114d5a -b8157616e0b5b009a95ec2a85a740ca336305de3fbef75382c09fc9030cd9795 -caac504295c06c09246ba121e2902a0ae44354c4e96af29bab4d4918fb57cd4a -950dc7a272cdc559569325c25bde0f9407c18aa2c4da2c56f2d9cb68fd1cf1c1 -6fbd3d73e7709a327738526647e6f3bca1af4bfdea8d845472c0431f5f983d00 -f4637d5fe3c34c72cca183e3850bf96d2bc0d69bc2943c70dbd9eac34f039b24 -42fb4252f03aef5d460299d694eaa45095482fb59282600c4095a9fe3aebd2b8 -987d76b51bd48176ab3cc630a5ee0214112fe8f48ee5fa905b325293b98e58a2 -637021c3dce8526150cb60ba3eba354a4a9fea778d4623cb407b67a1f95f5236 -ecc619c9d1dad94414049c3ad951d244ea9b29e6d3b099e756dc26495653757d -7336c1e3443fdf8a25c3b821ac378b0d2659bc49da81e9fe129142fe7a20782a -82004e7a7b50d39c92b1cee4344b662c075e22816fb20399580212a66d122d9c -07394777bd2115041214a71e2f22717d53d81c6e6e69f7687df2b4b49b14bd4e -eb3e29a4eb5af8387f80fb1bfd7799af6418c1243d8f637035cc6278a35d2747 -1d5415a646692c3b55fd9ddcf858dd0802349ceb1d00908c3617bb8bdc0e857d -a6ac5c479e0bfb55603721c86e6783b6f29f1e803e8761485ff80de5ea4609b8 -a329c9ca1ab7be7efc420347706a90658a6f8828ec5372fa7de0dfd0d9f40c9c -d33e3ce4399a6bbff64d50b0f3afd8eec0c2788de42d2899c10593937a2d1837 -4acfc5c06029499275ac0c9f4a4126251911730032e54ed02a7b67652a88ca34 -084a6f432e44691e53abc81c93d9076c621f7a0a897662c623cfa8ced383512c -0e10d74b77aca5d329c73ac35e86d3df933f178851b7b9f7885ae4a703f0d99f -e5bbf27d6e7b58931fbd0b218d23784a499b7aa7fa4511f958ee9dede4016457 -e56188a1ac89937ae99571ddefcdaf0bd0f05fe5d83c6c44da735a1e8520de25 -90ce1468ac3a3da1147287f5e5b4b50af79c8c91d82c95d4e513b69c37ed3b50 -6327f69509bb03c4e065cf7776ecc6ab025aad72e34a6c3ea96dfe66e0250028 -97143a98ed954698e0294fe1bc4a72887e66440e273c48e860e50c6bcb1bef90 -afa9a2de1ca70b25c26b63a8a6db8fe3a8b6cea76367af4797ad9dc27365382c -e28e9ac150fe846011deb5a39ee2d71afb08aa79cd5970b37a282bfe129ff0ff -8f946ecbd72c33a04d5c0a0796bb2878c90d3d93018e13422b8e37fd6f63f0d7 -33a43c58b5a21847e28e57eadb2778468b03888431c90c9bd12219244cf347d4 -e96255df0710ff341f22447357f154fa7c133c6166c02a93a583e8655ed71f59 -2f3158ceb743c15f97a59e3a8a6ff689aa8b50cba6039825012117ad1607e01c -b151009ce2a6f580c271af4c8229ec417bb388fc8634c8bb77b6eaf9baa90699 -0699d3d7e30aedde9c7c928fec7b42c3bc9ee074229ed14df55be8816be05def -1b1aad7d15d1f4c8a7117e093730e91d3c6056cdb933f4e9eb2fd05be7ca9f40 -4f64719f4492f54e796551afc6ba0417868fff7094839ca7a26dc3382069cf94 -ddcf98e28823f484033ee08cfdd8ca05dbcb3e71e545a0744289e5e8780bcbf7 -66d3624fe63ba68c0387083a7e10ada01433d7b3ecb6c2d430c31ffb09d23064 -d1be6b877e67fae5ce663aec6aeb9656b2f30089c8e67d9cd9413006a9b3d61f -c461dc4e0e9b637fddebcb88b104cde0cebaf140298a4382ef94c6c9cdb0e63c -c083f58eec9aea4597267f71bfff9864deda483ec8aef047c5ca3ce79ea23bf8 -ee4751da17607f9802f355f7c5b2df169660c9eccc8157bdee610f78aed6df35 -a4566c29dabbb050d825acb7dca9a223df210d49a6896b6395d6dfbba0ddda7b -d63644564d2efb112b806c050a5b15fb9ce1ab9ac8d9758c6f81dbcfd12defff -4ad11bb9ea5d19a6f169720ee170dabd382f5363936df80fc37b1c80b77d017d -1365b4f79a66619b8fb548df7b6d212a6b46ce295804b524075558838c582570 -4b1b4052c3cf9110e0530f47c0567f072aca8a457abd767de06408867b3ad9a0 -492a62304b27b891995b2cb4dccd8fb87e678e9e72c0bf638349e5f0af7437a5 -7b23a22bf29c5870802b9daa3d1d8bcc08da974f59380623e196403b635f9789 -893662124d62666f32c6bb9fbfd87d041f0524cf21da856d72868c11d9d657d1 -b5de438a2bd5f16f8f7e5df0d64b4004f5cc96060ce6a6304c607b07c8964642 -f2ac619424dac857cccd16688d6cd2b752e43b65847cca0f8deecc7ef70e6773 -84a8ec26e786866d90c520e188e54fd7a2c92c3261731d7f03ac76d26325812c -fa74194315b653cc88fd6cafaa488589c3059f3467aae5b9ea5608d645a8fd0c -b71cbb7e6caafe3484fce6077343cc68ad515e9bf998adaa2470bc8e31712352 -17f8ff08714a92852a199283e23de6afa58470e4039a2ac3a4e73189d6e03577 -07aef103947cdc614bc11b138fffb9dcae3f20329a465734f5ab55e7441b245b -b90b1cccb6996b94c914e9aaa672393aa17309a77b77b1500fe92487b6c0da77 -729e77471e3a745d5bc1b956b26f7c2e678823154997325d97d4d76ca1deea04 -58c2fcbb1ca9582314979cec3d314e5acb494e49ea42c55967121f85ef009252 -2f7a3c0554e22377ef66013dd3e2617b04ce637c94e22ddf203657e7d0ba6640 -5636a91797234a50a1c7c0c7c650a58d4f9e249020ca552a0adc3df7f1d457ae -1fb4f0ca43898c25340ca1d504c92cb4187fac8d3154f9adfb437d332337b71e -1332bb42b6e501b42f00d07316d40c2591ad9f4125b91b43dd4e1023998349af -e8d4d8766642b7ed625c76f03636326cf78f9aa8aa744e49e392507de3335a53 -da4de266cb78083af982e454488e4defb19d79f28916301e86f05e1dc10b89b5 -2d34e1c97c3de2aa059c6a2d22ca918e20e263d35bfa39b96e9cb098f556ecd1 -8ee39da18e0d1b41f81e28f3a66ba3f4581fbd2add9c0fb81caef44a4c51da7f -825476d83278902757eb85768c8506a49138e4de1173a74cbfe8dd73cf088dd6 -21fd932155561171784ea65cefe5d498701dfcfa4f91b088859f6444bef177ee -549b2b25ce0d26d08b9374f76c4bcf378488e7a4811d832085852ff30294d8b3 -935171cc550745c318b2718afd7cc0b8d5fdf308f69a81136498bfc35a30f30d -f32ff8cd620719cbb69c3b03254aed834368b7a5f69cb4b7d3f0332f21e29ea6 -54049d94ca55f9629a1f77684d4223ccf573694d996abac505f3ce8f30a99a2f -9e7f81e22653a88204f7336615893eff2ee519b9c26f29090ad1acf271fab8ce -bea2bcdc91abf90451f34dd569b90a65f394acda38f427d182eca52073be9822 -9fa4ea0abb521e74bdf866b58a5e95f1847414339eaa93dba4b5848e716d0516 -47a157bc3749e388fd638575c3d7fc0346a11de33f5503a1398fcfe9a9326fac -1a24dac1b6a224ded2160bc2fa2d6fcf6bc939b6733456bcc533cd7379205eb0 -e81eb803a8cb7d1cfe577b1171da0ad82ed088df7f5c8345c2d0dc2704ed14d1 -75726c9e06ff5229870b213f5c422d3696a468829755369e5069470b9277b1e9 -de09cd414ff025d84a90f0d7e901b04d391c15acdf725934caf3f8d7ea15c8d3 -cdf64c97975b25103f47537f196c6ded385cb11029c9177e0d245e58e8d1950d -322462b55df6498b891b3bea0ef7d7e284f66830b4a151f1f9c22b4b9e0214db -e26b8d1382d9e04fcce9bf4b43072c00aae4f029c1b6be2a842885a2ae94160f -243ca60f74b6a49daea14dee226b9d0e607c87236244c9400fa44f3324eabc84 -34c5e4597f28921f87fda175d16ec0517d2e3178a4ec46a11bb68f4f34abf539 -0791e8bb1bf90039eae6e473095074f0d01a5394c7d09fa3c71fe9b6fcaf5d99 +b121ddd4c5dc762bc6c56935919db200c0624f8ba9ca6522a2ed14e9109cd5de +229079a281a5e0e51b805d92bad8b4b7a4473d7c39c784835d051ef45b61ec06 +2866af25cc585fc28693af577192708b1480d517e7cdc61ec7d8741bdda629d0 +d2a0916a6ae0e4037136a12b442ab61184b78e6a8e097a0c9cd2a50ea89b6648 +da0f1bec9ff9ca09a6187b2480a1d6448d4d7b97804c6db05ce952b794174cdb 9576654613bf8c0e1edef4bf3d075f9a353062c8701c490f1dd797e8eed7af6f -76189824bee81d9616da50257d9dbcc8267edb91cbc23351fe5124dc724c0e12 -9f34209abcfd9f16b67fb02fda21b077c3e2a9c0cfdab1b85fb3ab45a507ab8d -03aed9b68c1b79deb9672fe6682e6ce3e12041cdf480235dc923c6fcf86fe03a -5e3d459986161589455cf0b7e112212fa173fbf20f65bf1f4588338e2b05620c -372e95302e54cdbbc6221aa066d3f7bfc08cde388b6e4cf4a448ee180322518b -b448c15f00af23f78551d74a6293267b4a16b76022f1130a8b24d1fc49174dc1 -6aed957c964c83361e50f1047a34468e95a810d961ff08036e5c1727fa233879 -8aabe62b04d72c6d151d3f9618cad28f28679d122994f772667fa1ee0bcc880a -9344199726f0eb987bef254f511032b98a917b2a7a938bc12a10d48a73504bbc -3e89c69a29ca3485dad7d4a8d975be9507a2305e798f845febf3c90ee5b79fe5 -927c98c0b02b2fce276b058cff33de28ea737685992458fd9329259d5c410df8 -6412354bbeed31a54a7e0fab8924726edb2f79eb4e134c7a9631aa8230e31e3e -d9adebcf8f0ca1350198b597ba38fc4fe565918ea1ad1b9dc71e66396011fe5b -1123036bcf240cdcfb398a9dfdf4b17e4b0af4d02cfa89c728d2095aa4407026 -b662580d2161840218833e521143aa2bf181c842fa37f98be1bc5b9137068e3b -4bf4b1814d5bf55ac3f0a36d2acd116631ace9241267da7101f07ddb8504ffd4 -779a5345eea3680a5f485fd7f4afe55f8bf09a8f832f68088fc095e4dfa1a490 -c0d350d50c6462c343b32f6e768a19a3a94aa9c5a42b3d2c12cc15d42e0bb800 -d94debb273dcbbfb93d9424a553508254538038983c7d4082da35c6205913494 -1822438f78a84c1da77efe797fde11fef3bb37e5e4e7adea9ac52f6fde54de1f -efc2568c6026f0d1e843e812035551eff424ac7c419dd26a2f9d5c8d7abb5a0a -e5329febeeb98b3d69aa8be4c757c6dc6f4be14f0e51bdb816a76cc95a894cb8 -7094760e2202e4bc377392a270a28098dd488d05b174e5560ea014583b6a9f75 -ff92f58d3fb194ebe093ee9315b1117fc03b75f270fae86c5818e77bf1db7978 -188b80c55bd013cfd7a2b25db62ac91a1c4a51b68811b20456c9145d91fe0b04 -dadb3fb84d55bf356b6f2dc78ea67189e92792a52c7079c1ca9878d2a9d1869f -9d684d06b8e273e8e801ed86be03effe1869bbd35b477e9052a75dd4923a95e6 -c15c904023b54914307539e930d4db5910cc0ec238a4bef9148b8df40ed10c90 -7f2bf8c264bf0178ca76f1a862d39fb8015918a0cac57161a2d2f8eac88549d5 -732c0d3d30aadd3d73e7ec56023cafe20d98dc46aa6beded8cef1a1d5a5c12fc -f25f01f2117268e17ae1d9adf475424c872c49d09723aea986bf5709960cfc94 -85f353f7ba11efb38ccf91e31cfc26a76fa197746df672773a3c67a4f19d3fa0 -df335381e8b04effac9f6dcc57a09a66c4c9e09b8264d022630634f465b5c35d -56e703b7b0b109a0ec6d1a0f64b0d0cdefcb157e1a66202149f392be259fcfb3 -6700f7bac64ba80f5845856267dddb739bd7fc4815e205a41c8222e9abb6e9cd -22f1bcb84b2607883f23508a4b014ffe61aba9b5b44396899840207047c630b0 -2c060354a2208125a0a855823122f589cb954b1d5804bb1605dd6abe751ca976 -a6a3db0e7c85368f1aad28359855230b6dd6678c751f60e19592ebb487abe17d -0c3eea65166073698aa70c12c506fb7f0e89d5b3e924146a22004653a23eaae2 -7a00d22ac3ec77adab6b50aa90951d2ba7f6416386e69ffcbdae0bb85416de0b -cd820ddfcea985d1eecbcf48f4139e934bccd849fb1a1f1a225908f1be097ba6 -e6d009e7aeb59b85ef01b64b71f6d34972e2918f487b87356952bbba365e8515 -858c5086b54258bab7ef61fdbf4c08f78b87380dc8627684df1cb4d2e5d3f1e0 -084b469a565a8db2db7db3f367df813a0fe251a313ecf9a20363b7bcdea13a6b -e92895fea3a705929e77f06c3384ecd6d30ffe2057a0f5b654d2bdc680e0427c -7df3307e84b5aae70c7244624c4e627e19eb810f4990be57cc02349263a0026c +1788919841d4d2629ef8eeac78fa5bb50cd9c6d57c8359d9ff8388882ed4c473 +c2f88a56a718b6178ab915a8563e0b0f19c6f377ea6507b11491f0a05584574b +4c6d13fcf37ad1246690ca798f7f9ed574f3b33ca634bbe2489929a14a41fd06 +d46dcb999054ec2c83bbf25ae43df367039bd19876649758cbf71fd5b11fb231 +905514727f24de3b3bdf37701954a3915824290e12561ce42960ff0733a28b84 +41006ac910217a962f6416a3f7264e5e8deee0f0e112c706c6d290eaac43b58b +549b2b25ce0d26d08b9374f76c4bcf378488e7a4811d832085852ff30294d8b3 +e001199c6f0207cfcb2bc7e894119a9173cdc463f3a071b54c9cc42eb00b650d +45a1202be80712aaeedaff1bddfa1ee3a897e874f3a1c88350b91d9223dacd87 +f8438c7a53b0eb1d1b198d7acf540cec9db7aaee3a274f892d1f2bd522738b29 +351a773b93e13539854b015e68f23ddc7ffd9b356fd29e992f7426f7682da82d +37b62e78d5fcb988367c6486f89676cdf6da1bb842fa7257aca7f5303b3107d4 +ecbeaea92644e4b32ceb5a922b70a150d25b54bfe8c3bf1fe27dc689bf0606aa +607e8ac9f62647ee9d2bff659c1e08542aa99eec29a2bfc031215d31f37208f5 +57d7b09ddf00c95b78ebeb7d5ec1242180379e225da9848835a2df213901b148 +a9a0eebace661d6a589f9393950c4d59e819a975b06b6243cd7d024c92a9177c +955f8f4c2917f58ff30ea7c8a5a0a07915865174d761aeacb5bd38e5dff4b2bd +dbab66de5cf29eb9ca549dc0db0513087060257c98fc5aa5cd27210e89076b68 +3a5a537ef02cf705f04b1487dd5ad6f7686d5c27a7ad8c90678cb413c27c5808 +95ccbece717ba641c01be95dc3fd6bea33e4d25a61980a03d1da84d9031fc90e +619c63ca08ec08a67f07cb572034b93056b6202173ef2595278f6d7cc945aba6 +33f3419df0c07e31190bf104dbf0fb5e26afe4426ac7b07aef8eb511707fdba8 +742f3f5e30054e9898e56d9b26750f05b5a2cfd7744e9d99057088df26e4f584 +a4ea8fed43ca5d0d4f09daf5898b70e435ac5aa0469ad3ccbdd6c2e6a2f61bd0 +f30782dc627110812424f991f5d6df1ca14af401a6cc1896addafd74815ca502 +6c128f945d163d1a9692af5c167cf0727aaafb4f32f3678cf28e11a04c3f27ad +6e062b4af3358e0e83298bdc7a884251c9d12e3d2a4e646a7e6a9eb126d382b8 +129214ab7894404fa1382add75aaad04d344569c0d4f7bc11cb8352a332b80be +142c68f821042a02f523334fe54c880dcc9536a401d58dad6da2375313df8d72 +59addb84108ce05ce6cc89175b8277c0458daf6cdc1244ec7e547170d4ec5614 +f3ba337c544ab0113acf18280f611f798883fdf11456104f648f364b74baa09e f1f5b8ac2522bede838ddbd30f403daaa718fa1717a427a4a55df5f13bced40c -d55f5fe8070f399887c98bc27f29827bba4ec26f158ea704e555eaf50e0137e5 -2b381f25a8fb3e6f4be79cd7777f0aee1bf4f89787d8622375c7686e962971d2 -88d0efbe681e09bfbbd6bae2698e1e8b697f3080a627ad653d91902d61c4fe70 -d553059b2d5b758df206c298562b6f635914f0e56e023fef23036638908aae93 -70bae46b64c9e7a79ae27da721b58938b729475c5da25203a0f89861faca0326 -06df0c9ccb11887a2407f093d81f9d37ebb1dc147d982c99173e318c4c5b9733 -46ae20730ec4b6064a25f5f23a35a230f73edbeb359e82f5c01a3eda8db11083 -c98fbd90c7ee9de9231503bcbd9724519b5aa20fd5539e13d83199d89d86eac8 -eb9c004efa23db44c0e5bb2f82e72473d1d61bac19490d16a94d2cbd5cffad99 -47973698d9a0e0d4238e0d27c3afaa9aac5fd5eeb837548ed46e879b4fe58951 -00111f61ac86c945568b440c3fd67128722a5a65fc3f052c63e29ada9ed7416f -5d1f031d8232ced3ab69525e66916f88bdfc834d8a8f78c357affd55cdc6a43e -ff57e13ab35ad743d9c3bb4b7a08e5680309fe1e345eb8088c03e102b8374ecf -1fef56c29dfa3033ef3f0b44c2572c279aaa25171f9a77923b07f4eb2145a51a -16109de89780244733fd991c3ffac164dc2cc57f0c8c9387bf6fad5a8773d5e5 -110671802652146bf22e441f041496b2a73501baadb4e3f422aa12d0d9cd03f7 -95a91c1545c8511270f94ba25a3dc83a1dc96fe30e8aeb431d035dc37172d01f -b2aefa3c6fe457b56881232ecdd6a8c13dfc04bd3d578c6fb76360ba106feb67 -033286c61659610c3606af2b93007e24ede4d64e0b0f5df99ef836b5d75d6426 -96c4c195d0556bd414a88f4cf99fb43f005d8c5fbe4c59f836709b9d709f50b1 -e1717cdc0a92bf120df74c1c5c15188415e650cd967bbcf433ec66ae8cfb00cf -172ee74f2c13defd1ab4fb05bce2a2750f3c4d0952f8451fb5c736268bd36ff6 -36d3492ad5f22e98f29ce0cfe575ce63a3f7a04b599580d33ad8b5251a396fa4 -db956d6f8d75e426cc1448cacdd556af8d1e1a490e5abdf326dcacdbc3c47755 -625656df09de81b47d05a764145bdd6aee1623139b5c3c22bc4af0a61b50c1ce -e6ec62dbe25df93e888ba02f65a9e28b085064a656613b58c473dd5c2df13ce1 +88888888885196b991992ff2e0ef850034b6267a5ffce59e9961c204b25957e9 +985268f865d3d9794459eac85a5007eee037e0a9c0f105429b01c836cc2a9bfd +51841ebe84bbcd25ac7b7c9e42a60834f1af0be57294e26d52a5daec7232b9b3 +fe8b0e123c747e5d5f3d98ccb41cb341f607980b0ff4520e00842fd1b5e18032 +c943d3466cc2dd5cf569a7c3c24dcd3cefe6fd7bfe3803165c38608d139b863f +72232b27f144f59f2a99174c12a678b833c9630c338992c94b987b2c8b8cb019 +39e71569dae671a735a4599429b9cf086b8bf08996a9bc5d459aadb6d988193f +e68ab8d8d03dbbe90d70959a901677c765e5a0217681a70720ead4c92e69f905 +44c580b2c5e6d515d612c75fc38c85463ed307e6e15c85a7dece61630ab470ab +9f3060a2d77d7d2888f0f236d6d9d1f5a3fe7ca9baea663430829982f3363574 +2eabcf91e7cef03aa214bec4fb2d1db5f305588de5de1ffa15f707ceff038bda +709948ccee295a472105e289dc342bb69862941bc983d78918a8a426fda65d14 +728266ed49fe28f07275f15188b6115ea60236c0e9e968b03f545c2aa7cfa6bf +eeff905bc1556d393129ca90c28416c18925229b7d8c6087e44ff78a9ae9a164 +5bf51ea0e46a91a5c3efa666ae144bd7353aa755942459a48769574d3a2c83f4 +211a931398dcd6dbc471ac35aa741b70563110c01cf56dd68bba9fc79d4cece3 +ab1674aebde0ca57d52df24047cbf25600c6285db9bb31c6abcf8c0820202eb8 +0d1913d193dc82392f65bdb001706730a966159ce86d10e2f2ea75c839d0c3df +02c8ba2ade03bd5a0a157de7fd57f5e6572854fab40f06c29614909a5b7ead4a +583ea5bae59a2057a48bde0385cd96862fdd2cae7e74b74aa19a24639abe53a6 +69c001ce6b95e03c09ccb66016c70d8113439d1c0cf5b1d478591146ca454255 +c8b6e8dbbe49371b3ebb6fe5d1e736bdb85551504c6690405aec5e088273f4b7 +ba0ab4da907eb987c1f05a7ac49e2874849e4659aec28658a3fa8cae79ef225d +5542a6f2f8f87b5957fbb050fdcb1e68ce827cab703181d6ae56e79554151f8f +120ebd8c6e16cb08c9752f18ac011b7ca71f571d2fb1624712653a7f633a5cc6 +b08a6d13a5eecc52f35eff8c6cb90749db2ead4c8fe3221a8ffe7e5c01e92206 +0adc4a57d322771a90f93e7b907b6a3510c8065b162bdba54c6d0a9b7e9d1126 +f1e4a46ca6d52af9edffd961f105e37d653062ea94436fb0ae83437cc2eb3552 +903ad787eb000ebda9b7cf38c3895051e48f4ef2994dbb653ba6b5d33f339c38 +780cf7f4b8d0d3c00b079d56ae1e4124ce38589ade63704f808e18993deab4b5 +9ad533ca0c354d3d84d0a13e7e44662a3a9811ae7406b797bd328f782d0b7e55 +99caac952114658b7346bb27358582bccaa3ab9f24543ee981742a0439ee29f0 +bf3211c48cc464fa446253dfe57624b1d520f99eda607f3bee396acac8181c57 +9b09ee41fbc37d041a35a7155f2bb063bf221be1770e55c036fb1d0db7990cd1 +4a7cae32b6d742cdad0b8f9d5c303ae7d6991a193fcca1f5030f41cc04b7ee8b +a12860c888d3eccc492a58348f204fbe14f49297e102d769b8a4522da50e9d6b +9ac9ffdbfb793aa545f0710c0056eadad6f662c0f549cc9b8b67acaba41ea607 +f8796c1ebde047d419a7db968d2638805ee52b40907ae451437aa0a9513b4ae0 +ae7c92b04cb05f5d8e869bcb02c0fb8d9d1c4cd845a290cd435c16d315749405 +41a29ade9ff476e7d75c431da8615953d5b3ad91a6b4ed5fa0317ccd80bd5640 +6ff0ada4b8b06bf3c370219503ccd76a0076e60e4f0886ae86a362621d51db72 +9ac8b8d081c5f3e696b957d4444ec5718562984cf3b051916a042c584c2a5713 +e141d8355689f92037da304b20386368bd04f707bbabc072ff9c61c19b186dff +89340f47d618eeadebce54ac293b9e0c360b27fdfcb1fc1ecdb3528fee8404c2 +f8c8f8db9c402362dd6b5332e81debdd0e4ce83ae4224238496d9fdab730b245 +0f1b4b0f3c6a68b2b86c98808f5ad6534337edda484f3289bcc303754ec0b6d6 +13fecde99dd23f1c5ff5c8130135ef51d7583692079d7e94a757095a82db0ab3 +56191ed0534dc737e2ef6fee6e99794c6ab33eca29411bdf750eb9e234234da9 +fe7f4ea17f0060cc0e8b3620371c2e2ce13b4e49c47901f2a3d587771d2d373e +3687b28d94a0d3678f40cce95a3a5a3dd93e56c7ffb45f1f4419976c9cc58935 +fb8d3554101b708a750b58324997aa98d73c08886517308186af962cacee91dc +3a50f8eac4b0b01ac6b0815fabcc0af1b77b36d3586c90419f7ac6adf0b2b6b6 +a739d1bb89c0af34ab5538ada2d0c74a086fb18f370a3b6103782ef715ce73f8 +1e112179d6783031f1811071808bdf9406a8ad2cc99745465a79293d67ee994b +a9878880b62fa1c6f86db005d1b1f0d1615edc57231952adcaec28210274d336 +2032684cc9136ea9e179a2fad06809e16f5522b5666fab7adbf0566cee482eee +8eb1eaf6e5b17328b174bb6c2597f5e2ec3d1a9b24e68c467cd7f74f5b83b37d +78eba89d557927e7350a2fdc8b940a81a81c10e791c6f6169b7ba28fd8e3cd55 +05c6c3956d29471641a64c742bc20b0df2f0433967a93551b3b44be45bb1940d +515cabb2025b42711646fc81a651031dcfc2f97c70f9f4ed3266a20de4de2d51 +1c89165bf0811a71d664613101469e4315137e42fab5c7c6286372f0ab3f038c +8455798ea34fb3a8ddd3a3d70117e3627caedc79e2b8e153f6dc9d90e4030cd9 +75014b0b913c56ddcccac98821d223a6e259d5284e05ce7c19cbf4ac7913f84a +19364cc29c68f5190caa6da1c8f8ec23c6b12db4922ec4d72fd5a8847e343699 +153b5aa84498d5730d45d2b530dd395b6f977e6e83a0e95581d47682eb9465c5 +d72ac7ce1612e1e0ee0b9f9af20c2c57d0cacf5b2c6f66e3df799ee8a1d20c86 +1faf3dd00c7de2679e2cc35898c98e659d36f73120d72be97c81598e13b0c4ec +a5deda9df42f0b10233d7bb88827df41b63b275eac9ad37df77b42a5f875f068 +bdcc76b394415bf035f008ddeea997e2f911d6402b2d42ba01706b2dcb960572 +a4f3a1c858c631149a0fb3035455d4170148e43b302350c2fde8bb5462c53c7b +35b76ece18e1c4d156d970f86877f34ebdae6592c60b8df068881d841bed1be6 +7013f8d0e29348302913b39e5375264300ec218a60f3edade5fec9c958e2595a +a5a584c1bf3bc1ada56598d97506e82f38261440874af90dc6c21712bde9ba87 +63b6af2f0253db0765575ae7a46c76e329a5553b36f5bf1d42737041181d8f10 +e5b9466fd3be35d969f4620fbc02fb8d5259b3246f5ca759153276a5b82570bc +de2e69890984836a8f32a764e3023ce648fcd1a1c5fc0d6a1d2ea8446b771474 +b0b7bd49d319d08330ee5633b0950cb7989738060ec629d4449e31de66dec814 +0988270f512a54e00c7978aa2fe33b512f6db3744433a19e21d22c95fa7d29e6 +aa38fc0507ca3ce3ed337906c6664c65f1974a2c900d7780cbe2db5bd7082d65 +09bb5719d8be69ce54d400083ffbb9a19bdec1c176e4a47873886d800d557864 +bf1f5733c9ea086f29b9084d4d2d3ce9c6206255e69cef40d6f1f80232b7f744 +95200409c9cf6f13a0e4ae6149a16a4225c2e988da03c0199974f2fa41eee059 +3c49e3bfaf3fe1637fc8b95ca5d4517b6c17c8968565099c54645214376e8214 +a0a3c22f800e7cd63b1685d6f670ea9904e761b66378e373f4ef6367c6f7fa75 +1543e279d50fe4122253e8cd951cd9058aa9bef4bd214f8191eb625d843b4704 +f893d36a99e2e7c7258af907966964270e2c7d9505cd9b0192a880946f94846b +80a119c5c30eeec46ce473e27e1a24f0541e80bfef5b38ae7c2d0b3526f11abc +127716b8e17dd15c3d1f1028fbff69ca3301e060ae65febd72fcf9ad16378366 +ea58f66533b297b91dab622c8ee7692834b40b7a2ceb1e932f34e4882bd02d33 +db3618ad90eed4b5af7fd9e556f779efb55a2b5de0f96bf6fcec902aa5c1d1b2 +fe7a7c15b26203eebfb146daefbd85c60f7afc83689a9f1bbc3002cc574aee48 +beaac4c5066b5def64a42807784e677c82daab1be5d6b2a8895e824712c5bf08 +5c57e90e80b5793f52c21bd8bff6524031d424c389fe1cbcdfd2b609b522e64e +abeba025a56d2d32643656991dd4594729de26bf9800fe3d1ba265935d78bb18 +e2864c178680e26ff4467cf616436942b070fca737d344a6b2adf017319582e4 +df473259f8f64c555fd042758c28301c96c05b5e076c155d76a114256b88e8fa +98622237d4e7ef1118f685e1cfbe8f78937b20ae02dfcd3a5859d6a4f1a08c81 +4a66e0756a826dc8552acb17a13d9ad41d7f7ab8b15d54182c0d18146052e08b +7d6b291fa96e78287f9e664bd08ffb82e2c0e15275bfe4d54283bf5eed34d436 +d59b2f5e60af3242d0ea7380c9b7941e707493efae476bcfe1e7d37707282bd0 +73da360d701f24f68fa640a3792e2259d46a538c640cc02164005d02fcc08a21 +20eb18e6241b16ddcbfde83d68f42ed4c7a489c56cd5f7dfcda6a55cf08732e8 +c7b6a88bb36c301a4fff0253f841625be1ff10483ab8b6430957a263f3543a22 +0cec7d226aed1c3870e0de46578db89cb7b52f485689b180e13eebc1b0c72813 +54d1be5d4f90f64ed1834801b11f09847ac7a4cc70d8b8ff14efb81d722aef13 +107b1923d8125186633f39209afa8d64fbe41d611f40a9d61f8d798a561366c7 +e18f48c949baf9e2c257586a75e001b3e26e5e166146b87081310fa425e41bf7 +fd48b47df59eecdd1f12e8d27b62912d2859c95f7741b62538a87cc6182afbd7 +fe6d83bd87053e0ddab426b5f1035dbf1daa40f29639d3e35e678513706077b7 +18e689caf0d26182e5d901db06016671c4b261dc5dc328f85aec98e510c892fc +1150dc02fa2bff860d6090e60e05b8e614f8c4bd0771ae0264103ffede3ffbac +a88c30bbd1c1a17a8fd2004b7ae52508a3546c1c9ae85a94031a5b992ad7ecf4 +7ea89c98c44837976fb1f866ffb8007abe995f99965a8fac9911e29d52d3071e +b863edfc7bba0538f087fea2c8763084bcc5b78a85b9190f039bc21d5fb4077f +9871c8c4b70f3c8a2167a56dcb70132d058f77460bcf36d8cd154622c92cc38d +cb1094b3c10ecf5e39ffed13e6cb3207ccfa19306ab09205fdb2902cbf534ca3 +02c747abb9322fa822dabc623a408f141015f324fbc237319b2bf06b4e361b36 +75b0addb10ce5128ca2540b10a4b5490cf4781d9d7284cdddc4ed1c94dde861e +01e46127a9aa9ecd0b836c0f313368e590c449ded8d53ccb78dd2822fe3448b4 +2ac0d276ccc9158d896d32696c318abbcbfabd100df3bce56fb5ef9a0846457e +0d304e551199d09c277bd2269ca9e9bd02dd5267ff2d97373295ac6507337913 +902e9a8479a71c5e97eed59cd2d0b3ebb984fe169875946899679fce177a3e46 +1c503f5451d3e4e399ddf8a6aeda787327a78afd01e2ecc161cd74f261297244 +09c21ea5589264bc17ae372fea55b526138deacd72fe2c5157a2d4d076a12c20 +03efa7f2b0902c6c1d23d0cbdf945b71975feda3d65dc0cb0698e6b7e552acf1 +6be7a5e610ad76a763eb69fd4eeecc546b1a5bdb539226a73d857a2469d5f0b9 +b2bf524e651095a0c04adef422b2d979a079dc64a45b9e538679e2fb06d516a0 +b9555893a89c1d1afe281ef5b86f8d5e99256c35bb0103cdc6fb8c5a703a0d76 +bae8c033dcfddedab92dbc836025296391f739eb9844db8660bcc04824d11e14 +42a5480b2c9b2fb46a428780f93203d742ae216c466ea9e03c82dd9cc5ef2121 +194151ed8df351bf35cea9a93761230d929ac4c868e34bd2794307aa4afb8ef0 +8f9750b86c285722a1eddebea0ba0a086a477d144fc6e5ed0d04fb46ca9c6558 +ec89ce698fbdbd8d16b906ee2c41cd73a7a615b3675fe8fd7cb176ccbe202b14 +b5db1b8b002e24497e316afc1d3bae038ec0f01e27858724fd80ead5b211f4a7 +d4b37982bf34d067a2705c1b37c623c9a14651162330085ad3c60b62c6cdb0bc +01ebca32faecd3e433a0240785dcc81441ad546a1a58451b6cafcb3a4b58ee04 +b127ee87a3bf6d2b4a655873a33488ad0948feef7ad1e5f17673e1335d25fe31 +8e5185048cb94ffb141ff86ab57550092d0d9e9ea007786ce95df1b75520c428 +f4637d5fe3c34c72cca183e3850bf96d2bc0d69bc2943c70dbd9eac34f039b24 +0ade90373919230062ecf8844c7366dd462c83f40daa60398c873b37a7f9d56b +03f3f4f5e746f7755a2c3fb615302996d540ccfead3e8f1c34fe3b202b959d93 +0e8dfbe308483b9b6397f3e773313be0dfd1533a2fa613bc09af5aaf872fa816 +98b3e5f730dbb19c6d3f0370df3486127a14dee10a4e4e37453176b8d1f6569d +19fce64044d9a2506755184188b15a7a486eb95d4c569c88b130695a0de64add +d77af91f7c5fd7197936600222767c29ce3a09d72882e0feff808a01095adafb +5dc659b609edcab9535f1c186163417e536aef43dd6136cc648b51468c523cce +393ba794c58779c1ee7f9758510622ab7f42facf9d0d79be6111259e1a56ebbd +2aa53f9b08da11dcd42d223e7d91af504e8b594a376058fae800585c04e18e1c +1cc42019721917c8a767a7a067c1ba526e892ab20446b86d1d85502a05f113d2 +e6a3feb44f25b7ea4f796fd9f0715d05ae8ae4afe666afed6e1906782da15289 +ef58d5afce5b996ab124b6d8badee04288fa0e2dde01904087b5204a7e64c442 +4774b79f811437fa091a466403e405564086f879d2dc01f45a589726d8a6f752 +bc6dac0eab42c59638a7b0df16e92d5b35535ef6cb925a1cb594d739996b12ba +a344b16e17e66b8a6d438e3db2c225eccad7a1bde87fa7f25796b99c34e4c66c +2cf42abe1ece9b07360cd8839f9e0a8146608b3df9f63e0791af5d49d855a6e4 +099dafdb96d3ebe65b795b35ed22d67a922901b6fa2b8337c92289ea7e4699ae +6c087f23ff7c23c5f350a9fb283a4bb89fb4453520519c9350a3fd142285fa44 +8d644475a04da3daeb324a5d3c6a3ba2c4c1ebb36a7b0985581bc249bf480089 +c25f73bc82e3d7d6f4197d3a7073c5f84599bb6ad646e6b543c0b22b2446c3e3 +e98ef24456e802c084ceadaaf99bb11d110d2380c94109ecde3d44249b4d1c07 +8fb03d4b9df622007bc138108b6a38e9bac71f91940676029da29d89504e72e9 +bbf75d3ae7619df58a5d66d82308a7aec862584131cd32c5da7f4ca28b37438f +2748f15f4ec9bf5574ae925564fc564f0cf27054b7b470d164898960f2db5abf +b7205e18ca1e3c2bd901d87170f08e23c2dcd3ee9f9ec3010778372b9dd2b527 +b9c46f9273edb5371ebd0cc9cb71f4fdd299958929c10cd4923ca80257afaf3b +caf42ad21f31c12de754242ad6b282a48a8ceadf3242c71d6192385b238e2fd7 +e09d104e718c87e434ddd69f348027b4cca04a464948a467daf1d3a2820ef525 +363d88272cfe019ba677fcf0ecf023dc2bc0fd5895bde423f0f411eb198744b9 +57b8fcabb61b38cd629195cf9942dad532e8a23b3b43a5efd1ffe446f39accff +a826ea559284f10ac2d281d5e2fd3a67ef192ce469004db4ea9dff498da7f24b +e49e348e0f948e807c7a8edb3618ec36ec1c6134bf88494f21d676d91c2b2f68 +c5b1b4d384f12e091f52240eca971aed1079c3746493bf768b9ccf646acb3f6f +0e5e00559933b5929a632ae4f9d86fcaa6b26d6adcd06438ee1594300931a574 +f884d287e8c5c00cddc714bdc2367b15de83bfddd0577e016c94e8c51cf654b8 +5df57513de99454227c729f4f48880813ad89a6149406c89cb34202a6639e782 +a66b76273f2e5cac09912235f5ea902c9b49634c685e215d99fab6782428e7d5 +d2c58b18c7f724fc92031de6869dfce8787b6330e4ebc9c01856b977eb6f33c5 +8dcab0e8e4f37eca49f2468f75b6a5fbc1345de51df17079cb804f41d232690d +3ea448f664ba0688446ff4c904229456d2be144f5a1a4fc540ea107c3407020c +043d26be9a82e267d723037d50a799b98bce4ea638c4282b7ba31dcb3b1da376 +2879e934d1ca3c1955cddad5edd1b46b706583065180bb6a1d9fe674d1ddbd1c +2a57dae85320543d698e929ad435447f58e772b1e01f56366903dc43702ce609 +652dc85226a255c97233f1f5e3ca922b9436e304d326c1eff0d83a3f0e6a865b +6b4c3f34600bfc6109540d73963b8d7b26f9f22b03521a2326e59e2f10e60a70 +57a7c1d46ca2bd284d8dbe0f415d0f961a6b02bf134cab8f480346551a028ccd +8d74cdf783d64ec2801a5c9018a3687bd644ac42d5f3bc77224a47b90dd359a9 +87a36b486397703f39846e521f2e1a54879a8b13d7cd70d4f8b416da6da2e500 +4cd600a052071b7332fe6e1128ae57cc26790380e0d608e67e55e0efc0ef0857 +de4b8ca529bbc4174315df77d5c5b7c4aed351cba404b04ac4f48145ffbd0e74 +904d039ce2f3825ae1fee72b75c39c5cd26247bf887a3f5378f57a49c13d8875 +bc14e757792bab302541f79ea24e3ad24a70bcabe2e77d2af46d462e503ce98d +3be36e39f1aacb33a2b29084ce99a53398193ae5ba2cd316f004eaf527f0c73f +65d249fa9930b31c192034e7f039e51c17e0a5ce9470adad12eb2b1dbef5a080 +a79108e6371f378c52bbd930eaa5f594669d31abcf58176ab582bcf0d74ab652 +f0c4d4594c70cfe64e2a0f3d8ccd8140799ae1405bcd9e9319943021f132ce4b +403238ed374d135bea06947b2e2f7b3af296b101ddd6f829e6fe77f781f0805f +bff51b4e32623858199cca601560c47c7a67ba86256be224eb3214c0b972e448 +2ed7b335eeeb9a73283da91089f03c5179957b3630a0146b4675aaf1aa316f68 +6941caa3f62f5462668fce06fbea53b2e078072da2e6fe832fc9fd17ac97d399 +fa4592ebe6bcff70d8f0bd2365af32a3713dbb06d7006993c789348ce1992ae1 +ab980ed336134e2b8e130e44b59433421e5ad9a0af0287b58f71ccc5d450aef2 +00d60a0c0a8b1355c15931c3a729ee6d966bf62f7b18171746a75213a17d2c5b +6dcdd3ea6074fdb9e7f33b965e693c53fb6b48d88f573b085475374d43b30746 +9cf4b1c1f59ee56148b5254972270169a10855bf63d6db39e784777541ce700a +d2ef411b8867a0c06ec1ee1fc060468072068b66cad2f37d07e1f19d3bbfc774 +a79e61e5456d0580b6b010ba1c711404fbf7a6e9be3e36270014f5653be9ee40 +999a43a0d9b9409ce25cd824fc57499480d8853aa8acf2109f4d041f4ce7015f +01b9735631df4c2953541fc16906217f26a1af5c23e7a2eef345e516a756bf34 +0c74aa73bd8c3dde03268a2447d1df9dba8ff05c48e14e70f62c785f8c0e0447 +95a61bca0187840a674ee36689856c45e6a2ca151396e0b58608aa90008127d2 +e054880c270db5c535f00dbe8c19a7a3303e1a5e4f2e16a00f90bb46b6d5c80a +22f443847db662d39d023dea545e115840c307160df0ea19df41cdb39f11c428 +a1501250daf41bab535c9fe97146137d4fbef4d5e19cf9716c6a12087c37647a +85954b8070762e3a89333300bf650f3be61c3e4fc636ebd7d0741e1046b5c9c1 +2f01956bfdde1fcba2fd926ab53f910fd7c53690000ef871dd333c6aa38d4c01 +91c6d2c8760a90ac611e770005db3c1cdda6e2be72ec6ca8a6419b28d73b4b56 5883ca99ee4a01ffcb31c462fb1c72dc0bae3daecd46da50f8ec6402088fa7d8 5b2b3f1ed7857040d575b55a58d32b0322a1741e67e6d2c6072ce178f26c8f46 4b6ccdd0077738f002825ada3ff4c484c5a7c253bb1be1fd106b100d54fa994b +751e91e498359559ef7d1d455ce1fcce86ff14f4f9b2be44ce290485c070cc57 +bffc60c5e5833f5296c97e64ecd889c8246fdcd9e3febb09ae2642ae7e582e3e +6bfc92ab1ae8323b9d3e8b7527264a9222a03364ca2595c0007c95c5754ebf83 +1c61901ace30d6444b0a85b14b8c6af152353d51759d37862e2142fc90834828 +e37e6c0e8f05c2af030a18c95ce5cb17f72ff719a6c020020373535109b11daf +2164be5181c03742e1bed6f352d424fe32a63bb9234a4e5c5913820b45c6804d +160c034564e18d90d6ddcb9eb5abb7724c43b17a69b2953c9b8ff445f06137d3 +75aca1b2311cb72a7975828f0036fcf06c23cdf0d1f159be20ad98fa68815cda +26ca0a1968cf4bc9bb0c0283bab5e8555f3f8d2a537302f24b48db8615ece41d +91841aff383692268b6e6e8dd4db468b193980f06a11a674593ced444c5f092b +5328b5afc54ecbc36d720317b4d27bf5ccd383f35074592ab3493c8d76ccda62 +cf45fc7796b8fd2f7b6d1121dadd3450aae32c479ed8bf97168187e293882dd0 +bffd60d9b05c57c55eeb9247d07980b46b29363ecce91ec21819a75c3b1f276e +095e2fd1f5631c484bf398d7e00357b7bd94de95e4f887a92623972e08a98f7a +18b703c384e73ded9e2d58fb83c6b76ceafcf743a4d757a89d922b64c59842d3 +8004f2962ed7b8b436bfb922ecd0de64ee6c093cf26a518a9f97b4e248e88a6e +386467b33c0f3148f7531e0ae7348e68b26840be0bed4c51f4ec9a7bf73efcf9 +6819fcb2c558361e42be2167951318ccab1c6b3571d25f8850985094d9d04ac1 +20794f00c313260de3350ac0529b69deea7f69c4849834dc4c28339e2b9d89fb +de275dc5a9ad045a295ae98b8b7b5f113e79e778590a8a1925b597bf0407409e +66e623f3dbd35672fe01ba210386c3f06f2b7ee5976567cb2a26206b14226bd6 +0f72a4a65d4e319055313bc032f98f7425beb91affe1c18c9d55f209ae562af7 +4d28f92400c2ea1b5d126774c239312cd7e0710b8868bda36478149bedd6b643 +4c1065f9f8f548a8ab83f2dd12ea108280bc743fe79beb28a8c530e275129cfa +2a271beb48576c7348841af80e8e112bc91cc4c2e2dca1366d1220a50ff1fff6 fff6d4a266c8d84f5b84baa172f79e1c4e45eaa49bef1b7b4416affa667eef98 0c41adc94ce8806bbbb55b7461f9fa56de5895d32e0572dc9a5818d0984d1b18 4863f946330aa9d3dac343600940b81656e6c59a879beb715a5db248f442c7b6 -b90813408a5550d1d7efd0a7dbe2ccfeeedb655f4009ef60d80a5b203fc2d3f5 -8fcf3762ced81771b824c50c3543210f06fa1b3276cd8bb5741ab82d10bd9735 -a00cd42bcf23bbe7d0957c05ba84d07d0b1e5a063f79b858068126da36007da6 -e56cb6f41c6991c63da50b9b5138ff31fc96ef5b23b16e69791abb9b66dcfc50 -7ea10bd1058e36868598d5245894577187acb79aab0eb4875424951915410ed6 -b1143e6e3d6b5a5280781620c9b15ad715091743bc7de4c0ab310f25d02086d4 -11984f44a9187f6e645c7b0105b52905c82efb94565fc95e4ec55ebe03557e16 -f1e4a46ca6d52af9edffd961f105e37d653062ea94436fb0ae83437cc2eb3552 -1ac207c0dca85dc12d10a043aca99b5c9aaf583d2aa8fd41f41f9b31696963fe -78e10c08c78c032bc73f74cb922398e1004c512e0b8cc7f9e157821e25a12141 -a2d2517008b95d931b2a5df400ac1015035c09bc79ccf0c6365884c08287dc87 -541edb4b74f309134cc57851f44923294804f642eb85f93b25271e681b400f1c -8e47ad27abffcfaf9e0802fd405467d3a4e53569b78a3461dd04f7da964ee0b7 -8c0c61e66aa62b5c851018f2971aa32ced258ba4b68ab2a6d63c770f787a3e58 -ff9358cee4f94e0b4813c4424b7fd7e5931dbe4fb447623d5a0416f01b013b52 -364ae47222dc0f386a8ac92450c00e661ba2d9f5f3716c7f2537d48df6cf016a -ace9740a9f9ded55e044c49947b6594247a72034e1773faa820fdfaac84d1444 -3a94eee9363ddfd07d62397f79fcea8f67eae42066f157e3391c330cfb2c190d -b34ae492d8c8a85679ab659a08e5becf213ee8ecb576bb787450bf0b1803d300 -9d5f44d5a330bc23dd8eb97ddc21efaa3c750bc46d9abc13777d80b8d8060604 -5fd8db2754cc035eca5273f259a7392cf7208dd577b607c52afd943990dd34eb -f50aafcafa591482176abb913264d5d551e2e2569785944f07348c523885e86a -c778381db5e7b73b2ab3b7fa09325ced469943334ae4e84cd3e561c1afb72ae4 -1c7c9b58f1fd2dd2e3b0b7c383d8c855a479279ee0dcb52397dbf842eb4fdc52 -8156a3a8fbaa654b1e8b87fd5d059eb6a7aac9c758640527df295252bbe9a5fd -b730f37f448dea4d9e18ec3e8bb0886a3d0257bd2c8a42a67a5a96815f586c61 -e041111696696d07e5fb4b6a439f43c33601426ac65700515f29344299f18fca -e9f52a4e61f8a1d0f7360036187f8fe457c7d8f6834cacf006ac136a31c0c0aa -47eca767ef1806a13b3160dd02a4eab001b21b51b32bd7dc9b49384f168f9354 -87a039f6ea334b61bac246684c75fe201746851a72d944ba75757b7f858bffc6 -92b0dfd5ac0b6e2e8dae164570747de735b1c26b71b5afb813e26ba22622fda8 -742f3f5e30054e9898e56d9b26750f05b5a2cfd7744e9d99057088df26e4f584 -3d60e991e18031eb99096770d84f35af0b5aa98e3d25f8ec62bc1574a602fdf6 -d1e1bce3634ccf7d4cdf1253338818a413904af68d0d118e24f691bb3aea912d -f561dd555e9726ed474a1f5cb1dbcaceb70496264f485d77372771d9504c2e77 -3bc7809e5e37b5f67db4d3a5f9dfc69e2c96aa6eaf68c5b03a596dab012d079f -c365c722abaa90b1a2dd9cf4038cb0b497159d84a4fbea01cb4927dd4a5778bf -0b7edce16e4ba271bd363a15540898ce5e659aee52545fe890a55a6e71a25984 -23042ae487a09a15e2ec0ae325959f5a302a30ceb1f998dfd82c4b7426ba0c6b -a59a2b64cfffdced679d468fe7e1e38013af804c6b17db6a70f0ec611801d30e -8d1e30bfdb34a2491dea6621d3be49bc6e255a15a7aa7a0657ed4db707c047ce -098c2489bdbb5d728fd74327edf0303f0a2185bf5871b636ab9322cdfe7e73d5 -85954b8070762e3a89333300bf650f3be61c3e4fc636ebd7d0741e1046b5c9c1 -de275dc5a9ad045a295ae98b8b7b5f113e79e778590a8a1925b597bf0407409e +b26339a9da63a9132a94b39a087061a5754698f5cbc4ee9857383c8ef07c79d4 +76e3c979f1f7d6551bcca4bb79ea4e4c7d5d61da58cba3ba8d47fd7b10e35806 +7e613d37f7b6279739020b93ed9bbca3b5e8846d7338ec21fbdf301448b54b18 +6802224d6bc1c75b4229406e599a07ae4eb6d51edb699b184982b5eb4d381bb9 +3980310ec8766d17ac9f8288b023a2ff9d5a00c5256d61cbd800ab18a09d628c +102f2c7a78469083b9fb968b5e7c8da17df297b6f2493d5bc2c227945fb175be +29e6271526fe93d3700e91c4fa914e0d4fb660abc797e1ad95c5d4cd6602d9a5 +ede71bb6a1fae497d3fca94caa99b433c33a907fa761ec712ced777b2cfbdc25 +22f279a8bc0df2287fdfc3076c90d91db7b286b3cbf0fd7dce69a509f1965583 +0cc450fc32f9835b45470def3643e723359b3570301087db893075a59c5e994f +a07d69ee5e80ae37a04def2c2e7b0da9dabddfe9baf1feda26a6ec0b9cfdd3e1 +f6184c9f5a5c919956ac39d4ad05118dd219446b056dd0dcae51730bbaacff4e +2636a82421d404415e259898ed307963bba2f87ef6343e0c98fe746948ca9bf8 +d7c45fba692bf57f0a9c5f7241d6a71fb55789caadd9bd024625f2bd480f9f43 +6ea95aa5a2134d9c6185aae6b51e92b4ff44e811cb95577307aa552eda00eea6 +6350ef6541697b2e097886431cec8c2613dbc28b2536301edf7c734ab26bbe8a +626a3586c13085feb31c4ef0d19049f34e79f34e811aa66691642f40d98c7a1a +7f657ffc72bbe5f6bffc9bf31349317a112e6aaf37fa2c7c222bbc76599a89b3 +1f8abcfeb56ae49d6d893de20e722e6aab7fc5dd9208e8a52792af13685dc02a +e7fef00187178f880b6b258d9cf24d4ea626ff8722b33beaad11d4c7fb95abdf +1167c5a5d56293055ad589cda956277d8ee36f556b947e3eba75e0ca4a1ae442 +894952825d6bd511d460ec118f1c8f4436e69d3a89c5128a4f64cc42d6f07683 +7c8f8f7ed6412eb69e0b039b7ac4c965c222ba763889fcc969eadc73b09dad26 +b5ea273032ae34d694c112ad921c2b8638c38a1c7903585b82b604eec4a48314 +0112433201659d58a096a9db311fa9d23eef66ebf81f8584b9fa29fdb89359c2 +3f52bb5e8aa7479989bd18d242c8390a7556f479730c9dc5a82e908d362fafb5 +027a478a4f099be9a6096d719d32c69610813cdea69d0a1f1e72b83179d0fc3a +0c5022a8ecc03a4feb624e7efaab43f0f3c8e5af942bd2802399655a3d3e9816 +dd8e612c3d6cf898deb0333d0d3ee5739e4624574a7cb54baa3177244a0c858a +8ea7e3f69f12b63e0a86f5a1cc3098afc16add4a6fa456b50e24afb406b7438f +6b4095b2acac170547138b28c988d0477b0e6d94d2e5335921d28aca26e9986c +07394777bd2115041214a71e2f22717d53d81c6e6e69f7687df2b4b49b14bd4e +7131f061afd41ce959f7de6370dc52e42bc39174f6e1a9c138153efb8b380d43 +f0c008f4116c32a5b6a849ef9b14488b29490bdef348237b773bc266e433fbbb +57d40788a4a1b31ff6fde785a86ae935dfd7a7cbea09f3ffeed2279a60f49d74 +0b623297d1c7ebdc96c79b35f04d1a4e32fc62177650678056e77377477b946d +70bae10ed4dc6bb9d92a72fd075214d6766eb750fc87d327031390818d489084 +135d993977a161f8a5b694000ed257e48ecdc1ee11bfee7d2f521f4a88227415 0e91714cc5efd828292f4245ef9875853fa464a5ac6400816652da269d36dda3 -66e623f3dbd35672fe01ba210386c3f06f2b7ee5976567cb2a26206b14226bd6 f9c129d6ee345b631a7987abffd588e043245fe23e2dfde3d7c1fb5ba9bdda34 +78e10c08c78c032bc73f74cb922398e1004c512e0b8cc7f9e157821e25a12141 +a6ac5c479e0bfb55603721c86e6783b6f29f1e803e8761485ff80de5ea4609b8 +1c1b1d00192649e3fbeb0d3788791916572f58ccb3cbe5bf3e71601b02ee4745 +df75bf99e20bee86031c23079cb784a4864eda6111f3f451ed992a78a91c7531 +b876f3b2fef63386a8e1dc0e303fb1af91d471fa80ec379cd065b27d2d79b691 +24a9c73a68c88ec5a55a9c78945a3e72212a67e9f6665474894c2e2494c21337 +56da27bdb53127a5196a056791ea6b8b52966912940d63c23cc0520b2d7ed4ef +e1506ecb9fc0c2dca76fdefb921a51bb1bd465e95eb6d5a2c4b1f2957f0eb101 +0d20a23d144ec67f162eb8fdb0df7156d81ba64e0373ac4529e9ea2b829984c6 +8fd19991af0e905c6c8ee2f4e311a27e940a98a09f1fb7e4bacca9379d5bf7dc +fe0b4888fc607c0bd706d7955de35c0eb30e0a99c67963b02cc1f2b2c9900d7b +26bbbd1dd14d3191912520bb951c8dbc9c50f22805f3c048c846e1ed999d7dc1 +8062f212610d05566cf8d41f560655ee4bdf39a204e19e978834de3830593f54 +21037e9441bf31c392f86376a6a80d4ad2e005c3b0c0f8d8ceade7f619179d9f +1d8719a77eeb762272c0dc78e79b49e99701bcd9fcfa0f38ad5c73c33ee46405 +d9da15f260de0a73a3abe1ea584eaf1f9b4853374d3fe952bd7f1d43709acf56 +0aa1c75311a5fd663420146c5693d08d44aae832d7a1623b25650cd82e802cd0 +629373c0c1efe99c386f93f5b24fcdbaa85afe494978a4270a56d0c32a8ba742 +7da86d47dc6df84f35e7ff46f4aec205349be5634a95d4e3f2546ae17c22df2f +fa813f12a0e147f4b5d4a185051b59a781d5f1d1b5e27e878c726258b5fe0b15 +9be65410c64f92e93a61cc529aa5b4e55eee7a56c13d8c80d8320fa23283c4ed +6d52c8c6a45f5ad8984183d9296bddaffc4c2cecf02a3072030cc7aefa909e0f +a4887648f6cd372d00f57561eb202cea9b0566a1c01d1f5ab52372f451dc9636 +ef98897bb26beebecf5cbbf0864fb4aff755c4eb8c478e23e51ce80528b3d275 +a607ccec4fdad256f948d083afab8498f4348abf7a25e2d5003b2098fe5e85ef +8cad0ce4183bec55417bf7ffd6e88b288fb47dfce7a47594244481b6fa38474c +cffa83e00069787e0d116f6d219d75e6cb08bcae727789955914828b42cec577 +2cc27835b1e15761c9edb36ba2c3ee086dc79daf6e655fbe8b8beccfb3646541 +71948ad27157fe2f80d177c9fcc6afaf3428f0fcc4991aa18dddc8ae57d84bbb +8d28c37bd01a65cff065a3d0279f16f7251fc8fe51837bbd9d9ed7ffe74d0afc +a6604e4d3e37b514e61158b50f7e72014fc3a16902e7dde50aa810205a601c46 +7f27ae75295c15f1972fefb7955f67f07c9cde459334af8698304bef05a07dc3 +0be531f90b7f03eacfde082f494050039b1e81a651fa114b3cea053b3ce7b3aa +bd14ff7640606046a7ca7899f4bd58fc4dee574f1c11cf328a364d9b99de471d +47bc52671e583c08ffe129d2fa6180ea0d68ce8b92169d9d1f1453cdfbbd4e66 +357225d6fc5a5a8aad8916d35c58c05b4c00af05e3f5e9069a6905ca7f820d65 +14dca7836407782411d2f9d7f9b62d770e0dcbc43d30d417dde6745ac00de412 +087742207b0e7f0d171f0ce4999bb1003ec9e7da29dfcb67d2b2b3590b462679 +24b90706f20a1d3a61603284d214f67673d3a37f24669478568e6adf71050f1a +b65547e285ca6ab1af1c46776fe5e36e20879b6a3d639e47e10d846a5b6f1dd2 +b783ac6f17b3d8e7aee6249a39db9cd455bdd573eef26bfd4c1f56392ed96de8 +cf400034ccfb391cb82148455675c37449fdc261801bb8529c7695d673bcf163 +7a8553f103ae032ab8bb27720928661d1e8002f8e11272123739fa88225d719a +838a91750115716cd9be0aa19d2c466eebe4bcff2da969521e558e74e8ecf065 +71c4918d4b8f216b7bdba9036edb693507441ae36b06d1cef89227e20449b027 +dc1dfc01351ddad66b748a5d14273830045dd98f5da8ea31519bde3cd64a9e58 +e6d2a99f5a493ee6ffff83763628685bfe5a379d7887076d1885ba2c4f63c35c +9b44d85a42c4ab3eed641b11a56a7c0d83515a6f62ef0b4b452a43c246327bd1 +f9bc168e7952e99aae7e9f519216a3c749a3120b373a9cd6a648cac0182540f1 +4fb635d71dbef87e1e9b7208c98bbfaceac8865135a6e0be3d584ff581170534 +49aba705dcce7936d6f7b7ed5768ab763f81019bc6c901a15cff778dfdd7290e +99b7c996f6b884dc5a1752a58aa22fef6dabc3cdf38e04777cc51dd791b55636 +aa63d04ba24a2009b744888777e8047ad6f4ef85fc21293fddc6853ba64901c1 +58604c09b73911c848baec48dd0df33b106bd30a9874893fd77663b5a63d1fee +0fa45a4d4c0e916541612d6ad5fa60602581d204e70746a6292961f7939a5b4a +9d85547186a4edcc9f06e5f7c356d972d6d156be94cf5e1bb11e0dcaea4f7e0b 2be8a70eb8c3b0cb472dfc5f9d1422aa1ca681b7623fe410a9f7027a9ca95d69 -0f72a4a65d4e319055313bc032f98f7425beb91affe1c18c9d55f209ae562af7 -4d28f92400c2ea1b5d126774c239312cd7e0710b8868bda36478149bedd6b643 -826028c8ceb00cc8a72262b28ab4697c9ed5100076cc27dc76381c8491c78c10 -2e5dd132f996c9eeca24d4663f937e5e5935b896b1bb696930977cb0ed722e84 -a3be5b6c843f8c9f87e38b02f182017072b3df459a1a7e3f227fbcdeb1373d1b -45a091a735aa1be3efa3ad89fd1d044b3fef4fdbff6148c7a9e24b1cd1048d89 -80b657e3d565bfd82b87fc9dec95c4915bb969a449f8b7371196667fc69dca00 -d5b93229f11a527bf2528a0554b95ec5dc21fd451380332b17385543cd3c7a83 -5feddc06542c849b33217e91abd13e8ebc208b35fbaef85bfbfe5cd88fbad54c -a85a28b5fd50e7fa846a74e37f29b820ed74f4fe2dfcd08b506bb54f4b64dae8 -82fa56e84ec7e396f97806f0617814b2da473e6475be1d93cefa5216ebb473bf -20288fd650524b6ce3c45522c412664ceb382bc78b0d72c65e964d7e0a168606 -cab865910ed8ade413af57a20af437d6cde5581b3d15d78bcf52ae5586ae1d3f -e51ef88f3ac585d5a776f026977dc229c81e68b360f8cef21dcbec48844f90ec -47e49fb45d2940fd9e7a905cb76e42b51ce1e69d7b990ea3807e56d1c4bc8cd5 -905514727f24de3b3bdf37701954a3915824290e12561ce42960ff0733a28b84 -0213d5d7b9b82dc36ef3e19420bec516afd1b27d7ad03e243530c198a111bbca -117020b6c86c96efd9c343f2f62991c8dc2ef39e2f70903fa7cc1944a08c3fee -7a41df7255c7d308e663b53c8df7ee8da507079f20c599274142e59721ea21d6 -bfa0ca24afb007e9a169c627c8c15aaf28379c091bae5a5adae7504d7d405cfa -5c6c6337984a961e21770ae4fb3c3d60cdd6c44749f66fa913cc0afba0bcfee6 -6d8f052e2b4e842617c8341c666d10e573f950d009d15610e3b4a297783c26fe -b694fce273598ed927c67369dc061372edff607f367e6cfcdeb9ed6ef96784a9 -502bb6f07a4f9c10c4bd7d6a17336feb8f0274c0672240925e64b76830ef88ed -4e3f7578572f4b54fae02b769e63357c6797453f9acad2636ecedbd309aeae25 +7d0060e4c98cb562b358daca31f837c090e239742f6dd7fa04afeefd6ac3257e +d62329aa2dcada088cd7f7f81f7dd6af8d2d6e507154674e9e0ac0b42c63eeb1 +d770bbf2ee6a120cdbe2c40ded56a58054f4e335d9274f64126a00ed936fe6d5 +df9f49679c5b54cf4c556228be9ce33e08e0b27e6a33effff34efd10132a98f4 +57c778b188a39a178e1658e1fc83155d9a41e84a6508028335156900df926b16 +2107bc0caa700c8c1d42a31f3b3bc34eec1785bf6043de2615ca436dc26bd39d +d24ab60da59846b69b88344fb976625f96d0c10c6c0c924b8c9fd4aaf01b32b2 +6fd2ce6b7c4040b52535a22d19ef2cc0ae21ddadce8c80b50fb1fac3ef58115b +1b892e00e8ad5ebdab8793540bd4d1dac3133b0f092e789110cc1b4b99d9ab4f +77023fe69dbb31dae4bdbafde42f92d45a26370becdcd5701522928b6a73f5fe +bd1ffce5f2d254231ed58ae6933ff2cd0e8dda25f020aafc0a30ff5ee4ccbbd6 +8bcc3cde6c695b341cc2e8d7ee6157e09f96478b7a8b7bd1b7c4f2c7d8582b8e 56d8516d7f1372b28a190e2ee63dd3a33f120accc85ef50f1ac5651e06bae72d -5a59688b1cc209913f15a6babb28d95b939c0a0a64b778164749965ec39995c4 -f69f1db424770f4c0968895cce8e672dc25e987d402138ba4887b083ab821247 -d2165a3dc4f46981795609d095fe8b2aa8af73c59e72c3c823c6cb330c878375 -41cd681d8ec83ffec4f599ca173fe893c7a312788d5944028275f588993cf7cf -530a73dc0b0c926e263ae6116c7b9df471b71f0f650e46d9a84ae40763f14009 -b6dc30e17f48612e805bf459c1163b93c8c797160dd719f351153bccfde4d033 -f1ae6b8a1e3ae6a8746d867ac44807b86dc72889f415eb543bbe6018bf2c6dde -b8ad0ab6e67b2bc498007a7983282ebd1cb737c29939a9add22133a033d8e74a -fa54f9885961f057d125692bee1ec510e99de637253f273d33345f5df9ed6dbf -09b6166c4643184817811d12c0d5993df05786da29993f9b6a7050a14bceb186 -f89b2a5849c961c420c17819571c34982427b9a05c5ede886df502643418eab3 -a1501250daf41bab535c9fe97146137d4fbef4d5e19cf9716c6a12087c37647a -6f366de696e5e005b051af2478e2fd2b69a5c628b1cb284bbb7f0b3f09fc5764 -54cd546bda2927cd8af5d9ff7d649ab35e8a5d92f5c3a8708ec336532899ef4d -86d44a984bf04e3822a7e604f58b006a1718eea01e36858d395deaa7925e2e44 -4484e62b918faab6e22f75d3bbb623da98e9179fb38c25b7a2bdcdcef80bef5b -55c9e5afd6710bb7143be7977700eeef76d045f1bcb54cf8b19bf46ab4acda0e -140bf8e541b3de9b4caaeb32f2b670a891f96e5ffc46bb860b1eba1db06691db -01e42f20850a067823a1094492188bc0c0f72f9cd34bcebec2272f66c75f73f4 -9a4ae0eb8c3ec350068989cade49b369f6dc1274623ef6a297cc5d94bb662cf8 -1a5885d1f39100f12e8646d096426335f8e76fed0cf63dad0f95642f9b3cbbb1 -39a3a148ecf1fb9d02871e03e747f24dbe7da6b48297f6cb2729753250a5311f -82a82a6b4dba188469243523e4a6fd024e405d66d0aeb4589663081e40a5993f -ac0b2b65014f3cb7184733f4a4c89d4e8753cd44ed511939e2834049a511e795 -a5c35b402047c559501762fc78a73315440428deff87f49d9d5bc646ae8db9e9 -523d94de2738df3d17c9916f28f1f917ad924981bedc05661b9745c426b626e8 -e7213208762ad15b3d801bb0027c01fcbcb0ae0cd083d2b364f44cbb64b7bc0e -11447e20b4e7ca4c7d4ef7b49ed412582414b35f4d457df735f6ce053067a2cb -d7fc700a746c511fa7989ed994740e2c6adf8177df4c47f6dc5eed9af7976ee1 -012c1ef4a62a6f41ab0d416a1a48660fc1215f5489e660ff41452044d94a0bde -00eb746ab26a55ba6c53d8b3260f4d3cb48919e629ab9f1a8071158d11ab097f -aa5a705c3925310445303cbaaf57ad76ef3937cd871bf6e350603c4676f8fce6 -304685258605cd9da92209731642c74b7830895aa5a5e949680b55cdef503c18 -22fdc216dd348375bc6d3277761ad26a9b2754c0bd300c119380d6b849efd1fc -45a1202be80712aaeedaff1bddfa1ee3a897e874f3a1c88350b91d9223dacd87 -bdd5c8d0c2852b1cc69816e8b475fc0cc9dad0725ee623f4d3cd88cb106722bc -288e69bace0c84bfa9150c95b2f75d797e2ca716b1b08e6a989838fc6a56d194 -a6a0d82d9cb5d8e8954090692cdaf9a225bf3000155fcf645c94af63a5969cf1 -fd666abae3f3cd985bade5b089391c6547d6604eff3bfc779c03cea5dfb7f688 -7a71af3b5fc9aab773eb25cde6e21b344608ec7f1db3664e1aec04e97ca440e7 -5e92e851331bed72c2f071622f935b13bc546052ab6bf1d93c4bedb1874e4ef2 -280428476ef9fa360b6e9334fc1085371a6991a8dea25d21c89bf52303d4ed27 -ef8e677a14b480f7d9212f157af45a99573a86b52184c97877d1962afb9c91d4 -6edb45a2a50fe1efee2cad6d4e6e9832ca0915cc9c119f39af5355fb8413b289 -da0f1bec9ff9ca09a6187b2480a1d6448d4d7b97804c6db05ce952b794174cdb -e2fa1b00d2d2b79016bd0c6e0c2c5065c00997fc2ca66367c7d41dee9cbcc6ac -a254fa3cf6f2a002fcd7c8d7b7d42b073aceca69e969a5b0467d4d294d8c6ab5 -2fe0f577c3bdd5ae66ab06b97092334b740ab016de1fb629e2c7a94d4d967e32 -041fd3a18ce6785ac452ce452ddc21ba73de2e1788e9f4926d7912c66f089bb1 -95ccbece717ba641c01be95dc3fd6bea33e4d25a61980a03d1da84d9031fc90e -d9ce2462e1084615471bd6c5bf6b0e1b384e35780f8b3276695796bc9f1b41c4 -01ebca32faecd3e433a0240785dcc81441ad546a1a58451b6cafcb3a4b58ee04 -061b01691efc83a8ac9a6d474953f12e467ea3f8f61296ca8fd7447741c18727 -180ac14dcdbf3759430aafcac0a4b28201914a6b2ed15bb4b470cbc9b7244997 -c7053257b8e58e97e15004238014c2ac5c29133469df69fd8895251a131127dc -53bef52f912acf44b45bd8d0ade66755f325cd7ac00e72795ec9dfbab4c1b896 -a264b30a431cce5b1a1669223b7ab0f3aebdc5285f251e4f48aba3726f5978b9 -96ccf99eda56ded7a74e6a121ac28a5474efd5967681229f9f2275621cda99d5 -fd4187d4951850f60555688933f56f8e79e09fa8556707ffc604e7227cdd43fd -a6fe7f814a0af9cd0702e16a22aef8abbec5da283e4c077c6680a99e34ded045 -18e590ce44db65e64311499b0dd262ccf31daf510fce71a5cfcabc0ea887e982 -309e6e0a8077d89384c6f0d5acda4003b0099240c13218f4aae87bfb1a2e6549 -51a24a134668cffc7c27d9ced39689cc4e11d98438e624ac74447bb11c5aaadc -06a4a70caddaf2ee025abb13d41dadafe419da511f4c86f0d0f2b63fc439466d -4cd076a59bdf4fd1b24f04f17710f8777ccc93c0f5bb4d5076a68697bfb506d6 -e7c6c5e694911d7ca9ceb5fd0787b66dc276e085cbacc781a04bf2dc638eec2b -78e4320513ccb7ce87d96a37bcada9c52fe402e96165afdbbe5c40ab2517b246 -13daac68642862161fe904098001c323a4029aec7a560c808b1b37951ab4f891 -483122a32eac4d7db5e051792243ef0baf140b960d863bdad66a0b13697a3583 -5c77277f4d6ad20b03a69d2ab042ecc9d56da536ff00ea5a9d49829b4a817a89 -4a576c2352cd2283e44e2ff8946f60c47974d3f7116908b2f3af89328d0b0497 -52cc6b33e70cdba0cd2868d8f90e1d8e15c203f5a536945b9e13997af7ed0d21 -a5f39ae2623d4ca3c8c2625b755315d35570bbc8d9a49bc0331d3bfc0a4487f8 -3af4e655bbaabcbdff639791935101eb7c6ed0ce3e0141d09896d01ac9a440ed -81dc454d2a424048b4c525a04c22f2eaca189e1ac8babc9aa4c016657f3736ad -99563e2c59348f1cda5070499bee85ab8a72635aefcdda13c8454b83ebe010cf -8dda430bad837cf356ebfe7271a00f92d4802ba85a2aa4f28f5fda02eff98338 -5eabe6b4d9ecabbeb050b2e646cbdac4e265e6b40fec3f35eb23834d92505bae -c6fcaf5c357c28461cacf9da67723aa6704136a19b0615642fb7409c5c17e38d -139f31c4fed4bc91c3f2ddb59ef81af7feaba999693771a91d2d88578c7dfa4b -9a7b6bfde4985e82f671e75262aa0e20512e083ddcaa54e1cdffe7b49519a3be -958e82458f1384fe0fccabf06ea3399e8522be4b5ef95c882ecf932f33b06b68 -2367f2a6655220c19cb85753029cecb06c4bc284bacd88dff4d8e91ecbe0907e -af539611fc84be3fb44acf5852f01f1410ca1f599ec29b01ad5236e39280d277 -4e1bc2a7fc422ee2ee6a686cc58503f397cf898df143d1759df70ee5c5a8d411 -6da086fb73167e54767d266fe80d9860b10a80065e970dd85873395e013bfcda -167feaf0674f7d6e99943920438688edfbb2c7f031e0aee4b03f2843c369222a -41c96df8b72b3c9693ded032102eef5c7d354772d577e949d061e9b631f9a2c3 -71a4b2970df0d368cd3a74acf967e743f6c6a2ef22b1032c4290bbd04021b6cb -264dda46242a930297449d5fb74da1c6f7ce7e0a4592a5e30a357fe04eb9622d -8438ad4b63db524e5c95ef084e5460b1649f834d2f0897c99ea20230cf01bba0 -8ceceecc07521be40ee25297c5316d56756788b48e992d90d235ac49ca9854bf -f8461b6f8a8b894fd4b7bdc0abcda42a0dd9849bd5f960b12485c1e284622597 -494e43313b121b97a49dfcb0c2c0aa74aad3956c02585f00ea334a73381b78c3 -1f535f5d034b2ac0e568fef3494d6853f827ad1c59551f78a9894fe634233733 -5954ddf026038976f185ac077935c2e57309f34fbf70bd0fa0e9ecb84ea78efa -dac915b37f8c9333398938473ffdaa1e05ff6d03d3be7bea384d503eb62310f4 -376ce969c7dd8df7b0ccc5a99946dafab757dfe83ff1162b60e7747ade770cf7 -f643348c888b2e75476d306107bea5437b49a67195ffb58bed36ea7e4a73f849 -39cbb57ad363de140a7d1186480415dd9a3fb9c35d6888921be77cf58cd5c2e3 -ae2d18472d5f07759848ef26651aff9c0a358401741e7764640b38fabf3469a4 -73352156347236ecbc2135509934bb7da79777cde9a6edf50bd3d741226dd875 -ef45d865633cef7768a05b1abdd79b9102ce0eb1aef614c7c3a7d8eb99f4964a -746e9ba93f03f0f61df3713aaa8b6dad9f51cc3bf03cd67a0f8ab1a5c48adfcc -b4a8281c93d067a5b8c59f4f3161e542dc9175689bc883cffd3f8dd7cb634c66 -5375d950c2ac0e336844af01d419cfdb7637d7feb548512037adf8d2c6880c56 -5c76063a21074e67fa7846cb320abc057a17e15aad301028bf7155abcff60d2e -de5e0be0b53e7d50df9937b3e47b885a5d1cce0021a2f37f6fe71b9ac1f5aab7 -f441b2351a64a7831d87fbd74210fd2afb0d775bfe4d1efe0033714bc35719c5 -54a3d7657be58591499961fb36a96003037e6f3cac0733754a5ad259a4cb541b -ed7077a3989b0a72c4687d0ca057043da823b59d954139e8b872cde65bc3d2c6 -22e841f0fc5c09a31b2fe74e822a0d3912da4e26e2d85a4f962158f69bcdee5b -6fcb105002890cbe38c3ffb6e2b911012f01fe5652b940952149605491b637d5 -7545665d11e598abc210a6fd3cf4623f2fac368e6cd102fb49efe52615a6c834 -0f95236f5fe00f99cc298898414505efe544c524e5fe5fbd8b407d3330abea64 -d191231663b36f07c88f4e17a401972629a3c9166f23e76242ca607fb130a322 -347f1d83975d0d47f14d8d01b0d1d7164b956802838d9bef77a723795a629f22 -dad41366b8fb11235ce8a1b6a0837d5758c08e0cf4c710ddd5bca41546c2d577 -9b65d251d0abee150692c91cb261d7517bcf26fe8395c275263fca21641c43a8 -b51ba5049f7d61cc53d15d59313c9ce0b6946ea47d58758fe044798ffe59aca5 -746f92b625d7fc474c0925da4db2162dcd435a749adbe5d3d67e9750733e0254 -69e9dd45dc1b86f0c790e2af06e6474bb415b4b747dc7982093ff5c5b2bc3d61 -2152cc53b274dcbe7b114aee9a6062c810ea20fb5ac75d8d141937f5f071e4d7 -b7f4586645360c412431e16a1bea0cc3b86f98fcd1a49ce7874f28338698d8ba -cb1778ee4faa3202110ef0aa3c1a45d325bef6dee6d85c3c94f954eb726e56b2 -5ad89a12c41ab9773828961d358e1411877f13863a7be21cc76c73e26dc68674 -b3a06366e8d84f9da4c9bf85ec1b8aa8eceec3b95543f214c621ee6b2580ea62 -5174a2c02a0f2296568a4e157411c000433c89d718e54603780133b4b18e66a8 -445c1c4156a3795f3f320f307b2fba6ea957d8448f4b10c5241aea2adfbb764d -a67bb2e009d28be0ed05ddf58bb05cbf590993ac586a84ed65b95d7d7f363542 -d61ef56b2451012bf8ee777670644bcfef1c55f314e0ea97ea8fa049bec38bd0 -e20293078d5f784ac7d24532097b9d39b5ed1ceb0ffd72f0b5bcd44136bd981c -4ec3b5e65ce6179b75c7b3f84d3cd899a3a092ea36f1255340228a61ef2c88c5 -c781f8cd7dcfd3b66f24b2c21531a19e9fd602647ca60fe57bc0eb6715051305 -5e18ae53b3f462710671bbda695561fac63793ba0d9d85ca1447550747d7d0c1 -1ba62612eff3453fba41013c31bd4376ca3c34d021b4bd2939dd432dde6251b1 -8e9f4091738d5be34fa6d24088859136ab8dd860fee9f329e40d86f2470ee608 -0282c1df92347a6397870d0997f78e7cb6045ce4d692fc7fb73ccdde1ee2a76f -722fcd3407ad005077f53c3a2e5817050839f92bdc6d6a937c6c15643a502bde -69745335c4ba3b4c8b52f2dd68f4a1297cbd787e0e76f1993aca6e5003384a56 -1c8d4957ef656ccad323563daec41544fe6264a1bda714580f3a9d7ba97d21e0 -334210b39b4727e993e1fdff34f4dbd985900609ff12d9c9820c45d7630d71eb -95fc32a967fe9e5a002e20b6e4579fe8d30a63924cfcfd14455a02ed4f149e9d -7a87350537842e38df99cb0589cac4e4c3ea36e8048626833f388d944f0a21a0 -2eb26c12c45001dc956e57cffefa80cf29d3985319b460bd9ed288017d6d7d96 -99458a028d3bc747d22976330757a9e25873cad1ff3410030297182b0a55a74a -700017d5f5fb86ace5f72d4411c59c8ae37f70366434857ffe84e524a31b014d -a757f8cd0f37cb51e980f5bc282c9d1ab1c43defc7f3fbb40e5b385a217f9d54 -03f5043a2ccf6f9598b3ea1f8c47548c79f97189afe37cdefcadf1bc99ecf00a -619d03514d3fdf5f9fc11da9bab723cf8a5cbcdb7375a75bd8fa4145af2ebac8 -86bc1cf5454368b92ce2a667adf2d0296fff7fc9350c11bd1c56c893efd6384b -9a18d2facd7a9d1187516d0ad7ae7c8ac4df60cce82868edb8d728a3fdbc8b0e -f46df0ff842bac970fc821478578c83a8fee0f0c1cc08ca9bcf050595dec0305 -65df43b14305f2a7de1846e988d4a197d493e98444e396031ed2fc7efcbd2137 -2e73f335705e3aacd04d78e220612b54f7a815975cc5f3315a13ccbde8345948 -86af58bf6dbf37da19ee089635c0a841b659689a0ec64e77a26534a9954e8f97 -c1da39d750b6deba3f4a062a736ae34d9d035ebd8ee66e9ad3a7edbc1ff5fa3f -cfcf171ba5f1209b7d081bc5aeaa77c84fdef58715cf2b7e935879220fa1c88d -6bd9271fb8a7bd49a7efa90f373bd394e2e4594ed6c9053f8346d8169f4897af -4211fd895ea240a1a3c0ecbfd591b2b4627459d34c358fb3b10284eddf8e605f -fd2a9951cff7a9c0c80433c2c420a19eb628ae7bf1d63a13a00c64798144473a -1c4642de078f3c01134e4abe61feb606c06dc112322521c830b88d251144dee1 -849081d472ea95c0b3891a8ec3ab3191e25b595807b272092a324b09c26fb0da -64a63faef6e151450f59aa47a30a8730a9570ac95705b980e3eae79e884e415a -ed932efa0f7d26437f8dddfcb70e940cd9c42cdc4e852de4d7c12800128c7aa1 -4c40f67d061c8401dae61babb0253d1435797c36ba278a8ce56d1cedbff8f557 -f2c4aeb351f5329685c54e80796cde77547d0eb0b500e07a02477b6219b026fe -44efce3d64e036498b309f08f7559999cee8f31dbf4a6d7f3b21dac914b69c59 -abaddf4531d841f38543b3acc2ff01b48f9f5d00b4ec9c2d253349570d09ac72 -14cdb7403bdab40b2512c5b43f510b763fee6d8efc3f3d52efbd43f862c3e270 -15b5d8e2df59db952a68379e922a3e4c13226bbdf3266d86501a22fed8c2b1e9 -3678f3a22111b83e3b1fe13f3549d633c4a11042822fd741d81f0a539b892048 -d44cdde2e095ccc3d4aeb91baf6bd1cd9a9a7c0b8405f9ef036c8a7290a79af2 -45d0b9fff907dbb9193e876877c836ea2d04ecf358f9b2ce920c78d6bd0ad61d -8a9748e009f07add863ddc530e2b9b6714ce11f5a889c4a3ccf517125b34a16d -0cae13058bca582af29dcd1812ae3d396e08155c89553316f25f59f8705636ac -bd2f7cafba11581f495da52700e5eef89b7136337e466ab06ee9572320c03a74 -aa45fa3b7621aaaa3e40ddc3c88eab869155a457055c7f9094c3d9ed60472483 -7086214d6aee284e4e81e3274851dc4199911dc9c2c345f3f283605a0e3d6d1a -0d32c3235e1fadb089955e003501b5df491ef54f1a4ca7320ba9f119b48b370e -4cbc0cb8dd6754b15e545a0a26a770b31464bc9f070db643adf743f7de00164b -e81f8eedd954de2f654c3f52711eb14ef1cd595c3d242eea6c3bb4b8e5518137 -8bac05ffebb73c22a2f65a8f7e7aaec07ddc16ae3cd0a7b74e4a34e04ea25832 -3dd26b1f5145df21fbdc23b4a5a1f7b897cd9871d209ee317801dd5713943096 -b3b4b5b931253a87de003d18b39ebd49982afda4021c4c7de7f4082bab04d188 -3a2779be4f068cebf26f91719ceeae2e1c858928b5519f5eb806379c9364cb2a -941491b05aa5f85b69b1833891f970f1cf0f203fbb5b80541c92e6c2f6473f88 -91235731f97f5dcf65d7b8cfc7b82b6ad2ee05c4229ea9879ffd693f7356f5d6 -26dbcffef067af792cb6f3bbdca66fa8ac765f44c02fbe06efcf37909a681842 -b0b6560074404e15ae2bba4f10f8730be816c9ba717ea5a6df06bf6d4016a665 -5ae5be014ba43d0054e9e5a8028cef55ef765733fc42c58d91985c4a1a95c980 -d774e878ef009be9b0e4b5f48602559fddea82ad860643969158582a9c418185 -b5c00d9c573736609f09ff5ad1b68ccdb90f53eae4a43e26f003cceebba47b3b -fc4cdf6dfbc54cd15227026648c03a6be8a1bc57e8b1f4286ca57f25fbef6d11 -38c2ac73630e567a5a70ba8dec51d0df8d39df8fc67f25b1f35dd02f4b6e150e -1b6dd3b5c41b2d5d99fdb2d0fbf7dcb9f29142f37f79399f585935da05c5de55 -ae4283a8eac969535e1beaee23a1ffef309b08df04c3eac5f24f3385958a67c8 -a62ef44c94bde81531ec6938d9971802c6b01492bb487d552052ef83707de93f -c94bc2d1b33fc6bdea57b3008f25f3cac75a82bbe644367b13391ec6eef37e93 -f51a2c88523a07e0df9abcedbce12e768359a02704093ab088176f9e64880317 -55c7362b043afea5300915bee55df239d1ad86f07262e445bfefba3e4432f12a -7ccd9daccf569a6016173298dfcf6e74a16b169b68599a853f19e516139daafd -6b6f00940c2048e1087a6e3954929f5bae1be3e74af0e4d67c16c7645a588105 -432b8b381e70611b52307ad0d70988316ba3b554080e4433dbf749b1f1378533 -a7520e9925bce7700b42c7773aed3dfae56f8b6de5bdf63ae03408234499a54b -f95ea0508b9f21d93191966fe39d3f24d1f912758e9a94f0bf756d1f5c69a529 -c960f579dde942f2e40b20bced7823b5ab210742a69bda0f0e698e1551eeb6d9 -1f915acd578fbc7fee5079b76e1dd31b5748b4985dd7878b2de452bc5d3caaa9 -36cbf593ac8db5a927448625b29bd3f415a5583b323811142e1ebb8e7cd28d4c -5f6a12139bc9380b924bed4e16e30596b9119ff7bf3accc871b9bdbf27dba0f0 -06c5707fd408f1507c79596bf4d1b51cbb39e8eec0ad206744767cd7cc326ed6 -9e9dbeef98833556ca38c34d5d29f94d160e893a0bdf8a379369b239ec918933 -7e981ee9ad6af81b6b893151cf26abc3c94d1720a01183b9254c6b592dcefb36 -429b50c6e459512838b71bb6682b547df3fcf0752f7dfa0d005f40e2582d2bf3 -ded4aae22b045bfa6deeb82da843efe78b28ffa06d936e174acd3980c9722ae7 -41a407203331ce35f1f61c1ef3f885e8b8e6eb7c2e044b7d58c214dfce100871 -caa02641010f59fb8593e2ed0f770a89e3387029f63c0a9c4ead1af94fdeefe4 -354e5019378c4e7d96cd82ad379398911d92650d69e13ca7982dd821a1c5655e -5abeccf01f8074a8004b4c10492de2274eb6fe70fbee2f07da0e9693751fbd4c -278fe7a833141ed5e770d3f204cf837137243c59b083fa703486785d9be95cb5 -0977d2f7d367d7b3a8ebb4b09463fa9bc5e2eeeb93dcde380a46bbbc2ba72a04 -44fa2f9505fb9eeb49a19791cb187ca1382baec6fd2ab51db31da77e95e0c726 -4912b4b39370659b75386d6a974b67e4c7e5434f1604912c6b742b76c5f80401 -3924149d3a71dd370a151d1a110defef096de93be043cf4aa09b8b765665efb9 -b97b13203de7d12249db2b0620df7cb2427e6285ae52fdfb28aa5c2ad8b77360 -09489613d4dee865265da94f0c652a7aca4e9369fcb70ed5d8e73845a0d03fd9 -5186b4db47ef4f531dad78d576b9fe473379346f280deffdf9989fc0b579a806 -cdf24342c9dd0f2672adc780816350025db36560f4e5aa9226a993627ea46261 -f1b800d77abd1d48ff1a091494dab0cefdbcf8f839b81b15787db45e78af5d4a -393ba794c58779c1ee7f9758510622ab7f42facf9d0d79be6111259e1a56ebbd -45226dc82b41a1754b1ce1f18e264f447d6fe8d7757d12d601938906965f58d7 -bfb1a9b8cf4af746bffb1cdd3fcb885602d2e36d31966131a6cf9fcf97d5449f -6b97b650c06a253aa0716be82054881cb85632e2ba8f8e206819ae30bc721009 -56e4905b054e12740109b887afa013157ae9bd4e23a1a9d0eefe4092ee921050 -5d448cfcb36c8f6b1c56cc5befbaf65e834c80613744bf76af759eb735b9336e -01e46127a9aa9ecd0b836c0f313368e590c449ded8d53ccb78dd2822fe3448b4 -a216c554f5429a2d9b78b6d215e318f471f5fe57c845919be8e05518167df4af -2ebec5ad12c46e226578c88154097977cdd7384df4b47c98ae1b5a73009b8d0c -9d175467aa29dd3b5e8728e15a6de49b99b762a24fa0648fe57604e4270675b4 -6bd1806df951cc6074b1c1019e3cf27ab493e421bda830ad54c2965badda0a2a -a72e8cbadec2b9dfc5ba8fa553620dd13e597c1094dbae865b122453cfd27c94 -a4ea8fed43ca5d0d4f09daf5898b70e435ac5aa0469ad3ccbdd6c2e6a2f61bd0 -4c6d13fcf37ad1246690ca798f7f9ed574f3b33ca634bbe2489929a14a41fd06 -2eabcf91e7cef03aa214bec4fb2d1db5f305588de5de1ffa15f707ceff038bda -c08573554a6e1a3a7c8c41a8a3f5f90a99fc2061af8d515048562a8dc0409c13 -6c136af58a090cf460cfd495f6d46e1572a75fa0f7f5f7191e6b974f1edb6023 -e37e6c0e8f05c2af030a18c95ce5cb17f72ff719a6c020020373535109b11daf -c0cadc2046d982a30b1c6a4b91b3a8475bf69101c04382616c03f3b5b55984e0 -c6ffa24b855fd7d6fb7c1c71e1785c3cffbab4bc160985d97cf1df399525b04f -7cb537397a8f371c82b503a459cb2efd310d62f1a36d3578e840e0bb59790db8 -6bf2e63258dea34f07f25ae21b6109a755606909c434d856cf18fcf482660e1f -c5b1b4d384f12e091f52240eca971aed1079c3746493bf768b9ccf646acb3f6f -365d15023ad3cf01dc64efd7abee52477376594bf13b9cf73973fffeef536dd4 -ce5182f11629e431c827bf6a72ba0974d6510ed12cde60901ce079f4f666ca27 -174568b0887e4da8e29ee0865f208791e813b1e5968c922bdaa6c7a49ed36e20 -57f2c92dc8625a9422aafaff1f0208759c6ad167dba066a2b1e33c903af124e7 -75633ad93688b75d05e60de48956a0385f67b8d0a276b16a121783b7284aa832 -550445fbf17934c34228fb1aa8c60eed5d6cf5abb16bd9b0358e55ad0cd0c9f2 -d147362789d7f704b438161d0cf1228df40c67600fc19b048070d735d0c3262b -0c1899b4e5cd4ab52aa5c88aa06cfc9e2cd252e7708e41f47f1f1953d6a4d977 -72c36e036e34dbfbbaaef1ec1a6ee029fe2384b491a030474a14a0241872d7b3 -be6bbf79c48261a3c54c47d19003601598f219a985ab2ff54020efb18d53323a -7a4c4d3611c1b2d8cc0fcf5b889c64fd95d2d63d65e3ee8786ccd7988cd8d5a7 -354a82835d1c0264bdd4ae12c8ce33af04560d96dcce0472f412828841b8e1f7 -97e0ac16d62be1b320b11d23a2ce09671604115889c09f4070d4666a26821693 -5fe0768a47090dba2ecbb66cf4c8d405f992b0e2a24c03cf480f77a70cd8efd0 -a4bbc21a3a5133b50bdaa33e1fc82b93aa0ee1c9609c583a310b9ea1cb2b5708 -512a462521cf2221911e06dd58fe975ff1511460cf4d14d441e9a40b4cc203fe -3e69b5bde7413bccdfebf6f0062d25d1dae155121945b172324ad520ac0018f6 -3ede11a5006c288d12b5b65bbd33d398a764491b4400c8fc3fec83e974c0875e -645def9858a5f318b1a0c6b2dfe362e03ead69aec62d92dec7c4f64a1e0bdf58 -ba0777fd2d720c9dfd4da24b7eb3f2c658c5f872263d8c52584d6d1d3634ef5e -12a32fbb6f1d8785290fca81c9479b351fa8df646dfa4072fc91e5cec339de14 -e2cd5463424e7c2ffd6cec1c81621d20bfe1b7741ff1548574ac299b2e65eba1 -3d99a771e319b11dc0804258244b1523eba648f7ea1f548d5e95bac573e046b1 -c1ccb2e841f110ec639fd46cf287648e11ee0da44de72b3e2cebfb2f67e705f7 -46af53efeedb1cd366dc8d031baef9f893b2f27745ba12096c8d18288486ffeb -c2f88a56a718b6178ab915a8563e0b0f19c6f377ea6507b11491f0a05584574b +b43f068822e680db306d3251dc1f28b60b45a6286f5309b2ce02f71726139656 +35a3067d18d6d67c239fad56d295fba03452d15e1204fae5384c16fa56043501 +8a24f9faef54ba1d0adac676ea4042f4e33bac85205029ddf1957fdf95361d54 +ee967c6d8d73bcc91e49c269d94f96eaa8eea5dceb2a1457c0bd1987682fc5ca +6fbd3d73e7709a327738526647e6f3bca1af4bfdea8d845472c0431f5f983d00 +707812f887f3178de6586577221e410bfc66e65f8ddc00c73c6cca0799900001 +eba7f466218e028f629e28075aa12a44cec9c473b547ddce58e72f6aef2f139b +f856e86a2540108a701347a8dde122cc0b178777c72ebb36a8818a1e8f86f6cb +fc131477ec248605c2ab6599845a55b3442edbc83394d88f2e7081155ce9898a +9d82c9dbe26be42c3b9bcc81bacc2460480c12c119c783c13dd9742ff4c44056 +342e81c6a116caebf2c79968d7f1d73e77f698307cda275b517691ef9d08ebc2 +2e5af0bc02262649523fa59e359ea8fa55e1054b33f53f5cd69d00c12021810f +6d2c47bcbb8bd25801d9f03ab7bb4a97c3c0b1818537e293ff226605eacf4fa4 +385a4d48c1ef4d1e09c7bc2f26ab6dd9769ed5efc86871c0a804f160e2acbd36 +aa9492df75947757b4c54eb3514d252753311d5ea010e87b872703839b8777d3 +6f27338a30abe4dd888d4df232014612ba94900e9795715a2eb989e1216a9af5 +b8be7debc4d4eb0282d58b1cab520621b54fccf6090cecb3c591e6e8bbfce0e6 +004947e806c5afa74ea4b64de0bfe63bb7488c2c3e4e5d4d5d6c8403d16de46a +02c6b48c54ee437c0c1da25863179215f33b1f23ee89e5d13b423174491e1aa4 +262161bef2f4193f852de5c645d00fe155de3c2ec86e7d3bbf2052eb0939d7ab +29bc16c7ffc48394f743fcc7f9625718b0e276e7eb995c9e04d9ae110f37d419 +7831f9e2a958e760f542cde5c8f3309881fc37b30ce7f18de49c83a28b2235f1 +df1bb89e84a1c981d67b3b174d38120c790e8429150a9f9f536d0a12b9bf2637 +9677a00f7ec11f94da6e891bcda249b7cdfa9fbaeaef2122ada7d54bc695991c +82c6cebacafe85c4099958f2f9a7bf6389d954c68037a3f84f9da23f22b0404f +11b26c7d7881bae8dfd0378c0a6144f6a9480f68eca67c9e9c1347a5baef105f +ae9e7012bea2ea6fdcd7baa078503fd03afd96d22dcb7f0a88c1655f8288ac7d +8242101f9bd09461d4a8071eff46bd5c2853e3e4b1109ebc295703fc45bce8d3 +895c8f042dca11dcf99b12efbd80b5d0ffef494702ff8d5555e1feaacac91626 +aef0b594cbd2922ff54dd151d293bbdd002b222dbf1bf04b5ef27c50aaa79743 +44ae0df08b631c511224cbcce9a8e939aa9ee0df7082e722363fea7927bfaec9 +5086371005a058bdd283b4045c0edfef1f6ec13e404a38afcd0b777964005531 +491b55873b1992665a2c6cc19763282797c7da6efb79b1ee9fd6300a8c1838cc +6d6fa8fa6a2d20c046ffb2cbd5d046885f1e9d199b630a672f4a5a6b0ed0eadd +31da124d841a44a0b84ca12cc05a2651588cda0b92534d75c9bc12d3b79ce3ad +995873a15b6533d7dbd913f7594e5e07a70b0b3e048cad24d37594982468af77 +889bb6a7d582e0a3845a6c0062e5012cb3506e70987cf359398a9d3a08ff8c22 +bb53f10dc3630537b9b746f2eb1d81e6f5c99e59081daec894fec9a2dcfcf06b +cebdc4941806c8ecc36c379533379ca8f218bfb62c30db64ceeeb82bdf14fe88 +00bbd67a57b7ed2e6f46a0bb0b31c221c0867943778db6922ee9cb4bccb1a931 +750a27adc83d719ce863303f4c8d7f74a4ea83c95fa092ed4c2faf26a56f858c +ddd24fb80dcb3012150fc7395a32df3422b64e2e0e6463e3bc97001cff04008f +892ac99de9efffb8790ee35510fcc34f87980d445eb4ac1cddd42dc01f93effa +1373183a485d08103392c00712d0b96627fc2ff23ac52fc5979ce27be2e4262b +4f47d16b0911139f7a9dc066c15101452871fcf9fea332b80adc078702f6dc75 +a4fada66644d57fd902ba5f9058afc10a79e87a2b3b494355dc178a57f9cf55b +bb1a4386e25f7ce880cc74ead709b09d5c59a5a5dc0264ffb9c75bdcf5aa76a9 +5ea528b6479a8d92140661d2907dc101fd1a8bbca74d49d9df6c65cc68cfb9b0 +ec379d256b8492c14ba9156bc64a31826f3f4c680f4d9dcf1b14b590fd272abe +2ccbd7c89259ec7955ee27d1ee2d2476c318ea558369bf70f0fc891c046bce6d +3a9a0495bff6e5011e19da484a234cd4fdf65ae8a1edeb676b18ffcbefe4acb9 +f16ecbdb776dda76a7e96f5594875e9fec5d666459e370e45cb71ca55f7adb09 +621e415b6cb6e207cecde6c8125e9f209cede18e40aa241da392ae315d40db51 +9c4b6a8295f1b5fc177c31ab1a9ef73e6c606425a452d972d1e2694d8c03447b +e1eb440bfdcb90eb0b6fa377bd0e536d676dd6c10697f9dbfb7ca9dc57abafdd +6e8cc4b84cab9df3ab3e1a1a0412b7f2e8a41cf7637961a2c33edbcfead9d894 +d702de002954b3ceed1ff3fd628118d74a42cf0bc887413866ac2403b642aaf4 +d013ad5e7bacc7869e35b354fd241a44ae997408f874302da1a2e83804db6d2b +fd5dbb0cc1793fde82bf2549c8c71b4977957e1d42aa03b9f4f61f487d8ee790 +4093baadf53c44636768afa3f6bc120d6b17eabdcf7b9eca7891cea65a725329 +31e4606b9275007ebbee6bccf4c94d75392ead4a24d574385d72410db6cd2bef +3ca765427ef0eb921c41f114f66cbd853ec92b184494b044efcb60dfaffa41d9 +2925b92af2d3243960f13cac1cdc478d984b3e9c8d758c6e1262d7a8f48d6373 +76c0a470e5da3a0fd36c84035351a096a3f554af09d3853c7120be340b6ecb19 +f4c5d0af3f0f0ad299d889a47df833fc9b3c86ea3a4145c18578a726fb3d7b42 +8c4edb54071e56342fb8ee5af6337541964708bb757a339092866ebd42a07262 +c1311a7f803f80b441e4395f44c578810e8ae6dee64a9db68a2a9cdaf6885d21 +9b128a6e1d11db8c6d2287ee2cdf805a41ebe191786b70a22e93ad743381517b +d79b8abf6c1d4262ac8b06f5b1e7d5be0075e5f5ef549319cb27ff2249abe912 +9582540c38fce4b277c47ce50be1cc3b53640c25ea14355033643f3766d60c66 +70ed9ccbc66071fbf415b88502031577444c7aa7d53e82a0361dafb776112062 +f4513f9d2e051a3dee4e4da71034c72b99d62a81a97d46aadd9be63b41ac6098 +006cee82da34170cdc93bd8de6fb40598b0bf3915afd84cd1f5a7563ec9f9e0b +d94debb273dcbbfb93d9424a553508254538038983c7d4082da35c6205913494 +560bb5b6a9b48a52b1b8d7e787371bf323a4050aabff367cc01a5cec2c1e2c4a +13ebf847a6a4956190f9f2235683d0e14a45d859a1a34328601a1a83ad09b82e +900ec60f825fb759438b76088b34a45d4760ece68878a1589e743747ae4cadbd +c6ffa24b855fd7d6fb7c1c71e1785c3cffbab4bc160985d97cf1df399525b04f +cb57c94eba2d5c02591a7dd4fb1785e725c82b37010bfac359f2f1e033889670 +c9501a6e552a457437a618e8b39ff96124898010d7048e7ed0936026fb6190bb +fbc2cca7b34ea50cf03fc905b471ec7027fb445e0f457436a9ebe2a5b5bc197d +dec9cdc6785865de9f5cb82e625f6601af7440d5f539443791d661bc2cc3e5bd +7077c693d8b4af463781a7b7df92ecb3ae8ac9d1cf016244327d1c75e4d60123 +281f4014eaf8a3d01044382e57e0e3d2b03a1dba8c7da747b456470343564c51 +242f8d05ed142a2050ffb131e55ab9f85eab3460a6647176804334a69cfa48d7 +3c6a04c31a65fb69f92158f5a1d94d848130bf206cb2b2a4f98059d724b38c7b +101633e4083da4249bc01bdfce62c02034afb5b6c8a4bde9077a66efa61aa173 +061adfaf4856942ce6174a9753208426ded01a8c5cf1f39eb507c7d3664ffae0 +8bccaefc07ad1a757fea5ef60b27c2c6cb1967dc6bf5e525b4072629b3774fba +1371512961e741fe4f4eb0b5481a2685d60d280ff9743e5135029692f6d939cf +142ef084bce05900e3573b85abd7d51e79e516481f675f0769a1eb325d824159 +f85c4454ed5f92e088dbc2fe712152bf4c11c58b935d9d1f9d013e28c466e23e +732409643c0f16d2989d82f2e9fa128e3c47cf5767510ae0076da2de9257d529 +d10c32a5d1137338367c32454990e4b98f6f1a09d82340327d6910eab6b75e85 +e0e75863a67a6621376fa95bf7518d2df07c03f85226ec80c9d2e751c5af9dcf +a60d78ae421fef8b570ce9dae3cf10a65e1ad171c6d4de063c81a45c99edb2fc +651115ddd2f7493147ce19f013a632eab30c5dd40ecb31e886663b2470f0ee5c +98f38fee065b764b0d626f9051e958efa95cccd2ea77707c2fa2f50df7c8db75 +0791e8bb1bf90039eae6e473095074f0d01a5394c7d09fa3c71fe9b6fcaf5d99 +b5e88130b170d91a980ee8ea1a2952caeea152b318d38967a1bee8735ac94cd9 +fe426a357dbc11cdc8268c08a2bb66ec1ad3e100b32ef81220cafe955662d56e +7e219d62b739c9bf4e626ddc9e8c497b8a6d24d9052ad7d9176d69d7138edc24 +ebde966b607e1781e6009096cee041690482c3cbf99c775a1eb06fd31c52914b +682bae293ba9e865e42186455b07c1f9000480cf4f83e9a0639c4327bd557446 +8502bc65a8e9b11996a912da4eb42378c57b6a89a0c940422a9e61e62e5932e1 +86e09de1f4dd2ff1d164cef1ec22720421bb4d8d1a6554ecf163cd5eef84cab1 +47386fd5d68abffed7116ad1426a515e30ce38ef022950f34f1fec130c613f0a +2bffaf82efe6cb217c85174f22429ee1204449802bf7e190cb93bdb52509191b +c0cadc2046d982a30b1c6a4b91b3a8475bf69101c04382616c03f3b5b55984e0 +ae275db2521787e11e949db848d43e51659e4b5398d748a3c1f964d12aa123c1 +282765de8e517b5357cfec15d0cd1c2ea830ef09c5a186f5cb6017c008c6344c +0a331187bb44a28b342bd2fdfd2ff58147f0e4e43444b5efd89c71f3176caea6 +07ba955a174bb7c67a8f42504fa287db7c0ba1ca9783ba039ae174bc80017564 +5faaf62a57cf11dfc0a77ea6dd70f4eaef23498cced5338737db5d118720333d +d9a514de486ddc2e049224b8a121aa8d54009c6468b45ccebb94846aec6c6b40 +0b8afd413460360a6fb5c4c42241d3bc1811c36461b2cc17d23984773e638e70 +43961438ddd1335268fe9cff04aa1615d06ab9239f931006d4ff8d4a9f17bc12 +4df509521a5f585245ac7b63f60be24ff91617c89bf6986111d447b563b34ff2 +4c46dcf5b152eaff56b3056aa6df53470330ce4f051bcbba72f1be0452d537b6 +0b93c2ed78f1dbf73f81785e7f038fca002485ed514adabfcb7ee77464125fe5 +c723f7b90b8a460e3f1bcca57c3a47361223581aefdde3b1184e43a81a2d479e +2dc24214f7bd00bf8949ca36dac389fdc6f44ac4e2ab2cb6a2b6974efaebde80 +78469571cdd841e00fc1753378ed8af831e3f2f5f548a32d6438e6ad959a110e +5eddfcaca70c38540eae624a5da94d25947a56cca5c479496d2736bb4a3b7b85 +491bba27933daac8ce7de5dc7af6146781b5c3f3f0366b4069da0f908ee14fee +850d9841ec040916948e2fd554f5d2fa310efd0cea960679224797b640a2a31f +b736562196ac80da2ac359dc7bc862ad5a702a51ba0c1e20c462ce7d7fd583d2 +952254b6117063f7d1621155751d0a28e459b73d8151ff3718f74cb4fb4ebfb0 +6bfa6772064ae23a3f1f34e6bdff625582e5f8fe3562f00bd830e61358fb4034 +d01a918d6de91bb81972a85d28e944bd7b3c1bd37180e144744063dbe1f7b5dd +6c964e0afc359e9c0e71fc0805e9ab587b6b3db8773aebf1b42be95a5f9c277d +37db30b8a78dd4309a27d25a319635721f55a7ec178d8df7d3d6f26a5f8f534f +2e67de5e2d57d20ad1f02bdad085a390e3e28c2aa4e944bfe2233d0ef4ad7ee0 +e5c5c5120822c99307966363f6f025c229130f5fcbc0a06f58b5f15b7d78fdac +e98e3e9f81cbc3d9e748e65ddeb3d001721efe02893412c151430943179d5620 +f29d78e11b4969f83bc4c3d1a9242187a38afd67181fcabcf366bae5d464c6e6 56689baa126382cdb7dcbc09d28addaf0622199a2c500ab60bd8661956386714 +e45596793a3cbfe2854718298b2873d713838e313ea6f4cc779119cee6b0d6df 4243eafaa10312ab96393bbb430b524cfebbc09c25fe0b6e0012d532d7191aff -41939b9ce4b709b1c81c8c304e4238f140d06640848923dabf07d3e3028b39e4 17596be44371c32b667845aec2f6262d3e5cc977367b5666d5a85fca302664eb -cef7d3a0e0eab7cd1793003c1d5863bc165af3ec845a12c9c5e45774cca203c4 c8a181085631b7452a36ccdf88980cd581d83ecf1575e5307544ac8f4032836c -6a99330b7970acd9c2a19683ff733421003ca4fd9f629d4482463be1beca3277 -be2888ab0b2aff926b4d7d9fd51f91901cbddf9a9ad894ab102e73d6200d5d4b -aeaa1c3944e465fbc1ee7018797af9fdf568f2a16446d8b9fb6cd6dab0510f1e -9c0600ea5b52113dd0033edae19722d43abe561da1c0f6b0a1cf7e329f85993b -72023407d0df8ddcf13f937491ad34554535d82b6f3c196c5a8941c7192aae4e -2fd9d204f7986715a302c2735679684960263f8f7b8e805f768acc37d98f347f -4e4b14e0d955bfa053ce4a7c3245ab1253406b480f70247d7a5ba92636d13926 -f78c827099a5ebc612c5961ea844a23193229463ee792212a836585e28872856 -55df19ac1383afdd44259c75d24c9110096df6296c25c324a182c7cd8245bfa2 -751e91e498359559ef7d1d455ce1fcce86ff14f4f9b2be44ce290485c070cc57 -7f246e0126b79821c8f055ea427acaa37ef150d6bbdb984f6179bba05182a9bd -3345bc6c8a5632342ab8e74c0caf2eefc2baffc0c4d8e78c11d0914ac4d3c300 -efaf0009b6ba0807d589a552975cb31279868731754d507fbc22dd7824200dde -46ff842c9e2f7d06621781a0d77707024f1d2abcd98c329e10c5db5ad41df708 -a301e110c14e1f6a4e721f9b65259b429230fdfd24218f447107d0a26980af6c -51767f184ad3e3e96c7eea385e948372e9ff8f084ca0ea42aee6aa294a40d65a -f916591fdced3e6f86599662e46965250d7db1fe3a6bfcae64b23ea1afc10991 -7f91eec3b26934d7add813437122aeea8bbd34f6003ec520544db0a655a2490b -ac25ef46b37883c5698e9fa71d962b3f8d2a148e89c383c5a8b75172661efc38 -3cfab790d298d6b94926800691e569714f94bfad6819bf79df245d7a88f31b89 -c3a542bc37788d3872c92b68220899ca76fef89e0d32101dc45e075b3ffc5cf0 -26ca0a1968cf4bc9bb0c0283bab5e8555f3f8d2a537302f24b48db8615ece41d -2e9a28d72f9cb208297d12289ca3596063329e9e1090394db4240f189862c330 +550445fbf17934c34228fb1aa8c60eed5d6cf5abb16bd9b0358e55ad0cd0c9f2 +d147362789d7f704b438161d0cf1228df40c67600fc19b048070d735d0c3262b +be6bbf79c48261a3c54c47d19003601598f219a985ab2ff54020efb18d53323a +7a4c4d3611c1b2d8cc0fcf5b889c64fd95d2d63d65e3ee8786ccd7988cd8d5a7 +191251156bd59ea60fad7a20d75d644f3810e811a62dfa445c322821889afbb2 +d57b58e523930fdb7965eba7a823757ad3813e51a688a6b5d4105bfe40c870c7 +32eeb71bdd0ce1153f5ffd722c1cff8c8beac46add2faad4d4dded184dffbe0b +0f285500b80c0a1a6d571ab85a2950991028e6f2072c18f5b0f26e549c22fd15 +67754bf321c2a85666f14e9ea2a0de1f6d0ceb8e3ad8428a8e7f4f2073b94a95 +fdf23eba0ffb92fc721494546dc4a4cdec77869bc89efe2f7cb9f213cb909b95 +24847f0be2a100bb01e22c91c94998d9ef2f4bd4aefb10f16b20b811b3581579 +1d9e3caa9bcda611782372d0186a69bc20759f65a10e6566cb79a375bd5343de +8cc819f70fed9bf7c5d7e7805cb58e6bf61a9f25581aac3d3495b332ef5892a8 +8ef1cd1ceba5e1edf910a13e077715477d9629d54975d7d19ee3cbd0809cecd5 +30490dbb2234b1e3ff5f0ff22a25ca5ca277fe574f8cde80d456511080a1623a +b2c1d40662356cfc4ce5c6d3d5db286d631b4d6b7e140c25990b364b89ef331b +534c82fadcc43b12e6d3378ae798047cf909000b3017a24b769903f5b7daa807 +91733a34f18065dcd59641011b45890114a9c2387d52e1bb7f89e3a7fc5b258e +e95ba3c7d65ba8f7f49f766161b390a4044e1c73b3e5aa3091b4b41829e8b9c0 +537c5fb3a61cf78d62951194a1c039402c146eb34eeee1a08771bf178fc8bff5 +885b538b492494e20bdb1cf146226229d29aae3c94942faaa8fe7fe84295fd30 +96c4dafb543012b8d4a1cbd9d5cce2ca609ccb914fe8c3182f932e066c977595 +2cc9123974ff8558289f0d5e4b50fc8e1ebc3e5f33e836fcc074834bf84b45f3 +0fdfdce7a90db27147ee168103b36985f61ad43065fe6664951c5861d361c5aa +6df284f006191e823c1a496076a7b45e8562f840d53e152b4c4d335acbb9b42b +a2d6ea0af7a5523da36883e03ee1d77a5d4b49eef097643f51c5cb4d3e066f41 +6bd4278c6a22a03127387fbe11a27dc7e926d506e72bddd67c9128db5ae79d23 +f78506452b9582c177fefd3e3b3d08d247f6bb163f01e5827fba55e11e1dc153 +817e1591e4aa336dfd0bb42419920cf29832e62b9ec4b07daf023fe55ca4cc6f +02f15ca84bd65b8bb6fa65b417bda821894a01059dcece02a30cd708f1b9066c +e11f7b74d4a92600fc30643d0b23e0a40009fe1c92197d95824207c75c81e15c +9435e09487f12fa449e9e898d890af6eb2037fab659ac1b91aa157d8d3316212 +89b5005a00d77d1608540f2d27f6b140e0ef33a01ae9c1d1b6aea027bd00b16d +a02e2e9dd842efd5a5c16d4d8461dbd31455237ed09d0675d69dbafe0ca46c0b +d5c92eb2a4ea105a1f4331eb49899c00d37bbd498a0097db32ef077c9356a4ca +15bb8444baf346a30a87af9f53b26a3ca4be96a70a168b387ec7ba3f839c1c78 +880e5231be0dfa9722db86a78f55c93fb220f9f7244301b03b3d2a2659e425a5 +8519bad4672807650d689487a8f1ed93ea0d75875b5e5bd3b1e02e5b436fa358 +350cb1f7231b1ff85666c2fbd77dd406ac72691de726950ee7ccceef1579761f +e526ab77add39fa2bfb4e6d47f69adfa4a24afd9eb068629324b526ac89e87a1 +62794f160c85497efb4fc594bb01d711dd4872d14382afb9edb362bd4d7b163a +73ce2b15f1c5ff2a0ff77ba7ea7cdbb8540858f51302e466e99dbca2289d55b8 +1569eb5661775381952b58d67b6aa7e4ce17c322849638b12fdf1b66af8a9d5a +5c07819d89f3132f6216cf62009d95cfda05bc4345330647adee20b3abf343b2 +7d3fb1a2704a337bbc7b96611a5d59c3a1df4f0c0c23f9432c5f50bbc3abe82b +ddf2ed9160bca4243c312c8326977dcfd999608576e0231fd3daaafd9183f2a3 +bb141dcdd14d89f9a00cde6002444d5cdb467d63e3b78fbf0bbfeb5dfe2a10c3 +5a619554c8c43fa7522766829bd6f0d22dd82b87a767f2de84283ef25384051a +20a892c9e456b4a15e8fcd621cebe3fe0cee5985b9f17d75c92de6d69bb1107c +1f8fcdaf407627592cc49c95cd70762f2343bc123f6e82572a63c7f0bc7bc0bf +944982f057f7a2c88b54ebf5956f587388d1350ae295b4df480ac39cc2aef7e3 +bc26dbc2db2983ff0f029be6e3e1015ef4c56081bcf4d4162cd1c17c7a2521ca +772b3d57c5cca6c978150ab6309aae771bc322646272ae0a2d302c69a72c0fc8 +01ce47fddb3920c763b17ab0a5aa17ba4ead8d651a4b97461dfbc5afa0958c3a +a951b9a6204acb6a254c328942688b006c73daf7af93d7dfe1d4c784f8a9a51e +38d5382e11cf3ad6476b7451cd501ebee0539453d2808f0cb76f5637da63074f +78dcba76bcdd404f4597c6be549455acb4b12597f0675427f4da3a48ac5d7af2 +d03a4c0196ed88ac144d2284b21c5478cbaf5c1a96319f18bf3ae76e0f5893b0 +840a97091ab8d4f782c0daf9f3c7f67eaf7eae595a42d5fe0f7778a4cb3797b6 +50bd273b5b763b0ca1596bd715dde964d8b86f60cb579c9e0a2fe1a9c0ffde5d +ed178aebd26b682900e990bf47e155bba9d9da9c7b8102748a5251b85113cf8a +8936c41426939fe5f07e1b5ea80ed2512cbee0c0c0818c443a5f46e6bd59aac3 +f92e67b6c3f112fd0dfecb85e9833121e57240c04f864c40a0c5e86eeccb1c56 +0e5075865c62573797890b953d7edb62a6fce9e9ab7d7c7a4e44b9696932c403 +9eaa5046c4614fb6a93a8ade544f20fe63e627642a85b3c4ecb938bf31cfe87b +d1953a8a32722b02ffa34a2be7f6a3cbf6f8993c30f25b04d27cc69710910084 +ab539e7a9f45cc673ec8639ae1a8394f002cd126ac7a51151a7a5ce6e8ac36a5 +b629fc203878de20b184a6036045ec7872cda4859638c7410e0f758769fa1d61 +f52495dca85fdba1baf2e9ac651f13c6e2fa67752106b41a50f2498340c4cca9 68c7dbf8ce6a1dc995d91a9849bf61541d9eea392eb426f758368145e8b84c3c 3a495fdb1d66229ee0d2f7eacf9b889d116f6fe6bba4ffdaeee52fe8b845dffc -f29d78e11b4969f83bc4c3d1a9242187a38afd67181fcabcf366bae5d464c6e6 a2223061eb10d65d7a76621f0427ff6c08b238a25b86b5ad93431d2022906615 -31c2a886a7da65b2d6f8f7b9521b77095e44164c1d14481656ba25d4dfef8c26 -2a71c8abbe494f5a7b77e210023aba67ee3ad72873d80d9106a6a904cb08110d -39050ddffa4765287812ea46793c03180ca10f7c270fa6a3565dc41d28a271bb -8e6172636c39fd528b628d91284f964990b7be16d6187881377dcc44af62aa9b -5796b04d9f19876a295c3dbb80118418e61c23c51e8ab0aa9070fa6c3c156e9a -77154f3f83739e811e7e30f017fe046a3b448a37a06563dfbd438583a6f92467 -8deefe00c6109d149f44e14ec9bf524d0f56e39e7555f486dbffb711962f5a88 -a37221191dc8591155fed00abd44b436b3a666c7054314a11d16cea32650eecf -5470967c00b7873c37abb69e8c634a97067287465fda9efff73f56150a1eb81a -3bef08d2589d3f05b995800795f75e3b81d3690d36fd2a381573d6c5d4f13bb3 -46c24abd65f4aa55862c73106794efe647641219d217018ed66df8b5f718a971 -e042f94c7e39181965d64d12f45c978e190d27f715e241e66a639b3e841d82a2 -5c14b064500961a509bc9210fb85f67350f1618e10fd4ce40f5c11445e6b687e -bfac9e7574f5ba6ab95a7c41a55dd3730cf5778b10aa804c572bead9f9e7fbbe -b9853a28283219ae597b67ac6b497ea561bccf155e737307b3610e1d5fc458a4 -1da646f93b785043907635ea60dfa3dfaf7c8004dec3e60bd6e322f9adbb3a8a -347b14b8913c3aabb9858d076e0ed6ba7b90aa30f1fd1466864a54b258ed4a9d -ec5a0c6fa495873497640c0065e754632064fa04f145481fb2e039ba7493f5e5 -21c0e2c00d337d535ecec130bf4c059e30410ea58875979829427c54ea6f760d -97c8ba54f5b546d68f38436cdee49991e1be80bc273c74473d445c5a33af6eda -b0e8090e7ae2e597793230bb4f3daaccc32c880487e465573bdbbb78004af1ff -881f33f0b38947e6f66bf1b7ceb3bf55e7d4586c9ce107134bdc464dffc72d4d -491148bbdd57a7fa3317b0f643bd22cdedd983e2b5a45ad72580ace15b30ce81 -aef36205585544f7f93ff7822b3a95628191f9823b0cbb68cf96157bfe9d5918 -d5794254038013648a6bb807b81d1991cf33fbb49a05bdb9a92a66b54ca088d8 -c2d4276a8be2affe6e5e7824baeade0c504e7cbe2d7a2d527a349827b21a18af -45eb2e3ca7c3da8382684412a7eca888eeea8dcac7bab4fc791248675af414cd -49f37ffdf9f4f3842cc0d02e370634b3592588c2cc68675ca30cd40e2d6b2a06 -832386f97e25dabb6d6bf0c8020c6572407d824b11f9d089037491515b50d46c -15ac79322fa796009cd5f393d5bab90805854d9fb3276c67fcc9449dd454a277 -e4d5068088736e7997c79ac0e6e7db42193f6a5cb890bf09ee770f87413a4106 -041793f35ee68f0f4e3c381bed41631b9941cf6d1cc01edd5b3e211d0a3104b8 -093b9191e0d8c46978474717260810235f6a6446d1ff1d875c89e236695b4821 -14c09cdf4e60a8b5bbf1405c178485b55d345b9f28d77277339f1e37af83e92c -0338fdd3cdab503d68a28e4cd4372abbd93a1ffd413e05b01a6ab98289480c1a -fd5b4a0788d30aaa3b96687ff694dd96e87a2538cd2f097a4a40bee1b8106427 -e99cf8bba2fdf8ce10eae783454521c68c5265525f9c77bc40de4a690820486d -748d8d69757b70d87904b1744e8885b38f48729547cfcdacce5a649533ddf281 -b5ba4a68fccf0d5cd7e33baeb1a973d353318e534bb55c39f50455bebe7e7222 -b7b6a764b613f988859564876ee937b80b0f7745ea0622ef9de9c114c7e18c24 -733132833664924471599ddeaf84aeab175f30ecc02c4b84413e09513f8ce8e7 -706a96519fb104c3f86b25f0f121d2e25a2c1b449dda83d91dfa32bbe6b58262 -2e08967288c1f09f6fa3ba88bbcea7251b3a2e4ed5819b54685d04014cf76b8e -39e625579fbeb26c6a6feb83382f784fee7c69292f9d97136e82d70698544bd1 -ad06f3fc83e69ba0ed5249b1d28be9256854bf600c61ee853ce534b4526c9215 -f27c6b23682a6912ddb3c0bd0547b920774d0ccd12e87d654f575b233e8555e3 -fd569e6f14e5b61abc8b463a65d586cbdecb89d4069691f07e629c579ad97d78 -435f717ba0f812cd4032e22feeea49b4ab2a49aab092254923a6152ad303f462 -5086371005a058bdd283b4045c0edfef1f6ec13e404a38afcd0b777964005531 -1c1b1d00192649e3fbeb0d3788791916572f58ccb3cbe5bf3e71601b02ee4745 -1ed1e232ed6faf18f7b9111005949cc3be914e0e77d72eef1bb58a439c208da8 -dc4cbd599bdca611ddc90a4ec272b3741ffac658c5afd409cc4585ef211f22c5 +e13443cc3f649aeaa8bb7d9ea8d6b224a37d3d2d5df9012e92797be146abb7af +0c1899b4e5cd4ab52aa5c88aa06cfc9e2cd252e7708e41f47f1f1953d6a4d977 +72c36e036e34dbfbbaaef1ec1a6ee029fe2384b491a030474a14a0241872d7b3 +47839b8e6883550bdba2c65499c04054a34cef6a15cce006d8e93fdaa536c04e +a470669fcc2078491ff53da37c5a214dfb0fd1c3593d93cb5e526ceeffb17313 +b2eab2718e9f050a51577230167acdad0895ac53ce5b0337af87de4d42eeb03d +9bcfbc5196c5a252b6d87d75ba3c6d13cf509dba984ab34b262a7b40cf24cad9 +83ed294f10065db0a646ff4029e965c1b6314a5a627406e4d17e006e9766406a +0689a8537bdd0ca6df7090613233c77f75312a98d93290dc219c943351889458 +36027cffc79edbdbe3c0b37facf387135837183d28b0cc969b05de1150167967 +a226bad0d8fe850ff084d95b224972158a9050b28569f17657aeb3518af7e2dc +43c72013958451b1beb761cce6e155f88f1e7455b30183f037fae6ac3e5ef00c +65e2138c619783e9887eb8693da7c354792785fa7cb7f80a30c7a427eb01ab2e +43030528e8a7e94f14e241024b70def32ab9c8e4b2e6e21d67c8794de81ef09e +5400a84b9c5b7fefbba9d651c9447e4517024a6d724befea78c37d775bfaef2b +a39678926e85713d5ab0202fe8056d5db3265fccfa27247315bbacb3c74c3d89 +0490bdc0933495c993bc551d6b34b7dbcb89a807f39d12d9118de54c3b2443fa +137198dc7ae259859b651cd2f0951627bf701eccff266621fbb50069efca09c9 +7392268b291489de1b32569f4180960fae7099549e605b087f5cd64e026f2ee0 +861429d2121729bca3b7fc35df621f1a95d612abb575bbbbf57f29c661d8ec0f +de339fd5b37d5dad46fd9270a7e7a9e99d0c75bb1b0525dd9d266d2fc6c19cd7 +c4e992af01a6531d713170bb54545ffe5255bafbb4f665fca959610617385f5a +419a96c8085276e9e341cf598cea6ac6e524d11bf8c63693c5e20b20a43a80f8 +67a54aa6bdbe711d12100192fcb22dbfd0df60852736485537dc2dbc4d53f43d +90ec5bf5ce1f90648627aa93704532842e982a1edd93e6764b7a4ad040ff307e +2d6f6c13df79a300f8e57a927f05014e6fbe23246abe5fa353ff1f7909319c7d +ae55da97bbca0b686d416e57782dd68b15f70eae6c163e6775bd0dbb96d51b04 +ec6489de65a3c84561d9d3b2fbdd1ffc3d47bd6f8c2e38fc944f9455ae7c704e +04790459b7eac375ccdbe5d108d74024754704b0f62561c657c49ecafe3d794d +b3e4cc9d44102228e0a83eca3ed391e53e0a6b0768c128752ccba19bb43152b8 +f263e84d61556213c34f07caa5535ce74a8228ced78f63629378dcbd6b29d2c4 +5703f125fa6433551d31d1d01bba8ea5694b3ef9a9633f793b7f258cf54ee307 +104536329a17c0fc991d49ca92f70a3a783594759e644fc53d68b3e963439ddf +1474e0663b25437d21cb3247dff190f927311052db377c9001b8104e7d16cbde +331c77387f77ef84eefe9cfb1364986812950262a63753bc38b56788914447dc +bc288f2dd6357e905d87f08b531d949d982221dc77d316d38649f70487b14484 +c90f9ff9fb7a2b7e07b4813bb4b57a1b22fb757d2de3f2545f73a52eb8e40f25 +0b7f4326eb4c46a3455e6fd8dc6c103bcb71865e126bc86dfea3b43b6389a8ec +6557fc38109fa831ac80bec5b951ca7a13db709979884be923c6e88df20f4cba +e51d71d2873dabf714e6d8d86b13b57ec7fb9bcd52b2ecb586b0732b6f51127b +41939b9ce4b709b1c81c8c304e4238f140d06640848923dabf07d3e3028b39e4 +cef7d3a0e0eab7cd1793003c1d5863bc165af3ec845a12c9c5e45774cca203c4 +5f8e8158904ced82c56671ad4fe9a4a3e136665590eba62b8f490c0b5e25f91f +7257f999dc5911efe68be8340bb7bbbcb7517594c48c824770897b57931465c5 +be65e899c13d0f49ef5d4e6d5de7213078a5dcfb28b096bca4844047bf8f2b56 +32271a0e0ba74a715cef2511e927e9945ef1a2757d0655130e5114949c94b205 +ac2507c9cc2b5f3201f09b1f757fce7fea029311b620ba116adb7f7527b2dbb3 +aa15522e19d3c34257d7de66906ddd2bfa38cff43b3039daae747c52812ee0fd +ae53564d2030434647f404379c2a8a37b4726618a76994f779ed7eac5983dc27 +94cd49c87637f19d7222a856f1eee2d30825079582ece28d52ab06814516abd4 +dcaed1fa71f8c633eea1b44cdc74a05ed3896aed3e3ac67a9853fc48c67f20bd +e0acd2919b908bd86c61486c08406a5d40400a43333d23db60b0595007c4753f +f02486d56b084ff316697f4e148b32e640e60b47eb747b3adc29d8ce0939ef61 +499fd482997639f924eab76744d1b1c6c3901e6ff944057081b70c7eafda21ad +1b3ed3f93d0291d0222c1bf9d7026882f9a122443dd9afa876c99a34d3aee79d +e58eadcd82d81dbc545fade9104d6925a89f599a4366f9403b773115d88cca07 +b5704a3d26b8ce38e4af17ca90881fe2b8f6cd59bab9e70d9a9610d388f6cf44 +bd2671f710ae5a43c6ddf9bfb504c685cf5181358079180a2fc682db3e9675df +08bfae28c6be7c32ae8bbea86186e47402cbc3ce70e69e753613782c656b74ac +53dfc35d305bb6de8636daf26cf167f1fa83649d4ff7da82ad68b3e137284818 +7d73dbd506c024176c76d51bec6e89ae2d504f628412b53952df4298fb115081 +c2c168690e01aba6b48175236ae192a20c9a6b11889cee6df4455d5e30b98597 +79419d69422a01009157e3fb2449a8c10422e14a0fa1ceaf7bb6f9930354e2e6 +1744dae99992254e3478c80221703953b4e7a327b18a7e196c22cb7e873e245a +0a44ec3c4847fe94c14129b74f978753a2757565bb3bd583f10bacd5b2f2a96a +3d8f549a9c6cd08439748884d6b32e17022143e02983f10a6ec3e29e82eb93d2 +b7d936d5e8c75f7afdcc2b75c43765b6e227a88d2713a6503abc7abc8b8db678 +829fae39d50851cd3ac28b2172bdf571784ecc2bdbd5b4018f75e54aabd29538 +e48dc617781f06f79f66ed8493f45a983cc542377cea520341f64e326cb9dfe3 +5ac51f43e0846d045c47bba520c8956f4b1bcde0f5c748d0d098cdde5d5fc55d +165ffcf218b4d250aadb2fd12e73fa6f1e87c1c0f5ddc5398722001171439ab4 +91bba3a17be20c5687347a4614318c60880e9604b95cc37566dd1e05523e60e6 +fc94b65160000d3af4a0ce1e73af86ee39d5e1c2d6f543d1c8a7b5b754332d16 +2fec51ea954112b77af5e584ddf478bfc1520fd2205b85f68bfcd4b6c909a791 +3dd09627ff359ffd7d81cdee83cc2f91746b3b9eb2ee6f08ebf795b788dd5551 +661717ec666317605d3ccc4656e8dfc6d98556db2853c393ef0deb9a0b4f6fe1 +ca779b21a33c8500c6a6909bca3e6a073cfa80e561fa788e58e90d53eba40308 +aa7c5a84bd25fea1c58eb671e89eceaf8066fae2dd26f6e20af0ba8da3cceb40 +ae9c764976e53bd3d193e90d2188930feb85f75104aff65e0b699f7ea40363be +eed646436901ac04c641fec1deac91ad066a598c5439aca005b8b56f70dd6a2f +59b5ee4979c3df0674a7bb6c9db554f4e3e2a95e9566051d971bd51f196c7c11 +3b759ccdc52c2b27ea0d545b0a25cdc88223914cac6f879d9432072d385508aa +8b4f92382384d833c560b0934d031fd3a55d1cb867a6212c4b3d31586360b2a5 +da6f5c278fadb87b03532ecc242b39899b1fb1b5625f457a7b43f972c614d124 +78699d0d5143ebd1d652501c5ccc2e92c1d839e827311c9c8843e33eabf5f499 +669dd76665f83308de7a353197244811848a6fcd3cc1f07dd44103617491af66 +2e9a28d72f9cb208297d12289ca3596063329e9e1090394db4240f189862c330 +f39163564331cec9c05688788e25096cd95ab495038c6bb203244a2175dbe08a +b9d8869bea54606df91b216179ee99888556691e0874effa3858fb408c7d1b9a +3e30527e6999ac26cdc19d03e89804653f1b9223c96a5298885b17e396f9725f +99bb2172aec03bcb3d54fdad6841214d1309bd720856a96955df4b3efe86012d +109a869622bc7450a4b36715220a977bd2acd46255c7945987d8d68f70dcda1b e6d6d088eb9a5ff76f5a0a6f3e6193608c3e59a69ab9b734e3554428cddd0eae -317537faded98a65ce6ad9a5c7db62569528ebb33534075207fb16c7b4c6dce6 -81cecd7d1135ab9f7c92b4530d93858961077ad2321376f5225e4e3cf2f39fc5 -4df12c98405835675732fc1852e3a193a8844c71973e4c1e7c9a131b3b72fdee -8d423895ffd10527bcdbcd8bca0468716cda0c5a6fd8483e9dbf4e5bc6d5ebd4 -5427596611e73a2494666e337e30fe00a1cef14f5517a9dbe62224f3cda97fc7 -58bc766d3c2b53b2ba809ea324a118f3462fc9b31d6b0c84b59a0ffa57b95229 -3d41cf85b32a6bce7f766fffe54d399be503d7d4310e9e39aaa32d31a7831817 -70744b835941646b11baee6a2eee6fc8d7679081647860804f51166eb9081942 -62fd468573822af8cc7e7ee67e0bd158b9314a7d7d15a504de8a47da9423a1f2 -424792ca94267b11bdcda5af5d896fa624f119b2c886bf7211e19cac7500ef82 -91ad77f3dcdc62bdf81d147ea6bc03a1c48543c546f92612276358eec846ae70 -4453efd52ecf49e8021779e34de0b95d02270538568c15ac35afc836a2a5183d -9742a3b2264a7debe84eb60e2ea796b3a19518e7f8d2a5f57389aeb9ff12a855 -08faa0ba959ba6c5c724e883b81312532c0e90ff275687a157a27238908e6dbe -5c37b68c8f8023cca53be56c331f26e8e3a15c1f71b03e90ce8a10b5e3868d7b -d1ff1fc52440a62586e14e94a6d02591e83ce92d39e142c72faa7385ee67c9de -b10fcf88e9ea770c7a170ff150188850041e14d2c5f30cb80320d2fc13152cfe -e5c5c5120822c99307966363f6f025c229130f5fcbc0a06f58b5f15b7d78fdac -e98e3e9f81cbc3d9e748e65ddeb3d001721efe02893412c151430943179d5620 -e18f48c949baf9e2c257586a75e001b3e26e5e166146b87081310fa425e41bf7 -1d79ed2edfa92c3995312ed11a8cf4aad36cc1e3a8f4bb42d2aa0f29205e3485 -73216ba3a01c98b22dd99872cd38185c41e9433d4e71d8d092302c7c2f11e742 -1799a808a2a721cdab00a7bb5fc052bfc601d5350d436298816af8d500a7925e -ea57b6b06cf20acfe8dc444cb8a5684efb0a2699ce91f213fdf85784d8d9f9f8 -b27bcbeae0d3682814c3f308d66d77da0ce24c2a41c130f39a5768d30b64f5b6 -624317485b0dea29daaec6fd6bb7fda31cc6ea00e3efb5efed4aff14d0068a4c -639ffa11da36ffcc3e9d896ef3d663eff48ba4c6d82d8fae2c67c6a4f9b001de -ccc6253c11d89af11bdcf20bdf513112ff3c0bc6fe526045542e1edf9ac6ecd6 -2a913432682d6dec351e66034b7f9cc2f64385974684e06b57dcd5e491730b0a -fd7a567bc2a68e76f39540ab8e01a9c9bf6668d3d77c5705c195429778f12546 -1ddae77e15cdeb0eb24af3eb70eb0e4e69ef93f16ed26869b716569b6adf1b8c -7dca003d51c42ded7feb497a7bd163adacd9f8274302dfaa4f889c9507c667fc -6a435c38ee831717289e529b29802cecf3bd72107ad3ec42a39932a619d955ea -13938be2ecc799bcc779775c67982bc19e52cc3a5ee16c07c8843f3b0df6f7ae -fc4730f915a2ba9822bcb1916c5402fa30eec3512a21d079b23032351ffb70ac -5332608e2dde3668d992ea5572ab94f28a5da401c6230dc13c69b8257f47e322 -5bf97ec2da86ff87669e31c06d97ad3575c3336a449c0f15e474ccd90c709da7 -e321fdebd3bdaf82765582fc1e37f150d86a01c9c2b54ef4dd82975a528b5761 -ee6adb001486f606e9a194c99a62cf8cf822a557d99808136f278d01538f57e5 -c006120f52952ec6857cd2605b1f0eb06f2b5f2c8d70ed2792f2995a00ea03d4 -15229d101ee197bf179a9e11235901992d486cd99aafa632086733afb1e8008d -89340f47d618eeadebce54ac293b9e0c360b27fdfcb1fc1ecdb3528fee8404c2 -c9bdc14687387d7d7761ebd530bff5b4189f279464ae3f63f9b8b93ce9b1927e -10744ba895073a0c7e50c8dcd45c3318cdd5fb6f969ad5d44a9913879604105d +b9f57457c5a962ca8f67122cebe1cbbf5cee79cc7edd3794182473a1d66429cc +4745a9c3ae1c1b4a2ed9ae0c2e9d476d65565e6a44454f58a33c82485c99b18b +284f8efc379a6ab3d58afea7f693aa845032b06248bbc4db4cb375deb921d9b1 +89d16d94844468705d365d8b252aa7c02267eb321a24f57ee2ab1f9c0b693d9b +361c665730ebbf33b1375272bc59ba3411c2c937165aad01fea246c43fdafbb7 +b68f347cb270120c52e9ff251581209da81425735e1ac520b884096e93bff3b0 +ab7efa786f7ef4617edd4cf7d5dc029bfe6b3f808233bb47efd8aee7d646a746 +e472d24de8e1ba5d97f42adc6e6c0dd7dabf119c1ef99e36b52d8524efcba420 +e7dc61bbbd052464c6445e53ed94ae16153ca782b23af58e24c143b6d478b54e +a7a0e98d9ffcdc98c901753f36310c8703295a89ac76f370dd7cf779fa300a40 +a7ca317aa81981d99356cf6bce3b19aaed7dbbd0282879a363381007a717c74a +0a8ac2a36c0c4126424fc41fa68eb69bc5f9211a912e89d5e8174b5e27d13cc7 +0f66d567180ad91a6cad0ae5ca20ad91d74f24cb06467d9b628dda5a5a4a0651 +30befed588ef70f635ea5ffa034519b3cb0a31ce93da4f78be1fe55677d3294d +97d17d13b01c4744963f3e5ca6131fed27e6204e2ad2f78b04b40af3ff8416a9 +6eb72d5d1558dd1c754f718441ab50e79f3d87e2728a45bd1856e20662c8999c +13a82a31476ab851296b0f836e541608b41f9de1251393b9d38bbd198b52f819 +f1371a335f69042ed9a07edbae3f7a9ab4acdb9714dfe5a36510b75e7b14606d +d98a7db3ed34c2fa7b0d72a17da9da49e4623e7928769ed659fd0cf68822fa13 +b0c051e09b83e3b3c3d7dccbcc23b57fd1a98f6714265d5dec0a5dc74af8a8ac +c816fb1a46e97bc1736a2144d57d9b7c61202685325e4902077ac08afe66db1e +74e9f6a5b336e4270aac4396cc3d38202050b84d65d580f0aa4255400814aa3a +ff0f62bb8a40886ac861660b18af1b333a8eee725591cc0a7242650c28b515d9 +31fc57f6acd3b33ae7697f3eeaf817de2a6a9f437f152c4255fe2a25de292be8 +a5a042f615d022be9f2a11d88e4ab384f656d9119cb013543da577d340687dc0 +fe27a2d8cca2be43ad124e6cb45bde5d6851e3d2eb9702e8a3bda55f7eaa01b6 2b134c99cd4e74b86aca4fcf3af32940f4060a106d9b750634d58a6643d70d8f -09e3542b832f4bdd9eefd92c35c5963846fa5d3a76293207730489e7f9125921 -aa38fc0507ca3ce3ed337906c6664c65f1974a2c900d7780cbe2db5bd7082d65 -09bb5719d8be69ce54d400083ffbb9a19bdec1c176e4a47873886d800d557864 -24e3949aaf10e4155e3cb7be1f4eac2db9dea04e31cf904c99737fd5322dd0da -fe67f3c3c7bd2b518863e241d77de378b0c6577ef9492284a5948db8370d7053 -8bfb5bd6a1da16e1be0f8089c9d524ea3b5c8507c82b80242ee129d35a14658d -eeb2c0c2b94144cfdacb3cb7ec7d072542eeef13052258f2f4642e2c2008f6d3 -9661ab74ebe8ae6291d5185688374431ae544e908082743b9e7bcf4d9345abf5 -d14ec7c4d565b5679e996fe49e0b416432ea7e6760665bc233c7a65f69621b0a -5aeba9bb553914e2d06b4f5230354b04167c01c41129c4dbdcb23f5643277ffa -66724a7dc43fdba2647c5d453b7ceacd918334c716aa52cb6829cfef0a094a8f -a57b44f9ab66a9cafd4c33c1a3a5419202e8eff3d357eae002039871e225b57a -cd755ee383e30efdbf74e7cd9c5b418a9501b9e4cc74a3c568a5b61854179a24 -3f2897592602fb41bf4f244a80bfa043fb3c6d29b827673dc9933c0beb6d9de0 -0d3ad95c9fbad1d968e62976bafe29bf372a13c82e532bdc9285de7c57f92824 -491991bde2e974f4894470188e0743448be51f87a0b4566010c859ed57807744 -c9773ff2f3dd0a53929155cb426d6837fa87c21993f9b4451233f659cb202134 -6a4dc9e10cf26b35569340a2cdca7fc1401b020dfa47e32fa2ec6cb384302b11 -8d767a9227b54640684c4a1fc3a43fe07b01fc73f9f77583760456507c5bc6a0 -7be958c8be68558542213fadf2a5670838b7c45090530fb0c678e1456ecce593 -7c984fbf2f922cd11ddaebd62e14206306993bf5d89fa28ac073645d0d6b5bd0 -8a843c2fc2db153123d56d0a1d7c2aa2ec0552aa0c9297bf1d2756404e9348be -e82ab2c79a7bd896e0e87fbcdf0b57d341b763a29a97340a7677dec853e0f36d -3cb68baa7d424517cef3cf785191f4a927f75bd5111765e24f541277b235a522 -0c2fde2e6a550c3553e91c733636e75ebbf6f62052d7b64e79b6c04ec1530b21 -08a76911a1e58d455aaaa0360b2b2cfee503d6d40ef17935d354ec4128a71417 -cb57c94eba2d5c02591a7dd4fb1785e725c82b37010bfac359f2f1e033889670 -416c5f21f2c823cff8c48ca91e15e61a7e4d95237ff093fc3f17c67466a55c08 -ad3ab415a409ea6ebf4ffac39fc079ffcb68168064d39953054c62b631cc75f2 -f8d40dc6475794d0104b1181bcc6d430866361755c6c9e65b1f851b9b445e612 -07ba955a174bb7c67a8f42504fa287db7c0ba1ca9783ba039ae174bc80017564 -066e102cdb294e5eba2df26dd8968b7406d76540157c86cfdbc3dbce4c20d068 -4acd515ca47d6ed0a3529f614334c26835a6d4e976c14ab910bcaaa7b36d0a23 -fe1e001716914fec7c17357fab233efb81cc67772a559dfad42174174522af25 -88259a5412270ef7d7ad5e193bd1fb80116876572be64e5ed4ee0655a90663ea -3415272952cd2403d3472d2796ceede3a698257173ebb32c88e7a8cbf07044cd -3b613d5533cc0a8f092b7d94f6de89d0888e03c9ae11f4c31dfaa97766c29c7c -3d90d0c89cc5dea2e84c35082618ba10266e222475d5ee2197824a7d59523857 -a5dff8ab3c4b4e44770d76111f22a12aafd300f11f23e14ececf8c0a8bf60b16 -56a628c6ec9d0e183c4bf8e631c9b19627bef283e927c5de83f45ab3bdd911bc +349cb04b0334d7e6356f685332151465992a23216a7d9a1723590889d379ea47 +40fbdd1723159afdb9d6b6b00023545e5b11946c826aae507c79a59ee40efdd6 +3f7ab26ffa64ec0734da75276bac98d6eef8218c3c21766a21af0515e1ddf7d1 +6c5ccb215cada17f9c38a5b55b7bdbaf2b2cecafb51b788e90bdb7acd2427483 +c450815ef7464894c3d57832aa590d86eb0cef070cc305db061fc842e0f5492e +8552656766a0b5d8442206500b4d4e3d35958b9501d3e19764741864b16a4853 +1cb082e64e2de5ca287017c87247313fd6cb4226282ae836c859ff3779532224 +d9e1b22e2f74c296b6a96c876bbd159f6a1aa1292ed84a35ce835f6657ec7669 +77cd6f09047912f2dc69a457a0f040285006d4bacc695031969d5265074d8767 +dd210f53b71c70be6b3c89f2b87d45c718cd3125eb4b9b2aa9b5071b7660e9b8 +dcc9d1893280cb656eff20f3725e7cb8bb787b5f94abbac07c067913eef011f2 +38d1b92734a7682f76a511c6d31a35eb0db82313933a1e3526e8cdfa57e73961 +96cd7e92a6d6ff3011a2147c17562cd2de5c98e619e2b08865ac8df3b7d4180d +ff781f5ccdff7a07a3edb2bb9cc262183bd0750b67d1cbd8233425299482974c +c667fd8e84af84527e613f8defd4c8ad29d4db17107c120f64aa30bdddf28f79 +ee6845b61efdf0e7cb4aef0998b116e57e294c72b72c4629846b743311d3030c +767b85b0f4eb55d9a6d1459a63dfbe482298357d737b9e295b18b22f05951948 +ecd6e7105c0abc459e93bd13da37d31266559b1408e8646ee65d792382c54e78 +fa4ed7dbe4fdf792f8dcca408c0297a573af541806fedb9dd746e35de0e31fde +1b29e19a7bc81304c6ff0f8bee5ed79a6158e80cbd2ccd68e53d2df5db4849f0 +85191581505bba5048b1a6ae39a1e3adf65b5f38018406f0d5563cbf51e534c5 +24e61a82c563e3517a442af6137fe0f7ae6b88b1d6b09f53af9520bd2159cf1d +65a4eff69fbf97128816534c40cbd3e4bc4eb1559d9cb314dad354a55661c03f +7880cb6b0422fd2f2ba1b7e3ff59bb7a22dc393bcc36a4cd7e6f4e571ed718a1 +60c46701d761f1a609f9e675648a763040dd0b763bcba2519bdcf88875fc410d +b992bf15e21b2b19c096254cf769831af79647f15b76624f9f9e137e1a68242a +9e11824fec07359eabe6aecdbd2f03c2e7f8cc780792bff240da878df634088e +507cf00a104cd70a859800c88adce53f676590b305e9cbfe83227c39bb6787e6 +2c3361e8d36583b061d83bdbce02dd0e10ffc48238b0ef0f0aa96ee7aff5354c +96f38f07429777d9314ca0d99c881a49c1447a219e02d92f7911d7e162a5f800 +7301b0fac4a23e626c411a47d76955d58a4e7833c21794cc264579724ec63289 +bb3adaa21e230416f401f89f977bdc186ba656980430193cf43fb7ac27d6fc9c +10271957b61a72887f2c9a08b6cd20bc6a22abac31cdd3df92626e10af72a24c +3f2ecf3a1bc64fd431358b34af41e60b45da42af585bcda364f8894488813f14 +e2b03f1ce66bd5e90dcc2159e634b9bfb9004640dec7295ea19e9f20b8d9dfdf 08ae31a4c7f39147818308dc68c1f179fa893f5bfd56ee3647169233b11df36a -f6688172613d08ffc52e324f13d1609fc2e28f9ccf3b3a427b740e4ca9163d2d -e88149bef1cf7f539db9266c2329f1469f128823e45fbc33f2ad7210d3a7203b -4c58617ea1249b1c7f7d312d1635134381e78ea58bbe60363f260f71ea00d868 -faba3f4ba4e7416f035bb807e50873cd8c510d2d001ca449d5a7586e8acf36b2 -6141c7b3b3a3eee139e608a0bad9ada5f122610fe5bcefc0aaa6a6aa54d368f5 -f34b2aefe1c19bc24688576d3e0a49c80fb529accf23e15f11eafdcd0b9180ce -491b55873b1992665a2c6cc19763282797c7da6efb79b1ee9fd6300a8c1838cc -e809ced51d8913022e7d949ab42dced250e121e309b118320dc3d2b46b210c43 -4268e9770e9de360f66a68388e3ad516b99fb6ecb0398fcddb404f2314c93852 -057ce720effaabfd7c1579f7f2ab28d57879dedbcd8726c6d0e592e384987e8a -f06f753521a12846778d9433cc283977687b418651519bcedd858f45557cd0db -6669b64ddef2594a23dadaa795325938fc48c57a016cfe2a2422fd3e68ef35be -173a85542a577f34d1731310d94a58e0ecbb7538c84ba021c18aa780d651c7f0 -562000f6699d4068280439df1e9779fbc278ea84b4c0d5c68d64df3e39d39b88 -d175178c5df2ee708924be190724ec5f3bf7a34395a42c8a473fa98c67e5ab29 -b9555893a89c1d1afe281ef5b86f8d5e99256c35bb0103cdc6fb8c5a703a0d76 -0d1913d193dc82392f65bdb001706730a966159ce86d10e2f2ea75c839d0c3df -844180c0a4f8625627a583a4eecf22bca9fca008b9e6ec8e22fb01b677de87d8 -f1159e6bf0904cc092d0ddf098dce395ef760f3ccd8a41c475d8ec42080fdbc8 -3b9681e3c166773d2af66da2e0ad4ae3b583b7d1c796f3b8fc1f33f5b13b43cb +61b708d7322033b5847791aaad03324de04d662f34bcc1f969e2ddddbe9bbe9b +29cec9f021239f053eb04668e7a46c7908580f00e1a21a055590216531bcade8 +3ab437c68d324d95c9c22337dc54e44c35f7076ce3bce2b7878cd339a60aa94f +00d705df7e4d32dca8633c6ac9920f6b38da49b33eb6aa4de0822f23d91844e6 +5254df0af0385f267fbdda35528578788499beecf9092e10a8e74a656fc7ca70 +28a74895e7c837be1b90a2f652df11994bc9eef27d81ad3dcba9e554b7f5fa78 +0dc58ee231b90c98191e4eb12d0b713100393239c4e1423f56e5a9fbe9a47a46 +f2bb39ef4c826a60505ec938470b9af73d0836ae5128ef1f7f086d226cb81238 +26e8b71a8c7c043ca18cf83956ae00f293d397059c3a028e18d49821ef93a10b +8a4ad9e18a6639b620a5518c182b966c97fdaa06f88d56e91c7ee99b1e43aa8d +278a9746c0b868c3411b826682283c3466eb7a93b863f52bad360521d60b7a02 +ac01477e202086e27a661ede0fee7b0b4f2759a83ea8cd9c9ced3b2bfa05de1c +86fff7253255f412eb4456c3ef80318671c081e96aaec27b7b90ae0b51449311 +b0f09ad016f16bb6c189339795f62a150aa329e1cffb50314264264d9e9c6e4f +a0940d6a65a300139490c760e3072104cafe4ddc5bdd601a8577cf34fe56e56b +ca4254ca8f99029236bf3e4061f66944eb8449e25ebacd0df5b08441afca8629 +a7d09e75fe78c32b762773436d7d18a6aad941a44eee9afc869283d6772ffbb8 +e7599201cc39f4d5c1ada0875ebfce3d361dacf2b7de7b37bfe16f2bdacc58d0 +f2f986f2cea963a6073ef33a4f72f8fdd751b3e5e7c8281e951966adf89c82ed +26617cec79a786b44cfd546a4d7f731fd3db9c077ba9a6b381f1cafb070f9d7e +de99b15fc5028708648b7f1b9b8d307b25de2b141744c709d52b3ce08f32cf19 +2c060354a2208125a0a855823122f589cb954b1d5804bb1605dd6abe751ca976 +2d29120f2cde14ab562dd6f20a358e175748ebabe994b2cdcae8400c6b899b70 1972942d34f8ab8bcf1cf32ef039a82f3c64c3705d88839b1407584d203c2b49 -5bcad6dc58b6a2568ef82fdfef18f5cc8e5f189cdf43423ddb4234745de64194 -b876f3b2fef63386a8e1dc0e303fb1af91d471fa80ec379cd065b27d2d79b691 -e49e348e0f948e807c7a8edb3618ec36ec1c6134bf88494f21d676d91c2b2f68 -bbf75d3ae7619df58a5d66d82308a7aec862584131cd32c5da7f4ca28b37438f -036da43312463ef1dff92d7c894a5362e07ff5b3111d1f166ba4cd91f3b142b7 -ec89ce698fbdbd8d16b906ee2c41cd73a7a615b3675fe8fd7cb176ccbe202b14 -8f9750b86c285722a1eddebea0ba0a086a477d144fc6e5ed0d04fb46ca9c6558 -2895be4341ad9dea12c3265f71e00a20cedfbad75856b20d37c13b0d63dd7eae -1db51a96fad880e9ba77f07f28b96172f84915116b4b5c809bd6d1267488f4d3 -1b47347427d8c4a8fda115503a96e5350983bd0e454f831d2395528e16542049 -98f4a1691f83beb110f3bc2b726e3b4542a3eba1116d57820de95393f93cbb21 -042f4525c7afa81c7f11bc0687ec919ffc82e6f30aee26f3269fb8afd73d3afb -7d60d4e0f52d6bc73c1acaee6fe332f247f6e6adb84991a03122e3ac849c9250 -bd22a4f9daff3309dc6d29574767ed3bb9c32d6b9781758a7de3a82e2bf88f80 -95f6023b7272b594abc5470d97aafeb2acac563ff67a2bf172d6ce3a8aaa09da -01c3f0d92f56bad0fa7297e363253ce91afd9fea6f4b220431b1a3006541882c -21aed7f6bdad94bf02279e528f53c49a401a1528f79291cb7f8da7d544d1e97d -557c7a173653c6f9d029a9e3ed3ae35e7693582da45d2156f429a41f717267b9 -792257445f2f59fcb33e459e1c83d970601272deee376401ef21b21edbe5d4a0 -67542bd9593de095f47c9ce1a81614bf972b50de08b190b9f65f32c2433a16cc -35ca5398197a5c50bcdc84c97c6ac62debec478537d1ee76838b12d6d71dedac -30c3be34ae193e65aef359402a0e0a3e5bc74cddcb9f156fc18226de0aba0251 -72056e5941ca613511c0cfc3081336c241e7e8a172003d4d668a6a2b4c3e6de4 -d0a627c672fb58b0c099c9140477c08831389a82794fe542a66bfebaa036d078 -466d3c25cb2b98cd0cf5c4a543a9937f37964df34c81993234f4d785853f7e42 -2b471a2ee7e9fd232fad32d58c229f97b98273a088427a6dd417191d2b2173be -7da160b6732f7dc4d06b91fe1ed58432cee4c2806889a68921692ec9d609cd89 -6e1c5f73eb4264ee35d9bc23bd3a00c25b219590cd9e8476cade586a277b7280 -7570b1cb7977ffc8d1f247a0b045afb925b552fd52a1cc3692987ed5b2a739ad -02aec0aea5a968a72b930f664ffa4e82893b992bbcad26f6185d830d1b28cde2 -1bcf7cd5ec917e27c62f40576eec319d20dfe2f3b5a03a412955d590fb4241d0 -a7913da40c5c333d44e80b344e16191b7c9c4dc65b013291afe64d0cfe492e5d -d882ea28435f2e33900640088c913bf8ae7bcfda19a05252507945bd9db4b6e4 -7d16302c29c3a49d65147ed57daa9bc4536e3cea9ae8cc8741ba096afc1c0c78 -f723aa596c0a174051b62b633c88f3b1c21b4ab0d604561031a01b68efd8f700 -be8c3abea7e8e65f5206628fe324dfff446376ff1d91040e363a2f49c79e1f83 -8d588aaa34c4dfaeaaaa30315e5235f2bc7568fa1c6e135afe76c239fc852207 -fe576e9dca5bf6234612ef3d1ec5fe8c0beb657e900315427f23cc3adc2c6575 -ce6c6e8ad42498e771785ded5a6cf0d60a9986fe84fe74fb8af6e3c26a2f33ad -1ece3db9d1ec73c612db8ee27a731873ca6d99e7b0e1bb46d55d9811cf611028 -996136cb6bacbc6d9b7bcd5483d5936c70204ef686da9e7104df7271178d7737 -8ebd3a03eac106274b59fb07a3bafcc760ba578dcd91e3fa81f6136fa7678765 -6d557ac25a515f93e19b5fc3e23a6a39c2bdd9784f728f34429dadfeac1c5c11 -6d6a6926d747ea5a6df3a0c95d4ebc2c268026032f9b596330ed31b0b0b7cfed -35a5c95b5fef39e96c35c38c4dd11eafe1826c36a9d87f482e4cad459635f912 -6d1ad541cd0380342d831d46825b650b88c40b001256afc9b0837e6a87c19e3f -8c5c6ab7df99aa229b44fd08e3cacf48592c1aafa7b1918f920708f43b7c416d -3a797ef9edd746c481eab868f1fc1deb3583c9d2d910ce20b742420c97bd254e -03218fedf3dc2124c9b4b13e882cd99e71ec8b07d42d7449177df65bef427ef9 -aafdef74a1cf38482969e69c2ac0718e42169fcebf1cca5906141e3f6f0f69a9 -c8e792f356f4f952d54971eb3a05d7e1a95ff4a3796a83e1c046b8d2039268af -336c3c8de2b5304d3c42c73368788f90e3f28f9f9a9b38f905c44bda20042395 -9e47513a2d5f98dacb8118ebabdf7761057b2a3f1ce2e040aa49f361ddb58018 -8408d865d9e135889f0758a62220b6b85c3d93fc7f18becdb1acc6f377224864 -577394cd4002417b214e6c241c57bdbb5b6a2c65c7df348a67715a9c8f71fc55 -9ffbc80b7b2783554c145913b7414284dd83a4242740a477162640ba1a72a9c6 -0e8495fb47bb88e98adeb7f20fc306146104ac59c05c14e6ad76292e80e54e86 -c2d29b1b02bfd7aa823367159de00034df141ba7bfe657f06e4a9e13a895ac44 -0324c42952aef579d366bf3fb72e6c346118714e7f6829985c9ff14f2731fe79 -32a8fc816403de48cd7afd613984c125246e803e127e651e1d1c21c5d43c1f1a -ca8b9902ec2c6e12fc94c76890aa7060cc26afc03945456378738691089c59ba -c19deada2ca35dcae489b834e90f466e2066a1e3e64db1a30ce95cf590de9270 -7f7de3dd1cc903140d3f34bd00cea01ffe0615879bba9aeeb6037569f531c402 -1256f2aad09dac3361a97edef37c1c4267cc35f064e9ba1ba677993d1b723365 -82ec89ff416fc243c527a30735d97617984ab0043b7e1678ff86a4cce193e5b1 -e3bf127d37b2e7c9f68e1fbce1e2677dd9a3f08f9770a587b701c26a4234c2f4 -b71aa43b2ae204cc2565e126c100784deb66be4abdf12786b539736c4681b367 -c0c5f1469e36a33cac6108101593e395744b0369cffe01f4fcea4f0e90f5608e -d95b981e14430e50c2b0171d4359ca768d13cca75278b5d997ad1a3679999038 -aff9e0bc9b465398d0d209045913583ca05bac80b2224a54bd1011af379f940e -10e659b863562fe7d5dd6a42a219a8ef9aa2bb673f6649309ebed9aedcf6d638 -9174daa11811e6c54d5bb37467d1cf3b48d23a735ba8a4829dc5d2fcb2fc3b09 -c8c78f172bd8de749cbc52d47d7f5fb04e75d5de425416615eef9def660dbd5c -9a80291c534966ac2dd332bc53f6c945151bae8fdc853d08e080eb76d740ef24 -cbebe5f2365ce6ca5b506f04f0262f323554f2ded07c50b89c5e41be2b609761 -25b807782e00c5f777e7028f1228ccfd57a706253d07cd1199471eb8224aaaba -77efdf30843c610afbc2d42dc00d5a6e90fd57b1463b60f25dbd7103efb8889a -9fc3e43e0cbbfbaa8e7f9683123eb810c1fcc79ea104bb4df79f7426ec62f73e -dad2482d1eff055400ccf2a3bb96ac73c925a7982c958510ea5b4bb71c6dbd3b -23e0cc5ad0ec4f452f9075b972f1a98b61addfdec0b5695166bec6488281dfb4 -98480608c5600935ec95d3005e8f0485ee3db49d8e0280da7ba1860151b58fc4 -11cfc4bf15d550f5f03247e357cc385ffa97dcb411012c1f71cbe871c1d3c7b9 -46b10436001c3ff288e0cb97b66cb3393f55cf51f4df7f0c5bb83f558ae80b20 -46d728c9bc11ba8f21e616e475d216434b3fb942ddbf1d6e4ff6d27293d90b70 -8cac2fc2351a19f77e3537d6e9f79749809da3eec2ce4671ade8c225bb621ef9 -e059c27527258a5dd393f7b6f90202a87ed5e425dcb6f2e3281c9230497602c5 -0462b6c50461e0c148bae17d500eca31eb72af129dffe53713898d27146847a9 -d25b426764cc9baaed06cb2efeeea43408a876c91bd7dc5855a2bb565d9de5cf -f56b82a660b624ad4600cc25955e8df9b1c88c041427ed9df1ec4232b3c4ebf5 -5c482bd1c135e67df2f10e9428db1661d913d454ba1d12f1c8b2f187ae98fcb7 -34622cdbddc862beeb95ce66a5fb8f359ea8317e013dd1ed8c65d17440b7d872 -b63b21b8f4627b9a6684db09be8b28a30cd45dff754042e0dc65a3cfb603ff68 -f79d033c5fc61f44f2f43bb85233e75ab3804f5e459dd29b0dbce34f1d8723e0 -c12ae040d310bd0b2038519d0175e760dac15f5072ed6e24c27ad88ba47998ff -28144a330b49c11d2f116f8ee34ade8e7cf405860c0af37347d74188920208c8 -f6c9d4369d1665b4dece6bb7835dd714d2ca26c42c62e59e8865ca95245b4844 -4d740577ac86bbdee5cd8eb64bed46fbc952f031c22dd1e005bb931cafd9bcca -4a2c97d8b77780752ad92d332b5f8674acaa7bb05d1617c5a52d74b7e5faab38 -fdbca523aedad4d9381cefebb0bc5bda407f14dc82293b203d1e2cb848762a74 -5624baaa6b22a1ce12754aab8f152831b658f66a499a6f41bdf27796c017c364 -6971c69a58cc8338153bde717afc31bc6b1451edc3795ad2efa40428a00d665c -6fcbc078248328122ca478b3aadef8f3bbdc16396142db6565ae0bad707b2cf1 -75eda7b124ec8e8c105fa9336a8574ff3eb53e38877ecfd9aed38669b800d07b -a9ae552adfaa6b2975b43bce7724453e499ae6e76a76bf8eb8dd0d7273c8d757 -9c3c8db8a5cbf9434a595ae03653488c0060260c2d529222127e21c6788cce09 -8c03eba988751bfc3a00892dd40a7140f767991e472149e71eeb79ee3a29b7d3 -343657b68aca27438d17d87e95374eaa6d2c485d1560c598bf8e53ad60410cfe -c1a0f99bab1a25deb64a86e773969d997f17de4776560556b562170d2a16d9ad -833e3c6bcfacc13492dddceb9c3e2adeea2b4f83d93f6bec9a01a44bfd5f4501 -584e455f90d61c33c9a0aef8a12af8ff80b157e8cdc2e31d59c16122f92e5e19 -55e613549193b550f34ef0ab858654da17760cf3aa611c14b3709d78af823d04 -d75a2c401a31a78714105e87028b347c81fa8a775f131f37f491d1fa4d521bc7 -6afe06780c35eeab03640edba7366bd5f60cbf9987f01cb74eaffd3531386ade -d3d3f40d98c558ace72463b5003893630d69e6007ac34d0d663c9041fae2aee3 -05d8a8e673e243dbb9e26e1a2919128d326ac9225666e3a4fdd9db198486e442 -7c08140488df594d0d2c035973905ddab3566ba03455470e5059a0c7c284307f -416f2bc1f26c31de247fb9c0e48d77ae05a695f5fd40a5dd389b8c5ebda7fb9f -e13041cf2cfda2f55ca6e5750f919a08e173284ac98a5f7c81897ff8796df8a8 -5e6788083f740e845776fd8276d561ae7ebf42da2babf63099a17831457cad60 -9dcba19b91ab5e18f9df1f5ccaaa36c7dfa1197fe180c409169e355a7d0eeb95 -f9d5e7c99ebe57a7f9afdaabd6cfc281bd5eb1793623045339ec854f5f3a7a23 -835e1179786a2caea92a848095d62be48af6b27f04b636892e70edb599096a83 -ef7fe6c934e5a8d152ff060257fd756512b8fd12f452cc0230e33e4504eea593 -8ffff024f84a46c7651b7834d70ce0b50dfdf07c7c5fa8e16883c5c6d388fee6 -4b43da81457a610018e5253d2290cea1baca7d8d87764019e47bb1690fb5964f -16ecfffad79be11e1f94fe16e0dc0273b9ef018146caf14bc2cbaddbbc67b6ec -f569082f8e318b6f3282e95a81559658ccb5110cd8654ee5c4b66ee946708b7b -2e00bb4bfd956d08f5bb163ef3d6e51dade17a01a89cd0b57a05509656390b38 -a500ce1d4f84a58777321490b47579dd8e3ffa0036df96a07f6a7904eacd8a24 -4fa47d27364e3593a1c9e2bcf48e5d44aba370509827e6590bee3e5b8a8da7a3 -96e9a3fe1c22512bfac22748e3adddcdbdd51b189ffb057a111e55c2a443d09a -643ba8316d68fbbe50280da31fdb5d4724e19d7545f80e5fe6a74f6727eade61 -082cd5871158ed23473f495c067fd2033e9509b4fd051d4715b67f04c5bf46cc -02eb7bd21c49abd503dfd285b2549030512515734db133f81a9166fd43f5b3d9 -172cc590164b24998be99c99817420235dd3d94dfa168779994707f36e8181c6 -785c3227d20fa011d39358c23d68f292785d474ee4e06c379834c39dea455d96 -dc16cf1ba5368a5b4f35bec92b1b7b01e5f4def41b1eb4ba4bb60a8475a5c5e4 -ba6b07d56fe2896d728d08f66e68432d09212fecfce6f8dd6c781d92413d97cf -43808ea15c0768a439eae86997a0cce7ae6ef7b9a906cb8f126ec15417db8d8c -7847cfb02e53702154f4350546d62a719ed04e95c777be03a7378cb9242785ad -052145eaa4e8adf7e9f349fb9b9bf32ddee6a852fabf3dd95c5c9fc03da0d8e4 -8837c643f7f3b1f69bc64edfed58a79b48488d4e6ea3a0aa5827f91b0e11d369 -46bd8c9a6b4199cff6a6d767a721d830b86b6e5ded9cb536ba1198244c52e2d2 -af5513d9683963f684f7665d45b1320b54fd4a7fb04adc61a260775ad75cb55a -f8a3d909308e8edf7667c10c52e52c9fd90074366dcf4023daa4c33a49227aec -1aae2f09204bd29c25467c394b0c82404748e42e9a06cc6c391f5930b2e15648 -da572147f3366db837976b49d7e0bd57570c2f9c2f68a84923154ab786f9bd1a -addbb4f769c9861b09e092a741471fa8a248e47c0c8a8bb5dfb16d48b3bde529 -8342a39271ac2ea89ecc6f53f99b36051b94134b4b0465475ec36b48522d90c0 -4f188d14e5c057b2b671ab66ada56b00b58993f84028955c3c1c05d64e27c44b -d3b751777486dbda49530a0a1a8f8683b7e87279bf004ca49d6d95f3942506f3 -17889ba32a10258db28c5493f41a669b004204365467c5960ee254ae009e4db1 -add549d363fcb18bd21c8991427bc3e765edabc9ec164876c25e6291995fdc18 -fe6162242b8d0984d97beec785c34744f7fc08a693f61398ac733dc8c54657a2 -7ed5014ae7cbd10f6c673d3e7192e136a4419e0ce84f38f35d2f3650f53542b3 -e656b3bf51eba4fdc1af18f67df16206f6690f6dfcc8dfb3a37aad1e3d80aa41 -84417a1ab812f5d1ade9c24877c20b36c9a8ae5806643c9da7c6a9fde0781072 -e25d782e8f22bc8c23d81540e65c9eb5b687daa5daf2085a3705886ec2c3c5bd -f4d4cd8a5648cff82d744daf68c8cfea3471ab0da17b25de1b7386a134ec392f -7cc4cc5dd5ec9120f5f16aac1d8edd97c9d6c9168ac5a2834325d9a924698550 -7c613e4ad5f54f7b42030b5e9f8c1c1ba403842539fe4a2c962914769fc99eb0 -d655cb219190305d7287dfa0e4623654b3be71523730c8548672e9b7015cf797 -233f2391b7831db9e0f6284fe9482d9dc8e2969f38808547a0c50a47f1d06b52 -45f0668ec21a795ab579de46d99cd4e4cd4c11cdecc3df1e1ab13a708cc45c0a -f383dde4a5cbf91f95007914815e41d08ca41c891219b49e3ab7a77d0bff878b -5e8501f7444e6870f9d3de009c60c15862da53140a0a7babcb7d5a0bf96d9c1c -a44d9f3f0d5ca4f6e0ed732961e109eda1c01098be1d2b102f1efa6d677e2990 -726cd5b0caab67800357d8c4483ed2b2a4d9d4e908d1771af827835d9faa77bf -6d8cf273de3e109d8c173e4dd9cbda220d19bad02e334e709251d96e2006c16a -84dea50bef01b32d92d902b0f1c53e5d42fe5a75204e83f565cd70e93fd28a27 -37735c20190ea6b6784beb5568a0e1d34979e977ccf04620e09bc8bb1108facc -eab7705256b7477a31133d1431c377fe4af604a9efa18a5ccc69599697eeb8d9 -1ebe8a62e27939963cf333ea4f3833f04697d4aa52fa1fada1f5189e825417c7 -f1ca5bc567dda66d6931647245ad0329469f8d33b94df6d7a53fbea584dd7794 -ed0be19865bae18ccaae9ade6ad0e5a6029965dd2ebc92457fc7572fca24900c -09884a34fd10af9f1334d71e0d4a657665aadb7b54c066602db09b059e779e0e -3d79be6f8c62953f6af1d143096f95bc477dadeec524fd7bb99fe13b1a35a267 -0ee4922271023cf9b3b86855fe695f05f2dd797294f4b24f7f62f3eff8dfd455 -6b2eebb9f84d177d772ee64949d990481d17fdf3d9654248c9c543efb75ba4d6 -5dd0d3ac7d11fb1e76259abf5f01ee923ff8e080418df18aaacbc644295dc3d5 -1ae70dac2bec10471aef198e3b97683600dd1947797b13d0b2ded06ca089fc7d -7b12de6178f5bb7defb3c035fbeae51781472a7331ae1de31d4b0c860902e64a -3ad8cb7c4841585e4ef960dff97ea68c083e627adb30a12fe3e945b910c68097 -5508bd1e9a9263706c3c6a3e785dfe1b67fd6217cc4fe94cebd79ea9b3d30f6a -46acb486c734c755b5ffac3cebe6a89950ae9f416b712f265e25bb24cd95ef72 -12f9c5059b52b944b55aabe663fcd2331dd849dfb8223d6be9193ad774707347 -74b27e804d6ad45f26a459ef633748f5458ee795685d9522b4e5cea893b773ef -443fee4dc5d3bba29d1405533452261140e288e8f5a3b9e410dd74c2a5046c45 -8a2dc1effd2eb43309862428d11c32e2076372a4c0cd4b0b8169a7a23157ee53 -93ae13ef762ac1a5acadd82fad11964206bef830d354806b329ee3f62d51eb2a -31917761c04c19a1d8afc5b8e687fec3a82fccee2845559ff76780672b76b61c -0b5e91f598a32088f57e97852a31cfee6fc53f489de1e4f616a099a42f337f1f -d94b1aacdf2f0bc86380f734ca2f3041d37908da429b86efb276a848ce0de6c6 -2f26ef45203ba477bb9ee38be0049d4b794ac169805608bae95ea71a7b1f0d71 -5ff0b645ccc18f67606b99d09bcf24d1177d111c9bbb2f57b0d215b5caf9bc85 -b3598df24340bca2767fb5cc23949a174461015e7ff7dfd0fb32c8eaa0d21aa7 -f366961a77955c9bd8ec42a120a97b0e798417b53517e31d0eaf7e8259de4e72 -935c8162fb14a2e82ab4e3e2ba0d136506da3dabf939f6003fecbc34376945e7 -65775d2f215148ed213fcc5587d35e09a9561563e7de65a08867e7da49245229 -81b211124200c2b3ec489e6289ba20b3cc928cddf80451b8dfd902a03cbe5058 -41c9519949e3e3417f7d2c6cc96fadd580ecc55a2304f658ce3a279db4ca73d8 -ed1a896d53c1f83c97cf26993d4342bfa7c692aaadeaa0b181c6edbcb0dc9d7c -0116cb33d4af228a15d3f2951370c24b3da23274e9835307707067ec7422640c -0c7ce46482a9d9f511c118ba18d1bc505fac643ab3a825ae02fa533220566592 -336e6a832b0dcb3d2e7df5423002264710c983dc6853ff80cad2b5cb7b0414b8 -28a5fb4c5359819be76eb2e5072a6d7df64fc87dbb48550481ce0752f8961405 -239abad46af37f676d73b160d653d43d8bcd21818accdec68c2ccfe05b767c1e -c67f93f277fe77cd78ea15fa184fa70f352a82508ad2fa66d972ddf49c08d5c2 -25c4f8f8cf15c2476d11508794f3399d685afa08302a4281e3659fb0059e056a -63aafbdc6470b5288f70b3ac6063a59acb0a88492f2560023a4112c2a77f9795 -fa4f07518e2407aa364550fa344152b424fa0eeec4cb9a1b7eb946321ea1c5db -cfb81afba1a930f28497bf4b6168868612c220b0eb356ef17243f0f522af2b8d -2aa77a090823b10d01e1023ff86c2577f23af0b4e10abf5a2baf069a606707c7 -9acbca60437a52735c17a2f6642bbab45a5fc2248d19dcb7e3a61ad061e246ef -d9bd905c8dd80fa063f579e0b8665c85353ad28d199052eacd4b79cfe233d032 -a310243f430a6a3f53b19ffa2801078f9b450c48f9026f7059c7227339856dd7 -29ebc7fe9c2bd71e05ce4427430ab9ea9fc8f0f6302c6eb0f146bebf6787f6d6 -e51611d99fc256b3159287178e24fe79655f60592c2cf7a0bb867235f77a3f22 -1532f6a2029b5e8c21a0754e4040c3cfd3813057833345de20114743a50682c5 -7591aaee8947dba90c28c8376cb83227fe948cbd5c944e4e2c0dc76aa1e92864 -a5d41ca3a3014586573d8a1a88be949bfc65da057485978331062a191ae74435 -b8d37029a2700ee2dd9351e8019041a9ca1274952cbe012125bf56da9efd4264 -df1f285382850e97b092101ed8ee5738420466171beb292f5c9cf728d37b8a3c -f26f3778288357fc96f5060781ed968e95daa6137df3327496d7498d22f77fd4 -27ee36ebc959a3d5acfa705a204b22b0715b78f054a2c863711b9139066c94d7 -dcc38fad28369f8cc7f0dd965d8af1e254f58adf1aca79ac7ec3c752d35095bb -ec1bf337ed22eeb9fba1abdad6468b2b07895d5d22d4072955f0d2d197b98803 -b610ac251c75fc94046058b1ee287bfa2476585f06a285b7c5b5e21041be8d2e -c0e786b6e06e8f9efd9ca36398a96d5a11e972dd3015a418f6042a2977f8ccea -bd5aa955fae94eb5dab26422f9c1d4faff1d4511b8814bd3b1ec4fd64797964b -5cbceece9337efe76e3636b3559fa676662b5c6ccde4c9467b32f6856725b35d -5b4a436b40643465f6ac328f9b3f3e750b4b3907dc86f63298bd0062091e65a5 -9652168767a9183578b8ef33391e87a3a73f5a711eaae60e4892501c7a9604f7 -80526d0d743bf15b5e34ff6cd0e53a8c2579a726a576b0c24033e2408bdd9a61 -34323ee50be733dbc8b6c941e309146e9eb80ef19f150ba691d79f43596f45df -b017b7eb681c42459118baba989f0ec85658a5a1d849d7b906005632eb436b8e -efe132b854f1deca46e3358d44aa81087c7f7d3a0e19790a5fe514b445e7951c -61ac4a854c3f42511a623b93c460545229637798ec259ff4aa4e4cf339234282 -c7c4244bea1bd64f84c8aa9acd7f3483afab2b3b58bbbde549b9d5dec124d3f4 -e0c9233c257a3dc6acfc04118472f9c55623cba384acf1d19362946a040ded8c -1033cb6409b4da991a641fb2474977f2f24496d84483c73c259a6e292b01a1d0 -d5d476b26e47c3037ea25a558d36e54cdf8740d868bc06da5befb28868c9ca52 -8de5f153fe213f18c4cb691414a970928ae26e9ee682106234b62915e1db1025 -2a30b6547075d68259ccab0933b6aa0cdcb38e3a5a6fdc98a4ef43720be99137 -a032cb84e79b6b4705edeee77a1ff57fe4e42327025447987c1236ab26c9bcc1 -61a6ba7e8760fbbc770c799794e7489910da75e8d569f52cb8bcfa3910e107d0 -be5c1e12a978f3bfea562fa6e4708ebbb7c45bc112b23c33887a937cd51627a6 -c306b7e72f151427d82ebfef22e8b96e74a3881e5a216b859d061e07013f6330 -4527eb021765205ee1a8326b86ffe2e243d0da4bd328118a1921bd080ca3b40f -5aee7d5c6afac0c13a80ac03a559ae47592d5e4c104c12cabf1267fc8aca0e02 -6c0a84a394234a3f4d575a43a7ace87c8cbf11320c5afb3b275f40c2399dfe9b -9ddeed510c3817eb7f1764f7cdddff50ea5d461af6c413cb982493bc346699f5 -239c58758aa88e340d3c90bb354d2c6d7182904e95504d00d94de424c0f0d04c -6b9b271efd11b12134f99bba51a52ac9e31924ac848e99806d86da9a5caf867e -28c8f13f9cc547564c8b577af1ac991db4e2e1735906e9187823b9010864cb6d -c38230ae273c88eddbef1a0b8650bc95fd00647514e1f97ae4259c386d230b1c -7b8756df16cf9d6f6ca5a32eae6ad70c3a0a9d176116559380ef84393cb44e69 -7f0a91f2a48a093fec14b6c6af2832531cb57cac7ef21152aac4f1b6c800cc95 -c69ce636cb3327830439f2cba8657cea64960d3948cfa5fc843f9cbce193f231 -00f9ac308b2efaac33edae87a3042c2293acb4c6fc72a545482b59ac3c087cbf -813c07eb9e82396e43b0a4015cdccd90df4e7b7ffd2cbf66b7e1080567f748f5 -f5625f8964ede138f4c0c8617062b96406bdc8db6101e4ef70a780a8c0440ca0 -fadb002b14a448d34bbf9d5dfce51bd0aebb4c81d87edbc12bddf59d01a50d6f -7986de51d61c642c7fab7f6dd02b33e4b5afc2e7d4bba2ae31650232b2256bea -865d313772553067ddfe3d7e8b46f6304b519d30b8f7c81ddcb39a8e324a7537 -51b8347f38e38a12616700301b96c4802945f90f576497019ee885a7bb82a89a -516e334f04398b626d016e0c56ee6c0c63d77cd0face69426dadbe9d4be62c54 -5b71a31a8221ac35b163d2bb9ef77a66573c92549afcc0cec4e03e1234981607 -de43c9bb210eaaa271e6ab2082beb64b911aa3548171ba8a9ca18b6f4a6776f3 -e90f47ea0dc21ebae48a352d34ad97e415a601627f292d3f2ef490be17648bd4 -f45b6b9a7416aa5aa83b0f033bedb4bd248b9fe7f7f04085f582c5d64639e53b -afcf59575e99e413bf40fd7d17c614e761a0930039a2c701d4e237ad9bb18a84 -8beb4806122ac789520d3e71ee205ef1f418003f2c3a4dbcf048bc68713fef71 -c37fb468455a38e9eff5a78444c564262c330a1f7b07da38c70220e23d1ff168 -3559ad9fd210412cd932e61ab27d9e7b1e81acf50016716d9c218e5f99dc5d1e -ffa1cb97b886bf2c0eb4c3792c245d21850fdcaf25f8c5550a2d225f83ede50a -c39d2c12b2138bb255d3fe116fbfe0a1e8c956c859aa20f2cef45732445d21ee -05e831824eaf2b0610b6f511471aadfec9eb2b088db70359d161a51e767085ab -dbde1f7d2b5d2b15b4afc82f05d8fa176257aa5ff3c68c91b57f878dda5218e2 -03bae5863b110431739d2343b865245c9c1ab4da8204cd5fbf5545590d31edc0 -8155fff8375a8f96dc2e1693c5ffe5030d5db906161cd339d849afd515acb075 -79c511a99a426c64edf129f2c272fa7f3580e1f3b41a838d714ed3aa50c4d991 -aadf9484d610b7f412ea68773b9633d9c042993fbd304534b27338bc3f8896f9 -0dd41dac84856681fda3f92cf58341277a74e3b3a3328c4ee8d24187a571bad8 -b229b43b878148d2561aa606318e4a4d85554f08e53f1fcaa43c6cfcf76dbdb4 -f6e99477cc73a2ead882c02771a456ea6e96f72f5ece5ea165cd43b6eae7985c -3f59aaa9a6143e337ba0b40a7bd4c61e20e3b6d7e951c16dbb31312d51b604f3 -4cdb46ec69c6cb00cf418bb27b4ab0922f4cf707f00898edd8817dac625a0669 -e2d41b1417544f35d823bdaceac0674dae5111d9fc45f13cf495cbdd2e8c0d13 -bd90c7210bb44b61dab5bfd0241f5b52eccac77577a94f9871f500f3c415605a -301499c7699a782be3de7e139276cb43330d5a7a81e0346607cbdb171c828c80 -63a54c3753afe149f27df7fab1d48d647fdbb687014902c207881bf01c008e11 -baa024b1df51e31141c2906e082b5a1bb04e1f4353ce4ffdaf7d106bca0c0dfc -6863d02cfa5ec2a3ea945f2c5d6dc3bf99e96e9f75ad5e2766409487214d49a9 -c175f2bf219fddfab264ae8edfb28944051b2c0c6f8703db56477d54de00933e -6e4b5031cecf29745db54b4719a1a627046b28164edaf8571e722f62c649f111 -8580515e78d47699e827fe4e9f79d0066d8ed9821584be48b19c720027862ecc -828494c33dc8328558611acd7f69f86702c2fc1e6ff389ee2a6611611aa65219 -64d1dcf47eeaf30b8878c1482b6ea5b7614168b95aef7459ce29ab2e667cf392 -d5e4a2aa0f8a881166d20ad60e6fb4a8cd471aae9869b3991cec63c22f32e255 -f848e6676ceba21d1228b9d94675757599498be931c92de90b8ec3be3a694cb7 -56dd96c9de110d282e57702bb0c521132337051ad094fbb0db61f936a0eb1035 -72f895e5fed463a0ffa07b85141b7ca5c7394ee00de6b09c841ea01c39983dc2 -c4e05aefc9e6796d590124e5aab6e67e38b3f0432333ef266825535cc2d73493 -8d4415f547b96c3d024c313c0c34be7932d36dae133461921d07d007047efb10 -a771fef338522b82d43e04209c33eb7fca2c334215f34612d41cc3c94577c01c -994d6c7b74cc585b2e168678362e5357f49bcd4c8d054bde8f4d444552617733 -f35573f978c9b65fb0e0dfae9e93d48e5b931afb492da21d2bc5a38c2330450c -271ad913edbd9b72f70b19cc03acca245969ab09e0a5d9f122d7a0f11d2595c3 -6cf710f89856dfa735b21fba7beb95be18ff73a71f11064c48f16b8e4e69d07b -d2ffa451687b3da05eb0bd2dc2e5d44849e9f76a76763bbe7801054c4a6e4e21 -56e1cb2c0df95384a7077ecd6cfcd896a2fda34f4c65cfc080ef4669b69ebdb3 -8b1e85f304b485451d76fb227ef09a4b2d921926ca34b2e8159a453a1fb50c16 -e0cdef7bf9e2f2903dd780aa53e54ca3004cdcee04dabe063be898ce8f541fea -99d1c8f1a8c0f0d45fea4c457ee07241c4d7f62e1c96113873ecb1ddda7f8523 -2c84b04e33252926973923a8e4ee6cc7164a2752f391b32eac744ce36fb72e4b -89c7aec3ae309dc64a7cafdfc32f31bd94ff3e43193f880b1582bfe1cc4cb402 -3adb97c9c9ec4c8acf7d9c0991716c7eb25437b9cafbfb5b57feecb400ed7c23 -a12847e0b9ac4476d831d8fe2d93af81c832eb575ca3b24634748156a3275fd0 -9f0ef938670382983762a7859641054243c89257fdb5b2307784ff8e9bb55451 -c2e57ba56c8760b7c53a839ed577635c21f3de2d601a48d034d6b55240b7ab26 -98fa8d47107c569cc19af8bba0c6d8addb0b86489a8b6feb4b4e71906d0400d3 -8d1efe2d4cb191ebd7f08a76188772d230fefc009344eaf7844309f980dc491b -d1842809448df121ea395159cff656150fdff6dd54428874f7712eda13897523 -5cb021f8f6d2d87b5adbcda6b7a94f94384c24430503f54e6e93eee092d5d78d -cb21bea98d630ebf1f192080d22727136237b009f85c86b9bb6f69d982e34fac -babb445aeb40a48ad9ce7c1e6fdf741c3d5f8ebcc5695a66d9ffeb1db4a505a8 -7c8017c2accb94036cbd125f954ca4a7f79fac0a2eff6bcb30ddcf04551a03df -a06d6161b35fa45a83ba870e8a28e50f073c1daab08f8df4be360fd1f75062ce -25ee6f16e57aaf5d7c617846f2f9586675a9a7fd468c8d3fa74e696f60a6d066 -2b4da2c9c6518efb5d8a5f1f51590f53454d103c0f7e85219007563cc6e247f8 -a28a2316ae84fcd8e2292bd53c76b1906d242acc791ab64be4c97d8335720679 -02935d56b9ecf8c7198c593b515411a1def3707e3c864443b9c3d56f42f087ca -184b4d3f39af257a1d6542689094fa7159e71f4668eb8150e880b0b71ae3907b -684729bc71675324826e7cdeacd85c75b98c447dd2dcd2903a8d6c3c9d793ef8 -a666b714eceecaedc0c089441afbc014b996b4288f2bea69146aa42fdd01e5f5 -abe8327090aa007a1233b80d5e43edaa675d8a753bf69bc3ebd721b6fcfa7462 -dd6063ba6e79383f900b7300ecf53e4535173e76b0ed1e46eb80aaed8633156c -e891e36dbd2300630b861c14d633fe3a9855814662ccef52dbee6cab61146346 -471c98dc80ba06d9e688692ac09fef073be040534f8fe842918b4607b285d9ab -505cd667f1e9cf8da3f8cff570cccae918027d5309ba6c6f01b9096d5493b591 -8a65208a2f456b92a25da0605eda8dc7cf899cdc8320cac31fb63ed08cce04ab -5328b5afc54ecbc36d720317b4d27bf5ccd383f35074592ab3493c8d76ccda62 +b966aa04b58ae3be1e3561c0970015bc21f63b02c63dce11f919294f38eaba0e +e9467294d53fb9ae4b82ab5ea704aed0ec989b7fdaeef89134bcab30ed3bfa8e +ac564c8d297fc6035f032e8a4a58b0e7ba5fca3c91e70765703e6708b33d582e +6ac634e681e2db6f603e45e1296da486d7e98f4ba8f0b4ef3a6e7680b79bbb57 +c9ade905c330beba2e75418d2b41e589630104465748217220c87fbe466ba118 +7ca0200f96e830ffb47c0edd493b72ae92157eaf9eaed1502ab379e7d53c753f +36a7ce5b8f6434eb4e68612408b7d6062fc985ee562830cabec961edcfb6da08 +930f84256814c4be0be52a186ba1be78ca63ca4d53d9110da0b9b9510465b886 +e0f3e1e9fb766159837a7211e97211cac0374412d7de25e78c6b0b219f60400c +89b42658bfe122ffc5a249f9204aa8ba77922b264ac4670b35694e0660b04613 +5f73b1ba688a55abec74f53d0b2efd2cf28f6cfe6887173ae393f45e82e2cf10 +a907911f1deeda9e819a21458ebff534b9c2f04818b0a8a2bed49a6dbe31deaa +880a53b6d9e8d27bf3efe5dd2c7a20757aad1809da42b401b9b537710078a5ad +e31c69f0b1e877bb0d71cc9801c56fbcfe8444810a44df8256981e383495ab83 +8a41830affed7cfaf909813bf2844d06c74a5c2dcd8ef070db3c93ba2e0c6b3f +89ed49b703083dd2c866865e8bc0f626556708e73104c12e04b293850b5ae418 +b53573f2486bd4514191c53f3b1563d54ed5c0efa5efada2a69ff18384f2f748 +996a3002ec6d59a20bc8be46f078107e9c7047f7237cf3b64e9b877c8aa5b276 +891a4afcc573b65af4e3b33bbc39c17e498a2963ebba329844c37ca6d5f28e57 +0243a0b54e2cbc6581b3c8e73ed72f9ba6ca63d6e03d87d5710483af3ed963c2 +4e6b40e498fd0f7324f5ef7cf90f7db47f51879704d701f03a807eb60ba9729e +8732ef9a6fb98fab923f74ebc531cfb8eae1c72657c95a1fac23211ab9553b11 +9a4c439f19a047cd02bd3d4b9949a1147fb152c75e0feadc5400ac9122e7860c +bf53da6f31276953d47112e455ea156979e109a5136be8ccc0ed8efc885c4bfc +d760142cea74c9af523cf6ee95b9792aee32309888405b447e44985626adc41d +9b2a36fd1140e9d0e72d4deadfb058979d4a197cde6d118f3d09cfc532623468 +f4fa780b5cac206fbae4fad8c9a44772f467a94d1bea453846717d9e0de81bb0 +957cd3b6556cd841f4bd85e75aed98aeaabc9386c1322edeba051607ad0948f2 +e1fff3b2570f2c7f9e25723505859e89539192054bafaeddb5bd0eea558f956e +bab514b41044b48d237ca223178013bf3fbed3d59ccfcd18ca5af2473d7e1d05 +dbc6a1267a0b9c54b1aa36eae5a2d13f965b7a948d1d61fc2c40803b862bc1d6 +62f6ef8e35629e538f5febdeecddae88b1dd5f165ebd5303d4ae43781d912dd3 +17ee43213721a76948a8b7c5c23c9875cc68ded968dc9ad62baa68857dc3ae8d +4e381a3434630b860c68e3a82179744f186da91d7f2a32f332573dbf096f1c8f +e035cf96a747c98e4bcb9cc0f83ea905f6bc0a9b3dc6ab59e883d9f8e702a0ce +d549483e387636b9a9693e1ae02378f3db198cfd6172db06c7667457d7cad173 +440491ead10ab66b4b4e076b495c13c70a7251b1f3c2c79a6d2e48c06af9f13c +585c16b4debabcc57f6a55ae79b6a366e3b609b50775e2fa7aaa29fb308b5c8c +74a38ffbb3138c92f5a2797cbfa829b78e94e8f426b8f79d4a46802e39dc56dc +3d5f5e0de34b1b00fbfaea133550865c6ca36d9c8f87a31829994e09ce78b237 +4b6a8df6a02588ab1d0781d6f817abb53d27e8b142986a36da8d3b1aee32ad7b +bc52886407409c20cda9615d316e7bfc1d055bad292fc1b044a9045667651d90 +31e7ab06af45df501da8cb91c05d35acb559d2ec6aba2686bb33d01d9c305b66 +cc183b54d325a7919c6d08cfaa203a259b4a691d8d01c94c97b44358f040cf9e +7ca9e18c0a42cba9d8988fe314567054e1469d6a22c20e83f53ebd8bb6c21251 +850908f55bd7b512f20895253f09d2edbe775a8594b9d9649e714425ccec45d2 +ebe946365a6135afb1904c3ff84fe5094f8d01a003500ff08dc9cd47e0923ee1 +f11d3ca9f33bc0c029aa718f1736e0ee854dd41b3cf0e23a03400955989e3f43 +f1ae9980b1f4eaa7e0cd8c0c1f0ccb112661d86bfdb39f0bbe997288f7b5d144 +aac7a68805f394eed203b8448cab5ac384782bae222820ff8e83c3212e429121 +bf308838c2f42c2907c2811f0188749e775541a3f17591cbabb3447b18d09d3b +027353de3e541828ba02911bb28648cd5b1d2a22fdb32aad88155356a71e07c2 +816f56296ff7e2b3531510167da60e590487f2561e7d5e1c07a1453120210f03 +87205f407511c09aa210c7a394129ba1213a78fa99ab66e9a0c79de3664b96a3 +c3cc975b73da6c110a1f2e85e263a1055b6863cc87ba577c24ceeb39dd8fc78c +ac25ef46b37883c5698e9fa71d962b3f8d2a148e89c383c5a8b75172661efc38 +0148a6661ca58b79ecac28596049ac006b7f915f28f317fc7ceb1414b932f66d +d0fd211e1582829c4199038a3b80f81bb312a5592ae58ee9e815dc608c9bb3d1 +c12b398e0a7e895b3def77e9f0dc32a8ccb1ba6c145f24503b563388ca307980 +e59bebf466bcfa540d475fb9503b4a75aa40cba89b903b32350212b5b653eb09 +3266ba11cef272e1b67481c00099a6e0983743ee0f8497440585ddd167406899 +75d81280564d4e691410457a46379f6d1219c41cf7862cf9019d6d9889caa6d8 +3c7aecd4d799a79df76a9b0db90550762e7d6a57f500d992d7aecf4757fc05a1 +9c54969821914d00a6b1bbaa887aa505e5b9e198ce805d69893a8c5825713248 +f2adb41a5e5dde999750d6571a51af3c6a75db7d167decf10a25d53565d78d83 +1081d42e875f218d6f9dd7fa51ace13263d903b99aca50aded9595da6474ebfe +c8965070a1b123043ad0ec9b91a6f8973965354933ca5552d503c37c463ea75f +4912b4b39370659b75386d6a974b67e4c7e5434f1604912c6b742b76c5f80401 +5e1b8541313249e161e4cdfd13e9b012d3a399b60c1f346456d36aa169fc30cf +022ccbf697879b8abfa031a5ed7b93a67031c3b3770fea0e7d0d70a0a3d7b40c +afb56bfc7554c61e6f72e65c4528f4b9ef6d93266ef1f29ed8cb5a25043f268d +3924149d3a71dd370a151d1a110defef096de93be043cf4aa09b8b765665efb9 +b97b13203de7d12249db2b0620df7cb2427e6285ae52fdfb28aa5c2ad8b77360 +09489613d4dee865265da94f0c652a7aca4e9369fcb70ed5d8e73845a0d03fd9 +5186b4db47ef4f531dad78d576b9fe473379346f280deffdf9989fc0b579a806 +cdf24342c9dd0f2672adc780816350025db36560f4e5aa9226a993627ea46261 +bbffe54ff8bb61637c3cf2bd50797438cafa0207ae6974edebe39bdd2f338969 +6651596e9d5122ba68661c3566750ced7fb018776b84b595b65daac168f14780 +f3f8b6d2a2b56bd5cd2a6bd1a49ae88b49fd7bc3c7c54b6913847eeaf3968d53 +d7a8297ba332ac9a518fadbe70bff80ff76686f1ccd459e92e0a2925730f0690 +f1b800d77abd1d48ff1a091494dab0cefdbcf8f839b81b15787db45e78af5d4a +2323324418795c574fc3273d22164decbce0d92a67859e4d33df2e5b6f7f4239 +37bdf7aedfb7a4dd239a252cc7044bd83d0935a3874d514112c16fb47ddeab00 +2348e77301e2742d8509993ac7113ee43f44e51910336807219d18a71d4b615e +ddbe543fe23ff195359e49f0848310f55cb1f4de66af463cab2b3a88b3c7a8f4 +717c0ebc88fea82a10b3d918d8f3f6d0b159f25a9b55b46674149f966069897a +b49104faded5904d0174f084e5c54c16135ae896e0d8d4a94b5d3f1e5d0a90ce +26ff3f3d32f48fb9bc841fad5460bdb5ce1e909dd95c8b1fdad4a63a37fc802e +39891a964a70563205b37f6688220a9cbde7bf05c3ec922c136fa4982ed998b1 +6df6c2d7ce660939b23a921f29a4f7077ff9fb998bb62c1e5e66ab125ef375e3 +1a905d194085bc5f81a51d6c1410978f04193c410cafd322304c9d33ab6b23b6 +03f3b3550d100d8fb265d7c553c16b3699aabb5628bf0cfacb2608847304bc6f +a036abe679e73ec4184a6b8bf7e4c3760d6878eda59b36a60f3e09ef13c50e60 +859b3b38d452ef89a659cf90b2ab373426e5784b82268b1361761917f28d625d +8cdeb451a15e78ff17261ab5a01032c843b251ea217db256d61b90cbaf2a2d2a +eeb00996a4acc6d9e23d49272da68a6a0089e98e0503e4b383616ec40df8c152 +81d3d2ceb730d93f2117e2f6f5a80f16dbd18e753acf200a9b90d782901c00d4 +134ca7beec62027b08450788784b2e15f0c322d7d62f3ed831a7ef9e743fb23b +cd12ba33baeb21153b476fc10aa9100f795644e4d378f3151d4424e628d25a08 +a0358a77ed6b05eec6b337f5b71e11d1f7bbac5b40898260794b6cc224310d91 +a4f39bcb6cda5587151afcedadf536c61dab05ec95f819145c9fb983c5516991 +8704408e78c3bf2ccb4ab46d2f2c0dcaa9e6d64a159293fda0b9f3591690f6f5 +13a46ba2972b11231cd044e20d13b4bf34c3271225b25185189217dcc717107b +d8accf0140a68afbfd9a31988798775b83219728c085c5971015b82e3cc2d83f +aff9722a9867bda2a1820bdcbd0a4ba406024881df9c688d536924d4aad821d9 +98fe2e5e4373e35bcdfd43cd98b146fd2ccf2673415f87201ba750c2c7d3b6fc +541983582a3fb39f422a7c9357ebd2cd19806dd5f65cbbd82403e95c2baff8de +5a8453e7be387d77dee25d95092e1bcbeb2ca752446b72089e51e2a263779439 +660670fb9f573123490dc84c058230712e4cefac3f1d2423814e57ab3e4c2f51 +bd22a4f9daff3309dc6d29574767ed3bb9c32d6b9781758a7de3a82e2bf88f80 +95f6023b7272b594abc5470d97aafeb2acac563ff67a2bf172d6ce3a8aaa09da +c56ca3d8ca8652fdd942d03e06758f3fbdefca6f9b961d313e4acd3a7a83659f +698ba5a7447a63aae6d9fe00a3124cb15b38da7b1467ab2930436f70b1c102b5 +394eb6a12f3c23e030bad0f66cafc2935ba71fbe8988ae16caeb23ed401ea750 +78b4d2e161768ac9d84a4a67f18a1fc759d49353f6c3ef0a39c49d7b91431fc7 +5ac88651c3681fefac99864fa0db4e591942d6afeda35e3409304543d45da26d +5ef398cc07eb167b28560e33409c7c5492069ac38f5b0c6ae24331e74c26bda0 +8be3e0f46e1e2e1f898e2646e642428c3c1b196aa98d5ad73771b93b580f1625 +ca2817d3d6ddc96ee9034edd252f1b76a89cb9a2ef3eeb62eeba5d8cf0a52ca1 +ec15cc1674e7a9d565d941132971ac7db252f684fb4fd4066427444a01fda5ec +c1301bbf001f5fe7c83dd98ea7de0e66fc216b709474018e1979e9ba2249f68c +0b097e47f264d3ca34718261b92242841ba9d21316c4eb682d54fd48e14d0fcb +c8e238467864e37b3052e3f56b15aa3335214a26ec41058add2f33dd5ddd7ff3 +953b9a5b1ce8907ad7497c3735052c8efca51c927cb2c72bdd8ef5c8093ad928 +d5f107067034a696854dd2ddad3e6e67015717c15153c343c21d567f98f43acc +cc064089fac9282110c20ff014c0bb53299c77a5c93456c3d6671882cc7af79b +6d2236797dae3bb87387f08296d6a604ddfe2bda7e4337e1a29b7784d9a5baa0 +eb07951cc13ab614cf97023b8bca33c1360847cb107351413236a3f5724745a4 +f49a5944783af38ec7f91503bc49d5d1df7b8ba5fc1f72bf80703058d967855c +0ed73856b5da22b2f0dd71763e15e232b85abbf98822b22643bb66f0f8134476 +e46899cd78a3adfcb03bca7f51d588b55c08066f18e0a0a0d462d73afb58b0e9 d5008f629a92dda8de8d4f6d259115c86c4569ac8f147d66f1412b49fc800357 -a97ed1e2a1279358e6456ece5bba564455f11d1ef0949fdeaa25168b377d7af1 -4b4a5fd88c4bc90b87addec6f07175323721de086ada49070af69ac80d5e2e82 -a15b8655f56da3154c8420bbd3f38b03abae9ca95ae22238b8906bcb85d6e545 -8c0078b31019640c61301a28dbe9931d449ae82cdc72b16f25afe678d0f7fa35 -38c528d4b1bd8880a26d015f7be69d4fbd200611f2c914916c08e1d26e0dce66 -df73b5a24f178df4dc47c3f8c36b8f219b519e73e88cd883ac1a2e1c05cd0fd4 -bbcb14225d91a9b91e4443ddc4e30bf9f950c6799833c4af363b74afb0668511 -41c97511fcdbc21d62e84104823028ab3cf743f83d5eb0e13742e7466ae5006d -faceb9ac544738ce1d3d7869e15ff79b4dc642bc9691ee785c0c629988a44d6a -9153a496c8c2b2a763b309fdd7421936006521f7f30f1dc293c84f3a6d432dc4 -f76c2690fe2a61749face27bf143e74a4d334fd201a91c579e96c6388354b544 -faeecb2339b5b4c93c207953d6e6e9bf519c78e0b618b9cb08474645dbad4b44 -c15e4441def3f7f922461a12ee277afeda15979e344df421b89cec87536ed596 -d9d3b508ad5c2bd3aaad9a141b7d3c7512b01b9f97a67109e8eae5e406535d9b -4cdda6f7076a26b5dd63f5eb3542fe151b7266a8f79620d968b33a1a2694e2f3 -a66b76273f2e5cac09912235f5ea902c9b49634c685e215d99fab6782428e7d5 -035f34539f9e91fb89cc28a20e34ac2fecfe32c6b488dca969c872e8a8b83889 -c0d75845b1b21b6d6392f8fe8b7c386aa79d78f732df7d5d42dfcafec965d7c1 -b92567f94794880acdda0c59591716d223a39319e10259972d8e0a2640b9710c -49f954f67e8c465f64b09b250da311e73620bc4ec38a97099f1c526bd65a9362 -366444ef34a7aef346e045035d5a17c66b0aed8f93538a197b04fdb740159859 -fd4da374c3fff7764b9e621fae33ca705a198487cf9e9286a555a5043af0202a -308a547d7401df528e54ab2b8e26ebabc47299170931fd94577ba746a4113458 -d7c6f9fb13f626b2bcf626537cbd0087d52bff5f299bebc525773c6ca3f23b0b -a06876e09cb6c2add17ac006b25b076131a359d28cc0672476db4b155a217cef -60027c1bd20f9849027966cdc4043a3d4057286b5e9d8d5e9966118195382932 -23db54db2353862ac26ebe4df2eed3cd92afa9d11699a3cebf2dba844197d502 -774c908f167d44cacb2540ee143858bcf8ae4c969d6adeb30fff0c256bc191b8 -15fe5fb8fe24ca483dfaa3cc86a477c14fb43f6dfdb8a2f562f2d467038d88e0 -36e4a20442fe3193db200877dd46d763ce79e3855915a56d631bf12136aebf10 -e1567e80b846ec7b28f3c5fa09a0c05b7799b5b70eea2db7f5ee1dfa65f8b7a9 -bb53327ec03747acd863c89f4ec22131718a1591fc5af9f9030a0bda8ff2e033 -0c95e6180f3d708396e8ae45246fe1e6dc0a3dc12a63160ef2f8e526b759e88e -cc9135bbe37f7a09a256e92411589c960f80f826185519ecc551090eed32f110 -3015de26169861a5980b6de97181d58ca656a05aa4f19b5c53f673ac746ec82b -77e3f135a992585dabf6208d1664d40e725b5bb0e591ca4885df36ce43a63b6e -3774e9bcd930e166d1131939f623b3f5178948b14e5fa53dc5dbce7e1c6b3258 -7872988f8759f214d9f93e81b7b6b494247637a325a0d891625c3947cac82013 -db93fe55623be236ac7eb26868162a2cbd582891834553fb6ad22afd50a2b8ad -2208d4d9cb8d2c4f0d922dfff75a5610e495fa69346ace3e2460c629272d67e7 -b2eab2718e9f050a51577230167acdad0895ac53ce5b0337af87de4d42eeb03d -5f8e8158904ced82c56671ad4fe9a4a3e136665590eba62b8f490c0b5e25f91f -a344b16e17e66b8a6d438e3db2c225eccad7a1bde87fa7f25796b99c34e4c66c -f67dc4fb5cd09c2513b293727f428cc5e87510431ec94fed40652fdaf0248673 -64eb8c24f9364529b7f62990757840bb418ec5abaf78afa90542003a4a22da80 -0ab3728f08daf1918dbcfe3f866296a5a4b9bdc42c2b86a4cf624ba6196abd84 -e5489b5f9c859fb0173eda877a3f539a33b0fdecb066bbf4b5c7df9cf6622ad8 -97808dbceed22294e2ea05aa750ef944a60775eee96e02d28628dd0b115bfc3e -bc23a5aba168c77fe23a7796517509c283cfcb900341a85e079b257477a2a572 -388565b9f8e5780db9c571f6b55593dd84b9a16fdb1b74f8b32d9a613ecef342 -a8bd1bfe0acaf4d654b3a228a1540c9b5d6e20aa5eb25934762e50b7763da8e4 -005c6196f3e89db6e0b8c0802a35e3e94338d468b319ef502de294281a83bc35 -2b49ce93d8c37d389416ec96fe8cbfaa5f39fb99d77d8c51b6f795a29a14b3d4 -c2432559e7a6d98f5973ada70913faddd976f702da2c051284bd9f7b5deb595a -84e0603e3b52bf10844fffb049e0f0cada2eb09f23a6508502b7bddb097a7443 -a7a0e921e577b1d7f084d30100026daeca01b578d487a9c72cf90a43e5f3b0e3 -8cd7350dff3e2e553cc031423f7a38d82a4510437d7cbf110dd816cfdd76a638 -616a3c7621e815d686d7e10c4c09e34b1a6381de3698e8582abf7a1c8194bf24 -62de6453795c5938bc18cf6e5a19c547af1f69303a7b02bd747ea30b44319f6d -f8438c7a53b0eb1d1b198d7acf540cec9db7aaee3a274f892d1f2bd522738b29 -7f66c3bee096d46b8ea320ddc416143aed6667dcb6c13dbf491444a052834f40 -abeba025a56d2d32643656991dd4594729de26bf9800fe3d1ba265935d78bb18 -24dd36b911f4f44654ff6db007316ff4e5afa2b6e060ea81e125fc12a217cb03 -750a27adc83d719ce863303f4c8d7f74a4ea83c95fa092ed4c2faf26a56f858c -9c3b58309b3cfd129f6f46a803732446716002f5c51b5784d10a9b7bfed4888c -de86c733a263624132acc1d49d8401418dde8131340f7c705fc372e4b104432c -062a618c336ab945580126a14aa4d07ec336ccc8f3e32339cb1cd0a0d1dd7674 -d35899a1e92bd4b4667f3424182905bbec0ada6ec5853ec2f22b293fafbeaa85 -ee1bf839d511d2b0de3b07a837d1175316a7f94ef0528d3f8dc94cca211620db -6f4da6f46fe3eacd86f19b981cdab577dc969cc9cd695c3cb9be7539d7604133 -3c0a15188d149c3856cf0cfbe5f8f64e52db9608c4b3f66b8d421688390bd9cf -4e48a3e426557e4283d6235739f19e00cbbc971dbae626a7e732211f88c4b116 -15d49af2d10c487c9d517f68b5bdb0ead1d692c1839e7292c47d9c6d61893dcf -f039b89e14fc759425e8c3762d48b4fea7f9d01cf4ccaf2275479ac0ab05bef4 -aeb6933a55bb73b1624ef6bec607e3c393b12649b549b20cd19718c6ce11e940 -49aba705dcce7936d6f7b7ed5768ab763f81019bc6c901a15cff778dfdd7290e -6ff0ada4b8b06bf3c370219503ccd76a0076e60e4f0886ae86a362621d51db72 -51841ebe84bbcd25ac7b7c9e42a60834f1af0be57294e26d52a5daec7232b9b3 -fe8b0e123c747e5d5f3d98ccb41cb341f607980b0ff4520e00842fd1b5e18032 -780cf7f4b8d0d3c00b079d56ae1e4124ce38589ade63704f808e18993deab4b5 -e68ab8d8d03dbbe90d70959a901677c765e5a0217681a70720ead4c92e69f905 -9ad533ca0c354d3d84d0a13e7e44662a3a9811ae7406b797bd328f782d0b7e55 -99caac952114658b7346bb27358582bccaa3ab9f24543ee981742a0439ee29f0 -7452570f63ee32f760fffc766d2594a6421bc3ca12c021fef9a18f01360c9de0 -f4e2406276e8efb0f3040909b6d77214783576050ae3ff5dc0bfea80151c9b50 -9a127620b355b8175170213042a6f9b4df3aa1bef4046f6be73e81f6f2694006 -fe19763d5b5e2eb1b38088afbb6fe6bbd55bc613823f37311c9034fbe2ced354 -a1eddf5ff3f1c5a760ac1dab80b3220b8048d4009a07275dee306a3350e905a6 -287a71724b0a834ffba9c00ea8ba62155b00629a1e0407290d51e7b6f5eea0f9 -8785d3c76a07ad5c69f9326806299ce1f919035aed99b47b332d5cccdd9d4ded -8a55a4f179370e44c4f67dc31f88dcd25b9de90ed9dfcc2c26f73fa95c8e54e0 -0c09cb82b0d16302a4e67f80a98508cdd3e7d66e9c951a41241aea3ec3735901 -4dfa573494f6274e088ff373ab905e1479571f0e599e04d559b08fc49f3ad947 -dca86c04be7be584f77c1943fdaabeb2b354b1a3108d4a0a58f9b8c0572682ac -dc9cecaac87ac628023484b4b73f96d8e54e41673f29329c36dee7b5097f2377 -3108cc6b027e6237946bc42e74970b46a097c9e6f3d4d0d6e9e0c62126e27b6b -ea7b142483ddf0f065469fb386afa9a91a74aacaf3fc57a85facd78abfae5708 -debf06297e7556e7bfec6250b4487d29c7f61e60499a72551b5817c836c5c025 -e507c3d2a935b33265e3c93b1801b3189c2d6105fc81993815f137743616acf4 -94cbc33f793c55a52282b934ef6689190b550e67179f2975d45bc0dd11bd7829 -81f7a995c91656eef2e125c83bd92467fe53bfa56008296ac6214acce6adfb13 -aaad6079a9ebc6031ce76d89f170c8fc76a825d9a318696dcd028d5070929db3 -2d56ac5bc7b4e799049eaa473b2dd1d07a84fa9f3b10a19f6084d8d61742145e -a20e63183a8375d5b785fc02e41c870d278f778be1c8adcce7e595f8fedf7e9a -49410cccc13d6a0dbab3fde04836773d185bb4d46a332d32965eedd2ab8eebaa -3246885e3589c52413fcb2844e78ecfaad3ec8a491a3e87934cb9122c0e22877 -c212dc36443128a8a0953331a8eb655d5d8fc9213781550db63ab7443cbaf1e2 -75eb18c4d8bf7f6076a490672c83bb3d588ddff257e76d44aa58c5d3507aea65 -a4fada66644d57fd902ba5f9058afc10a79e87a2b3b494355dc178a57f9cf55b -a30e227f2ec8c79561d8f5e1311225dc8476459106dcb32b1769324b9de23afc -35b76ece18e1c4d156d970f86877f34ebdae6592c60b8df068881d841bed1be6 -13fecde99dd23f1c5ff5c8130135ef51d7583692079d7e94a757095a82db0ab3 -7013f8d0e29348302913b39e5375264300ec218a60f3edade5fec9c958e2595a -beaac4c5066b5def64a42807784e677c82daab1be5d6b2a8895e824712c5bf08 -a5a584c1bf3bc1ada56598d97506e82f38261440874af90dc6c21712bde9ba87 -63b6af2f0253db0765575ae7a46c76e329a5553b36f5bf1d42737041181d8f10 -e5b9466fd3be35d969f4620fbc02fb8d5259b3246f5ca759153276a5b82570bc -de2e69890984836a8f32a764e3023ce648fcd1a1c5fc0d6a1d2ea8446b771474 -78eba89d557927e7350a2fdc8b940a81a81c10e791c6f6169b7ba28fd8e3cd55 -b0b7bd49d319d08330ee5633b0950cb7989738060ec629d4449e31de66dec814 -0988270f512a54e00c7978aa2fe33b512f6db3744433a19e21d22c95fa7d29e6 -5c57e90e80b5793f52c21bd8bff6524031d424c389fe1cbcdfd2b609b522e64e -01e1bc3b0791e66f7b6f67fd0cb4572f33fbe9ba79dbc8261696d45976aa8698 -3c46e1f7a29a8cd6df966c1acfcbfb07725908dda4ae7c67daa3b79c4562946c -5acc8d0d01a087bccf76d8b00e2e718cb89a851b9751334a4570a0e7a78c43a1 -ff3b31b767765ba551a4b150a76101060c2fe2c2e9bb68335b505313d4b4bf49 -75300adb34e13214f0ef195fcec89295d26eab98b457091ca12d0ceb8aa00d32 -9f417a32dbc3cb2e077053f85d7dc0aff7d706f99ffa1a9354ebab33cdd7e94d -c1c0e93e54663673f53a4e774d8d6b6d79199d1300731ee2250fe6cdac5cb368 -da9b42321867933ea4d5d3829dc6d26e577a11d1c3bb08972b1f036129ce0962 -fbc12bc889fb3d8150fde2311baabfee3fb762da5021d852fcffe7081899f0e0 -0eb252c01c7a74e104b664fe14a99b6d6fc4ef5b9eb22a4deb6708030bb993ae -0c7694679a8a9c9e01797fe6d50b205f78bfa08c103a6a071f254f315202a472 -2d24cc8bcdbd01beb89aeaadb0c6c69c326cc680abf77cef868710e33a81bdb3 -533af69d70a896c05386d68233d0b4f628e410aeba52b30c95c7c1a5e821fd96 -28aaefaaeab2c648acfe61b53cade9cc9d72985718d85da2936cc80ccc6fe3e0 -fb0d306f8957a9512e727e3462ece44ea1a1f0cde3d11d9cf796aa92cdcd3a44 -efd7ffafabb07c548fcfeb9f0eb862233828c466fb584e1e3dff21ef2316d56f -1074b8e6979809cc6cc15a4d5436400b0e81ea3830b0bf74c7cf7c5ac7663580 -482fd9128a281f14c6213b8065189a7f9a3b68da0716936b23b45976a4364c0f -ac8d9e90423c04d5e0f8a181b2d4ede788b86d236d2f8875d002c00ed667b1f9 -0cd6bd62e97825f463e21cf2cac000f58e3544368300d796ee08f7a6de957dd4 -ed6773eb8f90c35ef22f222299edfa17bcfce15a88c48f63884adf771ae49431 -5f05c6923adcb16580e2f83701c2672609edacde17c713cac8d0139e731b368d -df473259f8f64c555fd042758c28301c96c05b5e076c155d76a114256b88e8fa -98622237d4e7ef1118f685e1cfbe8f78937b20ae02dfcd3a5859d6a4f1a08c81 -bf1f5733c9ea086f29b9084d4d2d3ce9c6206255e69cef40d6f1f80232b7f744 -4fc00f3ada7ce14c0f5b8b147a8e31045409c0f1300b8a599038a5c8aa42da64 -09e6c65b9cd9b595b77cfe5c31d6c9eeb28540bba0494d90939639309d600e39 -542aa5ed26b440a5cfeafb15044601b3bb5cd6c0941dcfffe3542ef71969dfac +b6123d40feedc844647759588ef09b766064ac4d1dff5e64742791c4d4421d79 +a5ea6385de15813c0794d96051b474e0d38a50ec551090800c53740a0dbfbea2 +107c20cabee5663797edda4695aec83bb01609c0977b5a59ad40720a3d99d5b9 +9cf398dc78d55ad7f0032dd2740e4928a50a8bb2397733dcc367bc6496c8de2e +f7c12e1155b546ace8c60a216549a244600347454d4dae4a5fdc119276c4bda4 +e4a1b1f85ba8d3bdb77397e30055fc02f18a4affa2f8baeb7c377ccc0cc2d244 +7159a9bf0648673cf7102305f5318d3d6788df18c41d81950c97d0449f06f204 +851a10c20be1bf696009b7452283a1c1801ae3f628340a366511f972cb27e709 +93cfbd9bf9359b18fa3b3ec84c33f08704998a205530275f903e1c5eb9f5f590 +379e4ea29f4caabcf6f4337936f1c6ec8bc87109ffa667ea4eaad64db0930a2f +8c9d4f7269885e73e6ce067cc0f0b4af65145ec69c64d087d77d055ebd96d05f +7e316d5231638b3bc0fc590d171ea52935f2ed0226dad161cffba84203420146 +89e0764625c9cb43c175bf4a2aef78f2c8b557243f37ffce7842b6ad2eb31adf +3141a7488f918215edffd2eb130ea00c7a8e598cef6aa4d0cafae9c8bc1b951e +042103b178a9217bbe7dc81f8d24dbece68e72fd7e201e89af835f27928bffcf +1a01d7ed8ef48f1aca8a48404d6dfaaf1e5a6c5bdab4cab7f34a2d8279132a28 +09daf2014fe3f03c96045a3ef2e6ab907f0c895a9e9e357bfbfa1b3c3d1abc1c +e6afba12b462921cbe7c47280a7058bef1b510e2714bbd2108ab4d371a035da6 +96a83819f1b1c61251c934b87c17d85ac848639dbeb584fbc204ad09857b6a8e +d1eb125bda8110e193cfc13d2d25bbe9eb65dbc425b43c9a46fc6cb2b287d577 +e63d96eae142df3f42cfe1aaa0873093dfefeacd60936bb10543e7d394da43ef +cc7dc394c5f7690fc13d6d8108d3267d1f8307be6647aa013b7c5ddc79bf3bf6 +2c5c3ab08e620d56c47ad8c1e815c556fd85b51389ba55d7787bcfa860ee9a56 +b50ad0bf07e606e9a4756f859bb41d95a64c5cf4719933eccce433417246a06a +d35da651b66d557e1fc4540329d2ee2ae5c929202cfc4aecb81087e81f074b7e +91ad77f3dcdc62bdf81d147ea6bc03a1c48543c546f92612276358eec846ae70 +c8a66f02bf82632ed4ad38854a15b99fe8d4b5ed5a6d877175f364cc43145546 +1ae1d54c53aa2010e7e172cd736b28cfba30346c605e74bbfc58114eb1f9f1aa +a40bff04419e0198de71be67293d6098119f76bdc9111f56f45fd7774239a8c7 +51a98c63d91c29dd82f6819510bbf6a15d0d2e2eec78a59d7610937ff418a7f4 +07743db28742237f90b9cddd4f5611ba1d1f53d71d56a6268f563080185919ff +56673e60252efb5acdc122410a5cf43c9f5a6a56022509fb125b8c4a0b773a1a +2d5bf0bf0777b2f914164de89bba6321000f656814e15779be1818c8cb0f3ed2 +84a1b53d4e73c607e76165ad9a4d6d1d36729e83ed798dd1a2f7a0e70d53ae3b +18646b57ceb8c3f7f57fa6bb95ab7d70e4b3265d60ec4bf5ee9a870ae3d91cb2 +b4a2d2fdb5071f5de093f84a76e22c65382c4d3fa053511da9013ba2fe7efa40 +53cec7ba2dc54fa46466c0d6c55a5869851b5a8617e4e21962f219b1956c0faa +df9ac28fd4ffceb40305617dacb13a58e45a20d4cce72ae242873efcf4fb3922 +c21efd335d60ee1ca25cb7fc5581e77c2a595310af20beffda320daec33049c1 +0f38c3747879991e918ef90a978eb3e266e9d20fbe54fc9f4fe75237a75c9f1c +d950ac5d6bfecdb72f83c130414ed6d370b4a4fd84af267d3573f71e0b5fc6ca +18aa3fd906ad29ddd2154bc2e09781ee50078d2b905214805e4d48aaf9e366b7 +cba25c4eaa6cd851ed89f2bafb07197887d62d8a88ca360b72f3d50f75e671ac +9be36ae28afbeb3d896958f72f9c02fd3460e96dc525cc22466ef40bdd4d8d8e +eb4b8630b93508da9c197c0fffde911f871b8a2c4abcca773c96878686de8300 +868e263a7fc0bb0b98f009ac13ebc0ed6d4d1a91837fdc7bd1f40a64d5764ad8 55d856074c126902d70e8328be059b72424684c956c947b21d35d86119636212 c5a042f7ebb78342c6c19d32e1d86009161a409e338399ddf4ebdf04a3cdb2c4 90950c341b189be5715a1b6865dc1d345c3df78f5a6f4d170c3ddf687bd50ada 2b5e9926cf8abaac9192a405131406b0abcaaf27c9ea8a91770c29d92ec5e43e 8c8a89aa60d22d0342adfd66dadc73dd9481a74fe9fbbd8b65e6ec15251e131a -d5deec09f01ce38c74290dec6eb7cfbfa08ef363e9b3df98b9ab2a4009bc82a4 0f57515099a25b5632667161b03bf684bf0a8ad34db4cf33dd090f530eac2377 4ab33c9ffa7bc55d05965fa9b3127920f9ab5c731dc8bf255e41504ec4f24293 f98462fca92caeb56a67097c835470ba1e790266d9d3c38a43f94c2130bd6786 @@ -3214,217 +3337,19 @@ fe0d8ed75c2a91d8b32327c190b73809f9e9f4ea41f227a2527205b1b85a12b7 25436f14237738a6be29bc161d7d6c077ac08c39f28686817e3867e1bd4ce765 b37d59f476fec2ccaa6faf64478848f232e23e1beaba6151e972d882feb8b996 667af161e4ae2cab5c4b20fdfdf4f960443ef61c53564b6e44a310e557f5b52e -8a24f9faef54ba1d0adac676ea4042f4e33bac85205029ddf1957fdf95361d54 -d15229547c87b42528ee4780606a14d0928dd0328142e5f3bdd924b8fb6ec7d4 -ba0ab4da907eb987c1f05a7ac49e2874849e4659aec28658a3fa8cae79ef225d -e0acd2919b908bd86c61486c08406a5d40400a43333d23db60b0595007c4753f -fd8a839ebe70c444c15274a6c6baa10acdc71712e47d99f1e7b0264b100ccb28 -2f479813aed08440c90f05c349fbe0c1378801e30c6b1daa05f82f426196007d -376b128f543f9a9050197790f20d8a0e3f77486389d608a227d85b66bac0aca5 -c6f95309ae789aa0acfdddcdbb9dd967e6ae59fee45025e726957534649e9a61 -8ebf6fb79e91b4b5336dcc829225d877eb09052d011fb5f9c0f8a1394c9e4b14 -ee1090a4c597e3f5feca0e4516753b0266a5552f34336579540c6f9c8d863caa -80547dc73a2729ea79a000d5e5fdf384dabd99257bf46c91cb24a577b33374fd -41ae8d981e75a54402220564a078d5ffcae1a74650b0a98667e073a3610927b4 -67f75a12b2c2b1cb3f667d22f93253005f739b82e08508c4b7d9f25ea4eeea8b -229079a281a5e0e51b805d92bad8b4b7a4473d7c39c784835d051ef45b61ec06 -9eb4324ae44eafae1c214f61a4c883e744cd622bd677024dd7214d36c263b5ed -585c16b4debabcc57f6a55ae79b6a366e3b609b50775e2fa7aaa29fb308b5c8c -99b139a1bfa3b50973c882be74108261f201cbc20696f1aca4dda3547fb83628 -e19ec8ef252fb24a7f74466d93d7544cc5bd017ba084a7c6671a14f174f8ce66 -6e23730cc2bf817dea1f097a519c6c1605f51d7ccd254ce7f1182f9c2a0155ba -f3669de7875dec76e286e7d6cfc90751e7e88a9faca280c0ac94d73e71a80647 -14e3dba3758c1ce86a93f7b93a15f5920f3a88e34776609857ca3c1068ca24ae -d55aca5b4557ee675e81889d1126530759a0d30820b1bf62a1eaa3fbc30ed56e -e2042fa7d7cb4da795c38bb17b76bfb94965e0164c0930362db0c28bc06e1fb2 -5f46924f2e23189d6f9481e1f718bb72376577e3746509c9405f49a37497493b -f2cced87d8f89e172229c1bab7650b87124a8f7493eb9d76c7ea49d056a07b2d -54d1be5d4f90f64ed1834801b11f09847ac7a4cc70d8b8ff14efb81d722aef13 -fe6d83bd87053e0ddab426b5f1035dbf1daa40f29639d3e35e678513706077b7 -868e263a7fc0bb0b98f009ac13ebc0ed6d4d1a91837fdc7bd1f40a64d5764ad8 -e5ed29fa002d202a7fa263f641f632ed51ef433f679bd8780de0b98e99020a20 -aa97df76c82cbde7f46edcd233cbdc0ce61922fba824a00fd52071b104a9a3a3 -76db03fec95073190cd0faa9e5fb862e50d478cbc2581c4ea5de20f82abcf8ed -333460e67a985a8e352f6d95d01dedba8e555e621072883660a7ae954d0d90f8 -c1311a7f803f80b441e4395f44c578810e8ae6dee64a9db68a2a9cdaf6885d21 -02f6e4c9a41a5203552da8b7fdc135cf7302d6e83079b53afaf62eeb3b25f59d -6d6fa8fa6a2d20c046ffb2cbd5d046885f1e9d199b630a672f4a5a6b0ed0eadd -31da124d841a44a0b84ca12cc05a2651588cda0b92534d75c9bc12d3b79ce3ad -bb1a4386e25f7ce880cc74ead709b09d5c59a5a5dc0264ffb9c75bdcf5aa76a9 -a739d1bb89c0af34ab5538ada2d0c74a086fb18f370a3b6103782ef715ce73f8 -1e112179d6783031f1811071808bdf9406a8ad2cc99745465a79293d67ee994b -26617cec79a786b44cfd546a4d7f731fd3db9c077ba9a6b381f1cafb070f9d7e -de99b15fc5028708648b7f1b9b8d307b25de2b141744c709d52b3ce08f32cf19 -5a348cf64337e899ee417bb07ac674a1cbca1c98f6064fb445ea3ea15133bc9c -290079b62dbdfcfd0ae51082dc6fc7cfe4c22603dabc72083e9fa8b9ca54845f -ab58465bbfc39244fe92a6b13ef6479fcdeec6cb118038659af63a8218a53cd1 -f3ab26267ca7a03dd265362982db98daa7c6e0aee3e808ea089386a7a8312bf0 -fd48b47df59eecdd1f12e8d27b62912d2859c95f7741b62538a87cc6182afbd7 -7831f9e2a958e760f542cde5c8f3309881fc37b30ce7f18de49c83a28b2235f1 -e295121aa3a1f036c197a456a8de1aa3581aa1dd3521ed03c0d0b10e4d19a30c -5078ccef8445b6d9106d30c5a1eef4ed506cd5e5ffe7eea95b32c784bd0649bd -674a0b96abee633e9de9e0115f1684d9d29193f97070f8cb495f5eb3efa0cd5a -18c52d7d20358f70be2f4261e541cb645a3071bd069201ee7122f12fa42baf95 -818d3ac49eb25ee39f830dc820ac905920ed58657f0bef5f19defe7b6ce62925 -0d11b55375880cf6a0b77037ceeb53f81c56baae3de5cacaf4223f4b1a248ecf -4ce0e30a7def90afb5d886e0f569b9b02100a5ad34ae157badaeac2c4504c1d6 -3cbab9d026c045b5322f17c0fb7d6575433343c63b79615d8bccc8837992b4dd -0dd54cd79fc5907513a86f9e11a7ff9c5dc5699d12513659f57212d689db27bd -cac2d97e43ffa089e71994bb8565690c348a7769d0cc2752f9d4822e49a90bfe -f1dd35ab80bdec905888defc11730bdf87e8da0a244fc004f700a47d1f683f39 -e59470cf6ca60d8205310cbd27d6bc278d15957985b753bfa89d78ddad2cf5fe -dfc4c728a6708d3e19ba894b79271ba453b7eb48fdd21d8f33ee224970b7e647 -77dedbbcae12e53bc1cf70bd381128216c1d8aa8b4f38865863ba940dd332c55 -41f47f0caa2fb5f85cbea544e1d9517d9acab02ad06fea3dbc50bfe59f973abb -b12afba595f181efa46b9dcf029ddc9fbbaf364c421bd782af5d8b7c463296ee -eab8db7690440407dc4799da14c672db575b138b74f7f398a52a6d84ea6d94d5 -1d158dbfce3f931d82dc844bf0d5cbe44fce6ce61676990f45e143e53a684e95 -eb641b987daad963c609477823bed50abe7b3f5ab3ba5c4110f3f4651f300fb6 -e41776595c5c14ab808f4815ea159be866830fa2d3cbd757104dfd642bee62a0 -c0fee26f156fc702d9942c4e5fe236b20d0e51d51458c75c60c4b19e5e724602 -6f39f32d889e918be8be7a598e7ead09562e29ffabe476fc4a745d922977de11 -4bc8885e02aae8662c1717a198a5b5e567ec210c963d7e773b2e0d0d38d252dd -e4e87ac2beabb8a8b8782ffc6971c41ba8465bb0c4b3004f18123a31bc08236f -03efa7f2b0902c6c1d23d0cbdf945b71975feda3d65dc0cb0698e6b7e552acf1 -d25938359f998563af3cf5377af5aeb60cd4333112a1ca5516869ebe07fbbc90 -38e6efc0ff81f65afa7691ba3707ddf7cc2fd683d817f448ee3d4d3f63f350dc -b13e819b4efcc0541b0c253d99cf743fa0a8985ca4447e7b08f5078f92755c40 -6b4c3f34600bfc6109540d73963b8d7b26f9f22b03521a2326e59e2f10e60a70 -dd6cf15cea29938d2858d090633276a985b5c5b946c8e79d508c486c3546076c -cd6d52d0ba3d51ca9bdefcf43bf343b20a588c8e1d79c8bb075ca88cc020f3c4 -e59bebf466bcfa540d475fb9503b4a75aa40cba89b903b32350212b5b653eb09 -57f115bb1460d42ed38bb9cc4e167fa41895256c739c1e9d57b26fd32bb8329e -dcc34853771f1edc6c43fdf08fc89266735f9dfb19ec871eeae7367778ba2cae -93e9bad50782458a1581abd5b4e3a70be5d23ab7927dfb5a5104e40a4aef703e -17373fef0a0014bbf38918157428a4bf11736288c6e7841b35664cefbddfc5d4 -a4f3a1c858c631149a0fb3035455d4170148e43b302350c2fde8bb5462c53c7b -4ec75bc934da27bd34f45b6ba301404ba0d686381e37f46e37b305c37a10be35 -81e27781d8e21f909cc12bd273f13ce10082e24350115f49474d079de6bcb1eb -a6177179254b203b5b3d8097a222c673ab8e885df8e7050e6dbc30ef5f5bbf17 -3553913143ef96c9c0db1e05c9f96f02fc12706d9f2a07c2c7d44a574f972482 -b7a717a08d7bb771d800c19fda05a4e7ac9bc9acd6c3ebae94156b8bd6166344 -4af214321b0237fdf4eccdcf17e33e316bdc199961794d6d7e531769021b56ee -d00dcaabb6665ffe310c7715d47c253d4c1363548865e13ccab1e8731961e43d -8455798ea34fb3a8ddd3a3d70117e3627caedc79e2b8e153f6dc9d90e4030cd9 -8971146d485d0f4d74624e51b16aa8adf0ae3d1a5ab999e76b8fa1e573d6de8e -a29ce83ebb869439cca17e8ab0a2c2c46ed4ddef68af71b09f2da49d45ce34f7 -9a82462893ba03430facbbe10da9bd40ac580de81cd1cc1481e2b12040fd1eec -ea1a2c226edbd132f7ff4768fc4e43eb7f78719676e26dd57d187817dd53b853 -a109a097255499032f8e99b116ddd7ca99f096996446baf129f6c2df2f3f751c -f6c8576710217355c82c12e3a474a0ab7424845fd97461db0a865a763e7bcdd5 -1788919841d4d2629ef8eeac78fa5bb50cd9c6d57c8359d9ff8388882ed4c473 -e035cf96a747c98e4bcb9cc0f83ea905f6bc0a9b3dc6ab59e883d9f8e702a0ce -85d59a9ce722db2f1f307c8038b8ce5bdd22d0aaddbfb11816e49cdf32c03d27 -d30090121e6c301a90f225114654138d79218ba1f98cdd93cb447aad1429cb84 -a2c0d000b692661825fc5675ecb1d21129e48507d85e9d77b78b6570609c13f5 -f116ed2d43424fc738a964f84c7add650b695d47bca83d37069f4d26f18e6bcc -b70a6f0bb2144e125fd304f8438712b9c899e78a66f54c5061c8c373294ca128 -0457094775ea1a3ea4ebbb39ab8625646475a5c0ff3445bd16a381cac854de41 -f6f858dcec7528418257dceb1ba1b76242854aeffd4af8c48c95496071458a13 -bc596a5c0f7a4279d0981c065b0c257d1f2bb646346cea24e2a63aadd1688136 -4a582ac99ecfffe714896c25d87bf5b46b492bbeef45806d4907d21189eb3660 -61c0099b6d5f8911122dba3603ca631cf9358c991cf3eae1f6e494b01aa3a85a -2683acb13bbdf8d1cc0a97f75a8a50118e004efc7f226d181f798e240597cf9b -d8b337d44fb9ea37edf9eacd121ecc3926edb3d9818328d771433cba4e143088 -cc1abd47dde8a8e01490a0dd0f3a1ac57710c479c5f8aafd26d42c4f3f57d81c -f9fd902fda72b31b3a87ae2c62e4b6ee5d64aa1a1c827d78497eeb3c2e2ac8e4 -0729bc59480d6e9bd3b3fc4fce30234932f82c5859b6cd871a866d4ae2e127df -1e26608b6cc7749fae2791b52252232945aff710136f606d4c1851a7006aea1b -6089239513b862adabff013dcb5516fc4d591df9bd74cffec4dc82b5a0244414 -99a3c6a15b2be6b5792bccd63e8708e5e34e711593a2f50dbfa150cd5e1034f4 -656e9d8f71e4bce077aeb33889cb6bad99a99e8296d97e81ea18cc2c7cf7cd00 -d564e61b494621148344a091deeccd997e43793d3f4613b7e06fa660a7be4902 -5c983d13074006f675a33ba6794158c6ad278bd035bff1f9acf6185b9d7a1c58 -5b5fd1b7048bca4897e02fe879a1a9430a877bc058b386995ddf0e8df17b1465 -9e6b43fd39f9f0c3144997005d7ddcdb3bbd64af92bd78c6cf47eb1b088705d8 -7eb18862afa358b74bb004473a46db2098290aeb616bbc42e57e45f8e65a4e29 -fc5841a8db23fc57de8918aebe5680a4850f92249a837855c2d72c14767f929f -3ec4396863837402f0637ed078eab5edd7f2d837912110d096bb491f30495284 -4741b89ac8e91fd42bb655b2372f13752cb12a1c200c2366b552563f25c17c76 -b127ee87a3bf6d2b4a655873a33488ad0948feef7ad1e5f17673e1335d25fe31 -8bcc3cde6c695b341cc2e8d7ee6157e09f96478b7a8b7bd1b7c4f2c7d8582b8e -0a8ac2a36c0c4126424fc41fa68eb69bc5f9211a912e89d5e8174b5e27d13cc7 -30490dbb2234b1e3ff5f0ff22a25ca5ca277fe574f8cde80d456511080a1623a -b2c1d40662356cfc4ce5c6d3d5db286d631b4d6b7e140c25990b364b89ef331b -534c82fadcc43b12e6d3378ae798047cf909000b3017a24b769903f5b7daa807 -dd20afb04e19397cbc6d38e70eb0eeb7afca7c775ed65c7f8023445c2c3ef353 -0ade90373919230062ecf8844c7366dd462c83f40daa60398c873b37a7f9d56b -ed0da9ea9849d55b25ca6b7074d217aaf442f4bf2a7613b1a1c9b4c3ac07587d -665e701e426304253cb6c6c0e18a892857b2889daf06067ebbdbf6ecc367cf48 -d10c32a5d1137338367c32454990e4b98f6f1a09d82340327d6910eab6b75e85 -27f4d324cf382295ec0f2e7b4a68a809091247f7818f82f704e9daed8fbd759c -cd2a8466cb8279dad96eae14ef42b075ea97d520df7b0afecffe0bb7f1728417 -3d5a16cf6e5d60b8ec02306c1c94d5364dbff093419a8312bf505c1054d3412b -900ec60f825fb759438b76088b34a45d4760ece68878a1589e743747ae4cadbd -2842576e749d4f68c51eb75c913a88d6ff343dd564cb2650d3e1917b8867a350 -547914966f871354e653fecbd7b36aa72574572239f680c4dc07fc2fcfe47cec -396e5b31ee4c56a7080808e04f9c16deaedb9e757575657edd2236a426797f0e -de4b8ca529bbc4174315df77d5c5b7c4aed351cba404b04ac4f48145ffbd0e74 -2cff0c2f6f3b95dd33388be72b1488a1fea1821fdd0b5f94d416bcb6fbdd5b79 -2348e77301e2742d8509993ac7113ee43f44e51910336807219d18a71d4b615e -f884d287e8c5c00cddc714bdc2367b15de83bfddd0577e016c94e8c51cf654b8 -d730db24faebceaedfc407e8a5a8a6217fda4123ba2d73ac48ba6387695ce65d -120c5ea29685dc1f59d6fc60d494baab02f5ecd31835f70e9d3fa1acab230cc1 -de645f2684f9c43d083688366c368b6a0376b7d6999b68c0fc11eb0a44c5ad22 -e1506ecb9fc0c2dca76fdefb921a51bb1bd465e95eb6d5a2c4b1f2957f0eb101 -9cf398dc78d55ad7f0032dd2740e4928a50a8bb2397733dcc367bc6496c8de2e -9cce800c65bf76f69e573e3c88d7cd99c0ff058b3d6e15f220ec784e8c0bdfdb -a88c30bbd1c1a17a8fd2004b7ae52508a3546c1c9ae85a94031a5b992ad7ecf4 -64f175931b26812b1af8c29c20724b2e2af3d0c151c453b601c2274d43cecaf6 -11ddefc7dd60813830087a43d8f9cbf6314c15c97ba7ccbd60f02ca00fe8f8fe -dabf1c832bc4f6d086ab654a775ddaa8522ceb770747ce57cafc2ebb09e302dc -198fe38e4de28af59069a6d6df1543487694e5c7075c7bcab9534394e6d44160 -021f7fba0b72b5f3d31eb93d06ca0f8cca35f948798e133faa75b74047e8c180 -491bba27933daac8ce7de5dc7af6146781b5c3f3f0366b4069da0f908ee14fee -4bb5795219999b07321fec1f12a65b2ae2c4ef5b3aab44573d7aa766c8adab27 -251434fc78bf0dc080c3b1868fc26e7863ed49c9da982a9fb3768819e7451c0f -785ffb4252448b4a42cf915ac83c4c0cf0b71421e3c5bcfa81f0834a373a30c0 -3c1133976b67df863b5ec1cc1ca7bef319fa89ebbf69e61b68e0ca238558e194 -f9681766393202342b75ba5ad585411bf0b20edcbd7a161814d24871630c735d -6d2236797dae3bb87387f08296d6a604ddfe2bda7e4337e1a29b7784d9a5baa0 -dcaed1fa71f8c633eea1b44cdc74a05ed3896aed3e3ac67a9853fc48c67f20bd -382be757fa40774ff39680eedb1b520833bfbcc779896eae4e2e5bf892451e03 -6ea95aa5a2134d9c6185aae6b51e92b4ff44e811cb95577307aa552eda00eea6 -bae8c033dcfddedab92dbc836025296391f739eb9844db8660bcc04824d11e14 -229399c8cb0e5809c0e2c61b589d7e4a6ea418ebb78e13a7f3246619c9b01fda -29cec9f021239f053eb04668e7a46c7908580f00e1a21a055590216531bcade8 -3ab437c68d324d95c9c22337dc54e44c35f7076ce3bce2b7878cd339a60aa94f -90493fc320ab74f81b57d0599c42b5b95d10565249504c4cecdadacc6ba2c470 -8664c750ee7d618f862ed441ab6bb3df65fb98f855a4ddb9bb95e1a0dba626b2 -c1f4b1453ee08b1fa1ce45e5b3167a1e0853493041fa1837de255ef4810acd2c -2cc32cc26d079899052956e200f521a5a9e911f68717fc44fc21012bee6ba976 -5645311f22f1ac98df3acafdde5881f52236e8b07bd2c55975e76b588e5ad807 -84b42b5184434cece8408c5e0e8708938487adcee6b8622c0ba478dbc361edd2 -1b8b42d9e60256d1931abb4cfae3a9bce173db7153aaefdc2938e367cc93c0d8 -3fbb7c4e1aefc516b20d5332458d3c8acce8d43de26d84ee7bdd0d8a3c0f1004 -cf45fc7796b8fd2f7b6d1121dadd3450aae32c479ed8bf97168187e293882dd0 -bffc60c5e5833f5296c97e64ecd889c8246fdcd9e3febb09ae2642ae7e582e3e -57b8fcabb61b38cd629195cf9942dad532e8a23b3b43a5efd1ffe446f39accff -857546b56d3fb6d378283067ac0df9e82c4aa1d6a24850bac7799d7dff32174f -58824207c3c85453dd1f58a6fde5c9a8b97353c71cb328e61efd453e10ccfdc5 -8110af875a723e73df94f7181ebd915eafe93e462c635cb69ef14f78593c961e -7be59b4ecd8c63dd7e997dcba08520715f6f5a87587ffca93ed1ee18cd33d083 -b26339a9da63a9132a94b39a087061a5754698f5cbc4ee9857383c8ef07c79d4 -099dafdb96d3ebe65b795b35ed22d67a922901b6fa2b8337c92289ea7e4699ae -4fb823aab5e47c7fe40075d699a7056390cf0b96d8ac78cd85dd417785f3452e -652dc85226a255c97233f1f5e3ca922b9436e304d326c1eff0d83a3f0e6a865b -3be36e39f1aacb33a2b29084ce99a53398193ae5ba2cd316f004eaf527f0c73f -57a7c1d46ca2bd284d8dbe0f415d0f961a6b02bf134cab8f480346551a028ccd -8c9d4f7269885e73e6ce067cc0f0b4af65145ec69c64d087d77d055ebd96d05f -9cc491797d5fa756094e953f824ef09d21f7db694e6ca95b44429e58ea9cc1e5 -e44ba2671ef3ecc2237df2f7e6be07e85da67596717204e8a86a1bc0683f9b4b -d5d1b373000ca31029591f41ed5c09906dfaa220e1f9c3f5aafdce09f0087d71 -eb07951cc13ab614cf97023b8bca33c1360847cb107351413236a3f5724745a4 -6bfc92ab1ae8323b9d3e8b7527264a9222a03364ca2595c0007c95c5754ebf83 -892ac99de9efffb8790ee35510fcc34f87980d445eb4ac1cddd42dc01f93effa -5ea528b6479a8d92140661d2907dc101fd1a8bbca74d49d9df6c65cc68cfb9b0 -2615452f9bc4efa77ad62ea21c7ca25fe387f18f290747ccfb9ebc876f208e5c -13b8a243cfec201d4961ad1f4c4e845ce219b71630dfc0d79e5a733e89d4497e -53367c9fb5e503dc2a026bb2f32ffc3d83d594cd35b5489c75a71c1bf0b5576f -bf0a8a673a9963cfc7e02a016c30f4e642de3e2ff775b15c7e02cb07d0a96ee4 -a92898793b636e3ab616742ffa1e48215e19b1104a9c3794a0dffc54e43d3121 -07319cf4b9a4d5bb01e5f47d8bcc6eba7abdaa1d5d28f5bb68a576e87b84a8a4 -aad99827508566c232737285acfc38d8c9414335fbbd8a08d9b19b8fc0676429 -c137fa9351f1d335316d242728c8d89f3e4347381696b119f82ebf1cd96860c3 -1fd68cf514a437e11facb3b452ff45e5849881698a81ad9c24424c8a20ed48f1 -f19b49bb97dd273f3ee09ccdc1acc4af8b512356dc9a2a6290a84b4b6296471f +e8330020ab969cc3b8e1aa1b4e5ab8d21aee185ff21cc30e2aba586fca93f7e0 +9a127620b355b8175170213042a6f9b4df3aa1bef4046f6be73e81f6f2694006 +a1eddf5ff3f1c5a760ac1dab80b3220b8048d4009a07275dee306a3350e905a6 +8a55a4f179370e44c4f67dc31f88dcd25b9de90ed9dfcc2c26f73fa95c8e54e0 +0c09cb82b0d16302a4e67f80a98508cdd3e7d66e9c951a41241aea3ec3735901 +ea7b142483ddf0f065469fb386afa9a91a74aacaf3fc57a85facd78abfae5708 +debf06297e7556e7bfec6250b4487d29c7f61e60499a72551b5817c836c5c025 +94cbc33f793c55a52282b934ef6689190b550e67179f2975d45bc0dd11bd7829 +49410cccc13d6a0dbab3fde04836773d185bb4d46a332d32965eedd2ab8eebaa +c212dc36443128a8a0953331a8eb655d5d8fc9213781550db63ab7443cbaf1e2 +c2432559e7a6d98f5973ada70913faddd976f702da2c051284bd9f7b5deb595a +ec4b87ca63cec112765a1fe9236581ac5567c16be9e6c0cedcdb08283a8033ac +dbb3b10ca1a6d0653bc1a9800de240020d6ac9d89fbebd77d6eb530401c8e5e8 +faceb9ac544738ce1d3d7869e15ff79b4dc642bc9691ee785c0c629988a44d6a +f76c2690fe2a61749face27bf143e74a4d334fd201a91c579e96c6388354b544 +513ca7877f2fe02ac1196bad655adf9def267874bc6016028ed8138aa15708d2 diff --git a/src/constants.ts b/src/constants.ts index a51a333..be92bbe 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -1,3 +1,6 @@ +export const ZERO = + "0000000000000000000000000000000000000000000000000000000000000000"; + export const DIFFICULTY = "0000ffff00000000000000000000000000000000000000000000000000000000"; diff --git a/src/features/block/mine.ts b/src/features/block/mine.ts index 0b51f6b..e5bc790 100644 --- a/src/features/block/mine.ts +++ b/src/features/block/mine.ts @@ -17,10 +17,6 @@ export const mine = ( const version = Buffer.alloc(4); version.writeInt32LE(4); - // const witnessMerkleRootHash = merkleRoot([ - // ZEROS, //zeros are for the coinbase transaction - // ...txs.map((tx) => sha256(sha256(txSerializer(tx).serializedWTx))), - // ]); const witnessMerkleRootHash = merkleRoot([ WITNESS_RESERVED_VALUE, ...txs.map((tx) => reversify(tx.wtxid)), @@ -39,7 +35,6 @@ export const mine = ( const time = Buffer.alloc(4); time.writeUint32LE(Math.floor(Date.now() / 1000)); - // const nbits = "1f00ffff"; const nbits = Buffer.alloc(4); nbits.writeUint32LE(0x1f00ffff); diff --git a/src/features/encoding/serializer.ts b/src/features/encoding/serializer.ts index 7cb769e..2baa2ea 100644 --- a/src/features/encoding/serializer.ts +++ b/src/features/encoding/serializer.ts @@ -5,475 +5,234 @@ import { getNextNBytes } from "../script/utils"; import { SigHash } from "../../types"; import { Errors } from "./errors"; import { TEMPLATES } from "./witnessTemplates"; +import { ZERO } from "../../constants"; export class Serializer { - static serializeTx(tx: Transaction) { - let serializedTx = ""; + static serializeTx(tx: Transaction) { + let serializedTx = ""; - const version = Buffer.alloc(4); - version.writeInt16LE(tx.version, 0); - serializedTx += version.toString("hex"); + const version = Buffer.alloc(4); + version.writeInt16LE(tx.version, 0); + serializedTx += version.toString("hex"); - const numInputs = compactSize(BigInt(tx.vin.length)); - serializedTx += numInputs.toString("hex"); + const numInputs = compactSize(BigInt(tx.vin.length)); + serializedTx += numInputs.toString("hex"); - for (let i = 0; i < tx.vin.length; i++) { - serializedTx += Serializer.serializeInput(tx.vin[i]); - } - - const numOutputs = compactSize(BigInt(tx.vout.length)); - serializedTx += numOutputs.toString("hex"); - for (let i = 0; i < tx.vout.length; i++) { - serializedTx += Serializer.serializeOutput(tx.vout[i]); - } - - const locktime = Buffer.alloc(4); - locktime.writeUint32LE(tx.locktime, 0); - serializedTx += locktime.toString("hex"); + for (let i = 0; i < tx.vin.length; i++) { + serializedTx += Serializer.serializeInput(tx.vin[i]); + } - return serializedTx; + const numOutputs = compactSize(BigInt(tx.vout.length)); + serializedTx += numOutputs.toString("hex"); + for (let i = 0; i < tx.vout.length; i++) { + serializedTx += Serializer.serializeOutput(tx.vout[i]); } - static serializeWTx(tx: Transaction) { - let serializedWTx = ""; + const locktime = Buffer.alloc(4); + locktime.writeUint32LE(tx.locktime, 0); + serializedTx += locktime.toString("hex"); - const version = Buffer.alloc(4); - version.writeInt16LE(tx.version, 0); - serializedWTx += version.toString("hex"); + return serializedTx; + } - serializedWTx += "0001"; + static serializeWTx(tx: Transaction) { + let serializedWTx = ""; - const numInputs = compactSize(BigInt(tx.vin.length)); - serializedWTx += numInputs.toString("hex"); + const version = Buffer.alloc(4); + version.writeInt16LE(tx.version, 0); + serializedWTx += version.toString("hex"); - for (let i = 0; i < tx.vin.length; i++) { - serializedWTx += Serializer.serializeInput(tx.vin[i]); - } + serializedWTx += "0001"; - const numOutputs = compactSize(BigInt(tx.vout.length)); - serializedWTx += numOutputs.toString("hex"); + const numInputs = compactSize(BigInt(tx.vin.length)); + serializedWTx += numInputs.toString("hex"); - for (let i = 0; i < tx.vout.length; i++) { - serializedWTx += Serializer.serializeOutput(tx.vout[i]); - } - - for (let i = 0; i < tx.vin.length; i++) { - const input = tx.vin[i]; - if ( - !input.witness || - (input && - input.witness !== undefined && - input.witness.length === 0) - ) { - serializedWTx += compactSize(BigInt(0)).toString("hex"); - } else { - serializedWTx += compactSize( - BigInt(input.witness.length) - ).toString("hex"); - for (const witness of input.witness) { - serializedWTx += compactSize( - BigInt(witness.length / 2) - ).toString("hex"); - serializedWTx += witness; - } - } - } + for (let i = 0; i < tx.vin.length; i++) { + serializedWTx += Serializer.serializeInput(tx.vin[i]); + } - const locktime = Buffer.alloc(4); - locktime.writeUint32LE(tx.locktime, 0); - serializedWTx += locktime.toString("hex"); + const numOutputs = compactSize(BigInt(tx.vout.length)); + serializedWTx += numOutputs.toString("hex"); - return serializedWTx; + for (let i = 0; i < tx.vout.length; i++) { + serializedWTx += Serializer.serializeOutput(tx.vout[i]); } - static serializeInput(input: Input) { - let serializedInput = ""; - - const txHash = reversify(input.txid); - serializedInput += txHash; + for (let i = 0; i < tx.vin.length; i++) { + const input = tx.vin[i]; + if ( + !input.witness || + (input && input.witness !== undefined && input.witness.length === 0) + ) { + serializedWTx += compactSize(BigInt(0)).toString("hex"); + } else { + serializedWTx += compactSize(BigInt(input.witness.length)).toString( + "hex" + ); + for (const witness of input.witness) { + serializedWTx += compactSize(BigInt(witness.length / 2)).toString( + "hex" + ); + serializedWTx += witness; + } + } + } - const outputIndex = Buffer.alloc(4); - outputIndex.writeUint32LE(input.vout, 0); - serializedInput += outputIndex.toString("hex"); + const locktime = Buffer.alloc(4); + locktime.writeUint32LE(tx.locktime, 0); + serializedWTx += locktime.toString("hex"); + + return serializedWTx; + } + + static serializeInput(input: Input) { + let serializedInput = ""; + + const txHash = reversify(input.txid); + serializedInput += txHash; + + const outputIndex = Buffer.alloc(4); + outputIndex.writeUint32LE(input.vout, 0); + serializedInput += outputIndex.toString("hex"); + + const scriptSig = input.scriptsig; + const scriptSigSize = compactSize(BigInt(scriptSig.length / 2)); + const sequence = Buffer.alloc(4); + sequence.writeUint32LE(input.sequence, 0); + + serializedInput += scriptSigSize.toString("hex"); + serializedInput += scriptSig; + serializedInput += sequence.toString("hex"); + + return serializedInput; + } + + static serializeOutput(output: Output) { + let serializedOutput = ""; + const amount = Buffer.alloc(8); + amount.writeBigInt64LE(BigInt(output.value), 0); + + serializedOutput += amount.toString("hex"); + serializedOutput += compactSize( + BigInt(output.scriptpubkey.length / 2) + ).toString("hex"); + serializedOutput += output.scriptpubkey; + + return serializedOutput; + } + + static serializeWitness(tx: Transaction, index: number, sighash: SigHash) { + let serializedWTx = ""; + + const version = Buffer.alloc(4); + version.writeUint32LE(tx.version, 0); + + let prevouts = ""; + let sequences = ""; + let hashPrevouts = ""; + let hashSequence = ""; + if (sighash >= SigHash.ANYONE_CAN_PAY) hashPrevouts = ZERO; + else { + for (const input of tx.vin) { + prevouts += reversify(input.txid); + const prevoutVout = Buffer.alloc(4); + prevoutVout.writeUint32LE(input.vout, 0); + prevouts += prevoutVout.toString("hex"); + } + hashPrevouts = hash256(prevouts); + } - const scriptSig = input.scriptsig; - const scriptSigSize = compactSize(BigInt(scriptSig.length / 2)); + if ( + sighash >= SigHash.ANYONE_CAN_PAY || + sighash === SigHash.SINGLE || + sighash === SigHash.NONE + ) + hashSequence = ZERO; + else { + for (const input of tx.vin) { const sequence = Buffer.alloc(4); sequence.writeUint32LE(input.sequence, 0); - - serializedInput += scriptSigSize.toString("hex"); - serializedInput += scriptSig; - serializedInput += sequence.toString("hex"); - - return serializedInput; + sequences += sequence.toString("hex"); + } + hashSequence = hash256(sequences); } - static serializeOutput(output: Output) { - let serializedOutput = ""; - const amount = Buffer.alloc(8); - amount.writeBigInt64LE(BigInt(output.value), 0); - - serializedOutput += amount.toString("hex"); - serializedOutput += compactSize( - BigInt(output.scriptpubkey.length / 2) - ).toString("hex"); - serializedOutput += output.scriptpubkey; - - return serializedOutput; + let outputs = ""; + let hashOutputs = ""; + if ( + (sighash & 0x1f) === SigHash.SINGLE || + (sighash & 0x1f) === SigHash.NONE + ) { + if ((sighash & 0x1f) === SigHash.SINGLE && index < tx.vout.length) { + hashOutputs = hash256(tx.vout[index].serialize()); + } else hashOutputs = ZERO; + } else { + for (const output of tx.vout) { + outputs += output.serialize(); + } + hashOutputs = hash256(outputs); } - static serializeWitness(tx: Transaction, index: number, sighash: SigHash) { - //pubkey is tx.input[vout].witness[1] for p2wpkh - if (sighash !== SigHash.ALL) throw new Error("unsupported sighash"); - let serializedWTx = ""; - - const version = Buffer.alloc(4); - version.writeInt32LE(tx.version, 0); - - let prevouts = ""; - let sequences = ""; - for (const input of tx.vin) { - prevouts += input.txid; - const prevoutVout = Buffer.alloc(4); - prevoutVout.writeUint32LE(input.vout, 0); - prevouts += prevoutVout.toString("hex"); - - const sequence = Buffer.alloc(4); - sequence.writeUint32LE(input.sequence, 0); - sequences += sequence.toString("hex"); - } - - const hashPrevouts = hash256(prevouts); - const hashSequence = hash256(sequences); - - let outputs = ""; - for (const output of tx.vout) { - const outputAmount = Buffer.alloc(8); - outputAmount.writeBigInt64LE(BigInt(output.value), 0); - outputs += outputAmount.toString("hex"); - outputs += output.scriptpubkey; - } - - const hashOutputs = hash256(outputs); - - const input = tx.vin[index]; - if (!input) throw new Error(Errors.INVALID_VOUT); - // const outpoint = input.txid; - const vout = Buffer.alloc(4); - vout.writeUint32LE(input.vout, 0); - const outpoint = input.txid + vout.toString("hex"); - - if (!input.witness) throw new Error(Errors.INVALID_WITNESS); - if (!input.witness[1]) throw new Error(Errors.PUBKEY_NOT_FOUND); - const scriptCode = TEMPLATES.P2WPKH(hash160(input.witness[1])); - - if (!input.prevout) throw new Error(Errors.INVALID_PREVOUT); - const amount = Buffer.alloc(8); - amount.writeBigInt64LE(BigInt(input.prevout.value), 0); - - const nSequence = Buffer.alloc(4); - nSequence.writeUint32LE(input.sequence, 0); - - const nLocktime = Buffer.alloc(4); - nLocktime.writeUint32LE(tx.locktime, 0); - - const hashcode = Buffer.alloc(4); - hashcode.writeUint16LE(0x01, 0); - - console.log("version: ", version.toString("hex")); - console.log("hashPrevouts: ", hashPrevouts, "prevouts: ", prevouts); - console.log("hashSequence: ", hashSequence, "sequences: ", sequences); - console.log("outpoint: ", outpoint); - console.log("scriptCode: ", scriptCode); - console.log("amount: ", amount.toString("hex")); - console.log("nSequence: ", nSequence.toString("hex")); - console.log("hashOutputs: ", hashOutputs, "outputs: ", outputs); - console.log("nLocktime: ", nLocktime.toString("hex")); - - serializedWTx += version.toString("hex"); - serializedWTx += hashPrevouts; - serializedWTx += hashSequence; - serializedWTx += outpoint; - serializedWTx += scriptCode; - serializedWTx += amount.toString("hex"); - serializedWTx += nSequence.toString("hex"); - serializedWTx += hashOutputs; - serializedWTx += nLocktime.toString("hex"); - serializedWTx += hashcode.toString("hex"); - - console.log(serializedWTx); - return serializedWTx; - } + const input = tx.vin[index]; + if (!input) throw new Error(Errors.INVALID_VOUT); + const vout = Buffer.alloc(4); + vout.writeUint32LE(input.vout, 0); + const outpoint = reversify(input.txid) + vout.toString("hex"); + + if (!input.witness) throw new Error(Errors.INVALID_WITNESS); + if (!input.witness[1]) throw new Error(Errors.PUBKEY_NOT_FOUND); + const scriptCode = TEMPLATES.P2WPKH(hash160(input.witness[1])); + + if (!input.prevout) throw new Error(Errors.INVALID_PREVOUT); + const amount = Buffer.alloc(8); + amount.writeBigInt64LE(BigInt(input.prevout.value), 0); + + const nSequence = Buffer.alloc(4); + nSequence.writeUint32LE(input.sequence, 0); + + const nLocktime = Buffer.alloc(4); + nLocktime.writeUint32LE(tx.locktime, 0); + + const hashcode = Buffer.alloc(4); + hashcode.writeUint32LE(sighash, 0); + + serializedWTx += version.toString("hex"); + serializedWTx += hashPrevouts; + serializedWTx += hashSequence; + serializedWTx += outpoint; + serializedWTx += scriptCode; + serializedWTx += amount.toString("hex"); + serializedWTx += nSequence.toString("hex"); + serializedWTx += hashOutputs; + serializedWTx += nLocktime.toString("hex"); + serializedWTx += hashcode.toString("hex"); + + return serializedWTx; + } } -// export const outputSerializer = (outTx: Output) => { -// const amount = Buffer.alloc(8); -// amount.writeBigInt64LE(BigInt(outTx.value), 0); -// return `${amount.toString("hex")}${compactSize( -// BigInt(outTx.scriptpubkey.length / 2) -// ).toString("hex")}${outTx.scriptpubkey}`; -// }; - -// export const inputSerializer = (inTx: Input) => { -// let serializedInput = ""; - -// const txHash = reversify(inTx.txid); -// serializedInput += txHash; - -// const outputIndex = Buffer.alloc(4); -// outputIndex.writeUint32LE(inTx.vout, 0); -// serializedInput += outputIndex.toString("hex"); - -// const scriptSig = inTx.scriptsig; -// const scriptSigSize = compactSize(BigInt(scriptSig.length / 2)); -// const sequence = Buffer.alloc(4); -// sequence.writeUint32LE(inTx.sequence, 0); - -// serializedInput += scriptSigSize.toString("hex"); -// serializedInput += scriptSig; -// serializedInput += sequence.toString("hex"); - -// return serializedInput; -// }; - -// export const txSerializer = (tx: Transaction) => { -// let serializedTx = ""; -// let serializedWTx = ""; -// let totalWeight = 0; - -// const version = Buffer.alloc(4); -// version.writeInt16LE(tx.version, 0); -// serializedTx += version.toString("hex"); -// serializedWTx += version.toString("hex"); -// totalWeight += weight(version, 4); - -// serializedWTx += "0001"; -// let witnessWeights = 2; - -// const numInputs = compactSize(BigInt(tx.vin.length)); -// serializedTx += numInputs.toString("hex"); -// serializedWTx += numInputs.toString("hex"); -// totalWeight += weight(numInputs, 4); - -// for (let i = 0; i < tx.vin.length; i++) { -// serializedTx += inputSerializer(tx.vin[i]); -// serializedWTx += inputSerializer(tx.vin[i]); -// totalWeight += weight(inputSerializer(tx.vin[i]), 4); -// } - -// const numOutputs = compactSize(BigInt(tx.vout.length)); -// serializedTx += numOutputs.toString("hex"); -// serializedWTx += numOutputs.toString("hex"); -// totalWeight += weight(numOutputs, 4); -// for (let i = 0; i < tx.vout.length; i++) { -// serializedTx += outputSerializer(tx.vout[i]); -// serializedWTx += outputSerializer(tx.vout[i]); -// totalWeight += weight(outputSerializer(tx.vout[i]), 4); -// } - -// let isWitness = false; -// for (let i = 0; i < tx.vin.length; i++) { -// if (!tx.vin[i].witness || tx.vin[i].witness.length === 0) { -// serializedWTx += compactSize(BigInt(0)).toString("hex"); -// witnessWeights += weight(compactSize(BigInt(0)), 1); -// } else { -// isWitness = true; -// serializedWTx += compactSize(BigInt(tx.vin[i].witness.length)).toString( -// "hex" -// ); -// witnessWeights += weight( -// compactSize(BigInt(tx.vin[i].witness.length)), -// 1 -// ); -// for (const witness of tx.vin[i].witness) { -// serializedWTx += compactSize(BigInt(witness.length / 2)).toString( -// "hex" -// ); -// witnessWeights += weight(compactSize(BigInt(witness.length / 2)), 1); -// serializedWTx += witness; -// witnessWeights += weight(witness, 1); -// } -// } -// } - -// const locktime = Buffer.alloc(4); -// locktime.writeUint32LE(tx.locktime, 0); -// serializedTx += locktime.toString("hex"); -// serializedWTx += locktime.toString("hex"); -// totalWeight += weight(locktime, 4); - -// if (isWitness) totalWeight += witnessWeights; //for marker and flag - -// return { -// serializedTx, -// serializedWTx: isWitness ? serializedWTx : serializedTx, -// weight: totalWeight, -// }; -// }; - -// export const txWeight = (tx: Transaction) => { -// // return txSerializer(tx).serializedWTx.length / 2; -// return txSerializer(tx).weight; -// }; - -// export const txForSigning = ( -// tx: Transaction, -// input: number, -// sighash: SigHash -// ) => { -// const txCopy = cloneDeep(tx); -// let hashcode = Buffer.alloc(4); -// switch (sighash) { -// case SigHash.ALL: -// for (let i = 0; i < txCopy.vin.length; i++) { -// hashcode.writeUint32LE(1, 0); -// if (i === input) { -// txCopy.vin[i].scriptsig = txCopy.vin[i].prevout.scriptpubkey; -// } else { -// txCopy.vin[i].scriptsig = ""; -// } -// } -// break; -// case SigHash.ALL_ANYONECANPAY: -// hashcode.writeUint32LE(0x81, 0); -// txCopy.vin = [txCopy.vin[input]]; -// txCopy.vin[0].scriptsig = txCopy.vin[0].prevout.scriptpubkey; -// break; -// } - -// return txSerializer(txCopy).serializedTx + hashcode.toString("hex"); -// }; - export const extractRSFromSignature = (derEncodedSignature: string) => { - let derEncodingScheme, - signatureLength, - r, - s, - rLength, - sLength, - rest, - prefix, - rPadding = "", - sPadding = ""; - [derEncodingScheme, rest] = getNextNBytes(derEncodedSignature, 1); - if (derEncodingScheme !== "30") - throw new Error("Invalid DER encoding scheme"); - [signatureLength, rest] = getNextNBytes(rest, 1); - [prefix, rest] = getNextNBytes(rest, 1); - [rLength, rest] = getNextNBytes(rest, 1); - [r, rest] = getNextNBytes(rest, parseInt(rLength, 16)); - if (r.length === 66) [rPadding, r] = getNextNBytes(r, 1); //account for 00 padding - - [prefix, rest] = getNextNBytes(rest, 1); - [sLength, rest] = getNextNBytes(rest, 1); - [s, rest] = getNextNBytes(rest, parseInt(sLength, 16)); - if (s.length === 66) [sPadding, s] = getNextNBytes(s, 1); //account for 00 padding - - return r.padStart(64, "0") + s.padStart(64, "0"); + let derEncodingScheme, + signatureLength, + r, + s, + rLength, + sLength, + rest, + prefix, + rPadding = "", + sPadding = ""; + [derEncodingScheme, rest] = getNextNBytes(derEncodedSignature, 1); + [signatureLength, rest] = getNextNBytes(rest, 1); + [prefix, rest] = getNextNBytes(rest, 1); + [rLength, rest] = getNextNBytes(rest, 1); + [r, rest] = getNextNBytes(rest, parseInt(rLength, 16)); + if (r.length === 66) [rPadding, r] = getNextNBytes(r, 1); //account for 00 padding + + [prefix, rest] = getNextNBytes(rest, 1); + [sLength, rest] = getNextNBytes(rest, 1); + [s, rest] = getNextNBytes(rest, parseInt(sLength, 16)); + if (s.length === 66) [sPadding, s] = getNextNBytes(s, 1); //account for 00 padding + + return r.padStart(64, "0") + s.padStart(64, "0"); }; - -const tx = { - version: 1, - locktime: 0, - vin: [ - { - txid: "3b7dc918e5671037effad7848727da3d3bf302b05f5ded9bec89449460473bbb", - vout: 16, - prevout: { - scriptpubkey: "0014f8d9f2203c6f0773983392a487d45c0c818f9573", - scriptpubkey_asm: - "OP_0 OP_PUSHBYTES_20 f8d9f2203c6f0773983392a487d45c0c818f9573", - scriptpubkey_type: "v0_p2wpkh", - scriptpubkey_address: - "bc1qlrvlygpudurh8xpnj2jg04zupjqcl9tnk5np40", - value: 37079526, - }, - scriptsig: "", - scriptsig_asm: "", - witness: [ - "30440220780ad409b4d13eb1882aaf2e7a53a206734aa302279d6859e254a7f0a7633556022011fd0cbdf5d4374513ef60f850b7059c6a093ab9e46beb002505b7cba0623cf301", - "022bf8c45da789f695d59f93983c813ec205203056e19ec5d3fbefa809af67e2ec", - ], - is_coinbase: false, - sequence: 4294967295, - }, - ], - vout: [ - { - scriptpubkey: "76a9146085312a9c500ff9cc35b571b0a1e5efb7fb9f1688ac", - scriptpubkey_asm: - "OP_DUP OP_HASH160 OP_PUSHBYTES_20 6085312a9c500ff9cc35b571b0a1e5efb7fb9f16 OP_EQUALVERIFY OP_CHECKSIG", - scriptpubkey_type: "p2pkh", - scriptpubkey_address: "19oMRmCWMYuhnP5W61ABrjjxHc6RphZh11", - value: 100000, - }, - { - scriptpubkey: "0014ad4cc1cc859c57477bf90d0f944360d90a3998bf", - scriptpubkey_asm: - "OP_0 OP_PUSHBYTES_20 ad4cc1cc859c57477bf90d0f944360d90a3998bf", - scriptpubkey_type: "v0_p2wpkh", - scriptpubkey_address: "bc1q44xvrny9n3t5w7lep58egsmqmy9rnx9lt6u0tc", - value: 36977942, - }, - ], -} as unknown as Transaction; - -// const { serializedTx, serializedWTx } = txSerializer( -// tx as unknown as Transaction -// ); -// // console.log("serializedWTx", serializedWTx); -// // console.log(reversify(sha256(sha256(serializedTx)))); -// // console.log(reversify(sha256(sha256(serializedWTx)))); - -// console.log(reversify(sha256(sha256(txSerializer(tx).serializedTx)))); -// const txToBeSigned = txForSigning(tx, 0, SigHash.ALL); -// const hash = sha256(sha256(txToBeSigned)); - -// const pubkey = ECPair.fromPublicKey( -// Buffer.from( -// "022bf8c45da789f695d59f93983c813ec205203056e19ec5d3fbefa809af67e2ec", -// "hex" -// ), -// { compressed: true } -// ); - -// const res = pubkey.verify( -// Buffer.from(hash, "hex"), -// Buffer.from( -// extractRSFromSignature( -// //extract r, s from DER encoded ECDSA signature -// "30440220780ad409b4d13eb1882aaf2e7a53a206734aa302279d6859e254a7f0a7633556022011fd0cbdf5d4374513ef60f850b7059c6a093ab9e46beb002505b7cba0623cf301" -// ), -// "hex" -// ) -// ); - -// console.log(res); - -// console.log( -// reversify("b4948747cc3ddbc03e016c43d82087bf3fff63b856e887561005ec1acd2eb290") -// ); - -// console.log(res); - -// p2pkh -//02000000|01|25c9f7c56ab4b9c358cb159175de542b41c7d38bf862a045fa5da51979e37ffb|01000000|6b|4830450221008f619822a97841ffd26eee942d41c1c4704022af2dd42600f006336ce686353a0220659476204210b21d605baab00bef7005ff30e878e911dc99413edb6c1e022acd012102c371793f2e19d1652408efef67704a2e9953a43a9dd54360d56fc93277a5667d|ffffffff|02|54e8050000000000|19|76a9141ef7874d338d24ecf6577e6eadeeee6cd579c67188ac|c891000000000000|19|76a9142e391b6c47778d35586b1f4154cbc6b06dc9840c88ac|00000000| -//p2wpkh -//version|witness|numInputs| input tx hash 1 | input tx index 1 | scriptSig size | sequence|inputTxHash2 |outputIndex2|scriptSig2|sequence2|num outputs| output value | output scriptpubkey size | output scriptpubkey -//01000000|0001|02|de4879b9137defa55479f365334d67e59ef146c0146a71e70161ef7e7cc65fb4|01000000|00|ffffffff|e7b2f24ec6fde8d97cab15e885e68b45899a06ba4385c753793ed6ceb3771d56|00000000|00|ffffffff|02|a0b67600|0000000022|0020e84d3f6e5cbdc0edf746db92890753c7cbb0a5d56e046be6015819f3b4bd8abc|552a|00000000000016|0014a8f98809869fce19104d18efad1273e891973687|02|47|304402203e6a1971bbf6c42136fc8dfcf11efa115472ae063d0345f446b6383c2f17380b02204b126ed182a51bb32f90276fea4c7c0b9a9ba22df5d2fde7d3c45c0b5542265601|21|02e7d637bf72bdd26390a93535e7f70d0dc3091fc0768ac973d82d94fa09c48da5|02|47|3044022072f357d0ab64f4c828579eb1e8626d9b938b3d2948766f94add00859338bcd1a02200a52417f8b556154a5112ab4445e42b0e28a64e09fe6bdea2712cb59e447056f01|21|02e7d637bf72bdd26390a93535e7f70d0dc3091fc0768ac973d82d94fa09c48da5|00000000 -//p2wsh -//02000000|0001|01|30d1c40780728b4e30c53333fa7e38bd8ebed021c05ec135592ad17a078513a5|00000000|00|fdffffff|03|43721600|0000000022|0020d333523199087a0d8faad8667ba5540d93b7041ce0af2f10248565edb86a55fc|52e86d02|0000000022|0020af9746c91370a2132c85fad6641650e5c160f3522b748b15120d03695dcfd4c3|6e8cf000|0000000016|0014bb9daf27204b53a37612eace73520b0774c119f8|0548|3045022100f9beb9585cc5b8487264898c532c10c862d24b98a53688ddf2b6800bb049d6b2022001d3ce09fa560efafe553214356151dde3046463214939b34cf27500969c83fd01|21|030681010e3431c0a31da520cf46a2b2c1d645a0d486918139f7e3f8c7fda677ab|20|1769d10a9a7e8506e14edc4801e40cc24699ec4d4086ddcc186e33fe458470c6|01|01|5b|63a820406af310092ba4cc3d12b65d573c0acd25d63a97905c8cf38a77b524dee657e88876a914bb9daf27204b53a37612eace73520b0774c119f867022001b27576a9142c3debdb231b31b42a8877fc3b16de014b13f10b6888ac|00000000 -//01000000000102 -// input txhash1: de4879b9137defa55479f365334d67e59ef146c0146a71e70161ef7e7cc65fb4 - -// const j = -// "01000000000101bb3b4760944489ec9bed5d5fb002f33b3dda278784d7faef371067e518c97d3b1000000000ffffffff02a0860100000000001976a9146085312a9c500ff9cc35b571b0a1e5efb7fb9f1688ac163d340200000000160014ad4cc1cc859c57477bf90d0f944360d90a3998bf024730440220780ad409b4d13eb1882aaf2e7a53a206734aa302279d6859e254a7f0a7633556022011fd0cbdf5d4374513ef60f850b7059c6a093ab9e46beb002505b7cba0623cf30121022bf8c45da789f695d59f93983c813ec205203056e19ec5d3fbefa809af67e2ec00000000"; -// const a = -// "01000000000101bb3b4760944489ec9bed5d5fb002f33b3dda278784d7faef371067e518c97d3b1000000000ffffffff02a0860100000000001976a9146085312a9c500ff9cc35b571b0a1e5efb7fb9f1688ac163d340200000000160014ad4cc1cc859c57477bf90d0f944360d90a3998bf028e30440220780ad409b4d13eb1882aaf2e7a53a206734aa302279d6859e254a7f0a7633556022011fd0cbdf5d4374513ef60f850b7059c6a093ab9e46beb002505b7cba0623cf30142022bf8c45da789f695d59f93983c813ec205203056e19ec5d3fbefa809af67e2ec00000000"; - -// for (let i = 0; i < j.length; i++) { -// if (j[i] !== a[i]) { -// console.log(a.slice(i)); -// console.log(i); -// } -// } diff --git a/src/features/encoding/witnessTemplates.ts b/src/features/encoding/witnessTemplates.ts index 1cb6449..212b1eb 100644 --- a/src/features/encoding/witnessTemplates.ts +++ b/src/features/encoding/witnessTemplates.ts @@ -1,4 +1,4 @@ // const p2wpkhTemplate = (pubkey: string) => `1976a914${pubkey}88ac`; export const TEMPLATES = { - P2WPKH: (pubkeyhash: string) => `1976a914${pubkeyhash}88ac`, + P2WPKH: (pubkeyhash: string) => `1976a914${pubkeyhash}88ac`, }; diff --git a/src/features/script/Script.ts b/src/features/script/Script.ts new file mode 100644 index 0000000..7cfb867 --- /dev/null +++ b/src/features/script/Script.ts @@ -0,0 +1,8 @@ +import { ScriptStack } from "./stack"; + +export class Script { + static execute(script: string) { + const stack = new ScriptStack(); + stack.execute(script); + } +} diff --git a/src/features/script/constants.ts b/src/features/script/constants.ts index 0967e76..93b0430 100644 --- a/src/features/script/constants.ts +++ b/src/features/script/constants.ts @@ -1 +1,2 @@ export const SIGNED_INT_MAX = 0x7fffffff; +export const FALSE = "0"; diff --git a/src/features/script/error.ts b/src/features/script/error.ts index 5c6b530..b0d64ea 100644 --- a/src/features/script/error.ts +++ b/src/features/script/error.ts @@ -4,4 +4,10 @@ export const ERRORS = { OP_ELSE_WITHOUT_OP_IF: "OP_ELSE_WITHOUT_OP_IF", VERIFY: "TOP VALUE IS FALSE", STACK_EMPTY: "STACK IS EMPTY", + MULTISIG: { + INVALID_N_VALUE: "INVALID N VALUE", + INVALID_M_VALUE: "INVALID M VALUE", + M_GREATER_THAN_N: "M GREATER THAN N", + }, + INVALID_TX: "INVALID TRANSACTION", }; diff --git a/src/features/script/executor.ts b/src/features/script/executor.ts index ef07240..6d6a132 100644 --- a/src/features/script/executor.ts +++ b/src/features/script/executor.ts @@ -3,37 +3,49 @@ import { ERRORS } from "./error"; import { ScriptStack } from "./stack"; import { encodeNumber, getNextNBytes, parseHex, parseNumber } from "./utils"; import * as crypto from "crypto"; +import { FALSE } from "./constants"; +import { hash160, hash256, sha256 } from "../../utils"; +import { extractRSFromSignature } from "../encoding/serializer"; +import { extractSighashFromSignature } from "../validator/signature"; + +import { ECPairFactory } from "ecpair"; +import * as ecc from "tiny-secp256k1"; + +import { getTransactionType } from "../transaction/utils"; +import { compactSize } from "../encoding/compactSize"; + +const ECPair = ECPairFactory(ecc); -//executes the op_code and modifies the stack -//todo: op_return - what does it mean by invalid -//todo: arithmetic - check for varint in parsenumber as well export const executor = ( stack: ScriptStack, initialScript: string ): { script: string } => { let [opcode, script] = getNextNBytes(initialScript, 1); - if (opcode == OP_CODES.OP_0) { - stack.push("0"); + if (opcode === OP_CODES.OP_0) { + if (stack.shouldExecute()) stack.push(FALSE); return { script }; } else if ( opcode >= OP_CODES.OP_PUSHBYTES_1 && opcode <= OP_CODES.OP_PUSHBYTES_75 ) { - let [bytes, newScript] = getNextNBytes( - script, - parseHex(opcode) - parseHex(OP_CODES.OP_PUSHBYTES_1) + 1 - ); - stack.push(bytes); + const length = parseHex(opcode) - parseHex(OP_CODES.OP_PUSHBYTES_1) + 1; + let [bytes, newScript] = getNextNBytes(script, length); + + if (stack.shouldExecute()) stack.push(bytes); return { script: newScript }; } else if (opcode === OP_CODES.OP_PUSHDATA1) { let [bytesLength, newScript] = getNextNBytes(script, 1); let [bytes, newScript2] = getNextNBytes(newScript, parseHex(bytesLength)); + if (stack.shouldExecute()) stack.push(bytes); + return { script: newScript2 }; } else if (opcode === OP_CODES.OP_PUSHDATA2) { let [bytesLength, newScript] = getNextNBytes(script, 2); let [bytes, newScript2] = getNextNBytes(newScript, parseHex(bytesLength)); + if (stack.shouldExecute()) stack.push(bytes); + return { script: newScript2 }; } else if (opcode === OP_CODES.OP_PUSHDATA4) { let [bytesLength, newScript] = getNextNBytes(script, 4); @@ -41,36 +53,55 @@ export const executor = ( if (stack.shouldExecute()) stack.push(bytes); return { script: newScript2 }; } else if (opcode >= OP_CODES.OP_1 && opcode <= OP_CODES.OP_16) { - if (stack.shouldExecute()) - stack.push(String(parseHex(opcode) - parseHex(OP_CODES.OP_1) + 1)); + if (stack.shouldExecute()) { + const buf = Buffer.alloc(1); + const num = parseHex(opcode) - parseHex(OP_CODES.OP_1) + 1; + + buf.writeUintLE(num, 0, 1); + + stack.push(buf.toString("hex")); + } return { script }; } else if (opcode === OP_CODES.OP_IF) { - const condition = stack.pop() !== "0"; + const condition = stack.top() !== FALSE; stack.onIf(condition); + + return { script }; + } else if (opcode === OP_CODES.OP_IFDUP) { + if (!stack.shouldExecute()) return { script }; + const top = stack.top(); + + if (!top) throw new Error(ERRORS.STACK_EMPTY); + + if (top !== FALSE) stack.push(top); + return { script }; } else if (opcode === OP_CODES.OP_NOTIF) { - const condition = stack.pop() === "0"; + const condition = stack.top() === FALSE; stack.onIf(condition); + return { script }; } else if (opcode === OP_CODES.OP_ELSE) { stack.onElse(); + return { script }; } else if (opcode === OP_CODES.OP_ENDIF) { stack.onEndIf(); + return { script }; } else if (opcode === OP_CODES.OP_NOP) { return { script }; } else if (opcode === OP_CODES.OP_VERIFY) { if (stack.shouldExecute()) { const top = stack.pop(); - if (top === "0") throw new Error(ERRORS.VERIFY); + if (top === FALSE) throw new Error(ERRORS.VERIFY); } return { script }; } else if (opcode === OP_CODES.OP_1ADD) { if (!stack.shouldExecute()) return { script }; const top = stack.pop(); if (!top) throw new Error(ERRORS.STACK_EMPTY); - stack.push(encodeNumber(parseNumber(top!) + 1)); + stack.push(encodeNumber(parseNumber(top) + 1)); return { script }; } else if (opcode === OP_CODES.OP_RIPEMD160) { if (!stack.shouldExecute()) return { script }; @@ -88,56 +119,229 @@ export const executor = ( if (!stack.shouldExecute()) return { script }; const top = stack.pop(); if (!top) throw new Error(ERRORS.STACK_EMPTY); - stack.push(crypto.createHash("sha256").update(top).digest("hex")); + stack.push(sha256(top)); return { script }; } else if (opcode === OP_CODES.OP_HASH160) { if (!stack.shouldExecute()) return { script }; const top = stack.pop(); if (!top) throw new Error(ERRORS.STACK_EMPTY); - const sha256 = crypto.createHash("sha256").update(top).digest("hex"); - stack.push(crypto.createHash("ripemd160").update(sha256).digest("hex")); + stack.push(hash160(top)); return { script }; } else if (opcode === OP_CODES.OP_HASH256) { if (!stack.shouldExecute()) return { script }; const top = stack.pop(); if (!top) throw new Error(ERRORS.STACK_EMPTY); - const sha256 = crypto.createHash("sha256").update(top).digest("hex"); - stack.push(crypto.createHash("sha256").update(sha256).digest("hex")); + stack.push(hash256(top)); + return { script }; + } else if ( + opcode === OP_CODES.OP_EQUAL || + opcode === OP_CODES.OP_EQUALVERIFY + ) { + if (!stack.shouldExecute()) return { script }; + const first = stack.pop(); + const second = stack.pop(); + if (!first || !second) throw new Error(ERRORS.STACK_EMPTY); + stack.push(first === second ? OP_CODES.OP_1 : FALSE); + if (opcode === OP_CODES.OP_EQUALVERIFY) { + if (stack.pop() === FALSE) throw new Error(ERRORS.VERIFY); + } + return { script }; + } else if ( + opcode === OP_CODES.OP_CHECKSIG || + opcode === OP_CODES.OP_CHECKSIGVERIFY + ) { + if (!stack.shouldExecute()) return { script }; + + const pubkey = stack.pop(); + const derEncodedSignature = stack.pop(); + + if (!pubkey || !derEncodedSignature) throw new Error(ERRORS.STACK_EMPTY); + + const sighash = extractSighashFromSignature(derEncodedSignature); + const sig = extractRSFromSignature(derEncodedSignature); + + const msg = stack.tx.signWith( + stack.index, + sighash, + getTransactionType(stack.tx, stack.index) + ); + const hash = hash256(msg); + const ecpair = ECPair.fromPublicKey(Buffer.from(pubkey, "hex")); + + const valid = ecpair.verify( + Buffer.from(hash, "hex"), + Buffer.from(sig, "hex") + ); + + if (valid) stack.push(OP_CODES.OP_1); + else stack.push(FALSE); + + if (opcode === OP_CODES.OP_CHECKSIGVERIFY) { + if (stack.pop() === FALSE) throw new Error(ERRORS.VERIFY); + } + + return { script }; + } else if (opcode === OP_CODES.OP_CHECKMULTISIG) { + if (!stack.shouldExecute()) return { script }; + const pubkeys = []; + const sigs = []; + let n = stack.pop(); + if (!n) throw new Error(ERRORS.STACK_EMPTY); + if (isNaN(+n)) throw new Error(ERRORS.MULTISIG.INVALID_N_VALUE); + let iterator = +n; + while (iterator--) { + pubkeys.push(stack.pop()); + } + let m = stack.pop(); + if (!m) throw new Error(ERRORS.STACK_EMPTY); + if (isNaN(+m)) throw new Error(ERRORS.MULTISIG.INVALID_M_VALUE); + iterator = +m; + while (iterator--) { + sigs.push(stack.pop()); + } + if (pubkeys.length < sigs.length) + throw new Error(ERRORS.MULTISIG.M_GREATER_THAN_N); + + let sigIterator = 0; + let pubkeyIterator = 0; + let validPairs = 0; + + while (sigIterator < sigs.length && pubkeyIterator < pubkeys.length) { + const derEncodedSignature = sigs[sigIterator]!; //iterator will always be < sigs.length + const pubkey = pubkeys[pubkeyIterator]!; //iterator will always be < pubkeys.length as sig.length < sigs.length + + if (!derEncodedSignature || !pubkey) throw new Error(ERRORS.STACK_EMPTY); + const sighash = extractSighashFromSignature(derEncodedSignature); + if (!stack.tx.vin[stack.index].prevout) return { script }; // "0" will be on top + const msg = stack.tx.signWith( + stack.index, + sighash, + getTransactionType(stack.tx, stack.index) + ); + + const sig = extractRSFromSignature(derEncodedSignature); + const hash = hash256(msg); + + const ecpair = ECPair.fromPublicKey(Buffer.from(pubkey, "hex")); + + const valid = ecpair.verify( + Buffer.from(hash, "hex"), + Buffer.from(sig, "hex") + ); + pubkeyIterator++; + if (valid) { + validPairs++; + sigIterator++; + } + } + + stack.pop(); //pop 0 element + if (validPairs >= +m) stack.push(OP_CODES.OP_1); + else stack.push(FALSE); + + return { script }; + } else if (opcode === OP_CODES.OP_CHECKLOCKTIMEVERIFY) { + if (!stack.shouldExecute()) return { script }; + const cltvLE = stack.pop(); + if (!cltvLE) throw new Error(ERRORS.STACK_EMPTY); + + const buf = Buffer.from(cltvLE, "hex"); + const num = buf.readUintLE(0, buf.length); + + if (num > stack.tx.locktime) throw new Error(ERRORS.INVALID_TX); + + return { script }; + } else if (opcode === OP_CODES.OP_CHECKSEQUENCEVERIFY) { + if (!stack.shouldExecute()) return { script }; + const top = stack.top(); + if (!top) throw new Error(ERRORS.STACK_EMPTY); + + const buf = Buffer.from(top.padStart(2, "0"), "hex"); + const num = buf.readUintLE(0, buf.length); + + if (num > stack.tx.vin[stack.index].sequence) + throw new Error(ERRORS.INVALID_TX); + + return { script }; + } else if (opcode === OP_CODES.OP_DROP) { + if (!stack.shouldExecute()) return { script }; + const top = stack.pop(); + if (!top) throw new Error(ERRORS.STACK_EMPTY); + return { script }; + } else if (opcode === OP_CODES.OP_DUP) { + if (!stack.shouldExecute()) return { script }; + + const top = stack.top(); + if (!top) throw new Error(ERRORS.STACK_EMPTY); + + stack.push(top); + return { script }; + } else if (opcode === OP_CODES.OP_SIZE) { + if (!stack.shouldExecute()) return { script }; + + const top = stack.top(); + if (!top) throw new Error(ERRORS.STACK_EMPTY); + + stack.push(compactSize(BigInt(top.length / 2)).toString("hex")); + + return { script }; + } else if (opcode === OP_CODES.OP_SWAP) { + if (!stack.shouldExecute()) return { script }; + + const top1 = stack.pop(); + const top2 = stack.pop(); + + if (!top1 || !top2) throw new Error(ERRORS.STACK_EMPTY); + + stack.push(top1); + stack.push(top2); + + return { script }; + } else if (opcode === OP_CODES.OP_GREATERTHAN) { + if (!stack.shouldExecute()) return { script }; + //should be a > b + const b = stack.pop(); + const a = stack.pop(); + + if (!b || !a) throw new Error(ERRORS.STACK_EMPTY); + + const bufA = Buffer.from(a.padStart(2, "0"), "hex"); + const bufB = Buffer.from(b.padStart(2, "0"), "hex"); + + const numA = bufA.readUintLE(0, bufA.length); + const numB = bufB.readUintLE(0, bufB.length); + + if (numA > numB) stack.push(OP_CODES.OP_1); + else stack.push(FALSE); + return { script }; + } else if (opcode === OP_CODES.OP_ROT) { + if (!stack.shouldExecute()) return { script }; + const top1 = stack.pop(); + const top2 = stack.pop(); + const top3 = stack.pop(); + + if (!top1 || !top2 || !top3) throw new Error(ERRORS.STACK_EMPTY); + + stack.push(top2); + stack.push(top1); + stack.push(top3); + + return { script }; + } else if (opcode === OP_CODES.OP_OVER) { + if (!stack.shouldExecute()) return { script }; + + const top1 = stack.pop(); + const top2 = stack.pop(); + + if (!top1 || !top2) throw new Error(ERRORS.STACK_EMPTY); + + stack.push(top2); + stack.push(top1); + stack.push(top2); + return { script }; } else { - throw new Error("not yet implemented"); + console.log(JSON.stringify(stack.tx.vin[stack.index], null, 4)); + throw new Error("not yet implemented: " + opcode); } }; - -const test = ` - ${OP_CODES.OP_0} - ${OP_CODES.OP_NOTIF} - ${OP_CODES.OP_0} - ${OP_CODES.OP_NOTIF} - ${OP_CODES.OP_4} - ${OP_CODES.OP_ELSE} - ${OP_CODES.OP_5} - ${OP_CODES.OP_ENDIF} - ${OP_CODES.OP_ELSE} - ${OP_CODES.OP_3} - ${OP_CODES.OP_ENDIF}`.replace(/\s/g, ""); - -const testExecutor = () => { - // const stack = new ScriptStack("", ""); - // let script = test; - // console.log(script); - // while (script.length != 0) { - // const { script: newScript } = executor(stack, script); - // script = newScript; - // } - // console.log(stack.top()); - - const script = - "52210395f33d5a959556ba6b57298066baf468c2e5ab3cc58ddaf7166f057fae1655a7210246aae217f1102dde12a7e77203f7114de07f0068cfb1a3d825fff4ca2266737621028ace79c534a3b5c482b6cc446ea20d757e88c516ec054ae31c7a47863864904853ae"; - const sha256 = crypto - .createHash("sha256") - .update(Buffer.from(script, "hex")) - .digest("hex"); -}; - -testExecutor(); diff --git a/src/features/script/stack.ts b/src/features/script/stack.ts index 329d1d2..4e90cce 100644 --- a/src/features/script/stack.ts +++ b/src/features/script/stack.ts @@ -1,7 +1,9 @@ +import { Transaction } from "../transaction"; import { IStack } from "../../interfaces/store"; +import { executor } from "./executor"; export class Stack implements IStack { - private stack: T[] = []; + stack: T[] = []; push(key: T): void { this.stack.push(key); @@ -17,28 +19,43 @@ export class Stack implements IStack { } export class ScriptStack extends Stack { - private scriptSigAsm: string; - private scriptPubKeyAsm: string; private executionStates: boolean[] = [true]; + tx: Transaction; + index: number; - constructor(scriptSigAsm: string, scriptPubKeyAsm: string) { + constructor(tx: Transaction, index: number) { super(); - this.scriptSigAsm = scriptSigAsm; - this.scriptPubKeyAsm = scriptPubKeyAsm; + this.tx = tx; + this.index = index; + } + + clear() { + this.stack = []; + this.executionStates = [true]; } //load the scriptSigAsm into the stack as the input - initializeStack(): void { - if (this.scriptSigAsm) { - const scriptTokens = this.scriptSigAsm.split(" "); + execute(scrpt: string): string { + let script = `${scrpt}`; //copy the script + while (script.length != 0) { + const { script: newScript } = executor(this, script); + script = newScript; } + return this.top()!; } shouldExecute(): boolean { - return this.executionStates[this.executionStates.length - 1]; + let ans = true; + for (const state of this.executionStates) { + ans = ans && state; + } + return ans; } onIf(condition: boolean) { + if (this.shouldExecute()) { + this.stack.pop(); + } this.executionStates.push(condition); } diff --git a/src/features/script/utils.ts b/src/features/script/utils.ts index 742a926..1e3f337 100644 --- a/src/features/script/utils.ts +++ b/src/features/script/utils.ts @@ -5,7 +5,7 @@ export const getNextNBytes = (str: string, n: number): [string, string] => { }; export const parseHex = (str: string) => { - return parseInt(str, 10); + return parseInt(str, 16); }; export const parseNumber = (number: string) => { diff --git a/src/features/transaction/components/output.ts b/src/features/transaction/components/output.ts index 2abfdf6..3bb92bb 100644 --- a/src/features/transaction/components/output.ts +++ b/src/features/transaction/components/output.ts @@ -1,21 +1,22 @@ +import { TransactionType } from "../../../types"; import { Serializer } from "../../encoding/serializer"; import { TxOut } from "../types"; export class Output { - scriptpubkey: string; - scriptpubkey_asm: string; - scriptpubkey_type: string; - scriptpubkey_address?: string; - value: number; - constructor(outputConfig: TxOut) { - this.scriptpubkey = outputConfig.scriptpubkey; - this.scriptpubkey_asm = outputConfig.scriptpubkey_asm; - this.scriptpubkey_type = outputConfig.scriptpubkey_type; - this.scriptpubkey_address = outputConfig.scriptpubkey_address; - this.value = outputConfig.value; - } + scriptpubkey: string; + scriptpubkey_asm: string; + scriptpubkey_type: string; + scriptpubkey_address?: string; + value: number; + constructor(outputConfig: TxOut) { + this.scriptpubkey = outputConfig.scriptpubkey; + this.scriptpubkey_asm = outputConfig.scriptpubkey_asm; + this.scriptpubkey_type = outputConfig.scriptpubkey_type; + this.scriptpubkey_address = outputConfig.scriptpubkey_address; + this.value = outputConfig.value; + } - serialize() { - return Serializer.serializeOutput(this); - } + serialize() { + return Serializer.serializeOutput(this); + } } diff --git a/src/features/transaction/components/transaction.ts b/src/features/transaction/components/transaction.ts index 78ae7d7..84ba441 100644 --- a/src/features/transaction/components/transaction.ts +++ b/src/features/transaction/components/transaction.ts @@ -1,108 +1,236 @@ import { Input } from "./input"; import { Output } from "./output"; import { Serializer } from "../../encoding/serializer"; -import { reversify, sha256 } from "../../../utils"; -import { SigHash } from "../../../types"; +import { hash160, hash256, reversify, sha256 } from "../../../utils"; +import { SigHash, TransactionType } from "../../../types"; import cloneDeep from "lodash.clonedeep"; import { Errors } from "../errors"; import { calculateWeight } from "../utils"; +import { ZERO } from "../../../constants"; +import { TEMPLATES } from "../../encoding/witnessTemplates"; +import { compactSize } from "../../encoding/compactSize"; +import { collapseTextChangeRangesAcrossMultipleVersions } from "typescript"; //depending on static serializer methods, instead use dependency injection export class Transaction { - private _txid: string | undefined; //cache these values - private _wtxid: string | undefined; - private _serializedTx: string | undefined; - private _serializedWTx: string | undefined; - private _weight: number | undefined; - version: number; - locktime: number; - vin: Input[] = []; - vout: Output[] = []; - isSegwit = false; - - constructor(version: number, locktime: number) { - this.version = version; - this.locktime = locktime; - } + private _txid: string | undefined; //cache these values + private _wtxid: string | undefined; + private _serializedTx: string | undefined; + private _serializedWTx: string | undefined; + private _weight: number | undefined; + private _hashPrevouts: string | undefined; + private _hashSequence: string | undefined; + private _hashOutputs: string | undefined; - addInput(input: Input) { - this.resetState(); - if (input.witness && input.witness.length > 0) this.isSegwit = true; - this.vin.push(input); - } + version: number; + locktime: number; + vin: Input[] = []; + vout: Output[] = []; + isSegwit = false; - addOutput(output: Output) { - this.resetState(); - this.vout.push(output); - } + constructor(version: number, locktime: number) { + this.version = version; + this.locktime = locktime; + } - signWith(inputIndex: number, sighash: SigHash) { - const txCopy = cloneDeep(this); - let hashcode = Buffer.alloc(4); - switch (sighash) { - case SigHash.ALL: - for (let i = 0; i < txCopy.vin.length; i++) { - hashcode.writeUint32LE(1, 0); - if (i === inputIndex) { - const input = txCopy.vin[i].prevout; - if (!input) throw new Error(Errors.INVALID_INPUT); - txCopy.vin[i].scriptsig = input.scriptpubkey; - } else { - txCopy.vin[i].scriptsig = ""; - } - } - break; - case SigHash.ALL_ANYONECANPAY: - hashcode.writeUint32LE(0x81, 0); - txCopy.vin = [txCopy.vin[inputIndex]]; - const input = txCopy.vin[0].prevout; - if (!input) throw new Error(Errors.INVALID_INPUT); - txCopy.vin[0].scriptsig = input.scriptpubkey; - break; - } + addInput(input: Input) { + this.resetState(); + if (input.witness && input.witness.length > 0) this.isSegwit = true; + this.vin.push(input); + } - return txCopy.serializedTx + hashcode.toString("hex"); - } + addOutput(output: Output) { + this.resetState(); + this.vout.push(output); + } - get serializedTx() { - if (this._serializedTx) return this._serializedTx; - this._serializedTx = Serializer.serializeTx(this); - return this._serializedTx; - } + signWith( + inputIndex: number, + sighash: SigHash, + transactionType: TransactionType + ) { + if ( + transactionType === TransactionType.P2PKH || + transactionType === TransactionType.P2SH + ) { + const txCopy = cloneDeep(this); + let hashcode = Buffer.alloc(4); + switch (sighash) { + case SigHash.ALL: + for (let i = 0; i < txCopy.vin.length; i++) { + hashcode.writeUint32LE(1, 0); + if (i === inputIndex) { + const input = txCopy.vin[i].prevout; + if (!input) throw new Error(Errors.INVALID_INPUT); + txCopy.vin[i].scriptsig = input.scriptpubkey; + } else { + txCopy.vin[i].scriptsig = ""; + } + } + break; + case SigHash.ALL | SigHash.ANYONE_CAN_PAY: + hashcode.writeUint32LE(0x81, 0); + txCopy.vin = [txCopy.vin[inputIndex]]; + const input = txCopy.vin[0].prevout; + if (!input) throw new Error(Errors.INVALID_INPUT); + txCopy.vin[0].scriptsig = input.scriptpubkey; + break; + } - get serializedWTx() { - if (this._serializedWTx) return this._serializedWTx; - this._serializedWTx = Serializer.serializeWTx(this); - return this._serializedWTx; + return txCopy.serializedTx + hashcode.toString("hex"); } + let serializedWTx = ""; - get txid() { - if (this._txid) return this._txid; - const txid = reversify(sha256(sha256(this.serializedTx))); - this._txid = txid; - return this._txid; + const version = Buffer.alloc(4); + version.writeUint32LE(this.version, 0); + + let prevouts = ""; + let sequences = ""; + let hashPrevouts = ""; + let hashSequence = ""; + if (sighash >= SigHash.ANYONE_CAN_PAY) hashPrevouts = ZERO; + else { + if (this._hashPrevouts) { + hashPrevouts = this._hashPrevouts; + } else { + for (const input of this.vin) { + prevouts += reversify(input.txid); + const prevoutVout = Buffer.alloc(4); + prevoutVout.writeUint32LE(input.vout, 0); + prevouts += prevoutVout.toString("hex"); + } + hashPrevouts = hash256(prevouts); + this._hashPrevouts = hashPrevouts; + } } - get wtxid() { - if (!this.isSegwit) return this.txid; - if (this._wtxid) return this._wtxid; - const wtxid = reversify(sha256(sha256(this.serializedWTx))); - this._wtxid = wtxid; - return this._wtxid; + if ( + sighash >= SigHash.ANYONE_CAN_PAY || + sighash === SigHash.SINGLE || + sighash === SigHash.NONE + ) + hashSequence = ZERO; + else { + if (this._hashSequence) { + hashSequence = this._hashSequence; + } else { + for (const input of this.vin) { + const sequence = Buffer.alloc(4); + sequence.writeUint32LE(input.sequence, 0); + sequences += sequence.toString("hex"); + } + hashSequence = hash256(sequences); + this._hashSequence = hashSequence; + } } - get weight() { - if (this._weight) return this._weight; - const weight = calculateWeight(this, this.isSegwit); - this._weight = weight; - return this._weight; + let outputs = ""; + let hashOutputs = ""; + if ( + (sighash & 0x1f) === SigHash.SINGLE || + (sighash & 0x1f) === SigHash.NONE + ) { + if ( + (sighash & 0x1f) === SigHash.SINGLE && + inputIndex < this.vout.length + ) { + hashOutputs = hash256(this.vout[inputIndex].serialize()); + } else hashOutputs = ZERO; + } else { + if (this._hashOutputs) { + hashOutputs = this._hashOutputs; + } else { + for (const output of this.vout) { + outputs += output.serialize(); + } + hashOutputs = hash256(outputs); + this._hashOutputs = hashOutputs; + } } - private resetState() { - //remove cache as it gets invalidated when tx gets changed such as when you're adding input or outputs; - this._txid = undefined; - this._wtxid = undefined; - this._serializedTx = undefined; - this._serializedWTx = undefined; + const input = this.vin[inputIndex]; + if (!input) throw new Error(Errors.INVALID_VOUT); + const vout = Buffer.alloc(4); + vout.writeUint32LE(input.vout, 0); + const outpoint = reversify(input.txid) + vout.toString("hex"); + + if (!input.witness) throw new Error(Errors.INVALID_WITNESS); + let scriptCode = ""; + if (transactionType === TransactionType.P2WPKH) { + if (!input.witness[1]) throw new Error(Errors.PUBKEY_NOT_FOUND); + scriptCode = TEMPLATES.P2WPKH(hash160(input.witness[1])); + } else { + const script = input.witness[input.witness.length - 1]; + const scriptLength = compactSize(BigInt(script.length / 2)); + scriptCode = scriptLength.toString("hex") + script; } + + if (!input.prevout) throw new Error(Errors.INVALID_PREVOUT); + const amount = Buffer.alloc(8); + amount.writeBigInt64LE(BigInt(input.prevout.value), 0); + + const nSequence = Buffer.alloc(4); + nSequence.writeUint32LE(input.sequence, 0); + + const nLocktime = Buffer.alloc(4); + nLocktime.writeUint32LE(this.locktime, 0); + + const hashcode = Buffer.alloc(4); + hashcode.writeUint32LE(sighash, 0); + + serializedWTx += version.toString("hex"); + serializedWTx += hashPrevouts; + serializedWTx += hashSequence; + serializedWTx += outpoint; + serializedWTx += scriptCode; + serializedWTx += amount.toString("hex"); + serializedWTx += nSequence.toString("hex"); + serializedWTx += hashOutputs; + serializedWTx += nLocktime.toString("hex"); + serializedWTx += hashcode.toString("hex"); + + return serializedWTx; + } + + get serializedTx() { + if (this._serializedTx) return this._serializedTx; + this._serializedTx = Serializer.serializeTx(this); + return this._serializedTx; + } + + get serializedWTx() { + if (this._serializedWTx) return this._serializedWTx; + this._serializedWTx = Serializer.serializeWTx(this); + return this._serializedWTx; + } + + get txid() { + if (this._txid) return this._txid; + const txid = reversify(sha256(sha256(this.serializedTx))); + this._txid = txid; + return this._txid; + } + + get wtxid() { + if (!this.isSegwit) return this.txid; + if (this._wtxid) return this._wtxid; + const wtxid = reversify(sha256(sha256(this.serializedWTx))); + this._wtxid = wtxid; + return this._wtxid; + } + + get weight() { + if (this._weight) return this._weight; + const weight = calculateWeight(this, this.isSegwit); + this._weight = weight; + return this._weight; + } + + private resetState() { + //remove cache as it gets invalidated when tx gets changed such as when you're adding input or outputs; + this._txid = undefined; + this._wtxid = undefined; + this._serializedTx = undefined; + this._serializedWTx = undefined; + } } diff --git a/src/features/transaction/errors.ts b/src/features/transaction/errors.ts index af37416..1a27656 100644 --- a/src/features/transaction/errors.ts +++ b/src/features/transaction/errors.ts @@ -1,3 +1,7 @@ export const Errors = { INVALID_INPUT: "INVALID INPUT", + INVALID_WITNESS: "INVALID WITNESS", + INVALID_VOUT: "INVALID VOUT", + PUBKEY_NOT_FOUND: "PUBKEY NOT FOUND", + INVALID_PREVOUT: "INVALID PREVOUT", }; diff --git a/src/features/transaction/types.ts b/src/features/transaction/types.ts index 8b06fa3..7669aee 100644 --- a/src/features/transaction/types.ts +++ b/src/features/transaction/types.ts @@ -1,3 +1,5 @@ +import { TransactionType } from "../../types"; + export type Tx = { version: number; locktime: number; diff --git a/src/features/transaction/utils.ts b/src/features/transaction/utils.ts index 7319f08..2f72be8 100644 --- a/src/features/transaction/utils.ts +++ b/src/features/transaction/utils.ts @@ -1,6 +1,7 @@ +import { TransactionType } from "../../types"; import { compactSize } from "../encoding/compactSize"; import { Serializer } from "../encoding/serializer"; -import { Transaction } from "./transaction"; +import { Transaction } from "./components/transaction"; const sizeMultiplier = (val: Buffer | string, multiplier: number) => { return val instanceof Buffer @@ -61,3 +62,23 @@ export const calculateWeight = (tx: Transaction, isSegwit: boolean = false) => { return isSegwit ? nonSegwitWeight + segwitWeight : nonSegwitWeight; }; + +export const getTransactionType = (tx: Transaction, index: number) => { + const input = tx.vin[index]; + if (!input || !input.prevout) throw new Error("Invalid input"); + + const transactionType = input.prevout.scriptpubkey_type as TransactionType; + if ( + transactionType === TransactionType.P2TR || + transactionType === TransactionType.OP_RETURN || + transactionType === TransactionType.P2WSH || + transactionType === TransactionType.P2WPKH || + transactionType === TransactionType.P2PKH + ) + return transactionType; + + if (!input.witness) return TransactionType.P2SH; + + if (input.scriptsig.length === 46) return TransactionType.P2WPKH; + return TransactionType.P2WSH; +}; diff --git a/src/features/validator/hash.ts b/src/features/validator/hash.ts index 925b09d..97c82b1 100644 --- a/src/features/validator/hash.ts +++ b/src/features/validator/hash.ts @@ -1,8 +1,6 @@ import { TransactionType } from "../../types"; -import * as crypto from "crypto"; -import { asmToHex, hash160, sha256 } from "../../utils"; +import { hash160, sha256 } from "../../utils"; import { OP_CODES } from "../script/op_codes"; -import { collapseTextChangeRangesAcrossMultipleVersions } from "typescript"; import { Transaction } from "../transaction"; //in p2sh p2wsh @@ -10,57 +8,81 @@ import { Transaction } from "../transaction"; //hash160 of the inner redeem script should be equal to the hash in the script pubkey //eg 0d9ef76964c23e940ebcddde868c1089dfdb52147364da01ee92438dfb7c9375 -export const HashValidator = (tx: Transaction) => { - let lockingScript = ""; - let script = ""; - let hash = ""; - let publicKey = ""; +//in p2sh p2wpkh +// eg 3d2020595c0b78c6a269689dde42f7d5a39b4b6558d86643e7a9b0b976d672bf +export const HashValidator = (tx: Transaction) => { for (const input of tx.vin) { if (!input.prevout) continue; switch (input.prevout.scriptpubkey_type) { - case TransactionType.P2PKH: + case TransactionType.P2PKH: { const scriptAsmTokens = input.scriptsig_asm.split(" "); - publicKey = scriptAsmTokens[scriptAsmTokens.length - 1]; + const publicKey = scriptAsmTokens[scriptAsmTokens.length - 1]; - hash = hash160(publicKey); + const hash = hash160(publicKey); - lockingScript = input.prevout.scriptpubkey; - script = `${OP_CODES.OP_DUP}${OP_CODES.OP_HASH160}${OP_CODES.OP_PUSHBYTES_20}${hash}${OP_CODES.OP_EQUALVERIFY}${OP_CODES.OP_CHECKSIG}`; + const lockingScript = input.prevout.scriptpubkey; + const script = `${OP_CODES.OP_DUP}${OP_CODES.OP_HASH160}${OP_CODES.OP_PUSHBYTES_20}${hash}${OP_CODES.OP_EQUALVERIFY}${OP_CODES.OP_CHECKSIG}`; if (script !== lockingScript) return false; break; - case TransactionType.P2SH: - const inputScript = input.scriptsig_asm.split(" "); - const hex = asmToHex(inputScript[inputScript.length - 1]); - lockingScript = input.prevout.scriptpubkey; + } + case TransactionType.P2SH: { + const asmTokens = input.scriptsig_asm.split(" "); + const hex = asmTokens[asmTokens.length - 1]; + const lockingScript = input.prevout.scriptpubkey; const scriptHash = hash160(hex); - script = `${OP_CODES.OP_HASH160}${OP_CODES.OP_PUSHBYTES_20}${scriptHash}${OP_CODES.OP_EQUAL}`; - if (script !== lockingScript) return false; + const script = `${OP_CODES.OP_HASH160}${OP_CODES.OP_PUSHBYTES_20}${scriptHash}${OP_CODES.OP_EQUAL}`; + if (script !== lockingScript) { + return false; + } + + if (tx.isSegwit) { + if (!input.witness) continue; + if (input.scriptsig.length === 46) { + //p2sh-p2wpkh + const pubkeyHash = hash160(input.witness[input.witness.length - 1]); + const scriptsig = `${OP_CODES.OP_PUSHBYTES_22}${OP_CODES.OP_0}${OP_CODES.OP_PUSHBYTES_20}${pubkeyHash}`; + if (scriptsig !== input.scriptsig) return false; + } else if (input.scriptsig.length === 70) { + //p2sh-p2wsh + const witnessScriptHash = sha256( + input.witness[input.witness.length - 1] + ); + const scriptsig = `${OP_CODES.OP_PUSHBYTES_34}${OP_CODES.OP_0}${OP_CODES.OP_PUSHBYTES_32}${witnessScriptHash}`; + if (scriptsig !== input.scriptsig) return false; + } else { + return false; + } + } + break; - case TransactionType.P2WPKH: + } + case TransactionType.P2WPKH: { if (!input.witness || !input.witness[1]) return false; - publicKey = input.witness[1]; + const publicKey = input.witness[1]; - hash = hash160(publicKey); - lockingScript = input.prevout.scriptpubkey; - script = `${OP_CODES.OP_0}${OP_CODES.OP_PUSHBYTES_20}${hash}`; + const hash = hash160(publicKey); + const lockingScript = input.prevout.scriptpubkey; + const script = `${OP_CODES.OP_0}${OP_CODES.OP_PUSHBYTES_20}${hash}`; if (script !== lockingScript) return false; break; - case TransactionType.P2WSH: + } + case TransactionType.P2WSH: { if (!input.witness) return false; const witnessScript = input.witness[input.witness.length - 1]; if (!witnessScript) return false; - lockingScript = input.prevout.scriptpubkey; - script = `${OP_CODES.OP_0}${OP_CODES.OP_PUSHBYTES_32}${sha256( + const lockingScript = input.prevout.scriptpubkey; + const script = `${OP_CODES.OP_0}${OP_CODES.OP_PUSHBYTES_32}${sha256( witnessScript )}`; if (script !== lockingScript) return false; break; + } } } diff --git a/src/features/validator/length.ts b/src/features/validator/length.ts index b8e6fdb..f2ed2c1 100644 --- a/src/features/validator/length.ts +++ b/src/features/validator/length.ts @@ -1,10 +1,12 @@ //validates the length of the scriptpubkeyaddress -import { Transaction, TransactionType } from "../../types"; +import { TransactionType } from "../../types"; +import { Transaction } from "../transaction"; //validate the length of the scriptpubkey export const LengthValidator = (tx: Transaction) => { for (const input of tx.vin) { + if (!input.prevout) continue; if (input.prevout.scriptpubkey.length <= 0) return false; switch (input.prevout.scriptpubkey_type) { case TransactionType.P2PKH: @@ -18,7 +20,7 @@ export const LengthValidator = (tx: Transaction) => { if (input.prevout.scriptpubkey.length !== 44) { return false; } - if (input.witness.length !== 2) return false; + if (!input.witness || input.witness.length !== 2) return false; break; case TransactionType.P2WSH: break; diff --git a/src/features/validator/script.ts b/src/features/validator/script.ts new file mode 100644 index 0000000..b484581 --- /dev/null +++ b/src/features/validator/script.ts @@ -0,0 +1,70 @@ +import { SigHash, TransactionType } from "../../types"; +import { hash256 } from "../../utils"; +import { extractRSFromSignature } from "../encoding/serializer"; +import { FALSE } from "../script/constants"; +import { ScriptStack } from "../script/stack"; +import { Input, Output, Transaction } from "../transaction"; + +import { ECPairFactory } from "ecpair"; +import * as ecc from "tiny-secp256k1"; + +const ECPair = ECPairFactory(ecc); + +export const ScriptValidator = (tx: Transaction) => { + for (let i = 0; i < tx.vin.length; i++) { + const input = tx.vin[i]; + if (!input.prevout) continue; + + switch (input.prevout.scriptpubkey_type) { + case TransactionType.P2SH: { + const script = new ScriptStack(tx, i); + script.execute(input.scriptsig); + script.execute(input.prevout.scriptpubkey); + if (script.top() === FALSE) return false; + + script.clear(); + + if (input.witness) { + if (input.scriptsig.length === 70) { + for (let i = 0; i < input.witness.length - 1; i++) { + if (input.witness[i] === "") script.push(FALSE); + else script.push(input.witness[i]); + } + + try { + script.execute(input.witness[input.witness.length - 1]); //final value of the witness is the redeem script + if (script.top() === FALSE) return false; + } catch (err) { + console.log(i); + console.log((err as Error).message); + return false; + } + } else continue; + } + + break; + } + case TransactionType.P2WSH: { + const script = new ScriptStack(tx, i); + if (!input.witness) return false; + for (let i = 0; i < input.witness.length - 1; i++) { + if (input.witness[i] === "") script.push(FALSE); + else script.push(input.witness[i]); + } + try { + script.execute(input.witness[input.witness.length - 1]); //final value of the witness is the redeem script + if (script.top() === FALSE) return false; + } catch (err) { + console.log(i); + console.log((err as Error).message); + return false; + } + break; + } + default: { + continue; + } + } + } + return true; +}; diff --git a/src/features/validator/signature.ts b/src/features/validator/signature.ts index f8c19b2..204ad72 100644 --- a/src/features/validator/signature.ts +++ b/src/features/validator/signature.ts @@ -1,143 +1,130 @@ import { SigHash, TransactionType } from "../../types"; import { Transaction } from "../transaction"; -import { hash160, sha256 } from "../../utils"; +import { hash160, hash256, sha256 } from "../../utils"; import * as asn1js from "asn1js"; import { ECPairFactory } from "ecpair"; import * as ecc from "tiny-secp256k1"; -import { Serializer } from "../encoding/serializer"; const ECPair = ECPairFactory(ecc); const removePadding = (r: string, s: string) => { - //remove der padding if length === 66 - if (r.length === 66) { - r = r.slice(2); - } - if (s.length === 66) { - s = s.slice(2); - } - - //add padding to make it 32 bytes for ecpair - r = r.padStart(64, "0"); - s = s.padStart(64, "0"); + //remove der padding if length === 66 + if (r.length === 66) { + r = r.slice(2); + } + if (s.length === 66) { + s = s.slice(2); + } + + //add padding to make it 32 bytes for ecpair + r = r.padStart(64, "0"); + s = s.padStart(64, "0"); + + return r + s; +}; - return r + s; +export const extractSighashFromSignature = (signature: string) => { + return parseInt(signature.slice(signature.length - 2), 16) as SigHash; }; -const extractSighashFromSignature = (signature: string) => { - return signature.slice(signature.length - 2) as SigHash; +export const signatureFromDER = (derEncodedSignature: string) => { + const asn1 = asn1js.fromBER(Buffer.from(derEncodedSignature, "hex")); + + let r = Buffer.from( + (asn1.result.valueBlock as any).value[0].valueBlock.valueHexView + ).toString("hex"); + let s = Buffer.from( + (asn1.result.valueBlock as any).value[1].valueBlock.valueHexView + ).toString("hex"); + + const signature = removePadding(r, s); + return signature; }; export const signatureValidator = (tx: Transaction): boolean => { - for (let i = 0; i < tx.vin.length; i++) { - const input = tx.vin[i]; - if (!input.prevout) return true; //there is nothing to validate - switch (input.prevout.scriptpubkey_type) { - case TransactionType.P2PKH: { - const asmTokens = input.scriptsig_asm.split(" "); - const derEncodedSignature = asmTokens[1]; - const pubkey = asmTokens[asmTokens.length - 1]; - const sighash = - extractSighashFromSignature(derEncodedSignature); - const asn1 = asn1js.fromBER( - Buffer.from(derEncodedSignature, "hex") - ); - - let r = Buffer.from( - (asn1.result.valueBlock as any).value[0].valueBlock - .valueHexView - ).toString("hex"); - let s = Buffer.from( - (asn1.result.valueBlock as any).value[1].valueBlock - .valueHexView - ).toString("hex"); - - const signature = removePadding(r, s); - - const ecpair = ECPair.fromPublicKey(Buffer.from(pubkey, "hex")); //p2wpkh pubkeys must be compressed - - const msg = tx.signWith(i, sighash); - const hash = sha256(sha256(msg)); - const valid = ecpair.verify( - Buffer.from(hash, "hex"), - Buffer.from(signature, "hex") - ); - if (!valid) return false; - break; - } - - case TransactionType.P2WPKH: { - if (!input.witness) return false; - const derEncodedSignature = input.witness[0]; - const pubkey = input.witness[1]; - const pubkeyHash = hash160(pubkey); - const pubkeyInScript = input.prevout.scriptpubkey.slice(4); - - if (pubkeyHash !== pubkeyInScript) return false; - - const sighash = - extractSighashFromSignature(derEncodedSignature); - - const asn1 = asn1js.fromBER( - Buffer.from(derEncodedSignature, "hex") - ); - - let r = Buffer.from( - (asn1.result.valueBlock as any).value[0].valueBlock - .valueHexView - ).toString("hex"); - let s = Buffer.from( - (asn1.result.valueBlock as any).value[1].valueBlock - .valueHexView - ).toString("hex"); - - const signature = removePadding(r, s); - - const ecpair = ECPair.fromPublicKey( - Buffer.from(pubkey, "hex"), - { compressed: true } - ); - const msg = Serializer.serializeWitness(tx, i, sighash); - const hash = sha256(sha256(msg)); - const valid = ecpair.verify( - Buffer.from(hash, "hex"), - Buffer.from(signature, "hex") - ); - if (!valid) { - console.log("valid: ", valid); - return false; - } - break; - } + for (let i = 0; i < tx.vin.length; i++) { + const input = tx.vin[i]; + if (!input.prevout) return true; //there is nothing to validate + switch (input.prevout.scriptpubkey_type) { + case TransactionType.P2PKH: { + const asmTokens = input.scriptsig_asm.split(" "); + const derEncodedSignature = asmTokens[1]; + const pubkey = asmTokens[asmTokens.length - 1]; + + const sighash = extractSighashFromSignature(derEncodedSignature); + const signature = signatureFromDER(derEncodedSignature); + + const ecpair = ECPair.fromPublicKey(Buffer.from(pubkey, "hex")); //p2wpkh pubkeys must be compressed + + const msg = tx.signWith(i, sighash, TransactionType.P2PKH); + const hash = sha256(sha256(msg)); + const valid = ecpair.verify( + Buffer.from(hash, "hex"), + Buffer.from(signature, "hex") + ); + if (!valid) return false; + break; + } + + case TransactionType.P2WPKH: { + if (!input.witness) return false; + const derEncodedSignature = input.witness[0]; + const pubkey = input.witness[1]; + const pubkeyHash = hash160(pubkey); + const pubkeyInScript = input.prevout.scriptpubkey.slice(4); + + if (pubkeyHash !== pubkeyInScript) return false; + + const sighash = extractSighashFromSignature(derEncodedSignature); + const signature = signatureFromDER(derEncodedSignature); + + const ecpair = ECPair.fromPublicKey(Buffer.from(pubkey, "hex"), { + compressed: true, + }); + + const msg = tx.signWith(i, sighash, TransactionType.P2WPKH); + const hash = hash256(msg); + const valid = ecpair.verify( + Buffer.from(hash, "hex"), + Buffer.from(signature, "hex") + ); + if (!valid) { + console.log(input.txid, input.vout); + return false; } + break; + } + + case TransactionType.P2SH: { + // if (tx.isSegwit) { + if (!input.witness) continue; + if (input.scriptsig.length === 46) { + const derEncodedSignature = input.witness[0]; + const pubkey = input.witness[1]; + + const sighash = extractSighashFromSignature(derEncodedSignature); + const signature = signatureFromDER(derEncodedSignature); + + const ecpair = ECPair.fromPublicKey(Buffer.from(pubkey, "hex"), { + compressed: true, + }); + const msg = tx.signWith(i, sighash, TransactionType.P2WPKH); + const hash = hash256(msg); + const valid = ecpair.verify( + Buffer.from(hash, "hex"), + Buffer.from(signature, "hex") + ); + if (!valid) { + return false; + } + break; + } else if (input.scriptsig.length === 70) continue; + else return false; + } } + // } + } - return true; + return true; }; - -// const derEncodedSignature = -// "304402203609e17b84f6a7d30c80bfa610b5b4542f32a8a0d5447a12fb1366d7f01cc44a0220573a954c4518331561406f90300e8f3358f51928d43c212a8caed02de67eebee"; -// const pubkey = -// "025476c2e83188368da1ff3e292e7acafcdb3566bb0ad253f62fc70f07aeee6357"; -// const sighash = extractSighashFromSignature(derEncodedSignature); -// const asn1 = asn1js.fromBER(Buffer.from(derEncodedSignature, "hex")); - -// let r = Buffer.from( -// (asn1.result.valueBlock as any).value[0].valueBlock.valueHexView -// ).toString("hex"); -// let s = Buffer.from( -// (asn1.result.valueBlock as any).value[1].valueBlock.valueHexView -// ).toString("hex"); - -// const signature = removePadding(r, s); - -// const ecpair = ECPair.fromPublicKey(Buffer.from(pubkey, "hex")); //p2wpkh pubkeys must be compressed - -// const hash = "c37af31116d1b27caf68aae9e3ac82f1477929014d5b917657d0eb49478cb670"; -// const valid = ecpair.verify( -// Buffer.from(hash, "hex"), -// Buffer.from(signature, "hex") -// ); - -// console.log(valid); diff --git a/src/index.ts b/src/index.ts index affd5e2..f833261 100644 --- a/src/index.ts +++ b/src/index.ts @@ -10,111 +10,70 @@ import * as path from "path"; import { signatureValidator } from "./features/validator/signature"; import { Input, Output, Transaction, Tx } from "./features/transaction"; import { Transaction as BitcoinTx } from "bitcoinjs-lib"; +import { ScriptValidator } from "./features/validator/script"; +import { collapseTextChangeRangesAcrossMultipleVersions } from "typescript"; (async () => { - const files = fs.readdirSync("./mempool"); - const outputFile = path.join(__dirname, "..", "output.txt"); - let mempool: Transaction[] = []; + const files = fs.readdirSync("./mempool"); + const outputFile = path.join(__dirname, "..", "output.txt"); + let mempool: Transaction[] = []; - const blockSize = 4 * 1e6; + const blockSize = 4 * 1e6; - for (const file of files) { - // const tx = JSON.parse(fs.readFileSync(`./mempool/${file}`, "utf8")) as Tx; - const tx = { - version: 1, - locktime: 0, - vin: [ - { - txid: "f3898029a8699bd8b71dc6f20e7ec2762a945a30d6a9f18034ce92a9d6cdd26c", - vout: 1, - prevout: { - scriptpubkey: - "00144639af50cc9b5fcc4fc09644c0140078b2d2356c", - scriptpubkey_asm: - "OP_0 OP_PUSHBYTES_20 4639af50cc9b5fcc4fc09644c0140078b2d2356c", - scriptpubkey_type: "v0_p2wpkh", - scriptpubkey_address: - "bc1qgcu675xvnd0ucn7qjezvq9qq0zedydtv07pqxg", - value: 338586, - }, - scriptsig: "", - scriptsig_asm: "", - witness: [ - "30450221008f05cd9bc6679ad3b1e5316370a71779d587d9ff9ceaebb9dfa97288e6abf7fb02203951f6ea925965c7719039984929bac73e7934c86237dc40d72459a694f378ec01", - "02bb0543170d1752bfb0d173724effdc58a708c53d5154e56364e6cb19fd993a73", - ], - is_coinbase: false, - sequence: 4294967293, - }, - ], - vout: [ - { - scriptpubkey: - "5120b09182bc1fc70f752d4d885ec8e68156325b75881de16bb1b5d3e3bf53ff01fd", - scriptpubkey_asm: - "OP_PUSHNUM_1 OP_PUSHBYTES_32 b09182bc1fc70f752d4d885ec8e68156325b75881de16bb1b5d3e3bf53ff01fd", - scriptpubkey_type: "v1_p2tr", - scriptpubkey_address: - "bc1pkzgc90qlcu8h2t2d3p0v3e5p2ce9kavgrhskhvd4603m75llq87s2eyxqn", - value: 2576, - }, - { - scriptpubkey: - "00144639af50cc9b5fcc4fc09644c0140078b2d2356c", - scriptpubkey_asm: - "OP_0 OP_PUSHBYTES_20 4639af50cc9b5fcc4fc09644c0140078b2d2356c", - scriptpubkey_type: "v0_p2wpkh", - scriptpubkey_address: - "bc1qgcu675xvnd0ucn7qjezvq9qq0zedydtv07pqxg", - value: 333840, - }, - ], - }; + for (const file of files) { + const tx = JSON.parse(fs.readFileSync(`./mempool/${file}`, "utf8")); - // mempool.set(`${file}`.split(".")[0], { - // ...tx, - // txid: `${file}`.split(".")[0], - // }); - const transaction = new Transaction(tx.version, tx.locktime); - for (const input of tx.vin) { - transaction.addInput(new Input(input)); - } + const transaction = new Transaction(tx.version, tx.locktime); + for (const input of tx.vin) { + transaction.addInput(new Input(input)); + } - for (const output of tx.vout) { - transaction.addOutput(new Output(output)); - } - mempool.push(transaction); - break; + for (const output of tx.vout) { + transaction.addOutput(new Output(output)); } + mempool.push(transaction); + } + + let validTxs = []; - for (const tx of mempool) { - signatureValidator(tx); + for (const tx of mempool) { + if ( + !ScriptValidator(tx) || + !LengthValidator(tx) || + !HashValidator(tx) || + !signatureValidator(tx) + ) { + console.log(tx); + continue; } + validTxs.push(tx); + } + + const txs = []; - // let txs = []; - // mempool.sort((txA, txB) => feePerByte(txB) - feePerByte(txA)); - // let blockWeight = 0; - // for (const tx of mempool) { - // if (tx.weight + blockWeight > blockSize) break; + validTxs.sort((txA, txB) => feePerByte(txB) - feePerByte(txA)); + let blockWeight = 0; + for (const tx of validTxs) { + if (tx.weight + blockWeight > blockSize) break; - // txs.push(tx); - // blockWeight += tx.weight; - // } + txs.push(tx); + blockWeight += tx.weight; + } - // try { - // fs.unlinkSync(outputFile); - // } catch (err) {} - // const { serializedBlock, blockHash, coinbaseTransaction } = mine(txs); + try { + fs.unlinkSync(outputFile); + } catch (err) {} + const { serializedBlock, blockHash, coinbaseTransaction } = mine(txs); - // fs.writeFileSync(outputFile, serializedBlock); - // fs.appendFileSync(outputFile, "\n"); - // fs.appendFileSync(outputFile, coinbaseTransaction.serializedWTx); - // fs.appendFileSync(outputFile, "\n"); - // fs.appendFileSync(outputFile, coinbaseTransaction.txid); - // fs.appendFileSync(outputFile, "\n"); - // for (const tx of txs) { - // fs.appendFileSync(outputFile, tx.txid); - // fs.appendFileSync(outputFile, "\n"); - // } - // console.log(fs.readFileSync(outputFile, "utf8").split("\n").length); + fs.writeFileSync(outputFile, serializedBlock); + fs.appendFileSync(outputFile, "\n"); + fs.appendFileSync(outputFile, coinbaseTransaction.serializedWTx); + fs.appendFileSync(outputFile, "\n"); + fs.appendFileSync(outputFile, coinbaseTransaction.txid); + fs.appendFileSync(outputFile, "\n"); + for (const tx of txs) { + fs.appendFileSync(outputFile, tx.txid); + fs.appendFileSync(outputFile, "\n"); + } + console.log(fs.readFileSync(outputFile, "utf8").split("\n").length); })(); diff --git a/src/types.ts b/src/types.ts index b6b3447..242ac43 100644 --- a/src/types.ts +++ b/src/types.ts @@ -8,10 +8,8 @@ export enum TransactionType { } export enum SigHash { - ALL = "01", //all inputs and outputs - NONE = "02", //all inputs and no output - SINGLE = "03", //all inputs and output with the same index - ALL_ANYONECANPAY = "81", //own input and anyone can pay - NONE_ANYONECANPAY = "82", //own input and no output - SINGLE_ANYONECANPAY = "83", //own input and output with the same index + ALL = 0x01, //all inputs and outputs + NONE = 0x02, //all inputs and no output + SINGLE = 0x03, //all inputs and output with the same index + ANYONE_CAN_PAY = 0x80, } diff --git a/src/utils.ts b/src/utils.ts index 80eeeb2..6b385bb 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -2,40 +2,37 @@ import * as crypto from "crypto"; import { OP_CODES } from "./features/script/op_codes"; export const hash160 = (str: string) => { - return crypto - .createHash("ripemd160") - .update(Buffer.from(sha256(str), "hex")) - .digest("hex"); + return crypto + .createHash("ripemd160") + .update(Buffer.from(sha256(str), "hex")) + .digest("hex"); }; export const hash256 = (str: string) => { - return crypto - .createHash("sha256") - .update(Buffer.from(sha256(str), "hex")) - .digest("hex"); + return sha256(sha256(str)); }; export const sha256 = (str: string) => { - return crypto - .createHash("sha256") - .update(Buffer.from(str, "hex")) - .digest("hex"); + return crypto + .createHash("sha256") + .update(Buffer.from(str, "hex")) + .digest("hex"); }; export const asmToHex = (asm: string) => { - const tokens = asm.split(" ") as OP_CODES[]; - return [...new Array(tokens.length)] - .map((_, index) => OP_CODES[tokens[index]]) - .map((token, index) => (!token ? tokens[index] : token)) - .join(""); + const tokens = asm.split(" ") as OP_CODES[]; + return [...new Array(tokens.length)] + .map((_, index) => OP_CODES[tokens[index]]) + .map((token, index) => (!token ? tokens[index] : token)) + .join(""); }; //reverses every byte of the string - every 2 hex chars export const reversify = (str: string) => { - return str - .match(/.{1,2}/g)! - .reverse() - .join(""); + return str + .match(/.{1,2}/g)! + .reverse() + .join(""); }; // console.log(