Blob
#0x0163c3dabb6861105482a9b78cb6dd289a757bb662757cbd93ad5b76fad99c65
Versioned Hash:
0x0163c3dabb6861105482a9b78cb6dd289a757bb662757cbd93ad5b76fad99c65
Commitment:
0xa33f76fc7eb4f40eaf32dab8e9bd515e4a449c4d1dda1b625eb3e792baeb087e01e1f04d55276dd72fd3084a97d8a63e
Proof:
0xb97b7815f729f85e3a17cf40363155bff302ff4fb1cde5440633f5fd760c197551e12177a36b581755bfb4a88e422eb3
Size:
128 KiB
Transaction Hash:
Block:
Data:
0x12000070af78dae4bd055494ebda3ece0c2525d225488a843488a08484202d5d3ddddd3533740b2821f22a25dd48333482488734028208225243ff176ebfad67250cf6769feffbaf73662ddeb536b387ebbaaf3b9efbb9df675ef7c62411d6900f17d8f9b7a5fe10efb278392a1a897357318b8f32729c26a5823b98eed1e4f936c38c9893ef4251490701f9cb63fd08b47bcc2762358c7c6c62e32429d5eb4f1e05c632db918e5f51b1770114c50ca2654a6b786da90a9e68707e96682fa93b2d145c351a5b16c9653be548086bc8c8e6d9d086800ad4b57aecc71472ee9dfc341787bbacc25385595527a417851c06737ad861d900563e1ff1a2c38cfa5ac61a47bac9ec316ae30bf7c6934d13183495ccc21ef51c7b22ac2103b7cf8a16f5288a6e9cf0d67ce3ca7974b7e09755ee71a1644a9451f677668c5755141ed20222bcc3d38fc8992bd590a2b776081380eb2721fee25770d6451df5ee29d528e502ac217ded6745abd92f2bb9b6757ccd3b4833b8bcbb8304b5587ec82261f17e30caca156b2a97da578066e480ed50e49133711e15f5a0a75749f4269accde18304c52e05c9a97efc036221222f90c76deeb0d1c8a7b4b243e9334def48edbf52cf626fcd61b8bae9b44c32595fe196ce43e72483f78e1f1eadad27823217d7618e705bde8ba6b17ca976b70ecf363149240a593475bd9f2271f8e91986062d711f20097e39afcf5e197a3d6e9790983b27d8eb7fa3c475370f3cadd31fc2a5a25af94226c2074e760e7e52f22414141c0afe20825e3f9e2a7a75beb29d70952131aa6463ef2330552831a25afeadc72626bb0eb00e431c402e87d6dd218a24239e3669ed6afd08145ad52d88bf5822ffa1e613a9dc211bd3f339cdb1dc1287211139af5ae6797616304be9c2472770fde426172277224af9972857000ce61240d7fbc6dad3498caaceda07945f37af6db6b42c354527648a64666f3fa081b0821f819e18600ebfaf6e6bde95b5ed21205e1967655a9caadc46bdcc717c8667a1ea65623c12f005fac1d7539e68319bb9b459afdd7e2d3990bf3124817f030b53117a7f519586e4c236c20c46467b60e139d145756e4818636a4ecb1ca4e25040d2febccd7437fad3e8b82a84923b81eb0ef8a139d90f2e7769ebb7ad2b52a88036f3157a6074d2378ee908fae83c3c2a9ca158c7082822334200fc461e7855e373f434346c67e820c0701cd23af986f87b489239bac4b2e8d8c4c977aabf03f27cf223242988765adaf65e202fab06d53a86e35e8510495669b43e6101386f721a138132ab2174a9e373592d34f9d78f5ec664ed9dd31dc956ef4488e6872632a30cb16f21bd5f5da255a7dc5bb54b293950fd83c8e591b65917fad7a67e0483abdb248c333dc2ad7342a2eea42c9878e356df0bf023704d8afb0c49f90a5a81d5e7fde360054d1c75dc7215a8c2838df708ba6feb1ad32eb7b80966cd49fa037f2fd5b3d77eb83b51d8e75055afc7d697f7cef23aefb51ad5191556e6084f31f55f12361389fa2fc3f5f7e010d0701034c4d5a7d18651103f7e7a490c9d80b1695d2e0b0a0dc4e92a5b6f2011b99b003600c9482379ec7f41f9118fd5e61513a567be4200b72a79193534d6abd62b7965dfd0638eaecc0fe807d18e696c15226407bae61dcd32586806c1d18326f6352f8ded5d7d28c72b370001d2fbeb6b82c00ade4a1d114436265dd3851edd59d673a3a7ad33e8305af3eda7e031cfd570dc6bce36ce38b7ded90f6a6f78a3caf08ef82fdb51336df51b4469344c1cb8f2b84300123f30ac75bafcc9883333d7df8a9057ae3f7f1b3695117a2db37a7282a75f5bdff048682e8afc0708c3c1261e7e3b312217ba63fb738a3ed20e93e9306ca41e180dd240539c33da419ec2d517cc793aa0f8a98d5b74900e34bf7ae6d12546e5f7c78b873f8116df113b9cc35f68f51e91ead681e166e61145f33a77728138663c8ab0f3b1f67a8ff0b5c10c0dd12f05afdd28ad6010dfd966ab0ba5521557363d2b4a8363e4927b1a5376e21a08f859a60e2173bcb9077455d5485501ae3e40361b6685d6b5a485d190ca782ec1b83c9b3613806086cd8f93806ec5f063c8eaac652d15b5489ab657820db257491ce381803057d6aabc01398435486064602e08f9219836d94252f899f361fe3fb2d86d4cd7b5c640c1377b26882c70cbd3b5d5125c3613815816759e31667138783ab9357d0e5a91618fba53266510b15b91d9f5c12d010a321d42702019783598c5d90f4b9ef1a219252dfb70a6905f4c76676a5bbd42d32d6d86e696c57f982115e9fe50d817c06fd03d923e2bb18cb5dc839656080f3061212ac6f1ea7180e027c1e2b0e05984ab8076a386f5e2d08113fd8b1cddfee6791bf7fbe57865a8fc61bb0edd450325c461ff76f1b60071301af8e49a4a47581e9e8265a9ad38349193f20ac21d2c059add541b1f7471a36809e1fafbad306e7af21a127240e97c8b866e0749c3cedd86d03385aacbd210723c65dc1acad63d9dde72893622734377ce6d21a065d7ce823830b11d61032fdb3a10d022c89f7aedc4ea8e98dda3ffc6413d5d313105971f221e19e730432ec8e81c44c09c0788f788f377439adcf93f3d293ec08d8c705d62277011e7b0ac71ea51907d1ec534f469cd536ceaaf82cc6f2bbe37376fe17dc925670252e0b2b4c2bb93da7967e8b2be9dc74d310c015b59e5fc113301e9a35b92e4d6eee372dbe9c6f23b21301b2b9fa549effd1a9920eb267b56ddb90eb1263107a28e034ba35d57573f669414c8b76f5f80d2843a6606d54062e40bd320f6725bc29c72f69b1544b97b34adafa58b13c5dd0a4e8b2ce7b22f7e7c1a77e7b7256db2ed20029355a0c1a44986d5f66e07aba684d521277819430f461c5f223fb17aca63022a3ed21eceed14c26f68557466aef660390b4992e1ab4131e965dc219c121b0044efd7670e628d9827014153ce7f09323c5c7863a94d20583571dedc5aedebb10a5825beb1f0c7852cb85bacf934561d833757b0135d723d426bc02de2015753a0b1a65fa7daab9708a767856252db12bb564df04aebe1e51e054af6cca430a2d4d98ba42903b715b272994e60d1aa0aa2d633af8ce4ec3bdd03bdcf7158d560913d30bbd4068f855916bc32a6b5c58a751127956db3ac87a963660e5013df9279d8f949bd189ccc5a2a7d56a9b433cca17a18fd5b981eb10b91df5623ab20b0eea44e84cba5c23754772970e8c02096ca2e8a6e49f259b9cfaede959d108840f9af79c3b35ba7b45ed78e2b4e53e91104485a06001b484f23cda69625b007912e9847d10da4bb157aee4c35078207f9bb8aaf71448aac8ec622ed3e24cc4a9204767551221afe5e8e8eb94e119652ed52d43f390cd411b4f7df89090d4b4870e926370fe0d70a9df47da07bf5ef421a9e924b6edfccb224e8407c3f8e604460f24474743bef854c9a8b3a239debfaa21753236077d9b4a6a94061aa2a82fab171db66d3924efa3c9551456015c4ee24afb1a5ed53855b525625c8e23756e8a3445a47f64d56450d78753a07720ac212e32301cb23938c43bff57686b00f4d0187aed52280144f120fa4831b180feada6f45b9a3184a703d93d44e8288071d318d6fc714eaaa0293cd1ebc4c4e7fd32d1f2d498afe245ef83279bf9e63d086b1d46330c7bb0040912edf62bbf25b8f947501f3c4f5a66d30b21b64749932a1b1875455265c21d31319d685ad100f4284602f6ba68eb076ea718e255a675b93a1a73df63d8f0c8938a95894064fa742122209711306c98863f447deafb6819202c6a61a49fbf409f6d1722b8ba7743961b7ef84cc5f9b631fb9341ebda05dd773c33012a429dcf15e9dc00426fa0e3bca21ab293dccbb1f82c032b6a442962b93ea10bcc9c2b7b92b022086103e995836139d78b409171447e25f52c0697d8c110a7827b1df2ba8b375609cb5c31938f032dd950a1ade8ed870d72ad00df069b21f25a9a2257712ccacd4c163ea489fd6cc915afe15b57d2de3776ac575725831a0f3f2f89779d60e88ce79160e885384a5050307b3c604ba0f4e6e8aa44c5a00177976f2f5710ec0946300853c76a53fe03403a27eb4dd0a4ac94a5373a3fe52e7e25bfe013aacfd1da07b0d91d7f0e995e716db83f80a187272c7efe35dfa303e4354e9fd884f93b0da412a66a61a0a964bd7136015fe062a099e2f2bbeb8431b962c147a279a1fa21b3420febefb8cfa2166d3b7d7843f4b51b1a29f8c28d383c1244f5e3cfbb217354f9906c5279fcdb42b197135dde8bf1b667058ff2b93263474e96d861dff5b600b402db8edd404fc7fd9eb9369abcc72adc7c66f62e1cda55415214a406995f0bfb8acb400043dd9e43829dc39b16ff05ae3f907cbe3ded6609f639d8f3fc809c06d2fb877141dee693cfa2e03393cf37f6575200a11ba955b92951a4bcb03271735ea479926e8c97c334d2681aeb4cafa9346ed47d3ec5a5a33e332e0860a17c26c3e902212c664fc5cc5323cbfb70dd62422fd0550d0f16d2b4a38efb0ec0d711a03d961f674ca88fc34ace8770174221a53189f8311400d792088f585035b23b780ff973ffa7f115178a825e189f2f6b4bc3cc773f41340943799f6ab9af1102cbc5bf1a19454fb0bff3dbe0277b6385c6df6894259b96d12f6b551479f7fdb2b5ce4fb3859884eddbfff44d719c352a37be1eab1bb394fb84b4229c9e60f7dbf73f7ce7f5c3bf0d3e7f94f5387df5db5fdd58c326bfa06a7bf7fe41f392ae794b684c6293ec2ff279f617e9be50234c63f2ed6f261d354305767bead2c6d0da6b0c06ae6a50aa99fde4f377a9ee17aefd931afe0d358df077cd251983ff8a0fbe6383c8af6ae26fbeef00fa9e28a0931350d14a18deec4c1bcab0cd8972a3154d78d173033ad077bd0cfa5e6f0f3a3901ff9da02cf605f707a6de56579cf4d458ad60de4bd27d529f7853aa796921d9c57d6faa0fdfed917d35a0bbaee3eb2d5918d598d80d7f9c1b74dd43c9ac1503179bfe721295fd6852e2043dc21a02f786a1f189a2fc3ccd3f17fb6ed83b8ffa73cf433637b3684daa15eac2699ed6fb5e69c7af6981e733ddd0d604ee36ccdeb353ac4833dcf399672da5813b721e563896e22fb566145ce61ae157435843ca034f33bc3f0c3d43ba93f41da59a5d2ad898c4c589bb6d4b4ff2d30ebb0564f67db16b4e3dcee36171034ccfa4925bcf1db4f9ae28211b3f97823e1c6813c0337c4fd4113bdcf74d14ab39c21af2ccef14cdf80c684f6d722fd2e42650bafa5d41b73f10106946d9b54ce855467392f7263653acbd07b0b7e071512f9430ba52253adb911b1a76522a36ac0c9c3b27b56c323f32ff726d0fec24f1190c8a5c4815efd6413bccdd227b0db636173a7a8b0e9f9e569a19370822ec40741c570d46e9e8d82e338573fd7ffcd61f7fe62f040a125ac9a3560701ca8a912a2b3b54f4a356f1f73d777ffe0957efdffa3ceecde89fbfcf8cf39bd58ffa372b0332120884f46f7c32f2af7fee1d516f3ba5ef7c42a31723b87340e4671535e280a0a825f2ba40811ea80a3a58cf790ea03f7027e7abddb0dced77c26f94efb144f59530331c9cca30d33212a0a3dbb43a8d71ffb3c6f81561f14fb60f51c3404f4ba79ebd7eafb53f33a0459da13e63c210dd3370ee7525a0ea5a2323b6feb11b33b3afef63625009a1863478c460f14a8ab7114ceca26bdb295ac0d9d08680fc1d0b8335fba7f505ef58eebabf620cc5a8db7acd9660354a70fb63d3e5352a9d70c03d074f6a93199b9b4e1435cddff0e4620079f06e2e97b77b9d89d4d352446b12221242b5fb0b1f808228affc8d3b0268cec818b251fe7f48cd7fffe26caf23e9a3daeb4b481b2627049ab92ceaa006bd91489cebd2ecaecee1800ee99290a43f07ff0b05a71f18b7f9d97dd58a382964aa5d967a8d3b09476415070817c894d5173a3463df2bd8a005b64360765f26369f35ffd010a8cae3b6cc75240e3978706dba29cbd81addf0c175a794edebe9065a4d128005fa28b28bbd8571dae5527f5729765e8229a4eb52a89e579ec8523a222e4e72205c20971abec05255fd009682338f97f5345bd8d9542381d6ad0c09959d3705b279f805701d37724a93755368099a028508460060f22e2845d4d7c3cdc26e2fd91423d7bc704133c10b74eddac28a57b031433d0ac20542e5f997ad150f9a745919a6a0c1d4626d28ef6882db3ea214a53954df88646db8646d938602c891857194e5f9d6537192548c6e068c4873bc643e0914ad79b0f48203318366e68e88845006ff96cf73e49cb738bea4172f867822c59d080d1b37a4064fc7ca74f798c7b464a1169d87afe1eba59c23f1807b5310f21b456b90f30ba465bfa24d91552641b52155b695d85b9d17f456d8aa112e026af52f74686f7c5f05d4dddcaa36abaf2a0c0126568528bd99fa07a4381f320eca040a79a38e0cec1cb94462e4d9abc185bc72ca80bd3ae6065f1b9cbd12f73770dcc3a5794b1db2652aff73c675267d19c41bcfbc4ec5fff80bd8ff577caa172f1aebd2f3c43040a3298e8886fde3ea808b4b4264e6c5a61ee60c4e714100390ba6727dfd9bd7a39ae6f5d7029d92060fec1340494714c8d796233122d1713310ce1049b1cfb090a28d1fa0be1c3233daf8d65831d44c48f3469fccd4c7070e4566e293f1ee100dbfc15962f504a34810e1c63ec0f0fa097bf97a3e5f204e18eb745c7a806fe8302cd30e6feca477a55dc8b12a016103015dfa622ceb497c1c5ceedbd792fe26fef855c18d5389e424a6545bfe304951069fcf46e6f68c0c39c66e943ea73570104835e4ff30a124ce6a1b426d7317d5c433ecf1811040111a03094cb777b3043ebd7beb93046c2f7b7ac02a87f73c0a6e460ebb6cdbf9aa1030a2e2f32667baf48fcdc667682a987ffce351b58b2df6c288a5cc71c21cd732624e83aa62ff2a7112a8eec51fd771f0141243bfe0cf2abd396b50001c041419a4a46af39006ce545330b3d8e26cd3fb87d89e20297e0a7a1e7ad7a9fac1480470ceb159e129bbce3a03356f5efbf18bad1b4a3203669f0ea9d12b52a54ab5208e1136505012c51ffe51a6fd55b15fdd110a2d0817d4b0a1d54cef6d71b13c0d127b52f500fcf415193f4bb4312b1c70841df5b5bf7abd5490c9a8cae6f94906d534422ec5864cdf66a79f449937ae131b610d01519cd12f438080f9050b631b4e057b670de573fd9b258e9c41c5dbbcf8382f363a96e95bcbdea7d99f2cad0e32b5d22729b2a41ef216441b32330607af5d5ae9ec7e86328e917c1a0514672d025203f319b64fc63c9579428bb6b73d610f6f3da70c167416e12dbfcda9ff236a4b10e09cf84491f3f66949e814c10d99f907a2b2ab29223845b6e1cc170e14e4ace2ad4ee1c8cf0ce78248e3348f1c6c34b81aaca49c42f8c1304dfef1ac23a38bdeae5033095ccf0ab0ba3ae3be36e04fd02bd8b6746e80c0446291e4a937b9f693a590c84f7373f782f7c0eb101ee23ff0d0ed44e351a0d8876b0f1dab2ff26b76ad0f3d8d30c75863a5fcabc1b0fc078a63bfe81b7ed1f820817ff1fe0a1a2310fc17ef8bbbbc2a7afb9b1c81bfdb553d5112e0ac587dc6ffc3ff01ab1857a4d2adfbe7e918b2fe0b985b39033ce7aa6be274e850e25ab19d2072bbe4012e485855e863bc979db09df9512255330eb102cf33e7d9612161557daf52fe3fdb1a4b71691119efbff281c490c74cf98a03f2640fed38f876dd5b8450b54419d998fa13b59f1325bbdd11e3da35c3402ad3701fd54843e3bedf28a34acece02caa8640033e3d8eace58a6e716e9482b9ce6f9b9980b3d1a4c22b7613282a433c9a6137a086b8879e31fb52aeb617c11f78e47c36d27c1c1bc8ae26ab7ca1a15a1b13e2a7f989d743afc8f116adea53b730928652f7c9ecf4f89eabb309eb007f2c9b3a6a14db51dd399057b02841dada3e82173a162d0010b92576cc82cd729e637b3cb364752686407f41e46563d0723ca3f17f59a3c18725c30d2e905042c79f3fd0ea24a1ce35ef6bfecc00492756ba2e75ac71349bd175cd441754f203d3b3faee9381d1ff088ec91e02040b61f8bb7b5d48b31efdc95354e0c9a2ba013334b096261e5edd52b15b65b5125c0c52141de352c9c7d422a4a0a878cf1c1167a62ac9bcc92198cae568c745dd8e1550fc188f8cfc48df560e0fd8ffe3014164a7f28e899e7dfe87dce7d7ce69d21ef7f4a0cdb91e7848d9c2a7d734b6e90283eafbf6139b1639c1b84e4ea93e27cdf807d3f049065f9388ffd5cc518ade72b7de0a0b64b314f6e8869395d21f94360ae4113dacc57624613bf4d0c8338a63011aefe2931a1e541be70241a5b27718b554c14f0312da155e723a6d8fe46e43f8f6d4a476880f66499b14f42c450f0e83cedd279ba93607183a4a9565a1a023c2f5413acd1c704df1093f97dc50688a5b6908b4f8981206fe9cc5a8c63df360610550fed486cf09d589f142cbf73a9c28470c453dc1320552284a9194cddc93f643e94511cb56991ad7ec2d7172b41939a4b2adbedf2b8ca0f8cf0fec3954f26210626bcfdfd560a033796e4e6b8c897bbbbfec0ea15ec8baa41d816a9861818055cf83a9573ba4acb218b490d0a974333dda74c6400eeabc3d561f5ef2bd82e78e412c757998ee62719a39603c44fb4357606f7e389bf2190742602380109256fbede5e6e9fbf64eb9e49202f6ad58f09df4b85914e0115f74be5b96a0f8b06f6424417009b5b4f848826e6f3eb1cd8430bb9b7d2a6c1530b047bb79e0a562e91d71b1bbada7c9d1fb7dd85219bc0454e2fa290c74e3f9f1fdb596e2d88911cf260cfd1da1f94d29aaaae4d2f3d7cab12b855c4d8b3c571630a70d6de66641832f1422dbaa54bcfba502fedfd077958a504ba72d6365b14969ad057dc82000bf26d41f8e9a509e211f6f379b95351c29671f57e7acad63c856cc3c2f96d3f09a64ccc11acc3122abad52b1f604c80f0aaa23a0ae79d557211b9c94ca0af92153580c8e5aa8dd9035008fae660e7c1d756b2c410867c6dcffff41200055147047f6fa5f84ed9e156a69838e6d9b71b7e7013856ed7e2a14b6e57d14fa716850cb3707fe039f7e1ebb021a45e41a12841df6df7d1a3ea386aefd6d5db248e5a0744fcee7c6500864a462139bcf8c8687e7ddc2c6506e47dc12bc66d0ec6337014ebe81157b2ced77a59d40f43bef25ce4f4220a29e2fab7d44b5411c1e27d7d0fb83f30da498f4b5314842ef668733ca8328693d595ef12b22f6aecf30baa5222ac29c500ee92923ab2214118852335970ed17b4c5c751d39a1a5f96d8a458f3d30456e99c62a4f30c2edcbc9982118f84e84c8e70b6487343e5cf0ada8705435f5bd8246bf79254e592a2e37cd603ec0681f0f09c91fee0f14bf54bcb4a192294f4dc2ea62e4e0ee1e9d99eee32c53f19086a42d59519a241bb8b4e7a916a9386a1258a893a1a9bc821ad2ab9e3715fa01be26921e3752b6465b0d1205ef81196e7e960d540a0373394b7dbe40417a31f1424fbd58af6f07daaab0b4cf91e8083fbcaa7f3328649e2f87bb89020caf6aa5cfe651f9bdc6ec6713c1ff77969d04663438c55bc3c3981b0ad8e8de6c021c71e7ffee2cfc7fac8083804187785306b1da8194a6846554e2eb677e2286cfe21963978e78a972c8af460c02fa1b91046f7743e723fbca97cd19895b0eab8dbbcbcb86f5d33e78a2dec6385785faf5044ccb791818eda5ffe9250092057cbf44a1bca13e9e8ff1ffb3465e28dd41f6369a77a59f8e279befb82915132ba49088a9f0badff9e63c8a857f1870997f2324b11bec2f6e6d0ef61bf24c55eca80db093bcd67b48b6a9ba586148f575f5680fbd0d032d4b219d5e40501027d2df593d0c6eb047557f0eec50d407dd152a151bb2b7b10a72ef05133206bef51290417948d72c8b47c47ff2167073c02fada92a27c2e052ae12bc436b783fbaf2016a5de4b69e4ed7b8a99856cb37c2bc81811702444e2fa290eadd1f0853dc4929fc54ff4f61061d5121eb77d55e1b77eff93439ee673b35b285f1bfd79e192d63b566f34e702300f8fb7562b78fcc7c89d51b07de5a4056fa7645718fa4acd2f0f833c9b330221bbee2c3dfc0402987f0d32913a4ff077300d4cae20bb21eb37fae1dd9c1ac1ac28dcfaf3d2abb9de347a114732b47a3ec115ee3e15373ca88425eb9f700d9478de7244b157414cd643b773f98e3deec1072cd9b75b82cf2a9587ee27929716f0f140d8908fe8c0c4586533c608704a2ffa7771ffde9415ce07dfc37a4cbe703375802695a3d9b467e912703bf339a36670d19ff053f96abeb64ea04bd77f4ada4fb7cef9ea76d724fcae61a026d7d77f7f1830e7e10b86623dbdcc8120aa8466de2cdb4a9c6e87a8c1f4313c4eddbc430cca78ace31ea02ec96b4441c0b7707b46fa4e2a31a493e8e937208bdd8e78cb7daf322e2c40b95f5b34742fe2b3cb2f2bfe211829a39f1b935d814cd2ae926fe0a72750e7d9844f8dcf97b395a2feee1b6f9970084698d1f63962aac62a1a2fa6170fa17cedaf26eebe1e5f9c39c6987295249499f3d12fa5fe12691fdff058f0c01ca09ef96187b5e857621ec2144c41999d3aec23c4f0c4c5a2e0f900baf589e17057cb792c85d50f9a6b39ed75996bea1c050769dd860f60f2439a218f3be24ad62f7753929d88481226afc4f2f015010c3f2df584ed0351f03f86c889c2e27c53b9753dd2d8f0afbade2b0d93a573b0ee2b7ea513fbdafb31eaa20e41ecba265052817271eacb8845f23f51517d5cdd817da8cf1fc70b7e5136be76471e14db59dc3afc4068cbe2576c5fc6f1043e178cddb26013fdd251d2025650f1ca9ea7bb3ac07b0c319a8e385df2b97f646dc9df4bcda7331227f1207256d70bbab1043ffeec6859c977d360258351677c4ae1a3759cfb135167d64069b3c8d61b59acf94a0c86f86fed762983bad75fec85e87d8cb36fad26d1b9f27c39564ae5fc4e82f1a3690f42f62f8c5af62f8bbc10adafa6e68ffb0aa8cdc0cda6218b767997c7c2c6fdac92e11c077e8802117dc4dce6cac794edc0d17a023949a78948e511236dbfb5acaa69e16ef6a8076dae1bb1389d0f56bbc37e8911d4f3da2f216065228f1ff5fad2aacbcb81cee3ecac8d28929b1b32a90e3f24f1753bf186d6afce27db15f78e4e5ff4a9dcf95a7d09d947df6918f42f6b8fe960956604678deceaad383ba8f5a0b47d7993100339a69ac3807a2d25b0a94269030bbc4ad444c26b8216f828dda7ad49f098cd47ef6c8d27f8547a6ff57ea3ccb00d24b224804d6a174070d7eb549b746ecfaeece751476668958c190aebcb55b25c8cbcee5daa4e93d9e523eae9b413b8c0359fedad1f58514f11c5859c2fa060bd5203ff01ee88ffe3895065ab4330b0399f26e42b1d198e3fbe45ce67a16f1181296b0ad497b7d5b4b4bd845833048e51d01a46a108ad949a5e5cf4dd47bfc2b57367e3e2665ee776dcf2748aa39b034bf14eeee18ccd6f985c6537f65e3f72d59f69985ffd7834a294fcae20f8b9685c36c9d749c9d20f34f4c2003833b1a14b21fac9817dd98b8812b99a1d84c187939144ba45de5dd12a04237f7c5c176129991f0b0123534d60bd5a064f01ee8c1670fd45f808138af227dbe40c1885b27ff6b091246cea7814195c3ccdd937ef5836e45fa75dbb0fe9f7f9cf1c2cfdf1178f30be76dfe2a41be7b6aef07b72abeeb1c10807af501457f9046727711b72a5376cd8fab191934e5926c2473e35ce1f13a76ce803453c1bb6df7b2024f6e3f079e363ce81e929bf707cc9d9d19c33642b7266e99fc39798482d49e4253c7187860a05e549e1f4f1ec1b8521ee94f2efcb97b54e4f041566688d9cfd541dd01b8da6950534771e5f0b1c7ae05c69e167ab4511f80b5a0096e2e401849913f2f78b0cfb8bd62786bebe2a2a5f6ebbaed39cb0875fe6f08103f80a67a9bc3402972cc7f42c0cac2677ea3ef4f021eb4b7676b97fc9e10d7ac11c414b28a2bb420570d94a19550aa78e8ab7b97b8170096f65eecb258574a1f73ed288dcbdc2728a3284d899a7e1c99c44994785d9449e11b02d6cfa18f4e4e09b0fe840028ba0ae5630efccffdfb7dd30fa6b8680bef05166d48ed660aa2d3d45f312b14323e326aa52b5c7be2f01eb83c58bf2deffeb2635daccbe304b2153551d99414d2c7145df6c493b028ea5ebbe59f0d1f1444fa0efa485b0306ea09d1f89b6371d07a2125bd31ff69e26a2fb5bf79e9f6ee5a8db5d79ace384e5266f5335abe632e040f05ee1eeda4792f409063e5ea4287d3b11600339694ac37f3c9f0bc3208a6360356b1f0e2dfaaf1fe86181133f4911a0e0cd403c5f9bbc48e56fcef527c3c0d035a1e9c5d379ca19ca9b87bf48158fb65d3de61236fe313e3eb6dcd6206d0b62ea18074cdb9b5752b3f411b26af6e6686d2f78eea565b0fe58aab0b79e8fb0731f73ca9aa0423cafeb891c00c356203a0076dd450b444a7787f0183319602462506de06ddf669e0e52b085ccdbf4a1c8a5d5bff2d97b899142491bde148c92520975ba4d7dbbb3ee0d011fe706eabdd9459ff56bf10ee0f58160d93b54ac986263c40472ee8c570b15888fa341b36971fd0cb4fa4bd3cc905f85af1464d424f297d5ff5459759fab9bf5ccf9aaad74b196a45c02aa8036b09bff2762983eabb0642f770faa068890aff16decacf90b06eb7e5c0fd01125d33cc0eb54409b3da22c4ea978847fa2cbad66307ee044eb9d2c0bba7e52b1300e6bc5cdaf3b9cb5e32d3ccee2ab28f3bc3c7a51596e38e5aa9c3a7457dbca943bfe19d01d5a7d187089ecffedbf456751b7d6a0c9586830081a35c5ce15bddd9738218942c6d5d9d32441f140787ceaf565fa3c4aa14a67300ae9e1061d1c2b96f4531c28fe4acdb3805a193b1b826d5da17b370ba376c6d3e447ee5ed5607d58ef4876ed123fddb194b56dbb7954c64c141c0f37ef8c7f417c9c74a3323f3dcf3efd1f19455b6631498232d14387677f72268008fdbddcbccd4e50de4900ab5a694a67d1f3e36b819ea0dfe1b4da242426dde6c5f7927d342653da9a18b17807f1b6f14e945ea773dba3e707f80ae33a7c73d6b4a9342a8802e0e4a0391b1b982e2783f3f38ac6a023eeac69108e034cc6f55452692497f3ccc590ae2c2098f1fdca08dc5b044e30a420e11ecb54138410acf43db754520998d3f183eda865c5f23f6ffe610922732394ac92aacfe6a49ca5588ba5bbd80f1043fcdd30ce280ee4aa1773937ae032cc87147e73f99a14def73af5f1cd77f7898937e97dc075b0c74197ba8e5ee032ab96a643ff01ef21f0dde0223b49680135a2b70030a56978fe7e675ba2121853f63e98660f8643ac77770879b3b7860013a02bd80548d8c3277381df58b355a333727fb00d2bff505a62fbb2dea2c60e5f584e871723f0355a5a1f0a78724e02c96c50d9ad000a79d17e71af367c651befd8452b3ebc675b6e0a16943e4fa3113e8f60e23fdd0fffb771d5d0c2d8cd84cdc8dcc0d6ccdfee59b0a7c78ce9f9a035f1a12d3172fdee8cea5d30b82fe58c32f52ffaac7fccd93fed47fa509fedd041f7fe9f367b37ff637ed4739cda5bf1b417010c0947103e984b2a22803af6437728fb91e21ecde8ccf33a1702d58336fb855d5a21190451d9fded50c962a522854cbbe8d1446b84c53572dc725fd96a2a55052606fbf1a790cbc873cf4c72d1b71688d3721b4a6880b0a6628ff6e06fa57231bff03a907fc93b2fe8db0f8a1184057cc716c45ed7f95bae2a7a9cb6f3c3644cc28a52c8138ae1476029537e71dd3f9dc7a27c15d63312183523beff54fa6eedda5f8d6e01b0d2fdad33a0a953613e31729f5307fcf86ff7fa5ee3f7996eb8cf6ff6eead2ffb4633e1b879fa51b6754f10c147323648d3aab18cf9b9b34591aef50a682dcece4f52b47b7ed920700367b6a7cff1b795ba2b5bcdef6508c6ea484810e6feed8724b1b4e2e278a07d8e46f17d7195d68756c19b4ba8df7c78bebe89c236e7bdf7fd2e25aac16db13864912de76c9c1d3195a31e977894778387df445845d83a4e4ce4ce23f99a12f7590c77157235753ed25270117d329efc1c08a1fd2fb22f57fede27a36fbff2917d709a8a55a05254eb0c9b536dcf3e3179dd9e2a9aa268324a12f9239532f078ce247017ef76443f7d15487d1b4df6f6adee79f691de3c9b630a878b85cac3f8fd9559bf52f8b6b1cb46a12155ab5c50f053304fc572eae480707b5b8071f13b4b806d7ae5de8d03426522d24a8cc73e76d4c3cd4c52b754464e14ecbe43d0c2cb2f8275397040f55d2b2e2a03593accb9982c98a91fd6886f4f76cf8cf5d075ccf68ffbf75713d23879f0dc6fbe3313df40d3da94107478efa554de8112c34620d75c37d965986d16eb5de430039267bad7c7f78f2399a37a21c4ca49bca2ab28426d50fb924cedb541829693e473841209fa0cf29907eb85d064fc6beaa05fa76bbeca1ad2ddf2ebccdab6be6baba291cc38fb7892171d9525e3a31711b02a3123fbb1e7053354b6fd0b2dec1c354d620e479acadd514da8d3ffbc6fc8a0f7e23ff2a6354951718e1feb99a78f59e627fc62fb1f92e7ef054b13bd321d22aa3ced74eedaf2e1d95a12f181b83304a85a336e82e3d4387a6b7d2e5a4f04509cfe20032ee76dd6eab12a1c38f1d8cd5d097abc135aa80f97e7212d531fe6d2d53ce219eaa783022f60ff0be5f81ff7c9c88f4851a1c0448f6d22f481b1a4e097f4276b4eeb2123c278e8ca5df40e6131c1232aee157530448686c9c58383824bc1e9a78e9987a379165434210c9823e8017f958051a6c67f25512cf3bbf941798a9f071d05749a20fea59f3a60b24df0b0acb91031e36b7eb4e2c0cfc3e6110324fb3e8b2db6ebb02b7662cf964826f950a4ac7f0d376d47b2b75e54ae3d4236c54bb60441c696c0d7f95c453e63725f9420dee0f380ceb34d09b531fa9582ad8ccb0745b382bf7ed8669fb231e58f988d37360da02a2b2764c4537170b0b21edf488c3768258da2a6754f51495e4aeef8f1e2e0fea577983111e7f8c7eb127ba7fa9c9c8479b8fef44fe1cc963c6108277f838cfb1aa72b02b65cfaa2843237c839e115521bd0709f06dd33f06c4a4f61e0f7b86b7030235fc7236cf18a2031f5550e28da70d3cefe351336d6fab4a0023ee7f417ff99ba27ce106f7078800e26c90bc9a7dc34b05a69ab98b6b6cb481485ed5dcc160c2c0288b5755cf00073561e93dc1063a01dc41cd27618261ca56e4ed0e6afe1868efb5eafa1fa9d33a7e8d135bf82f35d904d9a3a57f3da17dff8a799e6c5ee8cee21a6e8b84b714211986f8f548a7d8d5195f85090cef192d80b17afdc036a3c2e7c2d88427be120bb35e79886b834731cb5d918bdef96ab0d8af7162dbf49b927ca106f707fc660c79b1261a0373a3828c72efa79a31c1c003330cd78fbc24df09e8c82de6520301f3198dbdcd44bbef87cea52b4fddb21da130b07d668de73096dd3c12fd26e030b7fb833709d04a983db432cfefc7fb837df341624d91ffa4fd81fca2400a431e596d6fd06286a7b582af167579832846b2c0d5a7322ae7177aefff934dc6a53fc1e5d2894cab28a9f3a93ca49cc62c02ae9ea33fa4f745eaffdafdc1d9ecff2bde1fa40cd417621edac275f59565bc8e82a5d0c4475c92bb0a1444582cc9ba0a4ab600819be2c8d95c20fc32eade17ca36089573a15d058f9ccb02d36cdf190d05ae097ebb3f28d68456ec26422b75affcf70edfce2dbb6f14289e697fc0c73fa820e01bb91e4e69cafefc834f7da028a75f1cae52d61396aa4e50d2ed68ae1f3275b773f1d85e2a650f8f2c6013d2e9eceab458b634fd9e0dffc1c3b7b3d924ef1dbe9d8dc3cf525b5af49ac7b97d58037dfb2b82d4b2fae4674fbc1a152e3f4065086b028bc963d701d9eec16bacdec1c94f0c150438e398d57af56a1f3e23b6aa7985609a8f295756bd5b8dec0fde43fe7236019b155af188035a91bdfc3ed57550291bfa26e63f697545ae89532471ba414a8b7bcda93e40e20db134760e4c30e9111793a0666f7f63fb3f99a2ef0a06199a28e86d68f0409235e587f435e7d00d7f48ef8bd4ffb5abebd9ecffbf5d5dfd81ce1d3242a98eeb6e32b98f28eded130e7dececee8666749e8410bb7e70b8b1c2b50ce0a2692b4e076574e83adde20ca41de922ef5d8b56255538263327b311bf2913fb2ffdad3cb402231b32c1f1e9c719d8175b9e38c4f19f94817cad6824286db65cc7cc8cae9d515a7825771bef1a14293d4dbc8dae49aafae8ce3f998113edb03c0fd0d3ac68c49ac4074315b5e7a8391b3f3ec9fd45eaffda0c3c9bfdffd7fd2dfe45cea4a9626f5d370fc7144111cb6c40c5aba27be659076ef936833c5aa42600d66bff1cd1cb8e3bf0871ae4dac91fb5e03cc924336aca09c963bba27de1a435fa5fe6df3ad0f20ffcd0f2d1a0ffdefed6e0c1bdf415fd33f5b7214f0a691f3b4ddc810c2761bd237f5f71c1f7d855ad8bc47a52e5d08725764933f79f4c5dbd29b5c03431c2e42c928f5767ca8c13ee291991fe9e0dffc1fdedd9ecfff7f6b767e3f0b3d47e3d18f65867b9df957bdb19e0257eb0e14c8d4a3ba073c981c1274e7824d19e1ab03a0785c030d10c7b0c9f55ad3ce1dbacf4c497ccc87dc969c851059d8a409afe0973cc07e997855e6d87c3402f5afc21918e7fe77b4e72eada217a9f69e5bd5d1676a9879bc48d28765f6b1155d6cc2b96982d29a57dc8686ccaf251b40cb80b29723acf46e3fb04dc63ee78f14a1f2a8f1561b9c31589035e1e46898a173a550d6044e2292d2668d1ceece90f64a1273ed6ed7eade82b384a4060aec9bb1c76149d9b06c3ef424180aa054e6a15125206209cfd2fdfd27661e22cac6a5b610011e03b9cb890b6946bcc603808482497497e20bd26b4376ff712afd0de6826c803657a2762f2638d2e13da11ac12d0209fd98a4934cc7da39aadbecc697a5be205db96aac37d568cbcb6f36fbbcda6be43ee4dd9afc8a10de6747d4b4e91a8a613bb798e45eacae0eae335aae88b872bc189701050358a241a87576022c4b38b3eb7de6880dc61792b50002da60b9d7bee90133a0d30287be58cd6cce59a1ed3334d609b6f81cef370bf626fd2cfc795a24f2df038f80eb9c1b9bf4aee92dad1251c66d337592f860181f52a15575bf511380810f9b8ecdcd73edd9ee652a5d111a0685716b9774bf92db75e243300df30a0924900ec65306d49dce56c9fde220d998628dfa32e9cd3e279b7f518f3d903e52c88d8853fc909fd49ee257dfc66174ee7306737d531a1369a5bc4033245d7d8e26fc8e94fd4fc0b3929a1f16a2b09e47c589ee349aec7b22dca73f731b83f304a0e5ed4a349bce20191bb894f650aba98f4628a8af2dc55af67aad6205e9c7431c0fe8511f99db753f531cb3bce00ca30b4e6da1329f2cd0dded252838dc59ca3e33fc95dff935c77fd5f25a79311d3284269732bd34a911b8cc3c8107473a51b0e028e52504de7a639428c9edf2708f3b888e25492fdfa76d548b82c1c3f57a0837f1e50696e38e15672e59e340af29da44f09664500179a5e19464854ed8215a5dca9a9ff24c7f727b91ebcbf1eee55ce1deca82b8537b059fd7226c3ddc62496e6dbe02020989ac55b939f3a0e6c3921cced26eb9b68bc98c5a3b54c5a66c9cc47517d7c3180aa57c920e2610d2e1705da73e75b7262f75979a6afb50e6af63b39806b3d9895ff24c7ff955c22c75f25974877ef858f6b6eaa034f460f5d0c7faab632a4ee3421e81655705d2c07d6bd39e3a1d96f031b750d23f3fca2d309498988f5ebf69f00e28575393e3d767c2b7883edb7ab481e963a7f926b7f5b15a249febc4c259003eb3b6edd813c5572db663395647e6474235a2e272d4a5ef2b1c7e7b8e12020a5d7d70757ed3f13161b2ec0f3c13397224b9594d461bda474fad2f6987dda0b4500f7a3af8e0fc7fa75eea45151ab63bed125e7bb92c4b03e790d3b2a339c4a30eb77946b2f25abe49c2b840f3ec2eedd2cbe5689b7cfcf317867c83b150e02cce054d9fa431f4b79f621ed1fbbe74c12f26a4c75476007a806255c0d9b73948081f10787f63f5701978c83f731ee1f138c15c461d41e2a13c6b0cac73c9e067bc97d4fb988224aaea74b9f698a41a597e0a90c552bcca9dbcc4bb919ee0f143dad777810fa2ebedf1d857f909040dd72b097f0897d8be7a5848a71e28ec076007c597ba107291686296ea7415275d1bb205e482f2bf9b576be42eea72d701ed977c80dbbfe2255724b6a219565eb41de46f7740ad61e422aa0577cbce120805c33e413aedc37fa090f563014cfd2c66a310c125de5536c6d27c6911af9410930cd386ea92a158c77d55ac0db6aa736c848316fbc507be930d7d29d8b29f7b2d277c82decfd1c72985d650f66b5f36cf649fc0618a215227d2196b7e1202096eb4375b2be460eec62d3227b7b0d6d6d14499d5602b78f57a91d090f88475d1ad0a128bcc42d373268ad7c5fb9fe805f2b29d3f97a9926a66129097652aa47a5ef9ff71521d93aa18cf922d051161dc8dbec1f1c16af3e5a7849f5f55eab6bca13c2050ec6180d5df9ec1b0278122dc2f63db6e7d885481671f4035e63b502bea25ac1e9f94b049c755b9d9c62022ee76055c6311caccd78c3f040e3dc504fccaff7d07205fe167f3ef737fa0dd4a3c0d87cf0e77ec33ef65c00ffe6b26b5718d163ed5ae5f02d81d954f7ac364c919cd50a1e61ac18e0ae62172497e4b6b15b8b6f8693bfa003183fc024e8ad55c79d313fd435a0cce82bab74e1afac3efe1d560bfb96ce98120012dc1f90c4b13589998c9b318413739b3539d23d921e6de414ddcf74264731532966bf0880ea74decace392635b4df41b21eef8b0a7e97eaf726ded9f026131a972713830fc219a21f0f7df664158adc17f37dff204b7697eeba8b7cf31c340871b6115671f7a09c72a542a2e6f5f9a2f18b78ab2d73584fdbd5d68cc5df35f000124c098c1b3d8962fb728a544d89c57ad76cef09061a44238233bac2220bf4ed10ce1003cfcfa82871b33f4015db2277ca12f9e64c846eb4f62501c37603dca95c974905fad6ebb9e382d105210a3a983520d697adb5808a6741c0d31939955cedea7c73ec0e27e4863aaa67f98757486afddeaf916f51202220fae77f1a6aebcf754796a879dd8ee1ffc777881fe0ef0e8a0c5f2b15230dc72548342d1d16cf18f2a1e7a960c5557c10eb4c2b08a02a5c8860930a8b34cc30c7508ae43e14bf8da06b69b86b51fcd60e4ee5d7d873aabcd12f3450c30faa037dfb2c57347035fbdbd79a679444fd69baf605fd69bab5f96c0931ef3c797fe4f6e966241f3aa0c6d77fd49757901ed082a22ce9bce2e662f98e987f72e99ddef368451a1535dfaa383022e68fb2710a7dfa03dadc8ccf5b146941c89c841d3e0d8fa7d3060aa298d115fc333645f6ff65f7f1bdaf2c9ed6b2172f4d831fbaf7a5f0de72307289350c0f2e2ea6c997638b5145311baa7ec20cd8c18f05b4c54051788c511857dedc211940eb54a88c6f8aa4eb9591d97d3696948e70866868fc5c0a94b539d8e87af83741a8fffa9e30758659552137ee8b0802a8f8a77e7b310c67102136fe5e52bdedade7802278a512395236dce7c6d1f6d36574479223eb574b21bb3822f9d8d8e85d440e08674878f7af50576100ffb78ff00d591fc89bc178af743c12d590e753fba88b55a14eba32de7b7824077b584e51ce1cb8e65ceb2802de10695f737dc2523e89f959dfec11a980b3f71ecc4b90cf4581e34f075cfbd30129d0b1df7340195bb1fdf4ae542707ba59f34c13d6fa34d6b4e8a845bffbc6c32e1ea1e6771ec0bd07410e62d2a2b59fba3cb35b062aeed0d5656dfa3119344a052909764eeccef47f272ac04a03bf43ca1f08b6cfaec54a22550fd741c2b61810cf45a7a00b0731a5e389442f75c512547901e4cd23f7f433f802d1c77d042e3d8e2fba4904aa9b76b97331437a77b3b5a6c4aaee8311d17f342e7f92aae8ff03a5b824b70c1616ddf5a5bd3553d927720915c0eaf21da61600b3eec745a1c338ba17699b2ce8029b0ecb1f87a4acc9f7fc0da95977996272a5e7635a299b6e3dd35ff89e50bcc8bf279491c92357f317e120239254fe75c90395b90b041ed7326f37db0ba43d59db317401b4ae61a4997f7a99a67ab804065e581491bc50c105782b56f44aa7c656c35478f54f52df08556ef57ba49ee0b37d2854bf1dad710f63da2dc019d71f79d3883eca3789f3bc38767aab45bf2060ffa1fbc07a802a3c5aa3fb853ecc749ddfc574c9d25e449f2710bfdc0d47bcf94f52025f49a972351ea9ba7bd58e2fd950c6c286f85275fc17a6d7dfaa7a7646a1ce08b0661f750f2c4800f75ab41e7abc4a40419c0f348d53941aa85229f72e96d2cebd6aaef53da022d7e9f2f7924f70eff7422a87d4b3bb3a6f45bf9ac97b788c3c6038a2b80b7188d4bce8b196ac7f32f96b5c409daa33ccd68589387395b868b2fe9df12113027202424f97b610f9c4ffc96bf7efc5d435fadf530a0d67d4a6914339f43617d06ccb9c5651e349ed4745bdd5e8199b8652fe0cf312002fe42586fbf5fa02052f6ac2563f9cd8bc15e5e227417ead3e72c294ec8441a665df735fd4c2ef2922b75cc13e16817b9c4979675f79446918fd5649b28372e44b5f6f5c15bb141537e05659ea85bba9d9829dd72d99cc849de0479c7848769e73bdb39186d7f2fb263f7e8fd4d5e1df53aa92b0a851f9468cb2d40db54a95b4d105538b9a8dc30b35459f14913e5443fa2a2b00c11442772085a2c236e156eebb2a3974e39d888a066b3cb9973b697ac81aafc8fe2425f8955470e66fba2ffbdc031892d864e35d3d9a7e84b15ae5152739df6c32427791b7b113d9fdcd806fd8f60b1286cef8e407db868de30e3f99c8f32d8f1ebe2932c9f6bb3de0a51cf6bd402f0afe3d528e0bda092feb5a6d34aebc573f6fc7e0971528ca17b2b0f1eed835c7929363512703b04cca351bf28ebc582fc3710417e9e4d11232a6f75cc9c7367c18b8f0b8a939d5f7023dd0fbf7626a7bf49a57ef584598d2db516ab629b6428cc0fb2604f70e336af3639f1bc7197a0392d9f87b127a09376fc9614b927662f1e4886ce6b420564e155eb12cbd8f8240e47c8f9432e6ef29b52ae452ee85b497251396a49122b7fb58b25dcd493c8914d382b997e3be5f9e0ae0ced63847913fc8c7bfad23286037724f5ecfcc630991ff009bc4322872c17bff7b153d6cf0f7487114fa282f0c3b184c0604a03f6af3804ad665a8a677d6bc62f050c2b5d6e8200588b59c0723cb1b00e6a99ef78487c3920b7617b58daa7ad014e9976fcd51dfbb148d08207870409f3dba00c9d3fa3bbb16afbbe642b7bf74cf5891154c2b3c57a3abb32dd4f5d026eb4d5eaf1d9f47989a8b1d1f361b7622b50142e8ac60df0513194d33de482c2ff805aa492eae4724208ab042cb527d3b26024438a448119a3d06870a3cfa3bff1439e813ebc567415fc8b83ca394af4c7708fad8a45043d5c1a2a91930ff817c7a315a04f729a52e412036a0a8d51d4176cb85d6c0b0abe6a5eefe1c6603936af66acd7bfb02a0641e812b3711e19007749fc90cfd9dc78a6119771fb64ffc4286ceb2228bdf55139b6ee5d3a10c9689ee6c02bd04a56de7e6c51b24f1abe502168f01e21752e2db127b34cbee0587a6b51b65eaf5ea84e5e66f0a16aae6fdb4522c9f7c3dbeeac279cae933af1f1d5f9dd7cbe104be6ebd5baab81baeeaa927dc744c9446d3cf5918ec259e633f0e75f2669b3343a35b0300ddb52dc714b47e17d64f6caf2cd4c6c6bcc6bbcba598c437e78a3aeb14e23762f1753693ebc2f52bf05f1c5ffd420dee0fa078f5da393f859ae9ad1350dc7acb7b21308ec7b92c810f0f8749e2abd95c842401e460b4593095c282755199cad2f1c129d50151eae4e8d371ef47bb8ee86ef41d082748caf0672a2d8a3f38814ffa49041332f64da38f41a1b1fe9ad4054c80c26addd37f696a3b2d4de01ee942de9d1a1b618358c2cb84005f2071b35489a52843b265160104aaa526274c1964994a3a7c1ed0d48737c420ac20c857a04f6411103bdc78f0b27ae69eb032793e4b81189e6000916edd27be3f1faf3e08bc6dbfaad6d5dc58dd4160268c523d8f7a0401c4a069f9a2e43e8b169f772adf057c2d649938338735b3e31413afe2bae20c04de747588eb057286b7dea5bd7aaa2582b08280defe0f58fc80e9e8ee4715081eec11b6e1031694b0311bf26f9ee5eef378f0c25bbcec0cc61630f56e67b7711de82b337ad571e7de7b0d6f314b0e19809bb48a4b44d678b5931a266bd341c12a59e5ceab0f26ef72c5afa65d366465c6a8da0123363f3b19d9fc14f3f30fea3dfa4abc00fbd8137d8e936723b6b75b36e08ade66376054fe55b0e5b59c996f057be6c7a77db9cba982b5f02fbf38b67c8df3e1ce4b8fa788265b65b56e50a61e03c5196e6431d7eb211af283c486a683ea05b01c5e64193ebd8544dc54687134a2db40c76c1ba0adccd6b7d76477af3fcfbfd6fa01718fa43b36c8486cd9da0f729e20d576b33a14110105df24f8ac72a4e9df09695325c7d0902fcf20ebbe2c9f41d4276f17269151b230deb9685fcc918dfd82d2ecb6bfa7a803ce410d4011d876587ee99aff434a72d60dacb037a68a6845f85c9403af2b968dd2b58a42058e503099c467363fca6e39c7c373e4fedf04f58e06259be6c525945089822c3471e4cb3cbc71f613632377c5dfe32fa017edbec14b639571c5cfcbd0a17f9a217628be3dc1abc096cfd15fffce20ec4abbedf2c6d2a902de437f28f077eedf23f1d3a2b0387da97499fde652cb3eb883f5ec70ccdb0dfdc83b4a684ba8978502c94c71591a33d08900c6bb78f4ccbad2337d52db2f0f4dacb478331d19d1c335c1089588baf762ca6e4f11115050cf83dff08773b0cdc5a75ffc1198566476055d8db5abe875ffb9f7e7690121fc03c20d8b755c25c807159a630a80089de4365a398b16929ea8a27b817b5030b7a228cd5c51454a27ed54eb55bc99536d18037f431b3ff67798db5ffe2d2c5f652e42ddcb4be227b4d49429c22bea44a0170df679a938ab6c3373e14a2595e380e0a3b75a2d181b299dce376625128af8672bbc9d745e51b6cc14ec6a2624f2ee239ca060f6e19f46878db5dd20d1b7c3250196697de601a6cb0191bb9ac8a16cb73793dff46b7a78fb5f524ed1584ddfdc0d3ca52f5e426ba31022f5ab9d723aeada11799c1174d1a04ac3691e6aa5019706f974ea90b1b7bf2101393ffe6507913f1c42db8dea0ed3be1d1c64e27569a7275393cb5dfa5c95b5b00b3c92a2426e34440eb05a0267ae3b664693210d51cd2dbd4ee32bd7b18c6478da19d5b98a39cff16ce05402bc919f4aa084e4993ff73f78c7156a17335c09dce52e28bd5c5731f3b605fdf9ebeb0677d2dda3b659d42d2ce89201fef931bfc7dc698fec34784b49b6fc347aa50545c13b7a4d3e969d3fc26383daa78578e37f0af166bca25c0aad345d7385c573b20f49c6b8c381e31514e2188c7db3fccbbad5c862f7ed66de105f6a68ed9a6da6ad7b21a61939560d52540988ef8ce6308571cb652b483dd6697b9876cbf813561e89526733d7440c5a719468f2a9856ec83fb5304b5ceb92cfb7162a498d6fe62e2c8361912c8d12daf08b0425770a5102e3482fb976357669edbd00fc9aec3a8c388d4c1eb1113076055fab79ae34a89c10f3740d94a597b69067e5706ae1c2992c1c0448acc02abdc191188f5a07c2379bb3cc45178a1b0d405c817c2be72a5ed9f63400d7062cd5532c19176f4bd86a809f0b570ac53889d7195cbc105382dafe6459827af3318be81050c9c73093bb50dc9d7e835b73600f9e392dbef6fe0e2ff152f7e49536570ca9da80cbf4e079f168c576123a81094e08670481233f6453a090b483622fd6f0bcd4abd30cbe9ef01bf5448fcf45f8e04b3d4994d1faf45ee67ae5f5fe0bec04532749fd20921cf757c8abd1ef0eafeebd0f1517039c5f34f56b37a4a23013d2f6c85820cb97ac1670d40606c92dc8f32844a7da1d9eeafce64c4bfa200152883b88eb324c222bf019a04483c148f63a029fb639c13c046b71c1ef4a2f0026e6e5d87d5639ca3c4ae44a28782729ca8f7a4eaa163ee1f3c78da921113311b620ac2060acff019b60c30fce7df1f04e6998e97e634a374fdba61bfe376031d8f5eaba2b97d9cf51a631c4334182a877f4d738a691b9021a5a55662abc172653bb5cb98d42efca7a1ee64a8bf6141f8563d91b4e1fa517d024d1bb1e879320209ca1a0e6673f0bdb10104540812ec1b74b976493960d864c36ee80536c183924dd30c5eb863dbf6e911d0fe5880a697dd5936a80f3d97ac875fb6d5696fe0b834f263972779befce466e0eb0baf9da9b0cac8dc99d7ab725e4378a933be10826f32f6b5787964a0616f347da8748a693e52d3739c368894a2fab5eb60ccb3f0638df86db032277eb1f55d636c4c016789bb3680c84393c5633fcfd0ec848389bc7d13aac8ef64ebdfbea7f049fbd7c407f35816e322a32847b9723b5be6107f5e63781fdc989e40137c9eb8587e4be492bc5ce4e466105ed13fb4a91eed9178f4a1627220191a70ee13d0f64254302b574094cac7324ae89608e96156cee14662da7e6a11e9d82ad9e3165b772d4388d958ac2291ce369fb73551c4b42061636b6e3a7f848e477832d2ed0e602faa9cab017db8ad5c136b18d89a0022c5d2dabae9d52512592c77b6a3ebc178c4f5396eb8c7d6f1faf7a5286a929bdb8d61dc35b539f90922fa6d971ea987dc8750d3d82595b31023e02901edcc8b7d30830b7daae7177901f62ff7fbcbd655895dfb6ff4d4a977477484929295d52d2122c0252d2b96890587477d74d8774480ba28448a780a4808408928b7eaeb5dce718cf75fdce6f73f67ef8bf586fd7f88ceffc8e31e71d73de3a7a01c703e3b1f22735013f428fa1c1d86ed91f706ccb4ed347afaafbdbc37dbe2ed94b5966948d3a3aafe555b9d8312968dbdb030a65b195283c4b4fb7de4b4c947557ce88f2ce20d1518c5f6c3553a37018983d29861609dc7f050bc0942cc1d7f94a853dc8131550398ba9637d45f147664188b20a5f6366931426b4be564d7dde72b0666cb63f82bf5644a85cf3db9a7e05283666f651f276ff50fb1e327d84c7d28159813f1ecad6564ca12e4df91ce57d0f74cc66fe2b18dbeb81ed35f7fa36c50821a4c73578d7f7fc9f39e4fe91d9480533ef77d6f4bea4578fdd4904ded174fba33ef1039776fd2138b41bd142a5056897d8148a909bf457a5247fc354b3cccfb0d243287d18ce102e820fc7834c5aff8f9efe2f7a8d6eee48d4d0e432bbec629b5baa304e30688edd98da3baf50e05b616d48b05c3ca097823619d9d9c4490f4e9a7e226d396da03bb7bab7ccdcdbea40b2f7406c7369081aecf0965324c3d69b822014adca9b9e2f19f7af65cf2c3778965c861bbb1ebe5ca0374646af046c93ad292bae6947a7eb4a2cf3c505e5ea0ed630e2053736129b6ffa54192a8ca063867922c636097ca3d229ab64e6b1657b0cd7937170fef3f5eeca91aa71befbe9a11d03035f681b1d401a95ec4c51df24753c69a0b344fd65fe05a360d928150ee9bb2b512afb0e8a0e686647b7acb3c0679a073f87178afc5bc534f078185fbda80030fa0a3a7b793dc8a8b44e8fab00f0c5524ca734f21d0f8ddf67553a9f37fd7820421e4a3eab42cb41e2ee23b3ba0a0db6fc5fc1bae558d26d53e5c2103c9c3e30d6c67164f461b52ffc114cf6a33f6fe2088e5333ffcb5191a6a7df99e899293b8b99b1d9edb9958baefdc200dc2235a3d7be20199592bc44519fcaf1a2ec5e0927e4aef1ae2c4f9a49d6c745a0c1666f6910d1b4187737ab42a47da3f18b2c2dcaac633195cd00db9023069ef5266d1dc005c082ab297fb8e2b387b8cc8a6e22b7e7ccec4b39ebd53558a76859c4952b0bdeb5841635e72d8bfa9cd3bcf5611c2d5c204bfc7047da10862c860097dd87b6869e301f7850e31736009f91c8311da38cb0555238db501df53c9a38257f8d4e3e7fd8df57c05d9419019ad9cd2d365862504fd9339b416453dd54658b8a16ca79221dfa0857ca7e40f3aa3637013e7c016086606c0b3fdbf499cf90554249d0b0f74352f1c1fab58bb421f9cebb135c8afa7f14f5bfe8faf2c11d6a0ba376324c759efb9342a858867e97aa8a5d26a9050a65ceb1d2dae580fd5269e1c55774ee373255f8d1a096dc77aa06a31f257813fb53286453d5eba13222a0dcd2faa2e78aebe969519c9a35af95ac39df2ecf97db1c29a43b7ec08eb9b73bf5d268e21da0268ac5486ed5cb095a9775d22f4c4a2e1e8db37763541454a3c363793a289e06cd6cee963720c0bf94f21a9713597199ceadb27c5ff40e5bc7ceb75846ecee7a59b8908a85d901622625f1ec2ca5d152db2bf13913519fd872ea56660844fbfd1b383f2a069d8543835ddcb235ce7e042592b97a7c2686cfdf78a8c06c89bc14c29ef26527c48c6c7751a8c6204a077852612436ee2d24c822cb5fd92d45254d8c91bd8a44272944c44170cc3712e6f37f99622ef4205821760f2d4d48d5b1638e9a1b11a54a8a1ff7f262c22e04a77dcc3316012c7ffe2ca7e31e747916c740f9981a390a6fd3e55999cb9827b73791d48d0251b4e8ffe5a691e13dff759b5e3ce2b72de49b751406a16f4a197ffed2cb1838de79eb1424c2aa05304eb1e6f121a4ae7b9628a7ab7de33db931578da91859a13d1deeeb3b61bff0066a10f45bcad8faf44c8c2b37ed9b21d80bed04afa1a35b8fb27de24466838c5ec4aeb3de920e506339ca4c67b499b6e40c1fb3e65dc0ea88f31a09f08c82c3d3be38c43d451eab818ed9e22d0d026ade0b1e1c90ce9616f1671d25db1f89dba52552d02fc07f1c5a4b88f3937e0ff0752c6b8a769893f968f43c71b45e7c38b26c014f1337fc6296c82cf8fa124e0f1a30f296457d2a635de2cb214fe7d55a6340b05bc1173fb1968817157eb1fa093339be43feb128c0f64de112291b7c9f94a907136e149d76e2711b72a12fb5795e3c2419a5fe040e5446dc5bd619e3e45139a7bd6233e8576aea5e0a220b02beca29c9126e2748d1434cfbb1ce00a0131abbc93f1ba8b884557fb559556e2b9dd7024cbff161348951bd3564cebd1452094e600b04f88140f81020e9af4e00fd8b3a6f81fdd579a2ffeb9d7150574a8ea631ddef95e7492cb50e665ec27df41cc01c5338f3dcb69e636022065210512ed7e612690f3cb47109b770434344f18ffd2445afa5aaa8244f7fec4333b63057c10810d13d8654826396ef1437e2212bfb24433ccca44b4e3dcc55191eade72d318bc24a186ee8fb93d879028532de9d1e023391673d0d80dc7bec888f742b8afa9b076e0315a549ce17b159eb2d5482f136b96b16239995507545ee14d7b9fc591c2d840fa6ee77a3c3efe48ba98dcfbc01d8d4e36225344e8ff1282dbcce2ee8ecbd142deab201cfcb51c610d737ddfb2e3b431abe00d264afbd0aba555fe5aaba62456db7530714b7ec6ecd10936696111c7f0ac3cdabf5605ed62d4328679f79ab1bafbea252b01d5c690c2969a94a0d089b880d025ee2dafea87e01af2f2e19c9e648f0b9b4e71b5709fda188592316a8eb4ffa5771505cd53bc5f52fd0b37d7e30fabb17f7bbe3a1d6a3593a7d6e3bb70f54036835d022bb7658b5c724c5f036746a4a00e2115315be4d3e7196121857e99e36cb61e246adfd9c971e299e521065f5c98e5c4825380efb4e711364305bdcf20460b8ab94dce30a760c6b2b75a58344184c347e82a845ec0f3378f12b8ec844d3426b003247fc4e53c4a467c7136fe21af6963b1a538ed3adc4140e2d9e90665bdf4463437165ef1437b2f3f9862fed3b58a949e8bc0d1cd5ad64721a7ea96b95dceb6be641c43cd5cec86d2476ce23fff35ddb186032f29a5cb2cf07a9d79a2540385318b1ba908dae10e32718290ed2b626be480aa904c7d7dc6d0b183be99999e086a97b0cdad46657c5adb9948364bf301779b56fb7f07cafcd36c16cd15d97c71efb06a0fae0715cd430134aaea3f9337d49a09f523d7e89bc281d3431d26eba57451947056d64d4778a1bf315f2aad3e51086bbd48669458b15171973cfed277a3283b003379aeeeefd15cd7102b3e9e7f72ef900a391a4202751db2ff07e32993231337aeb211b543fddcb1d9b5cc2a8e207a8c8a1a5e67327b84d0293ccf9e582bfdf4a3cea38ad255ff27bd083f976ceed3d51bad43158127b281e74f1f6f0fe447ed120e023372e18bda3a0dd2ac9b4a4a61171ad7d5c18747e25d7a78cec469d8af78410d2084e9084e122252effe5f1d761f0c1bc8c3f0ccb70cdd2072d57cd7fa2fc5f8ec1feaf7f81611777245b09487c95e3951c080b790f142c169e55bdea0366ee6f87bb9e4ac5ac01e263613f244cba5fec662d31529847305757848abdbc412539a261ab8d401b75fc0cc5aef917d82105af1be5b8fe53ec7ffc0b0c7b28e2f150160aede3e96fe4e122129370d26207e2c62f5a531fc5c5ca8a59060201b415fbd16cf230f988a5c925a431671b26c24f673af1512c229be53059b5b47da15e06fe16dbbf593ae58184c7bf8dfbaae04dbd13383f19ac531c6c2508848328cb4288b81fced8aea17730a7ce6fbc6d228210054ca7de3ca60770b4c6c739f195b435ac4b63daaa8f7ab61e09200265e1d6852693f69f3ac729a15e06df29ae0f9182dc810e3d4c5d4d3832967c775cd569e30793b2846662a37de63cd90cbca7705f6a5bb8d7d34200c2fa56a6d09fabb13f1f64e3d1cbd4d03f3f5111f1f76f0c2b68685b5ba0f2f53a85e2e2dd292ef8ad2aca475ed2df4f8e63790e4e1b99836d4384a8639d68aadaac9a92933d8f4a7b1569c285fd025901f6f3476d9722fc65e81966658b5f9dd06f06c5ae4cf7d09d11a31cf8337d28e9208de0f8a97fe5e18e05f039dc7fece1dfff02c376b718b41f4d669173a963f0501d9981f43417dae15ed6a9b7ee31ce52174d6a340024fc22939a3e5f0e457933be2479146db0eefba102feb86f5796d8fc5e6fc7a81ba42e1ccb74a72a7ba36ff8daf6d0c170af455eca6b9f30c9a7111df9086b91750f31c7f3f38831116993dae4daa37859020ee4d6f8084ddc253fa547d3921ebfcc322b92b7ce0b3d37c21c2179e5f48520b61b6a0ab43bc505ade87f59080260b8137e2e3b96796a361fe579bf6495d13269a498452a9de95c215ab7372e6198490c08517951bb899d26a9c2925e6b9c98aef09a06bceb64e8e4ae53f0b53bda2200904a70a2db9de27a3caf7a27d6f4fba2286c78c646113b0bd9cd11c2b29f8218c2f946303d6ee88bad0eb8bd8a544ac1f013805618da9730c435938b8267900013a508e12fd4904e8d394288fb80f386d9c4018aab7ba7b84e145f5b2e1a6e0ab8de89d7e118793813d90e1579df5d697b16b8017b6e6187da79ac07b895cf16310065c1f8aa65edcf6852c8f83f83b2ec150b9e1a10c8c8305071a1576ce50ba6b9b640973e3e77ab2e81b18ce297abdf37877b5fedd886f06daa94ebc7ed27745978be4f2e709de31f3359158e4ac8ff140e6812a4ba1f3fead1de2cfb980d6f24b9c37aca44a8d978a42c8afa2a3e6373c21c8a7bb766787d9c465e9ebc08f32e603b8fdfdcf933e4909cf3d3db6b747ed1f67cdc62b120628983d5902014efaa66c014a160b7d6ed87a6467a4498ae8ef134218a1466114a54bb58eba72ba88d435ca81932ef1437f409776de2afa0df8ff944c3ad273dd7d9f8121e1d261aa9f6ce2bebdb19d56dce6722c2eb0b5d139e01aafeeb0a55d1e48107947207d491a14de925cc1a5cf3d9870b4479ee940b4750dc04df3bc575750ad730080b75fe7d8b1be5a35de2fe0e8fbf50f22f1c49228b8051f675bf7ab6216cb3a933b1f7c243005d43d764b7a8cb74019d9a4dcfb1aa3ce7c1aee7f3f481aff4dd01e165fd995ad0ab0cf63bc58dd1db0ac16dc384a9ebe3277a92e6f5303310ee3912e20e1bf185f5986643e3bac8d482d52282e94b35c0d2be31ee484b3ff364308b10f44525f154f751f1318edbdb8b6e094a4966aef87a28eef69de24609a80eb49c6ec2d45d9107d3c39b622ae2e065ea71c5c00dd98c2d3f5fbaef69015802434a85c55f011c07b941db7c459c5b7ac39bcb6aa548726bc2584fc76709e800ccfcb00ddb51a0de2dbd535c477f7b8cd21d0518eef0fbca77eaaf5db3fb4d082a1e9df06946b91ae3cfa733689c7ef291e2c49f263b03cce5a8846d0b140f1989bf3dea253b8e8baf7b1186e6f18a6a437796b5b7c1db00ea5dc2bbf52e920a6eacf928cc0c365aabaec3c5571a40d1f06ba1f7822e9b7d7b9deb92975fe00bc7198dad5383017d95f3903530962f5efcc359139bbee4e815e41f8bd519541c6d41375528f9b5c450335cdd29ae3f0ef9bdc4fd0498bac28b8f8de829797b066a4983709366c7d5e19b5ea860fc540afcd60041b2f220066466900e5876b7230ab134ecdaf548d5a2c7744463927958adaed8ba17d5984aa1b83fee1437202fddc6c3141b866b92912cb3729255ed8224948a3d33283d3d623ea34dddee3028fb3461b997a1ab1da0e04843791d85fd9837789a53323a96d50b829f4914603fabd33ae0f5300bf51052018e67b8dbbe8b2e85bd785402c5cd5d8e4b3c4c1f38ce0edfd3464b0cb347f4ad22299ca24a5231958b65f9aeb50b5013bcdef5fb18f15ae1319313af1e38c9f4eaf526b95cd4aa25e8b1e944f0a0087452ebbb5313da20870c25d3980c9875e39af75493ced1098e6de54496e026bd2f3f192dcc33ac54cd3416bb528bf8ed002f28eb86de677aabbaf0a6d7120a9fe4086d630f23770d244ab3c87ca823df0d807aa1e36e97bb636cbc6570c1bff7361287e3483d519ba1aadc1b466f5ba72c575d45db7cb4e6b213804f0eafef8209e07f649f06af8cec862fd65ce42dfa68d35ebca7380fefe42125b32660f6e634c21aaa6e3a9de206daf3a719bcf38659574db7c9313ef6864db9e29bb95c6ae76ee436a51b42c120dab99748d30f79f34a805e55703773add22c898cc8e639594e50523e1a6e590f150fc5fc0345aed7ac51d0b67bb7ab73af66baef84e2bcbf5ffba27428345f535dd64b604def3987cb41e2f0539f512acdc93f7bb66e8475a4db09b0269dba6e09292ab5cdb411db76e7b4901bf47b386ff6a02b48d9bea7ec301d8331dd9ebb557793a8aaab260f66869e4ee6370e16f86676a23905be8cd8d521d60b41750c207109d58fdf141f22750254b6e553559aaa632c68c80283b12ef87533c268783b418e18d3d686dcf23ebdb3507523ef769638b64a34117e0fc3dd3e3eca79961fb16baf33e05fb045aa2322a9446cb44299275bfddce3c411cb04d03a3634640e643276d353a53cf2951fcde1da55129dd578fb4ee4fa7ccfec9c1919653971b77dccb7325e56cb016686d2321c19ab300a2a5189b64fab595f89f61fd41083df4138a22ddad55b9a1f7ab70144e95a982985c104f5e46c69e506541dd3885942fd0f5765f7ed1a66920371e4a1a5d67fa7b8c17c276d3f31597e3f2b1574a870172ac95915ef9db34fd878a2879cee30e834fd5273efe5d71a1f99144031456cca2d3589c7420d679169e5eafa3a102351d4d9ecfdece8f94b2ca32ae429a8196eee14d757603d7f3cda06865be0b36a8b2ed2ecea4c1284a45b9d3b60e419e92a2d4beb74c28fa53e1f62970168e6022176f7e24b750c6800831d236826da81ae747ed6a3817bf41862be6a30754beef6ca32093e5ccc4a0966862e638f5efbcc380d9b7ec8c08f3a48930a3c62076a33aafaa8e08f6f8421b5e1180077ccd423adda9040b6fe66e61b40f2a6356bfff0e6f2a57fbdf43b25e0e9302a54ddbb5d9025a450756e989fc3d42dd9f5779032fb64d290be194035d7e73c168831db92046a366b282ff94020500b080cdb31a213f529176960124fa75002fbdc21311d7942c53b905ff84c181f3510aaaefc9de23a00b5daa4fd5630753989b8cb8ee71d370d1393de14be8c94155f01384edf809ef6523d523f9e33d51a04f0aff7271ebe7ed8c3dda902dfd96bb6be139f664b5fcf9f40ac5bfacad01669067412debddb35c3db48035625acdf2f0861e078d46ece43fa1df5220c3b1e79fa59d5d399ad2eb4cabe8a2b34cc91c900caa6fe2fdc0e1a0b6b1ac4990d0e45a7b6eda37a9b729efb9ba6fb2b67df57e1b80755b7f66e9fb03088f36c5813fe7ec528c61589bfafb2e8fd468e9bdef699ccc937c60b8707c8f5522116f628e64cbd00bc253bdb062fe3a2903613d2b327efc83bcbf043cf93b78f80a3802eaa87e9efa0dea5b853dcd7d2a2da94c307bf371fcc1b4ac698e15d92acbed3031ebf0ceff711662a66f1ee20dc465f867f3a603d0fe86941588de30a44eed50875d443f895aaea03a08f375e7ed271cf23489e51b243d575bc53dcb0c3f80b06061518eeb7a1912c8a1beb5985562cb74f6985863154343311ee4ee32c070e3fb103d6280097c6a4fbf4f7f2bc56fef49c6476b8b60de4eb5f31e8a5042be51632ce7a5a9441ffdcb3836a159896e20ffbc1933f4afaf18de78a8da184355b3248f3de5037fe627fde67ffe6a0465c41ea3f6948f4288552f06733c3a338b225768784294a10ffd597e1c5ffc383ede0bafc81ec8e63697131516b9a868c4f0a0ea6ec4add4f422b2a899e19e907517198e089031c2266b9f1a493b97909b61ff5de0d61af4c42a8b694825255bc7b5e99be9de5fdf647decffe47dece2df21722a20b429f859826cd2b4fba58ab2e7afc45ded75ef1ec6c56854791b659930be75d09b2cfdda6ff1fe44df8eaf36856afd6cbccf7be59afb2c1ce4499dcd30ae55f01c505657e4c91fbfb006a1e24e29b6b1d2df29274460cc5c90463db132fdd735771c3fa433d76aea000813ff256fb1f79578722150ac70c2de29fe7d137a10ee31d0b8aefff45de92efc6e2bff87021187d535b8a1ac7ab7c1dce97763979c30383a96c8bf72be855302f37d553bf09f0881425ccf2377e52d1fab45c3ebca88518f054541afdae8a120187ef19bed0ddeecd81a6464b8a41f374ed39171a77906b24fb1f5f34c121feafc4c10e867fbd3b620ecc2c26bff6df5fef7830caa85843d6c7364ba24eaeeae7954965ec4cc078bff3e6044e404a19ff6005382a569c2e756dab5b710ceb7256ea077f873747a14d1d74cfa78dff201dcac834cf738fde21fd7770cfa8ffe57011d2896a5e9a7f7e613cb66eefe648d3235a0fe574f971ef2b6209f5eaa604d6cf2f5ea719c88ca27fef3102285bf57cde8f02768c74c4f86699cfb06235bdb57e94ae29655236a997f151570402026316c20d7e74fbeb90f77811101149f7ff78ad3eb1c61677c227e05ba856627c1f6f4b14c4535f96732bab10db29232a328c144e0057326338fcca53b1a6cb5685cbfd266abad27c932bc56ba710676fdee662daea2524128c25fd7741ffc5aee0945a3ce0bc7f3c153a7d2599bb76208b7a2582a0432adfcf05efdf9a4d8d702a5c6e1bdce891636802b08ddfbc31a6f39a3eed285f7b7a01f2b1e1389ee4ac2756dc28a1cab67b24220d8904a3a0fd0730473571b524c06f983222ab55a5f48e95ae0c663555ff7b564d5fb789ec9fbc413289eb32fed8c67cc807dc97ac52d170263c6e764beff4d197a31543a33112ba992777dcda003352b41b4322c1b8caff3e3d926650b8fdd83f3643cd48642f0cb5b616707b685feffc58c479467c21ff6c20539ca296c6654499ef3b402446135258779973388c4766ab9fe5c0a1ad73e43c66e260cb5c56d18aa4b99805f5c6dedf7a03592fb4c7020ef8633f98ed47250444bd773cd4b3e64e2e0da82f40533ce51f040926f11c9a3710c0796f01671106f0e788de135ebd2eae09100bdfa397e974c8031485af1a22006a3f1cb17fee0f5edafdef72c8a2fb77c478cb080a16ed82b6087516193d01e541c35f62a43c357c17592e633a88cedfdd1d997929b5bb9fdee7cc060c80ec1f5fbb690f15dd3f1e7f6725ccfd41ed98ef6878b885e9b453b1f84ee800120946cdfef7c705a5303305f6f23f1ccb1966de765e140f3ee51e7e4097db2458666a9c17f630875f2e363f09443fa20c60a58d270feb0be6d151165e50def41172afa890a31f2ec40a9fef1e9c1667320b4340609c85bf1d17a42bf2bacf57347fd4eca86b1bb342006dfc489fb7c5f7ee5cb7def017ca466c961104414c624e999d89809283d8162ce54bc240d449b609e21a6394dd12c3af1adad541957a4c6954d9ef904830463f7fe04c97f104cfeeb8df0a58522d93c4fbd58d36b9d8a9bfa5a83967bc8c9928e0e56e3d436527e322a11fea02c83496190feb8f5e2b1ea3861fc917c9e9b0388354dd66048e7cd871c74582ce212030dafbbf77669cd183e184d13f14083c19ad593089e534152eb6a4a29dcca568c1f82a90be940a3fd820d54b9e4403b823f80dd717aa3fd438aa157252150b76e6f3f79f6bd5eb79c65f2925a9213802148904d3e9ff078d82e3adefd4837fbc8f318b7d8f1fc7e6ded9a5ce2b210e412a31e37b27f7382152644ea41abca1cea66b809d80b0404e28229ef9702f56490f97f182b651920f0eee666c4c7541fbc7354d08088c1afdf71ef8767f6706ff120fcc28a76883f23ecff7605249c73a992abfeb272ba5a02413915cd76b10c135373403f88835052d6cca351f7ed850239a6f6f169b580f0d34f87c3fd762a536a976c20424128c73ef3fa802f051474023dc6f05ea2734e5cdf60b453e7824029746fb98d7d5b36c1698babf0dd74046e132a09e06908eb3f284f5ddbd9ebf19de69fc09167ed07110e82bb8aec235e28f91f4bdb116da9dbefefdcc55ad7132dcd2fae746c65ad7215ccc34fd60a2878bf5cf08d37333908433ef4daaf93011684885201a0300aabb9d3de86af0deca06d9aae9e9c190ba3ba3de00d9849534cd7c8951a949203468d9df0645956068d6731ffda3256a7ea7e2fb24c299b8219de27edf7f2624d3cd91ea4519ef0fe930b8d1ea24c16b80f8ebb1a3c5bacd3ba327f22880ca53ad413ba275b6eb3416b527480f8b4f73f5c5202030bdd2df253d024192ba6ff98f4cbf4ae62c9e534fa7638b2b9ca353ab815b49efbbd3893c394026fa037ddd433e02dcb2885f46c58e5c2b9fd99f0d21a49b9f06662ff41b11fb149bb129181fb16b0901819f46c082fe6f5f20446cc2695331faf3b43d228f12434e653a1272e648805d74a6610232e81e682257e7988ff088243ae3bb0b40bec45bb5d2cff5f9bdea0337ac073b61a0b287dff070d5e7b41a5f3786d63e1b4022c0c644b0a0ffd6a118987db56f3a4aff31fde138af56e0cff2976c4c1b72f6621825ee41b0a8aa9ecdb1b626426c3fd898dacd15a0178eeb5ed725e11bfb9184b5fa72642ec581e6628358fc35071a5b967c0d18daf209fe7db3df632f9ca228a9f96d76468624e403082d5fd59139befe0006ed74f5d79e361af6793b3a624572b913590091595ac964ac3cc3ce23398014052b24e7fea8385d9ee70f5dbc9b9c1edd655ce88a49f43f80a116a0d1a81ffd2dcc7061639538e5f8910c796c3fada478b8e81e4b6bd277bf97017c2fe9916eb83e5c03f63d5116739a3f99b39cd6230e787b2c785220ad772455142f9a8cfc62a6850efeb9626db5fc26ae58e1818d0f7d7b3d8ad6d5283cef2a5d91a3ed27779709dd57b1a491e50d33e47e7cb4055eb76f7936817b02bac2f2b79f7348fbbff6f4f25f2efd3e39283073d9d271ae220b8904a790fffb1e4114820f2a96fb8747b4c33ed435704b7d27a5d75c726a248f36b1d917b7d2ebd543e32e9c27a1119e0668b95b7379f56d1534c4d4392e333cb310bed454f414bf4da9c35be6ddf1dad9f863b572efffb73b0a4bd0b598fba78a95e6bc31ad71290d89249e73ee37e6c14c2b7697de03b303f64e8034bf72b58cbef060733212be0a4ed4d7ea980fa72a69d6c80b64c6983c22cc4f21207082c4dfd62e1279867d70d09f1bf9d366d2cd7ea949fc348d6934f238904075535ac00e0ec026207c427f734fa3cb0ed0af7e5b5f6e49c7cfd60dddc2bae59d6bf67e68f7708771ee2a0ffe32a823e214e2024eeaff7dc988ce0cf0d751b169ca329fe8fed990bd21be932e568345a51f87878a717b5da2aeda1b83f4cb3b1e20e9529f85fa3102847b0f1c6709e3ad0394abd107be472d3d1a0adaa40c2f6191d543f32ddf3fb186d80522a80b062614e006226289272953d136a072a0d75c159681beca87f63d30a47de31f64ca9aa10e4b52da9d1655bd8b3d7fff275a4137ca6ce8865cac33d5e7fba1200271b2cc6dcdcccf80f8c02adf0aee7159fb50bf469a7702939d8373a9092f1ebe9cddaa4d4f517a930c0d2704086d384e3667c9aea79979c24b7aed9a08c6b3d533592fac754d30f1e83742a30b65be000a468f1cfc2f9fae14e370b8767a9aba5247409aa4884ac222b773920a95d45b57a1e190556e1bce44509a20a526bf32f81264fdbcedc4369005df672948149973126d0e246a3206c86adb316322f73f9573af7144943d40d9ef3d461e1433c6e999fb8598f0410004b10123e241a3811d7092aa794f3cdfc98184273534d6b4b8bf6d15fd324af5c7ae14ea3add7ce9a761c83ea5a71e1be49ee17436a3065d73bbdcca08f2cf564fb642f300dfb988085248e32f9d4545dc42921d08461386e44b89c1508b137c8a70bf5e29686e7273b7cd4d88c4157b83e0fca13a7d116dbdeb136b52fdb12429de6f71fa66833c6ce2c95d804f905a655691410ab8f07df6c04546a033f145b8f38dee73292bce248bb11c7ed8c8b9dc369ceb10a5f946aff91857abc7a10bcd1ba44ec6a2d6f5e40d8372499d442ea0c8d6033136a5437b8deb18494a746935f7f3da77b1cae13287ce8db3db39505db0526b142a25e6ada49c00f2c7251e0adc231761bfb29209dbee58df6bb5e0a73223e231d91490454110ad079809b6cee94d3f4ebe2034fcf1abc272e6b94ba9905e093f8623f7d4959ea4a53d1d343789bcdbe6a68fcd4d21d6fe98893ad36d4ce9a21f6df6ace830d72b4a129bf145b41689343b20c67825dd3841348e8d5e306c213294fb8000335c4cefb8e834375e2c8fd43e18e6ca67b70d678b31ddfcb2be6e012e44e7bbed07e1de5a070a09f3d0011586a67d71f62a8b40c02ef1f3f4f37d295b71f4a1d6a0806a4254e527470f4a3eee3033cb72f5a1aeda7e814a89734b01dd8b7fb4a7464a9987a92bd77eeebf4fafc0f95949a0466826ddee40ff88771a04f090f0935f781dda8522ca18fe9882cc78e83ed3abbe30a6650cf342be51336c10ac9f08dd3637c3c117a81251d9d6792a04d86ffbb0bd730847d88d6b7c2b360647e87d06ee5fc500dc9697c738235c68c537740926fe14a7ab6f7fd1cc32245e6c3347998eedadbf83b9d2f5b6e116f7bcf52f8f794e1f901232467b4f04a48f5fc57bab080834a44e45f744cf3503142df34b2d52f2b3044088bbff0b142fa5adb42d7b2934c44b6ee2e8f9cde13a9851f26f176e02409e13c1dbf54c0f81341cf1b17bcee33189586216c9de0f8eefbea9e8bf06bf6a07145fe568d006654c85efd7750463f061fe32b72681db5e08788d2cf9ca51cf8a016614d5db05678abda353f1414d85333e10eface2ba44ae0dc517ebe9cf6ebe6ee5208fa8162b402dbdaf5350b0c16ca0c50cd16c344b23905f280fa232c828e00a0287fc1c32dd851a85ea96edeb288feb2565c346ab48aac255d5ec55eb5e5e3ff93a092d641d3a7f7e3d41df13808929844ca2affec37a03ea8f2a4c8ed7f96764826626e82e781a34e9687301df61ed6bfeb652961a4acf095f7a635b24c40a290bad06202926c86d2b20e7b45f913ff864164f03504ec711ceb7c8ed8b847c12f5c43a7e31f44670a80874fe28cd287accc192443e07e64be1db4a79308cbba7bb1429165d6d9d4354aabbe236cb37b6d64dda2553b01ea6840a0c01464fd01208e33da218f42759105f802693255745d927351e6025aa70e9342bc843a564bc65cd2dd7692a3643e00b36310fb4cd941407695ad918a07a9656b7378b5a55f22acb39036e28f6aa9e7398458fd50e513ed10e59147fb0ee3ef686d3eb84430590be16c066028982db4af9938c857ab59427aa4b824b413421ea86b32873e807ba9507eae7c9b33a776e2f40a8767af5796c3668e82b8bdba6fd165e58c0454f8edc2fa69a56666642d0f8256ce4bede56cafea37b3ef103e262df9f881b373fcacc2c18d3712057db9fa9ddab916228c3caff01606859f07658391cbdc03031642b1ff1f656ede5396b55eca459b52473e3463a8395b8db6db3f35aac2e8b405ac1300defdb44e3a00f4999ab837bf1a0b02e474d70653d5a4c03e019a053a467fd2dcdbe4e9541651223f46a96a4b25a73d70714618274c5b3fe05661491db868b358c5f9b798e05ead2e1ffb2839c84f99430c64ecf55234bcc1da152f7e77bd005a04b3cf1eac78d6d4ee03c4fd8eb8dcda8864762a9fbd8fa9d5c5b35b6ef8329b76025ae765b31d99d3e32347709516edb51d737bc7da923c4ef54b8f5d8d41c4aa53e79e0a06d045006cde9440ad3b8ec5898bea83d1fce89e722999316cb261e7714ec4335887103437dc97ecb1277664025061bdbdb82db98ad962c8e343faba6b4b4c4103d797112de1ed1f920012ecf243512a76ac39f5d3730afbe151f9d4b2b855c22c0fb774e22228e74645bc17c59785b2917be9f4c39548068da2877ce6b3858f9e866f79897c2cfbbc101851d0729630e00110165f983387b6a02cb990992384692328b898e771a1c270f355ea0ef8bc4d23bc07cb9705b2935005dd75e7b9c3c9d64b92970356a0a0b1688b043719e1fa31697281088dcb60030e98af34048f4bda963a739576f3c754611b8d1b311b4a8ef274c366b55033703a33cb96d38f5b7b38ef10970678a71a0dc378b11ef3e648abb93359254657a0d9d1e7ab2736a038e1a54cfa97cd07d9606b2f5571da55a190d17edec3ecd69177de10cd4044282a023c774cb912392ad87b3ce3a0976f6ee526ad6b4a967db33deae71504a3ca8baa9b67cc43f0910d5e254ae12e2a26e8bde8c06d478ffd22c7d02d4eb3f2eaea00b8d78199b390773a5fa6d738bad62d3506d9f4aac0f1232dfb1017d63a183675632ed538ca3d7779c387b18520e3019157e6e39529d6630f5727f82658cd6538d02587c5f4c41ee69e3382d09b28419a5e8b64601a27c0c71113107efef14483c4f0474726ca6dd24b07fb2ffeaed4f9f997f1305a8d52e328bf77fb7505c3aec7fd209d7c0651c34b0de2cc5ae93e5e2ed78c69a053337cae26dc37dee59377ee3141e54ec6c1edbe5731d3b6bb9f0e1d1232121577c1a7465dbfbf6000d85138a8b6a768b2d410987b71f85b8671d0de94a1342f88b32a5d6d0808e6e580373bf6db86f33a7cb55a46f381a7eac3f0945c14b981ffa168de37710e3ab96ba3b3737eb0cb82d80b146366d17b4d21388497f5113bf151b9f6598cba83bcef924aef66bb030a9d90d0102825e52d30462147406c193e60383d55193e0d2913be1a2064c9d827f566f1e9337da8d5794849299b6229b8927f977c103866d21effbc03dd8f20c95bd9f2847448b04ebb0d9dd2ad14629da1cdd91466c01ef784404c91cd4478b3a7c5106c16137bcc4732bea3faa35a6502d4f247f621783619ed1b86d9ad658d1675a56c654cfa8625fb0c059b6ae60a609f6bcda536527796ae6cca76a0f185e5c04215a3854b3b6b6fa64827c36116235a62caeb5e666b728887dcf71b86f5f0f134007ebf6fd700595e9f44bf6a5903fa11cd484e722543f24fcc3b6481b392b265801fee3a64a0f622c99bd2db9d109069de1add64f643c2319e0a10b1b47e3f0f3621d58ad8bde36b74121028cf42eef2413a30de88f3e74d711d4b04c569ff83905be09f47547142105283ddd822dec058c9ca47e8d9b9098e59f0fc5f5336c73c9bdf60f977de4111b00738cc71bcbaf141e258e71f27daf6486bd2913ee55ff54da3dc29bb91d1fd207054fba0489ec2e0191207ed07b5c77eb139a8f722ecd3e44fc4f5a56ad0ec379e01f6a21cd2dc327c1ea61e9b6d9797b646e7c5990461b379dca8b4021d261f08bd95f010df1489bc4ec6308bb1a0298acec33257d9896b1dfd851f3b3076121133c46197f2622d0883695d54f98e007abf6e2db867b6eb63fe75890bcc16256ac278a0cf6f2919b8ba3f0c283a2dc88a71a1ee980ed3e801df9819bcdcf63f267acd8253c4ea5b34dcf057b89735c3a8dfd11e461d222acb9206bde361ca6ecc6c59238e4fc53fbc2b3071344048172cf4cd3ce11f1ecb6a653da991e3800f454677517c4a610c9836069a620eeae86e24ddef73eaf5762f72bd47cb5e0c9a1bea4bb10659f8e3b337b46e48d5a38e0ceb71058a50cef44381eaf5b6cf3fcc0868f6d0a82f105784a1c26d4c3ea126d40b96d564912af62f4d8300ce06a1d4ba0959218279dc20ef3a5d8adafb6ac1fee92b672cbbb6cd91148e0db27f24aefa824162be47e7a19f2126dcc8008e0569010b6f74cde4e444d605f635356fc2afc6423009e38673f8646c8d369e04cecff0b0000ffff2bcd0b1c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000