Blob
#0x01e5b18ce0baee02c89bbd855c5f1347b43fd840765f7dad439c9b8e3e72edc0
Versioned Hash:
0x01e5b18ce0baee02c89bbd855c5f1347b43fd840765f7dad439c9b8e3e72edc0
Commitment:
0xa7ce6668913427b892609db840d42407c1120428d36db98105e29d0e4ca678ce330701c098ee8f6b7dd6ddb8ec7b4208
Proof:
0xa962c4b250571cf67ffa80a35ffafcfb2aafaabc276edef88294b62a427c39f099dc9fe1ab81f4298ea99a2ddd90e281
Size:
128 KiB
Transaction Hash:
Block:
Data:
0x38000078e1f978deb978db00a95f4906ede499c0783039b49ab773c70000000018c378daecfd7738dcdbda3f8e4fd1a2a410bdf716bd134417bd0549442f11843f246230448fdec95bef25ea48d4e8228828d1820421889e1884df65b3f7c9392e13e639fb399fb39fef75e68f5c3356deaf59eb5ef7bacb6bad750f4203b4a32e0ac4f07fdf57477b6d94c3bb1dc791a9f3866723f2b65155abd9832f9e75751e9b5470b0bb3517a091e836bc84fb71a2593938634e22961aedeb7c69f7203335fa878dd536ba0139b8754d1177d331a20a4e8497192b94243e249251d987290631019cc09711681ad87ef3d9249feae2112237e053345445769bc9dfe97a6f2b606553700ed372feb0164cd4b17e1efd824e3d91c91122ef09228d9095ce1d22e4e1756117eff35773defa3664d1b03d7e2a8f5b49343c69db15853a22ff093dfa0c949eeae168a99c13fd8abe06f755090d6a33734a92c1cfdedceceb516226a8230a9e20ae1936dfb829fa51b71fc2900bb7a9976d8951848891341ef432201b9782453fe8a38e287c82e82782bbabf1c0df299c2bbcd9b57a0b7af5074b191a162d87892d793942b38b097544d1a65a702708096e055ece4ccd544886e42c8bcfcf49d0ee7b967c50bdb02e7e97933b341dabac880c863ae65524d8a5163d8804dbfb92ecc3a1e4c3c670922fa50f637459b253d7968b24791eecb8e52b292f31bdb0db0560b5603429e5cd20d04fafb916eee229cffc0ebfb03c41191337b67b8405b13fb7bba5aee0a65da4a3330ac7e0aeb895acd3f040481074ea0b1af1f3a70bec1ceacfbe4b7f87073bc6b48662d3182e54d19cf6b4754dd9dc2f2020aad631d62a8fe4684ffd7a055722d0192f5f663e4003afdb48f09d79738504e2acbb0d49956dfd03df7d552258da3efdb910f7ce3c7c40f493097fd3eacd102b9ff57eec3be3770fe2b9164927c3df656c61d863f8cc601c2b07d04d6a220763222ee9b0bdffe6703c5005b12ec53c5f605b3ffaa879fba38f06ea1329f12672a4a6a73ae43e804ee03c2b843c47d4b64f34d761b7ad5096c796bd53663e26dcfe883ae6b5bf290729f7b17290a93752fd659423818569f5597f78af4f781525c13dbdb980609da2339463f9174d34668c92265bd97952a73d0f5deea54320396aeeac4db6bf275e744add9d7f39cd5f545f62ae9f3928d762b3d0c997fa04250db822c04dafe338ffa365337eaf6bbdf083af16f383ba2cbffbdd0f55b13cbeb6e94b1e2b0705838f61f90e8671ee9beeab05fb561f18459a3f9e83aeeb1a78831197d93a7605f58994fe4339705a09cb4de3da474979f4a2f0dce655bb17d48a825a84bf728464aac5918c5ba18e29fb93e5f871a21c6a87edff972dc73a5f5a8ec5c7aa0c0490dcd32d07dcea6ce5e007d014f7ce4fc70461eb1208521a7fac76ed4a6e5d6f2595d372dd44cc3d88fa26d40198ac3765513a54b18f1c2ac7b25ebe1f6284cdc7174cbe3b6f4345dd2c6aaa1879ac1c96169e57c80d5f1d2d616bd27597020d92e0a70c2394f4e7c42e5de7f7bb630d477d22e54f1cd5090e7c5a49f8fa1a3fb7293b5e4e34a112c4e6a2925462d41b1f97cf9c7de8651347883c403746b81a3ba5396ef9ead0d7419b96cc24871872b1cf29123944a236e9b665fb47888a4db5603c10127c0ee0d7290a744f312bb6689f78af7750ef283e92ca4bf9d1a79ab99102dc7b785b73a8632aedbc44d44276aa7d0902fda03fbe70300f0708ee261073fc4fcc3fd3161842361f3de5e5cf1370c3fba1a3c90c8f81a8f7c607c408538ac0cc14e7c5d3260c973a1a680203f3df42e0b1a30312d3045c16869572e7bde5841f6ddfbcffc6f1b67d420cb06909b066d4bbdd850471acec169cff40f1384331925b9f8297b0be85a8985b8d5969e958c2c324163f319d69e660afc53db7baa0fa14db0a6fd946152815f3f9f84353a135d4a5a118d2540bb90542427481de08bde0cf77f3136ddb37702fa5dd73444a53c708af111a5551f0e089d75d54441d530d09c1fc7d411ffc6eed039dff2f2fe89d5f3406b9c359c6c4d433f84e7b1e8c917611156bbf74f5074597b165c016453f9b5a1681fd0c7b2415fb8ee666ed36853c9246fd12709bf28d44c4a71e93c35606a60aecd851670e2b1efbdabcec0d23efb60db9eb8a1710113be17e185faae160de04008ec9a6f52d46faffffab2ec0b23e854722cf9018e6518f986db22f113cd436b6a7912e7de64f50366271dd15a97ef51bbfa8e810e075b91d38df56e61ca22a48ab8fb999ad7c9b2dfff12d67a3c6d5fbe6295fc441005d795b2db40c84842e16013705141df69c523eef3aaaa8b7550ffba0177e517a63cabf43af457d581813cb8aba726920a1776aa1b72048a8ae2f41a0efbbd2e3050c7990720d7eae346c2c8699bebdfd55c1f42d7f3d86e0fc1c85be90f2d50a582d647619bb3a1739e75ec667b4379dd10ef9f9c33febe7ffa4fd2cfc7ff2ba767a33f88c76506b133525f3b79fffe0de5cd645d8ba9b7db86b5bb8469b9a23eead82f837cb988127cc4b15f49f79c1ff71fc3ce5e1c17ab7fb1f6ab751627bb584a6b63ef44afb378fff7405840184ea6c8d9d96e49d68c46a02757486f7f340035ecf5d53e8cd1352220cca19390161f9a0b0298e0f4f2c3dfaf3f8678574cdaea899b6d9531124485f1c7cfd7eb8b3f4f700afb6713db9e880cf582377ac357f869d3a3631d314e3871076dba46521172b1e80fa92d5fa29fae739f107a4fa58ff97a3fffd5f34514ff6186dc99fcfbf776af43ffe4c0095004f69afe2e2c01ed5a3da7b5e3a33e6f60349710c294a84980ed38232385bd7ba3a81abac9383aa4980780245cd2660b2a31369ca6bce6a6815ef8fb69a840ea5cb2b0ec7c182f0c617c237cec826b1059b449e5d4e246cbf3e76e2152175f838899d1ca35cdcd144f202af676c3503bfaa5a3ee4ec10fdc15c41f344ab3db2e22e782bb2704e52678210e368221c9a6ad13841483436605ea4d128e45d4ec2f6f97757bd855f952f4f5d6afa981d99e3d2b1620978dbb2b81c61f20159fd9165e59c1de3f6832dde6e583e6afa1f91b32caa29c6f6ef25aaf89bd6cf1d61ea22a1e38847901d8fa378ec1cfffe20c663ae0a35ec2a41b2f65e012f3db97f68568f12ba1504ca3d2171aeac0281134d6080d755eefda2ba00daa592adaf17d6ef1c8064b6ee8cd1cd3c786fbc6f2cd6095d720338d21303e3423b9e602dfaedb425723b5cc9e46a52247c9ccdce3f89f4403730fac99bbca9f9d99b14a6fafcd79bfcd79bfc3ff3269405ea694f09d6104aada8953dbd6e1b7e93cca6ea3fec4df61cdca3ad992e5ce69ca9bd9c0e22082363aaf531e3c2caef79295e09e6fbf6027088ffc1a1b9f2288c2a84732bec41f9cac5efed9f61b1653c061fd61c08d38db4c38e4d504baeed2d7493cc16235e6fd5724c4326f0fdfb1ceff25d797043c897d447b9c2187573a1df548b380e42a2ad00f8654f6e5e2298424ad6ad3805e52db078e02b68f8a50f7ca6cc2b08c6fb9805421df316122dad162d1982448b3f3202241570f0977ce3df1c953c3f3e6044038a496ed555944e8a322866b0b4f830839d83b8227119568bc6f017c2220b04c6e1789cd1b6f04e2734a26deaeaf3381b930271e2c7efe270f0bc0e3145db4e5d62e434907ec1afb775e60f5f582879af5e7e35c16f546881b5e42503955ac1a7e65b743d2b9e983e63119fa101d06be03fa560e0b3348ce68c761f18e83ffbbaf6ef5c414702fa55831c3c31663fe521e129cff20fc7c83f38030b839ecc70c55282ee69210e79d713fc579fe892c879ce3da496239fa88fd9943ce347286e46c9a63088ff6891f74c635be8b1e08dcef4ff41c53fc96bdafb5d302bed8db9f92d72cc02e6d782a40e785f83f3f61f103b80092c6bf21eebe05432879775bdd3c78752dd1c962ccc789c344eee312fadf6e6dba8f6771377822112da2a29196306f1b23184cf53c248ae84eab6414c7143878872f679a73d771106cda6ef8f9a8c321c5356fbed1f79da15924d139a109a950deccfa8536708e62a5f7c317c9617c53877994a9adf7c4ed7ff439becb0249d6e1ab1aa5f4e61ad15389a75feb01b7a2b1ea5a85506cc62b2a8132d3561b181edfa530b3c8ef44828f4b7b0e656ed89f6ab16c1c6cc585906d612b1a1e6b1f95ff11cfa145d638d0bfa215953e1177b3e5aab045b17590f5b762f6d084e63c7d5bf6e194614c9a3264f673abd7f297591a895cfe1ca25a39294e6b1bac2c6f5f6098c6df9d1cf711f5fae50c4d06cd18df795bb63f4b1ca88913c8d7f735e5efdca47c3eec509b3058338294f4b05539d58abf9e29bc080ab97c337b2cc190aaf32b60cbfb60da3269a5ef3cac9b1cb044f584732c3ddc20107027752e318d2f75c85bc3f78106f3936e55fc3b9ab1324abe373a6d9d3cd027e4fa3f19e3f1988890b47f03a960830e244342d4a47fe20a9f0982266a703691054a349a16ef30cfe3e8deef6f8393f29825dfb6fe0f3dfc0e7ff59e043bc2f4cf0de95aa9066e1ad4deebb90281d18e5c8ff70e0331f92b54d5bcc3191aa478c3dc93b25c0a624495a27baca6ba81abb46babbf108d049ac1c2c6051bf94b09f3a78e8a03691e743e743380079c61b7157a4a16f83f7fd0951fb0e3cc1a28c2e3ccb943cd9cd40baa27f2becbbd41f57b259011afb2ab3c8d7a82f58c313725d7e0dd77eb8f2a13d7a745718c67e252f259be821d4092c8c11c335a5a05e228f3aa2f11f7b39d2308c0c85b9ef8f398b7bef13f45d257adcc043a2612b1c957c713c415ef3811bea98a63fede51c3e1ea7fae49a0b509453fdb352f9b3a880ff7deaf7f9f953d7fa2545875f34611ae1e622ada533184585fa7d92f29ad0e9c352deae862ce2c05e623b3f2bb0962c57bf27c620af85e7fb774280417d973b95b1cdd4e01171900d009a5a30127e0c587abd6cbf72de49ef2135eeb172d82bf14a48662a25d06ccb7477a539ddf503af7abf3d1f2269ced4311eb251a34781fa449a37d58221a09d43c0a364a8750387e7e94dfee4a5b83b7731178058111e0c43b417399d82343f68fe07ba61b90f1c51ba53ece30387546b97c289b8be51fd6ab7e59c61eedf19e9d7aee14c923fdbe92e7feeae2c0883dab94edcec394da462214f9a7c99f981b59a86c9359533be65ed573d989b598ff9a660df524725c9b0b91432f439725abe02a20ebdba2df18d26c99bc17c030f631bc3c4ba02b0af35ece817156188f566791f8bf5d91d1b692d59941c9a168b9f71c45f5152ef34e697efd00ddce18ff2f1e3778e431a06774f56f17348aa1e371bf64d9f8f10fa9ca1009ded5451a3386606f0440107f49e04382f0f75c47b4db5603410120c02d296e119b78be7a6a3f86e1a7465315b195c5185c6bc6489d10e35f2ad0f347f7484c90f4c6d6cebabdcb81b5ff725d6ddced702219f9cd19c2cadc4d5a9b67cc2b36b66708469bb538e28db29f100e53d5ec2b8d6961aa86e8c4dba7a5c107a6fad4ef678370eab63d02cfcbde90ca9be0c77d096f0680598d4905ed3167071ade609efcc7790e862d3739473f93e7c7e927efee5edbc486c4066ca7bf12246662f272fcda7f37581941dfaad262d9c5fc259c6c63caa17b5a68f05cb0cb481bc62c4bdc22ba37fec560d1c623308f936fc485657f4949c62cb6d5b391282007029d721fe6d570aa3fca6452a1632b51c4cc5c92e0ee39b63066d8212833f814eca9110ee9f4c95eab7e784ba5037207a157e6f6872e861b8730cf1e8b87ba184f9f481ec06be37ea880e2788fb0716e27aca7c12ab76fb19466b6dc412cecb7714621c43499afbd357f4a75b5118743c41843d157c73ce486d3354141fce16573870c9e1a568ee0dd9ba0c7aad0c876f7dec655047743e41942b97b37e749fb64c742a3cca0aca3ef4fc72d974122ebd142f8d947d1d7b7e05ea88ae2788d192828eacd4293859046ec90e2da5043aa11d21cf9d557e683c4ee5d44a4fbd7f842808b0b30e5908acf17a04eff83d2a5c2778e18aa6353a901e3fe5ef3e79334f42c9f608d1fd0fc775af99f9f13cf225594d21d79e92e42067f4a09793998dac15f75d5673720ba619e950c7f43289a3069d70d4d713c4fe0fef593e67fcd59ea5cea09587f9d3ed8d531d1be426342a1c758c84f09c1096e397abc1f8cb43d75a38a38da9b30e6f8b230cc3de3a506756e8035eeda6fa4bd5ad45417da46d967dd75e004083f022954e61428d1466378197c3b963e59036b2d731901e897b83057632c7ef8b22339b5e47f2a83f37bd8d5e4914112e477d221ffda11c12a08b789592a522edd5bc0fdd59dfb00c21badcb3a083a1c0d54ceec9eef3a80275ccc77f530ee2ee93a8e6c9fef9bf1354535ca3d49430c36ffaac9491a3bbbbcedd3180f9fc19cac17a2afc70e1af374eb06008299b916070d7e9a1a21c124f6d5d5c5f57e38c34c8a915bdcfb9bf06a3e0a8de41f4eed31bdb6a41d6d23dc04ebd4adc60e29260ed4ddf1a5687b6157539172bbd58098348c3fadc90679522b5901210125200044eaf4835fbf63a0c70c2520a64ddd69f95941c4ef81612574f369464f45652a23e953024e4762d1b441f09b9e1e30b87d2bf46c02b68a9ca63fe5980f164b39b32b682c2b7163c35d1b15df12ff3582730ff9304a420470b0f225363c51a91c97fee43e79abc631bffe94fb8a4fe99e705b24e3dbc0212309698fe733c2498e64f26cd1010f4df2a951e05212a5b93d3df3f3fc551283323c5f49a339718fde1b717ce42548caf11cdd387b14300e0e54c724d9b5b7a4d4bbea8639fb941a2e9eeb14976553d5923e0da56b8bbe62c620db4b302b49d43774f8c2510d87801614cbcc3cee704270347c30b5f9c49bbaed0de48ff107575f5dd79864885ec24f91204fa11dc0b801256e8abe068f792b7e16249dda01836a11b56db33923623ea63aecc536264df0c1ab37360f9ad20d0fd320cfc1efa0e28c8dd9c09bf4722170de46e8a71f4060d62e694e1ea9108b2ae29f26e820169d558103a443fa58d74bb84b1e04dc9f7054ef72d9e211edd9bccaa6ae9966701682d3a093dfbed1132e11879f9a185cb18b0459e9820fe912827af06e3dd129663fbdd1c358a2fb69183e3f043e71eef2ebd0b666078a5cb56e377088d67a85ab7d135eba3110b01983a34376662413d1a2d8c146fbe58c9c7ed935298ae45df115cc0a7f84093e1733462f849b8d06022fad0fcada23c025c05abdcd4b07e536427eadc5e613cfeaa18cc512c818e3a1dc009a269ddee98e7c1eaa7b0e6d887a2acfeea1bb2e1cf4b2455c75b0b474d3d3e68965aa18e18d8540b0d0221a1fe005140f11bad25d61821b20b38ee54fd3fe97755aeb43bbb932d0d8cc832dc5afe1f8c3b180915447841763c8fa7fa892abbabf7e1108dca9253663ad80704ba5f12f0db186140a6a54801e41513997b1da740b7ee6a28023b2eb0504a3e0cf92265a345e4f62dc0c4828398405ade7620a7e69661f665fec7dc523397096fd7676f59bae34be33955d4422a9190e77e1596ace3034417cf7b7e8a19cdb15f1f362e8e91545c6cc7e84fcb71dcc45f803842e46ad24d35ff24f50f96d3513cf53f9cd57e1a75dec991ae054ed9f658720dee09788bf1a977a3d2c8808d769f6bf565fa9207dfea2d439329fca04c97c80f1ae459c2dda12c76cbbdb1e394b148e84e69c02253c7d3e4bc486aa172a5612dce24920df2ffd5de3446f16c201f56bb94bcb9ec3e287b8e3e95a9c6cb533c064aa3294df3532c0ee51b62c8bdabd71906c6be34ebc45cec95e6d66b93189e0f2219d9a41328683daaff777b338b33b7582ce68d4e5d6299dd2776d721d3703741799ecdd6f2e3fa1792662c837d1e89f5255ab5b8f758aa4ebd5319ef4df8172ff22e0b8a25a671c0c87b0968101420288f90109f203fbf089f009f90083d16a7082737bdb989b309878389998d89958513879ba3898383852308c40a024113f4c054c736f710b13ec2acc41131e2715f33b0e6711f489d5a5329acee75382b49ee79922b1e238089f8dde69258aa0e510122cc2adf39599975c493e432da3dc9d909c3e7a4d5d34fee84a836cff6580b8ae8e4705f266436bc2dc56e5caa13a8d96cfa0497ae6dc6ea05ea2b31f4c45e3cb1f5aa7b691fc9f4a4946cd93d299831094b4e9f772464814670fbfcd792d85cd411c39b6ac15d2024b80de09407324e250fc29e722e6aa6a939d094bff1ba8622ec9ac1ccadf4670e9a8618681f98c2000f871d1029f623ea55980e6593fa15f15be49472a9ad246677399fa22bc788613ec28c40825d6bc14e48b0831fe43b311cec6d1c08a7f67d8b15233617675ef0ad3e706850eebd302dcce8b188f8d451507ae4e27ea511786342e66f310974dc4f0f1a8b2e9c45bafac79110686eada70548f6795fdc2e6b8da12a821c36a870bbba19bd657a74cbe0e7ff6cc74f8b41e8db615c7f35e82d9110d887174f49f54f92ba7884cac691b1d9792f46c6e677f77e1194469a7ac57e1c768132b0aecd3881c65bb21e1da43d90110be796860d1e3af59301f646c88182246424530c2885ff96e3345fcd81c18d6bbd497cf186bdea6afac3378eb583d4c4c1243ea2ec82d72119db3301280339c7fb05af58e179cc610ebd41d3bcefa8cf640989be1959ce786e2ea811b7bb06a3a31b4bd2f5c463996efbda1cccaee1780c1d90dd451d31e68f4df2b043321552e18fdaf81a958302b794ce85f5f127cf3a2ee4d0d8cbb1296584adbd471d33ee1f36c95ffebfdc2487423a7dddea9d33710f94bc9232ebdbed7bdf98635310c79f0d6251f4a48d2f8cfff76f9283c160f01637c9ff829be4543405df36cfda449ee27a2011fe94782e2dc85b033ebdcc32073ed0451120ac1d4b4f9de4bcf9cc8ae356703d5dfa9ab18e0643779dee32d90be59b35bdc39faf48535fb027ce49b4bcbbb94d33f335ad23ab3727beebf3e329586b716f7a6a997c65a82c901c9e17d5e3eaa6a80f0a3374840961b714fcef02bb0ccabc9d97beb3d45ce7ea8a475e003213ea02b3bd7888a117cafc3a71650c1a273f71733e47058f1b8d87ea8e8eeff395c6c0d078271a9fa59c57fce3450dd0fa35efebcc84bb08973b9261f24f8a8785ce8ab4301c5df41d4b908305e61e17f192b72b59256a4206c22d86fa808109ed4f314f3954a0771c469f93f0b809c93abfb64c0bc60f36bfd42c3e5986e13d1a84c4fa91a5cff2ae9c78ef1a8534073c4fb64cd65534d366f95d129ef355ac69d1ef271ec81bbdcc292b32eed532bf3d88eeadd7c42fc609b099e83a7d1788aef1af8ae4c6e6a0e11094d57c190b9e3ac7aec7acbe9e97ad7738f1d24f35e98e38e4b6e06277d84386cfb7fafd1f134a77b3b0225f8aac0bcfb96567a94f605d7c934ae697ed39d80403c61d0110703be18b2cbd37b6982fd7bedf6f5a2abf6bbba7a818aeb060c1953f0e28e02ce08fc1e5b161aeaf28ac9a3fa8dbaac3bdd819585ef25cc7b923655fb7477310456949bceda234ee665eefda68897b436b8da0dc95ec6f6bbf2ab7edc82d2e062482bac54b68428c8176460027f0ca75b189b8e280cb595a09e622ba340b0e2df873aa24e2af3a5b9eb47fe7401d31692708f104b2033f0ef103fdd81931e132e0bc54855342fc183f28c85d13030de4ae8e0102dd4fb3b4ae298a6f0203462b9cdc580ab9f2a0658307143aec55f6ebde897610ad3a7121916afa2e2f728007d88b34fa0bc76e906831fe5814f283e1d54c1a624986fb034357075e0274f938d2da11bea8765ea2a1d54336bbbe51f88d2bfb77b018e3d3b1af5693e72a8d1107bfa61d8d4d0418cbf968f524c052c5faca03cdce3a2b69cb4d0512587489331a6b395c8e62d7fb686c294d8879d0ce272044e8def03ba6ef2aa1dc5c1b94080b7c8644c9579cca964ded9e9bda960e8b25a18e98b6138b8886ec441c4b2b356f3ea20d0e313f877e8ab4801610e87ea225cb71eaab1cc0729cfa5effedcd26d10434c18088b9d0ddf6360bab9b4d5e4b57679bdecc776e992dadfe80725e1e8a53e2702703aed103df88736db78899697ce2cd1b44d7aaaa6f233a3f787e3cbf9994afa5c9f9fb95a49d27152a59b65b2f5d071c75847004ecaf9125f17c3e12c8bef296313cd97ed305f591023f5d498270d6ffe311d873756a78018a3a36eda5d54b492953fa45a47878c87fb2f3f24c19b89c5c5e2ef83ad6986e1e3c008f36f639ef349bcbea15096b8201cf78e78b6655276798729ec044d0ddd72b1f4f05b5c82e3cb88d95b453fa23881900cf74c4ad2e7fd07bfd2aac6dfda08e0cccf42629e65a7538cd741f53fca126c549fc5dcb9e4f5a96938a57f1f295102301b47d7c5794ede3c43b7f4a3f6df3444c9c1cd4a591d1540bb1042121a6c0259a81fac403d776a12c10bbbe162413f72e61fd76528e31b1bb943cc29f4f1e12cc2c2484e07706f7f509bdaf58fffa2f43efff0b0caec6af7c4188c333bc6807e6c653bfbebbe60e2a0c2ea69fc00c837e0d96baa3d9c8d0c2fc6e4bc9033a07fa20f7aa5c95cd3ad72c7b1940c8bbd12e11ae25a75f5125fd54c99a330e9725ff708b261ad3509d2e7fa4271d9102d9493c5ec1c17ea1c6cfe09073efa74e04afc0206601fa87b8124120d0fd3ccb1316eb76fb098b75f3b737476ba609062261c246b1ac8c03596e685f653ca83b1fe0495e856536b3c497b7d1cd6e61d7290ae0c8107064d47949a7b1b14738943bf9d47fbc70cdb9ab3e9f2b33edf3432cdebd63d54dbd401d9fc6163bdb35d80175499ca26ace13d9b073f611a09d493f6dff70eb3eea6a96d3548bde0242a23702ced8ae968f9aab5895e33cf766fd090e2bf445e1e12ba89f47bb8999437685dc1a75cc3c24ba032210b2e37f2cc5131038e48de827389a5205fda96e0304ba5f620905b99bcaa381dc8de58fd640050cd8f3bbccdf7e8d47058be3d56d2ae5b06486b7cbddb7ccbd74aff5b2e4883b350902c21b1c994e2bd75fcf2ec88d239826e71dbe2bd07d8db731aaede837113b2b90fe534f42e19037223b7034a572e1b37af23c000a72b7684703b99be51e9cf424915a457f36a144f6b16852a27192d253e5e531ce8b956e5e5d3b14231114380f800701de0ee63c8820b52af5e980dadb1daaf8cfee1595bf37736f301d187d7eb5f4a79e84fda99eb034882b6b48e54b115b39193e34a51321cdd4223237c2f956f179ed83f9e2e7750003d7a92565d6682384933a9f2abc47cce9fa145204a5d8e7406777ad24a6ad59f84f3d09ff133d0103551972bce4f7c5ab962bb40968df2fb9cba5146d3d1f47b09663e82507e9f57302da8bbbc1819523952c17693a6689aebfcb14be37357275e89c758db326c6a8b5e84f3d79faa77a222684074b99347671bdb24ed980c3bcaa69e61536d4c059ba98b488b37553f1011260623953b82fe9617e4165b98fcce2f543d1de5cc815f568ef12f810fa93c813f69f7a12f1a7666792a3cc2e6c1df751b7b3c50db4823c82c722177254527934ef89cf2606f97ea90294deafe78b452176192929e3e4d86c6e24f884bbc7b106b6868548bfa851ac40fba927917f4a26359ead59371afcba5c60cbfb453a0f3a0cd42524dd4d7ae457dc7de39424b16d91006fd78b858ba1bdbb3a304d368b313118cc48f849968818223558398668e8eabd9f7a1275d4135c389ad273957f3926b851790591223be06eb79e272bfd0657771e89a425f2bea2cd009b593a82046f03eccff4fa2a259be906e82cb8b9cc166617eebfc265f12f5fc011bda5fb3d3004dff5a79e44ffa99e18d792b24d06cf65502b076163029c73ec6a38341b2f38f733fb3af3982d2abf00e89050c8a015af266422458cfa4ae993c5823a3302ac2bf7524d66b96530f60c1031909dc8e39ec4a0d493df42bc0a2641dcdffc2c558020aec4133490bbc56f6f4e66ea3666da23b9069b74c6e69746bc7bd46b2ef75564ba585d09edd6e4df656f06620d0237ddcdf9bb6d5b5c35b956e913d001b2649aef70b0e87544cd59a387ace5d95b2086403b03c050340bbb6aaeccb7196c4317627658930c9bb60bbead92bb5ceacadcdd09c742d46d78c10e1ce10b3cf13e1e682c1c7cb9c1180e8912044e1968783318c42c4a7f21ecb7bd9a9c26021870af68b4f182307a65eef75b980d9c4ec6395ea412d6fad718aae843f57d2deb960197c956b1d726941f1d12ad1866b4d89befc69868247e4be45a212a0e0250894f3c7677c8360d95670d6cddaf9a5993c59f698489dcfdaeb3d09195ee3e6d3817483dd88cfab08afee0356fdcbf8ff4fa5a6c6ff04a47c9ce86e27cb40881a3b6cf6341faf534af8f11c23beba86396fccc6b929cf09a0f3bed636e49094f89fb36daaf8e79bc85b8ea15fae4e9289cc56b5edcf39935507e1a7506af367a16bd81156a8bc64995b8576fcb9c10484e69b9cf44d8fca0d07428a8407022fb459cf9dfdd268c3d785a9edffb63ff7553107b8a4e94ccf8add03fcd6b1236fd466c9ec26bf201468442301c53a49c5160d3937d4884ace3c74785ab41423f595459446996a33c804e1c03564b8b773c336580366fe7b342e2bcb08fac8302995824483cee48c763d742b04048081a308afdd684c055d027adefb591bac7184e1e638aae4b2c8cdef55a55d1e741ce36d4e7b20c09aeaa05e323c117fcf01baff6c3b177d26fc2632148500ca7a72555e7dd60becb0ca1e598db06ed1fb53de03044d67663bfbeee7b0bc76792cabb3509eeac5431e173d899d4ea6cfe2300ed3cbd2961db9663a7b4975ca6bcacf58bf645684ae9a4dc83e6965fb46f0a24580bc7275fd8fca23dcfef62c62c3f276bf751545c973877f96de8b0580a2b0e93117b1f235cf19a85f3c1e7edfb763fa6cc80f85e3cc08095d836424cde8c3d885bb4016d52fd1534dae4c0a17b22ed9901262dcd7835220db2937c640cd00932e160c3cd2638a4f700067f8f875e1633bbe5b82a6db3c77f43687a6353893b464659a6075600c6cc43442e76b7a79dc3947d9d48605007ae2402111361743a247f5a1ac10bbbf6a29de5313dc8606f35a309063016187e70702767fca61b1627bc0db3ee7df81b01dd38ad2419bcf0f2e7cf4daa006a3c369df36837d9aa0e262fb6e18e84333c7ef1a4565e9fc05a36b0f2faa7b792b5d0072024d40ee8107d35b9b70bc778311091b95e2f6242bd727e86eda090d7ce14536371748b08207555284742a97e32817170282cd0158e7600aa3ecb04ca6792a9fe66024b9a1bc0ce624facd735f1880c16e8b93bf1e60a0091f342bd2959aa18cb92c0d88d3b9f00c996b2125dc1e71b9653cf92053b54eb22daa9204f3d20995593acef8801cc11bf278181274920fd6db2bfcc319eff694d11eb9ae7a72771caf5b77ec50478f32406a4ace9f4b8a39204e2c4cb70addbadc13f83f9dad48a750a67b4120d69a726c4552b6c456d1a92ec01822dbb64e242d70fabb2b1e5f7039cc194c32019ba361f19683592becc3666a82322779efa612eefc0c11acefdfe6085777a2c983b89b3528aae062b56d62c98050e3157d7543f14c1b2626a493e60d383ac0c6b4ad17ffbfa4b2d1e42d3c7ec37ae08db366daefb1386a32e19467baf8abe2556443e5aee7aae71a120a144930c3847acd68011e97f61fc292970d1eafd97245a585494202f2d6e13127200c4ce3a084b7dfb889d17710e4ac97f522aa3e62354068b34c9bf5e2a0372d423ff28d67d7bf06abb087cfdbea7edc43b9601ab2bc9049e247bd775793fdce2030e807bf2db106d5eef556fdc1c515b13a2bc011eb2e8274db5811a66bdcc8fd31c6a8f9df3c81341bf03564f1cea7ca129c2430b4cdaf2172d243ee4ae4a6b4441376a2d638e569c2840abec82dfca30ee1cc00f4ac7e51848b29ba422b5119b124628f261e711c8808e565ce5c9b6d29746e1057023f6ecd627e7907b11f3a39ecd7d2e93b99831daa36d6db4b8936c778e103e800f9c7ee397bbafc22ba9742e9ca745378c655b9da659b7a351049082e3f637164788d52788b1ba189486cc8f6e91083d7b1047d134871985dbfd85ba61253ab69d3894863b1f7544c41ff57dc61b5968706f327ce2f57a39d6d3d19f7c602fc8727313bd4d7ba3366b560221741575cc177f47a635fc44a6fd6668ee88521154bf408899bd49ea777770c622d35ae5ff27641a0804527bf184c53c973cf6396c8978ea3b3962fd17f3cf5a86f636ff9df96fd74642af4fc7cb5eb3e6877d2098b9ee188016ba6df202ae9735b4abe9406f6eaaeb0ee0789fb7951ef6cd08389f6f404b7b1f14ef6079b9caa499c0db49dd95535a9d1786e804edb401777e0430f41a055a184f6e0ee6cf16b212791bdec4c97d9dd7db3e7f3f52d50582ba0dea76dc102e3b4e7ef857df1e49020a17c85afce797ea83f836793e0be9ea6113c18ef4f99ea284c3f566ed6256ec758aa73d35f0fd2b4e65883c01ada0f90a328c251a425140e8d918bc094fb0fd75d203930e4caf3deb3412353a701c21d03fae75d469e124d8bcc383738942366715399334ff546d5575dd9bedd94b2edb122d190b9d461b2e1ea88fa4e10f5dd9bbf1c2f106101e91947a79b146dcc35d029fcc8de8164c37fb4ed9b549a6cc974798570133c2ef16141f523b225b27bc147dd7b1ea3739f51d9c77a36029738ce303661fee1f6136fd5d2d28bf7fb1162802b6da265c29533acce6a3f6175eee7635e9175aa7d80be68a404453130ca000fbe43c40be17c03c96442a4d624339d4d3d5c9f89c2c4147bf6985e1db412f25e7f31a3771fca229147a7db299c181f7f16576dd78cab82fc9d3e91969e70315687f3fe86a3ee74e4045212a9649e9fba477ec437abe377eed0a1fc5335ff508f8ebf66277d4e5f1ea6f075dc93e9d1c747df828e12fe321b77603cbcfb34d15321ee80518d1c5306c3812ed9fe121ef9fe121357ee9219f7eec2dbbf9c806217383e3f242793ab2ad032de4fa04a152954221b7b6a2ce950e2aec941f5a3f1f9da35a035496b1848aa7249eb65c0f1e6a57c84b7ae74a122dfa9d8756b6442213744566fba452ea8bbcb749e2f40be7ba3a84910ba13595da570984a832a5352115a4778abd6ea33e91ad27a61a9bd0058396c7bcd3bd15cdf9f3c3bb9c58149412b3fdb3d8d34caac6e5efc93ea28ed87e82b8074ead1db00be7bd259d4b1d26545f4c03e36600a96d36b6f786e7172ae3b354a08ed87982784dddd2b309057e2eec90ca57520a2758bee4918a9cfea7fd1d58efc5fc8a5d32d411bb4f10352c0e3dd8dbedfa8d37f9727ae992869fd33c770fa809c6204bcfb44ecc6cb91184280e4819105e23f5fbf271604f71fd41eb97b45bce63d40c79353d9f8c2519d56f95c5a51e21f69c203a4a1e86b60f917f11ea3f60860645db7310f495a4390c0ccc4d8fce3d4e4db4401db1b709b10ada59062ed59d37220f8fe89a21a015d758777bcf2d933ce75bc31536fd1af71cbccc2f1ca823f6efa4fdc4b2c7fb079581e1103616a9b35876d116bd2bbfb1ecb9f2272cfbad00fc9edfd814fddf37de58d714bd6902038cc30874dd49b377af1aba3e8d1d229bdcce73331165ea15d7cf09ded528eccd0794ed8a2da6f19264f20708a37364afb1631b626e242529fd48ba21f5ac32ca5be15884cb5f7cebf4bf7b7f618bc07ae8a978f8389c6502c56828d419fca9627dd97d4a16f5010f341df3337b4d0ae3dc8b303b176c443cb2debbcb96f4dede26b95c915dc3621ecab6632b64a8230efe1d3f9300072716f7864389ec1bcf4a4ea43fd914fd969cbc6d82013ae3893c58510d296f317b389ac591bd12de9979f5f43dbac54630818bf4a1c5802ed83f2fdcdc498237893400d9b0c08d449ae87e5221e51fce0e3d7f0e4f77b016a20242421481b5c4a630cc57eb2114d16bb70c3e1bef4644d66426e423425dede3dd0d18dd1eeea13e2d612418f9d3c812e1e8dcfcf4708ce222b3b346a69c49789c76bd6b0203bbdf3790e2e0383c7c553066c67e1fdae2a78395a178eaa782a5f871198e2bb980741a3e03b5432da91c89f547c02aa2d26e2fcab2e5d1a22867a4e8fba69cf5c4df019dcaec49da253adcf797d97bfb179c8acfaf9c863a152fc56a40ea9753bf5e39ff312a691760edd6c513e3b8fec493fd3c25e75eb5eb267a8bf075d579c05309c18d19ce0de08a9ecb050ee86c1f0f05e53b5e7e129195d821bc81ac25b64b1f74af24bb2f8b1fafbb37730f6a89ba93a27577d51433460c49d87759b5197f30207bfd3a343647230fd25157a6f74db5d04e1012da0a545ebd876e4026994e13209af7969168eca5280bfa27d0e5f40c3d011ffd56ee62d431c79050975aa816126aefcb500e075fb3bf061f8ece02c5909755fb5bc5a1f1dd78a4aa5674e322299ac0ab87b05a285a17cc45e4cf1d963aeb763f04f6bf5811c5c74fc266d426e5854f796ab3c5390bad2e105abb2b1a080c81626062fdbbaeb6639e724ea81f2e7405f4ffddf6e3d37a2399f3f9af35a27bb00d8723efbdea2eebd89ca6591ebe65191eef5d63d04f0efd1e5de326a4da307dd95bc4dbddaf3b6e72ff6e1a30b58dd4e0e2904fa0bef4b9fcadfcb8465a829a38771a9e1fd817f95549b09e2643f66c8390d76810095c9982677d3f8febe6e8b2aa7ea69b32ff8889a12360352849593ab2f3ce8f2cb51566a50155d972bbfde3b605d1f7d9b7d807db87e93239a4f7dcf953266ab36c1ad76bbed6288c22629abe35ca8ee55fbd1c9db9d03c287e31c05a0f2973375cb8915784e8e36f65c3432b937d97c792c4a6dd2c61233fee3facb1edad2f04b4bfd22bde1e17c3f7c306a45d04bf25d40cb17d75991d1d04bf44bf006d1774d4c9add1963756dc7b26cf786c1c2a31ea32e5f8a4340cbf230da995964292ba629a3df41ff96c7c8fcf47747996a2be9027feb877471935c224926d759f4b1ab34fbfc577a770e24a4f399600ba17efa46a8a4afdff2b20b2f9f0b774849cf8241df1dc52f9cba4239a95754343f786ce5b0cc57db6184e582554696038c373049d918e28ff3a1da9b6558f30ea41c57370ec67205d125e5f5e1416892b66156be6db51b769bbe1d63e2deea2f316707803e84b4e4910bf0eb75f7b57bd497ac5e79ec14be5c5744d81418f748f37c80d16f15a345a1510128d123860df0698dca48559ed19a2dd0de22ff16ba79af3f891df78b781352df082e119ea53398d84f6d64274214888962f41a0af763eec38d92eef37041cd4be0bfbc0f8cd4baff476e42b9d1d6b249ea2383aac163c5b6a1d59f32f1e0c45e9e4edc667639e9f3f0f25f8c526bcdcc6aa758daf195d00e90cd6159c21366f30f0f32774f78614ff700bd3c9d0b7644e2141dd8aa4aad967d8eafe330e170e9f55c7859b47c4cc5240c894839f5bc08c43c8ccdc94439847c48283879b2d5c58849f5bd0c454e84f78336a554d0e1e6e7e6e21015e7e11211e3e0e19290d590e1e2141613e413e5e7ebe338df10d6dd9b36aad94639247507eac4bcf0f313096e98b8e4b1692d9d27c35ba8679b9f54334c03d4c085cf42d55d0f08ec032972523efbd9e5878f792fe95b75149eec49092f372e79b8d7e27f5834e7e772c1443e72f135dfe0ba47ef02fa34b16bd376905644967449781a85016591f7006a5a9c4efdce5daa1ad719d5b75fd6c133bbc5145e71ee166275d97f306b01b311ccccf9db83ff468a0b8022ba6f832cf171b7ac042a5ab3be4b521ab0d46cb2c03e1f0ecd16d0b9d72a46da8642cad6c8eedf609a3f3ea5fe15a24e8b5587904e703ea16e263532da4088484e401798876fa8a26b9e4c4faf376ec0f328c1f1758d5edf579f8c42528d62fe1e8a81e614a00b035fd8859dd9c488be24e4c4f16b12465ffca09c971a1e536c6b24584dcc1fedb23cc5924e4e64f56c77df4bf15e77fdbea585af27308f15b987308f3f3097108099b709b9b8a88f0f39b9bfe3bad8e1d51c13e83f361895e221101b1ac6da40784d9ce4b972daaaad9c296260ce60be044d850cd20f9292325786b4f658c75ac83f3427a981644b1bee01c73045fee56eac93d55ab6785a0d6cb57bf5712d9277c5ead8402573fa644bcbebd3a7553e1054c990075659d6faa05e38090604c40c2e3c065f0c90a78be32c6a52728400b7b0ccd709891b0e693ec76f6e3f8b92ad43117766a1135909dca23ed3645f34b88831dd3db384baf50de0a696e74c5bb2c1825908a9ba2ed6096276d1b10f495f1972715a6ab2b728fb7425ec64b19b3ec4e622933e47fd45b28e8a010dec2bb9e17b94a90b4f14058a68a0b500b6fd772d4a0f05a13d7eef4b30b4c0c937c111ed38ced8219d9448313c1de752cdfb2d76ad5731e42fc073b0c1e9721562e579634efa61d94051e04de1e19bf7fe115eab2f8f2fb6f3d15ce0b33843c7504d267786fa0470d8872b67b5607e1b1c44845250fe16e054351475c6e421f02ed4c036323b9ae2387fc02af19537aa820ebf1cfbe22e3fc1b2f7f4ff09a3e1ed256f2471df1eb4ed4c9ce24e2646792e130f95fde99c43e3c8a063bb56c11e8c63ea6eccdf5ce2b37924e239a980e45bbe3ab5ad549c477e811ae03e07d3317a72dd0d012cdc83fbfba35f7e5ca3de648b957c10f31ee8d18955e0dfdd6102c36f6a59e77f7b8b3f5fbccbacf7d7bdc30bbeb038aed7b08e4dd0bf5d54019f3981e0d5212502a25d4613142828a72ed68bba76c9d82a42f74dca2e2055e179a49acf2be5e3f1ae4dac9446cc9a08d893891a673255b7fea2bc4cfd021b03ac6faec1637f3ad4e4593a2bced33ea881b2788531625bcd91c706e643008a93f9ae61ee9bbb6d13bccda5b26bc86142ad3fc5da8236e352106413b6f01923c3ec3d5d1d2402b914a5f7bc8ade1095ed7ef154ce4d993926b9e2e1d1b0ba82315dbf143f840761e1f3371497e865d9270f08494f759449ca299ea31c5b8d1040e03189153beb0c3738aebf850c7eb826e2f82af1e2a5f1dcd2d50da4a186ce815e105b0045871867b6e106d8932c2a5f115f6638d87eea8cf757c0fdcc4a25b1df6ec38b96a983f5871ce2b399f1f41e2c36637557029946119273b83f0b2ac0effa7c2cf60d447b5d3f47bae00106ea410ecdd52464b097b3b54a070cbde8c339ecc52bbf715a1fa33e3cf3f2ea3a18eb9fb0fb942c15fc16bf7c47ce0f8f90d508a2bf2a82c9bcb30a4e3651046d8e4eee2c6a57fafd7069d7558430b65af3fc2c763ce2124c46bce21cc2724c22124c2cf6d6129626a29c06bf2a7bd361f061f2f1fb730afa0c8dfbc368f088f1037ef995e5b5be10caf0d06a62ca73172252afb900517640eac84e4aef9531a87b049db7c83e6f889d53cbf2d0c5c6123326ca567be6337a518edf1ccdbcb83c13a022f5fe847d8323e667058e7f6ef7c01c949aef08e1bfb2f932bfc0b7c42f6af9968a87950b6a3c6e9b9025c11153e30fd538f5d29cfdc8b6cdc0263b18b7382561bbef9e4fa6e5d61e0e5b067dfaa120d806b9f23d20c41049d6a4c0b0cd1540e6c0672213cf6ef53a2942e89ef86094c061d5b9d4b14b495c41e31f7827cce11130adc00dedaa6df74e4e653405e096174c1d7b03bb210d700c38e41295b4fd26eeee5100fa5cf6831c5aa37b9b51c71e97cef6cc16e8bb74d1c5988fd3fc8a6b732f5131f12fa8ba42af0f969d60baf0ee667cb5f7c8b77893437a301efa699d86f0536a500b365f46f8204ccda2715ddb75287599b6aca348b93c46a2f7d7bf965d205274cef08f3e0a7d295ec0edb14175f3cfecb904d9ff976d2ab9dc1938f70b3168d7c6a81cf169d4fcf5022827f9d6c2a35b5f565b24145391a25365e7a11e63b5c588b91b0fe64dc512a0da86a276930aae72a3e7aada3ade702a0f6de786e6770c37319561d32212dd43a2cba495c05a7cb227a42a02c29d47d70ac1c4a9fd70773dde2d2e2824482491c6635ea90156a58743eeb49f0914a2daa4bc6284f6431e82418b85148507c333fa849bf169f02db6dec93277696e3d508d7bb2b157a4b073d17b55047849c2020726bbf3695450bb54e8b53f4803199540c7d75240cd4d9ced7e3b4c68e32323b421d11edf71a13b2aa2c2cb3a6efb1b1c1c19c4cd174ce17647ceafdd5a73a1c106f6f0b763d441d11e304b16067e4d3ba1d36ab2a3ee37cbcbdc6d7b7f65802cc102ae16b87b9d793276cc28e10a50186dc1bdbd7afa78bd30999b69a533e2d8973efb3bac71295f6443fffd2818cb2a5eb1122d609624d9e44e84739b5ef1d7359ab459b36072ed917d664d7b94d69eb98debd744358a28e887d8228b2ce2e273ee5cdddaff714bcc743c85aa1f2a149990c26bbea428aa698c2c88a3a223309e2b8faaa51bfb273c2f267fbbba3e4e4eb41dd42586f0b7c73536fb1bec92298e9b98f3ae2f913c4c36b692ce8b3a24bd18c0c95f69c6a4f0d2aa1629c73240daea20e54f43a5df2a8235e3c416417ff4274230e4b378a00588e731fd1a1015e09788f5bd4f0f971f60e2728fd33ea88f827887a02c461149874adba928f0251d9246eb5e98a371f352ecce7f561267d92f2bb833ae2e513445b98c5ab8e3b118a367c7cdac355afbbe739dfefc36c533547456847426f2cb193a28e48f417694a871cfb545613cd7ce5a8ce5d75da22860b0e426ad6c1112fac5e7ded3323aa441d91a4093105da99005e94d73fa879521ef2a8048ce7669f150f6a9999039e7b988be64b1a98d23fe58d3a22d94e382214b213741c9227fbd17880e0e030d4f56ba784e4897010e87ef93c14e46ec5840672b76002839855657e1b2f0c10e81824ae105c8010f27e25be4ad384c9f8d5eec9c295170c61ad4fcf25ce5f120278957bf6bc7461bc9609d8b072722d3cd98ea967b8c8472e56b7d7fc2dd12a468eaf500bc76341b995a48b652e75ac95df0fd4a82e7cd1f34019eb6ecc1536474cd6c2eb66a80f90e2efae50a7f8d1457f8783015ca1b3eed7d4cc5387fe1b22c436873af4b71321f77e7b635d534cda0403eccebb363a6723a1255b3f0e000a72e74d1f7a3ded41a45fbd62f683aeace6260340f2495be013635c58d5413ff5f6af515599a1765f332821c20dcdf29a8373bd02c7aae12c46e5f5c87de8301d1651dcb9743623b27ca11065d31782ba5d3a51adaeae77ed511f27d51f451015eeed69287f5fd07f08bb085de4ff36b6b9f45460383e33a1e4f1cbb9fd62186f85756500032e9f03c3813e557dbf95e7d8d5991741e5ce1a77d511a686ea1f865f986b048e30694e8ae012071f0703580b6c0effae22b8388796ebbecc7c178002dfc415a63ddc6f7d59e307d548c540eb9dbdc0ed9eb000b96bf6e17879137d00b2465907e65e697b5ec2528c7441dcd738098bd3ebee1425d324768b360c63018805d0ce1cd06248f60d099f56c29963d42d7b79cdf569cf5d71745ef30ee62898a6e6b8e921ea42a0db8947c44276a27c090231e0601a6b1a38d4b7853e068e3ed83a12c3dec0e14b1091fe85a60efd87d76dc117deaf78e560591b3f0785fc3cb45cef7079e6e4e949fdec7eaaa13abf3287f0f5a52618c0e94c2b40151380939bc61d3919e8fa39e5fa4d48d8eca3f5db8c503b19adb412c035e0ca31a2d75492aae9b7357c78650815652814fde7532ea9744cc89af3c7e4d542f33a414868362049bd10905eaa4f782becb9c76a7fbfd0f47857ecc3477dacf29628b4587b99b7501f2b0312aa5b0bd5464235fc2e7c2d85831db09be0a220fa841a9a7874c917e252db188f9447545bf879fd625b0760b590d9e73268ca7fb604399f7cfeef7e1f282c47936351e859a3fab9462ddc524f7f19c35189339e074e348d201160ef33ba7fd64f35cc42e8b5ef9f759ea1eed3bc1db604a27bde611f22ceff3135564bfa793724dd88cc82c8aa1d1ac80ffa73073a344f848cfe040419f9bb90bb3f449a8c0f599674f3e3d277b6830d4183b9323f10c8e5ef7ef7fb17e0b42a7eaa92b4c2da393f31a0feced37bb4f2ff7b85757c4b6c8474fb2edf2eec03435f3dba75f343ef774ea9045edf1ca5c1dbd26354dbca4f0c46ba89dd02aceddfa2c529b9b3a3f7e9828a3abd398d9450d51c430d434da825b9ee4b2a33f216b557cd4c41ac60bf8e726a6a28eec53a9a547cd94d6f3cff68057542b31178d382d2d968a2a9135f839ac7269f1277d89578720c9953e13e2e29a0387b23abc834d7f5bdc0a89a7df5f6a5a936ed824fceea8f7730f6dbc2999c2a18a612564c01db9745768f486c8624ecec786bdfe0b7d02d3c529c88a4cc2d8c23a912729f54ae3db707429efb0e3c502275c7e67a4deeb7c392b6acc6bf9dcd9a321129215c2ba25e20f5ca333813f5b5ca843c97570be64582b9fc880d348ed72a1ffdc0614acc553a6b1f12c152ebeb8f8d14eff98ff05869f799c210ad3c263532febd4b156cff8bbfa3d5b2979b63bd513c9559c1967d517cc6f75f3c4ab68a0436dbc1f632da5110dbf4229d8309d58f1b77a6c49f73d94bb2496fbf1d270432b5d2a387a29fc6e81b5071a58b8e66eb08c8ae7de4cf1079774d957613ccae15fe87d034ff0a420305ff720b4aad9b98232d4afc9467d1a9550d40a808ad6202d71314a1de591b1c78fbee66d6d7e93b6f9eaa68eed7f6ea2a3247aed8d9003fd2b3ad43ac793bf233b3c341987a267b20a0b84af546e1230343f79e5defb50b84a6f597d0b4845f12702f52f267db64384ea57c0242b1ce161a1f100e5cf11cfc8cac7a9c1942bacb7c674eade412410e2cb4013b542539f336dd8f7c40060403ed2de4272cdeafde46bf23262f80e16e9ea90f552a15f0f69e05526eff210aedbf84a659fcf33f8b75f35ebb685e33e96179aa8bd993ea3a031ff748685e232abe022171d462717ede56dc301a9995cf2338e3f4c26fe3c87116bee9d7023da26e1cba070b5fcade2197496cb80e3a26a5f71fc7cdb81790f2ef14ecd0b82efc43683a7f094da3fb33420377b5c050d1b4259cfd4b3bebeba11f31e3411e04c602f90fb8c6fbf36a2afc477c6782b81b0a00f497722a9544fdaa99cf2bfa3bfd69d25f24f55202fa42445c0ad70eea0a57c7fe10da8d13a1bd11effc0f0a3dcdeb97068b76b31c9f7307f7b4a7c592baa1a8d834a9fbc4169324f0fba4df115fbbcebcb4ac38e7259681fc1c2285931e3c4fa41e0a28535f57206cc56a0b3b2533d789bec4ca5b9a5b19a29a8d218fe9162a7b4b22e30fa1e9fe158406b23d554331ebf5e4d177f0d32eba525670d5eca3a269615756a23cbfade1cc26860cbfdc108a6fc7a9656e78c42e717f6a479fba6b66ab10d0580d5ba0901d8d3f24a3e0800beccb6a9992ba7ff029e027cbb930252dbb91fd87d0f4fe129a76e33b431e3633a7d53dc062624d43c97b1ac14331a85595df0e765cb89caf13dfa63d234b2e47dd8b8bdf94453ae3fb540220a790d7d81532ce44f0a341b5279eac15a4aa7435e4f92e5a443cf8c15d8b4b933e27b77c886a231385af607cfd90df1082c56aef49a952691be516bde2a6c7ca46dac9857aecc7d2540b0e0421c17034d22ea876b9fe466efaa041024de41e3d11156fcd283e7a8c4dc9f78e8f6f662a51c7644382054e2697c4ffe078720d03be25c4fcb39c0a8668c58a59593f432278d7fe645af36f4f5b8e564437e31c444a35ecb52c9ec5ed56515dd3e801d60ec22552e7f8d8a1bba9968ceb800d4da52aa5969f98c8958c28b596d2e277fa1d635fcc1b6f52c69a903de5bf7472c7a00fc3e0db0c0d4e623a309c40a4fa0e004aa652c86280c9b98f2b4fec8ffdf8b71bc1b280844f63e4786ed8f3480be314e881804c62a7d1d44c3d34d064fdd6e328ddbb99ca471371e5843624d91fa908947a555d597f094ef86474dbe2503cdbb857270bfbab9428b433a7f308510e1bfc719951eea6ae94ddb74d0f11e700618fdaaab4ae306e2952eb70ff100e860b47889c2788dfe2097e68cc440e2d4f589cd372d371dcc0fc5a71e9c26278c02bb40cc19a4d5e11ea88dcbf9f36f8da59bbb46fd4a54569ac9c7ab7bb905da3170e499e3ddad7c2fbae403568107544dea65aac1c10122b03b0e3a9ce403c232b789de83a4070c5dddcbf96d5606a34333575e8e205c34ffe15a863f223b1b419d1c72048f4615f82405f0cb2bf15ec85d3ed2fa8c580311f2406532b08d6c329af8bf437828b0c809d5d582dbaf907439c2410f6b2fad0b6db6aaac60a12e113063cbfcee2f075b4f199d4f507af83a5d6304f3f3e467b78866e9f411b40811fdbd1607fae1e2fa4e94f1ae6b3ae989c512ff7ac7ac390b3e2a67f773d5ef41d35b08ed74b9b3dc38f3bed614f653c925fb5c996c0df2f663affc336bfd7c71eb680bf9d6c1abc8bfc25c3e213a6ab5a705575e7b4efa7c5b226fb555baa832a5d38a358df298f5f58a7fc3afbabc6c91ca9be59a5c37f2838c46ae4fefc6f0acbaeec6101facfbe302c087c2e3b95e598a77e2147b0bfe414e4acbcd9239c1c9e53e5d377f3f957aee91638e59a178f9c8581356f3b487bfc8ad7a5a5cef4262afa561331f2f957fa1b41b70189522e7fdf0ebcd98044b2e10b126f549c0f313bf11e1230d2fb8c72091ad2e30784cc7364551a21e40974872a7364bbcb26362a1786d7956e28e401f1c61dee9321026b3d0fcd123d793d63a4a5aa330228373dba6c6cb082492858cdaaaed4519b65497d2170b65103f5452e8d11eaed630230dece52bbba4772ee90647ae7acf1a9e6dcf9e214c2f170d8e0238dda16170c4b6df42672aefd4d1cb5487f74c10374e1a14712fda06f3ca1e4fde81b35f40a2933981af5bcd345968d1116c951552c77c62a8839afefddd454cb0a0a239619892f82156588aacce5330a77306fcfde951bd8ff5cdf7dbe08e0b35272546a2e291279dd1b6fef63511467986cfe82502fdc51254db0ec5de2ed36c5cc65112974e2fcaf7e84d3920a77e9bc8273a9a5d215e887d37b06bdc9bf5cf896125a07bd24f4e20ba2c7120e4ad67038d83f4f9c4cd40406de354edcef140fdba688356c7349587a21adcb3eea133e956d5b65683f9bd87b093040eb50319863174a3197f33e77e7c0cb5a76283f82c10d5796d773af8bab77ef532dc4090971f0233f3f3c8e57e622cc4462d45bb63283dfdc5769eaa943ab98a4e85e1dd97c03fb03b1f7d65151eedbe3ffcc30349202128248a7742b2929214887744b498908080f222d0d120f8d52d22d432b2120a53448a7802243f95b2a9e9fe7aeab8ce77c3beebaf7acf59df3cfb8e6cc8b799ef77eef67effdde510381f6b6d03bfe8ed23efdb0273236ca2f75ce83e778686fc54887cae6199e736bd395ad4249b1f98303e55b54edcd0d78878a42ff667ad72f957e45ae34f5efc4cad98228841d5b632a3694d48b54c161dd7cefe2b0fef43f575b3f6aa709e16fea4f51e0487df68a211f6df5d7a936790fc87ef9796e6ac4df4b1aff96adb1f4a0df36f6705f0dee3fb47e1012ff9050d2f24359e4205c194580cc50c5491d508923a43d7f2e7a330fd51346eaee172b6bd8519a1a9d1622613d9f65ad323763bf993ec4e8cbce8c1f0e79d02446b6c9b4ac23f76ad319110c59f8f75d98b549075b03903753f8e13e35280220040a0f70704ecd5455733723ad84c24b515464ccc8623ff4e33d8b37c6c6aac88bde09355f983200ed481b2b5a7447548bd7e8fa9ce808f368d59910a4f9c2ad972ea81952fbb4357e610a222073df87f9814feac65c2efbfc93a737cefd12afd15df13353c28b01d7a1f9ad962532352117dbc9ac267b1d2aef9c37cd6062def8ccc0b4c875f074e0c1d15cdf8ef0fd826c1c80fd2c6888c38ab012b17ca9f1e545a14376ed225d8cd7178675b48a7b282ea9047defe688ee7f65080e83a40bc0616843f9cd3173643a25888bfd04b3d308657e3d34cb0b314168101e158281736896eb5a0a281b6be776129cb08b266f3ec08bc05c5ec2607dc7217c318d5f8e0bd0057737b5592a78b7cd72440fa7cc9cbd1a91243532af7ebb26a2a0f8c1b6d5a7ea11c8dee0171b1843d71f1c08c020a6d3008cd053c83746003df1254bc74e229f212bb5bf914c79bb02ee1bdf6a334e82199b1f7fd8bf6b36fd33b7ba90692bb1d9ecd7f7dabaaaee2adc174091ef1c65c6f60e765ad2c013575cc99e393e9cc300fbcf97d8b4f2551b176edc063486a764b2eaeeb63f2622216d972aac773f63441cfde97d8c8ccda274b51f53f1b7bde8a5441b54b2fa3e3edbd7677e871417bc1a77359c646aff89c03d9ecb87f42f8791df37c2f0ea07d05e0f5059d856a8aee0bdb4a3ecb806da11b897156f67b79572cfba9d221f1db397b7e13788a27b3e3f0cb54af117d9ab80816b1c3ffe72a81518c428456b1f55280407038f9f7b7f8a18b5947d1dd56b8255e39a33d16681f37ceaf2346512caaef63b74182077554f879238befd207fc4550cb43047ac2262ff217db9813e0ea2ad6bac14510306400870324091557fe85e562ca1a76d77b15b84e802ec34ea06ffe24b6c29978ecb44aa49c4f9c85fd3150458e98fae416013c67fed1a0659f8afff1110fc9b1c8137246998c933760f9ea4b0c062207c2e151b4f7e3a1605b39cbab301fd5800ee0b7c7c112fc4857b3fc6bab5ebe6fda3a187dc722130aa1ec44d55217d01253639bc0057b0d0033abb67919cd65b531e28f10413100cb8c973fff4e5770191d1bc3e738227f5053527f505b467fbff66e73386b7492dbd371ea1b7f26efbae130e2ed892dd76b28127d5aae67113cfb776cc0378f72edb26d883c7829bee8aea75ac26573d689daf6fdb59e3b88ca7551cca4d5c03330721c03d003bfba075b763d40d618d289a57605f3fa892502ed711def58d9c13fb3a8d5a439f905f227104d8bbda1bb277f79bdca5c250a886b361d064e5f93d044fe2dd17a985830144667c6009f5f6e786d6ddf999ac8c66bd1dbae50a2934eb0d8eeb2494c91785014ad08ef286ea4898defbae569d987e95882be8e35923cdcf2bb2db1a8f45dadefed076230d86b1a99b0cc3b27b3d7e5ab6bfe8bb6f090d5f0b2fc37d8110cc3df7660e48eb4d8a63ce1b5b17ded94dfb41b90519260894384a9b3f4a5f01ce98a58b49339dbbbb9dca353f518467400049b6585425360f799d8bce709e2ab5da03b2e7ea4714e4fb55ef81afdfe484414beb9fc4f02d78960400ac7d8f7385e7b3c498e73ce8fc4782c0f93412dad93946be705f000577db329247b10bc7a1e3b0582c47013617b7559c1ddd54d42754721e9c6a540ba85b51abde9f1d96d7bf4d1af8f4634e8148880b71e0200bec0d25cdecbc212349c62fe55db71b623b5cbc1d6549712a7666e0d80e6155e8adc8744b5915ee1e6f3217e45754f224e6520fbdbf9a817303f18a41bd2c48be5c93d5e2a6099a1e36bf4071929b83ab71e46f1809d227c49696e391b7d3caf6e4520ca12d23e728bf331454638de3f230c353a59e8f2e23459e2873423c3ae2507d002bdbf4a2237c5b4570a4666dd61b341cc91ffa265bdf85a661371379a2dc09b1347eb97a0e5087cc61d482ef90d9ec2981bb5136a24d255cec8573fefe6dcadf202a9c10140b40bb9c67f1538f64897da08dc2f224c5544bd8937a82bb73f28fa7b3e3d60a91275efbde74899755ef7e98237acfedcbd589725d4c6d4fa7d5a5251d3ca31b18309d8fd4d690272aff91dddd80ba824fdede5b7883606bf3c3c777a8d363272ad1ba697de9fb1727c267b1be26f7c802f2e4e3cf6761b6693485560bb193334d1e4a05c6fee8fc4da4d72d16742e890faf7d61aafe30df197292dd2d6257304f9eeffcb3230f484aba5a643c5fdacd5f879751dd90310945d2b140aee92b22a7c6f8b1b8cd1e1b6162be9bee2f2cef976ee1fbcca67f92059809ab7a42141d995dd28276fba24a56e1bcaa6edebc1ea9cda9ad25b5b9ae4edf3b448fd79325b9c95f8732d47613cc3ba43b7cf4daf9b893f424c6f71695522dcbf36f43cf3b00341f60be31501d7871cf8572b862d769aa31aa940affdaa32181616e1c3217e52f4ba9f6638768b2930ed1e64ec631352d404adaedf4a1655c4ba6b76dd40f7b779e579d3af96efab14d3dce8553ccb58237a705dc3c99f424972f534caa114ed33944b5c8bd6a39e617c0c80e603e9bf2b1c1e240e04f8358de991dd7d9244393706605c5626f4cf3c599763fff9b01bd33c48a61a74cbee3012e1602172cf3af8fb8048bbef16f6ba4945e117b0a0d0ae0a8a5f2b1712b00ae028c9d3c09c5da4fe82907694c1b19f4fd18bb887a88223b3d65e95e621c3468fa7ddbe829c7b1a5e60100bf7cc6c588d15963cda9eb0cd9d19f3d6126cf18d0a42086551bc8afe48d13d5914ca4b5b9f5f48e872e66899c6d55e14077fdc4b50e6c11b719b4249ff79ce9bc91276afea13a966cde24dc13557350c0ef03ea939cb46b3d394b35767a701ed0a26c6830699922cfd4fe61fab7c4f7a688aff4ff67bcc94e297c3c3d17fa55313ab90a2f459ba7495c01f9bcbf16e752e82985214a3f2f0c066aa829362b4726d4c0e6e35baccce95b42f52c3e12e6afa5d62e6346957737355df4991098d6a40300ec941a531e4cbd1775b4c09c2e21d1b0154cda78ec552377cbbbccb61486f3c9fd9b70f8a13e4abcb85277d43f08b1a11593d800c4ed260d3a3285d3844a78bdacb9b1ae20bf90ba7f08875e1cf3e8726fea0337231a13788bc5e3c084b473e34b053bfc842eaf6e5c736d449ea9ff43d510dbf7f6130066ff33cf95dfaf1a2a45ff694919e3801b1fe3e469cdcd3c91110e57b150922de667f376de65121ef03d07df888b58c193aad83d068bfd091b42ef017cc60b28ceef7abbaac4ce8764937b07707f1c15a0bbfa9ef536f84cadfda77aaaf21a3a2b1002da09782cab790d5d6a6d955e01dd92d42321efa7f28515ec59ccc4d506d69ab48b9723bf948608e8dd1aa807140175f1230ababffaffc70a36b263ae30fcbb889f6f0d4a96b153ffcbbf775c8372e16f66b89ec2fff3ecf5df0866203ffb3aede9248d69985b765a74f8f3292f647fccef479effeef581a166fb6a1825738f7f3b7aeb73fcee6f5ec3af47a07a579dd224e836d67ff0b84a82ec89fb19ef57435d1a6adcdb071c91e90fcb59394bb00d3f7b4db3e69857908d8179ed34a8020e9fcab776838de5f7b73f75a8c4785e70c54f82cc753f28cb4ea138ed06bc79cf704fdf8f282846d7a789287e39af50a211bf91689b15cb14e1700b0208ecc566b03831026fec2b2058d436698f9c9946026693030a3ee170bec73f241f04bc4b0ebc9a51f56e119547d2bac69952d8dfb912249f9a40eb1499f3ea391461922f9019331df066829a294ddb28e5307c4ce94cc2ec2be10734adcdc26206783ad6f42f0177d53ed10fd56a67890c5f3ef5ec9bed9e60ae3553d87577b71e4b17ce98a8a2ac014b83106071408d9fd8cec5c97bf3125943f39301911b963e31850c05505392894f47fcce8f79905768467bdbd5eff736fcd0e260e0972d29df420fb6ac79dbf2dd446edb004b5a71c85af6885358af6f358c5bd5f3e6df2dd0125f8709fee9fce8f78611fef15ce0138f09bc9f6563974aa3146179583d317e2bf6ed1131814e5c14166a89a0de2ec03bd75b90b0ec62fc585bfbdaf5712b1a23d6552e03af9c8175cdada35171329d6f464316db05cc55fbead5495e3d21e0cdd95b653c2e2be1b7b7b02be80bd766f6148790bf89262736eaebfd25db27575bab97c7808ba61c1c12565bc55a07e82a1d6ecca2d81087e08a2ee489660c44f92bb6f34af1411175d682bb53b7fc0d021e493dca3cd4c0ad52e8006e2425d2214fb4f85e056991a8de7e95ac7e496323b39492f48d72ab6d446c2d2c9416f53dde536eec9e2f4479c047b765dec4cc64da5645ee79aa628ed49824e7ab2edea51214c276ba2202f178af2f44ab3f4c25e21e68e67922b1e6927661277d018e123029ee998df03c9e3d6e4c2a7a8accaf234014004763ce840a036fabf026329aeaa6c2049a6c61651e7994575e055dac1c4315f55f98363fd8d192ff832cd25fb0a3497e6a2a9d3f50764e29fcf5834316a680cc9688ab95ec77f4767f221f49cf968745385a9932b30662b640c5c26b7ecbd4b5ad570b40c332f082380beabddb8ddb2a2b06860e6a93a69bfd02cdcce764c4abdfe5e77d130e584dbc369bb80ec94e75f086b6109e95dc735ce22c9917d4780f730d2e15d89922bf901327e2a67ab0325ea9b0d4ffb0f2625cc52081ba3cedcb203cb287b9b6aaf17532abee710ac813ed4f886ab30c938549626a8ba22157139c37ec2cb575bc03620225541ede3762dd41ab479ee8784214a92f5b1eaa8e18fcdcf5ea5dce6bc0b221b523107d3101e74597ee82a9160e19f244e73fb6840281c61401d77986162929cb63e62e3c1cf5b18470b76294e68d658bf6cb23b02f4c45a0915999417c152587fca25d4087d0ebedf32dcc874b78f4cee7bbd84b34a35f70287c61bafcb003424ea252a4bd14ffe08934a554a7b8962a3f752d13f109e39c70af231395c2103fb7e4819db44dcba05ae40b76e1cd7e83ee3f6da68b6e2f7f9b627f64340317c2197a9c31f5242167bdc776fa0acc142de45d782059d298a97f62a3d6fed317886fc2a1e7e1697f53aea77b3592c45463ccaf981ecac7ceff70437c2da61e22897a9a16f98574fbde1d3f35e39cef391554141ee206d5599f9b8f68d7b4c621bae26e0bf66725e94f33214ff4f8aed3a1c775ef83a2385cb1616b62f90cd31ed1eda4ace5d263efb461ec5c268798c8133d4f880226da62a3d35613f5aadb0d17a12672f71da2ea759fba7b64f7b545559cc133bc8a3cd1eba4229b3d69a83f767da379abd03e9a912a5f6ebed6e9dab850d1794158c6f52d4fba51e489de24aac806fcf308dfc120f421b4bfacc806831855514020fb821c149087512014376168f1f57a7d818363ab81de78d3b6e841c62b7cdc5ef3600acca34731cdf4363912b984e242e7bb00ee5b6baa43055528199054d516f9cd403baa172f36191ad6497ba2d1a62e9531d740fc400888370097136e1084b4bfab487f51d756e51564951d7c363a2e9d8f1d66a12f282ff5b569d835c0fd7ca394e37be67bf7c02381018f9f900738254630f1b5a019b6a351f1bad2d07eb9445f04e4d2f7483403caf7705219d93f3839a194e597de11ce43eb9fa5a8b74ff29e31a424476acf000c0e6299a47d1c5e59ee9b6cadef671a21b71471f43735c7e3e41796e76a541eca662f6a9620b8b561201721af2ff74d154d532bd7e51ea5447ad3976eb72e10aaae86ec55f81105f941cbffe2a017ed20191a61ce237e3a65ace9d55281ab2924a3fe76bfac091ab42386fb0297c526eaa23ce083afcb6fa767b8e36eb6133e6dca729e33ac4a3320ce6268ea00dc3e0cc18c0def74a05dca4b6d49ed4e0f37db5cb5c66ad97013f5fc4c394993570d040a42404040947d9bf5c2273d16c70b4e8bb93598e46a18d587e6dd2858753147ae73e01a4ae485d00f012ef96114037dba7f6a453e0c42c9be7ada0cd08c05149087c60214e4a1be605d55e803070c87542a77b553de57a4500e6d0d7fbeb6147d2d703a8af9fd3ac6c19d7b5cd235bb809731d59499d320e6ac5d1bca7086cfb07e9fbd71cccdad59a11bd18bb41cccdb3fb428c8f0bf7b6e0506de7bc4725a8b82f440b6b5af2d0a6e58b0ad7d336d51a0f6f5cdc98fe2cf5de180089297f833b194d41241223f98947f9035ec1fedd62f6891b8a09405a8cd4c1bc237e19001691c4a9539e9a86cc7b6a2561d1b9de7ca7bb9dce71a8193996588df995936f275d57f9c59c61b37f8882ee4ca262f765c605aca80306b713f476e2a6aa8fb064fce01de3955d16c31dfe1c846165bf0ddcb0033f16bd843e1b78696cdafdf3d13c593ecb7b5b942bc2bd2031b35f5a76b31b0ffa6be55ec98c6a3fd679e3a4a8a2d8335cf5d2ab57959eb8ea72a4982c50023bcc5d68cbc10c0bedb71e7f170175710a153e5c289612ed776b818bd6711e979da062f3e2e6345191c234f0c3c215e08616fa39c58a4fa0cbe2a3ca7b9eb3e5fce7fff13195692f29056e187e992a27ae48941274462810e43c31ec3148859920306dbbef5e4b8f444049d305e865efc4ca5e1143bf2c4e0ef870ad2a647fd4cd2c48fd53182b97b9fcadeb78cde160a3cec0a90c47a6c748e9500796228bc06e20d42403c017f170b23a17b3dbbe81ea3cf1cfb8d7411386cf8329616fa31823761d152213829c833c31110d6934c8dda934c0d7a1beabfde093af88b0ac5e06f3bc077cbebfaf4c61de7c9a1d7e060ee0ba765d4c90b6c502a0733560439e0bd1e5bfd89aee02cf8dc6ef113c09e6320cdde8ef4a2b11ffa05059073cabc4e0d380e8200477d51a210415f58cac012394c79f9c399987f972e1dea5b03a6334171a3f89db449756d4fd4ee89571afa6c23afae25ebb5bc259c3ff97b698f90e05382af8ca73cdc4e1b0e4b4176617944d08335c743ca01e3022957bbb5a7249db8a92eb052ae79d6aa84779696b2f442792b3b2dc45b1eed63212fcadd4916040bc5582ac16d0ebce1770ea3703070c9ff9af371e8cba78c2a02a0d8575a9409fede5db90477edf6270ea68c6ee3c4c2001d47c87d93023b62255b3916af9b3b324b442941fb465be047147bb5ef7bb4ff180596d8e1d8ac95175462d238c86c7024a152b77f55376b4ebc6cf1a35ed8def5c710e40530f2073624f4c435415394fc07f7d5fee94a425418c7d048d36e99feda5b7f58838c9923d218760d5f484160377a53dc767d75395717d5fe5543d7595534db031ae99a1e5440caf331d7c268574693d1c712fa500ea5a3f040141a9e4cee2cd8218ff6228ee037edf409ba2455b38672a3c0b572ce0bb798fdf958065fda9300c8829a0e0f89bbdb75e41732ea0fbf158becc98ebdf6d5b357ac8d95d35a3029a2f5ec1f2815513d8292f4fdcadff14f8f23cf8cf9219b027a221cdc2945ffe06c8ad22e9da1605cca799021773ee6d32ffffc51642132c231c57d4c38c25e18196e76093391eb3949df33c476f590817e8d84ea73388e715d0053fb8241e8cb82ec173fea0fd715edd3f4c9c4966d8966945e1c0b4c3ac70237bf098769c086ae4f81219488b4b99335e4ee586f7ba26b84b1bed68dfca602c538fee942e41732eee41148397fc02aed158d6e5938cd0b918e794c824d2aebc87c67e37579e9e5b92c3bfa2f4425802c18c52f398bc39e656a2bad2c82f2e9ee539ab06de511ef26f91616236123825f880927447a8ebe871e1086b88b9eb34d5bd166134e234fc0fb22dc940e535578d569c9f8845f88ca800e76da153113065da3d59b65134f17521113ca739ff938aa62dfba1c4c547bddf00b31e984e82d722b066ba1c3b7da4904d91b67c4a9bee20650dd50d32f929aa12765b024883c31f984d8f3764deb6536e25e358a0e7f5ff823f4d78d522b91e17e11aaf671564d7143c5c813534f881028cec39081fb38d22b9e73d1eaee7215ddecd568570d8bb6c06ce8bac40fef08204f04be13c384047bc409bd6fdf2ba8616f360fd7211c9f13a79f3eeb18f1047203e788067962c6f7ae71d485016b8b834546691d1fd7aa2c74f209b3a3de389ef5c7ef6a730409e78b234fcc3a21b6a9c2df520f6bf31357ab4e6ad631b92b6cdcded691a179520a6dee589ce3698b479e9803af815c0721204ac0dce4112377ca85e091e19b18716bbaef8a126eb1850a97ecef09bbc7750ea03123cfcc31808fbf3fc9c24e1c6ee7e0857f7290edd79d7edf45feac53305abcd8b917e134c25ac828abb8fdb0d4d907efe017578eeba38b7d6abcac92783497166585252d423f703d7d4e07d002e4612b02388223f3d706a9ef736d4a4b2b82b120729f349b3fd409aec18e7e703033fd7520f761e061cfa6d31ccc320b149087653b142f61de6e5d55980df705ba4d340f3a6de3985f785e81c365111fb4a71bd0c25c2e6e8a530bf69b12e84c008e39326ccb1606ce9df1a24542321c6645eff2b2640ee57a643fa3c1f9efb9293d39d9496a686c873c329e2f1f245cc03c275b418a2c8d7dee50e09cffdde647b9e8ce5cc84bd4d33f1ea9714392a08dccbc85334605a359fae805f97b7e1c8a716d32e68f57d8689e8f3d409e59f083bdd57df2483d75ffdf99755458a5004f98e135492ba667efecacf7700e64c43d454a7f2d65269aaa9d3f2d7f4569bc773948780d1929255ed2775f279a78212397b9c7417a2244bdd2a083cbe2c61dccb779543204f061c045fc70b4c940353ede749ea67534f27ef8a15064659e645d9d636dd38cc9dcbdef53471ec8991eeda636696b35295cba7735af2c8f652e70e90665b7111f65027f866e0af24b59f42f534746ff1edfd411d0ffe5d41173767e4e1e0b76010b136376633e1e637601015e635e6317337e538bbf5379fb9f9f3a0206b05fc484ef1c0e90b367d62c974a1895559b3b330b32bb09b52c0b5fd5512fca052c6acd2d97338fd54067de3ed9258d8c0d027e94f1b6a90ab28e45d6aba8a86ffbbdd1250a284afca2f854688467fdb35430658a89488bec2b7cecb565d0cf041249b29b5f5b2ea800fa6dcad7ea3b73ed0b3021e9631ccbf0d135bfb53c73297645d34b280bd8b3795fc4f5d949a34b740f180a6d57358c9e721d8a6c447473d8c8b1d4d4b1b1a3f0b2e3d9cc89c56738167fe94f5f2ac6f87aa689153eb64a3c3235abfdd86a62d54fc3ce5308bfd51b23c464e38c285c5dffe0b80268a91266f55d1f642c74f974ad86dc01722b93a20d99f07052955c84c97580cef39b4a67a978c1f81156587d455a691abfd8b14601bcc346f4769cb9c18dca21fb1e9961e46f42e9892983d3905ba9374055cc1928bed44794e7c73b58f1160ec106ba5343fbeed1198a224f2c87d780b34008300900bcbb5334792e35f6feb23503a3af0d87c9cd4c72f88c6aa8c7144c76815e3bf837989508f0f5ea14c85ed2b7a76a160ce2fa781186b27396f197c37e412013d676c382afe152cf76c382afe1528faf6fc02046f54c259caf252765705fe01ff6ade57584cbe7f5c5a0d818114d87872549ad674c3ecda033fa5ce6d5258724014e6fca6aad846b0cb3751afb7caedacee162f3bf2431db3b2b2359c284d206def14d946c6090f60b94bf254a2e28fe70087de3aa734b9b1cdf8e980acb190e276444890127306b8cc7a05eb602883d9e6d7c3dcebf5d27f9387632a342aa1466434412105366c9d12fd7451b0ffde4b75e5943cbc6ddc1bc1651e35a34a723d847d531d67592317255bb596c0a231e97ee7af568fbc2f687f2b31738ae531ba2ce808d47c8228e915fa4ea13518272e1c1a5e422bac3dfa4aebc2c9a6e0013c80a455337729dbde9e93af1e6a507f2c4da1362657e10f7a38477b8412d090efc2fd97ae92ebc4e6d5b52a4dc980d4d202f2749fe425405086f4abf18176c3cbfe78412a6799dddbdb8013c66f1488a0ee0c2d1a2a4bb5b84ff85587f426c1e268b1622a8f948b9d725d36027aeb9b0d30b134e4e85c0cb79320ba694f2433ff8fcfbc4f13b312f9b58d91ff3dd975735b8364201d5d930f7a397cab1836809f025d4d9449e0887d7a05c06215084001397a549f26c825699707e8fb590dd0fe0e7798d2583a9ba7bc6b7879b34d9efbb21cf6c464056be5b5952df7d01483e3f3997fb972750a0e1a5d59f3d6e053f0f29b81ae7c62063655d8adae9b14b20bbcd623e3cd29bdc26546c3a794e87fb11aeb590676f54288b14a0b15bac1124f4de9ee196b39e8741182673e7b5f2cbc34614171b6f1bf47af5967cbfe93d0827893ffd5687ff33d1a2bf60dafeaca72d24fd91521f10cf3cf1ebda1bbf4b39dc74edf34cbde395a40b389d1f369f2910ef3b89aa44659fcd8c3cc4c6e3e333ee1c03a869df62280cdce0e36e2d19836949567460bc3f24dd91cbbb45e4682340a858fb6d477247f3e15c586149d0f20d7b285c366e2090116ce0a249294e394a324cf299acfa2ef2bba7f5648f934a5ca9d8a19e49d634c13e0ef73e47db27c4bf7af513ca4168f6d1dcb496fe06f2c4f613621237514f82e7c0d06bb6940baabbd5ba14704e748d70c175f5703638b1c1ad862fc4eb80b65625dd26e720388072c083c35e73db415781456e7d674dc7984b69c9b88b5d5f882fe035d0873520043400a833d161f2c5f41fd1b2f075c77db8fde84a307d492cd66692ee062adda8fdbacd17a61af066f775fac323fadca586359bb7a834a9b645e587e9a43ce79f6f0f3ed023d4f99a0dd78980f2d7407910504e7fc827f26f1547a2770a19633a091aa675dccb4c092c214126cf594885dc3a097c6b505afd0a35bb7ea737dbc67f20e7fb4ff9be0fa43f5e977f12256c3f44ffe4789c11af9e838a10f439bc8d5373a27f5d7595c4db7270b3eed7bbac50fdb4df601c1b7f40f4614fbb02cd1d87837456610f39549e86bd7be31df7506d5daa9aff1426a1dc52936d4f3e398f53e53d2e74b3cf68ac375cf26f575d912846c466e715d48e8cfedbaa2b14645f5b637b0621d824818c59111e41db4aae9a389ff1febbeb23ee616872e522aab842d9d37e03fb43dc227ca2c4b770f5b460bdd8cf7eb61ce6736378e6e816f26491833c387f9271a6e91ef344a1913726b3cf33777d6ce517e28286ff0f38c728e251ecd705faddf5f9a2811365bc8b73465f260b9487b76524ba11f40a1f3e38629513f074903287585c79c50360bb5c0a38a050e7fe4c5c5794bd581f208b77795247db6f3a5139be7c2e3471bd06f5150881da09b8bf44f1fcc0817100dadec32cb1a8aee951a9dc5153c78c975b0ef2dbf75eac405e17752350efd613472108e8d7b66e67fa7f68eb46ce421af293b66ed0ff83b66e17d14e4bb33f1b45a59dd2d60dc517040683fefaf47df07fb8ad1b58fcef04604020f07fbbad3d4f6f2d9a4b0d29aba2bccbafbe2cca233601faefbed070472cf16a9d1794220aaf4c4bc991c965d0654db77c181e2aea69a4295f1705c93da0261451d63613393465a7a52bd63da2157bbcab1b30e88ac9f0ba87973f53b7f29e510d3d594705aefb41305a3ae69dcd55d7c4e1585ddbd94d2deeeaf0d04d3c9c357b8b14d32424d384fb2cbbf3977dc8518ece2a89853eee26400cd8be6f4ae4aa0bd97bba258ad13e01c22d63f1720e4ed69cf6c664de279b7355445de98c20451d2b89742dc8bd24c0a88ed5355faf5e325e7b4df4803bbd0aebe09370c969d74794a23328abc1fbc8b9b9d24000effacaa13e566148adf747dadee633f23c6f2fc99169322570e4ae6edd0eb8ad0d2d6a74c833e66b5f6149107c5e53141cfe0c0b43f00e8b7a4cbbc9dbfd8ce61d94e897042c0c537326c196f5ddfb20dad511e373562129c5122e52f39d3cd4f9b167a4ae1f847ba9f9b46b690971e9614b90575ad816579a60dec36690e6ed63b095bdc4b96f236d9811c368bb3f9951074b5dd0610a21a522bd2d32fdde6e6c48de0ab3792f7531063078b2af3877357920f3353a0cdc1788cc9758797cdc47bea3621ed7a5f636d87d575b1d8d536d2e3efe4c34225c781580f88a54236cccbcf09dfd826f391d4b285f71c38573ea1f674bd3680205e6a671542743f612bfc537b2fd1769d26110b3c4995f8637c020468516db212b0f4120fb2234866b5fe31c26680cd7bec6396e2e30d87d4d0b7b010703ad00b4be9e0f3f737395ab3a64a6b576323ca90dbdc7952a913bab4284d653420a1805b26c88311908b104de7fa09d7fba55ac2dae34c53e5e195c56fb304dab5b3bffa4c3439bb5bde7fc3b4f416363aa527c14ae997bf2feae5e4ed8b2a60f4c16e42e1821afce5f9d18c0d21c494c90ac10e179dbb886f010de9cd2aeda72ea00a61117a5eaa8cb6347d8c813fbbee7d2cb57c81f5835589f61c3b0157315613a7e1a434ec8167615b57e2cde4f5b701379e2eb13226208afac4fdf553da8b30f873cbbd02196de467d51acbe20ecbcfe43af0bb8b74abf10d5016ce1a7ed1933e464ef27e5f6dcc21a9509b47ac8ab77d8dc48aa55191271c79ff10b71f08f3894f6debcac75780e3adc6ce2ea8ef830ad10c1c1ca0d32808e06fe76342ea7101779e6f00f0728d227cf43de3317ffc9e525f77fa62742472cc51775d4487e0bf9e73bd72991b1715667e9632893333f147198391c3bb7cb8cc87e9ee4ab1f3067ac5d26355abb771f4013fae8dab10f55133b0a60c8b46bd517f334529b5e36e11ed75d1f5eb6939bfa5eb85654f364d78009c6cc102c0171b79c116dcf230f27dabddb59c432d01470a8ec8dfc52be39295cc378f243e19acbebe71f8b673b41a3dd6ec7eca2e217a5f46ef4d4fd9bc2b5df5c26c6b2a0ea3f990db258ca0a30854cc930db59f5156ece7665c95a35646e6325c7192bb9fea6b637e3f6b5286daeaee72415a76dba51cf06ced1d30c5f651c011cce2aa23e5e1f505b26cd395477bff5aa7fedc3f15bdc0aa7332e2a3d5e81c5d4df5a6f3d65df5f36f3321ecc0b0c6ee41d52c149ec496d95891d21d1cb579e7f2406290490bf89a33fb434029b30fd6bcab382e5b2b7fb996521b56a1d076893f028564d4ef2435e418328c2393eed295f3818b0b00c2531ddb054997bf4cc783246399fd084a4caaeb608a3459ec92e6fa5e83d7067e7ec48aa0c4565cb73dd1c62d33b7c079139fc3a20ec8fbc5fd0c16849c924b1bf698de8d80aef2ab03b685a4494e19de4d0f31911315a3a1c2340ebb38677b7017816f92b1a3fd143e7bb1521a286fd7642360a3eda71efd89864038d3bf8b86346a18aa3f64b169f90274e9e1095a3f95373cf2f27281a8f68d28d3d9ae1fcc8c7a4902b44eae229353d6afb59e70bf10610552fe562be44fb249237ba8b38f922bd06cad48722dfead2636bbe1d8710d509d506c4e913a2d270765b71c556304f352183e44d9a927b99faee2cea56bba0a3733f85dbb11f9127cec26b50394108543620166c360c7aab93b7c77539f392bc363fab4493a34cccf5be0cbf30d931a54d55e4997308e8c40f4e04e9f68f4e049b3892c47fd289c0fa4f3b1160d0dff021fe9f13f1979d88abb0c498c3e4bbc4bf342ea58f0a1dd67fdb8948db109f4ba962d6a25e274873cde804abbbc2868ee7098ba56f7f028ff38b692969ab96cf98d743ced471d6bd3c4ffea2954bbce238397fcd362c50f6ce1dd1f5aabeaccee2a17cdb8f3163af6477a1227302622a7431a63bc4c194b252c649117484c919dbb873683b1e018267a5c727a62536194d122f73bdbc35c45385dbf062c853e1094b99ce758485cf134d7cae970d618f2609fcce0811118f7e0646f850dc01bfd0977b292bc31136335117b608c52a1cc72d2af7e6d2ae2da1dbea37ee9e3637004dbd97277d51a3e1ee59aaea0ee25e851751a2b702356f3295bb1b068fd3632df2f8f0db14ea069a939c58362d1664642bba477be9a16be71986c2675b752fc7dd74399fbe13044ea5bd94af5fa6ee4a0499cba0d7ac7b2e99fcb2d15a98c72bc2c7594ad7682a279bba079b5956d7cf2b243a7065f705cb2470d78e7b15915bc9fa095f58a437782d067bbdbdd3713510ae46f0c3a5c768238ad716efe66e423eb89955abab92140ddcdb5e7584c5da0b53dff09ec176cabd6146b583de018b1673378a4281fb025b472b69752170063a81cac3795e37d4e844af257a4db6b56777dbc407d1a5a200b52ac1f331826b261f20fe5c996f515e9f2d9484d61eab4751c4ae59aa7a3b9d0c9894c1df6d1302a6bb4e715b7e765f746e4209bb6ce37e430ab5039b09a139513dfd5de415e63f895ae7b7c16e600fddc5787d189b9e0f04b43a686ea6b51a0a34d230deff6c1d4e870479e2d20951cf7c83d5e36aea1ba840d2d5341ecf49aacb209f1b320b1f172d9e2a7754e7b0214f5cf9a3fd9ca7de477b0d29abf8bca751146f93d7cb0852ee1cb266568a1e904386854b24be1035804b8f95e771bc030a68277832073f3f1892016e6c4de2f38da24f43f9768e6850be10d74e885dd8a9410f747d131fe0467dc7506aaf4f843eaca43789c3dcf16b62b68e98eb90276e9c10b7c2a4280933b0a0aed3a388def21edfe893c6dd69a035b7210a8e6f1a42cb2e479ef83efe84d8fe7a40f895942ea1d0d80bbc00546f9a9689473385e8afcb09a8f2350ebd086c449eb8fd8773c299e3344046770d90aadc71cc1b52595f0aa327b7b63f5eec79f28ecd8ea97e1079e6871f9c93caefe78eace9ff33e78e958a924197011ebdd01a5397e071cd75c1482bc73cc53949fbe553dab1b8ec271f11127f2020e29c2dbd4a8f8c559d9d1372d16c6a924e1f81411d63c3aedc5057255df2e13f4e93a8838562ae9c2b403599c729e83e00499fe7e7dda1b88e5fd25d6b5d9a07a23d7a00749c550e2cabde04edad018cf4f1e04b25fde509b6f71ff5a4ae3418746bb4e7653b179726b95719356b9220bf90bb7ba93f042872fcb9c29c61e02a62d4d2d30214975b88d9bf0628d2daa9d8be0628d42ca8d8be062854bfbef90078be001129a3c0babf2296336c31fa06c5f8ca45cb124b22fd57c67abac6d705704e36c0a5694fb58a43f05e85b7a662cae5296d3d47b3d6297c0395333dc63eabcab12bdf7643b6bcd0bcfe48f574bc19d1ddfb7ed232264ce7c94777722e11b9d31f48723f4c9cf872c19a0055d9cae395da3d0be1971521eebc212fcdc20e0cfdedcfea6af0b145d0f82edef972c17b27fb8bf0632781daede6db15e82d00972fdd53d9888abe4166c0332784f55e3754097f1379e23ebc066a0342402d238358d356514cf6c3b152f9921686763c95b334acd2751102acf59662c12cd12429c8330f1150d21f1263726128372c9ec0a0fd93cba72d8c8814fefad785491a38ffada05051e6fcda955c28c8435ee67cf7955cebaa4204dc179875e792272d1d1f2dd531d1779673c084abb20aa89928f48c76ca0a98ee2bcd01d852358e309a0e5b00d88dbe923389483b218cdbb60be5e10afb34165b15074f0db8068225007f2d40652efd2a3790e84567180e8ab946ccbd3176b76a6cacf4c79359e10d9c047e1f5e6dd6fbd680a5ab31020b7edc12ec06f7b8769df6ec3ce879baf92bcee227613012fe87cdbd2c7e55591a0a5a291626ec003c34c2c6c2dc75bf2b2726b69f4acf860aa6ce60a10cf169569cc2f8d359564ee8734fe1e832c1871d05e65c242ad8779e7b6649fce55f37c1aa8a26ef297e4ad2dd3eeb8512c2649b3c3aee7a47e20d771a5e1eb8dbedab14db42c99d063eef1d5101097c6f379f830359de81520d819720a117247bdbab1a3a02d4e30f3e3d7eadbff6c3dab148fc36d66ee588d1e27958dc324979346aaec8b6bc80f88d16b406cb155bda85d4e22f70fde25318863ffe839672d421fec55b6eeaa90753e6e98f16e3531272fef22a7bb4d46ea682a27ecadae924ca5a89fa995be29b7bda20424918b5a5681e83013767a2686fd6776e7443019415ddd54ffada778ea5948a3eaedddf35bd7c4b16bc0e97536a3580d050849cf99bfad29db6df1fb895586acbde31409eb7ec730c9d87a25d248c68416b0cb5fff6b5d7f7915735c7f01ac84d1002a207a819a2363871df19c86dfdf8c1674b0a4f9fb2fdb94f972793bef519e9f137118f9066298110109cefe6c1d513f3c0711efc4f4e4bcaff257e80e867e6031ac578d3b331cf1ad2c898076747c941778fd51ed3d14f55d8bfd5ee3769397c29a12129ce0c362ea3ef77097b1c50887366040a369208b5fbd6b232483cef6cd488c8d794270c67cff4591de0507f1f6e8ef12d000255423182a1f6bf3a17e3692c6012a83630daf386b165820453b8ee85452cd2c3cda7641a6c0571e6c6250812923ad404982b994ca8548647d48ff83f49f87c1af607a49a1f05847c80453e68d98d5f003838c4b501173bf9c8c878911f5d8e4a1f253e7988f7d9959245f2a555befd19c1ef4e28b5b0b0b575659fc441d2d12ccfbeeccad22ef2f205f99e40a8ed24022933f7827bdd831b9aecf87b730ecafb128c1c9faf4eaec71aecfb85204f84376bc0962004d81440ef9a2a192ef1a33455a734903f7866de0e4f96b9b93415265536dc697be5093509f24c3404f86c0d980001c6f5e3ca85a1b0a5f1c29ea036d6c6c8c7ca49ce652a951c3843acf6f580f081694669dfeaacbada9928cd373cce69628afb55091ecc5431e1f35899d42a2c0123f076ae57c961580d5b3ff91ee65e4145611abcb4fc67dfef8531d91e893ab7fde4f358263e67650218e5e6164f3e8f6b61d1df1d88f51ffd22a431c960e6fe707517e8a086556a3f5fcc1632f57efa0de9031bcc8ae8ada7f05e402484ac8335b8202b29a4d4da0a1a69e70b6a2014bde12ef1bafa33edbb9cf2e693123d13be5a716feb23bbc478cde1a115e19a0b241ef42b88473a71cfab0f250ff591bfcf1827d260be1def0729104f0ba7d0aa98b166af75399cc82dc96538de5b7d33ff89923f6a18792216bc065c0d42802b81b92ab7a46375461168e2b1765334225d73f2225f00b15acf78791b2a9b59e034f24c1c04d8f287ce1079fe3e9dcf60e023c9f7a77586085ae0ebfe1ac80905f2757f35e404bebeb1ae2ac28483818549ab4e0ec501505fef475adb37eb84f077183780e497a0224c8cd761e93a34be00e9cd887162770a22cdfb982eb22b6f3bdfdc9bf62fbde06be07947b2d54882ccbdba6fef95df6c330cccc53b02e3cb5a06c51808536f57d6568b98f624f57938ba6090ab6df2fa569bd15608ffeb89b972ed0326b35c8a5827df55d2a94f14d57f1a22e9265bc57aeda1b436c3bdc03a4fcea3eb956f89dd9ffe44f9696c40eb5f27e316e9f931f20216fd326f76a344ccc41f2585a95dbdd0bd2d15f45e6ec3bf33adae1cdb5ee02918b020d51e6d5a512a4102f417976c39f3533ad17064fbf4c8c277764251e614ded620ba8110a8ce402b4af6faa0ad56db6abed8a197717663869d6955762281ca82058191424bb6ff53e4170f17814afb6309ccd8ff40090cd8e159cf7fb70406ff39f429c1ed20244b602cd8cd4c8cf9d905f8b98dd905cd7804d84d8478f8cc780b8db9394d39ff76090c3f17bfa020371f178fc0f712183e6e5e216e215eae53136014d57e5df505f705e8588d1a09f5e4bad10a75e49b09861259a882bc3b1b3c95c5a487723043c8da2f03c47d9b8704897714eee0942e0b76368938ab7ab7223739eaf1d9a163b4a7bf59f8dd527a75622939a41aff93cbe47edd56a0ecc6074f3e41e574dce07ad5559174baa5c40bc40c3658aca510232c4576ee69f06d1dd13fa65489d0e8ea74cb14cae764a1d80004de0fde607d5e772fdeb75d8f793d775cdacba026f33987b597815bcdbe93417e4c0d580d0156f14727dc83811d13dec3fa525a4031b72386fbb1bb519b390543c4193b077cfc8e59b67dabe7a025ba7f722bfedd449c3f1da950d5eab7dea2b15b1847d9cdd5595ab458d62c3a17237ef8f15ffa52569f98c679c3b7ca85aca40eb9c00fd0fd5efdf4ab43cc4502a981bfa6639c2b1247c6fc4c8937bc143eb6adad95f0389f9e3b7df9953b1f1daf9702a7399bae6c2e119b1a40ada2a5ecebd852b44acdb24dbb3e598443ee0029212c93815d847b45159d7ff3ff0b0000ffffdd65f7cb01000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000