68a068b068c068d068e068f0690069106920693069406950696069706980699069a069b069c069d069e069f06a006a106a206a306a406a506a606a706a806a906aa06ab06ac06ad06ae06af06b006b106b206b306b406b506b606b706b806b906ba06bb06bc06bd06be06bf06c006c106c206c306c406c506c606c706c806c906ca06cb06cc06cd06ce06cf06d006d106d206d306d406d506d606d706d806d906da06db06dc06dd06de06df06e006e106e206e306e406e506e606e706e806e906ea06eb06ec06ed06ee06ef06f006f106f206f306f406f506f606f706f806f906fa06fb06fc06fd06fe06ff0600070107020703070407050706070707080709070a070b070c070d070e070f0710071107120713071407150716071707180719071a071b071c071d071e071f0720072107220723072407250726072707280729072a072b072c072d072e072f0730073107320733073407350736073707380739073a073b073c073d073e073f0740074107420743074407450746074707480749074a074b074c074d074e074f0750075107520753075407550756075707580759075a075b075c075d075e075f0760076107620763076407650766076707680769076a076b076c076d076e076f0770077107720773077407750776077707780779077a077b077c077d077e077f0780078107820783078407850786078707880789078a078b078c078d078e078f0790079107920793079407950796079707980799079a079b079c079d079e079f07a007a107a207a307a407a507a607a707a807a907aa07ab07ac07ad07ae07af07b007b107b207b307b407b507b607b707b807b907ba07bb07bc07bd07be07bf07c007c107c207c307c407c507c607c707c807c907ca07cb07cc07cd07ce07cf07d007d107d207d307d407d507d607d707d807d907da07db07dc07dd07de07df07e007e107e207e307e407e507e607e707e807e907ea07eb07ec07ed07ee07ef07f007f107f207f307f407f507f607f707f807f907fa07fb07fc07fd07fe07ff0700080108020803080408050806080708080809080a080b080c080d080e080f0810081108120813081408150816081708180819081a081b081c081d081e081f0820082108220823082408250826082708280829082a082b082c082d082e082f0830083108320833083408350836083708380839083a083b083c083d083e083f0840084108420843084408450846084708480849084a084b084c084d084e084f0850085108520853085408550856085708580859085a085b085c085d085e085f0860086108620863086408650866086708680869086a086b086c086d086e086f0870087108720873087408750876087708780879087a087b087c087d087e087f0880088108820883088408850886088708880889088a088b088c088d088e088f0890089108920893089408950896089708980899089a089b089c089d089e089f08a008a108a208a308a408a508a608a708a808a908aa08ab08ac08ad08ae08af08b008b108b208b308b408b508b608b708b808b908ba08bb08bc08bd08be08bf08c008c108c208c308c408c508c608c708c808c908ca08cb08cc08cd08ce08cf08d008d108d208d308d408d508d608d708d808d908da08db08dc08dd08de08df08e008e108e208e308e408e508e608e708e808e908ea08eb08ec08ed08ee08ef08f008f108f208f308f408f508f608f708f808f908fa08fb08fc08fd08fe08ff0800090109020903090409050906090709080909090a090b090c090d090e090f0910091109120913091409150916091709180919091a091b091c091d091e091f0920092109220923092409250926092709280929092a092b092c092d092e092f0930093109320933093409350936093709380939093a093b093c093d093e093f0940094109420943094409450946094709480949094a094b094c094d094e094f0950095109520953095409550956095709580959095a095b095c095d095e095f0960096109620963096409650966096709680969096a096b096c096d096e096f0970097109720973097409750976097709780979097a097b097c097d097e097f0980098109820983098409850986098709880989098a098b098c098d098e098f0990099109920993099409950996099709980999099a099b099c099d099e099f09a009a109a209a309a409a509a609a709a809a909aa09ab09ac09ad09ae09af09b009b109b209b309b409b509b609b709b809b909ba09bb09bc09bd09be09bf09c009c109c209c309c409c509c609c709c809c909ca09cb09cc09cd09ce09cf09d009d109d209d309d409d509d609d709d809d909da09db09dc09dd09de09df09e009e109e209e309e409e509e609e709e809e909ea09eb09ec09ed09ee09ef09f009f109f209f309f409f509f609f709f809f909fa09fb09fc09fd09fe09ff09000a010a020a030a040a050a060a070a080a090a0a0a0b0a0c0a0d0a0e0a0f0a100a110a120a130a140a150a160a170a180a190a1a0a1b0a1c0a1d0a1e0a1f0a200a210a220a230a240a250a260a270a280a290a2a0a2b0a2c0a2d0a2e0a2f0a300a310a320a330a340a350a360a370a380a390a3a0a3b0a3c0a3d0a3e0a3f0a400a410a420a430a440a450a460a470a480a490a4a0a4b0a4c0a4d0a4e0a4f0a500a510a520a530a540a550a560a570a580a590a5a0a5b0a5c0a5d0a5e0a5f0a600a610a620a630a640a650a660a670a680a690a6a0a6b0a6c0a6d0a6e0a6f0a700a710a720a730a740a750a760a770a780a790a7a0a7b0a7c0a7d0a7e0a7f0a800a810a820a830a840a850a860a870a880a890a8a0a8b0a8c0a8d0a8e0a8f0a900a910a920a930a940a950a960a970a980a990a9a0a9b0a9c0a9d0a9e0a9f0aa00aa10aa20aa30aa40aa50aa60aa70aa80aa90aaa0aab0aac0aad0aae0aaf0ab00ab10ab20ab30ab40ab50ab60ab70ab80ab90aba0abb0abc0abd0abe0abf0ac00ac10ac20ac30ac40ac50ac60ac70ac80ac90aca0acb0acc0acd0ace0acf0ad00ad10ad20ad30ad40ad50ad60ad70ad80ad90ada0adb0adc0add0ade0adf0ae00ae10ae20ae30ae40ae50ae60ae70ae80ae90aea0aeb0aec0aed0aee0aef0af00af10af20af30af40af50af60af70af80af90afa0afb0afc0afd0afe0aff0a000b010b020b030b040b050b060b070b080b090b0a0b0b0b0c0b0d0b0e0b0f0b100b110b120b130b140b150b160b170b180b190b1a0b1b0b1c0b1d0b1e0b1f0b200b210b220b230b240b250b260b270b280b290b2a0b2b0b2c0b2d0b2e0b2f0b300b310b320b330b340b350b360b370b380b390b3a0b3b0b3c0b3d0b3e0b3f0b400b410b420b430b440b450b460b470b480b490b4a0b4b0b4c0b4d0b4e0b4f0b500b510b520b530b540b550b560b570b580b590b5a0b5b0b5c0b5d0b5e0b5f0b600b610b620b630b640b650b660b670b680b690b6a0b6b0b6c0b6d0b6e0b6f0b700b710b720b730b740b750b760b770b780b790b7a0b7b0b7c0b7d0b7e0b7f0b800b810b820b830b840b850b860b870b880b890b8a0b8b0b8c0b8d0b8e0b8f0b900b910b920b930b940b950b960b970b980b990b9a0b9b0b9c0b9d0b9e0b9f0ba00ba10ba20ba30ba40ba50ba60ba70ba80ba90baa0bab0bac0bad0bae0baf0bb00bb10bb20bb30bb40bb50bb60bb70bb80bb90bba0bbb0bbc0bbd0bbe0bbf0bc00bc10bc20bc30bc40bc50bc60bc70bc80bc90bca0bcb0bcc0bcd0bce0bcf0bd00bd10bd20bd30bd40bd50bd60bd70bd80bd90bda0bdb0bdc0bdd0bde0bdf0be00be10be20be30be40be50be60be70be80be90bea0beb0bec0bed0bee0bef0bf00bf10bf20bf30bf40bf50bf60bf70bf80bf90bfa0bfb0bfc0bfd0bfe0bff0b000c010c020c030c040c050c060c070c080c090c0a0c0b0c0c0c0d0c0e0c0f0c100c110c120c130c140c150c160c170c180c190c1a0c1b0c1c0c1d0c1e0c1f0c200c210c220c230c240c250c260c270c280c290c2a0c2b0c2c0c2d0c2e0c2f0c300c310c320c330c340c350c360c370c380c390c3a0c3b0c3c0c3d0c3e0c3f0c400c410c420c430c440c450c460c470c480c490c4a0c4b0c4c0c4d0c4e0c4f0c500c510c520c530c540c550c560c570c580c590c5a0c5b0c5c0c5d0c5e0c5f0c600c610c620c630c640c650c660c670c680c690c6a0c6b0c6c0c6d0c6e0c6f0c700c710c720c730c740c750c760c770c780c790c7a0c7b0c7c0c7d0c7e0c7f0c800c810c820c830c840c850c860c870c880c890c8a0c8b0c8c0c8d0c8e0c8f0c900c910c920c930c940c950c960c970c980c990c9a0c9b0c9c0c9d0c9e0c9f0ca00ca10ca20ca30ca40ca50ca60ca70ca80ca90caa0cab0cac0cad0cae0caf0cb00cb10cb20cb30cb40cb50cb60cb70cb80cb90cba0cbb0cbc0cbd0cbe0cbf0cc00cc10cc20cc30cc40cc50cc60cc70cc80cc90cca0ccb0ccc0ccd0cce0ccf0cd00cd10cd20cd30cd40cd50cd60cd70cd80cd90cda0cdb0cdc0cdd0cde0cdf0ce00ce10ce20ce30ce40ce50ce60ce70ce80ce90cea0ceb0cec0ced0cee0cef0cf00cf10cf20cf30cf40cf50cf60cf70cf80cf90cfa0cfb0cfc0cfd0cfe0cff0c000d010d020d030d040d050d060d070d080d090d0a0d0b0d0c0d0d0d0e0d0f0d100d110d120d130d140d150d160d170d180d190d1a0d1b0d1c0d1d0d1e0d1f0d200d210d220d230d240d250d260d270d280d290d2a0d2b0d2c0d2d0d2e0d2f0d300d310d320d330d340d350d360d370d380d390d3a0d3b0d3c0d3d0d3e0d3f0d400d410d420d430d440d450d460d470d480d490d4a0d4b0d4c0d4d0d4e0d4f0d500d510d520d530d540d550d560d570d580d590d5a0d5b0d5c0d5d0d5e0d5f0d600d610d620d630d640d650d660d670d680d690d6a0d6b0d6c0d6d0d6e0d6f0d700d710d720d730d740d750d760d770d780d790d7a0d7b0d7c0d7d0d7e0d7f0d800d810d820d830d840d850d860d870d880d890d8a0d8b0d8c0d8d0d8e0d8f0d900d910d920d930d940d950d960d970d980d990d9a0d9b0d9c0d9d0d9e0d9f0da00da10da20da30da40da50da60da70da80da90daa0dab0dac0dad0dae0daf0db00db10db20db30db40db50db60db70db80db90dba0dbb0dbc0dbd0dbe0dbf0dc00dc10dc20dc30dc40dc50dc60dc70dc80dc90dca0dcb0dcc0dcd0dce0dcf0dd00dd10dd20dd30dd40dd50dd60dd70dd80dd90dda0ddb0ddc0ddd0dde0ddf0de00de10de20de30de40de50de60de70de80de90dea0deb0dec0ded0dee0def0df00df10df20df30df40df50df60df70df80df90dfa0dfb0dfc0dfd0dfe0dff0d000e010e020e030e040e050e060e070e080e090e0a0e0b0e0c0e0d0e0e0e0f0e100e110e120e130e140e150e160e170e180e190e1a0e1b0e1c0e1d0e1e0e1f0e200e210e220e230e240e250e260e270e280e290e2a0e2b0e2c0e2d0e2e0e2f0e300e310e320e330e340e350e360e370e380e390e3a0e3b0e3c0e3d0e3e0e3f0e400e410e420e430e440e450e460e470e480e490e4a0e4b0e4c0e4d0e4e0e4f0e500e510e520e530e540e550e560e570e580e590e5a0e5b0e5c0e5d0e5e0e5f0e600e610e620e630e640e650e660e670e680e690e6a0e6b0e6c0e6d0e6e0e6f0e700e710e720e730e740e750e760e770e780e790e7a0e7b0e7c0e7d0e7e0e7f0e800e810e820e830e840e850e860e870e880e890e8a0e8b0e8c0e8d0e8e0e8f0e900e910e920e930e940e950e960e970e980e990e9a0e9b0e9c0e9d0e9e0e9f0ea00ea10ea20ea30ea40ea50ea60ea70ea80ea90eaa0eab0eac0ead0eae0eaf0eb00eb10eb20eb30eb40eb50eb60eb70eb80eb90eba0ebb0ebc0ebd0ebe0ebf0ec00ec10ec20ec30ec40ec50ec60ec70ec80ec90eca0ecb0ecc0ecd0ece0ecf0ed00ed10ed20ed30ed40ed50ed60ed70ed80ed90eda0edb0edc0edd0ede0edf0ee00ee10ee20ee30ee40ee50ee60ee70ee80ee90eea0eeb0eec0eed0eee0eef0ef00ef10ef20ef30ef40ef50ef60ef70ef80ef90efa0efb0efc0efd0efe0eff0e000f010f020f030f040f050f060f070f080f090f0a0f0b0f0c0f0d0f0e0f0f0f100f110f120f130f140f150f160f170f180f190f1a0f1b0f1c0f1d0f1e0f1f0f200f210f220f230f240f250f260f270f280f290f2a0f2b0f2c0f2d0f2e0f2f0f300f310f320f330f340f350f360f370f380f390f3a0f3b0f3c0f3d0f3e0f3f0f400f410f420f430f440f450f460f470f480f490f4a0f4b0f4c0f4d0f4e0f4f0f500f510f520f530f540f550f560f570f580f590f5a0f5b0f5c0f5d0f5e0f5f0f600f610f620f630f640f650f660f670f680f690f6a0f6b0f6c0f6d0f6e0f6f0f700f710f720f730f740f750f760f770f780f790f7a0f7b0f7c0f7d0f7e0f7f0f800f810f820f830f840f850f860f870f880f890f8a0f8b0f8c0f8d0f8e0f8f0f900f910f920f930f940f950f960f970f980f990f9a0f9b0f9c0f9d0f9e0f9f0fa00fa10fa20fa30fa40fa50fa60fa70fa80fa90faa0fab0fac0fad0fae0faf0fb00fb10fb20fb30fb40fb50fb60fb70fb80fb90fba0fbb0fbc0fbd0fbe0fbf0fc00fc10fc20fc30fc40fc50fc60fc70fc80fc90fca0fcb0fcc0fcd0fce0fcf0fd00fd10fd20fd30fd40fd50fd60fd70fd80fd90fda0fdb0fdc0fdd0fde0fdf0fe00fe10fe20fe30fe40fe50fe60fe70fe80fe90fea0feb0fec0fed0fee0fef0ff00ff10ff20ff30ff40ff50ff60ff70ff80ff90ffa0ffb0ffc0ffd0ffe0fff0f00100110021003100410051006100710081009100a100b100c100d100e100f1010101110121013101410151016101710181019101a101b101c101d101e101f1020102110221023102410251026102710281029102a102b102c102d102e102f1030103110321033103410351036103710381039103a103b103c103d103e103f1040104110421043104410451046104710481049104a104b104c104d104e104f1050105110521053105410551056105710581059105a105b105c105d105e105f1060106110621063106410651066106710681069106a106b106c106d106e106f1070107110721073107410751076107710781079107a107b107c107d107e107f1080108110821083108410851086108710881089108a108b108c108d108e108f1090109110921093109410951096109710981099109a109b109c109d109e109f10a010a110a210a310a410a510a610a710a810a910aa10ab10ac10ad10ae10af10b010b110b210b310b410b510b610b710b810b910ba10bb10bc10bd10be10bf10c010c110c210c310c410c510c610c710c810c910ca10cb10cc10cd10ce10cf10d010d110d210d310d410d510d610d710d810d910da10db10dc10dd10de10df10e010e110e210e310e410e510e610e710e810e910ea10eb10ec10ed10ee10ef10f010f110f210f310f410f510f610f710f810f910fa10fb10fc10fd10fe10ff1000110111021103110411051106110711081109110a110b110c110d110e110f1110111111121113111411151116111711181119111a111b111c111d111e111f1120112111221123112411251126112711281129112a112b112c112d112e112f1130113111321133113411351136113711381139113a113b113c113d113e113f1140114111421143114411451146114711481149114a114b114c114d114e114f1150115111521153115411551156115711581159115a115b115c115d115e115f1160116111621163116411651166116711681169116a116b116c116d116e116f1170117111721173117411751176117711781179117a117b117c117d117e117f1180118111821183118411851186118711881189118a118b118c118d118e118f1190119111921193119411951196119711981199119a119b119c119d119e119f11a011a111a211a311a411a511a611a711a811a911aa11ab11ac11ad11ae11af11b011b111b211b311b411b511b611b711b811b911ba11bb11bc11bd11be11bf11c011c111c211c311c411c511c611c711c811c911ca11cb11cc11cd11ce11cf11d011d111d211d311d411d511d611d711d811d911da11db11dc11dd11de11df11e011e111e211e311e411e511e611e711e811e911ea11eb11ec11ed11ee11ef11f011f111f211f311f411f511f611f711f811f911fa11fb11fc11fd11fe11ff1100120112021203120412051206120712081209120a120b120c120d120e120f1210121112121213121412151216121712181219121a121b121c121d121e121f1220122112221223122412251226122712281229122a122b122c122d122e122f1230123112321233123412351236123712381239123a123b123c123d123e123f1240124112421243124412451246124712481249124a124b124c124d124e124f1250125112521253125412551256125712581259125a125b125c125d125e125f1260126112621263126412651266126712681269126a126b126c126d126e126f1270127112721273127412751276127712781279127a127b127c127d127e127f1280128112821283128412851286128712881289128a128b128c128d128e128f1290129112921293129412951296129712981299129a129b129c129d129e129f12a012a112a212a312a412a512a612a712a812a912aa12ab12ac12ad12ae12af12b012b112b212b312b412b512b612b712b812b912ba12bb12bc12bd12be12bf12c012c112c212c312c412c512c612c712c812c912ca12cb12cc12cd12ce12cf12d012d112d212d312d412d512d612d712d812d912da12db12dc12dd12de12df12e012e112e212e312e412e512e612e712e812e912ea12eb12ec12ed12ee12ef12f012f112f212f312f412f512f612f712f812f912fa12fb12fc12fd12fe12ff1200130113021303130413051306130713081309130a130b130c130d130e130f1310131113121313131413151316131713181319131a131b131c131d131e131f1320132113221323132413251326132713281329132a132b132c132d132e132f1330133113321333133413351336133713381339133a133b133c133d133e133f1340134113421343134413451346134713481349134a134b134c134d134e134f1350135113521353135413551356135713581359135a135b135c135d135e135f1360136113621363136413651366136713681369136a136b136c136d136e136f1370137113721373137413751376137713781379137a137b137c137d137e137f1380138113821383138413851386138713881389138a138b138c138d138e138f1390139113921393139413951396139713981399139a139b139c139d139e139f13a013a113a213a313a413a513a613a713a813a913aa13ab13ac13ad13ae13af13b013b113b213b313b413b513b613b713b813b913ba13bb13bc13bd13be13bf13c013c113c213c313c413c513c613c713c813c913ca13cb13cc13cd13ce13cf13d013d113d213d313d413d513d613d713d813d913da13db13dc13dd13de13df13e013e113e213e313e413e513e613e713e813e913ea13eb13ec13ed13ee13ef13f013f113f213f313f413f513f613f713f813f913fa13fb13fc13fd13fe13ff1300140114021403140414051406140714081409140a140b140c140d140e140f1410141114121413141414151416141714181419141a141b141c141d141e141f1420142114221423142414251426142714281429142a142b142c142d142e142f1430143114321433143414351436143714381439143a143b143c143d143e143f1440144114421443144414451446144714481449144a144b144c144d144e144f1450145114521453145414551456145714581459145a145b145c145d145e145f1460146114621463146414651466146714681469146a146b146c146d146e146f1470147114721473147414751476147714781479147a147b147c147d147e147f1480148114821483148414851486148714881489148a148b148c148d148e148f1490149114921493149414951496149714981499149a149b149c149d149e149f14a014a114a214a314a414a514a614a714a814a914aa14ab14ac14ad14ae14af14b014b114b214b314b414b514b614b714b814b914ba14bb14bc14bd14be14bf14c014c114c214c314c414c514c614c714c814c914ca14cb14cc14cd14ce14cf14d014d114d214d314d414d514d614d714d814d914da14db14dc14dd14de14df14e014e114e214e314e414e514e614e714e814e914ea14eb14ec14ed14ee14ef14f014f114f214f314f414f514f614f714f814f914fa14fb14fc14fd14fe14ff1400150115021503150415051506150715081509150a150b150c150d150e150f1510151115121513151415151516151715181519151a151b151c151d151e151f1520152115221523152415251526152715281529152a152b152c152d152e152f1530153115321533153415351536153715381539153a153b153c153d153e153f1540154115421543154415451546154715481549154a154b154c154d154e154f1550155115521553155415551556155715581559155a155b155c155d155e155f1560156115621563156415651566156715681569156a156b156c156d156e156f1570157115721573157415751576157715781579157a157b157c157d157e157f1580158115821583158415851586158715881589158a158b158c158d158e158f1590159115921593159415951596159715981599159a159b159c159d159e159f15a015a115a215a315a415a515a615a715a815a915aa15ab15ac15ad15ae15af15b015b115b215b315b415b515b615b715b815b915ba15bb15bc15bd15be15bf15c015c115c215c315c415c515c615c715c815c915ca15cb15cc15cd15ce15cf15d015d115d215d315d415d515d615d715d815d915da15db15dc15dd15de15df15e015e115e215e315e415e515e615e715e815e915ea15eb15ec15ed15ee15ef15f015f115f215f315f415f515f615f715f815f915fa15fb15fc15fd15fe15ff1500160116021603160416051606160716081609160a160b160c160d160e160f1610161116121613161416151616161716181619161a161b161c161d161e161f1620162116221623162416251626162716281629162a162b162c162d162e162f1630163116321633163416351636163716381639163a163b163c163d163e163f1640164116421643164416451646164716481649164a164b164c164d164e164f1650165116521653165416551656165716581659165a165b165c165d165e165f1660166116621663166416651666166716681669166a166b166c166d166e166f1670167116721673167416751676167716781679167a167b167c167d167e167f1680168116821683168416851686168716881689168a168b168c168d168e168f1690169116921693169416951696169716981699169a169b169c169d169e169f16a016a116a216a316a416a516a616a716a816a916aa16ab16ac16ad16ae16af16b016b116b216b316b416b516b616b716b816b916ba16bb16bc16bd16be16bf16c016c116c216c316c416c516c616c716c816c916ca16cb16cc16cd16ce16cf16d016d116d216d316d416d516d616d716d816d916da16db16dc16dd16de16df16e016e116e216e316e416e516e616e716e816e916ea16eb16ec16ed16ee16ef16f016f116f216f316f416f516f616f716f816f916fa16fb16fc16fd16fe16ff1600170117021703170417051706170717081709170a170b170c170d170e170f1710171117121713171417151716171717181719171a171b171c171d171e171f1720172117221723172417251726172717281729172a172b172c172d172e172f1730173117321733173417351736173717381739173a173b173c173d173e173f1740174117421743174417451746174717481749174a174b174c174d174e174f1750175117521753175417551756175717581759175a175b175c175d175e175f1760176117621763176417651766176717681769176a176b176c176d176e176f1770177117721773177417751776177717781779177a177b177c177d177e177f1780178117821783178417851786178717881789178a178b178c178d178e178f1790179117921793179417951796179717981799179a179b179c179d179e179f17a017a117a217a317a417a517a617a717a817a917aa17ab17ac17ad17ae17af17b017b117b217b317b417b517b617b717b817b917ba17bb17bc17bd17be17bf17c017c117c217c317c417c517c617c717c817c917ca17cb17cc17cd17ce17cf17d017d117d217d317d417d517d617d717d817d917da17db17dc17dd17de17df17e017e117e217e317e417e517e617e717e817e917ea17eb17ec17ed17ee17ef17f017f117f217f317f417f517f617f717f817f917fa17fb17fc17fd17fe17ff1700180118021803180418051806180718081809180a180b180c180d180e180f1810181118121813181418151816181718181819181a181b181c181d181e181f1820182118221823182418251826182718281829182a182b182c182d182e182f1830183118321833183418351836183718381839183a183b183c183d183e183f1840184118421843184418451846184718481849184a184b184c184d184e184f1850185118521853185418551856185718581859185a185b185c185d185e185f1860186118621863186418651866186718681869186a186b186c186d186e186f1870187118721873187418751876187718781879187a187b187c187d187e187f1880188118821883188418851886188718881889188a188b188c188d188e188f1890189118921893189418951896189718981899189a189b189c189d189e189f18a018a118a218a318a418a518a618a718a818a918aa18ab18ac18ad18ae18af18b018b118b218b318b418b518b618b718b818b918ba18bb18bc18bd18be18bf18c018c118c218c318c418c518c618c718c818c918ca18cb18cc18cd18ce18cf18d018d118d218d318d418d518d618d718d818d918da18db18dc18dd18de18df18e018e118e218e318e418e518e618e718e818e918ea18eb18ec18ed18ee18ef18f018f118f218f318f418f518f618f718f818f918fa18fb18fc18fd18fe18ff1800190119021903190419051906190719081909190a190b190c190d190e190f1910191119121913191419151916191719181919191a191b191c191d191e191f1920192119221923192419251926192719281929192a192b192c192d192e192f1930193119321933193419351936193719381939193a193b193c193d193e193f1940194119421943194419451946194719481949194a194b194c194d194e194f1950195119521953195419551956195719581959195a195b195c195d195e195f1960196119621963196419651966196719681969196a196b196c196d196e196f1970197119721973197419751976197719781979197a197b197c197d197e197f1980198119821983198419851986198719881989198a198b198c198d198e198f1990199119921993199419951996199719981999199a199b199c199d199e199f19a019a119a219a319a419a519a619a719a819a919aa19ab19ac19ad19ae19af19b019b119b219b319b419b519b619b719b819b919ba19bb19bc19bd19be19bf19c019c119c219c319c419c519c619c719c819c919ca19cb19cc19cd19ce19cf19d019d119d219d319d419d519d619d719d819d919da19db19dc19dd19de19df19e019e119e219e319e419e519e619e719e819e919ea19eb19ec19ed19ee19ef19f019f119f219f319f419f519f619f719f819f919fa19fb19fc19fd19fe19ff19001a011a021a031a041a051a061a071a081a091a0a1a0b1a0c1a0d1a0e1a0f1a101a111a121a131a141a151a161a171a181a191a1a1a1b1a1c1a1d1a1e1a1f1a201a211a221a231a241a251a261a271a281a291a2a1a2b1a2c1a2d1a2e1a2f1a301a311a321a331a341a351a361a371a381a391a3a1a3b1a3c1a3d1a3e1a3f1a401a411a421a431a441a451a461a471a481a491a4a1a4b1a4c1a4d1a4e1a4f1a501a511a521a531a541a551a561a571a581a591a5a1a5b1a5c1a5d1a5e1a5f1a601a611a621a631a641a651a661a671a681a691a6a1a6b1a6c1a6d1a6e1a6f1a701a711a721a731a741a751a761a771a781a791a7a1a7b1a7c1a7d1a7e1a7f1a801a811a821a831a841a851a861a871a881a891a8a1a8b1a8c1a8d1a8e1a8f1a901a911a921a931a941a951a961a971a981a991a9a1a9b1a9c1a9d1a9e1a9f1aa01aa11aa21aa31aa41aa51aa61aa71aa81aa91aaa1aab1aac1aad1aae1aaf1ab01ab11ab21ab31ab41ab51ab61ab71ab81ab91aba1abb1abc1abd1abe1abf1ac01ac11ac21ac31ac41ac51ac61ac71ac81ac91aca1acb1acc1acd1ace1acf1ad01ad11ad21ad31ad41ad51ad61ad71ad81ad91ada1adb1adc1add1ade1adf1ae01ae11ae21ae31ae41ae51ae61ae71ae81ae91aea1aeb1aec1aed1aee1aef1af01af11af21af31af41af51af61af71af81af91afa1afb1afc1afd1afe1aff1a001b011b021b031b041b051b061b071b081b091b0a1b0b1b0c1b0d1b0e1b0f1b101b111b121b131b141b151b161b171b181b191b1a1b1b1b1c1b1d1b1e1b1f1b201b211b221b231b241b251b261b271b281b291b2a1b2b1b2c1b2d1b2e1b2f1b301b311b321b331b341b351b361b371b381b391b3a1b3b1b3c1b3d1b3e1b3f1b401b411b421b431b441b451b461b471b481b491b4a1b4b1b4c1b4d1b4e1b4f1b501b511b521b531b541b551b561b571b581b591b5a1b5b1b5c1b5d1b5e1b5f1b601b611b621b631b641b651b661b671b681b691b6a1b6b1b6c1b6d1b6e1b6f1b701b711b721b731b741b751b761b771b781b791b7a1b7b1b7c1b7d1b7e1b7f1b801b811b821b831b841b851b861b871b881b891b8a1b8b1b8c1b8d1b8e1b8f1b901b911b921b931b941b951b961b971b981b991b9a1b9b1b9c1b9d1b9e1b9f1ba01ba11ba21ba31ba41ba51ba61ba71ba81ba91baa1bab1bac1bad1bae1baf1bb01bb11bb21bb31bb41bb51bb61bb71bb81bb91bba1bbb1bbc1bbd1bbe1bbf1bc01bc11bc21bc31bc41bc51bc61bc71bc81bc91bca1bcb1bcc1bcd1bce1bcf1bd01bd11bd21bd31bd41bd51bd61bd71bd81bd91bda1bdb1bdc1bdd1bde1bdf1be01be11be21be31be41be51be61be71be81be91bea1beb1bec1bed1bee1bef1bf01bf11bf21bf31bf41bf51bf61bf71bf81bf91bfa1bfb1bfc1bfd1bfe1bff1b001c011c021c031c041c051c061c071c081c091c0a1c0b1c0c1c0d1c0e1c0f1c101c111c121c131c141c151c161c171c181c191c1a1c1b1c1c1c1d1c1e1c1f1c201c211c221c231c241c251c261c271c281c291c2a1c2b1c2c1c2d1c2e1c2f1c301c311c321c331c341c351c361c371c381c391c3a1c3b1c3c1c3d1c3e1c3f1c401c411c421c431c441c451c461c471c481c491c4a1c4b1c4c1c4d1c4e1c4f1c501c511c521c531c541c551c561c571c581c591c5a1c5b1c5c1c5d1c5e1c5f1c601c611c621c631c641c651c661c671c681c691c6a1c6b1c6c1c6d1c6e1c6f1c701c711c721c731c741c751c761c771c781c791c7a1c7b1c7c1c7d1c7e1c7f1c801c811c821c831c841c851c861c871c881c891c8a1c8b1c8c1c8d1c8e1c8f1c901c911c921c931c941c951c961c971c981c991c9a1c9b1c9c1c9d1c9e1c9f1ca01ca11ca21ca31ca41ca51ca61ca71ca81ca91caa1cab1cac1cad1cae1caf1cb01cb11cb21cb31cb41cb51cb61cb71cb81cb91cba1cbb1cbc1cbd1cbe1cbf1cc01cc11cc21cc31cc41cc51cc61cc71cc81cc91cca1ccb1ccc1ccd1cce1ccf1cd01cd11cd21cd31cd41cd51cd61cd71cd81cd91cda1cdb1cdc1cdd1cde1cdf1ce01ce11ce21ce31ce41ce51ce61ce71ce81ce91cea1ceb1cec1ced1cee1cef1cf01cf11cf21cf31cf41cf51cf61cf71cf81cf91cfa1cfb1cfc1cfd1cfe1cff1c001d011d021d031d041d051d061d071d081d091d0a1d0b1d0c1d0d1d0e1d0f1d101d111d121d131d141d151d161d171d181d191d1a1d1b1d1c1d1d1d1e1d1f1d201d211d221d231d241d251d261d271d281d291d2a1d2b1d2c1d2d1d2e1d2f1d301d311d321d331d341d351d361d371d381d391d3a1d3b1d3c1d3d1d3e1d3f1d401d411d421d431d441d451d461d471d481d491d4a1d4b1d4c1d4d1d4e1d4f1d501d511d521d531d541d551d561d571d581d591d5a1d5b1d5c1d5d1d5e1d5f1d601d611d621d631d641d651d661d671d681d691d6a1d6b1d6c1d6d1d6e1d6f1d701d711d721d731d741d751d761d771d781d7da77a1d7b1d7c1d632c7e1d7f1d801d811d821d831d841d851d861d871d881d891d8a1d8b1d8c1d8d1d8e1d8f1d901d911d921d931d941d951d961d971d981d991d9a1d9b1d9c1d9d1d9e1d9f1da01da11da21da31da41da51da61da71da81da91daa1dab1dac1dad1dae1daf1db01db11db21db31db41db51db61db71db81db91dba1dbb1dbc1dbd1dbe1dbf1dc01dc11dc21dc31dc41dc51dc61dc71dc81dc91dca1dcb1dcc1dcd1dce1dcf1dd01dd11dd21dd31dd41dd51dd61dd71dd81dd91dda1ddb1ddc1ddd1dde1ddf1de01de11de21de31de41de51de61de71de81de91dea1deb1dec1ded1dee1def1df01df11df21df31df41df51df61df71df81df91dfa1dfb1dfc1dfd1dfe1dff1d001e001e021e021e041e041e061e061e081e081e0a1e0a1e0c1e0c1e0e1e0e1e101e101e121e121e141e141e161e161e181e181e1a1e1a1e1c1e1c1e1e1e1e1e201e201e221e221e241e241e261e261e281e281e2a1e2a1e2c1e2c1e2e1e2e1e301e301e321e321e341e341e361e361e381e381e3a1e3a1e3c1e3c1e3e1e3e1e401e401e421e421e441e441e461e461e481e481e4a1e4a1e4c1e4c1e4e1e4e1e501e501e521e521e541e541e561e561e581e581e5a1e5a1e5c1e5c1e5e1e5e1e601e601e621e621e641e641e661e661e681e681e6a1e6a1e6c1e6c1e6e1e6e1e701e701e721e721e741e741e761e761e781e781e7a1e7a1e7c1e7c1e7e1e7e1e801e801e821e821e841e841e861e861e881e881e8a1e8a1e8c1e8c1e8e1e8e1e901e901e921e921e941e941e961e971e981e991e9a1e9b1e9c1e9d1e9e1e9f1ea01ea01ea21ea21ea41ea41ea61ea61ea81ea81eaa1eaa1eac1eac1eae1eae1eb01eb01eb21eb21eb41eb41eb61eb61eb81eb81eba1eba1ebc1ebc1ebe1ebe1ec01ec01ec21ec21ec41ec41ec61ec61ec81ec81eca1eca1ecc1ecc1ece1ece1ed01ed01ed21ed21ed41ed41ed61ed61ed81ed81eda1eda1edc1edc1ede1ede1ee01ee01ee21ee21ee41ee41ee61ee61ee81ee81eea1eea1eec1eec1eee1eee1ef01ef01ef21ef21ef41ef41ef61ef61ef81ef81efa1efa1efc1efc1efe1efe1e081f091f0a1f0b1f0c1f0d1f0e1f0f1f081f091f0a1f0b1f0c1f0d1f0e1f0f1f181f191f1a1f1b1f1c1f1d1f161f171f181f191f1a1f1b1f1c1f1d1f1e1f1f1f281f291f2a1f2b1f2c1f2d1f2e1f2f1f281f291f2a1f2b1f2c1f2d1f2e1f2f1f381f391f3a1f3b1f3c1f3d1f3e1f3f1f381f391f3a1f3b1f3c1f3d1f3e1f3f1f481f491f4a1f4b1f4c1f4d1f461f471f481f491f4a1f4b1f4c1f4d1f4e1f4f1f501f591f521f5b1f541f5d1f561f5f1f581f591f5a1f5b1f5c1f5d1f5e1f5f1f681f691f6a1f6b1f6c1f6d1f6e1f6f1f681f691f6a1f6b1f6c1f6d1f6e1f6f1fba1fbb1fc81fc91fca1fcb1fda1fdb1ff81ff91fea1feb1ffa1ffb1f7e1f7f1f881f891f8a1f8b1f8c1f8d1f8e1f8f1f881f891f8a1f8b1f8c1f8d1f8e1f8f1f981f991f9a1f9b1f9c1f9d1f9e1f9f1f981f991f9a1f9b1f9c1f9d1f9e1f9f1fa81fa91faa1fab1fac1fad1fae1faf1fa81fa91faa1fab1fac1fad1fae1faf1fb81fb91fb21fbc1fb41fb51fb61fb71fb81fb91fba1fbb1fbc1fbd1fbe1fbf1fc01fc11fc21fcc1fc41fc51fc61fc71fc81fc91fca1fcb1fcc1fcd1fce1fcf1fd81fd91fd21fd31fd41fd51fd61fd71fd81fd91fda1fdb1fdc1fdd1fde1fdf1fe81fe91fe21fe31fe41fec1fe61fe71fe81fe91fea1feb1fec1fed1fee1fef1ff01ff11ff21ffc1ff41ff51ff61ff71ff81ff91ffa1ffb1ffc1ffd1ffe1fff1f00200120022003200420052006200720082009200a200b200c200d200e200f2010201120122013201420152016201720182019201a201b201c201d201e201f2020202120222023202420252026202720282029202a202b202c202d202e202f2030203120322033203420352036203720382039203a203b203c203d203e203f2040204120422043204420452046204720482049204a204b204c204d204e204f2050205120522053205420552056205720582059205a205b205c205d205e205f2060206120622063206420652066206720682069206a206b206c206d206e206f2070207120722073207420752076207720782079207a207b207c207d207e207f2080208120822083208420852086208720882089208a208b208c208d208e208f2090209120922093209420952096209720982099209a209b209c209d209e209f20a020a120a220a320a420a520a620a720a820a920aa20ab20ac20ad20ae20af20b020b120b220b320b420b520b620b720b820b920ba20bb20bc20bd20be20bf20c020c120c220c320c420c520c620c720c820c920ca20cb20cc20cd20ce20cf20d020d120d220d320d420d520d620d720d820d920da20db20dc20dd20de20df20e020e120e220e320e420e520e620e720e820e920ea20eb20ec20ed20ee20ef20f020f120f220f320f420f520f620f720f820f920fa20fb20fc20fd20fe20ff2000210121022103210421052106210721082109210a210b210c210d210e210f2110211121122113211421152116211721182119211a211b211c211d211e211f2120212121222123212421252126212721282129212a212b212c212d212e212f2130213121322133213421352136213721382139213a213b213c213d213e213f2140214121422143214421452146214721482149214a214b214c214d2132214f2150215121522153215421552156215721582159215a215b215c215d215e215f2160216121622163216421652166216721682169216a216b216c216d216e216f2160216121622163216421652166216721682169216a216b216c216d216e216f2180218121822183218321852186218721882189218a218b218c218d218e218f2190219121922193219421952196219721982199219a219b219c219d219e219f21a021a121a221a321a421a521a621a721a821a921aa21ab21ac21ad21ae21af21b021b121b221b321b421b521b621b721b821b921ba21bb21bc21bd21be21bf21c021c121c221c321c421c521c621c721c821c921ca21cb21cc21cd21ce21cf21d021d121d221d321d421d521d621d721d821d921da21db21dc21dd21de21df21e021e121e221e321e421e521e621e721e821e921ea21eb21ec21ed21ee21ef21f021f121f221f321f421f521f621f721f821f921fa21fb21fc21fd21fe21ff2100220122022203220422052206220722082209220a220b220c220d220e220f2210221122122213221422152216221722182219221a221b221c221d221e221f2220222122222223222422252226222722282229222a222b222c222d222e222f2230223122322233223422352236223722382239223a223b223c223d223e223f2240224122422243224422452246224722482249224a224b224c224d224e224f2250225122522253225422552256225722582259225a225b225c225d225e225f2260226122622263226422652266226722682269226a226b226c226d226e226f2270227122722273227422752276227722782279227a227b227c227d227e227f2280228122822283228422852286228722882289228a228b228c228d228e228f2290229122922293229422952296229722982299229a229b229c229d229e229f22a022a122a222a322a422a522a622a722a822a922aa22ab22ac22ad22ae22af22b022b122b222b322b422b522b622b722b822b922ba22bb22bc22bd22be22bf22c022c122c222c322c422c522c622c722c822c922ca22cb22cc22cd22ce22cf22d022d122d222d322d422d522d622d722d822d922da22db22dc22dd22de22df22e022e122e222e322e422e522e622e722e822e922ea22eb22ec22ed22ee22ef22f022f122f222f322f422f522f622f722f822f922fa22fb22fc22fd22fe22ff2200230123022303230423052306230723082309230a230b230c230d230e230f2310231123122313231423152316231723182319231a231b231c231d231e231f2320232123222323232423252326232723282329232a232b232c232d232e232f2330233123322333233423352336233723382339233a233b233c233d233e233f2340234123422343234423452346234723482349234a234b234c234d234e234f2350235123522353235423552356235723582359235a235b235c235d235e235f2360236123622363236423652366236723682369236a236b236c236d236e236f2370237123722373237423752376237723782379237a237b237c237d237e237f2380238123822383238423852386238723882389238a238b238c238d238e238f2390239123922393239423952396239723982399239a239b239c239d239e239f23a023a123a223a323a423a523a623a723a823a923aa23ab23ac23ad23ae23af23b023b123b223b323b423b523b623b723b823b923ba23bb23bc23bd23be23bf23c023c123c223c323c423c523c623c723c823c923ca23cb23cc23cd23ce23cf23d023d123d223d323d423d523d623d723d823d923da23db23dc23dd23de23df23e023e123e223e323e423e523e623e723e823e923ea23eb23ec23ed23ee23ef23f023f123f223f323f423f523f623f723f823f923fa23fb23fc23fd23fe23ff2300240124022403240424052406240724082409240a240b240c240d240e240f2410241124122413241424152416241724182419241a241b241c241d241e241f2420242124222423242424252426242724282429242a242b242c242d242e242f2430243124322433243424352436243724382439243a243b243c243d243e243f2440244124422443244424452446244724482449244a244b244c244d244e244f2450245124522453245424552456245724582459245a245b245c245d245e245f2460246124622463246424652466246724682469246a246b246c246d246e246f2470247124722473247424752476247724782479247a247b247c247d247e247f2480248124822483248424852486248724882489248a248b248c248d248e248f2490249124922493249424952496249724982499249a249b249c249d249e249f24a024a124a224a324a424a524a624a724a824a924aa24ab24ac24ad24ae24af24b024b124b224b324b424b524b624b724b824b924ba24bb24bc24bd24be24bf24c024c124c224c324c424c524c624c724c824c924ca24cb24cc24cd24ce24cf24b624b724b824b924ba24bb24bc24bd24be24bf24c024c124c224c324c424c524c624c724c824c924ca24cb24cc24cd24ce24cf24ea24eb24ec24ed24ee24ef24f024f124f224f324f424f524f624f724f824f924fa24fb24fc24fd24fe24ff2400250125022503250425052506250725082509250a250b250c250d250e250f2510251125122513251425152516251725182519251a251b251c251d251e251f2520252125222523252425252526252725282529252a252b252c252d252e252f2530253125322533253425352536253725382539253a253b253c253d253e253f2540254125422543254425452546254725482549254a254b254c254d254e254f2550255125522553255425552556255725582559255a255b255c255d255e255f2560256125622563256425652566256725682569256a256b256c256d256e256f2570257125722573257425752576257725782579257a257b257c257d257e257f2580258125822583258425852586258725882589258a258b258c258d258e258f2590259125922593259425952596259725982599259a259b259c259d259e259f25a025a125a225a325a425a525a625a725a825a925aa25ab25ac25ad25ae25af25b025b125b225b325b425b525b625b725b825b925ba25bb25bc25bd25be25bf25c025c125c225c325c425c525c625c725c825c925ca25cb25cc25cd25ce25cf25d025d125d225d325d425d525d625d725d825d925da25db25dc25dd25de25df25e025e125e225e325e425e525e625e725e825e925ea25eb25ec25ed25ee25ef25f025f125f225f325f425f525f625f725f825f925fa25fb25fc25fd25fe25ff2500260126022603260426052606260726082609260a260b260c260d260e260f2610261126122613261426152616261726182619261a261b261c261d261e261f2620262126222623262426252626262726282629262a262b262c262d262e262f2630263126322633263426352636263726382639263a263b263c263d263e263f2640264126422643264426452646264726482649264a264b264c264d264e264f2650265126522653265426552656265726582659265a265b265c265d265e265f2660266126622663266426652666266726682669266a266b266c266d266e266f2670267126722673267426752676267726782679267a267b267c267d267e267f2680268126822683268426852686268726882689268a268b268c268d268e268f2690269126922693269426952696269726982699269a269b269c269d269e269f26a026a126a226a326a426a526a626a726a826a926aa26ab26ac26ad26ae26af26b026b126b226b326b426b526b626b726b826b926ba26bb26bc26bd26be26bf26c026c126c226c326c426c526c626c726c826c926ca26cb26cc26cd26ce26cf26d026d126d226d326d426d526d626d726d826d926da26db26dc26dd26de26df26e026e126e226e326e426e526e626e726e826e926ea26eb26ec26ed26ee26ef26f026f126f226f326f426f526f626f726f826f926fa26fb26fc26fd26fe26ff2600270127022703270427052706270727082709270a270b270c270d270e270f2710271127122713271427152716271727182719271a271b271c271d271e271f2720272127222723272427252726272727282729272a272b272c272d272e272f2730273127322733273427352736273727382739273a273b273c273d273e273f2740274127422743274427452746274727482749274a274b274c274d274e274f2750275127522753275427552756275727582759275a275b275c275d275e275f2760276127622763276427652766276727682769276a276b276c276d276e276f2770277127722773277427752776277727782779277a277b277c277d277e277f2780278127822783278427852786278727882789278a278b278c278d278e278f2790279127922793279427952796279727982799279a279b279c279d279e279f27a027a127a227a327a427a527a627a727a827a927aa27ab27ac27ad27ae27af27b027b127b227b327b427b527b627b727b827b927ba27bb27bc27bd27be27bf27c027c127c227c327c427c527c627c727c827c927ca27cb27cc27cd27ce27cf27d027d127d227d327d427d527d627d727d827d927da27db27dc27dd27de27df27e027e127e227e327e427e527e627e727e827e927ea27eb27ec27ed27ee27ef27f027f127f227f327f427f527f627f727f827f927fa27fb27fc27fd27fe27ff2700280128022803280428052806280728082809280a280b280c280d280e280f2810281128122813281428152816281728182819281a281b281c281d281e281f2820282128222823282428252826282728282829282a282b282c282d282e282f2830283128322833283428352836283728382839283a283b283c283d283e283f2840284128422843284428452846284728482849284a284b284c284d284e284f2850285128522853285428552856285728582859285a285b285c285d285e285f2860286128622863286428652866286728682869286a286b286c286d286e286f2870287128722873287428752876287728782879287a287b287c287d287e287f2880288128822883288428852886288728882889288a288b288c288d288e288f2890289128922893289428952896289728982899289a289b289c289d289e289f28a028a128a228a328a428a528a628a728a828a928aa28ab28ac28ad28ae28af28b028b128b228b328b428b528b628b728b828b928ba28bb28bc28bd28be28bf28c028c128c228c328c428c528c628c728c828c928ca28cb28cc28cd28ce28cf28d028d128d228d328d428d528d628d728d828d928da28db28dc28dd28de28df28e028e128e228e328e428e528e628e728e828e928ea28eb28ec28ed28ee28ef28f028f128f228f328f428f528f628f728f828f928fa28fb28fc28fd28fe28ff2800290129022903290429052906290729082909290a290b290c290d290e290f2910291129122913291429152916291729182919291a291b291c291d291e291f2920292129222923292429252926292729282929292a292b292c292d292e292f2930293129322933293429352936293729382939293a293b293c293d293e293f2940294129422943294429452946294729482949294a294b294c294d294e294f2950295129522953295429552956295729582959295a295b295c295d295e295f2960296129622963296429652966296729682969296a296b296c296d296e296f2970297129722973297429752976297729782979297a297b297c297d297e297f2980298129822983298429852986298729882989298a298b298c298d298e298f2990299129922993299429952996299729982999299a299b299c299d299e299f29a029a129a229a329a429a529a629a729a829a929aa29ab29ac29ad29ae29af29b029b129b229b329b429b529b629b729b829b929ba29bb29bc29bd29be29bf29c029c129c229c329c429c529c629c729c829c929ca29cb29cc29cd29ce29cf29d029d129d229d329d429d529d629d729d829d929da29db29dc29dd29de29df29e029e129e229e329e429e529e629e729e829e929ea29eb29ec29ed29ee29ef29f029f129f229f329f429f529f629f729f829f929fa29fb29fc29fd29fe29ff29002a012a022a032a042a052a062a072a082a092a0a2a0b2a0c2a0d2a0e2a0f2a102a112a122a132a142a152a162a172a182a192a1a2a1b2a1c2a1d2a1e2a1f2a202a212a222a232a242a252a262a272a282a292a2a2a2b2a2c2a2d2a2e2a2f2a302a312a322a332a342a352a362a372a382a392a3a2a3b2a3c2a3d2a3e2a3f2a402a412a422a432a442a452a462a472a482a492a4a2a4b2a4c2a4d2a4e2a4f2a502a512a522a532a542a552a562a572a582a592a5a2a5b2a5c2a5d2a5e2a5f2a602a612a622a632a642a652a662a672a682a692a6a2a6b2a6c2a6d2a6e2a6f2a702a712a722a732a742a752a762a772a782a792a7a2a7b2a7c2a7d2a7e2a7f2a802a812a822a832a842a852a862a872a882a892a8a2a8b2a8c2a8d2a8e2a8f2a902a912a922a932a942a952a962a972a982a992a9a2a9b2a9c2a9d2a9e2a9f2aa02aa12aa22aa32aa42aa52aa62aa72aa82aa92aaa2aab2aac2aad2aae2aaf2ab02ab12ab22ab32ab42ab52ab62ab72ab82ab92aba2abb2abc2abd2abe2abf2ac02ac12ac22ac32ac42ac52ac62ac72ac82ac92aca2acb2acc2acd2ace2acf2ad02ad12ad22ad32ad42ad52ad62ad72ad82ad92ada2adb2adc2add2ade2adf2ae02ae12ae22ae32ae42ae52ae62ae72ae82ae92aea2aeb2aec2aed2aee2aef2af02af12af22af32af42af52af62af72af82af92afa2afb2afc2afd2afe2aff2a002b012b022b032b042b052b062b072b082b092b0a2b0b2b0c2b0d2b0e2b0f2b102b112b122b132b142b152b162b172b182b192b1a2b1b2b1c2b1d2b1e2b1f2b202b212b222b232b242b252b262b272b282b292b2a2b2b2b2c2b2d2b2e2b2f2b302b312b322b332b342b352b362b372b382b392b3a2b3b2b3c2b3d2b3e2b3f2b402b412b422b432b442b452b462b472b482b492b4a2b4b2b4c2b4d2b4e2b4f2b502b512b522b532b542b552b562b572b582b592b5a2b5b2b5c2b5d2b5e2b5f2b602b612b622b632b642b652b662b672b682b692b6a2b6b2b6c2b6d2b6e2b6f2b702b712b722b732b742b752b762b772b782b792b7a2b7b2b7c2b7d2b7e2b7f2b802b812b822b832b842b852b862b872b882b892b8a2b8b2b8c2b8d2b8e2b8f2b902b912b922b932b942b952b962b972b982b992b9a2b9b2b9c2b9d2b9e2b9f2ba02ba12ba22ba32ba42ba52ba62ba72ba82ba92baa2bab2bac2bad2bae2baf2bb02bb12bb22bb32bb42bb52bb62bb72bb82bb92bba2bbb2bbc2bbd2bbe2bbf2bc02bc12bc22bc32bc42bc52bc62bc72bc82bc92bca2bcb2bcc2bcd2bce2bcf2bd02bd12bd22bd32bd42bd52bd62bd72bd82bd92bda2bdb2bdc2bdd2bde2bdf2be02be12be22be32be42be52be62be72be82be92bea2beb2bec2bed2bee2bef2bf02bf12bf22bf32bf42bf52bf62bf72bf82bf92bfa2bfb2bfc2bfd2bfe2bff2b002c012c022c032c042c052c062c072c082c092c0a2c0b2c0c2c0d2c0e2c0f2c102c112c122c132c142c152c162c172c182c192c1a2c1b2c1c2c1d2c1e2c1f2c202c212c222c232c242c252c262c272c282c292c2a2c2b2c2c2c2d2c2e2c2f2c002c012c022c032c042c052c062c072c082c092c0a2c0b2c0c2c0d2c0e2c0f2c102c112c122c132c142c152c162c172c182c192c1a2c1b2c1c2c1d2c1e2c1f2c202c212c222c232c242c252c262c272c282c292c2a2c2b2c2c2c2d2c2e2c5f2c602c602c622c632c642c3a023e02672c672c692c692c6b2c6b2c6d2c6e2c6f2c702c712c722c722c742c752c752c772c782c792c7a2c7b2c7c2c7d2c7e2c7f2c802c802c822c822c842c842c862c862c882c882c8a2c8a2c8c2c8c2c8e2c8e2c902c902c922c922c942c942c962c962c982c982c9a2c9a2c9c2c9c2c9e2c9e2ca02ca02ca22ca22ca42ca42ca62ca62ca82ca82caa2caa2cac2cac2cae2cae2cb02cb02cb22cb22cb42cb42cb62cb62cb82cb82cba2cba2cbc2cbc2cbe2cbe2cc02cc02cc22cc22cc42cc42cc62cc62cc82cc82cca2cca2ccc2ccc2cce2cce2cd02cd02cd22cd22cd42cd42cd62cd62cd82cd82cda2cda2cdc2cdc2cde2cde2ce02ce02ce22ce22ce42ce52ce62ce72ce82ce92cea2ceb2cec2ced2cee2cef2cf02cf12cf22cf32cf42cf52cf62cf72cf82cf92cfa2cfb2cfc2cfd2cfe2cff2ca010a110a210a310a410a510a610a710a810a910aa10ab10ac10ad10ae10af10b010b110b210b310b410b510b610b710b810b910ba10bb10bc10bd10be10bf10c010c110c210c310c410c510262d272d282d292d2a2d2b2d2c2d2d2d2e2d2f2d302d312d322d332d342d352d362d372d382d392d3a2d3b2d3c2d3d2d3e2d3f2d402d412d422d432d442d452d462d472d482d492d4a2d4b2d4c2d4d2d4e2d4f2d502d512d522d532d542d552d562d572d582d592d5a2d5b2d5c2d5d2d5e2d5f2d602d612d622d632d642d652d662d672d682d692d6a2d6b2d6c2d6d2d6e2d6f2d702d712d722d732d742d752d762d772d782d792d7a2d7b2d7c2d7d2d7e2d7f2d802d812d822d832d842d852d862d872d882d892d8a2d8b2d8c2d8d2d8e2d8f2d902d912d922d932d942d952d962d972d982d992d9a2d9b2d9c2d9d2d9e2d9f2da02da12da22da32da42da52da62da72da82da92daa2dab2dac2dad2dae2daf2db02db12db22db32db42db52db62db72db82db92dba2dbb2dbc2dbd2dbe2dbf2dc02dc12dc22dc32dc42dc52dc62dc72dc82dc92dca2dcb2dcc2dcd2dce2dcf2dd02dd12dd22dd32dd42dd52dd62dd72dd82dd92dda2ddb2ddc2ddd2dde2ddf2de02de12de22de32de42de52de62de72de82de92dea2deb2dec2ded2dee2def2df02df12df22df32df42df52df62df72df82df92dfa2dfb2dfc2dfd2dfe2dff2d002e012e022e032e042e052e062e072e082e092e0a2e0b2e0c2e0d2e0e2e0f2e102e112e122e132e142e152e162e172e182e192e1a2e1b2e1c2e1d2e1e2e1f2e202e212e222e232e242e252e262e272e282e292e2a2e2b2e2c2e2d2e2e2e2f2e302e312e322e332e342e352e362e372e382e392e3a2e3b2e3c2e3d2e3e2e3f2e402e412e422e432e442e452e462e472e482e492e4a2e4b2e4c2e4d2e4e2e4f2e502e512e522e532e542e552e562e572e582e592e5a2e5b2e5c2e5d2e5e2e5f2e602e612e622e632e642e652e662e672e682e692e6a2e6b2e6c2e6d2e6e2e6f2e702e712e722e732e742e752e762e772e782e792e7a2e7b2e7c2e7d2e7e2e7f2e802e812e822e832e842e852e862e872e882e892e8a2e8b2e8c2e8d2e8e2e8f2e902e912e922e932e942e952e962e972e982e992e9a2e9b2e9c2e9d2e9e2e9f2ea02ea12ea22ea32ea42ea52ea62ea72ea82ea92eaa2eab2eac2ead2eae2eaf2eb02eb12eb22eb32eb42eb52eb62eb72eb82eb92eba2ebb2ebc2ebd2ebe2ebf2ec02ec12ec22ec32ec42ec52ec62ec72ec82ec92eca2ecb2ecc2ecd2ece2ecf2ed02ed12ed22ed32ed42ed52ed62ed72ed82ed92eda2edb2edc2edd2ede2edf2ee02ee12ee22ee32ee42ee52ee62ee72ee82ee92eea2eeb2eec2eed2eee2eef2ef02ef12ef22ef32ef42ef52ef62ef72ef82ef92efa2efb2efc2efd2efe2eff2e002f012f022f032f042f052f062f072f082f092f0a2f0b2f0c2f0d2f0e2f0f2f102f112f122f132f142f152f162f172f182f192f1a2f1b2f1c2f1d2f1e2f1f2f202f212f222f232f242f252f262f272f282f292f2a2f2b2f2c2f2d2f2e2f2f2f302f312f322f332f342f352f362f372f382f392f3a2f3b2f3c2f3d2f3e2f3f2f402f412f422f432f442f452f462f472f482f492f4a2f4b2f4c2f4d2f4e2f4f2f502f512f522f532f542f552f562f572f582f592f5a2f5b2f5c2f5d2f5e2f5f2f602f612f622f632f642f652f662f672f682f692f6a2f6b2f6c2f6d2f6e2f6f2f702f712f722f732f742f752f762f772f782f792f7a2f7b2f7c2f7d2f7e2f7f2f802f812f822f832f842f852f862f872f882f892f8a2f8b2f8c2f8d2f8e2f8f2f902f912f922f932f942f952f962f972f982f992f9a2f9b2f9c2f9d2f9e2f9f2fa02fa12fa22fa32fa42fa52fa62fa72fa82fa92faa2fab2fac2fad2fae2faf2fb02fb12fb22fb32fb42fb52fb62fb72fb82fb92fba2fbb2fbc2fbd2fbe2fbf2fc02fc12fc22fc32fc42fc52fc62fc72fc82fc92fca2fcb2fcc2fcd2fce2fcf2fd02fd12fd22fd32fd42fd52fd62fd72fd82fd92fda2fdb2fdc2fdd2fde2fdf2fe02fe12fe22fe32fe42fe52fe62fe72fe82fe92fea2feb2fec2fed2fee2fef2ff02ff12ff22ff32ff42ff52ff62ff72ff82ff92ffa2ffb2ffc2ffd2ffe2fff2f00300130023003300430053006300730083009300a300b300c300d300e300f3010301130123013301430153016301730183019301a301b301c301d301e301f3020302130223023302430253026302730283029302a302b302c302d302e302f3030303130323033303430353036303730383039303a303b303c303d303e303f3040304130423043304430453046304730483049304a304b304c304d304e304f3050305130523053305430553056305730583059305a305b305c305d305e305f3060306130623063306430653066306730683069306a306b306c306d306e306f3070307130723073307430753076307730783079307a307b307c307d307e307f3080308130823083308430853086308730883089308a308b308c308d308e308f3090309130923093309430953096309730983099309a309b309c309d309e309f30a030a130a230a330a430a530a630a730a830a930aa30ab30ac30ad30ae30af30b030b130b230b330b430b530b630b730b830b930ba30bb30bc30bd30be30bf30c030c130c230c330c430c530c630c730c830c930ca30cb30cc30cd30ce30cf30d030d130d230d330d430d530d630d730d830d930da30db30dc30dd30de30df30e030e130e230e330e430e530e630e730e830e930ea30eb30ec30ed30ee30ef30f030f130f230f330f430f530f630f730f830f930fa30fb30fc30fd30fe30ff3000310131023103310431053106310731083109310a310b310c310d310e310f3110311131123113311431153116311731183119311a311b311c311d311e311f3120312131223123312431253126312731283129312a312b312c312d312e312f3130313131323133313431353136313731383139313a313b313c313d313e313f3140314131423143314431453146314731483149314a314b314c314d314e314f3150315131523153315431553156315731583159315a315b315c315d315e315f3160316131623163316431653166316731683169316a316b316c316d316e316f3170317131723173317431753176317731783179317a317b317c317d317e317f3180318131823183318431853186318731883189318a318b318c318d318e318f3190319131923193319431953196319731983199319a319b319c319d319e319f31a031a131a231a331a431a531a631a731a831a931aa31ab31ac31ad31ae31af31b031b131b231b331b431b531b631b731b831b931ba31bb31bc31bd31be31bf31c031c131c231c331c431c531c631c731c831c931ca31cb31cc31cd31ce31cf31d031d131d231d331d431d531d631d731d831d931da31db31dc31dd31de31df31e031e131e231e331e431e531e631e731e831e931ea31eb31ec31ed31ee31ef31f031f131f231f331f431f531f631f731f831f931fa31fb31fc31fd31fe31ff3100320132023203320432053206320732083209320a320b320c320d320e320f3210321132123213321432153216321732183219321a321b321c321d321e321f3220322132223223322432253226322732283229322a322b322c322d322e322f3230323132323233323432353236323732383239323a323b323c323d323e323f3240324132423243324432453246324732483249324a324b324c324d324e324f3250325132523253325432553256325732583259325a325b325c325d325e325f3260326132623263326432653266326732683269326a326b326c326d326e326f3270327132723273327432753276327732783279327a327b327c327d327e327f3280328132823283328432853286328732883289328a328b328c328d328e328f3290329132923293329432953296329732983299329a329b329c329d329e329f32a032a132a232a332a432a532a632a732a832a932aa32ab32ac32ad32ae32af32b032b132b232b332b432b532b632b732b832b932ba32bb32bc32bd32be32bf32c032c132c232c332c432c532c632c732c832c932ca32cb32cc32cd32ce32cf32d032d132d232d332d432d532d632d732d832d932da32db32dc32dd32de32df32e032e132e232e332e432e532e632e732e832e932ea32eb32ec32ed32ee32ef32f032f132f232f332f432f532f632f732f832f932fa32fb32fc32fd32fe32ff3200330133023303330433053306330733083309330a330b330c330d330e330f3310331133123313331433153316331733183319331a331b331c331d331e331f3320332133223323332433253326332733283329332a332b332c332d332e332f3330333133323333333433353336333733383339333a333b333c333d333e333f3340334133423343334433453346334733483349334a334b334c334d334e334f3350335133523353335433553356335733583359335a335b335c335d335e335f3360336133623363336433653366336733683369336a336b336c336d336e336f3370337133723373337433753376337733783379337a337b337c337d337e337f3380338133823383338433853386338733883389338a338b338c338d338e338f3390339133923393339433953396339733983399339a339b339c339d339e339f33a033a133a233a333a433a533a633a733a833a933aa33ab33ac33ad33ae33af33b033b133b233b333b433b533b633b733b833b933ba33bb33bc33bd33be33bf33c033c133c233c333c433c533c633c733c833c933ca33cb33cc33cd33ce33cf33d033d133d233d333d433d533d633d733d833d933da33db33dc33dd33de33df33e033e133e233e333e433e533e633e733e833e933ea33eb33ec33ed33ee33ef33f033f133f233f333f433f533f633f733f833f933fa33fb33fc33fd33fe33ff3300340134023403340434053406340734083409340a340b340c340d340e340f3410341134123413341434153416341734183419341a341b341c341d341e341f3420342134223423342434253426342734283429342a342b342c342d342e342f3430343134323433343434353436343734383439343a343b343c343d343e343f3440344134423443344434453446344734483449344a344b344c344d344e344f3450345134523453345434553456345734583459345a345b345c345d345e345f3460346134623463346434653466346734683469346a346b346c346d346e346f3470347134723473347434753476347734783479347a347b347c347d347e347f3480348134823483348434853486348734883489348a348b348c348d348e348f3490349134923493349434953496349734983499349a349b349c349d349e349f34a034a134a234a334a434a534a634a734a834a934aa34ab34ac34ad34ae34af34b034b134b234b334b434b534b634b734b834b934ba34bb34bc34bd34be34bf34c034c134c234c334c434c534c634c734c834c934ca34cb34cc34cd34ce34cf34d034d134d234d334d434d534d634d734d834d934da34db34dc34dd34de34df34e034e134e234e334e434e534e634e734e834e934ea34eb34ec34ed34ee34ef34f034f134f234f334f434f534f634f734f834f934fa34fb34fc34fd34fe34ff3400350135023503350435053506350735083509350a350b350c350d350e350f3510351135123513351435153516351735183519351a351b351c351d351e351f3520352135223523352435253526352735283529352a352b352c352d352e352f3530353135323533353435353536353735383539353a353b353c353d353e353f3540354135423543354435453546354735483549354a354b354c354d354e354f3550355135523553355435553556355735583559355a355b355c355d355e355f3560356135623563356435653566356735683569356a356b356c356d356e356f3570357135723573357435753576357735783579357a357b357c357d357e357f3580358135823583358435853586358735883589358a358b358c358d358e358f3590359135923593359435953596359735983599359a359b359c359d359e359f35a035a135a235a335a435a535a635a735a835a935aa35ab35ac35ad35ae35af35b035b135b235b335b435b535b635b735b835b935ba35bb35bc35bd35be35bf35c035c135c235c335c435c535c635c735c835c935ca35cb35cc35cd35ce35cf35d035d135d235d335d435d535d635d735d835d935da35db35dc35dd35de35df35e035e135e235e335e435e535e635e735e835e935ea35eb35ec35ed35ee35ef35f035f135f235f335f435f535f635f735f835f935fa35fb35fc35fd35fe35ff3500360136023603360436053606360736083609360a360b360c360d360e360f3610361136123613361436153616361736183619361a361b361c361d361e361f3620362136223623362436253626362736283629362a362b362c362d362e362f3630363136323633363436353636363736383639363a363b363c363d363e363f3640364136423643364436453646364736483649364a364b364c364d364e364f3650365136523653365436553656365736583659365a365b365c365d365e365f3660366136623663366436653666366736683669366a366b366c366d366e366f3670367136723673367436753676367736783679367a367b367c367d367e367f3680368136823683368436853686368736883689368a368b368c368d368e368f3690369136923693369436953696369736983699369a369b369c369d369e369f36a036a136a236a336a436a536a636a736a836a936aa36ab36ac36ad36ae36af36b036b136b236b336b436b536b636b736b836b936ba36bb36bc36bd36be36bf36c036c136c236c336c436c536c636c736c836c936ca36cb36cc36cd36ce36cf36d036d136d236d336d436d536d636d736d836d936da36db36dc36dd36de36df36e036e136e236e336e436e536e636e736e836e936ea36eb36ec36ed36ee36ef36f036f136f236f336f436f536f636f736f836f936fa36fb36fc36fd36fe36ff3600370137023703370437053706370737083709370a370b370c370d370e370f3710371137123713371437153716371737183719371a371b371c371d371e371f3720372137223723372437253726372737283729372a372b372c372d372e372f3730373137323733373437353736373737383739373a373b373c373d373e373f3740374137423743374437453746374737483749374a374b374c374d374e374f3750375137523753375437553756375737583759375a375b375c375d375e375f3760376137623763376437653766376737683769376a376b376c376d376e376f3770377137723773377437753776377737783779377a377b377c377d377e377f3780378137823783378437853786378737883789378a378b378c378d378e378f3790379137923793379437953796379737983799379a379b379c379d379e379f37a037a137a237a337a437a537a637a737a837a937aa37ab37ac37ad37ae37af37b037b137b237b337b437b537b637b737b837b937ba37bb37bc37bd37be37bf37c037c137c237c337c437c537c637c737c837c937ca37cb37cc37cd37ce37cf37d037d137d237d337d437d537d637d737d837d937da37db37dc37dd37de37df37e037e137e237e337e437e537e637e737e837e937ea37eb37ec37ed37ee37ef37f037f137f237f337f437f537f637f737f837f937fa37fb37fc37fd37fe37ff3700380138023803380438053806380738083809380a380b380c380d380e380f3810381138123813381438153816381738183819381a381b381c381d381e381f3820382138223823382438253826382738283829382a382b382c382d382e382f3830383138323833383438353836383738383839383a383b383c383d383e383f3840384138423843384438453846384738483849384a384b384c384d384e384f3850385138523853385438553856385738583859385a385b385c385d385e385f3860386138623863386438653866386738683869386a386b386c386d386e386f3870387138723873387438753876387738783879387a387b387c387d387e387f3880388138823883388438853886388738883889388a388b388c388d388e388f3890389138923893389438953896389738983899389a389b389c389d389e389f38a038a138a238a338a438a538a638a738a838a938aa38ab38ac38ad38ae38af38b038b138b238b338b438b538b638b738b838b938ba38bb38bc38bd38be38bf38c038c138c238c338c438c538c638c738c838c938ca38cb38cc38cd38ce38cf38d038d138d238d338d438d538d638d738d838d938da38db38dc38dd38de38df38e038e138e238e338e438e538e638e738e838e938ea38eb38ec38ed38ee38ef38f038f138f238f338f438f538f638f738f838f938fa38fb38fc38fd38fe38ff3800390139023903390439053906390739083909390a390b390c390d390e390f3910391139123913391439153916391739183919391a391b391c391d391e391f3920392139223923392439253926392739283929392a392b392c392d392e392f3930393139323933393439353936393739383939393a393b393c393d393e393f3940394139423943394439453946394739483949394a394b394c394d394e394f3950395139523953395439553956395739583959395a395b395c395d395e395f3960396139623963396439653966396739683969396a396b396c396d396e396f3970397139723973397439753976397739783979397a397b397c397d397e397f3980398139823983398439853986398739883989398a398b398c398d398e398f3990399139923993399439953996399739983999399a399b399c399d399e399f39a039a139a239a339a439a539a639a739a839a939aa39ab39ac39ad39ae39af39b039b139b239b339b439b539b639b739b839b939ba39bb39bc39bd39be39bf39c039c139c239c339c439c539c639c739c839c939ca39cb39cc39cd39ce39cf39d039d139d239d339d439d539d639d739d839d939da39db39dc39dd39de39df39e039e139e239e339e439e539e639e739e839e939ea39eb39ec39ed39ee39ef39f039f139f239f339f439f539f639f739f839f939fa39fb39fc39fd39fe39ff39003a013a023a033a043a053a063a073a083a093a0a3a0b3a0c3a0d3a0e3a0f3a103a113a123a133a143a153a163a173a183a193a1a3a1b3a1c3a1d3a1e3a1f3a203a213a223a233a243a253a263a273a283a293a2a3a2b3a2c3a2d3a2e3a2f3a303a313a323a333a343a353a363a373a383a393a3a3a3b3a3c3a3d3a3e3a3f3a403a413a423a433a443a453a463a473a483a493a4a3a4b3a4c3a4d3a4e3a4f3a503a513a523a533a543a553a563a573a583a593a5a3a5b3a5c3a5d3a5e3a5f3a603a613a623a633a643a653a663a673a683a693a6a3a6b3a6c3a6d3a6e3a6f3a703a713a723a733a743a753a763a773a783a793a7a3a7b3a7c3a7d3a7e3a7f3a803a813a823a833a843a853a863a873a883a893a8a3a8b3a8c3a8d3a8e3a8f3a903a913a923a933a943a953a963a973a983a993a9a3a9b3a9c3a9d3a9e3a9f3aa03aa13aa23aa33aa43aa53aa63aa73aa83aa93aaa3aab3aac3aad3aae3aaf3ab03ab13ab23ab33ab43ab53ab63ab73ab83ab93aba3abb3abc3abd3abe3abf3ac03ac13ac23ac33ac43ac53ac63ac73ac83ac93aca3acb3acc3acd3ace3acf3ad03ad13ad23ad33ad43ad53ad63ad73ad83ad93ada3adb3adc3add3ade3adf3ae03ae13ae23ae33ae43ae53ae63ae73ae83ae93aea3aeb3aec3aed3aee3aef3af03af13af23af33af43af53af63af73af83af93afa3afb3afc3afd3afe3aff3a003b013b023b033b043b053b063b073b083b093b0a3b0b3b0c3b0d3b0e3b0f3b103b113b123b133b143b153b163b173b183b193b1a3b1b3b1c3b1d3b1e3b1f3b203b213b223b233b243b253b263b273b283b293b2a3b2b3b2c3b2d3b2e3b2f3b303b313b323b333b343b353b363b373b383b393b3a3b3b3b3c3b3d3b3e3b3f3b403b413b423b433b443b453b463b473b483b493b4a3b4b3b4c3b4d3b4e3b4f3b503b513b523b533b543b553b563b573b583b593b5a3b5b3b5c3b5d3b5e3b5f3b603b613b623b633b643b653b663b673b683b693b6a3b6b3b6c3b6d3b6e3b6f3b703b713b723b733b743b753b763b773b783b793b7a3b7b3b7c3b7d3b7e3b7f3b803b813b823b833b843b853b863b873b883b893b8a3b8b3b8c3b8d3b8e3b8f3b903b913b923b933b943b953b963b973b983b993b9a3b9b3b9c3b9d3b9e3b9f3ba03ba13ba23ba33ba43ba53ba63ba73ba83ba93baa3bab3bac3bad3bae3baf3bb03bb13bb23bb33bb43bb53bb63bb73bb83bb93bba3bbb3bbc3bbd3bbe3bbf3bc03bc13bc23bc33bc43bc53bc63bc73bc83bc93bca3bcb3bcc3bcd3bce3bcf3bd03bd13bd23bd33bd43bd53bd63bd73bd83bd93bda3bdb3bdc3bdd3bde3bdf3be03be13be23be33be43be53be63be73be83be93bea3beb3bec3bed3bee3bef3bf03bf13bf23bf33bf43bf53bf63bf73bf83bf93bfa3bfb3bfc3bfd3bfe3bff3b003c013c023c033c043c053c063c073c083c093c0a3c0b3c0c3c0d3c0e3c0f3c103c113c123c133c143c153c163c173c183c193c1a3c1b3c1c3c1d3c1e3c1f3c203c213c223c233c243c253c263c273c283c293c2a3c2b3c2c3c2d3c2e3c2f3c303c313c323c333c343c353c363c373c383c393c3a3c3b3c3c3c3d3c3e3c3f3c403c413c423c433c443c453c463c473c483c493c4a3c4b3c4c3c4d3c4e3c4f3c503c513c523c533c543c553c563c573c583c593c5a3c5b3c5c3c5d3c5e3c5f3c603c613c623c633c643c653c663c673c683c693c6a3c6b3c6c3c6d3c6e3c6f3c703c713c723c733c743c753c763c773c783c793c7a3c7b3c7c3c7d3c7e3c7f3c803c813c823c833c843c853c863c873c883c893c8a3c8b3c8c3c8d3c8e3c8f3c903c913c923c933c943c953c963c973c983c993c9a3c9b3c9c3c9d3c9e3c9f3ca03ca13ca23ca33ca43ca53ca63ca73ca83ca93caa3cab3cac3cad3cae3caf3cb03cb13cb23cb33cb43cb53cb63cb73cb83cb93cba3cbb3cbc3cbd3cbe3cbf3cc03cc13cc23cc33cc43cc53cc63cc73cc83cc93cca3ccb3ccc3ccd3cce3ccf3cd03cd13cd23cd33cd43cd53cd63cd73cd83cd93cda3cdb3cdc3cdd3cde3cdf3ce03ce13ce23ce33ce43ce53ce63ce73ce83ce93cea3ceb3cec3ced3cee3cef3cf03cf13cf23cf33cf43cf53cf63cf73cf83cf93cfa3cfb3cfc3cfd3cfe3cff3c003d013d023d033d043d053d063d073d083d093d0a3d0b3d0c3d0d3d0e3d0f3d103d113d123d133d143d153d163d173d183d193d1a3d1b3d1c3d1d3d1e3d1f3d203d213d223d233d243d253d263d273d283d293d2a3d2b3d2c3d2d3d2e3d2f3d303d313d323d333d343d353d363d373d383d393d3a3d3b3d3c3d3d3d3e3d3f3d403d413d423d433d443d453d463d473d483d493d4a3d4b3d4c3d4d3d4e3d4f3d503d513d523d533d543d553d563d573d583d593d5a3d5b3d5c3d5d3d5e3d5f3d603d613d623d633d643d653d663d673d683d693d6a3d6b3d6c3d6d3d6e3d6f3d703d713d723d733d743d753d763d773d783d793d7a3d7b3d7c3d7d3d7e3d7f3d803d813d823d833d843d853d863d873d883d893d8a3d8b3d8c3d8d3d8e3d8f3d903d913d923d933d943d953d963d973d983d993d9a3d9b3d9c3d9d3d9e3d9f3da03da13da23da33da43da53da63da73da83da93daa3dab3dac3dad3dae3daf3db03db13db23db33db43db53db63db73db83db93dba3dbb3dbc3dbd3dbe3dbf3dc03dc13dc23dc33dc43dc53dc63dc73dc83dc93dca3dcb3dcc3dcd3dce3dcf3dd03dd13dd23dd33dd43dd53dd63dd73dd83dd93dda3ddb3ddc3ddd3dde3ddf3de03de13de23de33de43de53de63de73de83de93dea3deb3dec3ded3dee3def3df03df13df23df33df43df53df63df73df83df93dfa3dfb3dfc3dfd3dfe3dff3d003e013e023e033e043e053e063e073e083e093e0a3e0b3e0c3e0d3e0e3e0f3e103e113e123e133e143e153e163e173e183e193e1a3e1b3e1c3e1d3e1e3e1f3e203e213e223e233e243e253e263e273e283e293e2a3e2b3e2c3e2d3e2e3e2f3e303e313e323e333e343e353e363e373e383e393e3a3e3b3e3c3e3d3e3e3e3f3e403e413e423e433e443e453e463e473e483e493e4a3e4b3e4c3e4d3e4e3e4f3e503e513e523e533e543e553e563e573e583e593e5a3e5b3e5c3e5d3e5e3e5f3e603e613e623e633e643e653e663e673e683e693e6a3e6b3e6c3e6d3e6e3e6f3e703e713e723e733e743e753e763e773e783e793e7a3e7b3e7c3e7d3e7e3e7f3e803e813e823e833e843e853e863e873e883e893e8a3e8b3e8c3e8d3e8e3e8f3e903e913e923e933e943e953e963e973e983e993e9a3e9b3e9c3e9d3e9e3e9f3ea03ea13ea23ea33ea43ea53ea63ea73ea83ea93eaa3eab3eac3ead3eae3eaf3eb03eb13eb23eb33eb43eb53eb63eb73eb83eb93eba3ebb3ebc3ebd3ebe3ebf3ec03ec13ec23ec33ec43ec53ec63ec73ec83ec93eca3ecb3ecc3ecd3ece3ecf3ed03ed13ed23ed33ed43ed53ed63ed73ed83ed93eda3edb3edc3edd3ede3edf3ee03ee13ee23ee33ee43ee53ee63ee73ee83ee93eea3eeb3eec3eed3eee3eef3ef03ef13ef23ef33ef43ef53ef63ef73ef83ef93efa3efb3efc3efd3efe3eff3e003f013f023f033f043f053f063f073f083f093f0a3f0b3f0c3f0d3f0e3f0f3f103f113f123f133f143f153f163f173f183f193f1a3f1b3f1c3f1d3f1e3f1f3f203f213f223f233f243f253f263f273f283f293f2a3f2b3f2c3f2d3f2e3f2f3f303f313f323f333f343f353f363f373f383f393f3a3f3b3f3c3f3d3f3e3f3f3f403f413f423f433f443f453f463f473f483f493f4a3f4b3f4c3f4d3f4e3f4f3f503f513f523f533f543f553f563f573f583f593f5a3f5b3f5c3f5d3f5e3f5f3f603f613f623f633f643f653f663f673f683f693f6a3f6b3f6c3f6d3f6e3f6f3f703f713f723f733f743f753f763f773f783f793f7a3f7b3f7c3f7d3f7e3f7f3f803f813f823f833f843f853f863f873f883f893f8a3f8b3f8c3f8d3f8e3f8f3f903f913f923f933f943f953f963f973f983f993f9a3f9b3f9c3f9d3f9e3f9f3fa03fa13fa23fa33fa43fa53fa63fa73fa83fa93faa3fab3fac3fad3fae3faf3fb03fb13fb23fb33fb43fb53fb63fb73fb83fb93fba3fbb3fbc3fbd3fbe3fbf3fc03fc13fc23fc33fc43fc53fc63fc73fc83fc93fca3fcb3fcc3fcd3fce3fcf3fd03fd13fd23fd33fd43fd53fd63fd73fd83fd93fda3fdb3fdc3fdd3fde3fdf3fe03fe13fe23fe33fe43fe53fe63fe73fe83fe93fea3feb3fec3fed3fee3fef3ff03ff13ff23ff33ff43ff53ff63ff73ff83ff93ffa3ffb3ffc3ffd3ffe3fff3f00400140024003400440054006400740084009400a400b400c400d400e400f4010401140124013401440154016401740184019401a401b401c401d401e401f4020402140224023402440254026402740284029402a402b402c402d402e402f4030403140324033403440354036403740384039403a403b403c403d403e403f4040404140424043404440454046404740484049404a404b404c404d404e404f4050405140524053405440554056405740584059405a405b405c405d405e405f4060406140624063406440654066406740684069406a406b406c406d406e406f4070407140724073407440754076407740784079407a407b407c407d407e407f4080408140824083408440854086408740884089408a408b408c408d408e408f4090409140924093409440954096409740984099409a409b409c409d409e409f40a040a140a240a340a440a540a640a740a840a940aa40ab40ac40ad40ae40af40b040b140b240b340b440b540b640b740b840b940ba40bb40bc40bd40be40bf40c040c140c240c340c440c540c640c740c840c940ca40cb40cc40cd40ce40cf40d040d140d240d340d440d540d640d740d840d940da40db40dc40dd40de40df40e040e140e240e340e440e540e640e740e840e940ea40eb40ec40ed40ee40ef40f040f140f240f340f440f540f640f740f840f940fa40fb40fc40fd40fe40ff4000410141024103410441054106410741084109410a410b410c410d410e410f4110411141124113411441154116411741184119411a411b411c411d411e411f4120412141224123412441254126412741284129412a412b412c412d412e412f4130413141324133413441354136413741384139413a413b413c413d413e413f4140414141424143414441454146414741484149414a414b414c414d414e414f4150415141524153415441554156415741584159415a415b415c415d415e415f4160416141624163416441654166416741684169416a416b416c416d416e416f4170417141724173417441754176417741784179417a417b417c417d417e417f4180418141824183418441854186418741884189418a418b418c418d418e418f4190419141924193419441954196419741984199419a419b419c419d419e419f41a041a141a241a341a441a541a641a741a841a941aa41ab41ac41ad41ae41af41b041b141b241b341b441b541b641b741b841b941ba41bb41bc41bd41be41bf41c041c141c241c341c441c541c641c741c841c941ca41cb41cc41cd41ce41cf41d041d141d241d341d441d541d641d741d841d941da41db41dc41dd41de41df41e041e141e241e341e441e541e641e741e841e941ea41eb41ec41ed41ee41ef41f041f141f241f341f441f541f641f741f841f941fa41fb41fc41fd41fe41ff4100420142024203420442054206420742084209420a420b420c420d420e420f4210421142124213421442154216421742184219421a421b421c421d421e421f4220422142224223422442254226422742284229422a422b422c422d422e422f4230423142324233423442354236423742384239423a423b423c423d423e423f4240424142424243424442454246424742484249424a424b424c424d424e424f4250425142524253425442554256425742584259425a425b425c425d425e425f4260426142624263426442654266426742684269426a426b426c426d426e426f4270427142724273427442754276427742784279427a427b427c427d427e427f4280428142824283428442854286428742884289428a428b428c428d428e428f4290429142924293429442954296429742984299429a429b429c429d429e429f42a042a142a242a342a442a542a642a742a842a942aa42ab42ac42ad42ae42af42b042b142b242b342b442b542b642b742b842b942ba42bb42bc42bd42be42bf42c042c142c242c342c442c542c642c742c842c942ca42cb42cc42cd42ce42cf42d042d142d242d342d442d542d642d742d842d942da42db42dc42dd42de42df42e042e142e242e342e442e542e642e742e842e942ea42eb42ec42ed42ee42ef42f042f142f242f342f442f542f642f742f842f942fa42fb42fc42fd42fe42ff4200430143024303430443054306430743084309430a430b430c430d430e430f4310431143124313431443154316431743184319431a431b431c431d431e431f4320432143224323432443254326432743284329432a432b432c432d432e432f4330433143324333433443354336433743384339433a433b433c433d433e433f4340434143424343434443454346434743484349434a434b434c434d434e434f4350435143524353435443554356435743584359435a435b435c435d435e435f4360436143624363436443654366436743684369436a436b436c436d436e436f4370437143724373437443754376437743784379437a437b437c437d437e437f4380438143824383438443854386438743884389438a438b438c438d438e438f4390439143924393439443954396439743984399439a439b439c439d439e439f43a043a143a243a343a443a543a643a743a843a943aa43ab43ac43ad43ae43af43b043b143b243b343b443b543b643b743b843b943ba43bb43bc43bd43be43bf43c043c143c243c343c443c543c643c743c843c943ca43cb43cc43cd43ce43cf43d043d143d243d343d443d543d643d743d843d943da43db43dc43dd43de43df43e043e143e243e343e443e543e643e743e843e943ea43eb43ec43ed43ee43ef43f043f143f243f343f443f543f643f743f843f943fa43fb43fc43fd43fe43ff4300440144024403440444054406440744084409440a440b440c440d440e440f4410441144124413441444154416441744184419441a441b441c441d441e441f4420442144224423442444254426442744284429442a442b442c442d442e442f4430443144324433443444354436443744384439443a443b443c443d443e443f4440444144424443444444454446444744484449444a444b444c444d444e444f4450445144524453445444554456445744584459445a445b445c445d445e445f4460446144624463446444654466446744684469446a446b446c446d446e446f4470447144724473447444754476447744784479447a447b447c447d447e447f4480448144824483448444854486448744884489448a448b448c448d448e448f4490449144924493449444954496449744984499449a449b449c449d449e449f44a044a144a244a344a444a544a644a744a844a944aa44ab44ac44ad44ae44af44b044b144b244b344b444b544b644b744b844b944ba44bb44bc44bd44be44bf44c044c144c244c344c444c544c644c744c844c944ca44cb44cc44cd44ce44cf44d044d144d244d344d444d544d644d744d844d944da44db44dc44dd44de44df44e044e144e244e344e444e544e644e744e844e944ea44eb44ec44ed44ee44ef44f044f144f244f344f444f544f644f744f844f944fa44fb44fc44fd44fe44ff4400450145024503450445054506450745084509450a450b450c450d450e450f4510451145124513451445154516451745184519451a451b451c451d451e451f4520452145224523452445254526452745284529452a452b452c452d452e452f4530453145324533453445354536453745384539453a453b453c453d453e453f4540454145424543454445454546454745484549454a454b454c454d454e454f4550455145524553455445554556455745584559455a455b455c455d455e455f4560456145624563456445654566456745684569456a456b456c456d456e456f4570457145724573457445754576457745784579457a457b457c457d457e457f4580458145824583458445854586458745884589458a458b458c458d458e458f4590459145924593459445954596459745984599459a459b459c459d459e459f45a045a145a245a345a445a545a645a745a845a945aa45ab45ac45ad45ae45af45b045b145b245b345b445b545b645b745b845b945ba45bb45bc45bd45be45bf45c045c145c245c345c445c545c645c745c845c945ca45cb45cc45cd45ce45cf45d045d145d245d345d445d545d645d745d845d945da45db45dc45dd45de45df45e045e145e245e345e445e545e645e745e845e945ea45eb45ec45ed45ee45ef45f045f145f245f345f445f545f645f745f845f945fa45fb45fc45fd45fe45ff4500460146024603460446054606460746084609460a460b460c460d460e460f4610461146124613461446154616461746184619461a461b461c461d461e461f4620462146224623462446254626462746284629462a462b462c462d462e462f4630463146324633463446354636463746384639463a463b463c463d463e463f4640464146424643464446454646464746484649464a464b464c464d464e464f4650465146524653465446554656465746584659465a465b465c465d465e465f4660466146624663466446654666466746684669466a466b466c466d466e466f4670467146724673467446754676467746784679467a467b467c467d467e467f4680468146824683468446854686468746884689468a468b468c468d468e468f4690469146924693469446954696469746984699469a469b469c469d469e469f46a046a146a246a346a446a546a646a746a846a946aa46ab46ac46ad46ae46af46b046b146b246b346b446b546b646b746b846b946ba46bb46bc46bd46be46bf46c046c146c246c346c446c546c646c746c846c946ca46cb46cc46cd46ce46cf46d046d146d246d346d446d546d646d746d846d946da46db46dc46dd46de46df46e046e146e246e346e446e546e646e746e846e946ea46eb46ec46ed46ee46ef46f046f146f246f346f446f546f646f746f846f946fa46fb46fc46fd46fe46ff4600470147024703470447054706470747084709470a470b470c470d470e470f4710471147124713471447154716471747184719471a471b471c471d471e471f4720472147224723472447254726472747284729472a472b472c472d472e472f4730473147324733473447354736473747384739473a473b473c473d473e473f4740474147424743474447454746474747484749474a474b474c474d474e474f4750475147524753475447554756475747584759475a475b475c475d475e475f4760476147624763476447654766476747684769476a476b476c476d476e476f4770477147724773477447754776477747784779477a477b477c477d477e477f4780478147824783478447854786478747884789478a478b478c478d478e478f4790479147924793479447954796479747984799479a479b479c479d479e479f47a047a147a247a347a447a547a647a747a847a947aa47ab47ac47ad47ae47af47b047b147b247b347b447b547b647b747b847b947ba47bb47bc47bd47be47bf47c047c147c247c347c447c547c647c747c847c947ca47cb47cc47cd47ce47cf47d047d147d247d347d447d547d647d747d847d947da47db47dc47dd47de47df47e047e147e247e347e447e547e647e747e847e947ea47eb47ec47ed47ee47ef47f047f147f247f347f447f547f647f747f847f947fa47fb47fc47fd47fe47ff4700480148024803480448054806480748084809480a480b480c480d480e480f4810481148124813481448154816481748184819481a481b481c481d481e481f4820482148224823482448254826482748284829482a482b482c482d482e482f4830483148324833483448354836483748384839483a483b483c483d483e483f4840484148424843484448454846484748484849484a484b484c484d484e484f4850485148524853485448554856485748584859485a485b485c485d485e485f4860486148624863486448654866486748684869486a486b486c486d486e486f4870487148724873487448754876487748784879487a487b487c487d487e487f4880488148824883488448854886488748884889488a488b488c488d488e488f4890489148924893489448954896489748984899489a489b489c489d489e489f48a048a148a248a348a448a548a648a748a848a948aa48ab48ac48ad48ae48af48b048b148b248b348b448b548b648b748b848b948ba48bb48bc48bd48be48bf48c048c148c248c348c448c548c648c748c848c948ca48cb48cc48cd48ce48cf48d048d148d248d348d448d548d648d748d848d948da48db48dc48dd48de48df48e048e148e248e348e448e548e648e748e848e948ea48eb48ec48ed48ee48ef48f048f148f248f348f448f548f648f748f848f948fa48fb48fc48fd48fe48ff4800490149024903490449054906490749084909490a490b490c490d490e490f4910491149124913491449154916491749184919491a491b491c491d491e491f4920492149224923492449254926492749284929492a492b492c492d492e492f4930493149324933493449354936493749384939493a493b493c493d493e493f4940494149424943494449454946494749484949494a494b494c494d494e494f4950495149524953495449554956495749584959495a495b495c495d495e495f4960496149624963496449654966496749684969496a496b496c496d496e496f4970497149724973497449754976497749784979497a497b497c497d497e497f4980498149824983498449854986498749884989498a498b498c498d498e498f4990499149924993499449954996499749984999499a499b499c499d499e499f49a049a149a249a349a449a549a649a749a849a949aa49ab49ac49ad49ae49af49b049b149b249b349b449b549b649b749b849b949ba49bb49bc49bd49be49bf49c049c149c249c349c449c549c649c749c849c949ca49cb49cc49cd49ce49cf49d049d149d249d349d449d549d649d749d849d949da49db49dc49dd49de49df49e049e149e249e349e449e549e649e749e849e949ea49eb49ec49ed49ee49ef49f049f149f249f349f449f549f649f749f849f949fa49fb49fc49fd49fe49ff49004a014a024a034a044a054a064a074a084a094a0a4a0b4a0c4a0d4a0e4a0f4a104a114a124a134a144a154a164a174a184a194a1a4a1b4a1c4a1d4a1e4a1f4a204a214a224a234a244a254a264a274a284a294a2a4a2b4a2c4a2d4a2e4a2f4a304a314a324a334a344a354a364a374a384a394a3a4a3b4a3c4a3d4a3e4a3f4a404a414a424a434a444a454a464a474a484a494a4a4a4b4a4c4a4d4a4e4a4f4a504a514a524a534a544a554a564a574a584a594a5a4a5b4a5c4a5d4a5e4a5f4a604a614a624a634a644a654a664a674a684a694a6a4a6b4a6c4a6d4a6e4a6f4a704a714a724a734a744a754a764a774a784a794a7a4a7b4a7c4a7d4a7e4a7f4a804a814a824a834a844a854a864a874a884a894a8a4a8b4a8c4a8d4a8e4a8f4a904a914a924a934a944a954a964a974a984a994a9a4a9b4a9c4a9d4a9e4a9f4aa04aa14aa24aa34aa44aa54aa64aa74aa84aa94aaa4aab4aac4aad4aae4aaf4ab04ab14ab24ab34ab44ab54ab64ab74ab84ab94aba4abb4abc4abd4abe4abf4ac04ac14ac24ac34ac44ac54ac64ac74ac84ac94aca4acb4acc4acd4ace4acf4ad04ad14ad24ad34ad44ad54ad64ad74ad84ad94ada4adb4adc4add4ade4adf4ae04ae14ae24ae34ae44ae54ae64ae74ae84ae94aea4aeb4aec4aed4aee4aef4af04af14af24af34af44af54af64af74af84af94afa4afb4afc4afd4afe4aff4a004b014b024b034b044b054b064b074b084b094b0a4b0b4b0c4b0d4b0e4b0f4b104b114b124b134b144b154b164b174b184b194b1a4b1b4b1c4b1d4b1e4b1f4b204b214b224b234b244b254b264b274b284b294b2a4b2b4b2c4b2d4b2e4b2f4b304b314b324b334b344b354b364b374b384b394b3a4b3b4b3c4b3d4b3e4b3f4b404b414b424b434b444b454b464b474b484b494b4a4b4b4b4c4b4d4b4e4b4f4b504b514b524b534b544b554b564b574b584b594b5a4b5b4b5c4b5d4b5e4b5f4b604b614b624b634b644b654b664b674b684b694b6a4b6b4b6c4b6d4b6e4b6f4b704b714b724b734b744b754b764b774b784b794b7a4b7b4b7c4b7d4b7e4b7f4b804b814b824b834b844b854b864b874b884b894b8a4b8b4b8c4b8d4b8e4b8f4b904b914b924b934b944b954b964b974b984b994b9a4b9b4b9c4b9d4b9e4b9f4ba04ba14ba24ba34ba44ba54ba64ba74ba84ba94baa4bab4bac4bad4bae4baf4bb04bb14bb24bb34bb44bb54bb64bb74bb84bb94bba4bbb4bbc4bbd4bbe4bbf4bc04bc14bc24bc34bc44bc54bc64bc74bc84bc94bca4bcb4bcc4bcd4bce4bcf4bd04bd14bd24bd34bd44bd54bd64bd74bd84bd94bda4bdb4bdc4bdd4bde4bdf4be04be14be24be34be44be54be64be74be84be94bea4beb4bec4bed4bee4bef4bf04bf14bf24bf34bf44bf54bf64bf74bf84bf94bfa4bfb4bfc4bfd4bfe4bff4b004c014c024c034c044c054c064c074c084c094c0a4c0b4c0c4c0d4c0e4c0f4c104c114c124c134c144c154c164c174c184c194c1a4c1b4c1c4c1d4c1e4c1f4c204c214c224c234c244c254c264c274c284c294c2a4c2b4c2c4c2d4c2e4c2f4c304c314c324c334c344c354c364c374c384c394c3a4c3b4c3c4c3d4c3e4c3f4c404c414c424c434c444c454c464c474c484c494c4a4c4b4c4c4c4d4c4e4c4f4c504c514c524c534c544c554c564c574c584c594c5a4c5b4c5c4c5d4c5e4c5f4c604c614c624c634c644c654c664c674c684c694c6a4c6b4c6c4c6d4c6e4c6f4c704c714c724c734c744c754c764c774c784c794c7a4c7b4c7c4c7d4c7e4c7f4c804c814c824c834c844c854c864c874c884c894c8a4c8b4c8c4c8d4c8e4c8f4c904c914c924c934c944c954c964c974c984c994c9a4c9b4c9c4c9d4c9e4c9f4ca04ca14ca24ca34ca44ca54ca64ca74ca84ca94caa4cab4cac4cad4cae4caf4cb04cb14cb24cb34cb44cb54cb64cb74cb84cb94cba4cbb4cbc4cbd4cbe4cbf4cc04cc14cc24cc34cc44cc54cc64cc74cc84cc94cca4ccb4ccc4ccd4cce4ccf4cd04cd14cd24cd34cd44cd54cd64cd74cd84cd94cda4cdb4cdc4cdd4cde4cdf4ce04ce14ce24ce34ce44ce54ce64ce74ce84ce94cea4ceb4cec4ced4cee4cef4cf04cf14cf24cf34cf44cf54cf64cf74cf84cf94cfa4cfb4cfc4cfd4cfe4cff4c004d014d024d034d044d054d064d074d084d094d0a4d0b4d0c4d0d4d0e4d0f4d104d114d124d134d144d154d164d174d184d194d1a4d1b4d1c4d1d4d1e4d1f4d204d214d224d234d244d254d264d274d284d294d2a4d2b4d2c4d2d4d2e4d2f4d304d314d324d334d344d354d364d374d384d394d3a4d3b4d3c4d3d4d3e4d3f4d404d414d424d434d444d454d464d474d484d494d4a4d4b4d4c4d4d4d4e4d4f4d504d514d524d534d544d554d564d574d584d594d5a4d5b4d5c4d5d4d5e4d5f4d604d614d624d634d644d654d664d674d684d694d6a4d6b4d6c4d6d4d6e4d6f4d704d714d724d734d744d754d764d774d784d794d7a4d7b4d7c4d7d4d7e4d7f4d804d814d824d834d844d854d864d874d884d894d8a4d8b4d8c4d8d4d8e4d8f4d904d914d924d934d944d954d964d974d984d994d9a4d9b4d9c4d9d4d9e4d9f4da04da14da24da34da44da54da64da74da84da94daa4dab4dac4dad4dae4daf4db04db14db24db34db44db54db64db74db84db94dba4dbb4dbc4dbd4dbe4dbf4dc04dc14dc24dc34dc44dc54dc64dc74dc84dc94dca4dcb4dcc4dcd4dce4dcf4dd04dd14dd24dd34dd44dd54dd64dd74dd84dd94dda4ddb4ddc4ddd4dde4ddf4de04de14de24de34de44de54de64de74de84de94dea4deb4dec4ded4dee4def4df04df14df24df34df44df54df64df74df84df94dfa4dfb4dfc4dfd4dfe4dff4d004e014e024e034e044e054e064e074e084e094e0a4e0b4e0c4e0d4e0e4e0f4e104e114e124e134e144e154e164e174e184e194e1a4e1b4e1c4e1d4e1e4e1f4e204e214e224e234e244e254e264e274e284e294e2a4e2b4e2c4e2d4e2e4e2f4e304e314e324e334e344e354e364e374e384e394e3a4e3b4e3c4e3d4e3e4e3f4e404e414e424e434e444e454e464e474e484e494e4a4e4b4e4c4e4d4e4e4e4f4e504e514e524e534e544e554e564e574e584e594e5a4e5b4e5c4e5d4e5e4e5f4e604e614e624e634e644e654e664e674e684e694e6a4e6b4e6c4e6d4e6e4e6f4e704e714e724e734e744e754e764e774e784e794e7a4e7b4e7c4e7d4e7e4e7f4e804e814e824e834e844e854e864e874e884e894e8a4e8b4e8c4e8d4e8e4e8f4e904e914e924e934e944e954e964e974e984e994e9a4e9b4e9c4e9d4e9e4e9f4ea04ea14ea24ea34ea44ea54ea64ea74ea84ea94eaa4eab4eac4ead4eae4eaf4eb04eb14eb24eb34eb44eb54eb64eb74eb84eb94eba4ebb4ebc4ebd4ebe4ebf4ec04ec14ec24ec34ec44ec54ec64ec74ec84ec94eca4ecb4ecc4ecd4ece4ecf4ed04ed14ed24ed34ed44ed54ed64ed74ed84ed94eda4edb4edc4edd4ede4edf4ee04ee14ee24ee34ee44ee54ee64ee74ee84ee94eea4eeb4eec4eed4eee4eef4ef04ef14ef24ef34ef44ef54ef64ef74ef84ef94efa4efb4efc4efd4efe4eff4e004f014f024f034f044f054f064f074f084f094f0a4f0b4f0c4f0d4f0e4f0f4f104f114f124f134f144f154f164f174f184f194f1a4f1b4f1c4f1d4f1e4f1f4f204f214f224f234f244f254f264f274f284f294f2a4f2b4f2c4f2d4f2e4f2f4f304f314f324f334f344f354f364f374f384f394f3a4f3b4f3c4f3d4f3e4f3f4f404f414f424f434f444f454f464f474f484f494f4a4f4b4f4c4f4d4f4e4f4f4f504f514f524f534f544f554f564f574f584f594f5a4f5b4f5c4f5d4f5e4f5f4f604f614f624f634f644f654f664f674f684f694f6a4f6b4f6c4f6d4f6e4f6f4f704f714f724f734f744f754f764f774f784f794f7a4f7b4f7c4f7d4f7e4f7f4f804f814f824f834f844f854f864f874f884f894f8a4f8b4f8c4f8d4f8e4f8f4f904f914f924f934f944f954f964f974f984f994f9a4f9b4f9c4f9d4f9e4f9f4fa04fa14fa24fa34fa44fa54fa64fa74fa84fa94faa4fab4fac4fad4fae4faf4fb04fb14fb24fb34fb44fb54fb64fb74fb84fb94fba4fbb4fbc4fbd4fbe4fbf4fc04fc14fc24fc34fc44fc54fc64fc74fc84fc94fca4fcb4fcc4fcd4fce4fcf4fd04fd14fd24fd34fd44fd54fd64fd74fd84fd94fda4fdb4fdc4fdd4fde4fdf4fe04fe14fe24fe34fe44fe54fe64fe74fe84fe94fea4feb4fec4fed4fee4fef4ff04ff14ff24ff34ff44ff54ff64ff74ff84ff94ffa4ffb4ffc4ffd4ffe4fff4f00500150025003500450055006500750085009500a500b500c500d500e500f5010501150125013501450155016501750185019501a501b501c501d501e501f5020502150225023502450255026502750285029502a502b502c502d502e502f5030503150325033503450355036503750385039503a503b503c503d503e503f5040504150425043504450455046504750485049504a504b504c504d504e504f5050505150525053505450555056505750585059505a505b505c505d505e505f5060506150625063506450655066506750685069506a506b506c506d506e506f5070507150725073507450755076507750785079507a507b507c507d507e507f5080508150825083508450855086508750885089508a508b508c508d508e508f5090509150925093509450955096509750985099509a509b509c509d509e509f50a050a150a250a350a450a550a650a750a850a950aa50ab50ac50ad50ae50af50b050b150b250b350b450b550b650b750b850b950ba50bb50bc50bd50be50bf50c050c150c250c350c450c550c650c750c850c950ca50cb50cc50cd50ce50cf50d050d150d250d350d450d550d650d750d850d950da50db50dc50dd50de50df50e050e150e250e350e450e550e650e750e850e950ea50eb50ec50ed50ee50ef50f050f150f250f350f450f550f650f750f850f950fa50fb50fc50fd50fe50ff5000510151025103510451055106510751085109510a510b510c510d510e510f5110511151125113511451155116511751185119511a511b511c511d511e511f5120512151225123512451255126512751285129512a512b512c512d512e512f5130513151325133513451355136513751385139513a513b513c513d513e513f5140514151425143514451455146514751485149514a514b514c514d514e514f5150515151525153515451555156515751585159515a515b515c515d515e515f5160516151625163516451655166516751685169516a516b516c516d516e516f5170517151725173517451755176517751785179517a517b517c517d517e517f5180518151825183518451855186518751885189518a518b518c518d518e518f5190519151925193519451955196519751985199519a519b519c519d519e519f51a051a151a251a351a451a551a651a751a851a951aa51ab51ac51ad51ae51af51b051b151b251b351b451b551b651b751b851b951ba51bb51bc51bd51be51bf51c051c151c251c351c451c551c651c751c851c951ca51cb51cc51cd51ce51cf51d051d151d251d351d451d551d651d751d851d951da51db51dc51dd51de51df51e051e151e251e351e451e551e651e751e851e951ea51eb51ec51ed51ee51ef51f051f151f251f351f451f551f651f751f851f951fa51fb51fc51fd51fe51ff5100520152025203520452055206520752085209520a520b520c520d520e520f5210521152125213521452155216521752185219521a521b521c521d521e521f5220522152225223522452255226522752285229522a522b522c522d522e522f5230523152325233523452355236523752385239523a523b523c523d523e523f5240524152425243524452455246524752485249524a524b524c524d524e524f5250525152525253525452555256525752585259525a525b525c525d525e525f5260526152625263526452655266526752685269526a526b526c526d526e526f5270527152725273527452755276527752785279527a527b527c527d527e527f5280528152825283528452855286528752885289528a528b528c528d528e528f5290529152925293529452955296529752985299529a529b529c529d529e529f52a052a152a252a352a452a552a652a752a852a952aa52ab52ac52ad52ae52af52b052b152b252b352b452b552b652b752b852b952ba52bb52bc52bd52be52bf52c052c152c252c352c452c552c652c752c852c952ca52cb52cc52cd52ce52cf52d052d152d252d352d452d552d652d752d852d952da52db52dc52dd52de52df52e052e152e252e352e452e552e652e752e852e952ea52eb52ec52ed52ee52ef52f052f152f252f352f452f552f652f752f852f952fa52fb52fc52fd52fe52ff5200530153025303530453055306530753085309530a530b530c530d530e530f5310531153125313531453155316531753185319531a531b531c531d531e531f5320532153225323532453255326532753285329532a532b532c532d532e532f5330533153325333533453355336533753385339533a533b533c533d533e533f5340534153425343534453455346534753485349534a534b534c534d534e534f5350535153525353535453555356535753585359535a535b535c535d535e535f5360536153625363536453655366536753685369536a536b536c536d536e536f5370537153725373537453755376537753785379537a537b537c537d537e537f5380538153825383538453855386538753885389538a538b538c538d538e538f5390539153925393539453955396539753985399539a539b539c539d539e539f53a053a153a253a353a453a553a653a753a853a953aa53ab53ac53ad53ae53af53b053b153b253b353b453b553b653b753b853b953ba53bb53bc53bd53be53bf53c053c153c253c353c453c553c653c753c853c953ca53cb53cc53cd53ce53cf53d053d153d253d353d453d553d653d753d853d953da53db53dc53dd53de53df53e053e153e253e353e453e553e653e753e853e953ea53eb53ec53ed53ee53ef53f053f153f253f353f453f553f653f753f853f953fa53fb53fc53fd53fe53ff5300540154025403540454055406540754085409540a540b540c540d540e540f5410541154125413541454155416541754185419541a541b541c541d541e541f5420542154225423542454255426542754285429542a542b542c542d542e542f5430543154325433543454355436543754385439543a543b543c543d543e543f5440544154425443544454455446544754485449544a544b544c544d544e544f5450545154525453545454555456545754585459545a545b545c545d545e545f5460546154625463546454655466546754685469546a546b546c546d546e546f5470547154725473547454755476547754785479547a547b547c547d547e547f5480548154825483548454855486548754885489548a548b548c548d548e548f5490549154925493549454955496549754985499549a549b549c549d549e549f54a054a154a254a354a454a554a654a754a854a954aa54ab54ac54ad54ae54af54b054b154b254b354b454b554b654b754b854b954ba54bb54bc54bd54be54bf54c054c154c254c354c454c554c654c754c854c954ca54cb54cc54cd54ce54cf54d054d154d254d354d454d554d654d754d854d954da54db54dc54dd54de54df54e054e154e254e354e454e554e654e754e854e954ea54eb54ec54ed54ee54ef54f054f154f254f354f454f554f654f754f854f954fa54fb54fc54fd54fe54ff5400550155025503550455055506550755085509550a550b550c550d550e550f5510551155125513551455155516551755185519551a551b551c551d551e551f5520552155225523552455255526552755285529552a552b552c552d552e552f5530553155325533553455355536553755385539553a553b553c553d553e553f5540554155425543554455455546554755485549554a554b554c554d554e554f5550555155525553555455555556555755585559555a555b555c555d555e555f5560556155625563556455655566556755685569556a556b556c556d556e556f5570557155725573557455755576557755785579557a557b557c557d557e557f5580558155825583558455855586558755885589558a558b558c558d558e558f5590559155925593559455955596559755985599559a559b559c559d559e559f55a055a155a255a355a455a555a655a755a855a955aa55ab55ac55ad55ae55af55b055b155b255b355b455b555b655b755b855b955ba55bb55bc55bd55be55bf55c055c155c255c355c455c555c655c755c855c955ca55cb55cc55cd55ce55cf55d055d155d255d355d455d555d655d755d855d955da55db55dc55dd55de55df55e055e155e255e355e455e555e655e755e855e955ea55eb55ec55ed55ee55ef55f055f155f255f355f455f555f655f755f855f955fa55fb55fc55fd55fe55ff5500560156025603560456055606560756085609560a560b560c560d560e560f5610561156125613561456155616561756185619561a561b561c561d561e561f5620562156225623562456255626562756285629562a562b562c562d562e562f5630563156325633563456355636563756385639563a563b563c563d563e563f5640564156425643564456455646564756485649564a564b564c564d564e564f5650565156525653565456555656565756585659565a565b565c565d565e565f5660566156625663566456655666566756685669566a566b566c566d566e566f5670567156725673567456755676567756785679567a567b567c567d567e567f5680568156825683568456855686568756885689568a568b568c568d568e568f5690569156925693569456955696569756985699569a569b569c569d569e569f56a056a156a256a356a456a556a656a756a856a956aa56ab56ac56ad56ae56af56b056b156b256b356b456b556b656b756b856b956ba56bb56bc56bd56be56bf56c056c156c256c356c456c556c656c756c856c956ca56cb56cc56cd56ce56cf56d056d156d256d356d456d556d656d756d856d956da56db56dc56dd56de56df56e056e156e256e356e456e556e656e756e856e956ea56eb56ec56ed56ee56ef56f056f156f256f356f456f556f656f756f856f956fa56fb56fc56fd56fe56ff5600570157025703570457055706570757085709570a570b570c570d570e570f5710571157125713571457155716571757185719571a571b571c571d571e571f5720572157225723572457255726572757285729572a572b572c572d572e572f5730573157325733573457355736573757385739573a573b573c573d573e573f5740574157425743574457455746574757485749574a574b574c574d574e574f5750575157525753575457555756575757585759575a575b575c575d575e575f5760576157625763576457655766576757685769576a576b576c576d576e576f5770577157725773577457755776577757785779577a577b577c577d577e577f5780578157825783578457855786578757885789578a578b578c578d578e578f5790579157925793579457955796579757985799579a579b579c579d579e579f57a057a157a257a357a457a557a657a757a857a957aa57ab57ac57ad57ae57af57b057b157b257b357b457b557b657b757b857b957ba57bb57bc57bd57be57bf57c057c157c257c357c457c557c657c757c857c957ca57cb57cc57cd57ce57cf57d057d157d257d357d457d557d657d757d857d957da57db57dc57dd57de57df57e057e157e257e357e457e557e657e757e857e957ea57eb57ec57ed57ee57ef57f057f157f257f357f457f557f657f757f857f957fa57fb57fc57fd57fe57ff5700580158025803580458055806580758085809580a580b580c580d580e580f5810581158125813581458155816581758185819581a581b581c581d581e581f5820582158225823582458255826582758285829582a582b582c582d582e582f5830583158325833583458355836583758385839583a583b583c583d583e583f5840584158425843584458455846584758485849584a584b584c584d584e584f5850585158525853585458555856585758585859585a585b585c585d585e585f5860586158625863586458655866586758685869586a586b586c586d586e586f5870587158725873587458755876587758785879587a587b587c587d587e587f5880588158825883588458855886588758885889588a588b588c588d588e588f5890589158925893589458955896589758985899589a589b589c589d589e589f58a058a158a258a358a458a558a658a758a858a958aa58ab58ac58ad58ae58af58b058b158b258b358b458b558b658b758b858b958ba58bb58bc58bd58be58bf58c058c158c258c358c458c558c658c758c858c958ca58cb58cc58cd58ce58cf58d058d158d258d358d458d558d658d758d858d958da58db58dc58dd58de58df58e058e158e258e358e458e558e658e758e858e958ea58eb58ec58ed58ee58ef58f058f158f258f358f458f558f658f758f858f958fa58fb58fc58fd58fe58ff5800590159025903590459055906590759085909590a590b590c590d590e590f5910591159125913591459155916591759185919591a591b591c591d591e591f5920592159225923592459255926592759285929592a592b592c592d592e592f5930593159325933593459355936593759385939593a593b593c593d593e593f5940594159425943594459455946594759485949594a594b594c594d594e594f5950595159525953595459555956595759585959595a595b595c595d595e595f5960596159625963596459655966596759685969596a596b596c596d596e596f5970597159725973597459755976597759785979597a597b597c597d597e597f5980598159825983598459855986598759885989598a598b598c598d598e598f5990599159925993599459955996599759985999599a599b599c599d599e599f59a059a159a259a359a459a559a659a759a859a959aa59ab59ac59ad59ae59af59b059b159b259b359b459b559b659b759b859b959ba59bb59bc59bd59be59bf59c059c159c259c359c459c559c659c759c859c959ca59cb59cc59cd59ce59cf59d059d159d259d359d459d559d659d759d859d959da59db59dc59dd59de59df59e059e159e259e359e459e559e659e759e859e959ea59eb59ec59ed59ee59ef59f059f159f259f359f459f559f659f759f859f959fa59fb59fc59fd59fe59ff59005a015a025a035a045a055a065a075a085a095a0a5a0b5a0c5a0d5a0e5a0f5a105a115a125a135a145a155a165a175a185a195a1a5a1b5a1c5a1d5a1e5a1f5a205a215a225a235a245a255a265a275a285a295a2a5a2b5a2c5a2d5a2e5a2f5a305a315a325a335a345a355a365a375a385a395a3a5a3b5a3c5a3d5a3e5a3f5a405a415a425a435a445a455a465a475a485a495a4a5a4b5a4c5a4d5a4e5a4f5a505a515a525a535a545a555a565a575a585a595a5a5a5b5a5c5a5d5a5e5a5f5a605a615a625a635a645a655a665a675a685a695a6a5a6b5a6c5a6d5a6e5a6f5a705a715a725a735a745a755a765a775a785a795a7a5a7b5a7c5a7d5a7e5a7f5a805a815a825a835a845a855a865a875a885a895a8a5a8b5a8c5a8d5a8e5a8f5a905a915a925a935a945a955a965a975a985a995a9a5a9b5a9c5a9d5a9e5a9f5aa05aa15aa25aa35aa45aa55aa65aa75aa85aa95aaa5aab5aac5aad5aae5aaf5ab05ab15ab25ab35ab45ab55ab65ab75ab85ab95aba5abb5abc5abd5abe5abf5ac05ac15ac25ac35ac45ac55ac65ac75ac85ac95aca5acb5acc5acd5ace5acf5ad05ad15ad25ad35ad45ad55ad65ad75ad85ad95ada5adb5adc5add5ade5adf5ae05ae15ae25ae35ae45ae55ae65ae75ae85ae95aea5aeb5aec5aed5aee5aef5af05af15af25af35af45af55af65af75af85af95afa5afb5afc5afd5afe5aff5a005b015b025b035b045b055b065b075b085b095b0a5b0b5b0c5b0d5b0e5b0f5b105b115b125b135b145b155b165b175b185b195b1a5b1b5b1c5b1d5b1e5b1f5b205b215b225b235b245b255b265b275b285b295b2a5b2b5b2c5b2d5b2e5b2f5b305b315b325b335b345b355b365b375b385b395b3a5b3b5b3c5b3d5b3e5b3f5b405b415b425b435b445b455b465b475b485b495b4a5b4b5b4c5b4d5b4e5b4f5b505b515b525b535b545b555b565b575b585b595b5a5b5b5b5c5b5d5b5e5b5f5b605b615b625b635b645b655b665b675b685b695b6a5b6b5b6c5b6d5b6e5b6f5b705b715b725b735b745b755b765b775b785b795b7a5b7b5b7c5b7d5b7e5b7f5b805b815b825b835b845b855b865b875b885b895b8a5b8b5b8c5b8d5b8e5b8f5b905b915b925b935b945b955b965b975b985b995b9a5b9b5b9c5b9d5b9e5b9f5ba05ba15ba25ba35ba45ba55ba65ba75ba85ba95baa5bab5bac5bad5bae5baf5bb05bb15bb25bb35bb45bb55bb65bb75bb85bb95bba5bbb5bbc5bbd5bbe5bbf5bc05bc15bc25bc35bc45bc55bc65bc75bc85bc95bca5bcb5bcc5bcd5bce5bcf5bd05bd15bd25bd35bd45bd55bd65bd75bd85bd95bda5bdb5bdc5bdd5bde5bdf5be05be15be25be35be45be55be65be75be85be95bea5beb5bec5bed5bee5bef5bf05bf15bf25bf35bf45bf55bf65bf75bf85bf95bfa5bfb5bfc5bfd5bfe5bff5b005c015c025c035c045c055c065c075c085c095c0a5c0b5c0c5c0d5c0e5c0f5c105c115c125c135c145c155c165c175c185c195c1a5c1b5c1c5c1d5c1e5c1f5c205c215c225c235c245c255c265c275c285c295c2a5c2b5c2c5c2d5c2e5c2f5c305c315c325c335c345c355c365c375c385c395c3a5c3b5c3c5c3d5c3e5c3f5c405c415c425c435c445c455c465c475c485c495c4a5c4b5c4c5c4d5c4e5c4f5c505c515c525c535c545c555c565c575c585c595c5a5c5b5c5c5c5d5c5e5c5f5c605c615c625c635c645c655c665c675c685c695c6a5c6b5c6c5c6d5c6e5c6f5c705c715c725c735c745c755c765c775c785c795c7a5c7b5c7c5c7d5c7e5c7f5c805c815c825c835c845c855c865c875c885c895c8a5c8b5c8c5c8d5c8e5c8f5c905c915c925c935c945c955c965c975c985c995c9a5c9b5c9c5c9d5c9e5c9f5ca05ca15ca25ca35ca45ca55ca65ca75ca85ca95caa5cab5cac5cad5cae5caf5cb05cb15cb25cb35cb45cb55cb65cb75cb85cb95cba5cbb5cbc5cbd5cbe5cbf5cc05cc15cc25cc35cc45cc55cc65cc75cc85cc95cca5ccb5ccc5ccd5cce5ccf5cd05cd15cd25cd35cd45cd55cd65cd75cd85cd95cda5cdb5cdc5cdd5cde5cdf5ce05ce15ce25ce35ce45ce55ce65ce75ce85ce95cea5ceb5cec5ced5cee5cef5cf05cf15cf25cf35cf45cf55cf65cf75cf85cf95cfa5cfb5cfc5cfd5cfe5cff5c005d015d025d035d045d055d065d075d085d095d0a5d0b5d0c5d0d5d0e5d0f5d105d115d125d135d145d155d165d175d185d195d1a5d1b5d1c5d1d5d1e5d1f5d205d215d225d235d245d255d265d275d285d295d2a5d2b5d2c5d2d5d2e5d2f5d305d315d325d335d345d355d365d375d385d395d3a5d3b5d3c5d3d5d3e5d3f5d405d415d425d435d445d455d465d475d485d495d4a5d4b5d4c5d4d5d4e5d4f5d505d515d525d535d545d555d565d575d585d595d5a5d5b5d5c5d5d5d5e5d5f5d605d615d625d635d645d655d665d675d685d695d6a5d6b5d6c5d6d5d6e5d6f5d705d715d725d735d745d755d765d775d785d795d7a5d7b5d7c5d7d5d7e5d7f5d805d815d825d835d845d855d865d875d885d895d8a5d8b5d8c5d8d5d8e5d8f5d905d915d925d935d945d955d965d975d985d995d9a5d9b5d9c5d9d5d9e5d9f5da05da15da25da35da45da55da65da75da85da95daa5dab5dac5dad5dae5daf5db05db15db25db35db45db55db65db75db85db95dba5dbb5dbc5dbd5dbe5dbf5dc05dc15dc25dc35dc45dc55dc65dc75dc85dc95dca5dcb5dcc5dcd5dce5dcf5dd05dd15dd25dd35dd45dd55dd65dd75dd85dd95dda5ddb5ddc5ddd5dde5ddf5de05de15de25de35de45de55de65de75de85de95dea5deb5dec5ded5dee5def5df05df15df25df35df45df55df65df75df85df95dfa5dfb5dfc5dfd5dfe5dff5d005e015e025e035e045e055e065e075e085e095e0a5e0b5e0c5e0d5e0e5e0f5e105e115e125e135e145e155e165e175e185e195e1a5e1b5e1c5e1d5e1e5e1f5e205e215e225e235e245e255e265e275e285e295e2a5e2b5e2c5e2d5e2e5e2f5e305e315e325e335e345e355e365e375e385e395e3a5e3b5e3c5e3d5e3e5e3f5e405e415e425e435e445e455e465e475e485e495e4a5e4b5e4c5e4d5e4e5e4f5e505e515e525e535e545e555e565e575e585e595e5a5e5b5e5c5e5d5e5e5e5f5e605e615e625e635e645e655e665e675e685e695e6a5e6b5e6c5e6d5e6e5e6f5e705e715e725e735e745e755e765e775e785e795e7a5e7b5e7c5e7d5e7e5e7f5e805e815e825e835e845e855e865e875e885e895e8a5e8b5e8c5e8d5e8e5e8f5e905e915e925e935e945e955e965e975e985e995e9a5e9b5e9c5e9d5e9e5e9f5ea05ea15ea25ea35ea45ea55ea65ea75ea85ea95eaa5eab5eac5ead5eae5eaf5eb05eb15eb25eb35eb45eb55eb65eb75eb85eb95eba5ebb5ebc5ebd5ebe5ebf5ec05ec15ec25ec35ec45ec55ec65ec75ec85ec95eca5ecb5ecc5ecd5ece5ecf5ed05ed15ed25ed35ed45ed55ed65ed75ed85ed95eda5edb5edc5edd5ede5edf5ee05ee15ee25ee35ee45ee55ee65ee75ee85ee95eea5eeb5eec5eed5eee5eef5ef05ef15ef25ef35ef45ef55ef65ef75ef85ef95efa5efb5efc5efd5efe5eff5e005f015f025f035f045f055f065f075f085f095f0a5f0b5f0c5f0d5f0e5f0f5f105f115f125f135f145f155f165f175f185f195f1a5f1b5f1c5f1d5f1e5f1f5f205f215f225f235f245f255f265f275f285f295f2a5f2b5f2c5f2d5f2e5f2f5f305f315f325f335f345f355f365f375f385f395f3a5f3b5f3c5f3d5f3e5f3f5f405f415f425f435f445f455f465f475f485f495f4a5f4b5f4c5f4d5f4e5f4f5f505f515f525f535f545f555f565f575f585f595f5a5f5b5f5c5f5d5f5e5f5f5f605f615f625f635f645f655f665f675f685f695f6a5f6b5f6c5f6d5f6e5f6f5f705f715f725f735f745f755f765f775f785f795f7a5f7b5f7c5f7d5f7e5f7f5f805f815f825f835f845f855f865f875f885f895f8a5f8b5f8c5f8d5f8e5f8f5f905f915f925f935f945f955f965f975f985f995f9a5f9b5f9c5f9d5f9e5f9f5fa05fa15fa25fa35fa45fa55fa65fa75fa85fa95faa5fab5fac5fad5fae5faf5fb05fb15fb25fb35fb45fb55fb65fb75fb85fb95fba5fbb5fbc5fbd5fbe5fbf5fc05fc15fc25fc35fc45fc55fc65fc75fc85fc95fca5fcb5fcc5fcd5fce5fcf5fd05fd15fd25fd35fd45fd55fd65fd75fd85fd95fda5fdb5fdc5fdd5fde5fdf5fe05fe15fe25fe35fe45fe55fe65fe75fe85fe95fea5feb5fec5fed5fee5fef5ff05ff15ff25ff35ff45ff55ff65ff75ff85ff95ffa5ffb5ffc5ffd5ffe5fff5f00600160026003600460056006600760086009600a600b600c600d600e600f6010601160126013601460156016601760186019601a601b601c601d601e601f6020602160226023602460256026602760286029602a602b602c602d602e602f6030603160326033603460356036603760386039603a603b603c603d603e603f6040604160426043604460456046604760486049604a604b604c604d604e604f6050605160526053605460556056605760586059605a605b605c605d605e605f6060606160626063606460656066606760686069606a606b606c606d606e606f6070607160726073607460756076607760786079607a607b607c607d607e607f6080608160826083608460856086608760886089608a608b608c608d608e608f6090609160926093609460956096609760986099609a609b609c609d609e609f60a060a160a260a360a460a560a660a760a860a960aa60ab60ac60ad60ae60af60b060b160b260b360b460b560b660b760b860b960ba60bb60bc60bd60be60bf60c060c160c260c360c460c560c660c760c860c960ca60cb60cc60cd60ce60cf60d060d160d260d360d460d560d660d760d860d960da60db60dc60dd60de60df60e060e160e260e360e460e560e660e760e860e960ea60eb60ec60ed60ee60ef60f060f160f260f360f460f560f660f760f860f960fa60fb60fc60fd60fe60ff6000610161026103610461056106610761086109610a610b610c610d610e610f6110611161126113611461156116611761186119611a611b611c611d611e611f6120612161226123612461256126612761286129612a612b612c612d612e612f6130613161326133613461356136613761386139613a613b613c613d613e613f6140614161426143614461456146614761486149614a614b614c614d614e614f6150615161526153615461556156615761586159615a615b615c615d615e615f6160616161626163616461656166616761686169616a616b616c616d616e616f6170617161726173617461756176617761786179617a617b617c617d617e617f6180618161826183618461856186618761886189618a618b618c618d618e618f6190619161926193619461956196619761986199619a619b619c619d619e619f61a061a161a261a361a461a561a661a761a861a961aa61ab61ac61ad61ae61af61b061b161b261b361b461b561b661b761b861b961ba61bb61bc61bd61be61bf61c061c161c261c361c461c561c661c761c861c961ca61cb61cc61cd61ce61cf61d061d161d261d361d461d561d661d761d861d961da61db61dc61dd61de61df61e061e161e261e361e461e561e661e761e861e961ea61eb61ec61ed61ee61ef61f061f161f261f361f461f561f661f761f861f961fa61fb61fc61fd61fe61ff6100620162026203620462056206620762086209620a620b620c620d620e620f6210621162126213621462156216621762186219621a621b621c621d621e621f6220622162226223622462256226622762286229622a622b622c622d622e622f6230623162326233623462356236623762386239623a623b623c623d623e623f6240624162426243624462456246624762486249624a624b624c624d624e624f6250625162526253625462556256625762586259625a625b625c625d625e625f6260626162626263626462656266626762686269626a626b626c626d626e626f6270627162726273627462756276627762786279627a627b627c627d627e627f6280628162826283628462856286628762886289628a628b628c628d628e628f6290629162926293629462956296629762986299629a629b629c629d629e629f62a062a162a262a362a462a562a662a762a862a962aa62ab62ac62ad62ae62af62b062b162b262b362b462b562b662b762b862b962ba62bb62bc62bd62be62bf62c062c162c262c362c462c562c662c762c862c962ca62cb62cc62cd62ce62cf62d062d162d262d362d462d562d662d762d862d962da62db62dc62dd62de62df62e062e162e262e362e462e562e662e762e862e962ea62eb62ec62ed62ee62ef62f062f162f262f362f462f562f662f762f862f962fa62fb62fc62fd62fe62ff6200630163026303630463056306630763086309630a630b630c630d630e630f6310631163126313631463156316631763186319631a631b631c631d631e631f6320632163226323632463256326632763286329632a632b632c632d632e632f6330633163326333633463356336633763386339633a633b633c633d633e633f6340634163426343634463456346634763486349634a634b634c634d634e634f6350635163526353635463556356635763586359635a635b635c635d635e635f6360636163626363636463656366636763686369636a636b636c636d636e636f6370637163726373637463756376637763786379637a637b637c637d637e637f6380638163826383638463856386638763886389638a638b638c638d638e638f6390639163926393639463956396639763986399639a639b639c639d639e639f63a063a163a263a363a463a563a663a763a863a963aa63ab63ac63ad63ae63af63b063b163b263b363b463b563b663b763b863b963ba63bb63bc63bd63be63bf63c063c163c263c363c463c563c663c763c863c963ca63cb63cc63cd63ce63cf63d063d163d263d363d463d563d663d763d863d963da63db63dc63dd63de63df63e063e163e263e363e463e563e663e763e863e963ea63eb63ec63ed63ee63ef63f063f163f263f363f463f563f663f763f863f963fa63fb63fc63fd63fe63ff6300640164026403640464056406640764086409640a640b640c640d640e640f6410641164126413641464156416641764186419641a641b641c641d641e641f6420642164226423642464256426642764286429642a642b642c642d642e642f6430643164326433643464356436643764386439643a643b643c643d643e643f6440644164426443644464456446644764486449644a644b644c644d644e644f6450645164526453645464556456645764586459645a645b645c645d645e645f6460646164626463646464656466646764686469646a646b646c646d646e646f6470647164726473647464756476647764786479647a647b647c647d647e647f6480648164826483648464856486648764886489648a648b648c648d648e648f6490649164926493649464956496649764986499649a649b649c649d649e649f64a064a164a264a364a464a564a664a764a864a964aa64ab64ac64ad64ae64af64b064b164b264b364b464b564b664b764b864b964ba64bb64bc64bd64be64bf64c064c164c264c364c464c564c664c764c864c964ca64cb64cc64cd64ce64cf64d064d164d264d364d464d564d664d764d864d964da64db64dc64dd64de64df64e064e164e264e364e464e564e664e764e864e964ea64eb64ec64ed64ee64ef64f064f164f264f364f464f564f664f764f864f964fa64fb64fc64fd64fe64ff6400650165026503650465056506650765086509650a650b650c650d650e650f6510651165126513651465156516651765186519651a651b651c651d651e651f6520652165226523652465256526652765286529652a652b652c652d652e652f6530653165326533653465356536653765386539653a653b653c653d653e653f6540654165426543654465456546654765486549654a654b654c654d654e654f6550655165526553655465556556655765586559655a655b655c655d655e655f6560656165626563656465656566656765686569656a656b656c656d656e656f6570657165726573657465756576657765786579657a657b657c657d657e657f6580658165826583658465856586658765886589658a658b658c658d658e658f6590659165926593659465956596659765986599659a659b659c659d659e659f65a065a165a265a365a465a565a665a765a865a965aa65ab65ac65ad65ae65af65b065b165b265b365b465b565b665b765b865b965ba65bb65bc65bd65be65bf65c065c165c265c365c465c565c665c765c865c965ca65cb65cc65cd65ce65cf65d065d165d265d365d465d565d665d765d865d965da65db65dc65dd65de65df65e065e165e265e365e465e565e665e765e865e965ea65eb65ec65ed65ee65ef65f065f165f265f365f465f565f665f765f865f965fa65fb65fc65fd65fe65ff6500660166026603660466056606660766086609660a660b660c660d660e660f6610661166126613661466156616661766186619661a661b661c661d661e661f6620662166226623662466256626662766286629662a662b662c662d662e662f6630663166326633663466356636663766386639663a663b663c663d663e663f6640664166426643664466456646664766486649664a664b664c664d664e664f6650665166526653665466556656665766586659665a665b665c665d665e665f6660666166626663666466656666666766686669666a666b666c666d666e666f6670667166726673667466756676667766786679667a667b667c667d667e667f6680668166826683668466856686668766886689668a668b668c668d668e668f6690669166926693669466956696669766986699669a669b669c669d669e669f66a066a166a266a366a466a566a666a766a866a966aa66ab66ac66ad66ae66af66b066b166b266b366b466b566b666b766b866b966ba66bb66bc66bd66be66bf66c066c166c266c366c466c566c666c766c866c966ca66cb66cc66cd66ce66cf66d066d166d266d366d466d566d666d766d866d966da66db66dc66dd66de66df66e066e166e266e366e466e566e666e766e866e966ea66eb66ec66ed66ee66ef66f066f166f266f366f466f566f666f766f866f966fa66fb66fc66fd66fe66ff6600670167026703670467056706670767086709670a670b670c670d670e670f6710671167126713671467156716671767186719671a671b671c671d671e671f6720672167226723672467256726672767286729672a672b672c672d672e672f6730673167326733673467356736673767386739673a673b673c673d673e673f6740674167426743674467456746674767486749674a674b674c674d674e674f6750675167526753675467556756675767586759675a675b675c675d675e675f6760676167626763676467656766676767686769676a676b676c676d676e676f6770677167726773677467756776677767786779677a677b677c677d677e677f6780678167826783678467856786678767886789678a678b678c678d678e678f6790679167926793679467956796679767986799679a679b679c679d679e679f67a067a167a267a367a467a567a667a767a867a967aa67ab67ac67ad67ae67af67b067b167b267b367b467b567b667b767b867b967ba67bb67bc67bd67be67bf67c067c167c267c367c467c567c667c767c867c967ca67cb67cc67cd67ce67cf67d067d167d267d367d467d567d667d767d867d967da67db67dc67dd67de67df67e067e167e267e367e467e567e667e767e867e967ea67eb67ec67ed67ee67ef67f067f167f267f367f467f567f667f767f867f967fa67fb67fc67fd67fe67ff6700680168026803680468056806680768086809680a680b680c680d680e680f6810681168126813681468156816681768186819681a681b681c681d681e681f6820682168226823682468256826682768286829682a682b682c682d682e682f6830683168326833683468356836683768386839683a683b683c683d683e683f6840684168426843684468456846684768486849684a684b684c684d684e684f6850685168526853685468556856685768586859685a685b685c685d685e685f6860686168626863686468656866686768686869686a686b686c686d686e686f6870687168726873687468756876687768786879687a687b687c687d687e687f6880688168826883688468856886688768886889688a688b688c688d688e688f6890689168926893689468956896689768986899689a689b689c689d689e689f68a068a168a268a368a468a568a668a768a868a968aa68ab68ac68ad68ae68af68b068b168b268b368b468b568b668b768b868b968ba68bb68bc68bd68be68bf68c068c168c268c368c468c568c668c768c868c968ca68cb68cc68cd68ce68cf68d068d168d268d368d468d568d668d768d868d968da68db68dc68dd68de68df68e068e168e268e368e468e568e668e768e868e968ea68eb68ec68ed68ee68ef68f068f168f268f368f468f568f668f768f868f968fa68fb68fc68fd68fe68ff6800690169026903690469056906690769086909690a690b690c690d690e690f6910691169126913691469156916691769186919691a691b691c691d691e691f6920692169226923692469256926692769286929692a692b692c692d692e692f6930693169326933693469356936693769386939693a693b693c693d693e693f6940694169426943694469456946694769486949694a694b694c694d694e694f6950695169526953695469556956695769586959695a695b695c695d695e695f6960696169626963696469656966696769686969696a696b696c696d696e696f6970697169726973697469756976697769786979697a697b697c697d697e697f6980698169826983698469856986698769886989698a698b698c698d698e698f6990699169926993699469956996699769986999699a699b699c699d699e699f69a069a169a269a369a469a569a669a769a869a969aa69ab69ac69ad69ae69af69b069b169b269b369b469b569b669b769b869b969ba69bb69bc69bd69be69bf69c069c169c269c369c469c569c669c769c869c969ca69cb69cc69cd69ce69cf69d069d169d269d369d469d569d669d769d869d969da69db69dc69dd69de69df69e069e169e269e369e469e569e669e769e869e969ea69eb69ec69ed69ee69ef69f069f169f269f369f469f569f669f769f869f969fa69fb69fc69fd69fe69ff69006a016a026a036a046a056a066a076a086a096a0a6a0b6a0c6a0d6a0e6a0f6a106a116a126a136a146a156a166a176a186a196a1a6a1b6a1c6a1d6a1e6a1f6a206a216a226a236a246a256a266a276a286a296a2a6a2b6a2c6a2d6a2e6a2f6a306a316a326a336a346a356a366a376a386a396a3a6a3b6a3c6a3d6a3e6a3f6a406a416a426a436a446a456a466a476a486a496a4a6a4b6a4c6a4d6a4e6a4f6a506a516a526a536a546a556a566a576a586a596a5a6a5b6a5c6a5d6a5e6a5f6a606a616a626a636a646a656a666a676a686a696a6a6a6b6a6c6a6d6a6e6a6f6a706a716a726a736a746a756a766a776a786a796a7a6a7b6a7c6a7d6a7e6a7f6a806a816a826a836a846a856a866a876a886a896a8a6a8b6a8c6a8d6a8e6a8f6a906a916a926a936a946a956a966a976a986a996a9a6a9b6a9c6a9d6a9e6a9f6aa06aa16aa26aa36aa46aa56aa66aa76aa86aa96aaa6aab6aac6aad6aae6aaf6ab06ab16ab26ab36ab46ab56ab66ab76ab86ab96aba6abb6abc6abd6abe6abf6ac06ac16ac26ac36ac46ac56ac66ac76ac86ac96aca6acb6acc6acd6ace6acf6ad06ad16ad26ad36ad46ad56ad66ad76ad86ad96ada6adb6adc6add6ade6adf6ae06ae16ae26ae36ae46ae56ae66ae76ae86ae96aea6aeb6aec6aed6aee6aef6af06af16af26af36af46af56af66af76af86af96afa6afb6afc6afd6afe6aff6a006b016b026b036b046b056b066b076b086b096b0a6b0b6b0c6b0d6b0e6b0f6b106b116b126b136b146b156b166b176b186b196b1a6b1b6b1c6b1d6b1e6b1f6b206b216b226b236b246b256b266b276b286b296b2a6b2b6b2c6b2d6b2e6b2f6b306b316b326b336b346b356b366b376b386b396b3a6b3b6b3c6b3d6b3e6b3f6b406b416b426b436b446b456b466b476b486b496b4a6b4b6b4c6b4d6b4e6b4f6b506b516b526b536b546b556b566b576b586b596b5a6b5b6b5c6b5d6b5e6b5f6b606b616b626b636b646b656b666b676b686b696b6a6b6b6b6c6b6d6b6e6b6f6b706b716b726b736b746b756b766b776b786b796b7a6b7b6b7c6b7d6b7e6b7f6b806b816b826b836b846b856b866b876b886b896b8a6b8b6b8c6b8d6b8e6b8f6b906b916b926b936b946b956b966b976b986b996b9a6b9b6b9c6b9d6b9e6b9f6ba06ba16ba26ba36ba46ba56ba66ba76ba86ba96baa6bab6bac6bad6bae6baf6bb06bb16bb26bb36bb46bb56bb66bb76bb86bb96bba6bbb6bbc6bbd6bbe6bbf6bc06bc16bc26bc36bc46bc56bc66bc76bc86bc96bca6bcb6bcc6bcd6bce6bcf6bd06bd16bd26bd36bd46bd56bd66bd76bd86bd96bda6bdb6bdc6bdd6bde6bdf6be06be16be26be36be46be56be66be76be86be96bea6beb6bec6bed6bee6bef6bf06bf16bf26bf36bf46bf56bf66bf76bf86bf96bfa6bfb6bfc6bfd6bfe6bff6b006c016c026c036c046c056c066c076c086c096c0a6c0b6c0c6c0d6c0e6c0f6c106c116c126c136c146c156c166c176c186c196c1a6c1b6c1c6c1d6c1e6c1f6c206c216c226c236c246c256c266c276c286c296c2a6c2b6c2c6c2d6c2e6c2f6c306c316c326c336c346c356c366c376c386c396c3a6c3b6c3c6c3d6c3e6c3f6c406c416c426c436c446c456c466c476c486c496c4a6c4b6c4c6c4d6c4e6c4f6c506c516c526c536c546c556c566c576c586c596c5a6c5b6c5c6c5d6c5e6c5f6c606c616c626c636c646c656c666c676c686c696c6a6c6b6c6c6c6d6c6e6c6f6c706c716c726c736c746c756c766c776c786c796c7a6c7b6c7c6c7d6c7e6c7f6c806c816c826c836c846c856c866c876c886c896c8a6c8b6c8c6c8d6c8e6c8f6c906c916c926c936c946c956c966c976c986c996c9a6c9b6c9c6c9d6c9e6c9f6ca06ca16ca26ca36ca46ca56ca66ca76ca86ca96caa6cab6cac6cad6cae6caf6cb06cb16cb26cb36cb46cb56cb66cb76cb86cb96cba6cbb6cbc6cbd6cbe6cbf6cc06cc16cc26cc36cc46cc56cc66cc76cc86cc96cca6ccb6ccc6ccd6cce6ccf6cd06cd16cd26cd36cd46cd56cd66cd76cd86cd96cda6cdb6cdc6cdd6cde6cdf6ce06ce16ce26ce36ce46ce56ce66ce76ce86ce96cea6ceb6cec6ced6cee6cef6cf06cf16cf26cf36cf46cf56cf66cf76cf86cf96cfa6cfb6cfc6cfd6cfe6cff6c006d016d026d036d046d056d066d076d086d096d0a6d0b6d0c6d0d6d0e6d0f6d106d116d126d136d146d156d166d176d186d196d1a6d1b6d1c6d1d6d1e6d1f6d206d216d226d236d246d256d266d276d286d296d2a6d2b6d2c6d2d6d2e6d2f6d306d316d326d336d346d356d366d376d386d396d3a6d3b6d3c6d3d6d3e6d3f6d406d416d426d436d446d456d466d476d486d496d4a6d4b6d4c6d4d6d4e6d4f6d506d516d526d536d546d556d566d576d586d596d5a6d5b6d5c6d5d6d5e6d5f6d606d616d626d636d646d656d666d676d686d696d6a6d6b6d6c6d6d6d6e6d6f6d706d716d726d736d746d756d766d776d786d796d7a6d7b6d7c6d7d6d7e6d7f6d806d816d826d836d846d856d866d876d886d896d8a6d8b6d8c6d8d6d8e6d8f6d906d916d926d936d946d956d966d976d986d996d9a6d9b6d9c6d9d6d9e6d9f6da06da16da26da36da46da56da66da76da86da96daa6dab6dac6dad6dae6daf6db06db16db26db36db46db56db66db76db86db96dba6dbb6dbc6dbd6dbe6dbf6dc06dc16dc26dc36dc46dc56dc66dc76dc86dc96dca6dcb6dcc6dcd6dce6dcf6dd06dd16dd26dd36dd46dd56dd66dd76dd86dd96dda6ddb6ddc6ddd6dde6ddf6de06de16de26de36de46de56de66de76de86de96dea6deb6dec6ded6dee6def6df06df16df26df36df46df56df66df76df86df96dfa6dfb6dfc6dfd6dfe6dff6d006e016e026e036e046e056e066e076e086e096e0a6e0b6e0c6e0d6e0e6e0f6e106e116e126e136e146e156e166e176e186e196e1a6e1b6e1c6e1d6e1e6e1f6e206e216e226e236e246e256e266e276e286e296e2a6e2b6e2c6e2d6e2e6e2f6e306e316e326e336e346e356e366e376e386e396e3a6e3b6e3c6e3d6e3e6e3f6e406e416e426e436e446e456e466e476e486e496e4a6e4b6e4c6e4d6e4e6e4f6e506e516e526e536e546e556e566e576e586e596e5a6e5b6e5c6e5d6e5e6e5f6e606e616e626e636e646e656e666e676e686e696e6a6e6b6e6c6e6d6e6e6e6f6e706e716e726e736e746e756e766e776e786e796e7a6e7b6e7c6e7d6e7e6e7f6e806e816e826e836e846e856e866e876e886e896e8a6e8b6e8c6e8d6e8e6e8f6e906e916e926e936e946e956e966e976e986e996e9a6e9b6e9c6e9d6e9e6e9f6ea06ea16ea26ea36ea46ea56ea66ea76ea86ea96eaa6eab6eac6ead6eae6eaf6eb06eb16eb26eb36eb46eb56eb66eb76eb86eb96eba6ebb6ebc6ebd6ebe6ebf6ec06ec16ec26ec36ec46ec56ec66ec76ec86ec96eca6ecb6ecc6ecd6ece6ecf6ed06ed16ed26ed36ed46ed56ed66ed76ed86ed96eda6edb6edc6edd6ede6edf6ee06ee16ee26ee36ee46ee56ee66ee76ee86ee96eea6eeb6eec6eed6eee6eef6ef06ef16ef26ef36ef46ef56ef66ef76ef86ef96efa6efb6efc6efd6efe6eff6e006f016f026f036f046f056f066f076f086f096f0a6f0b6f0c6f0d6f0e6f0f6f106f116f126f136f146f156f166f176f186f196f1a6f1b6f1c6f1d6f1e6f1f6f206f216f226f236f246f256f266f276f286f296f2a6f2b6f2c6f2d6f2e6f2f6f306f316f326f336f346f356f366f376f386f396f3a6f3b6f3c6f3d6f3e6f3f6f406f416f426f436f446f456f466f476f486f496f4a6f4b6f4c6f4d6f4e6f4f6f506f516f526f536f546f556f566f576f586f596f5a6f5b6f5c6f5d6f5e6f5f6f606f616f626f636f646f656f666f676f686f696f6a6f6b6f6c6f6d6f6e6f6f6f706f716f726f736f746f756f766f776f786f796f7a6f7b6f7c6f7d6f7e6f7f6f806f816f826f836f846f856f866f876f886f896f8a6f8b6f8c6f8d6f8e6f8f6f906f916f926f936f946f956f966f976f986f996f9a6f9b6f9c6f9d6f9e6f9f6fa06fa16fa26fa36fa46fa56fa66fa76fa86fa96faa6fab6fac6fad6fae6faf6fb06fb16fb26fb36fb46fb56fb66fb76fb86fb96fba6fbb6fbc6fbd6fbe6fbf6fc06fc16fc26fc36fc46fc56fc66fc76fc86fc96fca6fcb6fcc6fcd6fce6fcf6fd06fd16fd26fd36fd46fd56fd66fd76fd86fd96fda6fdb6fdc6fdd6fde6fdf6fe06fe16fe26fe36fe46fe56fe66fe76fe86fe96fea6feb6fec6fed6fee6fef6ff06ff16ff26ff36ff46ff56ff66ff76ff86ff96ffa6ffb6ffc6ffd6ffe6fff6f00700170027003700470057006700770087009700a700b700c700d700e700f7010701170127013701470157016701770187019701a701b701c701d701e701f7020702170227023702470257026702770287029702a702b702c702d702e702f7030703170327033703470357036703770387039703a703b703c703d703e703f7040704170427043704470457046704770487049704a704b704c704d704e704f7050705170527053705470557056705770587059705a705b705c705d705e705f7060706170627063706470657066706770687069706a706b706c706d706e706f7070707170727073707470757076707770787079707a707b707c707d707e707f7080708170827083708470857086708770887089708a708b708c708d708e708f7090709170927093709470957096709770987099709a709b709c709d709e709f70a070a170a270a370a470a570a670a770a870a970aa70ab70ac70ad70ae70af70b070b170b270b370b470b570b670b770b870b970ba70bb70bc70bd70be70bf70c070c170c270c370c470c570c670c770c870c970ca70cb70cc70cd70ce70cf70d070d170d270d370d470d570d670d770d870d970da70db70dc70dd70de70df70e070e170e270e370e470e570e670e770e870e970ea70eb70ec70ed70ee70ef70f070f170f270f370f470f570f670f770f870f970fa70fb70fc70fd70fe70ff7000710171027103710471057106710771087109710a710b710c710d710e710f7110711171127113711471157116711771187119711a711b711c711d711e711f7120712171227123712471257126712771287129712a712b712c712d712e712f7130713171327133713471357136713771387139713a713b713c713d713e713f7140714171427143714471457146714771487149714a714b714c714d714e714f7150715171527153715471557156715771587159715a715b715c715d715e715f7160716171627163716471657166716771687169716a716b716c716d716e716f7170717171727173717471757176717771787179717a717b717c717d717e717f7180718171827183718471857186718771887189718a718b718c718d718e718f7190719171927193719471957196719771987199719a719b719c719d719e719f71a071a171a271a371a471a571a671a771a871a971aa71ab71ac71ad71ae71af71b071b171b271b371b471b571b671b771b871b971ba71bb71bc71bd71be71bf71c071c171c271c371c471c571c671c771c871c971ca71cb71cc71cd71ce71cf71d071d171d271d371d471d571d671d771d871d971da71db71dc71dd71de71df71e071e171e271e371e471e571e671e771e871e971ea71eb71ec71ed71ee71ef71f071f171f271f371f471f571f671f771f871f971fa71fb71fc71fd71fe71ff7100720172027203720472057206720772087209720a720b720c720d720e720f7210721172127213721472157216721772187219721a721b721c721d721e721f7220722172227223722472257226722772287229722a722b722c722d722e722f7230723172327233723472357236723772387239723a723b723c723d723e723f7240724172427243724472457246724772487249724a724b724c724d724e724f7250725172527253725472557256725772587259725a725b725c725d725e725f7260726172627263726472657266726772687269726a726b726c726d726e726f7270727172727273727472757276727772787279727a727b727c727d727e727f7280728172827283728472857286728772887289728a728b728c728d728e728f7290729172927293729472957296729772987299729a729b729c729d729e729f72a072a172a272a372a472a572a672a772a872a972aa72ab72ac72ad72ae72af72b072b172b272b372b472b572b672b772b872b972ba72bb72bc72bd72be72bf72c072c172c272c372c472c572c672c772c872c972ca72cb72cc72cd72ce72cf72d072d172d272d372d472d572d672d772d872d972da72db72dc72dd72de72df72e072e172e272e372e472e572e672e772e872e972ea72eb72ec72ed72ee72ef72f072f172f272f372f472f572f672f772f872f972fa72fb72fc72fd72fe72ff7200730173027303730473057306730773087309730a730b730c730d730e730f7310731173127313731473157316731773187319731a731b731c731d731e731f7320732173227323732473257326732773287329732a732b732c732d732e732f7330733173327333733473357336733773387339733a733b733c733d733e733f7340734173427343734473457346734773487349734a734b734c734d734e734f7350735173527353735473557356735773587359735a735b735c735d735e735f7360736173627363736473657366736773687369736a736b736c736d736e736f7370737173727373737473757376737773787379737a737b737c737d737e737f7380738173827383738473857386738773887389738a738b738c738d738e738f7390739173927393739473957396739773987399739a739b739c739d739e739f73a073a173a273a373a473a573a673a773a873a973aa73ab73ac73ad73ae73af73b073b173b273b373b473b573b673b773b873b973ba73bb73bc73bd73be73bf73c073c173c273c373c473c573c673c773c873c973ca73cb73cc73cd73ce73cf73d073d173d273d373d473d573d673d773d873d973da73db73dc73dd73de73df73e073e173e273e373e473e573e673e773e873e973ea73eb73ec73ed73ee73ef73f073f173f273f373f473f573f673f773f873f973fa73fb73fc73fd73fe73ff7300740174027403740474057406740774087409740a740b740c740d740e740f7410741174127413741474157416741774187419741a741b741c741d741e741f7420742174227423742474257426742774287429742a742b742c742d742e742f7430743174327433743474357436743774387439743a743b743c743d743e743f7440744174427443744474457446744774487449744a744b744c744d744e744f7450745174527453745474557456745774587459745a745b745c745d745e745f7460746174627463746474657466746774687469746a746b746c746d746e746f7470747174727473747474757476747774787479747a747b747c747d747e747f7480748174827483748474857486748774887489748a748b748c748d748e748f7490749174927493749474957496749774987499749a749b749c749d749e749f74a074a174a274a374a474a574a674a774a874a974aa74ab74ac74ad74ae74af74b074b174b274b374b474b574b674b774b874b974ba74bb74bc74bd74be74bf74c074c174c274c374c474c574c674c774c874c974ca74cb74cc74cd74ce74cf74d074d174d274d374d474d574d674d774d874d974da74db74dc74dd74de74df74e074e174e274e374e474e574e674e774e874e974ea74eb74ec74ed74ee74ef74f074f174f274f374f474f574f674f774f874f974fa74fb74fc74fd74fe74ff7400750175027503750475057506750775087509750a750b750c750d750e750f7510751175127513751475157516751775187519751a751b751c751d751e751f7520752175227523752475257526752775287529752a752b752c752d752e752f7530753175327533753475357536753775387539753a753b753c753d753e753f7540754175427543754475457546754775487549754a754b754c754d754e754f7550755175527553755475557556755775587559755a755b755c755d755e755f7560756175627563756475657566756775687569756a756b756c756d756e756f7570757175727573757475757576757775787579757a757b757c757d757e757f7580758175827583758475857586758775887589758a758b758c758d758e758f7590759175927593759475957596759775987599759a759b759c759d759e759f75a075a175a275a375a475a575a675a775a875a975aa75ab75ac75ad75ae75af75b075b175b275b375b475b575b675b775b875b975ba75bb75bc75bd75be75bf75c075c175c275c375c475c575c675c775c875c975ca75cb75cc75cd75ce75cf75d075d175d275d375d475d575d675d775d875d975da75db75dc75dd75de75df75e075e175e275e375e475e575e675e775e875e975ea75eb75ec75ed75ee75ef75f075f175f275f375f475f575f675f775f875f975fa75fb75fc75fd75fe75ff7500760176027603760476057606760776087609760a760b760c760d760e760f7610761176127613761476157616761776187619761a761b761c761d761e761f7620762176227623762476257626762776287629762a762b762c762d762e762f7630763176327633763476357636763776387639763a763b763c763d763e763f7640764176427643764476457646764776487649764a764b764c764d764e764f7650765176527653765476557656765776587659765a765b765c765d765e765f7660766176627663766476657666766776687669766a766b766c766d766e766f7670767176727673767476757676767776787679767a767b767c767d767e767f7680768176827683768476857686768776887689768a768b768c768d768e768f7690769176927693769476957696769776987699769a769b769c769d769e769f76a076a176a276a376a476a576a676a776a876a976aa76ab76ac76ad76ae76af76b076b176b276b376b476b576b676b776b876b976ba76bb76bc76bd76be76bf76c076c176c276c376c476c576c676c776c876c976ca76cb76cc76cd76ce76cf76d076d176d276d376d476d576d676d776d876d976da76db76dc76dd76de76df76e076e176e276e376e476e576e676e776e876e976ea76eb76ec76ed76ee76ef76f076f176f276f376f476f576f676f776f876f976fa76fb76fc76fd76fe76ff7600770177027703770477057706770777087709770a770b770c770d770e770f7710771177127713771477157716771777187719771a771b771c771d771e771f7720772177227723772477257726772777287729772a772b772c772d772e772f7730773177327733773477357736773777387739773a773b773c773d773e773f7740774177427743774477457746774777487749774a774b774c774d774e774f7750775177527753775477557756775777587759775a775b775c775d775e775f7760776177627763776477657766776777687769776a776b776c776d776e776f7770777177727773777477757776777777787779777a777b777c777d777e777f7780778177827783778477857786778777887789778a778b778c778d778e778f7790779177927793779477957796779777987799779a779b779c779d779e779f77a077a177a277a377a477a577a677a777a877a977aa77ab77ac77ad77ae77af77b077b177b277b377b477b577b677b777b877b977ba77bb77bc77bd77be77bf77c077c177c277c377c477c577c677c777c877c977ca77cb77cc77cd77ce77cf77d077d177d277d377d477d577d677d777d877d977da77db77dc77dd77de77df77e077e177e277e377e477e577e677e777e877e977ea77eb77ec77ed77ee77ef77f077f177f277f377f477f577f677f777f877f977fa77fb77fc77fd77fe77ff7700780178027803780478057806780778087809780a780b780c780d780e780f7810781178127813781478157816781778187819781a781b781c781d781e781f7820782178227823782478257826782778287829782a782b782c782d782e782f7830783178327833783478357836783778387839783a783b783c783d783e783f7840784178427843784478457846784778487849784a784b784c784d784e784f7850785178527853785478557856785778587859785a785b785c785d785e785f7860786178627863786478657866786778687869786a786b786c786d786e786f7870787178727873787478757876787778787879787a787b787c787d787e787f7880788178827883788478857886788778887889788a788b788c788d788e788f7890789178927893789478957896789778987899789a789b789c789d789e789f78a078a178a278a378a478a578a678a778a878a978aa78ab78ac78ad78ae78af78b078b178b278b378b478b578b678b778b878b978ba78bb78bc78bd78be78bf78c078c178c278c378c478c578c678c778c878c978ca78cb78cc78cd78ce78cf78d078d178d278d378d478d578d678d778d878d978da78db78dc78dd78de78df78e078e178e278e378e478e578e678e778e878e978ea78eb78ec78ed78ee78ef78f078f178f278f378f478f578f678f778f878f978fa78fb78fc78fd78fe78ff7800790179027903790479057906790779087909790a790b790c790d790e790f7910791179127913791479157916791779187919791a791b791c791d791e791f7920792179227923792479257926792779287929792a792b792c792d792e792f7930793179327933793479357936793779387939793a793b793c793d793e793f7940794179427943794479457946794779487949794a794b794c794d794e794f7950795179527953795479557956795779587959795a795b795c795d795e795f7960796179627963796479657966796779687969796a796b796c796d796e796f7970797179727973797479757976797779787979797a797b797c797d797e797f7980798179827983798479857986798779887989798a798b798c798d798e798f7990799179927993799479957996799779987999799a799b799c799d799e799f79a079a179a279a379a479a579a679a779a879a979aa79ab79ac79ad79ae79af79b079b179b279b379b479b579b679b779b879b979ba79bb79bc79bd79be79bf79c079c179c279c379c479c579c679c779c879c979ca79cb79cc79cd79ce79cf79d079d179d279d379d479d579d679d779d879d979da79db79dc79dd79de79df79e079e179e279e379e479e579e679e779e879e979ea79eb79ec79ed79ee79ef79f079f179f279f379f479f579f679f779f879f979fa79fb79fc79fd79fe79ff79007a017a027a037a047a057a067a077a087a097a0a7a0b7a0c7a0d7a0e7a0f7a107a117a127a137a147a157a167a177a187a197a1a7a1b7a1c7a1d7a1e7a1f7a207a217a227a237a247a257a267a277a287a297a2a7a2b7a2c7a2d7a2e7a2f7a307a317a327a337a347a357a367a377a387a397a3a7a3b7a3c7a3d7a3e7a3f7a407a417a427a437a447a457a467a477a487a497a4a7a4b7a4c7a4d7a4e7a4f7a507a517a527a537a547a557a567a577a587a597a5a7a5b7a5c7a5d7a5e7a5f7a607a617a627a637a647a657a667a677a687a697a6a7a6b7a6c7a6d7a6e7a6f7a707a717a727a737a747a757a767a777a787a797a7a7a7b7a7c7a7d7a7e7a7f7a807a817a827a837a847a857a867a877a887a897a8a7a8b7a8c7a8d7a8e7a8f7a907a917a927a937a947a957a967a977a987a997a9a7a9b7a9c7a9d7a9e7a9f7aa07aa17aa27aa37aa47aa57aa67aa77aa87aa97aaa7aab7aac7aad7aae7aaf7ab07ab17ab27ab37ab47ab57ab67ab77ab87ab97aba7abb7abc7abd7abe7abf7ac07ac17ac27ac37ac47ac57ac67ac77ac87ac97aca7acb7acc7acd7ace7acf7ad07ad17ad27ad37ad47ad57ad67ad77ad87ad97ada7adb7adc7add7ade7adf7ae07ae17ae27ae37ae47ae57ae67ae77ae87ae97aea7aeb7aec7aed7aee7aef7af07af17af27af37af47af57af67af77af87af97afa7afb7afc7afd7afe7aff7a007b017b027b037b047b057b067b077b087b097b0a7b0b7b0c7b0d7b0e7b0f7b107b117b127b137b147b157b167b177b187b197b1a7b1b7b1c7b1d7b1e7b1f7b207b217b227b237b247b257b267b277b287b297b2a7b2b7b2c7b2d7b2e7b2f7b307b317b327b337b347b357b367b377b387b397b3a7b3b7b3c7b3d7b3e7b3f7b407b417b427b437b447b457b467b477b487b497b4a7b4b7b4c7b4d7b4e7b4f7b507b517b527b537b547b557b567b577b587b597b5a7b5b7b5c7b5d7b5e7b5f7b607b617b627b637b647b657b667b677b687b697b6a7b6b7b6c7b6d7b6e7b6f7b707b717b727b737b747b757b767b777b787b797b7a7b7b7b7c7b7d7b7e7b7f7b807b817b827b837b847b857b867b877b887b897b8a7b8b7b8c7b8d7b8e7b8f7b907b917b927b937b947b957b967b977b987b997b9a7b9b7b9c7b9d7b9e7b9f7ba07ba17ba27ba37ba47ba57ba67ba77ba87ba97baa7bab7bac7bad7bae7baf7bb07bb17bb27bb37bb47bb57bb67bb77bb87bb97bba7bbb7bbc7bbd7bbe7bbf7bc07bc17bc27bc37bc47bc57bc67bc77bc87bc97bca7bcb7bcc7bcd7bce7bcf7bd07bd17bd27bd37bd47bd57bd67bd77bd87bd97bda7bdb7bdc7bdd7bde7bdf7be07be17be27be37be47be57be67be77be87be97bea7beb7bec7bed7bee7bef7bf07bf17bf27bf37bf47bf57bf67bf77bf87bf97bfa7bfb7bfc7bfd7bfe7bff7b007c017c027c037c047c057c067c077c087c097c0a7c0b7c0c7c0d7c0e7c0f7c107c117c127c137c147c157c167c177c187c197c1a7c1b7c1c7c1d7c1e7c1f7c207c217c227c237c247c257c267c277c287c297c2a7c2b7c2c7c2d7c2e7c2f7c307c317c327c337c347c357c367c377c387c397c3a7c3b7c3c7c3d7c3e7c3f7c407c417c427c437c447c457c467c477c487c497c4a7c4b7c4c7c4d7c4e7c4f7c507c517c527c537c547c557c567c577c587c597c5a7c5b7c5c7c5d7c5e7c5f7c607c617c627c637c647c657c667c677c687c697c6a7c6b7c6c7c6d7c6e7c6f7c707c717c727c737c747c757c767c777c787c797c7a7c7b7c7c7c7d7c7e7c7f7c807c817c827c837c847c857c867c877c887c897c8a7c8b7c8c7c8d7c8e7c8f7c907c917c927c937c947c957c967c977c987c997c9a7c9b7c9c7c9d7c9e7c9f7ca07ca17ca27ca37ca47ca57ca67ca77ca87ca97caa7cab7cac7cad7cae7caf7cb07cb17cb27cb37cb47cb57cb67cb77cb87cb97cba7cbb7cbc7cbd7cbe7cbf7cc07cc17cc27cc37cc47cc57cc67cc77cc87cc97cca7ccb7ccc7ccd7cce7ccf7cd07cd17cd27cd37cd47cd57cd67cd77cd87cd97cda7cdb7cdc7cdd7cde7cdf7ce07ce17ce27ce37ce47ce57ce67ce77ce87ce97cea7ceb7cec7ced7cee7cef7cf07cf17cf27cf37cf47cf57cf67cf77cf87cf97cfa7cfb7cfc7cfd7cfe7cff7c007d017d027d037d047d057d067d077d087d097d0a7d0b7d0c7d0d7d0e7d0f7d107d117d127d137d147d157d167d177d187d197d1a7d1b7d1c7d1d7d1e7d1f7d207d217d227d237d247d257d267d277d287d297d2a7d2b7d2c7d2d7d2e7d2f7d307d317d327d337d347d357d367d377d387d397d3a7d3b7d3c7d3d7d3e7d3f7d407d417d427d437d447d457d467d477d487d497d4a7d4b7d4c7d4d7d4e7d4f7d507d517d527d537d547d557d567d577d587d597d5a7d5b7d5c7d5d7d5e7d5f7d607d617d627d637d647d657d667d677d687d697d6a7d6b7d6c7d6d7d6e7d6f7d707d717d727d737d747d757d767d777d787d797d7a7d7b7d7c7d7d7d7e7d7f7d807d817d827d837d847d857d867d877d887d897d8a7d8b7d8c7d8d7d8e7d8f7d907d917d927d937d947d957d967d977d987d997d9a7d9b7d9c7d9d7d9e7d9f7da07da17da27da37da47da57da67da77da87da97daa7dab7dac7dad7dae7daf7db07db17db27db37db47db57db67db77db87db97dba7dbb7dbc7dbd7dbe7dbf7dc07dc17dc27dc37dc47dc57dc67dc77dc87dc97dca7dcb7dcc7dcd7dce7dcf7dd07dd17dd27dd37dd47dd57dd67dd77dd87dd97dda7ddb7ddc7ddd7dde7ddf7de07de17de27de37de47de57de67de77de87de97dea7deb7dec7ded7dee7def7df07df17df27df37df47df57df67df77df87df97dfa7dfb7dfc7dfd7dfe7dff7d007e017e027e037e047e057e067e077e087e097e0a7e0b7e0c7e0d7e0e7e0f7e107e117e127e137e147e157e167e177e187e197e1a7e1b7e1c7e1d7e1e7e1f7e207e217e227e237e247e257e267e277e287e297e2a7e2b7e2c7e2d7e2e7e2f7e307e317e327e337e347e357e367e377e387e397e3a7e3b7e3c7e3d7e3e7e3f7e407e417e427e437e447e457e467e477e487e497e4a7e4b7e4c7e4d7e4e7e4f7e507e517e527e537e547e557e567e577e587e597e5a7e5b7e5c7e5d7e5e7e5f7e607e617e627e637e647e657e667e677e687e697e6a7e6b7e6c7e6d7e6e7e6f7e707e717e727e737e747e757e767e777e787e797e7a7e7b7e7c7e7d7e7e7e7f7e807e817e827e837e847e857e867e877e887e897e8a7e8b7e8c7e8d7e8e7e8f7e907e917e927e937e947e957e967e977e987e997e9a7e9b7e9c7e9d7e9e7e9f7ea07ea17ea27ea37ea47ea57ea67ea77ea87ea97eaa7eab7eac7ead7eae7eaf7eb07eb17eb27eb37eb47eb57eb67eb77eb87eb97eba7ebb7ebc7ebd7ebe7ebf7ec07ec17ec27ec37ec47ec57ec67ec77ec87ec97eca7ecb7ecc7ecd7ece7ecf7ed07ed17ed27ed37ed47ed57ed67ed77ed87ed97eda7edb7edc7edd7ede7edf7ee07ee17ee27ee37ee47ee57ee67ee77ee87ee97eea7eeb7eec7eed7eee7eef7ef07ef17ef27ef37ef47ef57ef67ef77ef87ef97efa7efb7efc7efd7efe7eff7e007f017f027f037f047f057f067f077f087f097f0a7f0b7f0c7f0d7f0e7f0f7f107f117f127f137f147f157f167f177f187f197f1a7f1b7f1c7f1d7f1e7f1f7f207f217f227f237f247f257f267f277f287f297f2a7f2b7f2c7f2d7f2e7f2f7f307f317f327f337f347f357f367f377f387f397f3a7f3b7f3c7f3d7f3e7f3f7f407f417f427f437f447f457f467f477f487f497f4a7f4b7f4c7f4d7f4e7f4f7f507f517f527f537f547f557f567f577f587f597f5a7f5b7f5c7f5d7f5e7f5f7f607f617f627f637f647f657f667f677f687f697f6a7f6b7f6c7f6d7f6e7f6f7f707f717f727f737f747f757f767f777f787f797f7a7f7b7f7c7f7d7f7e7f7f7f807f817f827f837f847f857f867f877f887f897f8a7f8b7f8c7f8d7f8e7f8f7f907f917f927f937f947f957f967f977f987f997f9a7f9b7f9c7f9d7f9e7f9f7fa07fa17fa27fa37fa47fa57fa67fa77fa87fa97faa7fab7fac7fad7fae7faf7fb07fb17fb27fb37fb47fb57fb67fb77fb87fb97fba7fbb7fbc7fbd7fbe7fbf7fc07fc17fc27fc37fc47fc57fc67fc77fc87fc97fca7fcb7fcc7fcd7fce7fcf7fd07fd17fd27fd37fd47fd57fd67fd77fd87fd97fda7fdb7fdc7fdd7fde7fdf7fe07fe17fe27fe37fe47fe57fe67fe77fe87fe97fea7feb7fec7fed7fee7fef7ff07ff17ff27ff37ff47ff57ff67ff77ff87ff97ffa7ffb7ffc7ffd7ffe7fff7f00800180028003800480058006800780088009800a800b800c800d800e800f8010801180128013801480158016801780188019801a801b801c801d801e801f8020802180228023802480258026802780288029802a802b802c802d802e802f8030803180328033803480358036803780388039803a803b803c803d803e803f8040804180428043804480458046804780488049804a804b804c804d804e804f8050805180528053805480558056805780588059805a805b805c805d805e805f8060806180628063806480658066806780688069806a806b806c806d806e806f8070807180728073807480758076807780788079807a807b807c807d807e807f8080808180828083808480858086808780888089808a808b808c808d808e808f8090809180928093809480958096809780988099809a809b809c809d809e809f80a080a180a280a380a480a580a680a780a880a980aa80ab80ac80ad80ae80af80b080b180b280b380b480b580b680b780b880b980ba80bb80bc80bd80be80bf80c080c180c280c380c480c580c680c780c880c980ca80cb80cc80cd80ce80cf80d080d180d280d380d480d580d680d780d880d980da80db80dc80dd80de80df80e080e180e280e380e480e580e680e780e880e980ea80eb80ec80ed80ee80ef80f080f180f280f380f480f580f680f780f880f980fa80fb80fc80fd80fe80ff8000810181028103810481058106810781088109810a810b810c810d810e810f8110811181128113811481158116811781188119811a811b811c811d811e811f8120812181228123812481258126812781288129812a812b812c812d812e812f8130813181328133813481358136813781388139813a813b813c813d813e813f8140814181428143814481458146814781488149814a814b814c814d814e814f8150815181528153815481558156815781588159815a815b815c815d815e815f8160816181628163816481658166816781688169816a816b816c816d816e816f8170817181728173817481758176817781788179817a817b817c817d817e817f8180818181828183818481858186818781888189818a818b818c818d818e818f8190819181928193819481958196819781988199819a819b819c819d819e819f81a081a181a281a381a481a581a681a781a881a981aa81ab81ac81ad81ae81af81b081b181b281b381b481b581b681b781b881b981ba81bb81bc81bd81be81bf81c081c181c281c381c481c581c681c781c881c981ca81cb81cc81cd81ce81cf81d081d181d281d381d481d581d681d781d881d981da81db81dc81dd81de81df81e081e181e281e381e481e581e681e781e881e981ea81eb81ec81ed81ee81ef81f081f181f281f381f481f581f681f781f881f981fa81fb81fc81fd81fe81ff8100820182028203820482058206820782088209820a820b820c820d820e820f8210821182128213821482158216821782188219821a821b821c821d821e821f8220822182228223822482258226822782288229822a822b822c822d822e822f8230823182328233823482358236823782388239823a823b823c823d823e823f8240824182428243824482458246824782488249824a824b824c824d824e824f8250825182528253825482558256825782588259825a825b825c825d825e825f8260826182628263826482658266826782688269826a826b826c826d826e826f8270827182728273827482758276827782788279827a827b827c827d827e827f8280828182828283828482858286828782888289828a828b828c828d828e828f8290829182928293829482958296829782988299829a829b829c829d829e829f82a082a182a282a382a482a582a682a782a882a982aa82ab82ac82ad82ae82af82b082b182b282b382b482b582b682b782b882b982ba82bb82bc82bd82be82bf82c082c182c282c382c482c582c682c782c882c982ca82cb82cc82cd82ce82cf82d082d182d282d382d482d582d682d782d882d982da82db82dc82dd82de82df82e082e182e282e382e482e582e682e782e882e982ea82eb82ec82ed82ee82ef82f082f182f282f382f482f582f682f782f882f982fa82fb82fc82fd82fe82ff8200830183028303830483058306830783088309830a830b830c830d830e830f8310831183128313831483158316831783188319831a831b831c831d831e831f8320832183228323832483258326832783288329832a832b832c832d832e832f8330833183328333833483358336833783388339833a833b833c833d833e833f8340834183428343834483458346834783488349834a834b834c834d834e834f8350835183528353835483558356835783588359835a835b835c835d835e835f8360836183628363836483658366836783688369836a836b836c836d836e836f8370837183728373837483758376837783788379837a837b837c837d837e837f8380838183828383838483858386838783888389838a838b838c838d838e838f8390839183928393839483958396839783988399839a839b839c839d839e839f83a083a183a283a383a483a583a683a783a883a983aa83ab83ac83ad83ae83af83b083b183b283b383b483b583b683b783b883b983ba83bb83bc83bd83be83bf83c083c183c283c383c483c583c683c783c883c983ca83cb83cc83cd83ce83cf83d083d183d283d383d483d583d683d783d883d983da83db83dc83dd83de83df83e083e183e283e383e483e583e683e783e883e983ea83eb83ec83ed83ee83ef83f083f183f283f383f483f583f683f783f883f983fa83fb83fc83fd83fe83ff8300840184028403840484058406840784088409840a840b840c840d840e840f8410841184128413841484158416841784188419841a841b841c841d841e841f8420842184228423842484258426842784288429842a842b842c842d842e842f8430843184328433843484358436843784388439843a843b843c843d843e843f8440844184428443844484458446844784488449844a844b844c844d844e844f8450845184528453845484558456845784588459845a845b845c845d845e845f8460846184628463846484658466846784688469846a846b846c846d846e846f8470847184728473847484758476847784788479847a847b847c847d847e847f8480848184828483848484858486848784888489848a848b848c848d848e848f8490849184928493849484958496849784988499849a849b849c849d849e849f84a084a184a284a384a484a584a684a784a884a984aa84ab84ac84ad84ae84af84b084b184b284b384b484b584b684b784b884b984ba84bb84bc84bd84be84bf84c084c184c284c384c484c584c684c784c884c984ca84cb84cc84cd84ce84cf84d084d184d284d384d484d584d684d784d884d984da84db84dc84dd84de84df84e084e184e284e384e484e584e684e784e884e984ea84eb84ec84ed84ee84ef84f084f184f284f384f484f584f684f784f884f984fa84fb84fc84fd84fe84ff8400850185028503850485058506850785088509850a850b850c850d850e850f8510851185128513851485158516851785188519851a851b851c851d851e851f8520852185228523852485258526852785288529852a852b852c852d852e852f8530853185328533853485358536853785388539853a853b853c853d853e853f8540854185428543854485458546854785488549854a854b854c854d854e854f8550855185528553855485558556855785588559855a855b855c855d855e855f8560856185628563856485658566856785688569856a856b856c856d856e856f8570857185728573857485758576857785788579857a857b857c857d857e857f8580858185828583858485858586858785888589858a858b858c858d858e858f8590859185928593859485958596859785988599859a859b859c859d859e859f85a085a185a285a385a485a585a685a785a885a985aa85ab85ac85ad85ae85af85b085b185b285b385b485b585b685b785b885b985ba85bb85bc85bd85be85bf85c085c185c285c385c485c585c685c785c885c985ca85cb85cc85cd85ce85cf85d085d185d285d385d485d585d685d785d885d985da85db85dc85dd85de85df85e085e185e285e385e485e585e685e785e885e985ea85eb85ec85ed85ee85ef85f085f185f285f385f485f585f685f785f885f985fa85fb85fc85fd85fe85ff8500860186028603860486058606860786088609860a860b860c860d860e860f8610861186128613861486158616861786188619861a861b861c861d861e861f8620862186228623862486258626862786288629862a862b862c862d862e862f8630863186328633863486358636863786388639863a863b863c863d863e863f8640864186428643864486458646864786488649864a864b864c864d864e864f8650865186528653865486558656865786588659865a865b865c865d865e865f8660866186628663866486658666866786688669866a866b866c866d866e866f8670867186728673867486758676867786788679867a867b867c867d867e867f8680868186828683868486858686868786888689868a868b868c868d868e868f8690869186928693869486958696869786988699869a869b869c869d869e869f86a086a186a286a386a486a586a686a786a886a986aa86ab86ac86ad86ae86af86b086b186b286b386b486b586b686b786b886b986ba86bb86bc86bd86be86bf86c086c186c286c386c486c586c686c786c886c986ca86cb86cc86cd86ce86cf86d086d186d286d386d486d586d686d786d886d986da86db86dc86dd86de86df86e086e186e286e386e486e586e686e786e886e986ea86eb86ec86ed86ee86ef86f086f186f286f386f486f586f686f786f886f986fa86fb86fc86fd86fe86ff8600870187028703870487058706870787088709870a870b870c870d870e870f8710871187128713871487158716871787188719871a871b871c871d871e871f8720872187228723872487258726872787288729872a872b872c872d872e872f8730873187328733873487358736873787388739873a873b873c873d873e873f8740874187428743874487458746874787488749874a874b874c874d874e874f8750875187528753875487558756875787588759875a875b875c875d875e875f8760876187628763876487658766876787688769876a876b876c876d876e876f8770877187728773877487758776877787788779877a877b877c877d877e877f8780878187828783878487858786878787888789878a878b878c878d878e878f8790879187928793879487958796879787988799879a879b879c879d879e879f87a087a187a287a387a487a587a687a787a887a987aa87ab87ac87ad87ae87af87b087b187b287b387b487b587b687b787b887b987ba87bb87bc87bd87be87bf87c087c187c287c387c487c587c687c787c887c987ca87cb87cc87cd87ce87cf87d087d187d287d387d487d587d687d787d887d987da87db87dc87dd87de87df87e087e187e287e387e487e587e687e787e887e987ea87eb87ec87ed87ee87ef87f087f187f287f387f487f587f687f787f887f987fa87fb87fc87fd87fe87ff8700880188028803880488058806880788088809880a880b880c880d880e880f8810881188128813881488158816881788188819881a881b881c881d881e881f8820882188228823882488258826882788288829882a882b882c882d882e882f8830883188328833883488358836883788388839883a883b883c883d883e883f8840884188428843884488458846884788488849884a884b884c884d884e884f8850885188528853885488558856885788588859885a885b885c885d885e885f8860886188628863886488658866886788688869886a886b886c886d886e886f8870887188728873887488758876887788788879887a887b887c887d887e887f8880888188828883888488858886888788888889888a888b888c888d888e888f8890889188928893889488958896889788988899889a889b889c889d889e889f88a088a188a288a388a488a588a688a788a888a988aa88ab88ac88ad88ae88af88b088b188b288b388b488b588b688b788b888b988ba88bb88bc88bd88be88bf88c088c188c288c388c488c588c688c788c888c988ca88cb88cc88cd88ce88cf88d088d188d288d388d488d588d688d788d888d988da88db88dc88dd88de88df88e088e188e288e388e488e588e688e788e888e988ea88eb88ec88ed88ee88ef88f088f188f288f388f488f588f688f788f888f988fa88fb88fc88fd88fe88ff8800890189028903890489058906890789088909890a890b890c890d890e890f8910891189128913891489158916891789188919891a891b891c891d891e891f8920892189228923892489258926892789288929892a892b892c892d892e892f8930893189328933893489358936893789388939893a893b893c893d893e893f8940894189428943894489458946894789488949894a894b894c894d894e894f8950895189528953895489558956895789588959895a895b895c895d895e895f8960896189628963896489658966896789688969896a896b896c896d896e896f8970897189728973897489758976897789788979897a897b897c897d897e897f8980898189828983898489858986898789888989898a898b898c898d898e898f8990899189928993899489958996899789988999899a899b899c899d899e899f89a089a189a289a389a489a589a689a789a889a989aa89ab89ac89ad89ae89af89b089b189b289b389b489b589b689b789b889b989ba89bb89bc89bd89be89bf89c089c189c289c389c489c589c689c789c889c989ca89cb89cc89cd89ce89cf89d089d189d289d389d489d589d689d789d889d989da89db89dc89dd89de89df89e089e189e289e389e489e589e689e789e889e989ea89eb89ec89ed89ee89ef89f089f189f289f389f489f589f689f789f889f989fa89fb89fc89fd89fe89ff89008a018a028a038a048a058a068a078a088a098a0a8a0b8a0c8a0d8a0e8a0f8a108a118a128a138a148a158a168a178a188a198a1a8a1b8a1c8a1d8a1e8a1f8a208a218a228a238a248a258a268a278a288a298a2a8a2b8a2c8a2d8a2e8a2f8a308a318a328a338a348a358a368a378a388a398a3a8a3b8a3c8a3d8a3e8a3f8a408a418a428a438a448a458a468a478a488a498a4a8a4b8a4c8a4d8a4e8a4f8a508a518a528a538a548a558a568a578a588a598a5a8a5b8a5c8a5d8a5e8a5f8a608a618a628a638a648a658a668a678a688a698a6a8a6b8a6c8a6d8a6e8a6f8a708a718a728a738a748a758a768a778a788a798a7a8a7b8a7c8a7d8a7e8a7f8a808a818a828a838a848a858a868a878a888a898a8a8a8b8a8c8a8d8a8e8a8f8a908a918a928a938a948a958a968a978a988a998a9a8a9b8a9c8a9d8a9e8a9f8aa08aa18aa28aa38aa48aa58aa68aa78aa88aa98aaa8aab8aac8aad8aae8aaf8ab08ab18ab28ab38ab48ab58ab68ab78ab88ab98aba8abb8abc8abd8abe8abf8ac08ac18ac28ac38ac48ac58ac68ac78ac88ac98aca8acb8acc8acd8ace8acf8ad08ad18ad28ad38ad48ad58ad68ad78ad88ad98ada8adb8adc8add8ade8adf8ae08ae18ae28ae38ae48ae58ae68ae78ae88ae98aea8aeb8aec8aed8aee8aef8af08af18af28af38af48af58af68af78af88af98afa8afb8afc8afd8afe8aff8a008b018b028b038b048b058b068b078b088b098b0a8b0b8b0c8b0d8b0e8b0f8b108b118b128b138b148b158b168b178b188b198b1a8b1b8b1c8b1d8b1e8b1f8b208b218b228b238b248b258b268b278b288b298b2a8b2b8b2c8b2d8b2e8b2f8b308b318b328b338b348b358b368b378b388b398b3a8b3b8b3c8b3d8b3e8b3f8b408b418b428b438b448b458b468b478b488b498b4a8b4b8b4c8b4d8b4e8b4f8b508b518b528b538b548b558b568b578b588b598b5a8b5b8b5c8b5d8b5e8b5f8b608b618b628b638b648b658b668b678b688b698b6a8b6b8b6c8b6d8b6e8b6f8b708b718b728b738b748b758b768b778b788b798b7a8b7b8b7c8b7d8b7e8b7f8b808b818b828b838b848b858b868b878b888b898b8a8b8b8b8c8b8d8b8e8b8f8b908b918b928b938b948b958b968b978b988b998b9a8b9b8b9c8b9d8b9e8b9f8ba08ba18ba28ba38ba48ba58ba68ba78ba88ba98baa8bab8bac8bad8bae8baf8bb08bb18bb28bb38bb48bb58bb68bb78bb88bb98bba8bbb8bbc8bbd8bbe8bbf8bc08bc18bc28bc38bc48bc58bc68bc78bc88bc98bca8bcb8bcc8bcd8bce8bcf8bd08bd18bd28bd38bd48bd58bd68bd78bd88bd98bda8bdb8bdc8bdd8bde8bdf8be08be18be28be38be48be58be68be78be88be98bea8beb8bec8bed8bee8bef8bf08bf18bf28bf38bf48bf58bf68bf78bf88bf98bfa8bfb8bfc8bfd8bfe8bff8b008c018c028c038c048c058c068c078c088c098c0a8c0b8c0c8c0d8c0e8c0f8c108c118c128c138c148c158c168c178c188c198c1a8c1b8c1c8c1d8c1e8c1f8c208c218c228c238c248c258c268c278c288c298c2a8c2b8c2c8c2d8c2e8c2f8c308c318c328c338c348c358c368c378c388c398c3a8c3b8c3c8c3d8c3e8c3f8c408c418c428c438c448c458c468c478c488c498c4a8c4b8c4c8c4d8c4e8c4f8c508c518c528c538c548c558c568c578c588c598c5a8c5b8c5c8c5d8c5e8c5f8c608c618c628c638c648c658c668c678c688c698c6a8c6b8c6c8c6d8c6e8c6f8c708c718c728c738c748c758c768c778c788c798c7a8c7b8c7c8c7d8c7e8c7f8c808c818c828c838c848c858c868c878c888c898c8a8c8b8c8c8c8d8c8e8c8f8c908c918c928c938c948c958c968c978c988c998c9a8c9b8c9c8c9d8c9e8c9f8ca08ca18ca28ca38ca48ca58ca68ca78ca88ca98caa8cab8cac8cad8cae8caf8cb08cb18cb28cb38cb48cb58cb68cb78cb88cb98cba8cbb8cbc8cbd8cbe8cbf8cc08cc18cc28cc38cc48cc58cc68cc78cc88cc98cca8ccb8ccc8ccd8cce8ccf8cd08cd18cd28cd38cd48cd58cd68cd78cd88cd98cda8cdb8cdc8cdd8cde8cdf8ce08ce18ce28ce38ce48ce58ce68ce78ce88ce98cea8ceb8cec8ced8cee8cef8cf08cf18cf28cf38cf48cf58cf68cf78cf88cf98cfa8cfb8cfc8cfd8cfe8cff8c008d018d028d038d048d058d068d078d088d098d0a8d0b8d0c8d0d8d0e8d0f8d108d118d128d138d148d158d168d178d188d198d1a8d1b8d1c8d1d8d1e8d1f8d208d218d228d238d248d258d268d278d288d298d2a8d2b8d2c8d2d8d2e8d2f8d308d318d328d338d348d358d368d378d388d398d3a8d3b8d3c8d3d8d3e8d3f8d408d418d428d438d448d458d468d478d488d498d4a8d4b8d4c8d4d8d4e8d4f8d508d518d528d538d548d558d568d578d588d598d5a8d5b8d5c8d5d8d5e8d5f8d608d618d628d638d648d658d668d678d688d698d6a8d6b8d6c8d6d8d6e8d6f8d708d718d728d738d748d758d768d778d788d798d7a8d7b8d7c8d7d8d7e8d7f8d808d818d828d838d848d858d868d878d888d898d8a8d8b8d8c8d8d8d8e8d8f8d908d918d928d938d948d958d968d978d988d998d9a8d9b8d9c8d9d8d9e8d9f8da08da18da28da38da48da58da68da78da88da98daa8dab8dac8dad8dae8daf8db08db18db28db38db48db58db68db78db88db98dba8dbb8dbc8dbd8dbe8dbf8dc08dc18dc28dc38dc48dc58dc68dc78dc88dc98dca8dcb8dcc8dcd8dce8dcf8dd08dd18dd28dd38dd48dd58dd68dd78dd88dd98dda8ddb8ddc8ddd8dde8ddf8de08de18de28de38de48de58de68de78de88de98dea8deb8dec8ded8dee8def8df08df18df28df38df48df58df68df78df88df98dfa8dfb8dfc8dfd8dfe8dff8d008e018e028e038e048e058e068e078e088e098e0a8e0b8e0c8e0d8e0e8e0f8e108e118e128e138e148e158e168e178e188e198e1a8e1b8e1c8e1d8e1e8e1f8e208e218e228e238e248e258e268e278e288e298e2a8e2b8e2c8e2d8e2e8e2f8e308e318e328e338e348e358e368e378e388e398e3a8e3b8e3c8e3d8e3e8e3f8e408e418e428e438e448e458e468e478e488e498e4a8e4b8e4c8e4d8e4e8e4f8e508e518e528e538e548e558e568e578e588e598e5a8e5b8e5c8e5d8e5e8e5f8e608e618e628e638e648e658e668e678e688e698e6a8e6b8e6c8e6d8e6e8e6f8e708e718e728e738e748e758e768e778e788e798e7a8e7b8e7c8e7d8e7e8e7f8e808e818e828e838e848e858e868e878e888e898e8a8e8b8e8c8e8d8e8e8e8f8e908e918e928e938e948e958e968e978e988e998e9a8e9b8e9c8e9d8e9e8e9f8ea08ea18ea28ea38ea48ea58ea68ea78ea88ea98eaa8eab8eac8ead8eae8eaf8eb08eb18eb28eb38eb48eb58eb68eb78eb88eb98eba8ebb8ebc8ebd8ebe8ebf8ec08ec18ec28ec38ec48ec58ec68ec78ec88ec98eca8ecb8ecc8ecd8ece8ecf8ed08ed18ed28ed38ed48ed58ed68ed78ed88ed98eda8edb8edc8edd8ede8edf8ee08ee18ee28ee38ee48ee58ee68ee78ee88ee98eea8eeb8eec8eed8eee8eef8ef08ef18ef28ef38ef48ef58ef68ef78ef88ef98efa8efb8efc8efd8efe8eff8e008f018f028f038f048f058f068f078f088f098f0a8f0b8f0c8f0d8f0e8f0f8f108f118f128f138f148f158f168f178f188f198f1a8f1b8f1c8f1d8f1e8f1f8f208f218f228f238f248f258f268f278f288f298f2a8f2b8f2c8f2d8f2e8f2f8f308f318f328f338f348f358f368f378f388f398f3a8f3b8f3c8f3d8f3e8f3f8f408f418f428f438f448f458f468f478f488f498f4a8f4b8f4c8f4d8f4e8f4f8f508f518f528f538f548f558f568f578f588f598f5a8f5b8f5c8f5d8f5e8f5f8f608f618f628f638f648f658f668f678f688f698f6a8f6b8f6c8f6d8f6e8f6f8f708f718f728f738f748f758f768f778f788f798f7a8f7b8f7c8f7d8f7e8f7f8f808f818f828f838f848f858f868f878f888f898f8a8f8b8f8c8f8d8f8e8f8f8f908f918f928f938f948f958f968f978f988f998f9a8f9b8f9c8f9d8f9e8f9f8fa08fa18fa28fa38fa48fa58fa68fa78fa88fa98faa8fab8fac8fad8fae8faf8fb08fb18fb28fb38fb48fb58fb68fb78fb88fb98fba8fbb8fbc8fbd8fbe8fbf8fc08fc18fc28fc38fc48fc58fc68fc78fc88fc98fca8fcb8fcc8fcd8fce8fcf8fd08fd18fd28fd38fd48fd58fd68fd78fd88fd98fda8fdb8fdc8fdd8fde8fdf8fe08fe18fe28fe38fe48fe58fe68fe78fe88fe98fea8feb8fec8fed8fee8fef8ff08ff18ff28ff38ff48ff58ff68ff78ff88ff98ffa8ffb8ffc8ffd8ffe8fff8f00900190029003900490059006900790089009900a900b900c900d900e900f9010901190129013901490159016901790189019901a901b901c901d901e901f9020902190229023902490259026902790289029902a902b902c902d902e902f9030903190329033903490359036903790389039903a903b903c903d903e903f9040904190429043904490459046904790489049904a904b904c904d904e904f9050905190529053905490559056905790589059905a905b905c905d905e905f9060906190629063906490659066906790689069906a906b906c906d906e906f9070907190729073907490759076907790789079907a907b907c907d907e907f9080908190829083908490859086908790889089908a908b908c908d908e908f9090909190929093909490959096909790989099909a909b909c909d909e909f90a090a190a290a390a490a590a690a790a890a990aa90ab90ac90ad90ae90af90b090b190b290b390b490b590b690b790b890b990ba90bb90bc90bd90be90bf90c090c190c290c390c490c590c690c790c890c990ca90cb90cc90cd90ce90cf90d090d190d290d390d490d590d690d790d890d990da90db90dc90dd90de90df90e090e190e290e390e490e590e690e790e890e990ea90eb90ec90ed90ee90ef90f090f190f290f390f490f590f690f790f890f990fa90fb90fc90fd90fe90ff9000910191029103910491059106910791089109910a910b910c910d910e910f9110911191129113911491159116911791189119911a911b911c911d911e911f9120912191229123912491259126912791289129912a912b912c912d912e912f9130913191329133913491359136913791389139913a913b913c913d913e913f9140914191429143914491459146914791489149914a914b914c914d914e914f9150915191529153915491559156915791589159915a915b915c915d915e915f9160916191629163916491659166916791689169916a916b916c916d916e916f9170917191729173917491759176917791789179917a917b917c917d917e917f9180918191829183918491859186918791889189918a918b918c918d918e918f9190919191929193919491959196919791989199919a919b919c919d919e919f91a091a191a291a391a491a591a691a791a891a991aa91ab91ac91ad91ae91af91b091b191b291b391b491b591b691b791b891b991ba91bb91bc91bd91be91bf91c091c191c291c391c491c591c691c791c891c991ca91cb91cc91cd91ce91cf91d091d191d291d391d491d591d691d791d891d991da91db91dc91dd91de91df91e091e191e291e391e491e591e691e791e891e991ea91eb91ec91ed91ee91ef91f091f191f291f391f491f591f691f791f891f991fa91fb91fc91fd91fe91ff9100920192029203920492059206920792089209920a920b920c920d920e920f9210921192129213921492159216921792189219921a921b921c921d921e921f9220922192229223922492259226922792289229922a922b922c922d922e922f9230923192329233923492359236923792389239923a923b923c923d923e923f9240924192429243924492459246924792489249924a924b924c924d924e924f9250925192529253925492559256925792589259925a925b925c925d925e925f9260926192629263926492659266926792689269926a926b926c926d926e926f9270927192729273927492759276927792789279927a927b927c927d927e927f9280928192829283928492859286928792889289928a928b928c928d928e928f9290929192929293929492959296929792989299929a929b929c929d929e929f92a092a192a292a392a492a592a692a792a892a992aa92ab92ac92ad92ae92af92b092b192b292b392b492b592b692b792b892b992ba92bb92bc92bd92be92bf92c092c192c292c392c492c592c692c792c892c992ca92cb92cc92cd92ce92cf92d092d192d292d392d492d592d692d792d892d992da92db92dc92dd92de92df92e092e192e292e392e492e592e692e792e892e992ea92eb92ec92ed92ee92ef92f092f192f292f392f492f592f692f792f892f992fa92fb92fc92fd92fe92ff9200930193029303930493059306930793089309930a930b930c930d930e930f9310931193129313931493159316931793189319931a931b931c931d931e931f9320932193229323932493259326932793289329932a932b932c932d932e932f9330933193329333933493359336933793389339933a933b933c933d933e933f9340934193429343934493459346934793489349934a934b934c934d934e934f9350935193529353935493559356935793589359935a935b935c935d935e935f9360936193629363936493659366936793689369936a936b936c936d936e936f9370937193729373937493759376937793789379937a937b937c937d937e937f9380938193829383938493859386938793889389938a938b938c938d938e938f9390939193929393939493959396939793989399939a939b939c939d939e939f93a093a193a293a393a493a593a693a793a893a993aa93ab93ac93ad93ae93af93b093b193b293b393b493b593b693b793b893b993ba93bb93bc93bd93be93bf93c093c193c293c393c493c593c693c793c893c993ca93cb93cc93cd93ce93cf93d093d193d293d393d493d593d693d793d893d993da93db93dc93dd93de93df93e093e193e293e393e493e593e693e793e893e993ea93eb93ec93ed93ee93ef93f093f193f293f393f493f593f693f793f893f993fa93fb93fc93fd93fe93ff9300940194029403940494059406940794089409940a940b940c940d940e940f9410941194129413941494159416941794189419941a941b941c941d941e941f9420942194229423942494259426942794289429942a942b942c942d942e942f9430943194329433943494359436943794389439943a943b943c943d943e943f9440944194429443944494459446944794489449944a944b944c944d944e944f9450945194529453945494559456945794589459945a945b945c945d945e945f9460946194629463946494659466946794689469946a946b946c946d946e946f9470947194729473947494759476947794789479947a947b947c947d947e947f9480948194829483948494859486948794889489948a948b948c948d948e948f9490949194929493949494959496949794989499949a949b949c949d949e949f94a094a194a294a394a494a594a694a794a894a994aa94ab94ac94ad94ae94af94b094b194b294b394b494b594b694b794b894b994ba94bb94bc94bd94be94bf94c094c194c294c394c494c594c694c794c894c994ca94cb94cc94cd94ce94cf94d094d194d294d394d494d594d694d794d894d994da94db94dc94dd94de94df94e094e194e294e394e494e594e694e794e894e994ea94eb94ec94ed94ee94ef94f094f194f294f394f494f594f694f794f894f994fa94fb94fc94fd94fe94ff9400950195029503950495059506950795089509950a950b950c950d950e950f9510951195129513951495159516951795189519951a951b951c951d951e951f9520952195229523952495259526952795289529952a952b952c952d952e952f9530953195329533953495359536953795389539953a953b953c953d953e953f9540954195429543954495459546954795489549954a954b954c954d954e954f9550955195529553955495559556955795589559955a955b955c955d955e955f9560956195629563956495659566956795689569956a956b956c956d956e956f9570957195729573957495759576957795789579957a957b957c957d957e957f9580958195829583958495859586958795889589958a958b958c958d958e958f9590959195929593959495959596959795989599959a959b959c959d959e959f95a095a195a295a395a495a595a695a795a895a995aa95ab95ac95ad95ae95af95b095b195b295b395b495b595b695b795b895b995ba95bb95bc95bd95be95bf95c095c195c295c395c495c595c695c795c895c995ca95cb95cc95cd95ce95cf95d095d195d295d395d495d595d695d795d895d995da95db95dc95dd95de95df95e095e195e295e395e495e595e695e795e895e995ea95eb95ec95ed95ee95ef95f095f195f295f395f495f595f695f795f895f995fa95fb95fc95fd95fe95ff9500960196029603960496059606960796089609960a960b960c960d960e960f9610961196129613961496159616961796189619961a961b961c961d961e961f9620962196229623962496259626962796289629962a962b962c962d962e962f9630963196329633963496359636963796389639963a963b963c963d963e963f9640964196429643964496459646964796489649964a964b964c964d964e964f9650965196529653965496559656965796589659965a965b965c965d965e965f9660966196629663966496659666966796689669966a966b966c966d966e966f9670967196729673967496759676967796789679967a967b967c967d967e967f9680968196829683968496859686968796889689968a968b968c968d968e968f9690969196929693969496959696969796989699969a969b969c969d969e969f96a096a196a296a396a496a596a696a796a896a996aa96ab96ac96ad96ae96af96b096b196b296b396b496b596b696b796b896b996ba96bb96bc96bd96be96bf96c096c196c296c396c496c596c696c796c896c996ca96cb96cc96cd96ce96cf96d096d196d296d396d496d596d696d796d896d996da96db96dc96dd96de96df96e096e196e296e396e496e596e696e796e896e996ea96eb96ec96ed96ee96ef96f096f196f296f396f496f596f696f796f896f996fa96fb96fc96fd96fe96ff9600970197029703970497059706970797089709970a970b970c970d970e970f9710971197129713971497159716971797189719971a971b971c971d971e971f9720972197229723972497259726972797289729972a972b972c972d972e972f9730973197329733973497359736973797389739973a973b973c973d973e973f9740974197429743974497459746974797489749974a974b974c974d974e974f9750975197529753975497559756975797589759975a975b975c975d975e975f9760976197629763976497659766976797689769976a976b976c976d976e976f9770977197729773977497759776977797789779977a977b977c977d977e977f9780978197829783978497859786978797889789978a978b978c978d978e978f9790979197929793979497959796979797989799979a979b979c979d979e979f97a097a197a297a397a497a597a697a797a897a997aa97ab97ac97ad97ae97af97b097b197b297b397b497b597b697b797b897b997ba97bb97bc97bd97be97bf97c097c197c297c397c497c597c697c797c897c997ca97cb97cc97cd97ce97cf97d097d197d297d397d497d597d697d797d897d997da97db97dc97dd97de97df97e097e197e297e397e497e597e697e797e897e997ea97eb97ec97ed97ee97ef97f097f197f297f397f497f597f697f797f897f997fa97fb97fc97fd97fe97ff9700980198029803980498059806980798089809980a980b980c980d980e980f9810981198129813981498159816981798189819981a981b981c981d981e981f9820982198229823982498259826982798289829982a982b982c982d982e982f9830983198329833983498359836983798389839983a983b983c983d983e983f9840984198429843984498459846984798489849984a984b984c984d984e984f9850985198529853985498559856985798589859985a985b985c985d985e985f9860986198629863986498659866986798689869986a986b986c986d986e986f9870987198729873987498759876987798789879987a987b987c987d987e987f9880988198829883988498859886988798889889988a988b988c988d988e988f9890989198929893989498959896989798989899989a989b989c989d989e989f98a098a198a298a398a498a598a698a798a898a998aa98ab98ac98ad98ae98af98b098b198b298b398b498b598b698b798b898b998ba98bb98bc98bd98be98bf98c098c198c298c398c498c598c698c798c898c998ca98cb98cc98cd98ce98cf98d098d198d298d398d498d598d698d798d898d998da98db98dc98dd98de98df98e098e198e298e398e498e598e698e798e898e998ea98eb98ec98ed98ee98ef98f098f198f298f398f498f598f698f798f898f998fa98fb98fc98fd98fe98ff9800990199029903990499059906990799089909990a990b990c990d990e990f9910991199129913991499159916991799189919991a991b991c991d991e991f9920992199229923992499259926992799289929992a992b992c992d992e992f9930993199329933993499359936993799389939993a993b993c993d993e993f9940994199429943994499459946994799489949994a994b994c994d994e994f9950995199529953995499559956995799589959995a995b995c995d995e995f9960996199629963996499659966996799689969996a996b996c996d996e996f9970997199729973997499759976997799789979997a997b997c997d997e997f9980998199829983998499859986998799889989998a998b998c998d998e998f9990999199929993999499959996999799989999999a999b999c999d999e999f99a099a199a299a399a499a599a699a799a899a999aa99ab99ac99ad99ae99af99b099b199b299b399b499b599b699b799b899b999ba99bb99bc99bd99be99bf99c099c199c299c399c499c599c699c799c899c999ca99cb99cc99cd99ce99cf99d099d199d299d399d499d599d699d799d899d999da99db99dc99dd99de99df99e099e199e299e399e499e599e699e799e899e999ea99eb99ec99ed99ee99ef99f099f199f299f399f499f599f699f799f899f999fa99fb99fc99fd99fe99ff99009a019a029a039a049a059a069a079a089a099a0a9a0b9a0c9a0d9a0e9a0f9a109a119a129a139a149a159a169a179a189a199a1a9a1b9a1c9a1d9a1e9a1f9a209a219a229a239a249a259a269a279a289a299a2a9a2b9a2c9a2d9a2e9a2f9a309a319a329a339a349a359a369a379a389a399a3a9a3b9a3c9a3d9a3e9a3f9a409a419a429a439a449a459a469a479a489a499a4a9a4b9a4c9a4d9a4e9a4f9a509a519a529a539a549a559a569a579a589a599a5a9a5b9a5c9a5d9a5e9a5f9a609a619a629a639a649a659a669a679a689a699a6a9a6b9a6c9a6d9a6e9a6f9a709a719a729a739a749a759a769a779a789a799a7a9a7b9a7c9a7d9a7e9a7f9a809a819a829a839a849a859a869a879a889a899a8a9a8b9a8c9a8d9a8e9a8f9a909a919a929a939a949a959a969a979a989a999a9a9a9b9a9c9a9d9a9e9a9f9aa09aa19aa29aa39aa49aa59aa69aa79aa89aa99aaa9aab9aac9aad9aae9aaf9ab09ab19ab29ab39ab49ab59ab69ab79ab89ab99aba9abb9abc9abd9abe9abf9ac09ac19ac29ac39ac49ac59ac69ac79ac89ac99aca9acb9acc9acd9ace9acf9ad09ad19ad29ad39ad49ad59ad69ad79ad89ad99ada9adb9adc9add9ade9adf9ae09ae19ae29ae39ae49ae59ae69ae79ae89ae99aea9aeb9aec9aed9aee9aef9af09af19af29af39af49af59af69af79af89af99afa9afb9afc9afd9afe9aff9a009b019b029b039b049b059b069b079b089b099b0a9b0b9b0c9b0d9b0e9b0f9b109b119b129b139b149b159b169b179b189b199b1a9b1b9b1c9b1d9b1e9b1f9b209b219b229b239b249b259b269b279b289b299b2a9b2b9b2c9b2d9b2e9b2f9b309b319b329b339b349b359b369b379b389b399b3a9b3b9b3c9b3d9b3e9b3f9b409b419b429b439b449b459b469b479b489b499b4a9b4b9b4c9b4d9b4e9b4f9b509b519b529b539b549b559b569b579b589b599b5a9b5b9b5c9b5d9b5e9b5f9b609b619b629b639b649b659b669b679b689b699b6a9b6b9b6c9b6d9b6e9b6f9b709b719b729b739b749b759b769b779b789b799b7a9b7b9b7c9b7d9b7e9b7f9b809b819b829b839b849b859b869b879b889b899b8a9b8b9b8c9b8d9b8e9b8f9b909b919b929b939b949b959b969b979b989b999b9a9b9b9b9c9b9d9b9e9b9f9ba09ba19ba29ba39ba49ba59ba69ba79ba89ba99baa9bab9bac9bad9bae9baf9bb09bb19bb29bb39bb49bb59bb69bb79bb89bb99bba9bbb9bbc9bbd9bbe9bbf9bc09bc19bc29bc39bc49bc59bc69bc79bc89bc99bca9bcb9bcc9bcd9bce9bcf9bd09bd19bd29bd39bd49bd59bd69bd79bd89bd99bda9bdb9bdc9bdd9bde9bdf9be09be19be29be39be49be59be69be79be89be99bea9beb9bec9bed9bee9bef9bf09bf19bf29bf39bf49bf59bf69bf79bf89bf99bfa9bfb9bfc9bfd9bfe9bff9b009c019c029c039c049c059c069c079c089c099c0a9c0b9c0c9c0d9c0e9c0f9c109c119c129c139c149c159c169c179c189c199c1a9c1b9c1c9c1d9c1e9c1f9c209c219c229c239c249c259c269c279c289c299c2a9c2b9c2c9c2d9c2e9c2f9c309c319c329c339c349c359c369c379c389c399c3a9c3b9c3c9c3d9c3e9c3f9c409c419c429c439c449c459c469c479c489c499c4a9c4b9c4c9c4d9c4e9c4f9c509c519c529c539c549c559c569c579c589c599c5a9c5b9c5c9c5d9c5e9c5f9c609c619c629c639c649c659c669c679c689c699c6a9c6b9c6c9c6d9c6e9c6f9c709c719c729c739c749c759c769c779c789c799c7a9c7b9c7c9c7d9c7e9c7f9c809c819c829c839c849c859c869c879c889c899c8a9c8b9c8c9c8d9c8e9c8f9c909c919c929c939c949c959c969c979c989c999c9a9c9b9c9c9c9d9c9e9c9f9ca09ca19ca29ca39ca49ca59ca69ca79ca89ca99caa9cab9cac9cad9cae9caf9cb09cb19cb29cb39cb49cb59cb69cb79cb89cb99cba9cbb9cbc9cbd9cbe9cbf9cc09cc19cc29cc39cc49cc59cc69cc79cc89cc99cca9ccb9ccc9ccd9cce9ccf9cd09cd19cd29cd39cd49cd59cd69cd79cd89cd99cda9cdb9cdc9cdd9cde9cdf9ce09ce19ce29ce39ce49ce59ce69ce79ce89ce99cea9ceb9cec9ced9cee9cef9cf09cf19cf29cf39cf49cf59cf69cf79cf89cf99cfa9cfb9cfc9cfd9cfe9cff9c009d019d029d039d049d059d069d079d089d099d0a9d0b9d0c9d0d9d0e9d0f9d109d119d129d139d149d159d169d179d189d199d1a9d1b9d1c9d1d9d1e9d1f9d209d219d229d239d249d259d269d279d289d299d2a9d2b9d2c9d2d9d2e9d2f9d309d319d329d339d349d359d369d379d389d399d3a9d3b9d3c9d3d9d3e9d3f9d409d419d429d439d449d459d469d479d489d499d4a9d4b9d4c9d4d9d4e9d4f9d509d519d529d539d549d559d569d579d589d599d5a9d5b9d5c9d5d9d5e9d5f9d609d619d629d639d649d659d669d679d689d699d6a9d6b9d6c9d6d9d6e9d6f9d709d719d729d739d749d759d769d779d789d799d7a9d7b9d7c9d7d9d7e9d7f9d809d819d829d839d849d859d869d879d889d899d8a9d8b9d8c9d8d9d8e9d8f9d909d919d929d939d949d959d969d979d989d999d9a9d9b9d9c9d9d9d9e9d9f9da09da19da29da39da49da59da69da79da89da99daa9dab9dac9dad9dae9daf9db09db19db29db39db49db59db69db79db89db99dba9dbb9dbc9dbd9dbe9dbf9dc09dc19dc29dc39dc49dc59dc69dc79dc89dc99dca9dcb9dcc9dcd9dce9dcf9dd09dd19dd29dd39dd49dd59dd69dd79dd89dd99dda9ddb9ddc9ddd9dde9ddf9de09de19de29de39de49de59de69de79de89de99dea9deb9dec9ded9dee9def9df09df19df29df39df49df59df69df79df89df99dfa9dfb9dfc9dfd9dfe9dff9d009e019e029e039e049e059e069e079e089e099e0a9e0b9e0c9e0d9e0e9e0f9e109e119e129e139e149e159e169e179e189e199e1a9e1b9e1c9e1d9e1e9e1f9e209e219e229e239e249e259e269e279e289e299e2a9e2b9e2c9e2d9e2e9e2f9e309e319e329e339e349e359e369e379e389e399e3a9e3b9e3c9e3d9e3e9e3f9e409e419e429e439e449e459e469e479e489e499e4a9e4b9e4c9e4d9e4e9e4f9e509e519e529e539e549e559e569e579e589e599e5a9e5b9e5c9e5d9e5e9e5f9e609e619e629e639e649e659e669e679e689e699e6a9e6b9e6c9e6d9e6e9e6f9e709e719e729e739e749e759e769e779e789e799e7a9e7b9e7c9e7d9e7e9e7f9e809e819e829e839e849e859e869e879e889e899e8a9e8b9e8c9e8d9e8e9e8f9e909e919e929e939e949e959e969e979e989e999e9a9e9b9e9c9e9d9e9e9e9f9ea09ea19ea29ea39ea49ea59ea69ea79ea89ea99eaa9eab9eac9ead9eae9eaf9eb09eb19eb29eb39eb49eb59eb69eb79eb89eb99eba9ebb9ebc9ebd9ebe9ebf9ec09ec19ec29ec39ec49ec59ec69ec79ec89ec99eca9ecb9ecc9ecd9ece9ecf9ed09ed19ed29ed39ed49ed59ed69ed79ed89ed99eda9edb9edc9edd9ede9edf9ee09ee19ee29ee39ee49ee59ee69ee79ee89ee99eea9eeb9eec9eed9eee9eef9ef09ef19ef29ef39ef49ef59ef69ef79ef89ef99efa9efb9efc9efd9efe9eff9e009f019f029f039f049f059f069f079f089f099f0a9f0b9f0c9f0d9f0e9f0f9f109f119f129f139f149f159f169f179f189f199f1a9f1b9f1c9f1d9f1e9f1f9f209f219f229f239f249f259f269f279f289f299f2a9f2b9f2c9f2d9f2e9f2f9f309f319f329f339f349f359f369f379f389f399f3a9f3b9f3c9f3d9f3e9f3f9f409f419f429f439f449f459f469f479f489f499f4a9f4b9f4c9f4d9f4e9f4f9f509f519f529f539f549f559f569f579f589f599f5a9f5b9f5c9f5d9f5e9f5f9f609f619f629f639f649f659f669f679f689f699f6a9f6b9f6c9f6d9f6e9f6f9f709f719f729f739f749f759f769f779f789f799f7a9f7b9f7c9f7d9f7e9f7f9f809f819f829f839f849f859f869f879f889f899f8a9f8b9f8c9f8d9f8e9f8f9f909f919f929f939f949f959f969f979f989f999f9a9f9b9f9c9f9d9f9e9f9f9fa09fa19fa29fa39fa49fa59fa69fa79fa89fa99faa9fab9fac9fad9fae9faf9fb09fb19fb29fb39fb49fb59fb69fb79fb89fb99fba9fbb9fbc9fbd9fbe9fbf9fc09fc19fc29fc39fc49fc59fc69fc79fc89fc99fca9fcb9fcc9fcd9fce9fcf9fd09fd19fd29fd39fd49fd59fd69fd79fd89fd99fda9fdb9fdc9fdd9fde9fdf9fe09fe19fe29fe39fe49fe59fe69fe79fe89fe99fea9feb9fec9fed9fee9fef9ff09ff19ff29ff39ff49ff59ff69ff79ff89ff99ffa9ffb9ffc9ffd9ffe9fff9f00a001a002a003a004a005a006a007a008a009a00aa00ba00ca00da00ea00fa010a011a012a013a014a015a016a017a018a019a01aa01ba01ca01da01ea01fa020a021a022a023a024a025a026a027a028a029a02aa02ba02ca02da02ea02fa030a031a032a033a034a035a036a037a038a039a03aa03ba03ca03da03ea03fa040a041a042a043a044a045a046a047a048a049a04aa04ba04ca04da04ea04fa050a051a052a053a054a055a056a057a058a059a05aa05ba05ca05da05ea05fa060a061a062a063a064a065a066a067a068a069a06aa06ba06ca06da06ea06fa070a071a072a073a074a075a076a077a078a079a07aa07ba07ca07da07ea07fa080a081a082a083a084a085a086a087a088a089a08aa08ba08ca08da08ea08fa090a091a092a093a094a095a096a097a098a099a09aa09ba09ca09da09ea09fa0a0a0a1a0a2a0a3a0a4a0a5a0a6a0a7a0a8a0a9a0aaa0aba0aca0ada0aea0afa0b0a0b1a0b2a0b3a0b4a0b5a0b6a0b7a0b8a0b9a0baa0bba0bca0bda0bea0bfa0c0a0c1a0c2a0c3a0c4a0c5a0c6a0c7a0c8a0c9a0caa0cba0cca0cda0cea0cfa0d0a0d1a0d2a0d3a0d4a0d5a0d6a0d7a0d8a0d9a0daa0dba0dca0dda0dea0dfa0e0a0e1a0e2a0e3a0e4a0e5a0e6a0e7a0e8a0e9a0eaa0eba0eca0eda0eea0efa0f0a0f1a0f2a0f3a0f4a0f5a0f6a0f7a0f8a0f9a0faa0fba0fca0fda0fea0ffa000a101a102a103a104a105a106a107a108a109a10aa10ba10ca10da10ea10fa110a111a112a113a114a115a116a117a118a119a11aa11ba11ca11da11ea11fa120a121a122a123a124a125a126a127a128a129a12aa12ba12ca12da12ea12fa130a131a132a133a134a135a136a137a138a139a13aa13ba13ca13da13ea13fa140a141a142a143a144a145a146a147a148a149a14aa14ba14ca14da14ea14fa150a151a152a153a154a155a156a157a158a159a15aa15ba15ca15da15ea15fa160a161a162a163a164a165a166a167a168a169a16aa16ba16ca16da16ea16fa170a171a172a173a174a175a176a177a178a179a17aa17ba17ca17da17ea17fa180a181a182a183a184a185a186a187a188a189a18aa18ba18ca18da18ea18fa190a191a192a193a194a195a196a197a198a199a19aa19ba19ca19da19ea19fa1a0a1a1a1a2a1a3a1a4a1a5a1a6a1a7a1a8a1a9a1aaa1aba1aca1ada1aea1afa1b0a1b1a1b2a1b3a1b4a1b5a1b6a1b7a1b8a1b9a1baa1bba1bca1bda1bea1bfa1c0a1c1a1c2a1c3a1c4a1c5a1c6a1c7a1c8a1c9a1caa1cba1cca1cda1cea1cfa1d0a1d1a1d2a1d3a1d4a1d5a1d6a1d7a1d8a1d9a1daa1dba1dca1dda1dea1dfa1e0a1e1a1e2a1e3a1e4a1e5a1e6a1e7a1e8a1e9a1eaa1eba1eca1eda1eea1efa1f0a1f1a1f2a1f3a1f4a1f5a1f6a1f7a1f8a1f9a1faa1fba1fca1fda1fea1ffa100a201a202a203a204a205a206a207a208a209a20aa20ba20ca20da20ea20fa210a211a212a213a214a215a216a217a218a219a21aa21ba21ca21da21ea21fa220a221a222a223a224a225a226a227a228a229a22aa22ba22ca22da22ea22fa230a231a232a233a234a235a236a237a238a239a23aa23ba23ca23da23ea23fa240a241a242a243a244a245a246a247a248a249a24aa24ba24ca24da24ea24fa250a251a252a253a254a255a256a257a258a259a25aa25ba25ca25da25ea25fa260a261a262a263a264a265a266a267a268a269a26aa26ba26ca26da26ea26fa270a271a272a273a274a275a276a277a278a279a27aa27ba27ca27da27ea27fa280a281a282a283a284a285a286a287a288a289a28aa28ba28ca28da28ea28fa290a291a292a293a294a295a296a297a298a299a29aa29ba29ca29da29ea29fa2a0a2a1a2a2a2a3a2a4a2a5a2a6a2a7a2a8a2a9a2aaa2aba2aca2ada2aea2afa2b0a2b1a2b2a2b3a2b4a2b5a2b6a2b7a2b8a2b9a2baa2bba2bca2bda2bea2bfa2c0a2c1a2c2a2c3a2c4a2c5a2c6a2c7a2c8a2c9a2caa2cba2cca2cda2cea2cfa2d0a2d1a2d2a2d3a2d4a2d5a2d6a2d7a2d8a2d9a2daa2dba2dca2dda2dea2dfa2e0a2e1a2e2a2e3a2e4a2e5a2e6a2e7a2e8a2e9a2eaa2eba2eca2eda2eea2efa2f0a2f1a2f2a2f3a2f4a2f5a2f6a2f7a2f8a2f9a2faa2fba2fca2fda2fea2ffa200a301a302a303a304a305a306a307a308a309a30aa30ba30ca30da30ea30fa310a311a312a313a314a315a316a317a318a319a31aa31ba31ca31da31ea31fa320a321a322a323a324a325a326a327a328a329a32aa32ba32ca32da32ea32fa330a331a332a333a334a335a336a337a338a339a33aa33ba33ca33da33ea33fa340a341a342a343a344a345a346a347a348a349a34aa34ba34ca34da34ea34fa350a351a352a353a354a355a356a357a358a359a35aa35ba35ca35da35ea35fa360a361a362a363a364a365a366a367a368a369a36aa36ba36ca36da36ea36fa370a371a372a373a374a375a376a377a378a379a37aa37ba37ca37da37ea37fa380a381a382a383a384a385a386a387a388a389a38aa38ba38ca38da38ea38fa390a391a392a393a394a395a396a397a398a399a39aa39ba39ca39da39ea39fa3a0a3a1a3a2a3a3a3a4a3a5a3a6a3a7a3a8a3a9a3aaa3aba3aca3ada3aea3afa3b0a3b1a3b2a3b3a3b4a3b5a3b6a3b7a3b8a3b9a3baa3bba3bca3bda3bea3bfa3c0a3c1a3c2a3c3a3c4a3c5a3c6a3c7a3c8a3c9a3caa3cba3cca3cda3cea3cfa3d0a3d1a3d2a3d3a3d4a3d5a3d6a3d7a3d8a3d9a3daa3dba3dca3dda3dea3dfa3e0a3e1a3e2a3e3a3e4a3e5a3e6a3e7a3e8a3e9a3eaa3eba3eca3eda3eea3efa3f0a3f1a3f2a3f3a3f4a3f5a3f6a3f7a3f8a3f9a3faa3fba3fca3fda3fea3ffa300a401a402a403a404a405a406a407a408a409a40aa40ba40ca40da40ea40fa410a411a412a413a414a415a416a417a418a419a41aa41ba41ca41da41ea41fa420a421a422a423a424a425a426a427a428a429a42aa42ba42ca42da42ea42fa430a431a432a433a434a435a436a437a438a439a43aa43ba43ca43da43ea43fa440a441a442a443a444a445a446a447a448a449a44aa44ba44ca44da44ea44fa450a451a452a453a454a455a456a457a458a459a45aa45ba45ca45da45ea45fa460a461a462a463a464a465a466a467a468a469a46aa46ba46ca46da46ea46fa470a471a472a473a474a475a476a477a478a479a47aa47ba47ca47da47ea47fa480a481a482a483a484a485a486a487a488a489a48aa48ba48ca48da48ea48fa490a491a492a493a494a495a496a497a498a499a49aa49ba49ca49da49ea49fa4a0a4a1a4a2a4a3a4a4a4a5a4a6a4a7a4a8a4a9a4aaa4aba4aca4ada4aea4afa4b0a4b1a4b2a4b3a4b4a4b5a4b6a4b7a4b8a4b9a4baa4bba4bca4bda4bea4bfa4c0a4c1a4c2a4c3a4c4a4c5a4c6a4c7a4c8a4c9a4caa4cba4cca4cda4cea4cfa4d0a4d1a4d2a4d3a4d4a4d5a4d6a4d7a4d8a4d9a4daa4dba4dca4dda4dea4dfa4e0a4e1a4e2a4e3a4e4a4e5a4e6a4e7a4e8a4e9a4eaa4eba4eca4eda4eea4efa4f0a4f1a4f2a4f3a4f4a4f5a4f6a4f7a4f8a4f9a4faa4fba4fca4fda4fea4ffa400a501a502a503a504a505a506a507a508a509a50aa50ba50ca50da50ea50fa510a511a512a513a514a515a516a517a518a519a51aa51ba51ca51da51ea51fa520a521a522a523a524a525a526a527a528a529a52aa52ba52ca52da52ea52fa530a531a532a533a534a535a536a537a538a539a53aa53ba53ca53da53ea53fa540a541a542a543a544a545a546a547a548a549a54aa54ba54ca54da54ea54fa550a551a552a553a554a555a556a557a558a559a55aa55ba55ca55da55ea55fa560a561a562a563a564a565a566a567a568a569a56aa56ba56ca56da56ea56fa570a571a572a573a574a575a576a577a578a579a57aa57ba57ca57da57ea57fa580a581a582a583a584a585a586a587a588a589a58aa58ba58ca58da58ea58fa590a591a592a593a594a595a596a597a598a599a59aa59ba59ca59da59ea59fa5a0a5a1a5a2a5a3a5a4a5a5a5a6a5a7a5a8a5a9a5aaa5aba5aca5ada5aea5afa5b0a5b1a5b2a5b3a5b4a5b5a5b6a5b7a5b8a5b9a5baa5bba5bca5bda5bea5bfa5c0a5c1a5c2a5c3a5c4a5c5a5c6a5c7a5c8a5c9a5caa5cba5cca5cda5cea5cfa5d0a5d1a5d2a5d3a5d4a5d5a5d6a5d7a5d8a5d9a5daa5dba5dca5dda5dea5dfa5e0a5e1a5e2a5e3a5e4a5e5a5e6a5e7a5e8a5e9a5eaa5eba5eca5eda5eea5efa5f0a5f1a5f2a5f3a5f4a5f5a5f6a5f7a5f8a5f9a5faa5fba5fca5fda5fea5ffa500a601a602a603a604a605a606a607a608a609a60aa60ba60ca60da60ea60fa610a611a612a613a614a615a616a617a618a619a61aa61ba61ca61da61ea61fa620a621a622a623a624a625a626a627a628a629a62aa62ba62ca62da62ea62fa630a631a632a633a634a635a636a637a638a639a63aa63ba63ca63da63ea63fa640a640a642a642a644a644a646a646a648a648a64aa64aa64ca64ca64ea64ea650a650a652a652a654a654a656a656a658a658a65aa65aa65ca65ca65ea65ea660a661a662a662a664a664a666a666a668a668a66aa66aa66ca66ca66ea66fa670a671a672a673a674a675a676a677a678a679a67aa67ba67ca67da67ea67fa680a680a682a682a684a684a686a686a688a688a68aa68aa68ca68ca68ea68ea690a690a692a692a694a694a696a696a698a699a69aa69ba69ca69da69ea69fa6a0a6a1a6a2a6a3a6a4a6a5a6a6a6a7a6a8a6a9a6aaa6aba6aca6ada6aea6afa6b0a6b1a6b2a6b3a6b4a6b5a6b6a6b7a6b8a6b9a6baa6bba6bca6bda6bea6bfa6c0a6c1a6c2a6c3a6c4a6c5a6c6a6c7a6c8a6c9a6caa6cba6cca6cda6cea6cfa6d0a6d1a6d2a6d3a6d4a6d5a6d6a6d7a6d8a6d9a6daa6dba6dca6dda6dea6dfa6e0a6e1a6e2a6e3a6e4a6e5a6e6a6e7a6e8a6e9a6eaa6eba6eca6eda6eea6efa6f0a6f1a6f2a6f3a6f4a6f5a6f6a6f7a6f8a6f9a6faa6fba6fca6fda6fea6ffa600a701a702a703a704a705a706a707a708a709a70aa70ba70ca70da70ea70fa710a711a712a713a714a715a716a717a718a719a71aa71ba71ca71da71ea71fa720a721a722a722a724a724a726a726a728a728a72aa72aa72ca72ca72ea72ea730a731a732a732a734a734a736a736a738a738a73aa73aa73ca73ca73ea73ea740a740a742a742a744a744a746a746a748a748a74aa74aa74ca74ca74ea74ea750a750a752a752a754a754a756a756a758a758a75aa75aa75ca75ca75ea75ea760a760a762a762a764a764a766a766a768a768a76aa76aa76ca76ca76ea76ea770a771a772a773a774a775a776a777a778a779a779a77ba77ba77da77ea77ea780a780a782a782a784a784a786a786a788a789a78aa78ba78ba78da78ea78fa790a791a792a793a794a795a796a797a798a799a79aa79ba79ca79da79ea79fa7a0a7a1a7a2a7a3a7a4a7a5a7a6a7a7a7a8a7a9a7aaa7aba7aca7ada7aea7afa7b0a7b1a7b2a7b3a7b4a7b5a7b6a7b7a7b8a7b9a7baa7bba7bca7bda7bea7bfa7c0a7c1a7c2a7c3a7c4a7c5a7c6a7c7a7c8a7c9a7caa7cba7cca7cda7cea7cfa7d0a7d1a7d2a7d3a7d4a7d5a7d6a7d7a7d8a7d9a7daa7dba7dca7dda7dea7dfa7e0a7e1a7e2a7e3a7e4a7e5a7e6a7e7a7e8a7e9a7eaa7eba7eca7eda7eea7efa7f0a7f1a7f2a7f3a7f4a7f5a7f6a7f7a7f8a7f9a7faa7fba7fca7fda7fea7ffa700a801a802a803a804a805a806a807a808a809a80aa80ba80ca80da80ea80fa810a811a812a813a814a815a816a817a818a819a81aa81ba81ca81da81ea81fa820a821a822a823a824a825a826a827a828a829a82aa82ba82ca82da82ea82fa830a831a832a833a834a835a836a837a838a839a83aa83ba83ca83da83ea83fa840a841a842a843a844a845a846a847a848a849a84aa84ba84ca84da84ea84fa850a851a852a853a854a855a856a857a858a859a85aa85ba85ca85da85ea85fa860a861a862a863a864a865a866a867a868a869a86aa86ba86ca86da86ea86fa870a871a872a873a874a875a876a877a878a879a87aa87ba87ca87da87ea87fa880a881a882a883a884a885a886a887a888a889a88aa88ba88ca88da88ea88fa890a891a892a893a894a895a896a897a898a899a89aa89ba89ca89da89ea89fa8a0a8a1a8a2a8a3a8a4a8a5a8a6a8a7a8a8a8a9a8aaa8aba8aca8ada8aea8afa8b0a8b1a8b2a8b3a8b4a8b5a8b6a8b7a8b8a8b9a8baa8bba8bca8bda8bea8bfa8c0a8c1a8c2a8c3a8c4a8c5a8c6a8c7a8c8a8c9a8caa8cba8cca8cda8cea8cfa8d0a8d1a8d2a8d3a8d4a8d5a8d6a8d7a8d8a8d9a8daa8dba8dca8dda8dea8dfa8e0a8e1a8e2a8e3a8e4a8e5a8e6a8e7a8e8a8e9a8eaa8eba8eca8eda8eea8efa8f0a8f1a8f2a8f3a8f4a8f5a8f6a8f7a8f8a8f9a8faa8fba8fca8fda8fea8ffa800a901a902a903a904a905a906a907a908a909a90aa90ba90ca90da90ea90fa910a911a912a913a914a915a916a917a918a919a91aa91ba91ca91da91ea91fa920a921a922a923a924a925a926a927a928a929a92aa92ba92ca92da92ea92fa930a931a932a933a934a935a936a937a938a939a93aa93ba93ca93da93ea93fa940a941a942a943a944a945a946a947a948a949a94aa94ba94ca94da94ea94fa950a951a952a953a954a955a956a957a958a959a95aa95ba95ca95da95ea95fa960a961a962a963a964a965a966a967a968a969a96aa96ba96ca96da96ea96fa970a971a972a973a974a975a976a977a978a979a97aa97ba97ca97da97ea97fa980a981a982a983a984a985a986a987a988a989a98aa98ba98ca98da98ea98fa990a991a992a993a994a995a996a997a998a999a99aa99ba99ca99da99ea99fa9a0a9a1a9a2a9a3a9a4a9a5a9a6a9a7a9a8a9a9a9aaa9aba9aca9ada9aea9afa9b0a9b1a9b2a9b3a9b4a9b5a9b6a9b7a9b8a9b9a9baa9bba9bca9bda9bea9bfa9c0a9c1a9c2a9c3a9c4a9c5a9c6a9c7a9c8a9c9a9caa9cba9cca9cda9cea9cfa9d0a9d1a9d2a9d3a9d4a9d5a9d6a9d7a9d8a9d9a9daa9dba9dca9dda9dea9dfa9e0a9e1a9e2a9e3a9e4a9e5a9e6a9e7a9e8a9e9a9eaa9eba9eca9eda9eea9efa9f0a9f1a9f2a9f3a9f4a9f5a9f6a9f7a9f8a9f9a9faa9fba9fca9fda9fea9ffa900aa01aa02aa03aa04aa05aa06aa07aa08aa09aa0aaa0baa0caa0daa0eaa0faa10aa11aa12aa13aa14aa15aa16aa17aa18aa19aa1aaa1baa1caa1daa1eaa1faa20aa21aa22aa23aa24aa25aa26aa27aa28aa29aa2aaa2baa2caa2daa2eaa2faa30aa31aa32aa33aa34aa35aa36aa37aa38aa39aa3aaa3baa3caa3daa3eaa3faa40aa41aa42aa43aa44aa45aa46aa47aa48aa49aa4aaa4baa4caa4daa4eaa4faa50aa51aa52aa53aa54aa55aa56aa57aa58aa59aa5aaa5baa5caa5daa5eaa5faa60aa61aa62aa63aa64aa65aa66aa67aa68aa69aa6aaa6baa6caa6daa6eaa6faa70aa71aa72aa73aa74aa75aa76aa77aa78aa79aa7aaa7baa7caa7daa7eaa7faa80aa81aa82aa83aa84aa85aa86aa87aa88aa89aa8aaa8baa8caa8daa8eaa8faa90aa91aa92aa93aa94aa95aa96aa97aa98aa99aa9aaa9baa9caa9daa9eaa9faaa0aaa1aaa2aaa3aaa4aaa5aaa6aaa7aaa8aaa9aaaaaaabaaacaaadaaaeaaafaab0aab1aab2aab3aab4aab5aab6aab7aab8aab9aabaaabbaabcaabdaabeaabfaac0aac1aac2aac3aac4aac5aac6aac7aac8aac9aacaaacbaaccaacdaaceaacfaad0aad1aad2aad3aad4aad5aad6aad7aad8aad9aadaaadbaadcaaddaadeaadfaae0aae1aae2aae3aae4aae5aae6aae7aae8aae9aaeaaaebaaecaaedaaeeaaefaaf0aaf1aaf2aaf3aaf4aaf5aaf6aaf7aaf8aaf9aafaaafbaafcaafdaafeaaffaa00ab01ab02ab03ab04ab05ab06ab07ab08ab09ab0aab0bab0cab0dab0eab0fab10ab11ab12ab13ab14ab15ab16ab17ab18ab19ab1aab1bab1cab1dab1eab1fab20ab21ab22ab23ab24ab25ab26ab27ab28ab29ab2aab2bab2cab2dab2eab2fab30ab31ab32ab33ab34ab35ab36ab37ab38ab39ab3aab3bab3cab3dab3eab3fab40ab41ab42ab43ab44ab45ab46ab47ab48ab49ab4aab4bab4cab4dab4eab4fab50ab51ab52ab53ab54ab55ab56ab57ab58ab59ab5aab5bab5cab5dab5eab5fab60ab61ab62ab63ab64ab65ab66ab67ab68ab69ab6aab6bab6cab6dab6eab6fab70ab71ab72ab73ab74ab75ab76ab77ab78ab79ab7aab7bab7cab7dab7eab7fab80ab81ab82ab83ab84ab85ab86ab87ab88ab89ab8aab8bab8cab8dab8eab8fab90ab91ab92ab93ab94ab95ab96ab97ab98ab99ab9aab9bab9cab9dab9eab9faba0aba1aba2aba3aba4aba5aba6aba7aba8aba9abaaabababacabadabaeabafabb0abb1abb2abb3abb4abb5abb6abb7abb8abb9abbaabbbabbcabbdabbeabbfabc0abc1abc2abc3abc4abc5abc6abc7abc8abc9abcaabcbabccabcdabceabcfabd0abd1abd2abd3abd4abd5abd6abd7abd8abd9abdaabdbabdcabddabdeabdfabe0abe1abe2abe3abe4abe5abe6abe7abe8abe9abeaabebabecabedabeeabefabf0abf1abf2abf3abf4abf5abf6abf7abf8abf9abfaabfbabfcabfdabfeabffab00ac01ac02ac03ac04ac05ac06ac07ac08ac09ac0aac0bac0cac0dac0eac0fac10ac11ac12ac13ac14ac15ac16ac17ac18ac19ac1aac1bac1cac1dac1eac1fac20ac21ac22ac23ac24ac25ac26ac27ac28ac29ac2aac2bac2cac2dac2eac2fac30ac31ac32ac33ac34ac35ac36ac37ac38ac39ac3aac3bac3cac3dac3eac3fac40ac41ac42ac43ac44ac45ac46ac47ac48ac49ac4aac4bac4cac4dac4eac4fac50ac51ac52ac53ac54ac55ac56ac57ac58ac59ac5aac5bac5cac5dac5eac5fac60ac61ac62ac63ac64ac65ac66ac67ac68ac69ac6aac6bac6cac6dac6eac6fac70ac71ac72ac73ac74ac75ac76ac77ac78ac79ac7aac7bac7cac7dac7eac7fac80ac81ac82ac83ac84ac85ac86ac87ac88ac89ac8aac8bac8cac8dac8eac8fac90ac91ac92ac93ac94ac95ac96ac97ac98ac99ac9aac9bac9cac9dac9eac9faca0aca1aca2aca3aca4aca5aca6aca7aca8aca9acaaacabacacacadacaeacafacb0acb1acb2acb3acb4acb5acb6acb7acb8acb9acbaacbbacbcacbdacbeacbfacc0acc1acc2acc3acc4acc5acc6acc7acc8acc9accaaccbacccaccdacceaccfacd0acd1acd2acd3acd4acd5acd6acd7acd8acd9acdaacdbacdcacddacdeacdface0ace1ace2ace3ace4ace5ace6ace7ace8ace9aceaacebacecacedaceeacefacf0acf1acf2acf3acf4acf5acf6acf7acf8acf9acfaacfbacfcacfdacfeacffac00ad01ad02ad03ad04ad05ad06ad07ad08ad09ad0aad0bad0cad0dad0ead0fad10ad11ad12ad13ad14ad15ad16ad17ad18ad19ad1aad1bad1cad1dad1ead1fad20ad21ad22ad23ad24ad25ad26ad27ad28ad29ad2aad2bad2cad2dad2ead2fad30ad31ad32ad33ad34ad35ad36ad37ad38ad39ad3aad3bad3cad3dad3ead3fad40ad41ad42ad43ad44ad45ad46ad47ad48ad49ad4aad4bad4cad4dad4ead4fad50ad51ad52ad53ad54ad55ad56ad57ad58ad59ad5aad5bad5cad5dad5ead5fad60ad61ad62ad63ad64ad65ad66ad67ad68ad69ad6aad6bad6cad6dad6ead6fad70ad71ad72ad73ad74ad75ad76ad77ad78ad79ad7aad7bad7cad7dad7ead7fad80ad81ad82ad83ad84ad85ad86ad87ad88ad89ad8aad8bad8cad8dad8ead8fad90ad91ad92ad93ad94ad95ad96ad97ad98ad99ad9aad9bad9cad9dad9ead9fada0ada1ada2ada3ada4ada5ada6ada7ada8ada9adaaadabadacadadadaeadafadb0adb1adb2adb3adb4adb5adb6adb7adb8adb9adbaadbbadbcadbdadbeadbfadc0adc1adc2adc3adc4adc5adc6adc7adc8adc9adcaadcbadccadcdadceadcfadd0add1add2add3add4add5add6add7add8add9addaaddbaddcadddaddeaddfade0ade1ade2ade3ade4ade5ade6ade7ade8ade9adeaadebadecadedadeeadefadf0adf1adf2adf3adf4adf5adf6adf7adf8adf9adfaadfbadfcadfdadfeadffad00ae01ae02ae03ae04ae05ae06ae07ae08ae09ae0aae0bae0cae0dae0eae0fae10ae11ae12ae13ae14ae15ae16ae17ae18ae19ae1aae1bae1cae1dae1eae1fae20ae21ae22ae23ae24ae25ae26ae27ae28ae29ae2aae2bae2cae2dae2eae2fae30ae31ae32ae33ae34ae35ae36ae37ae38ae39ae3aae3bae3cae3dae3eae3fae40ae41ae42ae43ae44ae45ae46ae47ae48ae49ae4aae4bae4cae4dae4eae4fae50ae51ae52ae53ae54ae55ae56ae57ae58ae59ae5aae5bae5cae5dae5eae5fae60ae61ae62ae63ae64ae65ae66ae67ae68ae69ae6aae6bae6cae6dae6eae6fae70ae71ae72ae73ae74ae75ae76ae77ae78ae79ae7aae7bae7cae7dae7eae7fae80ae81ae82ae83ae84ae85ae86ae87ae88ae89ae8aae8bae8cae8dae8eae8fae90ae91ae92ae93ae94ae95ae96ae97ae98ae99ae9aae9bae9cae9dae9eae9faea0aea1aea2aea3aea4aea5aea6aea7aea8aea9aeaaaeabaeacaeadaeaeaeafaeb0aeb1aeb2aeb3aeb4aeb5aeb6aeb7aeb8aeb9aebaaebbaebcaebdaebeaebfaec0aec1aec2aec3aec4aec5aec6aec7aec8aec9aecaaecbaeccaecdaeceaecfaed0aed1aed2aed3aed4aed5aed6aed7aed8aed9aedaaedbaedcaeddaedeaedfaee0aee1aee2aee3aee4aee5aee6aee7aee8aee9aeeaaeebaeecaeedaeeeaeefaef0aef1aef2aef3aef4aef5aef6aef7aef8aef9aefaaefbaefcaefdaefeaeffae00af01af02af03af04af05af06af07af08af09af0aaf0baf0caf0daf0eaf0faf10af11af12af13af14af15af16af17af18af19af1aaf1baf1caf1daf1eaf1faf20af21af22af23af24af25af26af27af28af29af2aaf2baf2caf2daf2eaf2faf30af31af32af33af34af35af36af37af38af39af3aaf3baf3caf3daf3eaf3faf40af41af42af43af44af45af46af47af48af49af4aaf4baf4caf4daf4eaf4faf50af51af52af53af54af55af56af57af58af59af5aaf5baf5caf5daf5eaf5faf60af61af62af63af64af65af66af67af68af69af6aaf6baf6caf6daf6eaf6faf70af71af72af73af74af75af76af77af78af79af7aaf7baf7caf7daf7eaf7faf80af81af82af83af84af85af86af87af88af89af8aaf8baf8caf8daf8eaf8faf90af91af92af93af94af95af96af97af98af99af9aaf9baf9caf9daf9eaf9fafa0afa1afa2afa3afa4afa5afa6afa7afa8afa9afaaafabafacafadafaeafafafb0afb1afb2afb3afb4afb5afb6afb7afb8afb9afbaafbbafbcafbdafbeafbfafc0afc1afc2afc3afc4afc5afc6afc7afc8afc9afcaafcbafccafcdafceafcfafd0afd1afd2afd3afd4afd5afd6afd7afd8afd9afdaafdbafdcafddafdeafdfafe0afe1afe2afe3afe4afe5afe6afe7afe8afe9afeaafebafecafedafeeafefaff0aff1aff2aff3aff4aff5aff6aff7aff8aff9affaaffbaffcaffdaffeafffaf00b001b002b003b004b005b006b007b008b009b00ab00bb00cb00db00eb00fb010b011b012b013b014b015b016b017b018b019b01ab01bb01cb01db01eb01fb020b021b022b023b024b025b026b027b028b029b02ab02bb02cb02db02eb02fb030b031b032b033b034b035b036b037b038b039b03ab03bb03cb03db03eb03fb040b041b042b043b044b045b046b047b048b049b04ab04bb04cb04db04eb04fb050b051b052b053b054b055b056b057b058b059b05ab05bb05cb05db05eb05fb060b061b062b063b064b065b066b067b068b069b06ab06bb06cb06db06eb06fb070b071b072b073b074b075b076b077b078b079b07ab07bb07cb07db07eb07fb080b081b082b083b084b085b086b087b088b089b08ab08bb08cb08db08eb08fb090b091b092b093b094b095b096b097b098b099b09ab09bb09cb09db09eb09fb0a0b0a1b0a2b0a3b0a4b0a5b0a6b0a7b0a8b0a9b0aab0abb0acb0adb0aeb0afb0b0b0b1b0b2b0b3b0b4b0b5b0b6b0b7b0b8b0b9b0bab0bbb0bcb0bdb0beb0bfb0c0b0c1b0c2b0c3b0c4b0c5b0c6b0c7b0c8b0c9b0cab0cbb0ccb0cdb0ceb0cfb0d0b0d1b0d2b0d3b0d4b0d5b0d6b0d7b0d8b0d9b0dab0dbb0dcb0ddb0deb0dfb0e0b0e1b0e2b0e3b0e4b0e5b0e6b0e7b0e8b0e9b0eab0ebb0ecb0edb0eeb0efb0f0b0f1b0f2b0f3b0f4b0f5b0f6b0f7b0f8b0f9b0fab0fbb0fcb0fdb0feb0ffb000b101b102b103b104b105b106b107b108b109b10ab10bb10cb10db10eb10fb110b111b112b113b114b115b116b117b118b119b11ab11bb11cb11db11eb11fb120b121b122b123b124b125b126b127b128b129b12ab12bb12cb12db12eb12fb130b131b132b133b134b135b136b137b138b139b13ab13bb13cb13db13eb13fb140b141b142b143b144b145b146b147b148b149b14ab14bb14cb14db14eb14fb150b151b152b153b154b155b156b157b158b159b15ab15bb15cb15db15eb15fb160b161b162b163b164b165b166b167b168b169b16ab16bb16cb16db16eb16fb170b171b172b173b174b175b176b177b178b179b17ab17bb17cb17db17eb17fb180b181b182b183b184b185b186b187b188b189b18ab18bb18cb18db18eb18fb190b191b192b193b194b195b196b197b198b199b19ab19bb19cb19db19eb19fb1a0b1a1b1a2b1a3b1a4b1a5b1a6b1a7b1a8b1a9b1aab1abb1acb1adb1aeb1afb1b0b1b1b1b2b1b3b1b4b1b5b1b6b1b7b1b8b1b9b1bab1bbb1bcb1bdb1beb1bfb1c0b1c1b1c2b1c3b1c4b1c5b1c6b1c7b1c8b1c9b1cab1cbb1ccb1cdb1ceb1cfb1d0b1d1b1d2b1d3b1d4b1d5b1d6b1d7b1d8b1d9b1dab1dbb1dcb1ddb1deb1dfb1e0b1e1b1e2b1e3b1e4b1e5b1e6b1e7b1e8b1e9b1eab1ebb1ecb1edb1eeb1efb1f0b1f1b1f2b1f3b1f4b1f5b1f6b1f7b1f8b1f9b1fab1fbb1fcb1fdb1feb1ffb100b201b202b203b204b205b206b207b208b209b20ab20bb20cb20db20eb20fb210b211b212b213b214b215b216b217b218b219b21ab21bb21cb21db21eb21fb220b221b222b223b224b225b226b227b228b229b22ab22bb22cb22db22eb22fb230b231b232b233b234b235b236b237b238b239b23ab23bb23cb23db23eb23fb240b241b242b243b244b245b246b247b248b249b24ab24bb24cb24db24eb24fb250b251b252b253b254b255b256b257b258b259b25ab25bb25cb25db25eb25fb260b261b262b263b264b265b266b267b268b269b26ab26bb26cb26db26eb26fb270b271b272b273b274b275b276b277b278b279b27ab27bb27cb27db27eb27fb280b281b282b283b284b285b286b287b288b289b28ab28bb28cb28db28eb28fb290b291b292b293b294b295b296b297b298b299b29ab29bb29cb29db29eb29fb2a0b2a1b2a2b2a3b2a4b2a5b2a6b2a7b2a8b2a9b2aab2abb2acb2adb2aeb2afb2b0b2b1b2b2b2b3b2b4b2b5b2b6b2b7b2b8b2b9b2bab2bbb2bcb2bdb2beb2bfb2c0b2c1b2c2b2c3b2c4b2c5b2c6b2c7b2c8b2c9b2cab2cbb2ccb2cdb2ceb2cfb2d0b2d1b2d2b2d3b2d4b2d5b2d6b2d7b2d8b2d9b2dab2dbb2dcb2ddb2deb2dfb2e0b2e1b2e2b2e3b2e4b2e5b2e6b2e7b2e8b2e9b2eab2ebb2ecb2edb2eeb2efb2f0b2f1b2f2b2f3b2f4b2f5b2f6b2f7b2f8b2f9b2fab2fbb2fcb2fdb2feb2ffb200b301b302b303b304b305b306b307b308b309b30ab30bb30cb30db30eb30fb310b311b312b313b314b315b316b317b318b319b31ab31bb31cb31db31eb31fb320b321b322b323b324b325b326b327b328b329b32ab32bb32cb32db32eb32fb330b331b332b333b334b335b336b337b338b339b33ab33bb33cb33db33eb33fb340b341b342b343b344b345b346b347b348b349b34ab34bb34cb34db34eb34fb350b351b352b353b354b355b356b357b358b359b35ab35bb35cb35db35eb35fb360b361b362b363b364b365b366b367b368b369b36ab36bb36cb36db36eb36fb370b371b372b373b374b375b376b377b378b379b37ab37bb37cb37db37eb37fb380b381b382b383b384b385b386b387b388b389b38ab38bb38cb38db38eb38fb390b391b392b393b394b395b396b397b398b399b39ab39bb39cb39db39eb39fb3a0b3a1b3a2b3a3b3a4b3a5b3a6b3a7b3a8b3a9b3aab3abb3acb3adb3aeb3afb3b0b3b1b3b2b3b3b3b4b3b5b3b6b3b7b3b8b3b9b3bab3bbb3bcb3bdb3beb3bfb3c0b3c1b3c2b3c3b3c4b3c5b3c6b3c7b3c8b3c9b3cab3cbb3ccb3cdb3ceb3cfb3d0b3d1b3d2b3d3b3d4b3d5b3d6b3d7b3d8b3d9b3dab3dbb3dcb3ddb3deb3dfb3e0b3e1b3e2b3e3b3e4b3e5b3e6b3e7b3e8b3e9b3eab3ebb3ecb3edb3eeb3efb3f0b3f1b3f2b3f3b3f4b3f5b3f6b3f7b3f8b3f9b3fab3fbb3fcb3fdb3feb3ffb300b401b402b403b404b405b406b407b408b409b40ab40bb40cb40db40eb40fb410b411b412b413b414b415b416b417b418b419b41ab41bb41cb41db41eb41fb420b421b422b423b424b425b426b427b428b429b42ab42bb42cb42db42eb42fb430b431b432b433b434b435b436b437b438b439b43ab43bb43cb43db43eb43fb440b441b442b443b444b445b446b447b448b449b44ab44bb44cb44db44eb44fb450b451b452b453b454b455b456b457b458b459b45ab45bb45cb45db45eb45fb460b461b462b463b464b465b466b467b468b469b46ab46bb46cb46db46eb46fb470b471b472b473b474b475b476b477b478b479b47ab47bb47cb47db47eb47fb480b481b482b483b484b485b486b487b488b489b48ab48bb48cb48db48eb48fb490b491b492b493b494b495b496b497b498b499b49ab49bb49cb49db49eb49fb4a0b4a1b4a2b4a3b4a4b4a5b4a6b4a7b4a8b4a9b4aab4abb4acb4adb4aeb4afb4b0b4b1b4b2b4b3b4b4b4b5b4b6b4b7b4b8b4b9b4bab4bbb4bcb4bdb4beb4bfb4c0b4c1b4c2b4c3b4c4b4c5b4c6b4c7b4c8b4c9b4cab4cbb4ccb4cdb4ceb4cfb4d0b4d1b4d2b4d3b4d4b4d5b4d6b4d7b4d8b4d9b4dab4dbb4dcb4ddb4deb4dfb4e0b4e1b4e2b4e3b4e4b4e5b4e6b4e7b4e8b4e9b4eab4ebb4ecb4edb4eeb4efb4f0b4f1b4f2b4f3b4f4b4f5b4f6b4f7b4f8b4f9b4fab4fbb4fcb4fdb4feb4ffb400b501b502b503b504b505b506b507b508b509b50ab50bb50cb50db50eb50fb510b511b512b513b514b515b516b517b518b519b51ab51bb51cb51db51eb51fb520b521b522b523b524b525b526b527b528b529b52ab52bb52cb52db52eb52fb530b531b532b533b534b535b536b537b538b539b53ab53bb53cb53db53eb53fb540b541b542b543b544b545b546b547b548b549b54ab54bb54cb54db54eb54fb550b551b552b553b554b555b556b557b558b559b55ab55bb55cb55db55eb55fb560b561b562b563b564b565b566b567b568b569b56ab56bb56cb56db56eb56fb570b571b572b573b574b575b576b577b578b579b57ab57bb57cb57db57eb57fb580b581b582b583b584b585b586b587b588b589b58ab58bb58cb58db58eb58fb590b591b592b593b594b595b596b597b598b599b59ab59bb59cb59db59eb59fb5a0b5a1b5a2b5a3b5a4b5a5b5a6b5a7b5a8b5a9b5aab5abb5acb5adb5aeb5afb5b0b5b1b5b2b5b3b5b4b5b5b5b6b5b7b5b8b5b9b5bab5bbb5bcb5bdb5beb5bfb5c0b5c1b5c2b5c3b5c4b5c5b5c6b5c7b5c8b5c9b5cab5cbb5ccb5cdb5ceb5cfb5d0b5d1b5d2b5d3b5d4b5d5b5d6b5d7b5d8b5d9b5dab5dbb5dcb5ddb5deb5dfb5e0b5e1b5e2b5e3b5e4b5e5b5e6b5e7b5e8b5e9b5eab5ebb5ecb5edb5eeb5efb5f0b5f1b5f2b5f3b5f4b5f5b5f6b5f7b5f8b5f9b5fab5fbb5fcb5fdb5feb5ffb500b601b602b603b604b605b606b607b608b609b60ab60bb60cb60db60eb60fb610b611b612b613b614b615b616b617b618b619b61ab61bb61cb61db61eb61fb620b621b622b623b624b625b626b627b628b629b62ab62bb62cb62db62eb62fb630b631b632b633b634b635b636b637b638b639b63ab63bb63cb63db63eb63fb640b641b642b643b644b645b646b647b648b649b64ab64bb64cb64db64eb64fb650b651b652b653b654b655b656b657b658b659b65ab65bb65cb65db65eb65fb660b661b662b663b664b665b666b667b668b669b66ab66bb66cb66db66eb66fb670b671b672b673b674b675b676b677b678b679b67ab67bb67cb67db67eb67fb680b681b682b683b684b685b686b687b688b689b68ab68bb68cb68db68eb68fb690b691b692b693b694b695b696b697b698b699b69ab69bb69cb69db69eb69fb6a0b6a1b6a2b6a3b6a4b6a5b6a6b6a7b6a8b6a9b6aab6abb6acb6adb6aeb6afb6b0b6b1b6b2b6b3b6b4b6b5b6b6b6b7b6b8b6b9b6bab6bbb6bcb6bdb6beb6bfb6c0b6c1b6c2b6c3b6c4b6c5b6c6b6c7b6c8b6c9b6cab6cbb6ccb6cdb6ceb6cfb6d0b6d1b6d2b6d3b6d4b6d5b6d6b6d7b6d8b6d9b6dab6dbb6dcb6ddb6deb6dfb6e0b6e1b6e2b6e3b6e4b6e5b6e6b6e7b6e8b6e9b6eab6ebb6ecb6edb6eeb6efb6f0b6f1b6f2b6f3b6f4b6f5b6f6b6f7b6f8b6f9b6fab6fbb6fcb6fdb6feb6ffb600b701b702b703b704b705b706b707b708b709b70ab70bb70cb70db70eb70fb710b711b712b713b714b715b716b717b718b719b71ab71bb71cb71db71eb71fb720b721b722b723b724b725b726b727b728b729b72ab72bb72cb72db72eb72fb730b731b732b733b734b735b736b737b738b739b73ab73bb73cb73db73eb73fb740b741b742b743b744b745b746b747b748b749b74ab74bb74cb74db74eb74fb750b751b752b753b754b755b756b757b758b759b75ab75bb75cb75db75eb75fb760b761b762b763b764b765b766b767b768b769b76ab76bb76cb76db76eb76fb770b771b772b773b774b775b776b777b778b779b77ab77bb77cb77db77eb77fb780b781b782b783b784b785b786b787b788b789b78ab78bb78cb78db78eb78fb790b791b792b793b794b795b796b797b798b799b79ab79bb79cb79db79eb79fb7a0b7a1b7a2b7a3b7a4b7a5b7a6b7a7b7a8b7a9b7aab7abb7acb7adb7aeb7afb7b0b7b1b7b2b7b3b7b4b7b5b7b6b7b7b7b8b7b9b7bab7bbb7bcb7bdb7beb7bfb7c0b7c1b7c2b7c3b7c4b7c5b7c6b7c7b7c8b7c9b7cab7cbb7ccb7cdb7ceb7cfb7d0b7d1b7d2b7d3b7d4b7d5b7d6b7d7b7d8b7d9b7dab7dbb7dcb7ddb7deb7dfb7e0b7e1b7e2b7e3b7e4b7e5b7e6b7e7b7e8b7e9b7eab7ebb7ecb7edb7eeb7efb7f0b7f1b7f2b7f3b7f4b7f5b7f6b7f7b7f8b7f9b7fab7fbb7fcb7fdb7feb7ffb700b801b802b803b804b805b806b807b808b809b80ab80bb80cb80db80eb80fb810b811b812b813b814b815b816b817b818b819b81ab81bb81cb81db81eb81fb820b821b822b823b824b825b826b827b828b829b82ab82bb82cb82db82eb82fb830b831b832b833b834b835b836b837b838b839b83ab83bb83cb83db83eb83fb840b841b842b843b844b845b846b847b848b849b84ab84bb84cb84db84eb84fb850b851b852b853b854b855b856b857b858b859b85ab85bb85cb85db85eb85fb860b861b862b863b864b865b866b867b868b869b86ab86bb86cb86db86eb86fb870b871b872b873b874b875b876b877b878b879b87ab87bb87cb87db87eb87fb880b881b882b883b884b885b886b887b888b889b88ab88bb88cb88db88eb88fb890b891b892b893b894b895b896b897b898b899b89ab89bb89cb89db89eb89fb8a0b8a1b8a2b8a3b8a4b8a5b8a6b8a7b8a8b8a9b8aab8abb8acb8adb8aeb8afb8b0b8b1b8b2b8b3b8b4b8b5b8b6b8b7b8b8b8b9b8bab8bbb8bcb8bdb8beb8bfb8c0b8c1b8c2b8c3b8c4b8c5b8c6b8c7b8c8b8c9b8cab8cbb8ccb8cdb8ceb8cfb8d0b8d1b8d2b8d3b8d4b8d5b8d6b8d7b8d8b8d9b8dab8dbb8dcb8ddb8deb8dfb8e0b8e1b8e2b8e3b8e4b8e5b8e6b8e7b8e8b8e9b8eab8ebb8ecb8edb8eeb8efb8f0b8f1b8f2b8f3b8f4b8f5b8f6b8f7b8f8b8f9b8fab8fbb8fcb8fdb8feb8ffb800b901b902b903b904b905b906b907b908b909b90ab90bb90cb90db90eb90fb910b911b912b913b914b915b916b917b918b919b91ab91bb91cb91db91eb91fb920b921b922b923b924b925b926b927b928b929b92ab92bb92cb92db92eb92fb930b931b932b933b934b935b936b937b938b939b93ab93bb93cb93db93eb93fb940b941b942b943b944b945b946b947b948b949b94ab94bb94cb94db94eb94fb950b951b952b953b954b955b956b957b958b959b95ab95bb95cb95db95eb95fb960b961b962b963b964b965b966b967b968b969b96ab96bb96cb96db96eb96fb970b971b972b973b974b975b976b977b978b979b97ab97bb97cb97db97eb97fb980b981b982b983b984b985b986b987b988b989b98ab98bb98cb98db98eb98fb990b991b992b993b994b995b996b997b998b999b99ab99bb99cb99db99eb99fb9a0b9a1b9a2b9a3b9a4b9a5b9a6b9a7b9a8b9a9b9aab9abb9acb9adb9aeb9afb9b0b9b1b9b2b9b3b9b4b9b5b9b6b9b7b9b8b9b9b9bab9bbb9bcb9bdb9beb9bfb9c0b9c1b9c2b9c3b9c4b9c5b9c6b9c7b9c8b9c9b9cab9cbb9ccb9cdb9ceb9cfb9d0b9d1b9d2b9d3b9d4b9d5b9d6b9d7b9d8b9d9b9dab9dbb9dcb9ddb9deb9dfb9e0b9e1b9e2b9e3b9e4b9e5b9e6b9e7b9e8b9e9b9eab9ebb9ecb9edb9eeb9efb9f0b9f1b9f2b9f3b9f4b9f5b9f6b9f7b9f8b9f9b9fab9fbb9fcb9fdb9feb9ffb900ba01ba02ba03ba04ba05ba06ba07ba08ba09ba0aba0bba0cba0dba0eba0fba10ba11ba12ba13ba14ba15ba16ba17ba18ba19ba1aba1bba1cba1dba1eba1fba20ba21ba22ba23ba24ba25ba26ba27ba28ba29ba2aba2bba2cba2dba2eba2fba30ba31ba32ba33ba34ba35ba36ba37ba38ba39ba3aba3bba3cba3dba3eba3fba40ba41ba42ba43ba44ba45ba46ba47ba48ba49ba4aba4bba4cba4dba4eba4fba50ba51ba52ba53ba54ba55ba56ba57ba58ba59ba5aba5bba5cba5dba5eba5fba60ba61ba62ba63ba64ba65ba66ba67ba68ba69ba6aba6bba6cba6dba6eba6fba70ba71ba72ba73ba74ba75ba76ba77ba78ba79ba7aba7bba7cba7dba7eba7fba80ba81ba82ba83ba84ba85ba86ba87ba88ba89ba8aba8bba8cba8dba8eba8fba90ba91ba92ba93ba94ba95ba96ba97ba98ba99ba9aba9bba9cba9dba9eba9fbaa0baa1baa2baa3baa4baa5baa6baa7baa8baa9baaabaabbaacbaadbaaebaafbab0bab1bab2bab3bab4bab5bab6bab7bab8bab9babababbbabcbabdbabebabfbac0bac1bac2bac3bac4bac5bac6bac7bac8bac9bacabacbbaccbacdbacebacfbad0bad1bad2bad3bad4bad5bad6bad7bad8bad9badabadbbadcbaddbadebadfbae0bae1bae2bae3bae4bae5bae6bae7bae8bae9baeabaebbaecbaedbaeebaefbaf0baf1baf2baf3baf4baf5baf6baf7baf8baf9bafabafbbafcbafdbafebaffba00bb01bb02bb03bb04bb05bb06bb07bb08bb09bb0abb0bbb0cbb0dbb0ebb0fbb10bb11bb12bb13bb14bb15bb16bb17bb18bb19bb1abb1bbb1cbb1dbb1ebb1fbb20bb21bb22bb23bb24bb25bb26bb27bb28bb29bb2abb2bbb2cbb2dbb2ebb2fbb30bb31bb32bb33bb34bb35bb36bb37bb38bb39bb3abb3bbb3cbb3dbb3ebb3fbb40bb41bb42bb43bb44bb45bb46bb47bb48bb49bb4abb4bbb4cbb4dbb4ebb4fbb50bb51bb52bb53bb54bb55bb56bb57bb58bb59bb5abb5bbb5cbb5dbb5ebb5fbb60bb61bb62bb63bb64bb65bb66bb67bb68bb69bb6abb6bbb6cbb6dbb6ebb6fbb70bb71bb72bb73bb74bb75bb76bb77bb78bb79bb7abb7bbb7cbb7dbb7ebb7fbb80bb81bb82bb83bb84bb85bb86bb87bb88bb89bb8abb8bbb8cbb8dbb8ebb8fbb90bb91bb92bb93bb94bb95bb96bb97bb98bb99bb9abb9bbb9cbb9dbb9ebb9fbba0bba1bba2bba3bba4bba5bba6bba7bba8bba9bbaabbabbbacbbadbbaebbafbbb0bbb1bbb2bbb3bbb4bbb5bbb6bbb7bbb8bbb9bbbabbbbbbbcbbbdbbbebbbfbbc0bbc1bbc2bbc3bbc4bbc5bbc6bbc7bbc8bbc9bbcabbcbbbccbbcdbbcebbcfbbd0bbd1bbd2bbd3bbd4bbd5bbd6bbd7bbd8bbd9bbdabbdbbbdcbbddbbdebbdfbbe0bbe1bbe2bbe3bbe4bbe5bbe6bbe7bbe8bbe9bbeabbebbbecbbedbbeebbefbbf0bbf1bbf2bbf3bbf4bbf5bbf6bbf7bbf8bbf9bbfabbfbbbfcbbfdbbfebbffbb00bc01bc02bc03bc04bc05bc06bc07bc08bc09bc0abc0bbc0cbc0dbc0ebc0fbc10bc11bc12bc13bc14bc15bc16bc17bc18bc19bc1abc1bbc1cbc1dbc1ebc1fbc20bc21bc22bc23bc24bc25bc26bc27bc28bc29bc2abc2bbc2cbc2dbc2ebc2fbc30bc31bc32bc33bc34bc35bc36bc37bc38bc39bc3abc3bbc3cbc3dbc3ebc3fbc40bc41bc42bc43bc44bc45bc46bc47bc48bc49bc4abc4bbc4cbc4dbc4ebc4fbc50bc51bc52bc53bc54bc55bc56bc57bc58bc59bc5abc5bbc5cbc5dbc5ebc5fbc60bc61bc62bc63bc64bc65bc66bc67bc68bc69bc6abc6bbc6cbc6dbc6ebc6fbc70bc71bc72bc73bc74bc75bc76bc77bc78bc79bc7abc7bbc7cbc7dbc7ebc7fbc80bc81bc82bc83bc84bc85bc86bc87bc88bc89bc8abc8bbc8cbc8dbc8ebc8fbc90bc91bc92bc93bc94bc95bc96bc97bc98bc99bc9abc9bbc9cbc9dbc9ebc9fbca0bca1bca2bca3bca4bca5bca6bca7bca8bca9bcaabcabbcacbcadbcaebcafbcb0bcb1bcb2bcb3bcb4bcb5bcb6bcb7bcb8bcb9bcbabcbbbcbcbcbdbcbebcbfbcc0bcc1bcc2bcc3bcc4bcc5bcc6bcc7bcc8bcc9bccabccbbcccbccdbccebccfbcd0bcd1bcd2bcd3bcd4bcd5bcd6bcd7bcd8bcd9bcdabcdbbcdcbcddbcdebcdfbce0bce1bce2bce3bce4bce5bce6bce7bce8bce9bceabcebbcecbcedbceebcefbcf0bcf1bcf2bcf3bcf4bcf5bcf6bcf7bcf8bcf9bcfabcfbbcfcbcfdbcfebcffbc00bd01bd02bd03bd04bd05bd06bd07bd08bd09bd0abd0bbd0cbd0dbd0ebd0fbd10bd11bd12bd13bd14bd15bd16bd17bd18bd19bd1abd1bbd1cbd1dbd1ebd1fbd20bd21bd22bd23bd24bd25bd26bd27bd28bd29bd2abd2bbd2cbd2dbd2ebd2fbd30bd31bd32bd33bd34bd35bd36bd37bd38bd39bd3abd3bbd3cbd3dbd3ebd3fbd40bd41bd42bd43bd44bd45bd46bd47bd48bd49bd4abd4bbd4cbd4dbd4ebd4fbd50bd51bd52bd53bd54bd55bd56bd57bd58bd59bd5abd5bbd5cbd5dbd5ebd5fbd60bd61bd62bd63bd64bd65bd66bd67bd68bd69bd6abd6bbd6cbd6dbd6ebd6fbd70bd71bd72bd73bd74bd75bd76bd77bd78bd79bd7abd7bbd7cbd7dbd7ebd7fbd80bd81bd82bd83bd84bd85bd86bd87bd88bd89bd8abd8bbd8cbd8dbd8ebd8fbd90bd91bd92bd93bd94bd95bd96bd97bd98bd99bd9abd9bbd9cbd9dbd9ebd9fbda0bda1bda2bda3bda4bda5bda6bda7bda8bda9bdaabdabbdacbdadbdaebdafbdb0bdb1bdb2bdb3bdb4bdb5bdb6bdb7bdb8bdb9bdbabdbbbdbcbdbdbdbebdbfbdc0bdc1bdc2bdc3bdc4bdc5bdc6bdc7bdc8bdc9bdcabdcbbdccbdcdbdcebdcfbdd0bdd1bdd2bdd3bdd4bdd5bdd6bdd7bdd8bdd9bddabddbbddcbdddbddebddfbde0bde1bde2bde3bde4bde5bde6bde7bde8bde9bdeabdebbdecbdedbdeebdefbdf0bdf1bdf2bdf3bdf4bdf5bdf6bdf7bdf8bdf9bdfabdfbbdfcbdfdbdfebdffbd00be01be02be03be04be05be06be07be08be09be0abe0bbe0cbe0dbe0ebe0fbe10be11be12be13be14be15be16be17be18be19be1abe1bbe1cbe1dbe1ebe1fbe20be21be22be23be24be25be26be27be28be29be2abe2bbe2cbe2dbe2ebe2fbe30be31be32be33be34be35be36be37be38be39be3abe3bbe3cbe3dbe3ebe3fbe40be41be42be43be44be45be46be47be48be49be4abe4bbe4cbe4dbe4ebe4fbe50be51be52be53be54be55be56be57be58be59be5abe5bbe5cbe5dbe5ebe5fbe60be61be62be63be64be65be66be67be68be69be6abe6bbe6cbe6dbe6ebe6fbe70be71be72be73be74be75be76be77be78be79be7abe7bbe7cbe7dbe7ebe7fbe80be81be82be83be84be85be86be87be88be89be8abe8bbe8cbe8dbe8ebe8fbe90be91be92be93be94be95be96be97be98be99be9abe9bbe9cbe9dbe9ebe9fbea0bea1bea2bea3bea4bea5bea6bea7bea8bea9beaabeabbeacbeadbeaebeafbeb0beb1beb2beb3beb4beb5beb6beb7beb8beb9bebabebbbebcbebdbebebebfbec0bec1bec2bec3bec4bec5bec6bec7bec8bec9becabecbbeccbecdbecebecfbed0bed1bed2bed3bed4bed5bed6bed7bed8bed9bedabedbbedcbeddbedebedfbee0bee1bee2bee3bee4bee5bee6bee7bee8bee9beeabeebbeecbeedbeeebeefbef0bef1bef2bef3bef4bef5bef6bef7bef8bef9befabefbbefcbefdbefebeffbe00bf01bf02bf03bf04bf05bf06bf07bf08bf09bf0abf0bbf0cbf0dbf0ebf0fbf10bf11bf12bf13bf14bf15bf16bf17bf18bf19bf1abf1bbf1cbf1dbf1ebf1fbf20bf21bf22bf23bf24bf25bf26bf27bf28bf29bf2abf2bbf2cbf2dbf2ebf2fbf30bf31bf32bf33bf34bf35bf36bf37bf38bf39bf3abf3bbf3cbf3dbf3ebf3fbf40bf41bf42bf43bf44bf45bf46bf47bf48bf49bf4abf4bbf4cbf4dbf4ebf4fbf50bf51bf52bf53bf54bf55bf56bf57bf58bf59bf5abf5bbf5cbf5dbf5ebf5fbf60bf61bf62bf63bf64bf65bf66bf67bf68bf69bf6abf6bbf6cbf6dbf6ebf6fbf70bf71bf72bf73bf74bf75bf76bf77bf78bf79bf7abf7bbf7cbf7dbf7ebf7fbf80bf81bf82bf83bf84bf85bf86bf87bf88bf89bf8abf8bbf8cbf8dbf8ebf8fbf90bf91bf92bf93bf94bf95bf96bf97bf98bf99bf9abf9bbf9cbf9dbf9ebf9fbfa0bfa1bfa2bfa3bfa4bfa5bfa6bfa7bfa8bfa9bfaabfabbfacbfadbfaebfafbfb0bfb1bfb2bfb3bfb4bfb5bfb6bfb7bfb8bfb9bfbabfbbbfbcbfbdbfbebfbfbfc0bfc1bfc2bfc3bfc4bfc5bfc6bfc7bfc8bfc9bfcabfcbbfccbfcdbfcebfcfbfd0bfd1bfd2bfd3bfd4bfd5bfd6bfd7bfd8bfd9bfdabfdbbfdcbfddbfdebfdfbfe0bfe1bfe2bfe3bfe4bfe5bfe6bfe7bfe8bfe9bfeabfebbfecbfedbfeebfefbff0bff1bff2bff3bff4bff5bff6bff7bff8bff9bffabffbbffcbffdbffebfffbf00c001c002c003c004c005c006c007c008c009c00ac00bc00cc00dc00ec00fc010c011c012c013c014c015c016c017c018c019c01ac01bc01cc01dc01ec01fc020c021c022c023c024c025c026c027c028c029c02ac02bc02cc02dc02ec02fc030c031c032c033c034c035c036c037c038c039c03ac03bc03cc03dc03ec03fc040c041c042c043c044c045c046c047c048c049c04ac04bc04cc04dc04ec04fc050c051c052c053c054c055c056c057c058c059c05ac05bc05cc05dc05ec05fc060c061c062c063c064c065c066c067c068c069c06ac06bc06cc06dc06ec06fc070c071c072c073c074c075c076c077c078c079c07ac07bc07cc07dc07ec07fc080c081c082c083c084c085c086c087c088c089c08ac08bc08cc08dc08ec08fc090c091c092c093c094c095c096c097c098c099c09ac09bc09cc09dc09ec09fc0a0c0a1c0a2c0a3c0a4c0a5c0a6c0a7c0a8c0a9c0aac0abc0acc0adc0aec0afc0b0c0b1c0b2c0b3c0b4c0b5c0b6c0b7c0b8c0b9c0bac0bbc0bcc0bdc0bec0bfc0c0c0c1c0c2c0c3c0c4c0c5c0c6c0c7c0c8c0c9c0cac0cbc0ccc0cdc0cec0cfc0d0c0d1c0d2c0d3c0d4c0d5c0d6c0d7c0d8c0d9c0dac0dbc0dcc0ddc0dec0dfc0e0c0e1c0e2c0e3c0e4c0e5c0e6c0e7c0e8c0e9c0eac0ebc0ecc0edc0eec0efc0f0c0f1c0f2c0f3c0f4c0f5c0f6c0f7c0f8c0f9c0fac0fbc0fcc0fdc0fec0ffc000c101c102c103c104c105c106c107c108c109c10ac10bc10cc10dc10ec10fc110c111c112c113c114c115c116c117c118c119c11ac11bc11cc11dc11ec11fc120c121c122c123c124c125c126c127c128c129c12ac12bc12cc12dc12ec12fc130c131c132c133c134c135c136c137c138c139c13ac13bc13cc13dc13ec13fc140c141c142c143c144c145c146c147c148c149c14ac14bc14cc14dc14ec14fc150c151c152c153c154c155c156c157c158c159c15ac15bc15cc15dc15ec15fc160c161c162c163c164c165c166c167c168c169c16ac16bc16cc16dc16ec16fc170c171c172c173c174c175c176c177c178c179c17ac17bc17cc17dc17ec17fc180c181c182c183c184c185c186c187c188c189c18ac18bc18cc18dc18ec18fc190c191c192c193c194c195c196c197c198c199c19ac19bc19cc19dc19ec19fc1a0c1a1c1a2c1a3c1a4c1a5c1a6c1a7c1a8c1a9c1aac1abc1acc1adc1aec1afc1b0c1b1c1b2c1b3c1b4c1b5c1b6c1b7c1b8c1b9c1bac1bbc1bcc1bdc1bec1bfc1c0c1c1c1c2c1c3c1c4c1c5c1c6c1c7c1c8c1c9c1cac1cbc1ccc1cdc1cec1cfc1d0c1d1c1d2c1d3c1d4c1d5c1d6c1d7c1d8c1d9c1dac1dbc1dcc1ddc1dec1dfc1e0c1e1c1e2c1e3c1e4c1e5c1e6c1e7c1e8c1e9c1eac1ebc1ecc1edc1eec1efc1f0c1f1c1f2c1f3c1f4c1f5c1f6c1f7c1f8c1f9c1fac1fbc1fcc1fdc1fec1ffc100c201c202c203c204c205c206c207c208c209c20ac20bc20cc20dc20ec20fc210c211c212c213c214c215c216c217c218c219c21ac21bc21cc21dc21ec21fc220c221c222c223c224c225c226c227c228c229c22ac22bc22cc22dc22ec22fc230c231c232c233c234c235c236c237c238c239c23ac23bc23cc23dc23ec23fc240c241c242c243c244c245c246c247c248c249c24ac24bc24cc24dc24ec24fc250c251c252c253c254c255c256c257c258c259c25ac25bc25cc25dc25ec25fc260c261c262c263c264c265c266c267c268c269c26ac26bc26cc26dc26ec26fc270c271c272c273c274c275c276c277c278c279c27ac27bc27cc27dc27ec27fc280c281c282c283c284c285c286c287c288c289c28ac28bc28cc28dc28ec28fc290c291c292c293c294c295c296c297c298c299c29ac29bc29cc29dc29ec29fc2a0c2a1c2a2c2a3c2a4c2a5c2a6c2a7c2a8c2a9c2aac2abc2acc2adc2aec2afc2b0c2b1c2b2c2b3c2b4c2b5c2b6c2b7c2b8c2b9c2bac2bbc2bcc2bdc2bec2bfc2c0c2c1c2c2c2c3c2c4c2c5c2c6c2c7c2c8c2c9c2cac2cbc2ccc2cdc2cec2cfc2d0c2d1c2d2c2d3c2d4c2d5c2d6c2d7c2d8c2d9c2dac2dbc2dcc2ddc2dec2dfc2e0c2e1c2e2c2e3c2e4c2e5c2e6c2e7c2e8c2e9c2eac2ebc2ecc2edc2eec2efc2f0c2f1c2f2c2f3c2f4c2f5c2f6c2f7c2f8c2f9c2fac2fbc2fcc2fdc2fec2ffc200c301c302c303c304c305c306c307c308c309c30ac30bc30cc30dc30ec30fc310c311c312c313c314c315c316c317c318c319c31ac31bc31cc31dc31ec31fc320c321c322c323c324c325c326c327c328c329c32ac32bc32cc32dc32ec32fc330c331c332c333c334c335c336c337c338c339c33ac33bc33cc33dc33ec33fc340c341c342c343c344c345c346c347c348c349c34ac34bc34cc34dc34ec34fc350c351c352c353c354c355c356c357c358c359c35ac35bc35cc35dc35ec35fc360c361c362c363c364c365c366c367c368c369c36ac36bc36cc36dc36ec36fc370c371c372c373c374c375c376c377c378c379c37ac37bc37cc37dc37ec37fc380c381c382c383c384c385c386c387c388c389c38ac38bc38cc38dc38ec38fc390c391c392c393c394c395c396c397c398c399c39ac39bc39cc39dc39ec39fc3a0c3a1c3a2c3a3c3a4c3a5c3a6c3a7c3a8c3a9c3aac3abc3acc3adc3aec3afc3b0c3b1c3b2c3b3c3b4c3b5c3b6c3b7c3b8c3b9c3bac3bbc3bcc3bdc3bec3bfc3c0c3c1c3c2c3c3c3c4c3c5c3c6c3c7c3c8c3c9c3cac3cbc3ccc3cdc3cec3cfc3d0c3d1c3d2c3d3c3d4c3d5c3d6c3d7c3d8c3d9c3dac3dbc3dcc3ddc3dec3dfc3e0c3e1c3e2c3e3c3e4c3e5c3e6c3e7c3e8c3e9c3eac3ebc3ecc3edc3eec3efc3f0c3f1c3f2c3f3c3f4c3f5c3f6c3f7c3f8c3f9c3fac3fbc3fcc3fdc3fec3ffc300c401c402c403c404c405c406c407c408c409c40ac40bc40cc40dc40ec40fc410c411c412c413c414c415c416c417c418c419c41ac41bc41cc41dc41ec41fc420c421c422c423c424c425c426c427c428c429c42ac42bc42cc42dc42ec42fc430c431c432c433c434c435c436c437c438c439c43ac43bc43cc43dc43ec43fc440c441c442c443c444c445c446c447c448c449c44ac44bc44cc44dc44ec44fc450c451c452c453c454c455c456c457c458c459c45ac45bc45cc45dc45ec45fc460c461c462c463c464c465c466c467c468c469c46ac46bc46cc46dc46ec46fc470c471c472c473c474c475c476c477c478c479c47ac47bc47cc47dc47ec47fc480c481c482c483c484c485c486c487c488c489c48ac48bc48cc48dc48ec48fc490c491c492c493c494c495c496c497c498c499c49ac49bc49cc49dc49ec49fc4a0c4a1c4a2c4a3c4a4c4a5c4a6c4a7c4a8c4a9c4aac4abc4acc4adc4aec4afc4b0c4b1c4b2c4b3c4b4c4b5c4b6c4b7c4b8c4b9c4bac4bbc4bcc4bdc4bec4bfc4c0c4c1c4c2c4c3c4c4c4c5c4c6c4c7c4c8c4c9c4cac4cbc4ccc4cdc4cec4cfc4d0c4d1c4d2c4d3c4d4c4d5c4d6c4d7c4d8c4d9c4dac4dbc4dcc4ddc4dec4dfc4e0c4e1c4e2c4e3c4e4c4e5c4e6c4e7c4e8c4e9c4eac4ebc4ecc4edc4eec4efc4f0c4f1c4f2c4f3c4f4c4f5c4f6c4f7c4f8c4f9c4fac4fbc4fcc4fdc4fec4ffc400c501c502c503c504c505c506c507c508c509c50ac50bc50cc50dc50ec50fc510c511c512c513c514c515c516c517c518c519c51ac51bc51cc51dc51ec51fc520c521c522c523c524c525c526c527c528c529c52ac52bc52cc52dc52ec52fc530c531c532c533c534c535c536c537c538c539c53ac53bc53cc53dc53ec53fc540c541c542c543c544c545c546c547c548c549c54ac54bc54cc54dc54ec54fc550c551c552c553c554c555c556c557c558c559c55ac55bc55cc55dc55ec55fc560c561c562c563c564c565c566c567c568c569c56ac56bc56cc56dc56ec56fc570c571c572c573c574c575c576c577c578c579c57ac57bc57cc57dc57ec57fc580c581c582c583c584c585c586c587c588c589c58ac58bc58cc58dc58ec58fc590c591c592c593c594c595c596c597c598c599c59ac59bc59cc59dc59ec59fc5a0c5a1c5a2c5a3c5a4c5a5c5a6c5a7c5a8c5a9c5aac5abc5acc5adc5aec5afc5b0c5b1c5b2c5b3c5b4c5b5c5b6c5b7c5b8c5b9c5bac5bbc5bcc5bdc5bec5bfc5c0c5c1c5c2c5c3c5c4c5c5c5c6c5c7c5c8c5c9c5cac5cbc5ccc5cdc5cec5cfc5d0c5d1c5d2c5d3c5d4c5d5c5d6c5d7c5d8c5d9c5dac5dbc5dcc5ddc5dec5dfc5e0c5e1c5e2c5e3c5e4c5e5c5e6c5e7c5e8c5e9c5eac5ebc5ecc5edc5eec5efc5f0c5f1c5f2c5f3c5f4c5f5c5f6c5f7c5f8c5f9c5fac5fbc5fcc5fdc5fec5ffc500c601c602c603c604c605c606c607c608c609c60ac60bc60cc60dc60ec60fc610c611c612c613c614c615c616c617c618c619c61ac61bc61cc61dc61ec61fc620c621c622c623c624c625c626c627c628c629c62ac62bc62cc62dc62ec62fc630c631c632c633c634c635c636c637c638c639c63ac63bc63cc63dc63ec63fc640c641c642c643c644c645c646c647c648c649c64ac64bc64cc64dc64ec64fc650c651c652c653c654c655c656c657c658c659c65ac65bc65cc65dc65ec65fc660c661c662c663c664c665c666c667c668c669c66ac66bc66cc66dc66ec66fc670c671c672c673c674c675c676c677c678c679c67ac67bc67cc67dc67ec67fc680c681c682c683c684c685c686c687c688c689c68ac68bc68cc68dc68ec68fc690c691c692c693c694c695c696c697c698c699c69ac69bc69cc69dc69ec69fc6a0c6a1c6a2c6a3c6a4c6a5c6a6c6a7c6a8c6a9c6aac6abc6acc6adc6aec6afc6b0c6b1c6b2c6b3c6b4c6b5c6b6c6b7c6b8c6b9c6bac6bbc6bcc6bdc6bec6bfc6c0c6c1c6c2c6c3c6c4c6c5c6c6c6c7c6c8c6c9c6cac6cbc6ccc6cdc6cec6cfc6d0c6d1c6d2c6d3c6d4c6d5c6d6c6d7c6d8c6d9c6dac6dbc6dcc6ddc6dec6dfc6e0c6e1c6e2c6e3c6e4c6e5c6e6c6e7c6e8c6e9c6eac6ebc6ecc6edc6eec6efc6f0c6f1c6f2c6f3c6f4c6f5c6f6c6f7c6f8c6f9c6fac6fbc6fcc6fdc6fec6ffc600c701c702c703c704c705c706c707c708c709c70ac70bc70cc70dc70ec70fc710c711c712c713c714c715c716c717c718c719c71ac71bc71cc71dc71ec71fc720c721c722c723c724c725c726c727c728c729c72ac72bc72cc72dc72ec72fc730c731c732c733c734c735c736c737c738c739c73ac73bc73cc73dc73ec73fc740c741c742c743c744c745c746c747c748c749c74ac74bc74cc74dc74ec74fc750c751c752c753c754c755c756c757c758c759c75ac75bc75cc75dc75ec75fc760c761c762c763c764c765c766c767c768c769c76ac76bc76cc76dc76ec76fc770c771c772c773c774c775c776c777c778c779c77ac77bc77cc77dc77ec77fc780c781c782c783c784c785c786c787c788c789c78ac78bc78cc78dc78ec78fc790c791c792c793c794c795c796c797c798c799c79ac79bc79cc79dc79ec79fc7a0c7a1c7a2c7a3c7a4c7a5c7a6c7a7c7a8c7a9c7aac7abc7acc7adc7aec7afc7b0c7b1c7b2c7b3c7b4c7b5c7b6c7b7c7b8c7b9c7bac7bbc7bcc7bdc7bec7bfc7c0c7c1c7c2c7c3c7c4c7c5c7c6c7c7c7c8c7c9c7cac7cbc7ccc7cdc7cec7cfc7d0c7d1c7d2c7d3c7d4c7d5c7d6c7d7c7d8c7d9c7dac7dbc7dcc7ddc7dec7dfc7e0c7e1c7e2c7e3c7e4c7e5c7e6c7e7c7e8c7e9c7eac7ebc7ecc7edc7eec7efc7f0c7f1c7f2c7f3c7f4c7f5c7f6c7f7c7f8c7f9c7fac7fbc7fcc7fdc7fec7ffc700c801c802c803c804c805c806c807c808c809c80ac80bc80cc80dc80ec80fc810c811c812c813c814c815c816c817c818c819c81ac81bc81cc81dc81ec81fc820c821c822c823c824c825c826c827c828c829c82ac82bc82cc82dc82ec82fc830c831c832c833c834c835c836c837c838c839c83ac83bc83cc83dc83ec83fc840c841c842c843c844c845c846c847c848c849c84ac84bc84cc84dc84ec84fc850c851c852c853c854c855c856c857c858c859c85ac85bc85cc85dc85ec85fc860c861c862c863c864c865c866c867c868c869c86ac86bc86cc86dc86ec86fc870c871c872c873c874c875c876c877c878c879c87ac87bc87cc87dc87ec87fc880c881c882c883c884c885c886c887c888c889c88ac88bc88cc88dc88ec88fc890c891c892c893c894c895c896c897c898c899c89ac89bc89cc89dc89ec89fc8a0c8a1c8a2c8a3c8a4c8a5c8a6c8a7c8a8c8a9c8aac8abc8acc8adc8aec8afc8b0c8b1c8b2c8b3c8b4c8b5c8b6c8b7c8b8c8b9c8bac8bbc8bcc8bdc8bec8bfc8c0c8c1c8c2c8c3c8c4c8c5c8c6c8c7c8c8c8c9c8cac8cbc8ccc8cdc8cec8cfc8d0c8d1c8d2c8d3c8d4c8d5c8d6c8d7c8d8c8d9c8dac8dbc8dcc8ddc8dec8dfc8e0c8e1c8e2c8e3c8e4c8e5c8e6c8e7c8e8c8e9c8eac8ebc8ecc8edc8eec8efc8f0c8f1c8f2c8f3c8f4c8f5c8f6c8f7c8f8c8f9c8fac8fbc8fcc8fdc8fec8ffc800c901c902c903c904c905c906c907c908c909c90ac90bc90cc90dc90ec90fc910c911c912c913c914c915c916c917c918c919c91ac91bc91cc91dc91ec91fc920c921c922c923c924c925c926c927c928c929c92ac92bc92cc92dc92ec92fc930c931c932c933c934c935c936c937c938c939c93ac93bc93cc93dc93ec93fc940c941c942c943c944c945c946c947c948c949c94ac94bc94cc94dc94ec94fc950c951c952c953c954c955c956c957c958c959c95ac95bc95cc95dc95ec95fc960c961c962c963c964c965c966c967c968c969c96ac96bc96cc96dc96ec96fc970c971c972c973c974c975c976c977c978c979c97ac97bc97cc97dc97ec97fc980c981c982c983c984c985c986c987c988c989c98ac98bc98cc98dc98ec98fc990c991c992c993c994c995c996c997c998c999c99ac99bc99cc99dc99ec99fc9a0c9a1c9a2c9a3c9a4c9a5c9a6c9a7c9a8c9a9c9aac9abc9acc9adc9aec9afc9b0c9b1c9b2c9b3c9b4c9b5c9b6c9b7c9b8c9b9c9bac9bbc9bcc9bdc9bec9bfc9c0c9c1c9c2c9c3c9c4c9c5c9c6c9c7c9c8c9c9c9cac9cbc9ccc9cdc9cec9cfc9d0c9d1c9d2c9d3c9d4c9d5c9d6c9d7c9d8c9d9c9dac9dbc9dcc9ddc9dec9dfc9e0c9e1c9e2c9e3c9e4c9e5c9e6c9e7c9e8c9e9c9eac9ebc9ecc9edc9eec9efc9f0c9f1c9f2c9f3c9f4c9f5c9f6c9f7c9f8c9f9c9fac9fbc9fcc9fdc9fec9ffc900ca01ca02ca03ca04ca05ca06ca07ca08ca09ca0aca0bca0cca0dca0eca0fca10ca11ca12ca13ca14ca15ca16ca17ca18ca19ca1aca1bca1cca1dca1eca1fca20ca21ca22ca23ca24ca25ca26ca27ca28ca29ca2aca2bca2cca2dca2eca2fca30ca31ca32ca33ca34ca35ca36ca37ca38ca39ca3aca3bca3cca3dca3eca3fca40ca41ca42ca43ca44ca45ca46ca47ca48ca49ca4aca4bca4cca4dca4eca4fca50ca51ca52ca53ca54ca55ca56ca57ca58ca59ca5aca5bca5cca5dca5eca5fca60ca61ca62ca63ca64ca65ca66ca67ca68ca69ca6aca6bca6cca6dca6eca6fca70ca71ca72ca73ca74ca75ca76ca77ca78ca79ca7aca7bca7cca7dca7eca7fca80ca81ca82ca83ca84ca85ca86ca87ca88ca89ca8aca8bca8cca8dca8eca8fca90ca91ca92ca93ca94ca95ca96ca97ca98ca99ca9aca9bca9cca9dca9eca9fcaa0caa1caa2caa3caa4caa5caa6caa7caa8caa9caaacaabcaaccaadcaaecaafcab0cab1cab2cab3cab4cab5cab6cab7cab8cab9cabacabbcabccabdcabecabfcac0cac1cac2cac3cac4cac5cac6cac7cac8cac9cacacacbcacccacdcacecacfcad0cad1cad2cad3cad4cad5cad6cad7cad8cad9cadacadbcadccaddcadecadfcae0cae1cae2cae3cae4cae5cae6cae7cae8cae9caeacaebcaeccaedcaeecaefcaf0caf1caf2caf3caf4caf5caf6caf7caf8caf9cafacafbcafccafdcafecaffca00cb01cb02cb03cb04cb05cb06cb07cb08cb09cb0acb0bcb0ccb0dcb0ecb0fcb10cb11cb12cb13cb14cb15cb16cb17cb18cb19cb1acb1bcb1ccb1dcb1ecb1fcb20cb21cb22cb23cb24cb25cb26cb27cb28cb29cb2acb2bcb2ccb2dcb2ecb2fcb30cb31cb32cb33cb34cb35cb36cb37cb38cb39cb3acb3bcb3ccb3dcb3ecb3fcb40cb41cb42cb43cb44cb45cb46cb47cb48cb49cb4acb4bcb4ccb4dcb4ecb4fcb50cb51cb52cb53cb54cb55cb56cb57cb58cb59cb5acb5bcb5ccb5dcb5ecb5fcb60cb61cb62cb63cb64cb65cb66cb67cb68cb69cb6acb6bcb6ccb6dcb6ecb6fcb70cb71cb72cb73cb74cb75cb76cb77cb78cb79cb7acb7bcb7ccb7dcb7ecb7fcb80cb81cb82cb83cb84cb85cb86cb87cb88cb89cb8acb8bcb8ccb8dcb8ecb8fcb90cb91cb92cb93cb94cb95cb96cb97cb98cb99cb9acb9bcb9ccb9dcb9ecb9fcba0cba1cba2cba3cba4cba5cba6cba7cba8cba9cbaacbabcbaccbadcbaecbafcbb0cbb1cbb2cbb3cbb4cbb5cbb6cbb7cbb8cbb9cbbacbbbcbbccbbdcbbecbbfcbc0cbc1cbc2cbc3cbc4cbc5cbc6cbc7cbc8cbc9cbcacbcbcbcccbcdcbcecbcfcbd0cbd1cbd2cbd3cbd4cbd5cbd6cbd7cbd8cbd9cbdacbdbcbdccbddcbdecbdfcbe0cbe1cbe2cbe3cbe4cbe5cbe6cbe7cbe8cbe9cbeacbebcbeccbedcbeecbefcbf0cbf1cbf2cbf3cbf4cbf5cbf6cbf7cbf8cbf9cbfacbfbcbfccbfdcbfecbffcb00cc01cc02cc03cc04cc05cc06cc07cc08cc09cc0acc0bcc0ccc0dcc0ecc0fcc10cc11cc12cc13cc14cc15cc16cc17cc18cc19cc1acc1bcc1ccc1dcc1ecc1fcc20cc21cc22cc23cc24cc25cc26cc27cc28cc29cc2acc2bcc2ccc2dcc2ecc2fcc30cc31cc32cc33cc34cc35cc36cc37cc38cc39cc3acc3bcc3ccc3dcc3ecc3fcc40cc41cc42cc43cc44cc45cc46cc47cc48cc49cc4acc4bcc4ccc4dcc4ecc4fcc50cc51cc52cc53cc54cc55cc56cc57cc58cc59cc5acc5bcc5ccc5dcc5ecc5fcc60cc61cc62cc63cc64cc65cc66cc67cc68cc69cc6acc6bcc6ccc6dcc6ecc6fcc70cc71cc72cc73cc74cc75cc76cc77cc78cc79cc7acc7bcc7ccc7dcc7ecc7fcc80cc81cc82cc83cc84cc85cc86cc87cc88cc89cc8acc8bcc8ccc8dcc8ecc8fcc90cc91cc92cc93cc94cc95cc96cc97cc98cc99cc9acc9bcc9ccc9dcc9ecc9fcca0cca1cca2cca3cca4cca5cca6cca7cca8cca9ccaaccabccacccadccaeccafccb0ccb1ccb2ccb3ccb4ccb5ccb6ccb7ccb8ccb9ccbaccbbccbcccbdccbeccbfccc0ccc1ccc2ccc3ccc4ccc5ccc6ccc7ccc8ccc9cccacccbcccccccdcccecccfccd0ccd1ccd2ccd3ccd4ccd5ccd6ccd7ccd8ccd9ccdaccdbccdcccddccdeccdfcce0cce1cce2cce3cce4cce5cce6cce7cce8cce9cceaccebccecccedcceeccefccf0ccf1ccf2ccf3ccf4ccf5ccf6ccf7ccf8ccf9ccfaccfbccfcccfdccfeccffcc00cd01cd02cd03cd04cd05cd06cd07cd08cd09cd0acd0bcd0ccd0dcd0ecd0fcd10cd11cd12cd13cd14cd15cd16cd17cd18cd19cd1acd1bcd1ccd1dcd1ecd1fcd20cd21cd22cd23cd24cd25cd26cd27cd28cd29cd2acd2bcd2ccd2dcd2ecd2fcd30cd31cd32cd33cd34cd35cd36cd37cd38cd39cd3acd3bcd3ccd3dcd3ecd3fcd40cd41cd42cd43cd44cd45cd46cd47cd48cd49cd4acd4bcd4ccd4dcd4ecd4fcd50cd51cd52cd53cd54cd55cd56cd57cd58cd59cd5acd5bcd5ccd5dcd5ecd5fcd60cd61cd62cd63cd64cd65cd66cd67cd68cd69cd6acd6bcd6ccd6dcd6ecd6fcd70cd71cd72cd73cd74cd75cd76cd77cd78cd79cd7acd7bcd7ccd7dcd7ecd7fcd80cd81cd82cd83cd84cd85cd86cd87cd88cd89cd8acd8bcd8ccd8dcd8ecd8fcd90cd91cd92cd93cd94cd95cd96cd97cd98cd99cd9acd9bcd9ccd9dcd9ecd9fcda0cda1cda2cda3cda4cda5cda6cda7cda8cda9cdaacdabcdaccdadcdaecdafcdb0cdb1cdb2cdb3cdb4cdb5cdb6cdb7cdb8cdb9cdbacdbbcdbccdbdcdbecdbfcdc0cdc1cdc2cdc3cdc4cdc5cdc6cdc7cdc8cdc9cdcacdcbcdcccdcdcdcecdcfcdd0cdd1cdd2cdd3cdd4cdd5cdd6cdd7cdd8cdd9cddacddbcddccdddcddecddfcde0cde1cde2cde3cde4cde5cde6cde7cde8cde9cdeacdebcdeccdedcdeecdefcdf0cdf1cdf2cdf3cdf4cdf5cdf6cdf7cdf8cdf9cdfacdfbcdfccdfdcdfecdffcd00ce01ce02ce03ce04ce05ce06ce07ce08ce09ce0ace0bce0cce0dce0ece0fce10ce11ce12ce13ce14ce15ce16ce17ce18ce19ce1ace1bce1cce1dce1ece1fce20ce21ce22ce23ce24ce25ce26ce27ce28ce29ce2ace2bce2cce2dce2ece2fce30ce31ce32ce33ce34ce35ce36ce37ce38ce39ce3ace3bce3cce3dce3ece3fce40ce41ce42ce43ce44ce45ce46ce47ce48ce49ce4ace4bce4cce4dce4ece4fce50ce51ce52ce53ce54ce55ce56ce57ce58ce59ce5ace5bce5cce5dce5ece5fce60ce61ce62ce63ce64ce65ce66ce67ce68ce69ce6ace6bce6cce6dce6ece6fce70ce71ce72ce73ce74ce75ce76ce77ce78ce79ce7ace7bce7cce7dce7ece7fce80ce81ce82ce83ce84ce85ce86ce87ce88ce89ce8ace8bce8cce8dce8ece8fce90ce91ce92ce93ce94ce95ce96ce97ce98ce99ce9ace9bce9cce9dce9ece9fcea0cea1cea2cea3cea4cea5cea6cea7cea8cea9ceaaceabceacceadceaeceafceb0ceb1ceb2ceb3ceb4ceb5ceb6ceb7ceb8ceb9cebacebbcebccebdcebecebfcec0cec1cec2cec3cec4cec5cec6cec7cec8cec9cecacecbcecccecdcecececfced0ced1ced2ced3ced4ced5ced6ced7ced8ced9cedacedbcedcceddcedecedfcee0cee1cee2cee3cee4cee5cee6cee7cee8cee9ceeaceebceecceedceeeceefcef0cef1cef2cef3cef4cef5cef6cef7cef8cef9cefacefbcefccefdcefeceffce00cf01cf02cf03cf04cf05cf06cf07cf08cf09cf0acf0bcf0ccf0dcf0ecf0fcf10cf11cf12cf13cf14cf15cf16cf17cf18cf19cf1acf1bcf1ccf1dcf1ecf1fcf20cf21cf22cf23cf24cf25cf26cf27cf28cf29cf2acf2bcf2ccf2dcf2ecf2fcf30cf31cf32cf33cf34cf35cf36cf37cf38cf39cf3acf3bcf3ccf3dcf3ecf3fcf40cf41cf42cf43cf44cf45cf46cf47cf48cf49cf4acf4bcf4ccf4dcf4ecf4fcf50cf51cf52cf53cf54cf55cf56cf57cf58cf59cf5acf5bcf5ccf5dcf5ecf5fcf60cf61cf62cf63cf64cf65cf66cf67cf68cf69cf6acf6bcf6ccf6dcf6ecf6fcf70cf71cf72cf73cf74cf75cf76cf77cf78cf79cf7acf7bcf7ccf7dcf7ecf7fcf80cf81cf82cf83cf84cf85cf86cf87cf88cf89cf8acf8bcf8ccf8dcf8ecf8fcf90cf91cf92cf93cf94cf95cf96cf97cf98cf99cf9acf9bcf9ccf9dcf9ecf9fcfa0cfa1cfa2cfa3cfa4cfa5cfa6cfa7cfa8cfa9cfaacfabcfaccfadcfaecfafcfb0cfb1cfb2cfb3cfb4cfb5cfb6cfb7cfb8cfb9cfbacfbbcfbccfbdcfbecfbfcfc0cfc1cfc2cfc3cfc4cfc5cfc6cfc7cfc8cfc9cfcacfcbcfcccfcdcfcecfcfcfd0cfd1cfd2cfd3cfd4cfd5cfd6cfd7cfd8cfd9cfdacfdbcfdccfddcfdecfdfcfe0cfe1cfe2cfe3cfe4cfe5cfe6cfe7cfe8cfe9cfeacfebcfeccfedcfeecfefcff0cff1cff2cff3cff4cff5cff6cff7cff8cff9cffacffbcffccffdcffecfffcf00d001d002d003d004d005d006d007d008d009d00ad00bd00cd00dd00ed00fd010d011d012d013d014d015d016d017d018d019d01ad01bd01cd01dd01ed01fd020d021d022d023d024d025d026d027d028d029d02ad02bd02cd02dd02ed02fd030d031d032d033d034d035d036d037d038d039d03ad03bd03cd03dd03ed03fd040d041d042d043d044d045d046d047d048d049d04ad04bd04cd04dd04ed04fd050d051d052d053d054d055d056d057d058d059d05ad05bd05cd05dd05ed05fd060d061d062d063d064d065d066d067d068d069d06ad06bd06cd06dd06ed06fd070d071d072d073d074d075d076d077d078d079d07ad07bd07cd07dd07ed07fd080d081d082d083d084d085d086d087d088d089d08ad08bd08cd08dd08ed08fd090d091d092d093d094d095d096d097d098d099d09ad09bd09cd09dd09ed09fd0a0d0a1d0a2d0a3d0a4d0a5d0a6d0a7d0a8d0a9d0aad0abd0acd0add0aed0afd0b0d0b1d0b2d0b3d0b4d0b5d0b6d0b7d0b8d0b9d0bad0bbd0bcd0bdd0bed0bfd0c0d0c1d0c2d0c3d0c4d0c5d0c6d0c7d0c8d0c9d0cad0cbd0ccd0cdd0ced0cfd0d0d0d1d0d2d0d3d0d4d0d5d0d6d0d7d0d8d0d9d0dad0dbd0dcd0ddd0ded0dfd0e0d0e1d0e2d0e3d0e4d0e5d0e6d0e7d0e8d0e9d0ead0ebd0ecd0edd0eed0efd0f0d0f1d0f2d0f3d0f4d0f5d0f6d0f7d0f8d0f9d0fad0fbd0fcd0fdd0fed0ffd000d101d102d103d104d105d106d107d108d109d10ad10bd10cd10dd10ed10fd110d111d112d113d114d115d116d117d118d119d11ad11bd11cd11dd11ed11fd120d121d122d123d124d125d126d127d128d129d12ad12bd12cd12dd12ed12fd130d131d132d133d134d135d136d137d138d139d13ad13bd13cd13dd13ed13fd140d141d142d143d144d145d146d147d148d149d14ad14bd14cd14dd14ed14fd150d151d152d153d154d155d156d157d158d159d15ad15bd15cd15dd15ed15fd160d161d162d163d164d165d166d167d168d169d16ad16bd16cd16dd16ed16fd170d171d172d173d174d175d176d177d178d179d17ad17bd17cd17dd17ed17fd180d181d182d183d184d185d186d187d188d189d18ad18bd18cd18dd18ed18fd190d191d192d193d194d195d196d197d198d199d19ad19bd19cd19dd19ed19fd1a0d1a1d1a2d1a3d1a4d1a5d1a6d1a7d1a8d1a9d1aad1abd1acd1add1aed1afd1b0d1b1d1b2d1b3d1b4d1b5d1b6d1b7d1b8d1b9d1bad1bbd1bcd1bdd1bed1bfd1c0d1c1d1c2d1c3d1c4d1c5d1c6d1c7d1c8d1c9d1cad1cbd1ccd1cdd1ced1cfd1d0d1d1d1d2d1d3d1d4d1d5d1d6d1d7d1d8d1d9d1dad1dbd1dcd1ddd1ded1dfd1e0d1e1d1e2d1e3d1e4d1e5d1e6d1e7d1e8d1e9d1ead1ebd1ecd1edd1eed1efd1f0d1f1d1f2d1f3d1f4d1f5d1f6d1f7d1f8d1f9d1fad1fbd1fcd1fdd1fed1ffd100d201d202d203d204d205d206d207d208d209d20ad20bd20cd20dd20ed20fd210d211d212d213d214d215d216d217d218d219d21ad21bd21cd21dd21ed21fd220d221d222d223d224d225d226d227d228d229d22ad22bd22cd22dd22ed22fd230d231d232d233d234d235d236d237d238d239d23ad23bd23cd23dd23ed23fd240d241d242d243d244d245d246d247d248d249d24ad24bd24cd24dd24ed24fd250d251d252d253d254d255d256d257d258d259d25ad25bd25cd25dd25ed25fd260d261d262d263d264d265d266d267d268d269d26ad26bd26cd26dd26ed26fd270d271d272d273d274d275d276d277d278d279d27ad27bd27cd27dd27ed27fd280d281d282d283d284d285d286d287d288d289d28ad28bd28cd28dd28ed28fd290d291d292d293d294d295d296d297d298d299d29ad29bd29cd29dd29ed29fd2a0d2a1d2a2d2a3d2a4d2a5d2a6d2a7d2a8d2a9d2aad2abd2acd2add2aed2afd2b0d2b1d2b2d2b3d2b4d2b5d2b6d2b7d2b8d2b9d2bad2bbd2bcd2bdd2bed2bfd2c0d2c1d2c2d2c3d2c4d2c5d2c6d2c7d2c8d2c9d2cad2cbd2ccd2cdd2ced2cfd2d0d2d1d2d2d2d3d2d4d2d5d2d6d2d7d2d8d2d9d2dad2dbd2dcd2ddd2ded2dfd2e0d2e1d2e2d2e3d2e4d2e5d2e6d2e7d2e8d2e9d2ead2ebd2ecd2edd2eed2efd2f0d2f1d2f2d2f3d2f4d2f5d2f6d2f7d2f8d2f9d2fad2fbd2fcd2fdd2fed2ffd200d301d302d303d304d305d306d307d308d309d30ad30bd30cd30dd30ed30fd310d311d312d313d314d315d316d317d318d319d31ad31bd31cd31dd31ed31fd320d321d322d323d324d325d326d327d328d329d32ad32bd32cd32dd32ed32fd330d331d332d333d334d335d336d337d338d339d33ad33bd33cd33dd33ed33fd340d341d342d343d344d345d346d347d348d349d34ad34bd34cd34dd34ed34fd350d351d352d353d354d355d356d357d358d359d35ad35bd35cd35dd35ed35fd360d361d362d363d364d365d366d367d368d369d36ad36bd36cd36dd36ed36fd370d371d372d373d374d375d376d377d378d379d37ad37bd37cd37dd37ed37fd380d381d382d383d384d385d386d387d388d389d38ad38bd38cd38dd38ed38fd390d391d392d393d394d395d396d397d398d399d39ad39bd39cd39dd39ed39fd3a0d3a1d3a2d3a3d3a4d3a5d3a6d3a7d3a8d3a9d3aad3abd3acd3add3aed3afd3b0d3b1d3b2d3b3d3b4d3b5d3b6d3b7d3b8d3b9d3bad3bbd3bcd3bdd3bed3bfd3c0d3c1d3c2d3c3d3c4d3c5d3c6d3c7d3c8d3c9d3cad3cbd3ccd3cdd3ced3cfd3d0d3d1d3d2d3d3d3d4d3d5d3d6d3d7d3d8d3d9d3dad3dbd3dcd3ddd3ded3dfd3e0d3e1d3e2d3e3d3e4d3e5d3e6d3e7d3e8d3e9d3ead3ebd3ecd3edd3eed3efd3f0d3f1d3f2d3f3d3f4d3f5d3f6d3f7d3f8d3f9d3fad3fbd3fcd3fdd3fed3ffd300d401d402d403d404d405d406d407d408d409d40ad40bd40cd40dd40ed40fd410d411d412d413d414d415d416d417d418d419d41ad41bd41cd41dd41ed41fd420d421d422d423d424d425d426d427d428d429d42ad42bd42cd42dd42ed42fd430d431d432d433d434d435d436d437d438d439d43ad43bd43cd43dd43ed43fd440d441d442d443d444d445d446d447d448d449d44ad44bd44cd44dd44ed44fd450d451d452d453d454d455d456d457d458d459d45ad45bd45cd45dd45ed45fd460d461d462d463d464d465d466d467d468d469d46ad46bd46cd46dd46ed46fd470d471d472d473d474d475d476d477d478d479d47ad47bd47cd47dd47ed47fd480d481d482d483d484d485d486d487d488d489d48ad48bd48cd48dd48ed48fd490d491d492d493d494d495d496d497d498d499d49ad49bd49cd49dd49ed49fd4a0d4a1d4a2d4a3d4a4d4a5d4a6d4a7d4a8d4a9d4aad4abd4acd4add4aed4afd4b0d4b1d4b2d4b3d4b4d4b5d4b6d4b7d4b8d4b9d4bad4bbd4bcd4bdd4bed4bfd4c0d4c1d4c2d4c3d4c4d4c5d4c6d4c7d4c8d4c9d4cad4cbd4ccd4cdd4ced4cfd4d0d4d1d4d2d4d3d4d4d4d5d4d6d4d7d4d8d4d9d4dad4dbd4dcd4ddd4ded4dfd4e0d4e1d4e2d4e3d4e4d4e5d4e6d4e7d4e8d4e9d4ead4ebd4ecd4edd4eed4efd4f0d4f1d4f2d4f3d4f4d4f5d4f6d4f7d4f8d4f9d4fad4fbd4fcd4fdd4fed4ffd400d501d502d503d504d505d506d507d508d509d50ad50bd50cd50dd50ed50fd510d511d512d513d514d515d516d517d518d519d51ad51bd51cd51dd51ed51fd520d521d522d523d524d525d526d527d528d529d52ad52bd52cd52dd52ed52fd530d531d532d533d534d535d536d537d538d539d53ad53bd53cd53dd53ed53fd540d541d542d543d544d545d546d547d548d549d54ad54bd54cd54dd54ed54fd550d551d552d553d554d555d556d557d558d559d55ad55bd55cd55dd55ed55fd560d561d562d563d564d565d566d567d568d569d56ad56bd56cd56dd56ed56fd570d571d572d573d574d575d576d577d578d579d57ad57bd57cd57dd57ed57fd580d581d582d583d584d585d586d587d588d589d58ad58bd58cd58dd58ed58fd590d591d592d593d594d595d596d597d598d599d59ad59bd59cd59dd59ed59fd5a0d5a1d5a2d5a3d5a4d5a5d5a6d5a7d5a8d5a9d5aad5abd5acd5add5aed5afd5b0d5b1d5b2d5b3d5b4d5b5d5b6d5b7d5b8d5b9d5bad5bbd5bcd5bdd5bed5bfd5c0d5c1d5c2d5c3d5c4d5c5d5c6d5c7d5c8d5c9d5cad5cbd5ccd5cdd5ced5cfd5d0d5d1d5d2d5d3d5d4d5d5d5d6d5d7d5d8d5d9d5dad5dbd5dcd5ddd5ded5dfd5e0d5e1d5e2d5e3d5e4d5e5d5e6d5e7d5e8d5e9d5ead5ebd5ecd5edd5eed5efd5f0d5f1d5f2d5f3d5f4d5f5d5f6d5f7d5f8d5f9d5fad5fbd5fcd5fdd5fed5ffd500d601d602d603d604d605d606d607d608d609d60ad60bd60cd60dd60ed60fd610d611d612d613d614d615d616d617d618d619d61ad61bd61cd61dd61ed61fd620d621d622d623d624d625d626d627d628d629d62ad62bd62cd62dd62ed62fd630d631d632d633d634d635d636d637d638d639d63ad63bd63cd63dd63ed63fd640d641d642d643d644d645d646d647d648d649d64ad64bd64cd64dd64ed64fd650d651d652d653d654d655d656d657d658d659d65ad65bd65cd65dd65ed65fd660d661d662d663d664d665d666d667d668d669d66ad66bd66cd66dd66ed66fd670d671d672d673d674d675d676d677d678d679d67ad67bd67cd67dd67ed67fd680d681d682d683d684d685d686d687d688d689d68ad68bd68cd68dd68ed68fd690d691d692d693d694d695d696d697d698d699d69ad69bd69cd69dd69ed69fd6a0d6a1d6a2d6a3d6a4d6a5d6a6d6a7d6a8d6a9d6aad6abd6acd6add6aed6afd6b0d6b1d6b2d6b3d6b4d6b5d6b6d6b7d6b8d6b9d6bad6bbd6bcd6bdd6bed6bfd6c0d6c1d6c2d6c3d6c4d6c5d6c6d6c7d6c8d6c9d6cad6cbd6ccd6cdd6ced6cfd6d0d6d1d6d2d6d3d6d4d6d5d6d6d6d7d6d8d6d9d6dad6dbd6dcd6ddd6ded6dfd6e0d6e1d6e2d6e3d6e4d6e5d6e6d6e7d6e8d6e9d6ead6ebd6ecd6edd6eed6efd6f0d6f1d6f2d6f3d6f4d6f5d6f6d6f7d6f8d6f9d6fad6fbd6fcd6fdd6fed6ffd600d701d702d703d704d705d706d707d708d709d70ad70bd70cd70dd70ed70fd710d711d712d713d714d715d716d717d718d719d71ad71bd71cd71dd71ed71fd720d721d722d723d724d725d726d727d728d729d72ad72bd72cd72dd72ed72fd730d731d732d733d734d735d736d737d738d739d73ad73bd73cd73dd73ed73fd740d741d742d743d744d745d746d747d748d749d74ad74bd74cd74dd74ed74fd750d751d752d753d754d755d756d757d758d759d75ad75bd75cd75dd75ed75fd760d761d762d763d764d765d766d767d768d769d76ad76bd76cd76dd76ed76fd770d771d772d773d774d775d776d777d778d779d77ad77bd77cd77dd77ed77fd780d781d782d783d784d785d786d787d788d789d78ad78bd78cd78dd78ed78fd790d791d792d793d794d795d796d797d798d799d79ad79bd79cd79dd79ed79fd7a0d7a1d7a2d7a3d7a4d7a5d7a6d7a7d7a8d7a9d7aad7abd7acd7add7aed7afd7b0d7b1d7b2d7b3d7b4d7b5d7b6d7b7d7b8d7b9d7bad7bbd7bcd7bdd7bed7bfd7c0d7c1d7c2d7c3d7c4d7c5d7c6d7c7d7c8d7c9d7cad7cbd7ccd7cdd7ced7cfd7d0d7d1d7d2d7d3d7d4d7d5d7d6d7d7d7d8d7d9d7dad7dbd7dcd7ddd7ded7dfd7e0d7e1d7e2d7e3d7e4d7e5d7e6d7e7d7e8d7e9d7ead7ebd7ecd7edd7eed7efd7f0d7f1d7f2d7f3d7f4d7f5d7f6d7f7d7f8d7f9d7fad7fbd7fcd7fdd7fed7ffd700d801d802d803d804d805d806d807d808d809d80ad80bd80cd80dd80ed80fd810d811d812d813d814d815d816d817d818d819d81ad81bd81cd81dd81ed81fd820d821d822d823d824d825d826d827d828d829d82ad82bd82cd82dd82ed82fd830d831d832d833d834d835d836d837d838d839d83ad83bd83cd83dd83ed83fd840d841d842d843d844d845d846d847d848d849d84ad84bd84cd84dd84ed84fd850d851d852d853d854d855d856d857d858d859d85ad85bd85cd85dd85ed85fd860d861d862d863d864d865d866d867d868d869d86ad86bd86cd86dd86ed86fd870d871d872d873d874d875d876d877d878d879d87ad87bd87cd87dd87ed87fd880d881d882d883d884d885d886d887d888d889d88ad88bd88cd88dd88ed88fd890d891d892d893d894d895d896d897d898d899d89ad89bd89cd89dd89ed89fd8a0d8a1d8a2d8a3d8a4d8a5d8a6d8a7d8a8d8a9d8aad8abd8acd8add8aed8afd8b0d8b1d8b2d8b3d8b4d8b5d8b6d8b7d8b8d8b9d8bad8bbd8bcd8bdd8bed8bfd8c0d8c1d8c2d8c3d8c4d8c5d8c6d8c7d8c8d8c9d8cad8cbd8ccd8cdd8ced8cfd8d0d8d1d8d2d8d3d8d4d8d5d8d6d8d7d8d8d8d9d8dad8dbd8dcd8ddd8ded8dfd8e0d8e1d8e2d8e3d8e4d8e5d8e6d8e7d8e8d8e9d8ead8ebd8ecd8edd8eed8efd8f0d8f1d8f2d8f3d8f4d8f5d8f6d8f7d8f8d8f9d8fad8fbd8fcd8fdd8fed8ffd800d901d902d903d904d905d906d907d908d909d90ad90bd90cd90dd90ed90fd910d911d912d913d914d915d916d917d918d919d91ad91bd91cd91dd91ed91fd920d921d922d923d924d925d926d927d928d929d92ad92bd92cd92dd92ed92fd930d931d932d933d934d935d936d937d938d939d93ad93bd93cd93dd93ed93fd940d941d942d943d944d945d946d947d948d949d94ad94bd94cd94dd94ed94fd950d951d952d953d954d955d956d957d958d959d95ad95bd95cd95dd95ed95fd960d961d962d963d964d965d966d967d968d969d96ad96bd96cd96dd96ed96fd970d971d972d973d974d975d976d977d978d979d97ad97bd97cd97dd97ed97fd980d981d982d983d984d985d986d987d988d989d98ad98bd98cd98dd98ed98fd990d991d992d993d994d995d996d997d998d999d99ad99bd99cd99dd99ed99fd9a0d9a1d9a2d9a3d9a4d9a5d9a6d9a7d9a8d9a9d9aad9abd9acd9add9aed9afd9b0d9b1d9b2d9b3d9b4d9b5d9b6d9b7d9b8d9b9d9bad9bbd9bcd9bdd9bed9bfd9c0d9c1d9c2d9c3d9c4d9c5d9c6d9c7d9c8d9c9d9cad9cbd9ccd9cdd9ced9cfd9d0d9d1d9d2d9d3d9d4d9d5d9d6d9d7d9d8d9d9d9dad9dbd9dcd9ddd9ded9dfd9e0d9e1d9e2d9e3d9e4d9e5d9e6d9e7d9e8d9e9d9ead9ebd9ecd9edd9eed9efd9f0d9f1d9f2d9f3d9f4d9f5d9f6d9f7d9f8d9f9d9fad9fbd9fcd9fdd9fed9ffd900da01da02da03da04da05da06da07da08da09da0ada0bda0cda0dda0eda0fda10da11da12da13da14da15da16da17da18da19da1ada1bda1cda1dda1eda1fda20da21da22da23da24da25da26da27da28da29da2ada2bda2cda2dda2eda2fda30da31da32da33da34da35da36da37da38da39da3ada3bda3cda3dda3eda3fda40da41da42da43da44da45da46da47da48da49da4ada4bda4cda4dda4eda4fda50da51da52da53da54da55da56da57da58da59da5ada5bda5cda5dda5eda5fda60da61da62da63da64da65da66da67da68da69da6ada6bda6cda6dda6eda6fda70da71da72da73da74da75da76da77da78da79da7ada7bda7cda7dda7eda7fda80da81da82da83da84da85da86da87da88da89da8ada8bda8cda8dda8eda8fda90da91da92da93da94da95da96da97da98da99da9ada9bda9cda9dda9eda9fdaa0daa1daa2daa3daa4daa5daa6daa7daa8daa9daaadaabdaacdaaddaaedaafdab0dab1dab2dab3dab4dab5dab6dab7dab8dab9dabadabbdabcdabddabedabfdac0dac1dac2dac3dac4dac5dac6dac7dac8dac9dacadacbdaccdacddacedacfdad0dad1dad2dad3dad4dad5dad6dad7dad8dad9dadadadbdadcdadddadedadfdae0dae1dae2dae3dae4dae5dae6dae7dae8dae9daeadaebdaecdaeddaeedaefdaf0daf1daf2daf3daf4daf5daf6daf7daf8daf9dafadafbdafcdafddafedaffda00db01db02db03db04db05db06db07db08db09db0adb0bdb0cdb0ddb0edb0fdb10db11db12db13db14db15db16db17db18db19db1adb1bdb1cdb1ddb1edb1fdb20db21db22db23db24db25db26db27db28db29db2adb2bdb2cdb2ddb2edb2fdb30db31db32db33db34db35db36db37db38db39db3adb3bdb3cdb3ddb3edb3fdb40db41db42db43db44db45db46db47db48db49db4adb4bdb4cdb4ddb4edb4fdb50db51db52db53db54db55db56db57db58db59db5adb5bdb5cdb5ddb5edb5fdb60db61db62db63db64db65db66db67db68db69db6adb6bdb6cdb6ddb6edb6fdb70db71db72db73db74db75db76db77db78db79db7adb7bdb7cdb7ddb7edb7fdb80db81db82db83db84db85db86db87db88db89db8adb8bdb8cdb8ddb8edb8fdb90db91db92db93db94db95db96db97db98db99db9adb9bdb9cdb9ddb9edb9fdba0dba1dba2dba3dba4dba5dba6dba7dba8dba9dbaadbabdbacdbaddbaedbafdbb0dbb1dbb2dbb3dbb4dbb5dbb6dbb7dbb8dbb9dbbadbbbdbbcdbbddbbedbbfdbc0dbc1dbc2dbc3dbc4dbc5dbc6dbc7dbc8dbc9dbcadbcbdbccdbcddbcedbcfdbd0dbd1dbd2dbd3dbd4dbd5dbd6dbd7dbd8dbd9dbdadbdbdbdcdbdddbdedbdfdbe0dbe1dbe2dbe3dbe4dbe5dbe6dbe7dbe8dbe9dbeadbebdbecdbeddbeedbefdbf0dbf1dbf2dbf3dbf4dbf5dbf6dbf7dbf8dbf9dbfadbfbdbfcdbfddbfedbffdb00dc01dc02dc03dc04dc05dc06dc07dc08dc09dc0adc0bdc0cdc0ddc0edc0fdc10dc11dc12dc13dc14dc15dc16dc17dc18dc19dc1adc1bdc1cdc1ddc1edc1fdc20dc21dc22dc23dc24dc25dc26dc27dc28dc29dc2adc2bdc2cdc2ddc2edc2fdc30dc31dc32dc33dc34dc35dc36dc37dc38dc39dc3adc3bdc3cdc3ddc3edc3fdc40dc41dc42dc43dc44dc45dc46dc47dc48dc49dc4adc4bdc4cdc4ddc4edc4fdc50dc51dc52dc53dc54dc55dc56dc57dc58dc59dc5adc5bdc5cdc5ddc5edc5fdc60dc61dc62dc63dc64dc65dc66dc67dc68dc69dc6adc6bdc6cdc6ddc6edc6fdc70dc71dc72dc73dc74dc75dc76dc77dc78dc79dc7adc7bdc7cdc7ddc7edc7fdc80dc81dc82dc83dc84dc85dc86dc87dc88dc89dc8adc8bdc8cdc8ddc8edc8fdc90dc91dc92dc93dc94dc95dc96dc97dc98dc99dc9adc9bdc9cdc9ddc9edc9fdca0dca1dca2dca3dca4dca5dca6dca7dca8dca9dcaadcabdcacdcaddcaedcafdcb0dcb1dcb2dcb3dcb4dcb5dcb6dcb7dcb8dcb9dcbadcbbdcbcdcbddcbedcbfdcc0dcc1dcc2dcc3dcc4dcc5dcc6dcc7dcc8dcc9dccadccbdcccdccddccedccfdcd0dcd1dcd2dcd3dcd4dcd5dcd6dcd7dcd8dcd9dcdadcdbdcdcdcdddcdedcdfdce0dce1dce2dce3dce4dce5dce6dce7dce8dce9dceadcebdcecdceddceedcefdcf0dcf1dcf2dcf3dcf4dcf5dcf6dcf7dcf8dcf9dcfadcfbdcfcdcfddcfedcffdc00dd01dd02dd03dd04dd05dd06dd07dd08dd09dd0add0bdd0cdd0ddd0edd0fdd10dd11dd12dd13dd14dd15dd16dd17dd18dd19dd1add1bdd1cdd1ddd1edd1fdd20dd21dd22dd23dd24dd25dd26dd27dd28dd29dd2add2bdd2cdd2ddd2edd2fdd30dd31dd32dd33dd34dd35dd36dd37dd38dd39dd3add3bdd3cdd3ddd3edd3fdd40dd41dd42dd43dd44dd45dd46dd47dd48dd49dd4add4bdd4cdd4ddd4edd4fdd50dd51dd52dd53dd54dd55dd56dd57dd58dd59dd5add5bdd5cdd5ddd5edd5fdd60dd61dd62dd63dd64dd65dd66dd67dd68dd69dd6add6bdd6cdd6ddd6edd6fdd70dd71dd72dd73dd74dd75dd76dd77dd78dd79dd7add7bdd7cdd7ddd7edd7fdd80dd81dd82dd83dd84dd85dd86dd87dd88dd89dd8add8bdd8cdd8ddd8edd8fdd90dd91dd92dd93dd94dd95dd96dd97dd98dd99dd9add9bdd9cdd9ddd9edd9fdda0dda1dda2dda3dda4dda5dda6dda7dda8dda9ddaaddabddacddadddaeddafddb0ddb1ddb2ddb3ddb4ddb5ddb6ddb7ddb8ddb9ddbaddbbddbcddbdddbeddbfddc0ddc1ddc2ddc3ddc4ddc5ddc6ddc7ddc8ddc9ddcaddcbddccddcdddceddcfddd0ddd1ddd2ddd3ddd4ddd5ddd6ddd7ddd8ddd9dddadddbdddcdddddddedddfdde0dde1dde2dde3dde4dde5dde6dde7dde8dde9ddeaddebddecddedddeeddefddf0ddf1ddf2ddf3ddf4ddf5ddf6ddf7ddf8ddf9ddfaddfbddfcddfdddfeddffdd00de01de02de03de04de05de06de07de08de09de0ade0bde0cde0dde0ede0fde10de11de12de13de14de15de16de17de18de19de1ade1bde1cde1dde1ede1fde20de21de22de23de24de25de26de27de28de29de2ade2bde2cde2dde2ede2fde30de31de32de33de34de35de36de37de38de39de3ade3bde3cde3dde3ede3fde40de41de42de43de44de45de46de47de48de49de4ade4bde4cde4dde4ede4fde50de51de52de53de54de55de56de57de58de59de5ade5bde5cde5dde5ede5fde60de61de62de63de64de65de66de67de68de69de6ade6bde6cde6dde6ede6fde70de71de72de73de74de75de76de77de78de79de7ade7bde7cde7dde7ede7fde80de81de82de83de84de85de86de87de88de89de8ade8bde8cde8dde8ede8fde90de91de92de93de94de95de96de97de98de99de9ade9bde9cde9dde9ede9fdea0dea1dea2dea3dea4dea5dea6dea7dea8dea9deaadeabdeacdeaddeaedeafdeb0deb1deb2deb3deb4deb5deb6deb7deb8deb9debadebbdebcdebddebedebfdec0dec1dec2dec3dec4dec5dec6dec7dec8dec9decadecbdeccdecddecedecfded0ded1ded2ded3ded4ded5ded6ded7ded8ded9dedadedbdedcdedddedededfdee0dee1dee2dee3dee4dee5dee6dee7dee8dee9deeadeebdeecdeeddeeedeefdef0def1def2def3def4def5def6def7def8def9defadefbdefcdefddefedeffde00df01df02df03df04df05df06df07df08df09df0adf0bdf0cdf0ddf0edf0fdf10df11df12df13df14df15df16df17df18df19df1adf1bdf1cdf1ddf1edf1fdf20df21df22df23df24df25df26df27df28df29df2adf2bdf2cdf2ddf2edf2fdf30df31df32df33df34df35df36df37df38df39df3adf3bdf3cdf3ddf3edf3fdf40df41df42df43df44df45df46df47df48df49df4adf4bdf4cdf4ddf4edf4fdf50df51df52df53df54df55df56df57df58df59df5adf5bdf5cdf5ddf5edf5fdf60df61df62df63df64df65df66df67df68df69df6adf6bdf6cdf6ddf6edf6fdf70df71df72df73df74df75df76df77df78df79df7adf7bdf7cdf7ddf7edf7fdf80df81df82df83df84df85df86df87df88df89df8adf8bdf8cdf8ddf8edf8fdf90df91df92df93df94df95df96df97df98df99df9adf9bdf9cdf9ddf9edf9fdfa0dfa1dfa2dfa3dfa4dfa5dfa6dfa7dfa8dfa9dfaadfabdfacdfaddfaedfafdfb0dfb1dfb2dfb3dfb4dfb5dfb6dfb7dfb8dfb9dfbadfbbdfbcdfbddfbedfbfdfc0dfc1dfc2dfc3dfc4dfc5dfc6dfc7dfc8dfc9dfcadfcbdfccdfcddfcedfcfdfd0dfd1dfd2dfd3dfd4dfd5dfd6dfd7dfd8dfd9dfdadfdbdfdcdfdddfdedfdfdfe0dfe1dfe2dfe3dfe4dfe5dfe6dfe7dfe8dfe9dfeadfebdfecdfeddfeedfefdff0dff1dff2dff3dff4dff5dff6dff7dff8dff9dffadffbdffcdffddffedfffdf00e001e002e003e004e005e006e007e008e009e00ae00be00ce00de00ee00fe010e011e012e013e014e015e016e017e018e019e01ae01be01ce01de01ee01fe020e021e022e023e024e025e026e027e028e029e02ae02be02ce02de02ee02fe030e031e032e033e034e035e036e037e038e039e03ae03be03ce03de03ee03fe040e041e042e043e044e045e046e047e048e049e04ae04be04ce04de04ee04fe050e051e052e053e054e055e056e057e058e059e05ae05be05ce05de05ee05fe060e061e062e063e064e065e066e067e068e069e06ae06be06ce06de06ee06fe070e071e072e073e074e075e076e077e078e079e07ae07be07ce07de07ee07fe080e081e082e083e084e085e086e087e088e089e08ae08be08ce08de08ee08fe090e091e092e093e094e095e096e097e098e099e09ae09be09ce09de09ee09fe0a0e0a1e0a2e0a3e0a4e0a5e0a6e0a7e0a8e0a9e0aae0abe0ace0ade0aee0afe0b0e0b1e0b2e0b3e0b4e0b5e0b6e0b7e0b8e0b9e0bae0bbe0bce0bde0bee0bfe0c0e0c1e0c2e0c3e0c4e0c5e0c6e0c7e0c8e0c9e0cae0cbe0cce0cde0cee0cfe0d0e0d1e0d2e0d3e0d4e0d5e0d6e0d7e0d8e0d9e0dae0dbe0dce0dde0dee0dfe0e0e0e1e0e2e0e3e0e4e0e5e0e6e0e7e0e8e0e9e0eae0ebe0ece0ede0eee0efe0f0e0f1e0f2e0f3e0f4e0f5e0f6e0f7e0f8e0f9e0fae0fbe0fce0fde0fee0ffe000e101e102e103e104e105e106e107e108e109e10ae10be10ce10de10ee10fe110e111e112e113e114e115e116e117e118e119e11ae11be11ce11de11ee11fe120e121e122e123e124e125e126e127e128e129e12ae12be12ce12de12ee12fe130e131e132e133e134e135e136e137e138e139e13ae13be13ce13de13ee13fe140e141e142e143e144e145e146e147e148e149e14ae14be14ce14de14ee14fe150e151e152e153e154e155e156e157e158e159e15ae15be15ce15de15ee15fe160e161e162e163e164e165e166e167e168e169e16ae16be16ce16de16ee16fe170e171e172e173e174e175e176e177e178e179e17ae17be17ce17de17ee17fe180e181e182e183e184e185e186e187e188e189e18ae18be18ce18de18ee18fe190e191e192e193e194e195e196e197e198e199e19ae19be19ce19de19ee19fe1a0e1a1e1a2e1a3e1a4e1a5e1a6e1a7e1a8e1a9e1aae1abe1ace1ade1aee1afe1b0e1b1e1b2e1b3e1b4e1b5e1b6e1b7e1b8e1b9e1bae1bbe1bce1bde1bee1bfe1c0e1c1e1c2e1c3e1c4e1c5e1c6e1c7e1c8e1c9e1cae1cbe1cce1cde1cee1cfe1d0e1d1e1d2e1d3e1d4e1d5e1d6e1d7e1d8e1d9e1dae1dbe1dce1dde1dee1dfe1e0e1e1e1e2e1e3e1e4e1e5e1e6e1e7e1e8e1e9e1eae1ebe1ece1ede1eee1efe1f0e1f1e1f2e1f3e1f4e1f5e1f6e1f7e1f8e1f9e1fae1fbe1fce1fde1fee1ffe100e201e202e203e204e205e206e207e208e209e20ae20be20ce20de20ee20fe210e211e212e213e214e215e216e217e218e219e21ae21be21ce21de21ee21fe220e221e222e223e224e225e226e227e228e229e22ae22be22ce22de22ee22fe230e231e232e233e234e235e236e237e238e239e23ae23be23ce23de23ee23fe240e241e242e243e244e245e246e247e248e249e24ae24be24ce24de24ee24fe250e251e252e253e254e255e256e257e258e259e25ae25be25ce25de25ee25fe260e261e262e263e264e265e266e267e268e269e26ae26be26ce26de26ee26fe270e271e272e273e274e275e276e277e278e279e27ae27be27ce27de27ee27fe280e281e282e283e284e285e286e287e288e289e28ae28be28ce28de28ee28fe290e291e292e293e294e295e296e297e298e299e29ae29be29ce29de29ee29fe2a0e2a1e2a2e2a3e2a4e2a5e2a6e2a7e2a8e2a9e2aae2abe2ace2ade2aee2afe2b0e2b1e2b2e2b3e2b4e2b5e2b6e2b7e2b8e2b9e2bae2bbe2bce2bde2bee2bfe2c0e2c1e2c2e2c3e2c4e2c5e2c6e2c7e2c8e2c9e2cae2cbe2cce2cde2cee2cfe2d0e2d1e2d2e2d3e2d4e2d5e2d6e2d7e2d8e2d9e2dae2dbe2dce2dde2dee2dfe2e0e2e1e2e2e2e3e2e4e2e5e2e6e2e7e2e8e2e9e2eae2ebe2ece2ede2eee2efe2f0e2f1e2f2e2f3e2f4e2f5e2f6e2f7e2f8e2f9e2fae2fbe2fce2fde2fee2ffe200e301e302e303e304e305e306e307e308e309e30ae30be30ce30de30ee30fe310e311e312e313e314e315e316e317e318e319e31ae31be31ce31de31ee31fe320e321e322e323e324e325e326e327e328e329e32ae32be32ce32de32ee32fe330e331e332e333e334e335e336e337e338e339e33ae33be33ce33de33ee33fe340e341e342e343e344e345e346e347e348e349e34ae34be34ce34de34ee34fe350e351e352e353e354e355e356e357e358e359e35ae35be35ce35de35ee35fe360e361e362e363e364e365e366e367e368e369e36ae36be36ce36de36ee36fe370e371e372e373e374e375e376e377e378e379e37ae37be37ce37de37ee37fe380e381e382e383e384e385e386e387e388e389e38ae38be38ce38de38ee38fe390e391e392e393e394e395e396e397e398e399e39ae39be39ce39de39ee39fe3a0e3a1e3a2e3a3e3a4e3a5e3a6e3a7e3a8e3a9e3aae3abe3ace3ade3aee3afe3b0e3b1e3b2e3b3e3b4e3b5e3b6e3b7e3b8e3b9e3bae3bbe3bce3bde3bee3bfe3c0e3c1e3c2e3c3e3c4e3c5e3c6e3c7e3c8e3c9e3cae3cbe3cce3cde3cee3cfe3d0e3d1e3d2e3d3e3d4e3d5e3d6e3d7e3d8e3d9e3dae3dbe3dce3dde3dee3dfe3e0e3e1e3e2e3e3e3e4e3e5e3e6e3e7e3e8e3e9e3eae3ebe3ece3ede3eee3efe3f0e3f1e3f2e3f3e3f4e3f5e3f6e3f7e3f8e3f9e3fae3fbe3fce3fde3fee3ffe300e401e402e403e404e405e406e407e408e409e40ae40be40ce40de40ee40fe410e411e412e413e414e415e416e417e418e419e41ae41be41ce41de41ee41fe420e421e422e423e424e425e426e427e428e429e42ae42be42ce42de42ee42fe430e431e432e433e434e435e436e437e438e439e43ae43be43ce43de43ee43fe440e441e442e443e444e445e446e447e448e449e44ae44be44ce44de44ee44fe450e451e452e453e454e455e456e457e458e459e45ae45be45ce45de45ee45fe460e461e462e463e464e465e466e467e468e469e46ae46be46ce46de46ee46fe470e471e472e473e474e475e476e477e478e479e47ae47be47ce47de47ee47fe480e481e482e483e484e485e486e487e488e489e48ae48be48ce48de48ee48fe490e491e492e493e494e495e496e497e498e499e49ae49be49ce49de49ee49fe4a0e4a1e4a2e4a3e4a4e4a5e4a6e4a7e4a8e4a9e4aae4abe4ace4ade4aee4afe4b0e4b1e4b2e4b3e4b4e4b5e4b6e4b7e4b8e4b9e4bae4bbe4bce4bde4bee4bfe4c0e4c1e4c2e4c3e4c4e4c5e4c6e4c7e4c8e4c9e4cae4cbe4cce4cde4cee4cfe4d0e4d1e4d2e4d3e4d4e4d5e4d6e4d7e4d8e4d9e4dae4dbe4dce4dde4dee4dfe4e0e4e1e4e2e4e3e4e4e4e5e4e6e4e7e4e8e4e9e4eae4ebe4ece4ede4eee4efe4f0e4f1e4f2e4f3e4f4e4f5e4f6e4f7e4f8e4f9e4fae4fbe4fce4fde4fee4ffe400e501e502e503e504e505e506e507e508e509e50ae50be50ce50de50ee50fe510e511e512e513e514e515e516e517e518e519e51ae51be51ce51de51ee51fe520e521e522e523e524e525e526e527e528e529e52ae52be52ce52de52ee52fe530e531e532e533e534e535e536e537e538e539e53ae53be53ce53de53ee53fe540e541e542e543e544e545e546e547e548e549e54ae54be54ce54de54ee54fe550e551e552e553e554e555e556e557e558e559e55ae55be55ce55de55ee55fe560e561e562e563e564e565e566e567e568e569e56ae56be56ce56de56ee56fe570e571e572e573e574e575e576e577e578e579e57ae57be57ce57de57ee57fe580e581e582e583e584e585e586e587e588e589e58ae58be58ce58de58ee58fe590e591e592e593e594e595e596e597e598e599e59ae59be59ce59de59ee59fe5a0e5a1e5a2e5a3e5a4e5a5e5a6e5a7e5a8e5a9e5aae5abe5ace5ade5aee5afe5b0e5b1e5b2e5b3e5b4e5b5e5b6e5b7e5b8e5b9e5bae5bbe5bce5bde5bee5bfe5c0e5c1e5c2e5c3e5c4e5c5e5c6e5c7e5c8e5c9e5cae5cbe5cce5cde5cee5cfe5d0e5d1e5d2e5d3e5d4e5d5e5d6e5d7e5d8e5d9e5dae5dbe5dce5dde5dee5dfe5e0e5e1e5e2e5e3e5e4e5e5e5e6e5e7e5e8e5e9e5eae5ebe5ece5ede5eee5efe5f0e5f1e5f2e5f3e5f4e5f5e5f6e5f7e5f8e5f9e5fae5fbe5fce5fde5fee5ffe500e601e602e603e604e605e606e607e608e609e60ae60be60ce60de60ee60fe610e611e612e613e614e615e616e617e618e619e61ae61be61ce61de61ee61fe620e621e622e623e624e625e626e627e628e629e62ae62be62ce62de62ee62fe630e631e632e633e634e635e636e637e638e639e63ae63be63ce63de63ee63fe640e641e642e643e644e645e646e647e648e649e64ae64be64ce64de64ee64fe650e651e652e653e654e655e656e657e658e659e65ae65be65ce65de65ee65fe660e661e662e663e664e665e666e667e668e669e66ae66be66ce66de66ee66fe670e671e672e673e674e675e676e677e678e679e67ae67be67ce67de67ee67fe680e681e682e683e684e685e686e687e688e689e68ae68be68ce68de68ee68fe690e691e692e693e694e695e696e697e698e699e69ae69be69ce69de69ee69fe6a0e6a1e6a2e6a3e6a4e6a5e6a6e6a7e6a8e6a9e6aae6abe6ace6ade6aee6afe6b0e6b1e6b2e6b3e6b4e6b5e6b6e6b7e6b8e6b9e6bae6bbe6bce6bde6bee6bfe6c0e6c1e6c2e6c3e6c4e6c5e6c6e6c7e6c8e6c9e6cae6cbe6cce6cde6cee6cfe6d0e6d1e6d2e6d3e6d4e6d5e6d6e6d7e6d8e6d9e6dae6dbe6dce6dde6dee6dfe6e0e6e1e6e2e6e3e6e4e6e5e6e6e6e7e6e8e6e9e6eae6ebe6ece6ede6eee6efe6f0e6f1e6f2e6f3e6f4e6f5e6f6e6f7e6f8e6f9e6fae6fbe6fce6fde6fee6ffe600e701e702e703e704e705e706e707e708e709e70ae70be70ce70de70ee70fe710e711e712e713e714e715e716e717e718e719e71ae71be71ce71de71ee71fe720e721e722e723e724e725e726e727e728e729e72ae72be72ce72de72ee72fe730e731e732e733e734e735e736e737e738e739e73ae73be73ce73de73ee73fe740e741e742e743e744e745e746e747e748e749e74ae74be74ce74de74ee74fe750e751e752e753e754e755e756e757e758e759e75ae75be75ce75de75ee75fe760e761e762e763e764e765e766e767e768e769e76ae76be76ce76de76ee76fe770e771e772e773e774e775e776e777e778e779e77ae77be77ce77de77ee77fe780e781e782e783e784e785e786e787e788e789e78ae78be78ce78de78ee78fe790e791e792e793e794e795e796e797e798e799e79ae79be79ce79de79ee79fe7a0e7a1e7a2e7a3e7a4e7a5e7a6e7a7e7a8e7a9e7aae7abe7ace7ade7aee7afe7b0e7b1e7b2e7b3e7b4e7b5e7b6e7b7e7b8e7b9e7bae7bbe7bce7bde7bee7bfe7c0e7c1e7c2e7c3e7c4e7c5e7c6e7c7e7c8e7c9e7cae7cbe7cce7cde7cee7cfe7d0e7d1e7d2e7d3e7d4e7d5e7d6e7d7e7d8e7d9e7dae7dbe7dce7dde7dee7dfe7e0e7e1e7e2e7e3e7e4e7e5e7e6e7e7e7e8e7e9e7eae7ebe7ece7ede7eee7efe7f0e7f1e7f2e7f3e7f4e7f5e7f6e7f7e7f8e7f9e7fae7fbe7fce7fde7fee7ffe700e801e802e803e804e805e806e807e808e809e80ae80be80ce80de80ee80fe810e811e812e813e814e815e816e817e818e819e81ae81be81ce81de81ee81fe820e821e822e823e824e825e826e827e828e829e82ae82be82ce82de82ee82fe830e831e832e833e834e835e836e837e838e839e83ae83be83ce83de83ee83fe840e841e842e843e844e845e846e847e848e849e84ae84be84ce84de84ee84fe850e851e852e853e854e855e856e857e858e859e85ae85be85ce85de85ee85fe860e861e862e863e864e865e866e867e868e869e86ae86be86ce86de86ee86fe870e871e872e873e874e875e876e877e878e879e87ae87be87ce87de87ee87fe880e881e882e883e884e885e886e887e888e889e88ae88be88ce88de88ee88fe890e891e892e893e894e895e896e897e898e899e89ae89be89ce89de89ee89fe8a0e8a1e8a2e8a3e8a4e8a5e8a6e8a7e8a8e8a9e8aae8abe8ace8ade8aee8afe8b0e8b1e8b2e8b3e8b4e8b5e8b6e8b7e8b8e8b9e8bae8bbe8bce8bde8bee8bfe8c0e8c1e8c2e8c3e8c4e8c5e8c6e8c7e8c8e8c9e8cae8cbe8cce8cde8cee8cfe8d0e8d1e8d2e8d3e8d4e8d5e8d6e8d7e8d8e8d9e8dae8dbe8dce8dde8dee8dfe8e0e8e1e8e2e8e3e8e4e8e5e8e6e8e7e8e8e8e9e8eae8ebe8ece8ede8eee8efe8f0e8f1e8f2e8f3e8f4e8f5e8f6e8f7e8f8e8f9e8fae8fbe8fce8fde8fee8ffe800e901e902e903e904e905e906e907e908e909e90ae90be90ce90de90ee90fe910e911e912e913e914e915e916e917e918e919e91ae91be91ce91de91ee91fe920e921e922e923e924e925e926e927e928e929e92ae92be92ce92de92ee92fe930e931e932e933e934e935e936e937e938e939e93ae93be93ce93de93ee93fe940e941e942e943e944e945e946e947e948e949e94ae94be94ce94de94ee94fe950e951e952e953e954e955e956e957e958e959e95ae95be95ce95de95ee95fe960e961e962e963e964e965e966e967e968e969e96ae96be96ce96de96ee96fe970e971e972e973e974e975e976e977e978e979e97ae97be97ce97de97ee97fe980e981e982e983e984e985e986e987e988e989e98ae98be98ce98de98ee98fe990e991e992e993e994e995e996e997e998e999e99ae99be99ce99de99ee99fe9a0e9a1e9a2e9a3e9a4e9a5e9a6e9a7e9a8e9a9e9aae9abe9ace9ade9aee9afe9b0e9b1e9b2e9b3e9b4e9b5e9b6e9b7e9b8e9b9e9bae9bbe9bce9bde9bee9bfe9c0e9c1e9c2e9c3e9c4e9c5e9c6e9c7e9c8e9c9e9cae9cbe9cce9cde9cee9cfe9d0e9d1e9d2e9d3e9d4e9d5e9d6e9d7e9d8e9d9e9dae9dbe9dce9dde9dee9dfe9e0e9e1e9e2e9e3e9e4e9e5e9e6e9e7e9e8e9e9e9eae9ebe9ece9ede9eee9efe9f0e9f1e9f2e9f3e9f4e9f5e9f6e9f7e9f8e9f9e9fae9fbe9fce9fde9fee9ffe900ea01ea02ea03ea04ea05ea06ea07ea08ea09ea0aea0bea0cea0dea0eea0fea10ea11ea12ea13ea14ea15ea16ea17ea18ea19ea1aea1bea1cea1dea1eea1fea20ea21ea22ea23ea24ea25ea26ea27ea28ea29ea2aea2bea2cea2dea2eea2fea30ea31ea32ea33ea34ea35ea36ea37ea38ea39ea3aea3bea3cea3dea3eea3fea40ea41ea42ea43ea44ea45ea46ea47ea48ea49ea4aea4bea4cea4dea4eea4fea50ea51ea52ea53ea54ea55ea56ea57ea58ea59ea5aea5bea5cea5dea5eea5fea60ea61ea62ea63ea64ea65ea66ea67ea68ea69ea6aea6bea6cea6dea6eea6fea70ea71ea72ea73ea74ea75ea76ea77ea78ea79ea7aea7bea7cea7dea7eea7fea80ea81ea82ea83ea84ea85ea86ea87ea88ea89ea8aea8bea8cea8dea8eea8fea90ea91ea92ea93ea94ea95ea96ea97ea98ea99ea9aea9bea9cea9dea9eea9feaa0eaa1eaa2eaa3eaa4eaa5eaa6eaa7eaa8eaa9eaaaeaabeaaceaadeaaeeaafeab0eab1eab2eab3eab4eab5eab6eab7eab8eab9eabaeabbeabceabdeabeeabfeac0eac1eac2eac3eac4eac5eac6eac7eac8eac9eacaeacbeacceacdeaceeacfead0ead1ead2ead3ead4ead5ead6ead7ead8ead9eadaeadbeadceaddeadeeadfeae0eae1eae2eae3eae4eae5eae6eae7eae8eae9eaeaeaebeaeceaedeaeeeaefeaf0eaf1eaf2eaf3eaf4eaf5eaf6eaf7eaf8eaf9eafaeafbeafceafdeafeeaffea00eb01eb02eb03eb04eb05eb06eb07eb08eb09eb0aeb0beb0ceb0deb0eeb0feb10eb11eb12eb13eb14eb15eb16eb17eb18eb19eb1aeb1beb1ceb1deb1eeb1feb20eb21eb22eb23eb24eb25eb26eb27eb28eb29eb2aeb2beb2ceb2deb2eeb2feb30eb31eb32eb33eb34eb35eb36eb37eb38eb39eb3aeb3beb3ceb3deb3eeb3feb40eb41eb42eb43eb44eb45eb46eb47eb48eb49eb4aeb4beb4ceb4deb4eeb4feb50eb51eb52eb53eb54eb55eb56eb57eb58eb59eb5aeb5beb5ceb5deb5eeb5feb60eb61eb62eb63eb64eb65eb66eb67eb68eb69eb6aeb6beb6ceb6deb6eeb6feb70eb71eb72eb73eb74eb75eb76eb77eb78eb79eb7aeb7beb7ceb7deb7eeb7feb80eb81eb82eb83eb84eb85eb86eb87eb88eb89eb8aeb8beb8ceb8deb8eeb8feb90eb91eb92eb93eb94eb95eb96eb97eb98eb99eb9aeb9beb9ceb9deb9eeb9feba0eba1eba2eba3eba4eba5eba6eba7eba8eba9ebaaebabebacebadebaeebafebb0ebb1ebb2ebb3ebb4ebb5ebb6ebb7ebb8ebb9ebbaebbbebbcebbdebbeebbfebc0ebc1ebc2ebc3ebc4ebc5ebc6ebc7ebc8ebc9ebcaebcbebccebcdebceebcfebd0ebd1ebd2ebd3ebd4ebd5ebd6ebd7ebd8ebd9ebdaebdbebdcebddebdeebdfebe0ebe1ebe2ebe3ebe4ebe5ebe6ebe7ebe8ebe9ebeaebebebecebedebeeebefebf0ebf1ebf2ebf3ebf4ebf5ebf6ebf7ebf8ebf9ebfaebfbebfcebfdebfeebffeb00ec01ec02ec03ec04ec05ec06ec07ec08ec09ec0aec0bec0cec0dec0eec0fec10ec11ec12ec13ec14ec15ec16ec17ec18ec19ec1aec1bec1cec1dec1eec1fec20ec21ec22ec23ec24ec25ec26ec27ec28ec29ec2aec2bec2cec2dec2eec2fec30ec31ec32ec33ec34ec35ec36ec37ec38ec39ec3aec3bec3cec3dec3eec3fec40ec41ec42ec43ec44ec45ec46ec47ec48ec49ec4aec4bec4cec4dec4eec4fec50ec51ec52ec53ec54ec55ec56ec57ec58ec59ec5aec5bec5cec5dec5eec5fec60ec61ec62ec63ec64ec65ec66ec67ec68ec69ec6aec6bec6cec6dec6eec6fec70ec71ec72ec73ec74ec75ec76ec77ec78ec79ec7aec7bec7cec7dec7eec7fec80ec81ec82ec83ec84ec85ec86ec87ec88ec89ec8aec8bec8cec8dec8eec8fec90ec91ec92ec93ec94ec95ec96ec97ec98ec99ec9aec9bec9cec9dec9eec9feca0eca1eca2eca3eca4eca5eca6eca7eca8eca9ecaaecabecacecadecaeecafecb0ecb1ecb2ecb3ecb4ecb5ecb6ecb7ecb8ecb9ecbaecbbecbcecbdecbeecbfecc0ecc1ecc2ecc3ecc4ecc5ecc6ecc7ecc8ecc9eccaeccbeccceccdecceeccfecd0ecd1ecd2ecd3ecd4ecd5ecd6ecd7ecd8ecd9ecdaecdbecdcecddecdeecdfece0ece1ece2ece3ece4ece5ece6ece7ece8ece9eceaecebecececedeceeecefecf0ecf1ecf2ecf3ecf4ecf5ecf6ecf7ecf8ecf9ecfaecfbecfcecfdecfeecffec00ed01ed02ed03ed04ed05ed06ed07ed08ed09ed0aed0bed0ced0ded0eed0fed10ed11ed12ed13ed14ed15ed16ed17ed18ed19ed1aed1bed1ced1ded1eed1fed20ed21ed22ed23ed24ed25ed26ed27ed28ed29ed2aed2bed2ced2ded2eed2fed30ed31ed32ed33ed34ed35ed36ed37ed38ed39ed3aed3bed3ced3ded3eed3fed40ed41ed42ed43ed44ed45ed46ed47ed48ed49ed4aed4bed4ced4ded4eed4fed50ed51ed52ed53ed54ed55ed56ed57ed58ed59ed5aed5bed5ced5ded5eed5fed60ed61ed62ed63ed64ed65ed66ed67ed68ed69ed6aed6bed6ced6ded6eed6fed70ed71ed72ed73ed74ed75ed76ed77ed78ed79ed7aed7bed7ced7ded7eed7fed80ed81ed82ed83ed84ed85ed86ed87ed88ed89ed8aed8bed8ced8ded8eed8fed90ed91ed92ed93ed94ed95ed96ed97ed98ed99ed9aed9bed9ced9ded9eed9feda0eda1eda2eda3eda4eda5eda6eda7eda8eda9edaaedabedacedadedaeedafedb0edb1edb2edb3edb4edb5edb6edb7edb8edb9edbaedbbedbcedbdedbeedbfedc0edc1edc2edc3edc4edc5edc6edc7edc8edc9edcaedcbedccedcdedceedcfedd0edd1edd2edd3edd4edd5edd6edd7edd8edd9eddaeddbeddcedddeddeeddfede0ede1ede2ede3ede4ede5ede6ede7ede8ede9edeaedebedecedededeeedefedf0edf1edf2edf3edf4edf5edf6edf7edf8edf9edfaedfbedfcedfdedfeedffed00ee01ee02ee03ee04ee05ee06ee07ee08ee09ee0aee0bee0cee0dee0eee0fee10ee11ee12ee13ee14ee15ee16ee17ee18ee19ee1aee1bee1cee1dee1eee1fee20ee21ee22ee23ee24ee25ee26ee27ee28ee29ee2aee2bee2cee2dee2eee2fee30ee31ee32ee33ee34ee35ee36ee37ee38ee39ee3aee3bee3cee3dee3eee3fee40ee41ee42ee43ee44ee45ee46ee47ee48ee49ee4aee4bee4cee4dee4eee4fee50ee51ee52ee53ee54ee55ee56ee57ee58ee59ee5aee5bee5cee5dee5eee5fee60ee61ee62ee63ee64ee65ee66ee67ee68ee69ee6aee6bee6cee6dee6eee6fee70ee71ee72ee73ee74ee75ee76ee77ee78ee79ee7aee7bee7cee7dee7eee7fee80ee81ee82ee83ee84ee85ee86ee87ee88ee89ee8aee8bee8cee8dee8eee8fee90ee91ee92ee93ee94ee95ee96ee97ee98ee99ee9aee9bee9cee9dee9eee9feea0eea1eea2eea3eea4eea5eea6eea7eea8eea9eeaaeeabeeaceeadeeaeeeafeeb0eeb1eeb2eeb3eeb4eeb5eeb6eeb7eeb8eeb9eebaeebbeebceebdeebeeebfeec0eec1eec2eec3eec4eec5eec6eec7eec8eec9eecaeecbeecceecdeeceeecfeed0eed1eed2eed3eed4eed5eed6eed7eed8eed9eedaeedbeedceeddeedeeedfeee0eee1eee2eee3eee4eee5eee6eee7eee8eee9eeeaeeebeeeceeedeeeeeeefeef0eef1eef2eef3eef4eef5eef6eef7eef8eef9eefaeefbeefceefdeefeeeffee00ef01ef02ef03ef04ef05ef06ef07ef08ef09ef0aef0bef0cef0def0eef0fef10ef11ef12ef13ef14ef15ef16ef17ef18ef19ef1aef1bef1cef1def1eef1fef20ef21ef22ef23ef24ef25ef26ef27ef28ef29ef2aef2bef2cef2def2eef2fef30ef31ef32ef33ef34ef35ef36ef37ef38ef39ef3aef3bef3cef3def3eef3fef40ef41ef42ef43ef44ef45ef46ef47ef48ef49ef4aef4bef4cef4def4eef4fef50ef51ef52ef53ef54ef55ef56ef57ef58ef59ef5aef5bef5cef5def5eef5fef60ef61ef62ef63ef64ef65ef66ef67ef68ef69ef6aef6bef6cef6def6eef6fef70ef71ef72ef73ef74ef75ef76ef77ef78ef79ef7aef7bef7cef7def7eef7fef80ef81ef82ef83ef84ef85ef86ef87ef88ef89ef8aef8bef8cef8def8eef8fef90ef91ef92ef93ef94ef95ef96ef97ef98ef99ef9aef9bef9cef9def9eef9fefa0efa1efa2efa3efa4efa5efa6efa7efa8efa9efaaefabefacefadefaeefafefb0efb1efb2efb3efb4efb5efb6efb7efb8efb9efbaefbbefbcefbdefbeefbfefc0efc1efc2efc3efc4efc5efc6efc7efc8efc9efcaefcbefccefcdefceefcfefd0efd1efd2efd3efd4efd5efd6efd7efd8efd9efdaefdbefdcefddefdeefdfefe0efe1efe2efe3efe4efe5efe6efe7efe8efe9efeaefebefecefedefeeefefeff0eff1eff2eff3eff4eff5eff6eff7eff8eff9effaeffbeffceffdeffeefffef00f001f002f003f004f005f006f007f008f009f00af00bf00cf00df00ef00ff010f011f012f013f014f015f016f017f018f019f01af01bf01cf01df01ef01ff020f021f022f023f024f025f026f027f028f029f02af02bf02cf02df02ef02ff030f031f032f033f034f035f036f037f038f039f03af03bf03cf03df03ef03ff040f041f042f043f044f045f046f047f048f049f04af04bf04cf04df04ef04ff050f051f052f053f054f055f056f057f058f059f05af05bf05cf05df05ef05ff060f061f062f063f064f065f066f067f068f069f06af06bf06cf06df06ef06ff070f071f072f073f074f075f076f077f078f079f07af07bf07cf07df07ef07ff080f081f082f083f084f085f086f087f088f089f08af08bf08cf08df08ef08ff090f091f092f093f094f095f096f097f098f099f09af09bf09cf09df09ef09ff0a0f0a1f0a2f0a3f0a4f0a5f0a6f0a7f0a8f0a9f0aaf0abf0acf0adf0aef0aff0b0f0b1f0b2f0b3f0b4f0b5f0b6f0b7f0b8f0b9f0baf0bbf0bcf0bdf0bef0bff0c0f0c1f0c2f0c3f0c4f0c5f0c6f0c7f0c8f0c9f0caf0cbf0ccf0cdf0cef0cff0d0f0d1f0d2f0d3f0d4f0d5f0d6f0d7f0d8f0d9f0daf0dbf0dcf0ddf0def0dff0e0f0e1f0e2f0e3f0e4f0e5f0e6f0e7f0e8f0e9f0eaf0ebf0ecf0edf0eef0eff0f0f0f1f0f2f0f3f0f4f0f5f0f6f0f7f0f8f0f9f0faf0fbf0fcf0fdf0fef0fff000f101f102f103f104f105f106f107f108f109f10af10bf10cf10df10ef10ff110f111f112f113f114f115f116f117f118f119f11af11bf11cf11df11ef11ff120f121f122f123f124f125f126f127f128f129f12af12bf12cf12df12ef12ff130f131f132f133f134f135f136f137f138f139f13af13bf13cf13df13ef13ff140f141f142f143f144f145f146f147f148f149f14af14bf14cf14df14ef14ff150f151f152f153f154f155f156f157f158f159f15af15bf15cf15df15ef15ff160f161f162f163f164f165f166f167f168f169f16af16bf16cf16df16ef16ff170f171f172f173f174f175f176f177f178f179f17af17bf17cf17df17ef17ff180f181f182f183f184f185f186f187f188f189f18af18bf18cf18df18ef18ff190f191f192f193f194f195f196f197f198f199f19af19bf19cf19df19ef19ff1a0f1a1f1a2f1a3f1a4f1a5f1a6f1a7f1a8f1a9f1aaf1abf1acf1adf1aef1aff1b0f1b1f1b2f1b3f1b4f1b5f1b6f1b7f1b8f1b9f1baf1bbf1bcf1bdf1bef1bff1c0f1c1f1c2f1c3f1c4f1c5f1c6f1c7f1c8f1c9f1caf1cbf1ccf1cdf1cef1cff1d0f1d1f1d2f1d3f1d4f1d5f1d6f1d7f1d8f1d9f1daf1dbf1dcf1ddf1def1dff1e0f1e1f1e2f1e3f1e4f1e5f1e6f1e7f1e8f1e9f1eaf1ebf1ecf1edf1eef1eff1f0f1f1f1f2f1f3f1f4f1f5f1f6f1f7f1f8f1f9f1faf1fbf1fcf1fdf1fef1fff100f201f202f203f204f205f206f207f208f209f20af20bf20cf20df20ef20ff210f211f212f213f214f215f216f217f218f219f21af21bf21cf21df21ef21ff220f221f222f223f224f225f226f227f228f229f22af22bf22cf22df22ef22ff230f231f232f233f234f235f236f237f238f239f23af23bf23cf23df23ef23ff240f241f242f243f244f245f246f247f248f249f24af24bf24cf24df24ef24ff250f251f252f253f254f255f256f257f258f259f25af25bf25cf25df25ef25ff260f261f262f263f264f265f266f267f268f269f26af26bf26cf26df26ef26ff270f271f272f273f274f275f276f277f278f279f27af27bf27cf27df27ef27ff280f281f282f283f284f285f286f287f288f289f28af28bf28cf28df28ef28ff290f291f292f293f294f295f296f297f298f299f29af29bf29cf29df29ef29ff2a0f2a1f2a2f2a3f2a4f2a5f2a6f2a7f2a8f2a9f2aaf2abf2acf2adf2aef2aff2b0f2b1f2b2f2b3f2b4f2b5f2b6f2b7f2b8f2b9f2baf2bbf2bcf2bdf2bef2bff2c0f2c1f2c2f2c3f2c4f2c5f2c6f2c7f2c8f2c9f2caf2cbf2ccf2cdf2cef2cff2d0f2d1f2d2f2d3f2d4f2d5f2d6f2d7f2d8f2d9f2daf2dbf2dcf2ddf2def2dff2e0f2e1f2e2f2e3f2e4f2e5f2e6f2e7f2e8f2e9f2eaf2ebf2ecf2edf2eef2eff2f0f2f1f2f2f2f3f2f4f2f5f2f6f2f7f2f8f2f9f2faf2fbf2fcf2fdf2fef2fff200f301f302f303f304f305f306f307f308f309f30af30bf30cf30df30ef30ff310f311f312f313f314f315f316f317f318f319f31af31bf31cf31df31ef31ff320f321f322f323f324f325f326f327f328f329f32af32bf32cf32df32ef32ff330f331f332f333f334f335f336f337f338f339f33af33bf33cf33df33ef33ff340f341f342f343f344f345f346f347f348f349f34af34bf34cf34df34ef34ff350f351f352f353f354f355f356f357f358f359f35af35bf35cf35df35ef35ff360f361f362f363f364f365f366f367f368f369f36af36bf36cf36df36ef36ff370f371f372f373f374f375f376f377f378f379f37af37bf37cf37df37ef37ff380f381f382f383f384f385f386f387f388f389f38af38bf38cf38df38ef38ff390f391f392f393f394f395f396f397f398f399f39af39bf39cf39df39ef39ff3a0f3a1f3a2f3a3f3a4f3a5f3a6f3a7f3a8f3a9f3aaf3abf3acf3adf3aef3aff3b0f3b1f3b2f3b3f3b4f3b5f3b6f3b7f3b8f3b9f3baf3bbf3bcf3bdf3bef3bff3c0f3c1f3c2f3c3f3c4f3c5f3c6f3c7f3c8f3c9f3caf3cbf3ccf3cdf3cef3cff3d0f3d1f3d2f3d3f3d4f3d5f3d6f3d7f3d8f3d9f3daf3dbf3dcf3ddf3def3dff3e0f3e1f3e2f3e3f3e4f3e5f3e6f3e7f3e8f3e9f3eaf3ebf3ecf3edf3eef3eff3f0f3f1f3f2f3f3f3f4f3f5f3f6f3f7f3f8f3f9f3faf3fbf3fcf3fdf3fef3fff300f401f402f403f404f405f406f407f408f409f40af40bf40cf40df40ef40ff410f411f412f413f414f415f416f417f418f419f41af41bf41cf41df41ef41ff420f421f422f423f424f425f426f427f428f429f42af42bf42cf42df42ef42ff430f431f432f433f434f435f436f437f438f439f43af43bf43cf43df43ef43ff440f441f442f443f444f445f446f447f448f449f44af44bf44cf44df44ef44ff450f451f452f453f454f455f456f457f458f459f45af45bf45cf45df45ef45ff460f461f462f463f464f465f466f467f468f469f46af46bf46cf46df46ef46ff470f471f472f473f474f475f476f477f478f479f47af47bf47cf47df47ef47ff480f481f482f483f484f485f486f487f488f489f48af48bf48cf48df48ef48ff490f491f492f493f494f495f496f497f498f499f49af49bf49cf49df49ef49ff4a0f4a1f4a2f4a3f4a4f4a5f4a6f4a7f4a8f4a9f4aaf4abf4acf4adf4aef4aff4b0f4b1f4b2f4b3f4b4f4b5f4b6f4b7f4b8f4b9f4baf4bbf4bcf4bdf4bef4bff4c0f4c1f4c2f4c3f4c4f4c5f4c6f4c7f4c8f4c9f4caf4cbf4ccf4cdf4cef4cff4d0f4d1f4d2f4d3f4d4f4d5f4d6f4d7f4d8f4d9f4daf4dbf4dcf4ddf4def4dff4e0f4e1f4e2f4e3f4e4f4e5f4e6f4e7f4e8f4e9f4eaf4ebf4ecf4edf4eef4eff4f0f4f1f4f2f4f3f4f4f4f5f4f6f4f7f4f8f4f9f4faf4fbf4fcf4fdf4fef4fff400f501f502f503f504f505f506f507f508f509f50af50bf50cf50df50ef50ff510f511f512f513f514f515f516f517f518f519f51af51bf51cf51df51ef51ff520f521f522f523f524f525f526f527f528f529f52af52bf52cf52df52ef52ff530f531f532f533f534f535f536f537f538f539f53af53bf53cf53df53ef53ff540f541f542f543f544f545f546f547f548f549f54af54bf54cf54df54ef54ff550f551f552f553f554f555f556f557f558f559f55af55bf55cf55df55ef55ff560f561f562f563f564f565f566f567f568f569f56af56bf56cf56df56ef56ff570f571f572f573f574f575f576f577f578f579f57af57bf57cf57df57ef57ff580f581f582f583f584f585f586f587f588f589f58af58bf58cf58df58ef58ff590f591f592f593f594f595f596f597f598f599f59af59bf59cf59df59ef59ff5a0f5a1f5a2f5a3f5a4f5a5f5a6f5a7f5a8f5a9f5aaf5abf5acf5adf5aef5aff5b0f5b1f5b2f5b3f5b4f5b5f5b6f5b7f5b8f5b9f5baf5bbf5bcf5bdf5bef5bff5c0f5c1f5c2f5c3f5c4f5c5f5c6f5c7f5c8f5c9f5caf5cbf5ccf5cdf5cef5cff5d0f5d1f5d2f5d3f5d4f5d5f5d6f5d7f5d8f5d9f5daf5dbf5dcf5ddf5def5dff5e0f5e1f5e2f5e3f5e4f5e5f5e6f5e7f5e8f5e9f5eaf5ebf5ecf5edf5eef5eff5f0f5f1f5f2f5f3f5f4f5f5f5f6f5f7f5f8f5f9f5faf5fbf5fcf5fdf5fef5fff500f601f602f603f604f605f606f607f608f609f60af60bf60cf60df60ef60ff610f611f612f613f614f615f616f617f618f619f61af61bf61cf61df61ef61ff620f621f622f623f624f625f626f627f628f629f62af62bf62cf62df62ef62ff630f631f632f633f634f635f636f637f638f639f63af63bf63cf63df63ef63ff640f641f642f643f644f645f646f647f648f649f64af64bf64cf64df64ef64ff650f651f652f653f654f655f656f657f658f659f65af65bf65cf65df65ef65ff660f661f662f663f664f665f666f667f668f669f66af66bf66cf66df66ef66ff670f671f672f673f674f675f676f677f678f679f67af67bf67cf67df67ef67ff680f681f682f683f684f685f686f687f688f689f68af68bf68cf68df68ef68ff690f691f692f693f694f695f696f697f698f699f69af69bf69cf69df69ef69ff6a0f6a1f6a2f6a3f6a4f6a5f6a6f6a7f6a8f6a9f6aaf6abf6acf6adf6aef6aff6b0f6b1f6b2f6b3f6b4f6b5f6b6f6b7f6b8f6b9f6baf6bbf6bcf6bdf6bef6bff6c0f6c1f6c2f6c3f6c4f6c5f6c6f6c7f6c8f6c9f6caf6cbf6ccf6cdf6cef6cff6d0f6d1f6d2f6d3f6d4f6d5f6d6f6d7f6d8f6d9f6daf6dbf6dcf6ddf6def6dff6e0f6e1f6e2f6e3f6e4f6e5f6e6f6e7f6e8f6e9f6eaf6ebf6ecf6edf6eef6eff6f0f6f1f6f2f6f3f6f4f6f5f6f6f6f7f6f8f6f9f6faf6fbf6fcf6fdf6fef6fff600f701f702f703f704f705f706f707f708f709f70af70bf70cf70df70ef70ff710f711f712f713f714f715f716f717f718f719f71af71bf71cf71df71ef71ff720f721f722f723f724f725f726f727f728f729f72af72bf72cf72df72ef72ff730f731f732f733f734f735f736f737f738f739f73af73bf73cf73df73ef73ff740f741f742f743f744f745f746f747f748f749f74af74bf74cf74df74ef74ff750f751f752f753f754f755f756f757f758f759f75af75bf75cf75df75ef75ff760f761f762f763f764f765f766f767f768f769f76af76bf76cf76df76ef76ff770f771f772f773f774f775f776f777f778f779f77af77bf77cf77df77ef77ff780f781f782f783f784f785f786f787f788f789f78af78bf78cf78df78ef78ff790f791f792f793f794f795f796f797f798f799f79af79bf79cf79df79ef79ff7a0f7a1f7a2f7a3f7a4f7a5f7a6f7a7f7a8f7a9f7aaf7abf7acf7adf7aef7aff7b0f7b1f7b2f7b3f7b4f7b5f7b6f7b7f7b8f7b9f7baf7bbf7bcf7bdf7bef7bff7c0f7c1f7c2f7c3f7c4f7c5f7c6f7c7f7c8f7c9f7caf7cbf7ccf7cdf7cef7cff7d0f7d1f7d2f7d3f7d4f7d5f7d6f7d7f7d8f7d9f7daf7dbf7dcf7ddf7def7dff7e0f7e1f7e2f7e3f7e4f7e5f7e6f7e7f7e8f7e9f7eaf7ebf7ecf7edf7eef7eff7f0f7f1f7f2f7f3f7f4f7f5f7f6f7f7f7f8f7f9f7faf7fbf7fcf7fdf7fef7fff700f801f802f803f804f805f806f807f808f809f80af80bf80cf80df80ef80ff810f811f812f813f814f815f816f817f818f819f81af81bf81cf81df81ef81ff820f821f822f823f824f825f826f827f828f829f82af82bf82cf82df82ef82ff830f831f832f833f834f835f836f837f838f839f83af83bf83cf83df83ef83ff840f841f842f843f844f845f846f847f848f849f84af84bf84cf84df84ef84ff850f851f852f853f854f855f856f857f858f859f85af85bf85cf85df85ef85ff860f861f862f863f864f865f866f867f868f869f86af86bf86cf86df86ef86ff870f871f872f873f874f875f876f877f878f879f87af87bf87cf87df87ef87ff880f881f882f883f884f885f886f887f888f889f88af88bf88cf88df88ef88ff890f891f892f893f894f895f896f897f898f899f89af89bf89cf89df89ef89ff8a0f8a1f8a2f8a3f8a4f8a5f8a6f8a7f8a8f8a9f8aaf8abf8acf8adf8aef8aff8b0f8b1f8b2f8b3f8b4f8b5f8b6f8b7f8b8f8b9f8baf8bbf8bcf8bdf8bef8bff8c0f8c1f8c2f8c3f8c4f8c5f8c6f8c7f8c8f8c9f8caf8cbf8ccf8cdf8cef8cff8d0f8d1f8d2f8d3f8d4f8d5f8d6f8d7f8d8f8d9f8daf8dbf8dcf8ddf8def8dff8e0f8e1f8e2f8e3f8e4f8e5f8e6f8e7f8e8f8e9f8eaf8ebf8ecf8edf8eef8eff8f0f8f1f8f2f8f3f8f4f8f5f8f6f8f7f8f8f8f9f8faf8fbf8fcf8fdf8fef8fff800f901f902f903f904f905f906f907f908f909f90af90bf90cf90df90ef90ff910f911f912f913f914f915f916f917f918f919f91af91bf91cf91df91ef91ff920f921f922f923f924f925f926f927f928f929f92af92bf92cf92df92ef92ff930f931f932f933f934f935f936f937f938f939f93af93bf93cf93df93ef93ff940f941f942f943f944f945f946f947f948f949f94af94bf94cf94df94ef94ff950f951f952f953f954f955f956f957f958f959f95af95bf95cf95df95ef95ff960f961f962f963f964f965f966f967f968f969f96af96bf96cf96df96ef96ff970f971f972f973f974f975f976f977f978f979f97af97bf97cf97df97ef97ff980f981f982f983f984f985f986f987f988f989f98af98bf98cf98df98ef98ff990f991f992f993f994f995f996f997f998f999f99af99bf99cf99df99ef99ff9a0f9a1f9a2f9a3f9a4f9a5f9a6f9a7f9a8f9a9f9aaf9abf9acf9adf9aef9aff9b0f9b1f9b2f9b3f9b4f9b5f9b6f9b7f9b8f9b9f9baf9bbf9bcf9bdf9bef9bff9c0f9c1f9c2f9c3f9c4f9c5f9c6f9c7f9c8f9c9f9caf9cbf9ccf9cdf9cef9cff9d0f9d1f9d2f9d3f9d4f9d5f9d6f9d7f9d8f9d9f9daf9dbf9dcf9ddf9def9dff9e0f9e1f9e2f9e3f9e4f9e5f9e6f9e7f9e8f9e9f9eaf9ebf9ecf9edf9eef9eff9f0f9f1f9f2f9f3f9f4f9f5f9f6f9f7f9f8f9f9f9faf9fbf9fcf9fdf9fef9fff900fa01fa02fa03fa04fa05fa06fa07fa08fa09fa0afa0bfa0cfa0dfa0efa0ffa10fa11fa12fa13fa14fa15fa16fa17fa18fa19fa1afa1bfa1cfa1dfa1efa1ffa20fa21fa22fa23fa24fa25fa26fa27fa28fa29fa2afa2bfa2cfa2dfa2efa2ffa30fa31fa32fa33fa34fa35fa36fa37fa38fa39fa3afa3bfa3cfa3dfa3efa3ffa40fa41fa42fa43fa44fa45fa46fa47fa48fa49fa4afa4bfa4cfa4dfa4efa4ffa50fa51fa52fa53fa54fa55fa56fa57fa58fa59fa5afa5bfa5cfa5dfa5efa5ffa60fa61fa62fa63fa64fa65fa66fa67fa68fa69fa6afa6bfa6cfa6dfa6efa6ffa70fa71fa72fa73fa74fa75fa76fa77fa78fa79fa7afa7bfa7cfa7dfa7efa7ffa80fa81fa82fa83fa84fa85fa86fa87fa88fa89fa8afa8bfa8cfa8dfa8efa8ffa90fa91fa92fa93fa94fa95fa96fa97fa98fa99fa9afa9bfa9cfa9dfa9efa9ffaa0faa1faa2faa3faa4faa5faa6faa7faa8faa9faaafaabfaacfaadfaaefaaffab0fab1fab2fab3fab4fab5fab6fab7fab8fab9fabafabbfabcfabdfabefabffac0fac1fac2fac3fac4fac5fac6fac7fac8fac9facafacbfaccfacdfacefacffad0fad1fad2fad3fad4fad5fad6fad7fad8fad9fadafadbfadcfaddfadefadffae0fae1fae2fae3fae4fae5fae6fae7fae8fae9faeafaebfaecfaedfaeefaeffaf0faf1faf2faf3faf4faf5faf6faf7faf8faf9fafafafbfafcfafdfafefafffa00fb01fb02fb03fb04fb05fb06fb07fb08fb09fb0afb0bfb0cfb0dfb0efb0ffb10fb11fb12fb13fb14fb15fb16fb17fb18fb19fb1afb1bfb1cfb1dfb1efb1ffb20fb21fb22fb23fb24fb25fb26fb27fb28fb29fb2afb2bfb2cfb2dfb2efb2ffb30fb31fb32fb33fb34fb35fb36fb37fb38fb39fb3afb3bfb3cfb3dfb3efb3ffb40fb41fb42fb43fb44fb45fb46fb47fb48fb49fb4afb4bfb4cfb4dfb4efb4ffb50fb51fb52fb53fb54fb55fb56fb57fb58fb59fb5afb5bfb5cfb5dfb5efb5ffb60fb61fb62fb63fb64fb65fb66fb67fb68fb69fb6afb6bfb6cfb6dfb6efb6ffb70fb71fb72fb73fb74fb75fb76fb77fb78fb79fb7afb7bfb7cfb7dfb7efb7ffb80fb81fb82fb83fb84fb85fb86fb87fb88fb89fb8afb8bfb8cfb8dfb8efb8ffb90fb91fb92fb93fb94fb95fb96fb97fb98fb99fb9afb9bfb9cfb9dfb9efb9ffba0fba1fba2fba3fba4fba5fba6fba7fba8fba9fbaafbabfbacfbadfbaefbaffbb0fbb1fbb2fbb3fbb4fbb5fbb6fbb7fbb8fbb9fbbafbbbfbbcfbbdfbbefbbffbc0fbc1fbc2fbc3fbc4fbc5fbc6fbc7fbc8fbc9fbcafbcbfbccfbcdfbcefbcffbd0fbd1fbd2fbd3fbd4fbd5fbd6fbd7fbd8fbd9fbdafbdbfbdcfbddfbdefbdffbe0fbe1fbe2fbe3fbe4fbe5fbe6fbe7fbe8fbe9fbeafbebfbecfbedfbeefbeffbf0fbf1fbf2fbf3fbf4fbf5fbf6fbf7fbf8fbf9fbfafbfbfbfcfbfdfbfefbfffb00fc01fc02fc03fc04fc05fc06fc07fc08fc09fc0afc0bfc0cfc0dfc0efc0ffc10fc11fc12fc13fc14fc15fc16fc17fc18fc19fc1afc1bfc1cfc1dfc1efc1ffc20fc21fc22fc23fc24fc25fc26fc27fc28fc29fc2afc2bfc2cfc2dfc2efc2ffc30fc31fc32fc33fc34fc35fc36fc37fc38fc39fc3afc3bfc3cfc3dfc3efc3ffc40fc41fc42fc43fc44fc45fc46fc47fc48fc49fc4afc4bfc4cfc4dfc4efc4ffc50fc51fc52fc53fc54fc55fc56fc57fc58fc59fc5afc5bfc5cfc5dfc5efc5ffc60fc61fc62fc63fc64fc65fc66fc67fc68fc69fc6afc6bfc6cfc6dfc6efc6ffc70fc71fc72fc73fc74fc75fc76fc77fc78fc79fc7afc7bfc7cfc7dfc7efc7ffc80fc81fc82fc83fc84fc85fc86fc87fc88fc89fc8afc8bfc8cfc8dfc8efc8ffc90fc91fc92fc93fc94fc95fc96fc97fc98fc99fc9afc9bfc9cfc9dfc9efc9ffca0fca1fca2fca3fca4fca5fca6fca7fca8fca9fcaafcabfcacfcadfcaefcaffcb0fcb1fcb2fcb3fcb4fcb5fcb6fcb7fcb8fcb9fcbafcbbfcbcfcbdfcbefcbffcc0fcc1fcc2fcc3fcc4fcc5fcc6fcc7fcc8fcc9fccafccbfcccfccdfccefccffcd0fcd1fcd2fcd3fcd4fcd5fcd6fcd7fcd8fcd9fcdafcdbfcdcfcddfcdefcdffce0fce1fce2fce3fce4fce5fce6fce7fce8fce9fceafcebfcecfcedfceefceffcf0fcf1fcf2fcf3fcf4fcf5fcf6fcf7fcf8fcf9fcfafcfbfcfcfcfdfcfefcfffc00fd01fd02fd03fd04fd05fd06fd07fd08fd09fd0afd0bfd0cfd0dfd0efd0ffd10fd11fd12fd13fd14fd15fd16fd17fd18fd19fd1afd1bfd1cfd1dfd1efd1ffd20fd21fd22fd23fd24fd25fd26fd27fd28fd29fd2afd2bfd2cfd2dfd2efd2ffd30fd31fd32fd33fd34fd35fd36fd37fd38fd39fd3afd3bfd3cfd3dfd3efd3ffd40fd41fd42fd43fd44fd45fd46fd47fd48fd49fd4afd4bfd4cfd4dfd4efd4ffd50fd51fd52fd53fd54fd55fd56fd57fd58fd59fd5afd5bfd5cfd5dfd5efd5ffd60fd61fd62fd63fd64fd65fd66fd67fd68fd69fd6afd6bfd6cfd6dfd6efd6ffd70fd71fd72fd73fd74fd75fd76fd77fd78fd79fd7afd7bfd7cfd7dfd7efd7ffd80fd81fd82fd83fd84fd85fd86fd87fd88fd89fd8afd8bfd8cfd8dfd8efd8ffd90fd91fd92fd93fd94fd95fd96fd97fd98fd99fd9afd9bfd9cfd9dfd9efd9ffda0fda1fda2fda3fda4fda5fda6fda7fda8fda9fdaafdabfdacfdadfdaefdaffdb0fdb1fdb2fdb3fdb4fdb5fdb6fdb7fdb8fdb9fdbafdbbfdbcfdbdfdbefdbffdc0fdc1fdc2fdc3fdc4fdc5fdc6fdc7fdc8fdc9fdcafdcbfdccfdcdfdcefdcffdd0fdd1fdd2fdd3fdd4fdd5fdd6fdd7fdd8fdd9fddafddbfddcfdddfddefddffde0fde1fde2fde3fde4fde5fde6fde7fde8fde9fdeafdebfdecfdedfdeefdeffdf0fdf1fdf2fdf3fdf4fdf5fdf6fdf7fdf8fdf9fdfafdfbfdfcfdfdfdfefdfffd00fe01fe02fe03fe04fe05fe06fe07fe08fe09fe0afe0bfe0cfe0dfe0efe0ffe10fe11fe12fe13fe14fe15fe16fe17fe18fe19fe1afe1bfe1cfe1dfe1efe1ffe20fe21fe22fe23fe24fe25fe26fe27fe28fe29fe2afe2bfe2cfe2dfe2efe2ffe30fe31fe32fe33fe34fe35fe36fe37fe38fe39fe3afe3bfe3cfe3dfe3efe3ffe40fe41fe42fe43fe44fe45fe46fe47fe48fe49fe4afe4bfe4cfe4dfe4efe4ffe50fe51fe52fe53fe54fe55fe56fe57fe58fe59fe5afe5bfe5cfe5dfe5efe5ffe60fe61fe62fe63fe64fe65fe66fe67fe68fe69fe6afe6bfe6cfe6dfe6efe6ffe70fe71fe72fe73fe74fe75fe76fe77fe78fe79fe7afe7bfe7cfe7dfe7efe7ffe80fe81fe82fe83fe84fe85fe86fe87fe88fe89fe8afe8bfe8cfe8dfe8efe8ffe90fe91fe92fe93fe94fe95fe96fe97fe98fe99fe9afe9bfe9cfe9dfe9efe9ffea0fea1fea2fea3fea4fea5fea6fea7fea8fea9feaafeabfeacfeadfeaefeaffeb0feb1feb2feb3feb4feb5feb6feb7feb8feb9febafebbfebcfebdfebefebffec0fec1fec2fec3fec4fec5fec6fec7fec8fec9fecafecbfeccfecdfecefecffed0fed1fed2fed3fed4fed5fed6fed7fed8fed9fedafedbfedcfeddfedefedffee0fee1fee2fee3fee4fee5fee6fee7fee8fee9feeafeebfeecfeedfeeefeeffef0fef1fef2fef3fef4fef5fef6fef7fef8fef9fefafefbfefcfefdfefefefffe00ff01ff02ff03ff04ff05ff06ff07ff08ff09ff0aff0bff0cff0dff0eff0fff10ff11ff12ff13ff14ff15ff16ff17ff18ff19ff1aff1bff1cff1dff1eff1fff20ff21ff22ff23ff24ff25ff26ff27ff28ff29ff2aff2bff2cff2dff2eff2fff30ff31ff32ff33ff34ff35ff36ff37ff38ff39ff3aff3bff3cff3dff3eff3fff40ff21ff22ff23ff24ff25ff26ff27ff28ff29ff2aff2bff2cff2dff2eff2fff30ff31ff32ff33ff34ff35ff36ff37ff38ff39ff3aff5bff5cff5dff5eff5fff60ff61ff62ff63ff64ff65ff66ff67ff68ff69ff6aff6bff6cff6dff6eff6fff70ff71ff72ff73ff74ff75ff76ff77ff78ff79ff7aff7bff7cff7dff7eff7fff80ff81ff82ff83ff84ff85ff86ff87ff88ff89ff8aff8bff8cff8dff8eff8fff90ff91ff92ff93ff94ff95ff96ff97ff98ff99ff9aff9bff9cff9dff9eff9fffa0ffa1ffa2ffa3ffa4ffa5ffa6ffa7ffa8ffa9ffaaffabffacffadffaeffafffb0ffb1ffb2ffb3ffb4ffb5ffb6ffb7ffb8ffb9ffbaffbbffbcffbdffbeffbfffc0ffc1ffc2ffc3ffc4ffc5ffc6ffc7ffc8ffc9ffcaffcbffccffcdffceffcfffd0ffd1ffd2ffd3ffd4ffd5ffd6ffd7ffd8ffd9ffdaffdbffdcffddffdeffdfffe0ffe1ffe2ffe3ffe4ffe5ffe6ffe7ffe8ffe9ffeaffebffecffedffeeffeffff0fff1fff2fff3fff4fff5fff6fff7fff8fff9fffafffbfffcfffdfffeffffff", 0x20000, 0x88000}, {&(0x7f000003c900)="46494c4530000300000000000000000001000100380001009801000000040000000000000000000004000000000000000800000000000000100000006000000000001800000000004800000018000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000300000006800000000001800000002004a000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010070000000000000006c0000000000000600000000000000040324004d0046005400000000000000800000004800000001004000000001000000000000000000250000000000000040000000000000000030010000000000001801000000000000180100000000001126080000000000b00000004800000001004000000003000000000000000000000000000000000040000000000000000008000000000000100000000000000010000000000000001101040000000000ffffffff00"/416, 0x1a0, 0xff800}, {&(0x7f000003cb00)='\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\b\x00', 0x20, 0xff9e0}, {&(0x7f000003cc00)="000000000000000000000000000000000000000000000000000000000000080046494c4530000300000000000000000001000100380001005801000000040000000000000000000003000000010000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601001000000000000000100000000000000600000000000000080324004d00460054004d00690072007200000000000000800000004800000001004000000001000000000000000000010000000000000040000000000000000010000000000000001000000000000000100000000000002102ff0100000000ffffffff00"/384, 0x180, 0xffbe0}, {&(0x7f000003ce00)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0xffde0}, {&(0x7f000003cf00)="000000000000000000000000000000000000000000000000000000000000020046494c4530000300000000000000000002000100380001005801000000040000000000000000000003000000020000000200000000000000100000006000000000001800000000004800000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000000000000000010000000000000000000000000000000000003000000070000000000018000000020052000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601000004000000000000000400000000000600000000000000080324004c006f006700460069006c0065000000000000008000000048000000010040000000010000000000000000007f0000000000000040000000000000000000040000000000000004000000000000000400000000002280000102000000ffffffff00"/384, 0x180, 0xfffe0}, {&(0x7f000003d100)="0000000000000000000000000000000000000000000000000000000000000200", 0x20, 0x1001e0}, {&(0x7f000003d200)="000000000000000000000000000000000000000000000000000000000000020046494c453000030000000000000000000300010038000100e001000000040000000000000000000006000000030000000200000000000000100000004800000000001800000000003000000018000000006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601060000000000000000000000000000003000000068000000000018000000010050000000180001000500000000000500006f95ffc78dd601006f95ffc78dd601006f95ffc78dd601006f95ffc78dd6010000000000000000000000000000000006000000000000000703240056006f006c0075006d00650050000000800000000000180000000200640000001800000001000480480000005400000000000000140000000200340002000000000014009f011200010100000000000512000000000018009f011200010200000000000520000000200200000101000000000005120000000102000000000005200000002002000000000000600000003000000000001800000004001200000018000000730079007a006b0061006c006c0065007200000000000000700000002800000000001800000005000c0000001800000000000000000000000301000000000000800000001800000000001800000003000000000018000000ffffffff000000000000000000000000000000000000000000000000000000000000000000000200", 0x220, 0x1003e0}, {&(0x7f000003d500)="0000000000000000000000000000000000000000000000000000000000000200ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff73797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c6c657273797a6b616c000000000000", 0x40440, 0x1007e0}, {&(0x7f000007da00)="eb52904e5446532020202000010800000000000000f8000000000000000000000000000080008000fe1f0000000000000800000000000000ff01000000000000f6000000020000003daaf55af9830909000000000e1fbe717cac22c0740b56b40ebb0700cd105eebf032e4cd16cd19ebfe54686973206973206e6f74206120626f6f7461626c65206469736b2e20506c6561736520696e73657274206120626f6f7461626c6520666c6f70707920616e640d0a707265737320616e79206b657920746f2074727920616761696e202e2e2e200d0a00"/224, 0xe0, 0x1ffd00}, {&(0x7f000007db00)="00000000000000000000000000000000000000000000000000000000000055aa", 0x20, 0x1ffee0}], 0x0, &(0x7f000007dc00)) 05:17:23 executing program 1: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000080), 0x0, 0x0) r1 = ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) syz_kvm_setup_cpu$x86(r1, 0xffffffffffffffff, &(0x7f0000fe8000/0x18000)=nil, &(0x7f0000000040)=[@textreal={0x8, &(0x7f00000002c0)="660f388135dd5d0a0fc79d07000f00da0f08baf80c66b8de27238766efbafc0cb80000ef66b92e03000066b875c8000066ba000000000f30660f38809c5bfcf00fc0333618260050"}], 0x0, 0x0, 0x0, 0x0) r2 = ioctl$KVM_CREATE_VCPU(r1, 0xae41, 0x0) pipe(&(0x7f0000001240)={0xffffffffffffffff}) vmsplice(r3, &(0x7f0000000000)=[{&(0x7f0000000500), 0x3528a9c0}], 0x1, 0x0) ioctl$KVM_NMI(r3, 0xae9a) r4 = fcntl$dupfd(r2, 0x406, r3) syz_kvm_setup_cpu$x86(0xffffffffffffffff, r4, &(0x7f0000fe8000/0x18000)=nil, &(0x7f00000000c0)=[@text64={0x40, &(0x7f0000000100)="0f20c035000001000f22c00f01c2663e36f30f0966400f60a0c043000048b8c4000000000000000f23d80f21f835000000a00f23f80f7916c4c24d3b39df12430f01c865f30f09", 0x47}], 0x1, 0x79, 0x0, 0x0) syz_kvm_setup_cpu$x86(0xffffffffffffffff, r2, &(0x7f0000fdf000/0x18000)=nil, &(0x7f0000000180)=[@textreal={0x8, &(0x7f00000001c0)="650fc738798ff20f300f09baf80c66b88ca8dd8366efbafc0ced66b8fb4f00000f23d00f21f866351000000d0f23f8f20f2a1ee58c0f35670f01ca3e66660f3881a17b30", 0x44}], 0x1, 0x0, 0x0, 0x0) perf_event_open(&(0x7f0000001340)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78, 0x30316, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) ioctl$KVM_RUN(r2, 0xae80, 0x0) 05:17:23 executing program 4: perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x81, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = socket(0x11, 0x2, 0x0) ioctl$sock_ipv4_tunnel_SIOCDELTUNNEL(r0, 0x89f2, &(0x7f0000000200)={'syztnl1\x00', 0x0}) ioctl$sock_ipv6_tunnel_SIOCADDTUNNEL(r0, 0x89f1, &(0x7f00000000c0)={'ip6gre0\x00', &(0x7f0000000000)={'syztnl1\x00', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @private1={0xfc, 0x3}, @private0}}) socket$inet6(0x10, 0xd, 0x0) r1 = openat$vcsu(0xffffffffffffff9c, &(0x7f0000000080), 0x40a400, 0x0) sendto$inet6(r1, &(0x7f0000000280)="30550bdff1887ead35a6a63dc8aa53264b268b85a1444819684356449d6602067d5dcaf7e27c0fe26902d30c5f1b0fa5ae8a4d09e7dad5841a17738021d623f2562081b969fa32ac57a6c28e044fccfa4ef02e9da9ca8e568241fc95693c5f1933641738300dc23b59eee19a060003976d639f1f067b5c2d748ad830c0e16820db6b7225a0c4b15911adcbb228105811317d9f7ff5aa5f121b4330b9d4cca84842692e267ca8e53c533e4136fcb8aab10d6db897f55dc761cbca93d3d030b216245fded098a115540c3ed1e068fac11e60959c2bdbd4fcfe6664e74bb16cb3ec0e5a03983add8645cfcaf1bb674c12a0ecfc09c66bf41a4b7b95cc8708bcd5afd996139217ed2acba3d6e545463851b562542360ee3d40b78b2527cca2e72bdce44bcb25c6071b5609b1b8afd8731f22c85d2cd4d78047bbbc8c144c77308a819142437436d0007515016e0745838ca92c0afb75b3f883dea96500a12b9db3f4018a2130ff2b007382c40283a0e426050a6899c48eb6afc1b43784efb517b64a45126eb5e48987f586218c1c18bcbf7634498ca6691f87816dd3809355ff4c12735fb4bd18907ae5749c5d5b848ed0f17c0fd94419352f6e3e0f0ec5304a8d96e668b9cf90611fe0fc2d792ae72c700e31cc2bd450a80dda8bb6b23cd16d6b1e129dc6a4d586a770846e002b80be2d12a6bec5175df5b69f771b1412706104661e05e370a6b172c5d574a353aaf73c1f584f7f12bc02f1f23b45641a8b7d905bec18fa429b7843e33a101c6a74d5fd01af6512363c7e563aba4767af762e2c1f1aabc6526eb60f79a4a9c6eed68c0321883578ccb00b2c54ef2661e7849ca1bdfe38e9edfe32a6b88550a2c94c7fc3ff1a8d0fc275484469b6d8089fe9a2eaa362d45f7b419d9918c38843e30bc5bc64d4931b5590b90ea10cf9a1aef23cae1696b602f5a19cccde282f6284e221fa9a03a2fd5e87a7e7fd267032c797e4a7045594470a51dc71885c1faa14c634e1fbf98587c04bec8f946bd55d390b4f4d4b7aa3f2cc9802011e885769da4d297f9c9cb11dbb4e3598c3b3b528d4f729066f7bd5e541c043310adeb95211cb1a1211d4d69cd8ce6d133d90694774835c0e607f371f18b4d156fe310d25cd154c9cf0f08944d6169777a948215bced728c10c5cb3fe4d13c3c42605ac02cffc89ce191b2472314689028a0f7031cfaaab3bdcb79bc890badbd6cf2ad56ca71fd55203112298d82b3ee932deac1d44b0775ca84be6b3d5ca909e4e1a6e87e11309c4b2018ea937fb885956a5d7d4ba1496474ea718085226912f23a27b00e6327fe5da20912bb6ee247b764428d08d219615fc2424d2fd89881a69c129f4d2acbee9b16cee58d5c1009d26c0e10f602b7c7e270e673b6b4ad2e215b5f7f276f5cbc68194064a5ceb1f836ef208eabeda993cf3fc516e354cc81a0d601010ad62c81a827e551aff77efb16f19ec7e835b59b0f8798ea62c3aee4e0f6b09932fa1f36b3f2daa0b70c0c1ace1b4e349f63b806bae8eb72d1a5cbe07fc18484cdc8c043a68ca21cb5c42c9633c4119bf723100f0ed1eff9518e3b84ed8ffb3c4dcc7e7cb932c37ae8592abcd12148feff825b0313e1c0c6434506e212442fb179119ad790b0d5d1cf05421cb5995821efe0f4028df5ec7e118ee0a02fd006cc6ab4717b7cf841fe5b85e52e51e4904628583d33ce4120a7e2ae894dd00c6e7f21c0de596308934e74745cef1d141cac9de7497614b86cc6999735b1960af04c51b25e8e153bb2abdcc255874ee0f56a6e4b2a4e15c3797fbebf8b8feab9e548dccdfd5343f95faaff6dd33c5417e92d8a8910acc6f16c6606cdbe9780e8fc40044b73d55aa7e014ef119ca82b9e5c9439e7fee3fe5e32076a372c2e034391dbe9720ba1d0760ab737c4ff582bab1411c44059374b63eb0638b9f73d441f5942a8a8d4312c4c3bbd76386f6f6df4147284739d5484aca4c4f6356e8a9ff1f3a5d0545c1a121c860e27bcbc81769459dc9eeb9dbbad5bf0baa30b31947d00598521a87de5a4403d1f828a1f195116e323b705682f46f6b4cb09f94342110f4b6ab825ad5d64d06abe2a968d2c6bbade32ba294698de1173c0ab2d8e31c0c40c9abdce7394a62da2f036421ccb2bf3884bfdab16d36886cc47ce35d547b1769103dd863977f02ee634ee910742e42d46ee2af62f5d1596467f7387ff79c876a726584677bbb385d6f9b216c790f39ef9e242cc136656311ba6c99c4fbdf37b1d73f396a4570d4eb2e7c62c2f630d33d23db99315cad1a58cee1bf446902e2cbc2ee7e0c2016f30b58afda7b50e3ee2d741785e43e3c8c526ae71252d40661e9d476c93ba41575f5d5bc0f2502ca5ee368309985b0702fd9f57b3f3ad3c430b2917a56f3f34485f68b67ecfa165589e9c40b831a77cb794399e9dbe1f0c995c5320e0358221621a61ad1424b6247369fe3aed0338b14f35a6bdf33188af608b6c47445500d759b3e332c5fd3a33cb28e5ec7bb1d0f18a82abc47f26f24cab22bfe2f06f1683cbaa8517ddb364273c51bcc95c1ab9f7b920c6d8e377eed75f429c68bef95f8265b8e4caf3c0670c9de513350d91bc8c74205c7090f7d86dabe3db5ba4a15a38a208dcf8692f139eaef8e57bcf1dd4ba1a86ce719751ac1a2ce28caf0bb6e659c431407c5bef20aab8175a36b8089d98f2cb96cc48bc3f45e73b22eb8cfc339e8ba8da15b01dcd48eeb2a2c73f5b87a89f9956b782fd10537037ca1005153a3b8d0db4c71ca34bc8e7671ced580e967aa823559160760ce584b1d144f98c72d3b8f341bfd70d2d7cf0adced7a48d8a06ce06df57d282af4616670fde9f391d4addc543ce7abfc30f43ca680b32d210ae234a7e863e0791b73424ae1784f9977531c7923e4e9e3053539e4676f8688e6d7a70759f1110f5853677bc74ff09782ed823def17f60945a822d855691f5823d93d9899fe8720227c09a7fc103713652ba271092c2bdb2f461243fc8f6bb74b2bf6e40ab3e3e76d505400cb3020895c4d8f0cbad12aea4904773d0a7952b140bf01aa0b4044b68f9116f3da28d2fc4412ec9c558e3105d32d4e12d65b7a06289cfa74fa3a20fcbc0b3fc36a65dd3a284f752712ce3b2602d97427583b31ae01bd119fbc0bb634379f5a39604de2a0005bb6dbe534925744bc85bf359a33d603ba8ef91c2d4f45d839b8df53b6b5ecee1562b62a04a22af55344cfa1966fa4020386d1cf7c227fc060a6cd21d7a721668fd9c00ed55df7cfa45d07556493c664f096b663ffc5d9ad9afa6bf36ac7a89e077ec2d99b3c73578ef24b2a97827bab7648ee1d232f80004d5fe74d9bb92dcdbe1870c5f8d22b5cd40b686eb72d472c0e565eb9fb9b4fa6e17211720281d4f306d44862e5e9265a326c21958ddcbf05ee5afc9af150175f3e2d3dc9fa0e4bd79b4d4d5a4846b57f6de34944b4439bc38717b4a5650bb8df926a04cc21701d904829c9fb8d2b59e7ac99977f5c4228dcd0bb5c4188e9fcc8d1013e1713aa974b44d219647afec1dfb815fda4e1d6bb302d1522a071f886b6b76eb478055d6dbebd482f541d0a23d3c364e452486e3076e8abce2f59d6a861f9cfe6cff3ea125dd2ded24399b1df0d37d274a3a2c10ecce9c533d715362c4f1ac27157ee2bc102f325b1b3d4d19da8b777e7e53b4367157f75733f01c631d4bdfff0341e29572987ca85d6c81f5f743cf4e09b7bbdc40f026501d4a571ed9f9f1fece0be50a59a48887943a3dfa084dfc6d980f88b68ac9b0d2d3973f54279c2ae337085245fad882c4a1390fb95c0811683a7e85231251433e64ce26869328815df5a7cc8a9c766f920e0d0403bfef2d5669437d8bc49872d347dde7498aa3bac65c89fe59e766bdc762e6b723300400e0cb86ac5ea564cefde59a9318d53f5acf02576dd1bcd1dc96bb0d276cbb305ca4510f20b8509b8324269751ac62e1386ce4a2f83977feb0fbe9c6a80d881d520272100a1ebcf6e719bdefacee97f677033c28643c16a82c4aa67696d7ae8d5daf70c8ac42e7b90ec41df0219a9d66197ca9e9b28327d77359f78e22bbb84188ca086a3c22b5baf599a01f848e0bf1b0a16b8429d2354e9c274d6329c4192fca675517485b59631ffec78097c8c3b7f4bba4448a02a702a5de6c975e64cd06c0dd9cbf301cfd5f576496d4311fce32069641f601620f03d85f9df1e0dc53e3df1839788c3f4b71dc4b31c7b1fe71d70034869150cccc21ecf8f196705cecb165c41f2a45feb8dd06877677e82d1712e7dd706c6b59c86a4994926a05eb0fb363ff0a56912a1a2e5d16fd0bc8a565d1d09966780109cce33822dcf94ce0172c8ab062a8c585f673b485047866749a98314373bcb98ec30a288d616dcbbada194651414994173ee7fa4641c5ff02432578a52fc69f883ecc3c0415fe926ed6c3b46e9130dcb9e1a294564f94e8a8db454fe5b9370b61ffe3a829d34b2d755179290aeb87951690c1a1c9a8a0c5eeb5b546efe637d3587a8bbe3b2c049a62543b26731f688b0b6a9e59d9de790a6bb09cf5d42f7f44b2a57a07b4d128ca28639d70004dfdc252623563e5a9e510cac645e2ad141e82d5e3d40970856fb1ca4c6e34a8340f47eb868cf4c08030ea97f907a4accc717030d73b91b7c076313435388b225c058f8dbb1ba8ae52b8e0a903910169a6c6d12d9079b05b13f10f7894833849dce3f3d5923fb67000c432d783c1e2d73a5102bcfcb44b176bcb9b96889b88fcca100b6ee381f80e27f476a0fa34e848b8bf1b40f90b8ea5537922ba329fd9d9a4508ee013c1e0629b679af5500f309901997a44b892ae8e2cf79260c63d57b205c355c868e70d56197029b56bd88c55234fb3bbbebd0c58303f88746c0354c7a8927acb01895fdc2b5d9f27d86da7d06cc1eba2d2ddf85157f134b2bd49670e3e6b920a6dab13a7c455a6d62a144eeb9477cff7a0fe6ca158c3b929fa90bd37c45c69dc38f3c2c0f12d2875824119e8ecce11eeee2c6b6157ee95b7aec9e5315c0c9e7d903ea0388bf195ff763bdecd185d679e91937b36904395348ce2a94ad223061caf7cc4e212c5ff814f94b7bedb3db0cff77f28b81671212f98f9860201805fbb9a033bb19f53f8b2a9707909593579d3c92d269a683def76545e33e2af49e9357f46227ba11c1e889c13293041b55a4bd35be4cd6be847b221dacfa341d71f70c86d27b2f6837c2d08f770cb7ebf4218c281747eb3e53b03deb229cd9eb766f2a3a8f35e1e3f31cba9e4a8849e481ab9874d8d65cacdbc75fb8cdc4911398bcd55773447e6309a0007fd3f103549cd91ee05d4e6e2f1cb084f431f2a73298e50c942b805522ea26edf4170936f97b4e467f73eeec59b8f7cb0a8b4294177c97c7d380639da525a4644949e14a0a0bf43e797e37161561a098cf64c2cbaeabfd9c3f579251ba11e5b8a6f8fcd6964f8e9e0a8ed4a51d4903bef844cfbce1319374cfc3fb8e901191a373da6528371c126f72bbafc37c0982dfb34a2c51ee8c324ff61db894358d6e31765c7dab9707789af3fa1366cb094a30bc46d0624458aec7b99dbf591aebfdb7414b209f444941c251384837e921a04b891e43aeb8a1e35aaba8f9c732a862548b70ae28cba08500e225e56c740e9745b73be5ce51d283e7b77a028cd65c31c753c25ddd29b8e446003f5514f78a1503d6fbf34e38b023688fb5bee671cb736d0cba8427a36e54d0dd59af844da931e7234092925ea52c67db7d36", 0x1000, 0x1, 0x0, 0x0) r2 = socket$inet6_udplite(0xa, 0x2, 0x88) sendmmsg$inet6(r2, &(0x7f0000000300)=[{{&(0x7f0000000000)={0xa, 0x4e23, 0x0, @remote}, 0x1c, 0x0}}, {{&(0x7f0000000040)={0xa, 0x4e22, 0x0, @mcast1}, 0x1c, 0x0, 0x0, &(0x7f0000000180)=ANY=[@ANYBLOB="1400000000006200290000003b0000000000000000000000eec3e1a055b614153f4ad78bedac59d156157c8794ff7f80731251b6a58049da20bbd14e74b844360740ada81b7f7077fc656df3b490784978185e03c6d9e6ce857242f9108e0b8ff033f1b2618da1c10c1f02491acf055303f4a2527f2e2276930d40a8b703"], 0x18}}], 0x2, 0x0) signalfd4(r2, &(0x7f0000000140)={[0x6]}, 0x8, 0x0) 05:17:23 executing program 3: recvmsg$unix(0xffffffffffffffff, 0x0, 0x0) r0 = socket$inet6_udplite(0xa, 0x2, 0x88) sendmmsg$inet6(r0, &(0x7f0000000300)=[{{&(0x7f0000000000)={0xa, 0x4e23, 0x0, @remote}, 0x1c, 0x0}}, {{&(0x7f0000000040)={0xa, 0x4e22, 0x0, @mcast1}, 0x1c, 0x0, 0x0, &(0x7f0000000380)=[@hoplimit_2292={{0x14, 0x29, 0x3b}}], 0x18}}], 0x2, 0x0) r1 = socket$inet6_udplite(0xa, 0x2, 0x88) sendmmsg$inet6(r1, &(0x7f0000000300)=[{{&(0x7f0000000000)={0xa, 0x4e23, 0x0, @remote}, 0x1c, 0x0}}, {{&(0x7f0000000040)={0xa, 0x4e22, 0x0, @mcast1}, 0x1c, 0x0, 0x0, &(0x7f0000000380)=[@hoplimit_2292={{0x14, 0x29, 0x3b}}], 0x18}}], 0x2, 0x0) socket$isdn(0x22, 0x3, 0x24) r2 = epoll_create(0xa54) fstat(r2, &(0x7f0000000280)) r3 = perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) syz_mount_image$minix(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x0, 0x3, &(0x7f0000000180)=[{&(0x7f0000010000)="00040000000001000100440000000000ffffff7f800000005a4d", 0x1a, 0x400}, {&(0x7f0000000a00)="feffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0300000000e0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000000000009ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed4103", 0x783, 0x880}, {0x0, 0x0, 0x11000}], 0x0, &(0x7f0000000200)=ANY=[]) perf_event_open(&(0x7f0000000200)={0x1, 0x80, 0x0, 0x7f, 0x8, 0xec, 0x0, 0x2, 0x12451, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x3, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x8000, 0xb, @perf_config_ext={0xfffffffffffffff7, 0x10000000000000}, 0x802, 0x80000001, 0x7fff, 0x0, 0x8b2, 0x4, 0x81, 0x0, 0x5, 0x0, 0x2}, 0xffffffffffffffff, 0x10, r3, 0x8) chdir(&(0x7f0000000040)='./file0\x00') r4 = open(&(0x7f00000000c0)='./bus\x00', 0x141042, 0x0) syz_mount_image$ufs(0x0, 0x0, 0x0, 0x0, &(0x7f0000000140), 0x0, 0x0) write$UHID_INPUT(r4, &(0x7f0000001440)={0x8, {"003dcf00089000f0ffffff0000000100000000000000000700"}}, 0xfffffc41) creat(&(0x7f0000000080)='./bus\x00', 0x0) 05:17:23 executing program 2: openat$ppp(0xffffffffffffff9c, 0x0, 0x0, 0x0) perf_event_open(&(0x7f0000002a40)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}, 0x0, 0x0, 0x0, 0x0, 0xffffffffffffffff}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = socket$kcm(0x10, 0x2, 0x0) sendmsg$kcm(r0, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000040), 0x0, 0x0, 0x0, 0xf000}, 0x40) perf_event_open$cgroup(0x0, 0xffffffffffffffff, 0x0, 0xffffffffffffffff, 0x5) r1 = openat$procfs(0xffffffffffffff9c, &(0x7f00000017c0)='/proc/asound/seq/clients\x00', 0x0, 0x0) perf_event_open(&(0x7f0000001740)={0x4, 0x80, 0xc9, 0x3, 0x76, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x7, 0x3, @perf_config_ext={0x3f8, 0x8}, 0x18285, 0x7, 0x80, 0x7, 0xffffffffffff8001, 0x3, 0x5, 0x0, 0x1f, 0x0, 0x5}, 0xffffffffffffffff, 0x7, r1, 0x3) openat$cgroup_ro(0xffffffffffffffff, &(0x7f00000002c0)='freezer.parent_freezing\x00', 0x0, 0x0) r2 = bpf$BPF_BTF_LOAD(0x12, &(0x7f0000000140)={&(0x7f0000000040)={{0xeb9f, 0x1, 0x0, 0x18, 0x0, 0xc, 0xc, 0x2, [@func_proto={0x0, 0x0, 0x0, 0x2}]}}, &(0x7f00000001c0)=""/4096, 0x26, 0x1000, 0x1}, 0x20) ioctl$TUNSETVNETLE(r2, 0x5450, 0x0) r3 = socket$kcm(0x2, 0x5, 0x84) sendmsg$inet(r3, &(0x7f0000000400)={&(0x7f0000000300)={0x2, 0x0, @private=0xa010102}, 0x10, &(0x7f00000003c0)=[{&(0x7f0000000340)='U', 0x1}], 0x1}, 0x0) r4 = syz_open_dev$dmmidi(&(0x7f0000000080), 0x100000001, 0x70c1e1a19af6a06c) pwritev(r4, &(0x7f00000016c0)=[{&(0x7f00000011c0)="aa6b6bcc010f59e79657012146d90269de556eac84c0e5e2bb5370b10ef5241b36a0f948844c4092bcbef640a6b489295c148df105a690b683d924a2a062a4ab5bfab89b4a55a91137becf7df9d617f49b5fe9aa1b42fa7af34fdc73cdf3e4fab6aa0361163711ba8a8cf6978a68aa957beba09ec324a406593a2be3f8e85ca0124b132c04e48f680cb0e51e0e425038c62b28bf5ad50adc7fe6ef9e60e1efe3d49492031c31bb52bd0bb511517881b31668b9c2981d16c3501a3d3f91bf9d63cfe7a00f4e381ebde017e4ceb3d333779d7fca7e26838dfef76e05a30b8a1ac780bc31e1536d8fe570eedc21dc91fb36915d0d8da57843b846", 0xf9}, {&(0x7f0000000100)="ff99606535273d6caccfe2d9", 0xc}, {&(0x7f00000012c0)="a6b466b314d48900ba2d5b9e2cf205fe68a1ace37128a22dda6f096339cec02dafea7163d56f1df1fa06fb50c0209199b215344671aa0e0dc133e051b5bee55600897c8d9233160d242ca6935ed2", 0x4e}, {&(0x7f0000001580)="54e77504c8b4647ed720ec9010169de67ad6695c483579dafda1f17a7cdadc1ec4d5b864324612f3d7dfbd879bb8fd98860d9ddef3457580e7123fda4610a225ea189653ca74aac7643e856cd2ecdebdf0b249aad574e675a9f380d86ce909ef10794b561af867b369603720c4b1d45011eaa7ed12796c54b4c453e5f43fff172a727a8f2f2c2778e68590cda08db05b3959ab9874f456e5a0a5d66e4363bec1c999332caae32297", 0xa8}, {&(0x7f0000001640)="1601feb75cc13c15d44431842b30c36641c7403dc9025bda1cd92d3fd28b0164dd2525fe900598709840a57ce4931f6b07b98d8a79f7cd230de9f3d87ea54856845f773950e51112d7ccc65333197e21f2b2bf3bdab6197538fe9ee20f", 0x5d}], 0x5, 0x80, 0x9) sendmsg(0xffffffffffffffff, &(0x7f0000001540)={&(0x7f0000001340)=@hci={0x1f, 0xffffffffffffffff, 0x3}, 0x80, &(0x7f00000013c0)=[{&(0x7f0000000000)="c89489a20690c96e36e0d9b1da59a0991d74123c7428232c18cf42c751c48ade9dbafb8d62ed9b4ad3355263207904509252d29a4635659295ef95ff0a5538", 0x3f}], 0x1, &(0x7f0000001400)=[{0x110, 0x101, 0xba86, "c1351382f1df81937206aa1667793c96db456a3a92c7fbcdb44a5d8fa30d9d97ff76fa178b7dc416a71e3037eed1c82139fcfa015c94e926ca0b87eec32d1bf0fcb21f085ef18cd4092c5adfc691760c472b43942a9941a1c2cc95496720d79bbb58e41ef8b2ad66f5ac776539481d117cec727293020c4385d845784df08a8c2d556c74b4be65ca76d29a15f0a6f6b1d31d4970b1f183dd43dfded3c3a6fc94948c056cc025134167c65cb871264dce2aef015e20133c8eb1f91d7a4e4820a0180a882a5619ab3d9f72989db6fa71f5b22e98ee9387bb9685cd7229f8dd01caa857597eec9e5205e989f0aeb8d4832bb84a6c592f71b4508fbdcf"}], 0x110}, 0x20000000) recvmsg$kcm(r3, &(0x7f0000015f80)={0x0, 0x0, 0x0}, 0x0) r5 = syz_genetlink_get_family_id$ethtool(&(0x7f0000000580), 0xffffffffffffffff) sendmsg$ETHTOOL_MSG_COALESCE_GET(0xffffffffffffffff, &(0x7f0000000780)={0x0, 0x0, &(0x7f0000000740)={&(0x7f0000002a00)=ANY=[@ANYBLOB="18000000", @ANYRES16=r5, @ANYBLOB="763853d7796fda346595ec9691413c37d00a32a6bb47942ff9c64952cbf16028517f071fa2040f96bff4fa"], 0x18}}, 0x0) sendmsg$ETHTOOL_MSG_COALESCE_SET(0xffffffffffffffff, &(0x7f0000001940)={&(0x7f0000001840)={0x10, 0x0, 0x0, 0x10000000}, 0xc, &(0x7f0000001900)={&(0x7f0000001880)=ANY=[@ANYBLOB='L\x00\x00\x00', @ANYRES16=r5, @ANYBLOB="020026bd7000ffdbdf251400000008000e000608000000080006000700000005000c000000000008000a000900000008000a0000000000080015000900000000000020000000"], 0x4c}, 0x1, 0x0, 0x0, 0x40000}, 0x4000040) sendmsg$inet(r3, &(0x7f0000001980)={&(0x7f00000002c0)={0x2, 0x0, @loopback=0x7f000015}, 0xfffffffffffffe64, &(0x7f00000029c0)=[{&(0x7f0000001800)='K', 0x1}, {&(0x7f00000019c0)="9fc532dea6eeae902f32c4fbe1d4e92eb94e6c90c7d288dda1c1eeea772c009ea288976b91850504e05cfc4a9fb921c391e6976330c32ee648d73710e62e907298216ae51a31d966690befeaef8a9f45e45ce307533ca9b88dcdad492baffbd3ea6c54c05e0ce95ba0ae027764c26badf593e22a39bc57e62d6cdd03203c0512e4a3f0608891796e03018780490a70ec06375b96054101573412913a2ab12a1a40be6ae054d575b7d9afc802299aa020427007c868e33c22319c27095b7514c6e7cebb396344e08ebed74704dae233d739a277a92d335b3505929248fa591ddbdc2d61e5299bc12362bb1c93f7cb1392780347f8103c4769d8aac2daf9837098b09e509264cdd32d98ce1551f819ff11b768598b26ee220fff7c25ebd04fbb521ab031abb2408a30c93ad045cc4a774dc1a72c1c925640db6d948882791c1e93307f21a3652cddc8bf7b43fc7ccdbd482b1e8b88b684b40e917ce810b0be36860e122ff7cf7e3a7ce78173615221f256fed4ffaf45b9673fc01b4aa12d2f1749a4a33004df89223b716683fec8804616a309a5c7d3bc39b43db001fe106afee37d142c1e8503f3fd9d03b3d26d6a9c86da6efed50cbf348be971953f05df2d81bf5d3a29e3cf008fa21305e29c5d31e7e5fd9e6f189440a87e5d99688a04160fa99276cf431b32cc0d717b0beace87869bf9f7115c824d555d2a5c96ac049c8f51a617d229669e331131deb00d6b9821fe5236802d08f6d9abba4904aca5542e2dbd47e1f4ac787d568e714a313a3c292099251007bdc5beb7ac341967a00ea0b94c6e2b9fa5316d1078a0262a95167f26638bbd9bf014c91343b20e17b7225c0d5dfd32766515e4405577c9e49aecf0d57aa3f6ca575bdb3ed66cea8d52c094de963f91344abd479bbc65ea5b4ff3a8303b0760c70e706b12a9776a2d59f2df380eeec0f8ac23a2bf2d9bf189b0afe240611b7f5a2ebb81cb4b4cde82693d86f32e2e5ce2f51ad439ebe9f901718c2315a18873e63bb62efc7f16251ea170168bd55d2700910244aa05dee273fbf11d4704297c11447267de9eaca6bc14e9c74405d94be7d1392704252d85314d25de00596f80b56588cfd0393b3925213280f0b98c99c50e97b5b1f3be24e7e07d8dd0a567741550e17e0fe9d66ba34f151957827f4facc8e12879d3402ce57a3387a401457e68e70f0a17d35299a99a2dc61d76f6f08a6f1dac982895aa2717c8dac567e9232199741460664147199fec07a106255537548725160f1b393505a0813c0ab2d2e775252bdb243edf067ae2232851de6c8da5d72fe755a6f337eaa21dfdc396a545acbbb41ea83d4bafc037bef56f59ebfd94aba3033eac9e0074bf3c5af2dd73154935dbf0848d162919ba31c646a568fd09762895807edfa665b8141f319d31e43a4640f5ac04ef4d71df6f327323ae7f0442106a92711a10599ac33643dbe60b1c5d23989a6432645fcfe43c3a835350b5f52be2d51bd7975709177d8f29a42d06b615124a5c4929feef26204774aa8f471cefef8bf4c13a2bd5b0124f94dbd1fa1e3e52d56aed30810a842ebcd36fe4071a203bf583600542bc2c1954f723f98048c867e12d42507c46f5970c49ddd09916cba3d1b0728155c90da1c6162d13fc133fd24a2883d944a65aceaa36527818e236a37c4a69751df90887b40e7a5da16fea739963bdaa5a46b07bfaf60d0a5a90fc09967121e69cb10c3898662342596fea7a6f293af1c0099dd39a8411bed391d197566fe9651cc2ea6dcda76d776d7488d20ceaab399845f0230df195de07dc066d919d8e9ffd541fd04ef27ddd3b850d5bb670f3834edf8df1659fbddb26f1960f819466a3f182e586c5ae698e07e4f2abf9fb3a79086d95eddbb62a36304b601bf02ccf441a1c362b49c485ee02affb8d9c31b1d523f31ab6ec9b7bad0b212263805b9b3b56600ade9d3c88d56dd6eb59762fa88237c2ade6a5edbd319035fabb25061423cd0a179bfe815e2eb21726b47a3d54c2966f218f2015c3f5f4258d1212760efe0dcc4a5b14289f398722f909f615f404a2e3177f7da499e97a4e071209448bd573340c17641e17a67f6ff0624add8bc1d2a452135eee9d78ca7f86f995a85e40924145a7856d6b86e4fe6df5d63675634840ea3c4b3a34134e9c5bde78002295dbb642b4bab2364299bcfbaeaadd4c4fd6bb4a8e2939f01289df884c08557068428b3a80cfd9b4071101e11b9c98bd7f5e22482b2b2dab73052f797229d9a1a0311c8cc68a0c9a647c70400d20df7a41238a4ea94ef8448a3113198dffb6420a70e7295d91d3a6980a2fb9bdc8b2c0fb0a3a9c4461f08d3ecb98b9c0754dc7ff8b4f403c0f491ac3e8a54744176f2f1312f32a5e0fa811a64aa107b2a93b78809847827123fbe7bd133278637dffa7900892fa072f830ca654a85eef8c561a36c0cffd6b76a09d193243b5e93f4c94071b69cb186142efb1bd4a12c213bd5ee08ae045182a8b019a8b0951d1221982a2e6ec10efded8e584691aa1e9403fab935d50c79f4bc697d5833810f44136ab7cdc8b313daac7bd90d395c59120ccc3e800e3f3e2f54d7c49827359f87642463071df5ed504e1978898e299378a85fed941499016d299a419e78e01855dd51239e522409ab820eaa24183ded1aaae7f7796435a9c9bcbd67f103f6ecffef33990eafed98efd4fafcd89a13e3b512e56b17df0c062f3cb7f9422bd43b3bbb0c7d06d213d1bf2397f4b0e49c03871e7b44a2f491e742395971455462fa4e35a109c73b2fe6e0c9fa8f3de3696f8bf193afef012709843b7597a7d3f02d41f34d852f96db5a25933d22d4f2cffdbef546f61113204c99abf70a1c8e4ff8c00687ff550ac6f652eed81f6c0191c634730178f6f314824177d126da7622397fe34434e7674d04443e4af12238a4b1938cc0b1eb0e8a3965cc26e3cffc4f7106eab8d958c52f652d093c546c9086defa1d582d872b687e44270687b8605d76f6d00e846192c86db5107adf3b6436c79857f6aeef027d7fa4dee63845e3c3289aef6fd5632e0d284d68cdd605f998c76246e5b7c1c257ea868b256c0ce6abcdad40eaeb5d4c51bec8f9f3e84c39c2f6d8c5c50f9ecf9e7c8288d9efcbb4f56e117eb28d7d47df26c6c6720c8276ed42e5a266580839c109041b337b22298f35eab7f1445388d57d189d1f6241236007722e73464a23aaac5ec74f7bbd39771164a1f6781553c911472ab65ba42d096a8c778e8173dd21d936115aa9529387c9a63efc01f21693877a8242367150552b0ee196b041d73e047e5e0fee256d9738b65cdd427877c0104d84b732c8712860acecd8c1876d26b20ddd22d51501ad98f08247869c482a565bc28f4d19628ef17af19934597e1cbd1a2e9dc302bc637aeaf31fc4779226582c20b7f361924cd525571dffe3926c3c7d252d560d4b89102b96b9fcd5c7afb8389ff3aefa267a24760d2e8effe64dcee8634b82512c5228d429f96351b2d949fe81330df809920008f9762bf1a2f1a8e3842e73007953ed22194b74f7e5d2b0edff080c15360d3458d01309135f9ef4a9c086518e156e9bc27e9b7a185df559cff6cbf060494cfe2fefe6997cb73b0b4a909c0ba0171757a03d7155bca3b402933090989ccbf303bb39eedb13292017c2f019ea0a618da72e5c66c6572d216397bb80e4e0f55b463e0d42fe65a8b469bc448ec3c10869e87734ec3dcc4e537990e5fc8ee6a6c7e21c01fb3e79b0da7bde2cf969b34bac0ee4bf2670aba68250eb652fb00bb77e0707abb4fac301db8c14430477ffa11353cfee3076b513078935a98999e6841a733d73c431284e35f3ef3f17bc0f579d610484919021c85402df534276e697e3ea70cac8d875df227e28e4b978e1bb223cff78ded959fecb4f11b16a246c9930c63417d10d375fd0594c035b14f2b103ba8543bb6055751e67fe9db8d28b511c3761978e2a49b6da77d2a9d687b555a75e7ce27d63e15bde01c1cc9d2e729d5a0cfa0685899f8dbcb82dd6bbc2b21bf1edbbac8e4263e89638a4d2525b1d7a790fc5a192b0f9f1c9802ad7273e1e5806cff8348568422eb9fb84729032e0da62e65005b6601aee27998afb9f4f126e706e111813fd550d4844fe10636aca1866aae08b7f7847e9baf0befb53452d92f03453e4fe2d6293121900db75dce91801c030a8bfc7d3ebc50566588e9e9b942d1b0574fa5089529491b66e8c312e8e4908529dc8fb1e3e756e216d2645334a12ceed808f406aac274eaed0d81b0b2e9057841d68c26bb62b48644f07676ff5b96c5cee14b6c4e70818f94fb2553b6ce589c7b3d2bb56934406db3a1009fedd79e0515b0adfed1300d90915a7de915755b047e30e6f16d2f4c185f03f9da7d67a8c16458b8d7f624eaab735d2c108cf505abddeb5a19202dd30093b33e0607c164b8e611bbb0eef5b9976e6d787775b5636afdeddf21f8d2a049c207e404a08221313d15b6313def0cada2b842c0b05623ba80ff3271675250b3507fa7ddc47bf94f75741c6a5795d42ac3fd0344a78e92e31a6d353c626fcde5d8f9f36d552f088f51ce68c16375565fb52e765456376391d00b3641153ce72ceafc83f7cca9d2dc7891e6491909f60d3412d31fcb1411a7a928b524246284b91b348c7bc2e826045c4842dd5634f60e1fdd8fdfb8a68e6d0112f4cf50adae75810fbc1acc8ddfa0e5943f473aaa6236a1da106a1e2c7fabb2a3370af1f9129bdc28e9999b384552926bc686de2221682f024ac36e89caea3f742b2dd4fbb8aae024ac5821c89d59e793f0b26b07adbddb20dcf318ca387d30c9b6571d9673e434d7e8cdd2ea9d3191d32bf4dfd8efbc1294ef0dda4051c29a96aeaf0c0872e9185fe46480cf32de83642571fbcbdd9ed975307e8454785369a084bb86ef97829c37dee9c5138d162b71f157280127150fdb280014839508eab8cf16a3dd0e0618aa1f9c3b5d1974120fe087159a8cc83221a8257e3657da93701565e4c815e5c36965ad4ece5a4ff78bfede5645f3927078031efcdeeb318f58c6809aa78b5c9608c749218957e6bda71b89f999c9155d4422a5fe5d13087c7546232f918c7909062e440b4b1a58b4a6a9e1cd66e3ffa85ed99c82a0b086291e9281e992a96558a579491e044f99cb8ae17a9d568b4ca6067863267964189612495ae6ac74605fdcc0cacab6d04d2dddc887872a27043fb1c0fd432eef1c6278c599242cf14fc00c6e6d758202b51a526da4d3f7b4e6474470705a857a0fc9dd7e469fcfcb7051177c3840e80c5f65245173b0408606ef15af539f287e8b030b92e92ac84be91cf3e0c88235b5d31ea1e90c06af8ab1bf5b6ad0f35f189974458148d9654edc48dafe6da07786cc4fb0da6dfbb9f3d9e3c7ad0c3be1b175bc2cc8614d232bcb8b64e5584e056d3dfff71929f6f106408a0c5d1e81851b27f1f4e931c6e0c6b412e13bee4ed13a8c9a63be602d259fc18bdc25f9591cf3c38069cbce44521ffe3435da9b84a9a50dcf6cfce9b6dfa0c842e88531f0ad7251abbf5931274bcb0c5c622044f0061a49add659840448e2153b6f46dff6496282f065e8b98199c6032c284a5b368981818828fea3bb459420510ad0dcf63f6c412a467f42a08ca1940af49c9138f7de61a2ba90ea4d4c8ca6912d0a950378663c291b7b6f0a2324bbddd8e3823d3c59105e2eff72c219845d7e0c01ba08d4f7506acd50f6157898a210a4bfea9f253d9bfe99b67c13b604"}], 0x1}, 0x0) 05:17:23 executing program 5: perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x61c1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext={0x2}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = socket$nl_route(0x10, 0x3, 0x0) r1 = socket(0x10, 0x803, 0x0) sendmsg$BATADV_CMD_GET_MESH(r1, &(0x7f00000004c0)={0x0, 0x0, &(0x7f0000000480)={0x0}}, 0x0) perf_event_open(0x0, 0x0, 0x0, 0xffffffffffffffff, 0x1) getsockname$packet(r1, &(0x7f0000000100)={0x11, 0x0, 0x0, 0x1, 0x0, 0x6, @broadcast}, &(0x7f0000000200)=0x14) ioctl$sock_ipv6_tunnel_SIOCGET6RD(r1, 0x89f8, &(0x7f00000002c0)={'ip6gre0\x00', &(0x7f0000000240)={'ip6tnl0\x00', r2, 0x2f, 0x4f, 0x7, 0x8, 0x4c, @private0, @dev={0xfe, 0x80, '\x00', 0x27}, 0x7, 0x20, 0x3ff, 0x9}}) r4 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, 0x0, 0x0) r5 = signalfd(r4, &(0x7f0000000500)={[0x7]}, 0x8) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000540)={&(0x7f0000000040)='devlink_health_report\x00', r5}, 0x10) sendmsg$nl_route(r0, &(0x7f0000000580)={&(0x7f00000001c0)={0x10, 0x0, 0x0, 0x400}, 0xc, &(0x7f0000000540)={&(0x7f0000000300)=@newlink={0x15c, 0x10, 0x200, 0x70bd26, 0x25dfdbfb, {0x0, 0x0, 0x0, r3, 0x4a, 0x2d843}, [@IFLA_PHYS_SWITCH_ID={0x14, 0x24, "8ad1836ea0b46099ba62adf4d68c6bcc"}, @IFLA_TXQLEN={0x8, 0xd, 0x2}, @IFLA_PROP_LIST={0xcc, 0x34, 0x0, 0x1, [{0x14, 0x35, 'xfrm0\x00'}, {0x14, 0x35, 'veth0\x00'}, {0x14, 0x35, 'caif0\x00'}, {0x14, 0x35, 'ip_vti0\x00'}, {0x14, 0x35, 'veth0_macvtap\x00'}, {0x14, 0x35, 'bond_slave_0\x00'}, {0x14, 0x35, 'veth0_to_hsr\x00'}, {0x14, 0x35, 'veth1_virt_wifi\x00'}, {0x14, 0x35, 'bond_slave_0\x00'}, {0x14, 0x35, 'veth1_to_team\x00'}]}, @IFLA_CARRIER={0x5, 0x21, 0x1f}, @IFLA_LINKMODE={0x5, 0x11, 0xf7}, @IFLA_XDP={0x34, 0x2b, 0x0, 0x1, [@IFLA_XDP_FLAGS={0x8, 0x3, 0x1}, @IFLA_XDP_FLAGS={0x8, 0x3, 0x5}, @IFLA_XDP_EXPECTED_FD={0x8}, @IFLA_XDP_EXPECTED_FD={0x8}, @IFLA_XDP_FD={0x8, 0x1, r5}, @IFLA_XDP_FLAGS={0x8, 0x3, 0x5}]}, @IFLA_PROMISCUITY={0x8, 0x1e, 0x15e16dc6}, @IFLA_NET_NS_FD={0x8}]}, 0x15c}, 0x1, 0x0, 0x0, 0x8000}, 0x4000050) sendmsg$nl_route(r0, &(0x7f00000005c0)={0x0, 0x0, &(0x7f0000000500)={&(0x7f0000000180)=@newlink={0x28, 0x10, 0x439, 0x0, 0x4000, {0x0, 0x0, 0x0, 0x0, 0x3}, [@IFLA_MTU={0x8, 0x4, 0x6237}]}, 0x28}}, 0x1dbc803986185d5) bind(0xffffffffffffffff, &(0x7f0000000100)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) r6 = socket(0x11, 0x800000003, 0x0) bind(r6, &(0x7f0000000100)=@generic={0x11, "0000010000000000080044944eeba71a4976e252922cb18f6e2e2aba000000012e0b3836005404b0e0301a4ce875f2e3ff5f163ee340b7679500800000000000000101013c5811039e15775027ecce66fd792bbf0e5bf5ff1b0816f3f6db1c00010000000000000049740000000000000006ad8e5ecc326d3a09ffc2c654"}, 0x80) sendmsg$ETHTOOL_MSG_EEE_GET(r1, 0x0, 0x20048080) r7 = socket$inet6_udplite(0xa, 0x2, 0x88) sendmmsg$inet6(r7, &(0x7f0000000300)=[{{&(0x7f0000000000)={0xa, 0x4e23, 0x0, @remote}, 0x1c, 0x0}}, {{&(0x7f0000000040)={0xa, 0x4e22, 0x0, @mcast1}, 0x1c, 0x0, 0x0, &(0x7f0000000380)=[@hoplimit_2292={{0x14, 0x29, 0x3b}}], 0x18}}], 0x2, 0x0) dup(r7) getsockname(r6, &(0x7f0000000000)=@ieee802154={0x24, @long}, &(0x7f00000000c0)=0x80) [ 214.530120] ntfs: (device loop0): is_boot_sector_ntfs(): Invalid boot sector checksum. [ 214.569433] ntfs: (device loop0): read_ntfs_boot_sector(): Primary boot sector is invalid. [ 214.618427] ntfs: (device loop0): read_ntfs_boot_sector(): Mount option errors=recover not used. Aborting without trying to recover. [ 214.695876] ntfs: (device loop0): ntfs_fill_super(): Not an NTFS volume. 05:17:23 executing program 5: perf_event_open(&(0x7f0000000000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = getpid() sched_setattr(r0, &(0x7f0000000240)={0x38, 0x2, 0x0, 0x0, 0x2}, 0x0) r1 = perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) ioctl$PERF_EVENT_IOC_RESET(r1, 0x2403, 0xffff) perf_event_open(&(0x7f0000000340)={0x2, 0x80, 0x0, 0x4, 0x1, 0x8, 0x0, 0x4, 0x8800, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x3, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x6, 0x0, @perf_config_ext={0x0, 0x8}, 0x800, 0x7fff, 0x100, 0x4, 0x7, 0x6, 0x8, 0x0, 0x80000000, 0x0, 0x7}, r0, 0x2, r1, 0x3) r2 = open(&(0x7f0000000000)='.\x00', 0x0, 0x0) symlinkat(&(0x7f0000000040)='\x13\x13w\xc5\xfc5\xd4\x14T\xd5\xd4\x1d)\xad\x1a`)Y\x81F\xe6\xbe\x16nA\xad\r\xbd@T\x03<\x9f3\xbb\xda\x82$\xa2\xf3\xd7r\xe7cnH\xb3<\xbfp\x83r\xe8\xf1\xb9\x93>\xc5\x12wC\xbe\"\x06 \x9e\xf0-\xf9\xcb\xf2\xf6\xe8\x80\xd38/\x00', r2, &(0x7f00000000c0)='./file0\x00') mkdirat(r2, &(0x7f0000000200)='\x13\x13w\xc5\xfc5\xd4\x14T\xd5\xd4\x1d)\xad\x1a`)Y\x81F\xe6\xbe\x16nA\xad\r\xbd@T\x03<\x9f3\xbb\xda\x82$\xa2\xf3\xd7r\xe7cnH\xb3<\xbfp\x83r\xe8\xf1\xb9\x93>\xc5\x12wC\xbe\"\x06 \x9e\xf0-\xf9\xcb\xf2\xf6\xe8\x80\xd38/\x00', 0x0) mkdirat(r2, &(0x7f0000000180)='./file0/file0\x00', 0x0) r3 = open(&(0x7f0000000300)='.\x00', 0x0, 0x0) renameat2(r3, &(0x7f0000000100)='./file0\x00', r2, &(0x7f0000000280)='\x13\x13w\xc5\xfc5\xd4\x14T\xd5\xd4\x1d)\xad\x1a`)Y\x81F\xe6\xbe\x16nA\xad\r\xbd@T\x03<\x9f3\xbb\xda\x82$\xa2\xf3\xd7r\xe7cnH\xb3<\xbfp\x83r\xe8\xf1\xb9\x93>\xc5\x12wC\xbe\"\x06 \x9e\xf0-\xf9\xcb\xf2\xf6\xe8\x80\xd38//file0\x00', 0x2) 05:17:23 executing program 3: perf_event_open(&(0x7f0000000180)={0x2, 0x80, 0xc8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, 0x0, 0x0, 0xffffffffffffffff, 0x0) r0 = syz_open_procfs(0x0, &(0x7f0000000080)='net/ipv6_route\x00') r1 = socket$inet_tcp(0x2, 0x1, 0x0) setsockopt$inet_tcp_int(r1, 0x6, 0x210000000013, &(0x7f0000000040)=0x100000001, 0x4) connect$inet(r1, &(0x7f0000000280)={0x2, 0x0, @local}, 0x10) writev(r1, &(0x7f0000000500)=[{&(0x7f0000000340)="6fe4afe03eeb2eccfeb163e94346d566492dd17df7d2e086ed58c20d6e937cfdf0e54bef7e46c9b9e3bbcf7c001efc8cd2dd30d14c2c0cb754c635a2ce84fade6c0e6d3087e74cada94e1556cff188f4f18dc3c8e596cdc99488ac2358687b6cf8e64c9c02c7d360ec415ec9ea8a0304820bc8e7e4770e911770196c1f33881f0071460faf2a9702cb5715f3417e52bbaaf030a207efcd2c5419016a68946f116f3e7c5ecee798d69a7e360e", 0xac}, {&(0x7f0000000200)}, {&(0x7f0000000240)="da686c6ce30e8d279aeaa4ea13f9f6b86faf5eb3750e7a8acb1e904c3ca78269fd0508a5582b48a92ed3fd59ce871275f6e3a125e7fe28bb5d", 0x39}, {&(0x7f0000000400)="6616abf5f3208aa4725facb99c9627661b1a2d8fc9570ea4b8c960424848ac64a817c3712a072f43a7cbe77fd000d44ff904af0680beeb782a20272f49c487dfa441cfbfb1d2949b3c42404c6defb45c6c99267fbe80ca2faaa5fb060658a3879de2d003abfe0ec43bc52ace3400dfb7660008caac67daee482565983180304d899731571ed58923465f188f696b769f1fc796bc8e0080e39d4e92ac20e286aa91370f5f2790a491b2f70f50cb2bceed92572380bd6a52d814b292c7c67037fbf6fc5b93fa818f912a47de92ec0b82be5ac7b599e07cbbb26032d0f00ecf89cd0e0b5ff43375dfd00dffb4a98f2d5886", 0xf0}], 0x4) setsockopt$IP_VS_SO_SET_EDIT(r0, 0x0, 0x483, &(0x7f0000000200)={0x6, @multicast1, 0x4e23, 0x0, 'dh\x00', 0x12, 0x0, 0x21}, 0x2c) r2 = socket$inet6_udplite(0xa, 0x2, 0x88) sendmmsg$inet6(r2, &(0x7f0000000140)=[{{&(0x7f0000000000)={0xa, 0x4e20, 0x400, @remote, 0x5}, 0x1c, &(0x7f0000000100)=[{&(0x7f00000000c0)="bec3229a1a71d71c43227756c25c9d5b368fcbb239aab31861", 0x19}], 0x1, &(0x7f00000002c0)=[@rthdrdstopts={{0x78, 0x29, 0x37, {0x89, 0xb, '\x00', [@calipso={0x7, 0x58, {0x1, 0x14, 0x3, 0x3, [0x5e3c, 0x6, 0x81, 0x1, 0x1, 0x3a9, 0x5000000, 0x7ff, 0x4, 0x525]}}]}}}], 0x78}}], 0x1, 0x40) r3 = socket$caif_stream(0x25, 0x1, 0x4) sendfile(r2, r3, 0x0, 0x4000000000edbc) 05:17:23 executing program 0: r0 = syz_init_net_socket$bt_l2cap(0x1f, 0x1, 0x3) syz_init_net_socket$bt_l2cap(0x1f, 0x1, 0x0) connect$bt_l2cap(r0, 0x0, 0x0) ioctl$BTRFS_IOC_TREE_SEARCH_V2(0xffffffffffffffff, 0xc0709411, &(0x7f0000050c00)={{0x0, 0x7fff, 0x2, 0x4, 0xae92, 0x0, 0x6, 0x7, 0x7, 0x0, 0xb0, 0x0, 0x4, 0x0, 0x944}, 0x8, [0x0]}) ioctl$BTRFS_IOC_INO_LOOKUP_USER(r0, 0xd000943e, &(0x7f0000050c80)={0x0, 0x0, "dba85d685b7de25d38ea1dbc7b062971f582274402f5fb246ef0fde0cb493c2ee93f7c8a326fb4ef09ee7183727343960c8551d98ddc46e510bf22ab000b8b28ed47ca5864566b41860845999816ba36f18f9444bce974450048cb25b2701206460e08a715c46aaa71fe533fa61764eb2db83055034d941837bfaf3fef9b80fac8931550ec88355905c84cf23d36b727c31b0159a73d5c86e9075afdc2ddea56969c6a62228959c54c52dc443df9bea4536b2edb86fdca619e3a9388aa676dade7d1a6e4715bdf782db6894e9433814375e10d96ca8f5787ce00fe08b313a752377a1714b1941de33963310286baef1b18377c001bfa022470da0963e27f023b", "21460043d96353db7d9816e501eb2281bd78f22169ce1b446e6bb32726e342fbdfc64043c83f19987f6880df1dfe11e7aa659dd640c7dd7e53c7ee668d5d2760461629c68079152ef16fcca00bb7b0dbde8006483d7fb71555f7f510d4bec8c97095fa07e3217f1433a050a182139d68d78d384fc6c38b30167737bd5a94a92af1cb2160a45b0df25934a8dd9f9a5dbbbc74a96d4da2091c98084373fd66fe6231413c3d1f13f241aafe0c3a2fa27a8bec9c494cb582de52f61426852c04ba644f29b08652470f6f43b8c38e7b0338da7fe5abd4e26eccb8c41dcb9980a4bda097c7db16b5a907654151e3a0706efe5d75dc24a5358c7402ecde4280495a3209f630845707e13f8528fe1cbc3a4aa66240ee92beb8283f3e209c099d9cf257305cdc5840fd4569cbec75a94ad78604af632a0bc3d16e4ccfa73a160eebbfb5fa6024c95dceb03ccc7bbeb9c6877bdd5806b4d82d77188823a21da0c57cb41518365b626481289c73905b21660557e60ccb65911e76d41e60df7cdc7e8bc290279b47412758b4340fa389bacdcae0e682b7ce120770647eb8f265bfd0cae764b51f13dfeaf456e8a2b4aec37a648dfb421e1bb6813e68de18f41a1013803eab22a1b107f3bdb3d61df80e7811b3e43410689dbec9be12f74f5fdf39be570f1889c7081b05daabbabef5fad5f35c9ca61747d5246100bc0404271f3b39370dd96080fe35eaf28868b840e69ce6d3b4890d8ff4fae6f64174c72f906cc9a30cf18bd39bcd0aec6fb18ed2541e4c137d00eefaeb34df0efd43727eff1cfc81529d1960f748effd349f4f5561293127233bb5165b27edcea9b9a0affbc1f5ad9fd6fe9e07f8b290cbf306bbb802a1b19f35d290287dcb329c6d0bdf4483484a4853c5d30ca9595d906c9ec85f5cfa7c9daa3a8c381e82ef353388d791ef482bf1402c99e194928086926f28bf05cb887ac24335255c1d69ac6b3d9aa9be98392d566cd8192399a2be7d12b844bc93261da683afda00cdb749e4ec9530cbd3a55c0e25db89fd6325cb04508307bcd959b4cad4fe707668a7e3c752c7396ed25a5bfed75883124375f2feae0333596bdcb198c5fcc94beb6cd0da5fcd666bc8eb8e19d837407a4d2d05b1b880f31fe8cddce771717e70b078b82776ac9eed9ef1d11e98b6d502e988166285c361a08d6b7faf13f5859c7e7b71378b2d98e2738b592c32e69bb32ecf0d2ee29fccb7fb40530117ed30c6b1dbd00914a3c4569f9409cf92aee8697a119c675980898e5ace4ef7b6f0decf7ac7aa5f13d8de6e47b932970a5f5596ed322c02ae46915877c3094946e1710e0cab09aa348cc885827f9d92f99e988add46061ffc98bc10c4ef1f3a22d26937996dc01e5d8e95c34755b74542caf0025882ec59887650fd95b38bdfc5f3ed906ec7a483f7b643d887c0be6ae9e7dd5a6bbe90867b018ab4d25f559e1df20e0550ac530af3c81347daa987d4397603bd089e43eed36d45771ead1f9e8275f50a396024541197b9b176f7e566ae798c834a5c33771d7081914a3b97e9656dda3602a68d1a89a4ff9bd79a44df30112b6f8e06e42a7771c97fb6271567bc26e181a97043d55e720b965b0831dfd5b2bb3ab2208c5edc69c111691d95f7c97ee2c87778550ee6599d8510ac6c6858ae38ceccaf67f9b5750210956bf5e7ae6586436596eccdb1aa078605179a07e84ed9249ed79e1065ed8f6a3621b57023221b64bc7ab412ff411b055a0c42e40d2f7bc39529d95fe6bdea8f3fe4fff1d17be972f18eb574301a66992986f3b878a6888011f55913acb7bc0e60028301a00f44fbc4172acd2025c023ed00b6c2763615a8a70f2965c33885a76df8500a831376d175528330840338181c7bbb457a0c73582f046475d81954920a2bc1b9641ff0f52b2d23863e57df53eba6396e41e97f1eacf5a53b1ebdfd6a78893209dcfa5c16dc5fe144f7dddd926a4541ed9ffda12fafaf22fc555191f46338efa25053226bb36b48020a7a5760023b3b2dad9e81cc518ddadad148f92af08f5c7f5edd4bb64a3ee6f2264e58759cef9827ce4a18b41273c5ce6c7d6203c75919b1f519158aff6ee1b3b32a432eff3ff0481e0c8b957559e20d9388cf76d4a904f9d4ecfef58a3f89ed37c52c3248717c0a502711d6a51e9064bbc172de5d32d03a9aeab5952b1b9f8da0743c3e8efe947c9f38992142ca362766dd3584120d3ad894e06eaf15682d86f458fbccfc253d92d57415cf5361ab0ba6d401cecba85a8039689ce21fd3885c2b1bf1db52c895aaa142795bb4bcb39f87c90bb1b24144576150eed0ca000098033104d714005d6b80e0b765b51f4eb4b13c54fc408ae3c3639507db8fd40433940f0308eb489e9e1cddd76dc8e6e265738b0ca29b9924a19a87d58373dea8647ed1e3d1c4356f8d91894ddabd2e685d64f0cd0e9cb157544eafccc224564923417813be0bf839ee64b053c8ab8ccdbe1c753cad4c9437b9c601d4030dcb67c867300ddf2340115ca80dbacba5f2393f6339d6c29d3d592b70d76b776d92eb420fc34878f5f73ab888730e536cca2b057b2fdf735f446eb89fbb9d569bf6dc356882e28f9155f248070fa303d9efc71443dfe73ab1fc170f0dbee7075d09d6db250d6e2a54be61d327c2e8aed779e73413e72a52ddd6ca35bae53d3d72de89d4c547ecf9b26803bb8e77f996dff466c3d089d972cf640ae17ff6b12db7394fd2b8ea557177fbd05ecfd7ee37e0f44adc4ce8a10e34ad0202bd0cd2039aeb6c21bc52dff748d508668b1aa681791819c7227b3b5c5af63f4b87eea0293a9e73603b42833853de9ff752f0df7b7147529f75d36c77f6fb9b8a42871c0733f38ed83974d63ee987c1e45847ce2591e8a53910605afe6f80c06f3af3c4040a8be45f8dbbaf73b135652775898b7dea336158bf71c70fd20fa92fd19dfe0ec24e7ddf30bf5edeb2508d8dc42b5113af7d036fbe38f9b639954ec73406052e4363ddffda6f1130ac2e0767371f958d25ed6e919d98ebcb5d25f8fbbedc5714c9760687a95026b9507253696e53077f08a906f0b2facbfe07ed41979bfc270efe0d7a5a1bcb55d5980df7e05594c5058e6344f6a7b9b8201ad27c0ac66cb90e0b685075f73ec4f4d7c958a445366886bf4e8bf3eac80491388d2d69b77aeb708179b01df827534f5cb862bf2b3f5355498853259d8f3ec3c337a1028c5acb6e50757ae6ae79db58bf9499b8671af4e4ed15580263451672d80d285c6c2dcb41033a4d230af3311e34de0d51f987ce813373e949505ac94c24098ab3d7414bb0d43357a2d1d32fd3080bfe0edf2565a99a900c9a546c6daa72ea09538e982e5fde17456aa0cb181df74af1f6d4efd2aa207ca24039b131af6e0559773fa296031f112f7d54e611e1c397dd816fcd30c4def57c82b788c386fdbe2af2240ca9a275e5df6e72948a5c54f93549a73fff00fec622be39030607d2af1c049f3d9c230f643e6a0415e40ddf7ca6a4ccaf1b9187f39d645d2290a1caa1ff128a8274da654923503bd7c2b7fa3c49bbe0b010cb64e73d81a6d19a23b46699e1b6dd6c0b8f985b0c0ff201b6be939571da7a91ab629a51c7cf50880f06c29756c43a1d8fd05a371555433c5e47e074b47613ae44591d01709f464f8c14732a943f99b10820a6d3258cd3931d2ac300dda3b7bdbdf826d2cc753e4a25cea3954095fb2c999d2968450e2aaa563234ce619b5dbec047835155cbfaca889db7ba2cea99f3dc3605dc2ffce824e3e5d32dce01cb2081368069efee1cf5e3f16cc6af1f6edbf3125cd4ac41166676d68a4bef1d761f591f79559da76c4bc3f2a2c06950ad6d4363dbc5fc2e4b33b236d917542434cac1107df6dc03efe04133d877658024c3e4088e7a46b483dbe0141d0b6e6591027d846b39d54b07d6c9a43cd4e5b708bf0fd8df42594dfca73230ab47ef767ce3fa6ed48f02c5c8131b893b9d5bdd94899d13b310490593445fd95e67dc8d2dc0dcdd5b4e21dd5ad575ec75492b2e628330be0a3afa98f295ac44773356d393effa9074cb70b5ca975654ccc68c376e250d32720d814651970aba675bfd5a8adf1aaff62bcc8b249c82645b903b8f679ec2fa95a75c49fd18fe66ab09b3b3b81b274f204e2d8ac63448ec6f8604104d7cf4b58d233ac31eeffeeeef7aa6d5841775831ff62818aec0d960e0deda884cd5fd7165e4f569c089430de499955822588dc0061cffad5ffaa1b78f5156f6bb37e9d240fa4bc214d1a3d91059e732b1e8a2da841032ce780ad99f3f10307b0f33776263daac6ad5632ac3d9867c24b708bdd5fb9e7b5c530479e24db0e62c129ff25fad3e9318aad6f29730df6a0bf8261090b1186d6c95350f01d971f15f0207262600ac89f89f11cfb135302adc3e2de818fb8be1cc33154a13dd59e9333f9e7e92ec80db62b68156e9e93da107c81988a7843adcd1ce619dcd51be20377719b075e60b810fc883e463d80f074e3eacf8e0fc0646a299892d729140494c64c03bce2245da001ee35f0ced4c29bbcd0a741b885a99790e43bda2842f10a2021db59eec650553c304f30d2f427a37460c1c81c2baafef334826fbc810832e4cff8e929c3618e7d243df75e45e5221173c6e6a3c30e967b8f7c310a0c078550ea5fbfeae30524835eee064ea2e2ea69a6953f1b8008118b59856cc8443d72991fb6c989bf7ccc690063a53f9a1d41bf7d4b06f55894283f9ec09ca0f95608ecedd2e9e0bf7cdf148764a2d0c48d782617f8c915fd6f890ce69b50c851ae8329b4e06c85a54d9dd736646f55acdcf65163a0c5222ee46a475d20b9187451b3590662d3cb8ce4070152e3bfc342e4c4df854f60cc307e9dce43d7059ac043d69d26e6a021bf69e393845cea4a5e713dc3c5e51b09a93faa59874372bd37a8398e1da3de62809a0eb1019fd25fd828a9a821ccdabcab8f02af045694e9d6bd1e1d50907b2291e04ad0732aed2047bc43b49744eafe1c9c1de1c1a304ffbe96ea09d0bf2fb8d77f30756b6e6b28b4795fd6d83291bf5d74800090e4ec043c5b77a7b98dab8d5ad6a42a2f9a63a66199bf9811fbb73b49ba52cc132bdc9a44f989053e0a7f06aa14b56549dc61a24f6c8127770b7b3af3ec645fc2215893d3dc3e6b6d9e2ef6c0c40cdf4f82c8f93023e9f3b58240166d6b12ce1ed4893a540f9e205089ab991b507f17b686a3b70f150135ba1f7de54263ad5a62530156d268e4f551e7af7b84d0089eeb4efa58ad7e07c97bb87668efcc2d14f8258acfe8f1b537bbaf13d3176f6b127ee5e216974814cb16982c12105da6f4cade64fe41eba02b33291b3b64cc8b8aed5a9425da5ba0f8ecde903b86fc19d3635a540124ec828"}) r1 = perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x51c1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_INFO(0xffffffffffffffff, 0x81f8943c, &(0x7f000005a700)={0x0, ""/256, 0x0, 0x0}) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r1, 0xd000943d, &(0x7f000005c100)={0x1, [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0, r2}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0}], 0x20, "b8998a5de70c03"}) r5 = syz_open_dev$usbfs(&(0x7f0000000180), 0x77, 0x1) ioctl$USBDEVFS_IOCTL(r5, 0xc0105512, &(0x7f0000000040)=@usbdevfs_connect) ioctl$BTRFS_IOC_GET_SUBVOL_INFO(r5, 0x81f8943c, &(0x7f000005a700)={0x0, ""/256, 0x0, 0x0}) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(0xffffffffffffffff, 0xd000943d, &(0x7f000005a900)={0x5, [{}, {}, {}, {}, {}, {r6}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {r7}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0, r8}, {}, {}, {}, {}, {}, {0x0, r8}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {r3}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0, r8}], 0xfd, "d4c90300"}) ioctl$BTRFS_IOC_TREE_SEARCH(r1, 0xd0009411, &(0x7f000005d100)={{0x0, 0x9, 0x1000, 0x101, 0x200, 0x7, 0x0, 0x7fff, 0xb3, 0x7fffffff, 0x6, 0x0, 0x8, 0x400000, 0xfffffffffffffffe}}) r10 = syz_open_dev$usbfs(&(0x7f0000000180), 0x77, 0x1) ioctl$USBDEVFS_IOCTL(r10, 0xc0105512, &(0x7f0000000040)=@usbdevfs_connect) ioctl$USBDEVFS_IOCTL(r10, 0x8108551b, &(0x7f0000000380)) ioctl$BTRFS_IOC_GET_SUBVOL_INFO(r10, 0x81f8943c, &(0x7f000005a700)={0x0, ""/256, 0x0, 0x0}) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(0xffffffffffffffff, 0xd000943d, &(0x7f000005a900)={0x5, [{}, {}, {}, {}, {}, {r11}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {r12}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0, r13}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0, r13}, {}, {}, {}, {}, {}, {0x0, r13}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0, r13}], 0xfd, "d4c90300"}) ioctl$BTRFS_IOC_TREE_SEARCH(r1, 0xd0009411, &(0x7f000005e100)={{0x0, 0x81, 0x101, 0x100, 0x1000, 0x80000000, 0x40, 0x3, 0x5, 0x5, 0x8, 0x0, 0x8000, 0x0, 0x9}}) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r1, 0xd000943d, &(0x7f000005f100)={0x4, [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0, r2}, {r4, r8}, {r9, r13}, {r14}], 0x80, "b67d5166ab9c79"}) 05:17:23 executing program 4: r0 = syz_open_dev$vcsa(&(0x7f0000001880), 0x360, 0x0) r1 = epoll_create(0x95c9) epoll_ctl$EPOLL_CTL_ADD(r1, 0x1, r0, &(0x7f00000000c0)={0x2000000a}) r2 = openat$sysfs(0xffffffffffffff9c, &(0x7f0000000200)='/sys/module/stk1160', 0x0, 0x0) preadv(r2, &(0x7f0000000040)=[{&(0x7f0000000300)=""/151, 0x97}], 0x1, 0x0, 0x0) epoll_ctl$EPOLL_CTL_ADD(r1, 0x3, r0, &(0x7f0000000000)={0x0, 0x3f00}) r3 = socket$kcm(0x29, 0x7, 0x0) sendfile(r3, r2, &(0x7f0000000080)=0x100, 0x400) 05:17:23 executing program 5: r0 = socket$netlink(0x10, 0x3, 0x17) r1 = creat(&(0x7f0000000180)='./file0\x00', 0x50) sendmsg$BATADV_CMD_GET_ORIGINATORS(r1, &(0x7f0000000280)={&(0x7f00000001c0)={0x10, 0x0, 0x0, 0x20000}, 0xc, &(0x7f0000000240)={&(0x7f0000000200)={0x3c, 0x0, 0x200, 0x70bd2a, 0x25dfdbff, {}, [@BATADV_ATTR_FRAGMENTATION_ENABLED={0x5, 0x30, 0x1}, @BATADV_ATTR_TPMETER_TEST_TIME={0x8, 0xb, 0x60e6}, @BATADV_ATTR_GW_MODE={0x5}, @BATADV_ATTR_MESH_IFINDEX={0x8}, @BATADV_ATTR_ISOLATION_MASK={0x8, 0x2c, 0x3}]}, 0x3c}, 0x1, 0x0, 0x0, 0x40000}, 0x24049040) r2 = accept4$unix(0xffffffffffffffff, &(0x7f0000000080), &(0x7f0000000100)=0x6e, 0x800) getsockopt$IP_VS_SO_GET_SERVICES(r0, 0x0, 0x482, &(0x7f00000002c0)=""/44, &(0x7f0000000300)=0x2c) ioctl$sock_SIOCGIFVLAN_GET_VLAN_EGRESS_PRIORITY_CMD(r2, 0x8982, &(0x7f0000000140)) sendmsg$nl_route(r0, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000000)={&(0x7f0000000380)=ANY=[@ANYBLOB="3c00000010", @ANYRES32, @ANYBLOB="00000000e60000001c0012400c000100626f6e64"], 0x3c}}, 0x0) ioctl$sock_SIOCSIFVLAN_GET_VLAN_EGRESS_PRIORITY_CMD(r1, 0x8983, &(0x7f0000000340)) r3 = socket$netlink(0x10, 0x3, 0x0) sendmsg$nl_route(r3, &(0x7f0000000000)={0x0, 0xe, &(0x7f0000000300)={&(0x7f0000000140)=@newlink={0x44, 0x10, 0xffffff1f, 0x0, 0x0, {}, [@IFLA_LINKINFO={0x1c, 0x12, 0x0, 0x1, @xfrm={{0x9}, {0xfffffffffffffe27, 0x2, 0x0, 0x1, [@IFLA_XFRM_IF_ID={0x8}]}}}, @IFLA_MASTER={0x8}]}, 0x44}}, 0x0) sendmsg$AUDIT_LIST_RULES(r3, &(0x7f0000000480)={&(0x7f00000003c0)={0x10, 0x0, 0x0, 0x80}, 0xc, &(0x7f0000000440)={&(0x7f0000000400)={0x10, 0x3f5, 0x2, 0x70bd25, 0x25dfdbfc, "", ["", "", "", "", "", ""]}, 0x10}, 0x1, 0x0, 0x0, 0x40040c1}, 0x8000880) 05:17:23 executing program 3: bpf$PROG_LOAD(0x5, &(0x7f0000000100)={0x1, 0x4, &(0x7f0000000380)=ANY=[@ANYBLOB="1807000000000000000000000042e7000000"], &(0x7f0000000000)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 0x78) [ 215.093358] hub 9-0:1.0: USB hub found [ 215.101003] hub 9-0:1.0: 8 ports detected 05:17:24 executing program 0: r0 = syz_open_dev$tty20(0xc, 0x4, 0x0) ioctl$EXT4_IOC_PRECACHE_EXTENTS(r0, 0x6612) bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f00000000c0)={0x0, 0x5, &(0x7f0000000180)=ANY=[@ANYBLOB="18000000c34a00000000000000000002"], &(0x7f0000000280)='syzkaller\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, 0x2, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, 0x0}, 0x78) perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext={0x0, 0x9}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) msgsnd(0x0, &(0x7f0000000080)=ANY=[], 0x0, 0x0) r1 = openat$nullb(0xffffffffffffff9c, &(0x7f0000000080), 0x4000000044882, 0x0) ioctl$KVM_CREATE_IRQCHIP(0xffffffffffffffff, 0xae60) msgsnd(0x0, &(0x7f0000000000)={0x1}, 0x8, 0x0) io_setup(0x1, &(0x7f0000000240)=0x0) io_submit(r2, 0x8, &(0x7f00000000c0)=[&(0x7f0000000140)={0x3a000000, 0x2759, 0xd, 0x0, 0x0, r1, &(0x7f0000000000)="98", 0x3e80000000}]) r3 = openat(0xffffffffffffff9c, &(0x7f00000000c0)='/proc/self/exe\x00', 0x0, 0x0) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x0, 0x12, r3, 0x0) ioctl$sock_SIOCGIFVLAN_SET_VLAN_EGRESS_PRIORITY_CMD(r3, 0x8982, &(0x7f0000000040)={0x3, 'veth0_to_team\x00', {}, 0x74f}) [ 215.225531] netlink: 12 bytes leftover after parsing attributes in process `syz-executor.5'. [ 215.295089] netlink: 12 bytes leftover after parsing attributes in process `syz-executor.5'. 05:17:24 executing program 1: r0 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000040), 0x0, 0x0) r1 = ioctl$KVM_CREATE_VM(r0, 0xae01, 0x0) ioctl$KVM_CREATE_IRQCHIP(r1, 0xae60) r2 = eventfd(0x0) r3 = openat$ipvs(0xffffffffffffff9c, &(0x7f0000000080)='/proc/sys/net/ipv4/vs/conntrack\x00', 0x2, 0x0) ioctl$KVM_IRQFD(r1, 0x4020ae76, &(0x7f0000000000)={r2, 0x0, 0x4, r3}) r4 = eventfd(0x0) r5 = eventfd(0x0) ioctl$KVM_IRQFD(r1, 0x4020ae76, &(0x7f0000000140)={r4, 0x3f, 0x2, r5}) 05:17:24 executing program 3: r0 = socket$inet_udp(0x2, 0x2, 0x0) setsockopt$SO_BINDTODEVICE(r0, 0x1, 0x19, &(0x7f0000000080)='ip_vti0\x00', 0x10) sendmmsg(r0, &(0x7f0000003ec0)=[{{&(0x7f0000000000)=@phonet={0x23, 0x2b, 0x5, 0x8}, 0x80, &(0x7f00000000c0)}}], 0x1, 0x0) 05:17:24 executing program 4: syz_emit_ethernet(0x36, &(0x7f0000000800)=ANY=[@ANYRES32=0x41424344], 0x0) syz_emit_ethernet(0x8e, &(0x7f0000000180)=ANY=[], &(0x7f0000000240)={0x0, 0x3, [0xe8a, 0x0, 0xd5b]}) syz_emit_ethernet(0x1e, 0x0, 0x0) r0 = perf_event_open(&(0x7f00000000c0)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) splice(0xffffffffffffffff, &(0x7f0000000140), r0, 0x0, 0x0, 0x0) syz_emit_ethernet(0x0, 0x0, 0x0) syz_emit_ethernet(0x1012, 0x0, 0x0) syz_read_part_table(0xd102, 0x6, &(0x7f0000000040)=[{&(0x7f00000000c0)="0201a5ffffff0a000000ff45ac000000000005000800000000000000024000ffffff82000000e10000008877007200300700a6ffffff00000000008000da55aa", 0x40, 0x1c0}]) syz_read_part_table(0x4, 0x1, &(0x7f0000000080)=[{&(0x7f0000000000)="718c5137638ea08ba2a67da9b091949d43155fee94a0f959d69c53b71999e81eeb78bd19bc209ffc5cb04e7a37180e85d23050a3a98b5b743c9ba5dafe", 0x3d, 0x7ff}]) syz_read_part_table(0x4, 0x9, &(0x7f0000000840)=[{&(0x7f0000000180)="db073844027e029921a39d7a5d8feee264eaee89cb857cb2dc5e03cca1a45415ccfec1e6c7e10fef6decbf91a604bdcea9c1f279854a7c200f98e3986a1feeef533a2957a8427c4ededc5f1c39a9f3da45e772beeccef6aabfd3a8aaab624e158478188da0af00bb2c3e93a5e992bfce6f3af53e8240a28a14c316871e28c08b8343e15eb080985486945cbc418e672fedc5c319e3580e6308062f7cadd53609ddd5e126823198bbcb4196", 0xab, 0x100000001}, {&(0x7f0000000280)="9c1c51881b545663bce752b89f5315ae95066d07aa8e0c533666c63790ba7f815bd2d449537d1b6d7a644dbe15bd86acdf8642bf20c18714f4f60378883d08fdc0ee056e729b4cd13922ad3b26ad248cddecd63d317028a6d46e1a35c0f147831c8d6baff3f3f9b2f6e5230b7ee55e00da822afcfbb67ebe9df0180c590306029370fc8e60e5e924ff99b84d47f23a0bd789115506dd1e56da642f7dfbe22b5c485aa409efa0e87f1f82c3c2e099ea66613e4e24cd3667", 0xb7, 0x1d44698d}, {&(0x7f0000000340)="d936f4b8b04b1ee7d0f06dddf9c9fbb2e5c05ec1d63b44925b3ae9cd14a20d5c27549be0b17ecebf36c8ebe7695f492e5bb2b577479733eb922974b17902dae61a5348a24ca739df7bb51a8105b970ae96ee1209a7fbff5de48728bb6d9c4559e29e0560da0fd603dabb5ae34fc1595abfd1b2ddc015f8cc83bbc99d04bb90b8d996653c90f92aeb0964846203924945ab43dffeed", 0x95, 0xf61}, {&(0x7f0000000400)="6e80738147cf173b7468740b5d44fe9cb5758a9b6bb1126f178420672f33d837f390afcf2c062168294c8c48f5a8e100aeb180c43a1a4d65f5dd8807f8", 0x3d, 0x80}, {&(0x7f0000000440)="ec1a5a0f0a8433272ddb4bf4c6ac8c1a460f0d6528adce22b6ebddf02a83d002095a3f69e7505c49e13bb7854722b34a5650dcb579b15f567e1377d3f4594259405a3282ae741224bde589aa0531fbfceb28c2997caf5ea6552e40d91b865e22f2fa820116a28c3e19b2dba14691db473639f9adeaef0fbf87f91339aab12891c524c0e867ca091a1d1cddad6832611c1c9d3d32c8811efc321968bec7d8e1596eea2fd56191abc487ec2874a4d7fc5c787db7477c24631a9faf9acdc6983662aa6c877f618cf37bc1d4ab752a018d9a", 0xd0, 0x7c0000000}, {&(0x7f0000000540)="ffc807b6d82b76bcd599ddeddb135e7ab2b1705640fb176ba2d4ca51f269cf061c231c110b5370123003362b85e4cb03b91789b790a45b358fd0fccbb743ba47fae7b9a63e112b3318e40d0bcffc3816daece1018fa0fa734cc3ea575edd523846e52d0bd849f00829fd6cec6a2e0725cd", 0x71, 0x1f}, {&(0x7f00000005c0)="91a06f6d1789939aa51a7a1c6dec857a159ac407947c65a652ee140d4614d49c79bce7e7af8c1196ff4227661d0aea1ac7e8d9ba39dfd3986c8764d5587ffad235dfac277a44324848e4e0ebdbd4051eafea7d4661751b733f1f798d597d584a130aae9e6d067cbc4623a49658f86c61fd291d8a4e4589dfd03f326207", 0x7d, 0x8000}, {&(0x7f0000000640)="4a7b8bdc9d700958bd06dc7e4c38fa9043b1a5c7ccd1f8fa789f37e2a96ccc381018ee01506be721d02737cde43caf7a49fc220a95401a324b0dd062fac3534b773b5e59cecb19c3a99b2d40ca54f92fd195536ab8ae28af53801341e407efc9c5a918e723f7ca460094b893385e8b04b90a2047593d3ece9130f573cb98a9ed3e5cc3a264b38eb49534b1b8cd4ab80c4f4026c0608929d31432483850b0e585a7e87755f76e4db0fc24f8c39d239e35d4334a499977", 0xb6, 0x943}, {&(0x7f0000000700)="d32cdac6c7bf08da2e6fe45a", 0xc, 0x1f}]) 05:17:24 executing program 3: r0 = socket$nl_route(0x10, 0x3, 0x0) openat$hwrng(0xffffffffffffff9c, 0x0, 0x0, 0x0) sendmsg$nl_route(r0, &(0x7f0000000180)={&(0x7f00000000c0)={0x10, 0x0, 0x0, 0x1000000}, 0xc, &(0x7f0000000140)={&(0x7f0000000100)=@getneigh={0x14, 0x1e, 0x400, 0x70bd2b, 0x25dfdbfc, {}, [""]}, 0x14}, 0x1, 0x0, 0x0, 0x1}, 0x40084) sendmsg$nl_route(r0, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000500)={&(0x7f0000000000)=@newlink={0x44, 0x10, 0x439, 0x0, 0x0, {}, [@IFLA_LINKINFO={0x24, 0x12, 0x0, 0x1, @bridge={{0xb}, {0x14, 0x2, 0x0, 0x1, [@IFLA_BR_MCAST_QUERIER={0x5, 0x19, 0x4}, @IFLA_BR_VLAN_FILTERING={0x5, 0x7, 0x3}]}}}]}, 0x44}}, 0x0) 05:17:24 executing program 2: perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c46, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext={0x100000000, 0x60dc}, 0x500}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) getpid() r0 = socket$netlink(0x10, 0x3, 0x0) recvmmsg(r0, &(0x7f0000002d80), 0x4000000000006b9, 0x1a002, &(0x7f0000000180)={0x77359400}) sendmsg$nl_generic(r0, &(0x7f0000000580)={0x0, 0x0, &(0x7f0000000080)={&(0x7f0000000000)=ANY=[@ANYBLOB="000000000000000058bb8824c8239eb469456aec79763c0a8a11a2d87224edc95ee0e7801419701a3407797cdf554bdf26553fcfb0996cce783013be471ca2e4992ca5c015509b9e54fae87898aeb8ae5e552e877ce82f92b82cf9dfdb156c91b5b77a55799cf793346e73b81b54641a2ff0d3d3"], 0x14}}, 0x0) 05:17:24 executing program 5: r0 = socket$inet6_udplite(0xa, 0x2, 0x88) sendmmsg$inet6(r0, &(0x7f0000000300)=[{{&(0x7f0000000000)={0xa, 0x4e23, 0x0, @remote}, 0x1c, 0x0}}, {{&(0x7f0000000040)={0xa, 0x4e22, 0x0, @mcast1}, 0x1c, 0x0, 0x0, &(0x7f0000000380)=[@hoplimit_2292={{0x14, 0x29, 0x3b}}], 0x18}}], 0x2, 0x0) ioctl$sock_SIOCADDRT(r0, 0x890b, &(0x7f0000000140)={0x0, @sco={0x1f, @none}, @ax25={0x3, @bcast, 0x6}, @l2={0x1f, 0x2, @none, 0x6, 0x2}, 0x5, 0x0, 0x0, 0x0, 0x8000, &(0x7f0000000080)='rose0\x00', 0x80, 0xffffffffffffffff, 0x1933}) r1 = syz_mount_image$tmpfs(&(0x7f00000002c0), &(0x7f0000000100)='./bus\x00', 0x0, 0x0, 0x0, 0x0, &(0x7f0000000000)=ANY=[]) chdir(&(0x7f0000000380)='./bus\x00') r2 = openat$adsp1(0xffffffffffffff9c, &(0x7f00000001c0), 0x200000, 0x0) r3 = syz_open_dev$video(&(0x7f0000000200), 0x1, 0x121801) ioctl$BTRFS_IOC_SNAP_CREATE_V2(r2, 0x50009417, &(0x7f0000000a00)={{r3}, 0x0, 0x0, @unused=[0x8ef7, 0xd8e8, 0xa0fa, 0x7], @devid}) mkdir(&(0x7f00000009c0)='./bus\x00', 0x0) name_to_handle_at(r1, &(0x7f0000000000)='./bus\x00', &(0x7f0000000040)=@GFS2_SMALL_FH_SIZE={0x10}, &(0x7f00000000c0), 0x1400) ioctl$BTRFS_IOC_RM_DEV_V2(r2, 0x5000943a, &(0x7f0000001a00)={{r2}, 0x0, 0x6, @inherit={0x70, &(0x7f0000000240)={0x1, 0x5, 0x2, 0x4, {0x28, 0x6, 0x1, 0x9, 0x870}, [0x5, 0x4, 0x40, 0x581d, 0x5]}}, @name="2e74138d756849b1d4f96ae457a6b10f4bb106e828c1c6db882acec1a776393b1a48b5b90da99b2f7dfc1fc1bf118cca3c5302ea3a870465913601bb5d0dec3a6d992766b25e924ec51285a5bc60e3e84b490c17b4d22235a701d6ad0b8d88554807dda54ea413c8cb70457367f2502257b6c62114c49e2a3d1bdacccc7010db4c77e99692ad2f98329ed7a7488a2dfe7234ad2d7c1ead25fe953e4994cad30f4943cca4eb5c05d19c9ec6abd836fa042a88e60dfd4875985c04ca89a36ecd4cc74cf3ed03c9ccbf85df7372b290e4a122434600df75bd9a6cb220fbaf21840ff53e64cb68d80834f5f98b1f33ad01a1f2e88cf6d36077607794a182d039cc70c7b989330e53c7cedc825743de5ecb76f5385263b986c9c849af29b8a928f42572266fc5dec0806f5c70f56f3e9942e008007be9c43b20bcab01783bbc141e4f3a58723df29315902284bb69995f15ec71a98c3861ba002bb916cfe46f88aeda4099d0dfac524d330da7f6c8e4d732af41f97d53054295367be6cc2719e5fe0032c67cf1e00aaef069d0d935afa7dd5afdbf4cb111f0ee6a5e57d48d2898ef539b6e62c59df95e9eca3abefbca2b17e1c519d5cbfd99263a62b1833fbda888f99e27890b9f3aeef5aececa2a3bdb17014a168377cac7f17ffa2b0da402232fac6f48412760cc478ea0aeac67971e4a9c91df7704d09d8dfedade4a10c4fb0124a66da78a9daab070e40b64c9887fd3e58c8f6891550a8dc94f2a0789455131a66b7b0560495405ffa031ad3b738f1ee42da1d76b50f6a643911a5546773876cd8cab5d1e19cb239156422ea0516c7f49c470e30b783785b5e8af49f4c06a024361843601a0aa6bd42523fb278b2197fa8c4781f8a0722ed65ddc699e3f1d134cf7f6b28bfca07212339ba78b39a5af3b5335b1b778e47040266b8b37439be24af42426ff0fa43eb37ce4fd90ed0c813a9ca8851798c02e059fa1e7c988538160e9a2be236f1162f2aba825eb320ecae0af64489ed03e652c10899a969b4bb6637833ac1624f960231dd2d3562e3021a1e11d75bd460ef24523def840326b2e94e05e846261d56f2a9da18a2347beff2bad8d7aa4d212430d74ae95073755cb9b327f7c6c5a21c912a8c39dba1a29f254e9b27be5d606ef72b1c12d5c5df89f1423916c3f44582b9c3c1c3a89f479d968b619a1317e902b9b26f7c4feda1edc46024da4f25e4005623740f227538ce0f77cb4e8ef886a72b5844fdca54f80460921fc0c60b921e18b46534ba73781fe1b4d73e076c61d5d1d13abd664a058f5ea93c673a44a8d7493c4e1d42496588854f3805d87b910d0f8ca4bc86c189ce7c1d36c873269e6f43cad966acca0bb02c25967f6c4660447ddd877cf3fd0310efda72c5529a97e2ecffceabe493e79a5b322c5e5be071264be7bf25ffbee1d83bd1044e213b6a4acbc7fe1dac26c494df3adb52982fc8810d1dc20e147cbcfb89e5336981adfc108f2db3fd9d0e24e5616b1b5f647344ca0c43db6679fdd4ad6629c2bd9dbb11e9590205e29c47aa89531f39a963cddd157057a872dff84f59d80d55da33fdc2f0010a68ac04c7dad0469d66bdef9fceb0a558c3eca387984324c72821531448d6913e6318a4f356d6473abf8685c565f6473a69c9ac3dfad4f8bc7ab91f942eaafb45f414c28d01fa1b95b77d1ecdbd0435d420ed6948f989ce9d92a81fd3125e5f51cc673538db0967309556528a498bc52181634a9e9b307fab90cf2f264d8177a79800309e47f6c623358e3ce0d1abe543a872102e520c39ad848c5f56245c6e0a278834d0870581f65965b7ad4e5a94b5e67aa6316edaa36966bd999935e7abc79010b135596b068029cd5685844ed187b76d5741b98b2cf4a5dcc1b41946fbe96110c96cfffebb87f12e81fe9a363b86f199e5b30a93c758f78fdf8124cfcf4a704aa74be84214a0d500275511f3c75bf3b91f8a2494836e953d7391bc5fdb3192af9e5626cd91cffed67eb3834ff1bd5138ee848d48187051737acb581fca08fe1268e3cb91506a469dc108a6e85d6ab24402647ad66a407ff692f2ce1327a9d35362a21708f189dc1190968a4da6a45f86cc2d3d4bab76f15b51e49862403a563bd6c2be8cf546e9983b810c2f62a2650e4a362d96a0028a6fd2e5b81ad83360eacb85a6e75b71a35cf7e06323e912c6be49ce9ef322b8cedc8c560c82156e2c8334b1e19af049e8c2f409eda3c52334940db456493579457c57ee78613e9023ac014edc14cd494301cd32ea553eab1f60dfbb452bcfbfc62259fc49560e39949dc0ba57d9ce92bb8fafa81231ed814884c764477227481a66be137591118b4980b7447f960f9ece09b0b85bb893b6981c9d62f38ce7547d9c91909cdc42079fed80991dd0575229c53147d0c877628bce1ab83d939eb6447a8b83f8a7e2b606c70bdd44b173d0fe6f9651b3737bfb9686dafaf53bd029bb3f35e97d2b7c19cd048a230384765afd7710c7eaef9ca9f40269d197b7396000093c5a3bf76556c7278b5c30393c577fa92d8fe9edef0910da33c51f7584ee29c3301a4ec285a589fbe724c7f633b81f1166c5e1d1a396d16721dff26146910907f9418b555b6d23753255bb2c6c7b07825d298a5db4e71243ca634b15b241c5a267e19f586f6633543156b0c72219158dcf9846de1be4b44adf2f84fb4335505528e59fbdf98da209ca20cf4df2510560ec42624728c8e8a0d270df9c8ab57b8fcdda0f57a204c761798d61af04e8730f9b3bc6d853339185a08b2cd5395ed1f9466617a012e7bd2309f2fa524473c66bdf9d77b003e67f26513071c810090e71f142a19ea50e9b24dcf1c8870bcef029e2b9296ed8dd52bb89077b2c04d7ce783268e7a4f89acc6ce63562f8117ffdc101d3428952279ad99bf6229a89bc5e129bfba30197c25c737c5ade110f60ffca69ca57f576d53c46292460737d350360f5ff38220c09d2b829e05ce7a820294498f570ee07b06b7dbb5ffc5b2ef6dada781544628115d1ddd9614aa69755aecd92cb15886b26148d12d049e38fe0f5a1d3dc2a6c4c4877e8fcb0ba85352c08545f069954e13e21bfbe106a04b747cd5d5f54b3a0e75c74f9efbe859cd5ddc748c2a83f3df2c165972cbeb9216edb0add0bd481c511f7d1523ff864fb77f4ee8191589805316b6c84974165219a6eda847f453e994b5d67367ad0c68166de02bf3a4d0b45454d1b2887d08ebfdb896b81ca8f957b6678bad34496d7c27e2e9d0fc013315f177458d71523d901be55ea79450a7b353f68fea6a6e0b7a66b781bf4645f6f1f0d2e59377e6186ae3aba9025a3d6e5d40f33d9b6692ca8e6ce6aac1438e0eec4dc000c4c89c1978647a82955aec4fcd644dee7f6c9eb9938b2aea0086a5203236ba1f015a2e8e6df84c128eed7d19d9b2de5220ba1eac67d9b9ef25c67c5adce031dbf99b8ef11f1164e33f195ea6be4c214a35415794cd67fceca2a76e9b26887f9a03f6d3ad437eeab702f2a62009ea43615a6fded75db4a8458da6552a2adb9c632a071c4f3b820c85a076721168182e36526a5569f6772afdfc6c6e19c676233fe49a74a6d5136e26dc0893994bd5a1cae84b5f97f93985e88f6bd8157f8af080e5b6e717c11115027e375e7c35446d49762ca1f761d8584c1ca16ccca8f1bbe9f4fd728b8c7af79fa0d3715ee141d9843363936f8927d2ae472eedd45bea161ef62bdd448bdce9ce2ee8d1085d75f986ce271fcc9b90645792b38e14e4f0defa883fcfc8612e500b13bf40d63aaf5c8156c6070f9e630748b82a93fc704606a3b5b30125e33a29f0ff85b9fe7b9c7d5d5e98a15c6ca113f82ccf716d863952d825eb411d46bdd5a99424fbb4c438e59d779a0b7d16b9d9d6902fa3fea6bc4b8b3287747c0f5cc30263ca69fbefef621af3f612c4a28d4391ca91e0085f7bfa4a323471f6b56af4ffd2f2b8a8273b3d72dedf82cd7432efe2b2078b877978ebfb3db437f1aee7ea32b94cb4f5669e0805a3e53d37ce405ffe1c93c0decf4bfb3592eb43f41108c5009410f556605dc82e50a209daa2f95b239245a426b235128c0db06b7e6d41bd8bcaef27448bc376c3533f985a6c6dc5bacb301ce7fad4bb86f82164b0e781ef0bece35b4168db7fc865f64a492f19b00f5259b631c60c94eff83ddf71f24a0c0aa3f698f03d6484a10a477e9091cae5eb338d93a64b3b9d4226fab11ac1e723a952191e3ed1d327d245c4a4d5a871a7d52f39452eeb7e58e6f7a628787562cb67c30e487db1850f6c455133db55c84be9c9df2545dc21ca5cb681e832d5077082ab29379e5581c6308b89c83f5eb15797a7408ddf31a7d64069b28cc64c5eeaf2d559279571bcd9456a1b8b95a6562d77d90e77dfd00202320cc03478b9dac500758fa429f6fd814ea0e854396b3b05c26d0229bbcd839cacc8c448dfee101f382c26dff0fb5400fbd76c4865b8f2294cf7a305a6cf7b435c7a3b575a6c826f43f129ac512c671e32b39918c6883fcd0bad59af033223c474c6d781d7c426b851e3c3b798739f91c8528cac6899c5f8543890caf4db53827acce88c096c7b9914d40596f01c45c26b6945c64daa253fb65de12d032fb0cdaf12158d0603f87dbb956f107fde4700afacfeb6c7db7dab8492560bb8c4b729c41f477617167fb94b6e83dea0e25a7e28f458de54d4e9009d521c96bdd7a759ec1bcda60ffc345aebbca3f5511816454eda742fa37f25357b217857ce52bd470ccdde979bf16a599042420a66cf331df5281f84d705fd6c9091559704a5f147b48212df09a3603bd7b426aa51f70af67b8c4b92bd12def3d240b8ad5968e7503daf0e5ef64ca224e399ac986c45d780e741b772259acc808bd7b1077c9c279db11df78d2ace4e40611ca2af0f60fa511416d0b224d01f4a4b9688e96acd852b9f78be0b19a95751c34360d555b75217d6ba6543f97632356445f0ec90c4d7ccbb8dcef6aece9a312b99b82296dfae7932a65c5ebc1fb408cf144ca1d68b7337f9ec8c70a911e7874e7b2b47481c4859330c9dd708e2fc6aecd801292adc7f9ca423a672a03cf89353b6715b6891ff7a9fb0c0a24e81a3098a2501d2e0d070fd3cf403eda5064b8df98a69f6095461298d5d01baed643d5322706888e6889990d476105259df768018b9c8f3ec856b21d33d4b513ebafbf8e2184105dcf9cd4b602d1811df1bfcd0c92b674d1f15422dba593ba3044d7919fef1108c696e470a8da776302c0060ccf51a7bdbfd7a1e763d997231f965d310ae63465e7c93fda71ad95fafa035f05876717678e5bece81030bc024c30cd3a449664906a5d1fbae921211bfb07ce675268df24219f7e3098054a6947eee9ca6de8449bb55baa3233f0a283323e3d805ec92cbe414761d3b8a8599f40a6f0a3bc0df461f239c9fc3251c98a644837c113ef16ff245709feb06eae9f41dc67baef034e4758b185eaf8cb43dc6a647fe5e9ff93580b028d01faa3baacac823b1cf20509521bac07d2549d5d318d16c1d88c1a64f096b4007c1852c55652642df14d2344f86ca94df583da1e45b4d7215e6b4850d931df23e1c26d45cbc90055178f14183369fdc5d4efa99f1d6956fa60a5c40fc765b9d8c3c32ad2b4e35296df05e4bb28080efc2d3f94f797cd55aa0abc4d40e9855878a78"}) 05:17:24 executing program 0: r0 = msgget(0x2, 0x2c1) msgctl$IPC_RMID(r0, 0x0) bpf$PROG_LOAD(0x5, &(0x7f0000000080)={0x11, 0x8, &(0x7f00000015c0)=ANY=[], &(0x7f0000000100)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x9, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, 0x0, 0x0, 0x10, &(0x7f0000000000), 0x10}, 0x78) r1 = perf_event_open(&(0x7f0000000180)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xba, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r2 = socket$inet(0x2, 0x3, 0x2) setsockopt$inet_int(r2, 0x0, 0xca, &(0x7f0000000000)=0x10001, 0x10) mmap(&(0x7f0000000000/0x800000)=nil, 0x800000, 0x0, 0x10, 0xffffffffffffffff, 0x0) mmap(&(0x7f0000000000/0x4000)=nil, 0x4000, 0x1, 0x10, 0xffffffffffffffff, 0x0) r3 = socket$inet(0x2, 0x3, 0x2) setsockopt$inet_int(r3, 0x0, 0xcb, &(0x7f0000000000)=0x10001, 0x10) r4 = msgget$private(0x0, 0x404) r5 = syz_mount_image$minix(&(0x7f0000000040), &(0x7f0000000140)='./file0\x00', 0x80000001, 0x7, &(0x7f0000000700)=[{&(0x7f0000000300)="b0d74d98b07441c7f1fa2a", 0xb, 0x100000000}, {&(0x7f0000000340)="5d1ce777d1f32b3a6d5a274dfabacd69fddf4dd594d06cd3a33b3ed99950c8312a6bb79c038135666572610c3f02c944e2969e5352524d2a9f8344f494c0c42afab2f2942ca93401e80fbbffd66a78c76e383e0d90cd3f38669811bdeb1c64dc7cfb770a1d8f218734eb0b6b38e37507ed8f16fafd7b1fa9da82f058b34dafcc", 0x80, 0xfff}, {&(0x7f00000003c0)="bbe60f76e9c9306fcceeaa5f11a239afe72bd6664eb7a990a840f53fc2622661c82c64b7cd6fbd438734291ed21d7d19fafd1a827034c4fa012ef39d9cf1f3b4d53c89023741ad32a273c5c479649bd326c81465157bdebc929078eaafe43fc598cf6cfbf7f1641a9f72", 0x6a, 0x3}, {&(0x7f0000000440)="bf00541b57af97e2fb7b9ef4997fb489c7c3f7dd48e8368a2895a7e20ff5b646adbf7d6a1edf29b4ccde77b80da7ce0294970b9e0eabb44391c83fe5944d2715bb28962ee72690bc8258a12e586c3afc17ac8deba1933c98451091174e16b0af699d290d550e7f508e8f326eaf6150fdaa03399f15963de3c73ad018d28c69b41bda28d58c23b56160ee83a138984f2b441d48a5a348f711a73dfec79dd69f42a2cb57aebaab341cc4cd7b3555c07a428b062bb38964bdcdf00925bc0f21d0e8d38660cf0322c0c90d86aaea6864bc48b33639cac43fc370a7b9eb92fbe957f7f17d448f2d4bd423a151e33b140100a6ba057b352f1fd79c", 0xf8, 0x1000}, {&(0x7f0000000540)="dba01afabbab822c3c9f9275d7ee24114d75e8a1b8704c122d04ac7c3bf975a82dc397df2db2c27b998762219a11fa68ed03aff9c704f15f251db8a1f7b2a53ff4610bf9a69e0cf39d6d9d5a20c64a206c00e3c7989bd2837452cc44679cb8c939aaf66cffb024101704bd52bc71d8fd6357f77652eecc2522", 0x79, 0x1000}, {&(0x7f00000005c0)="02d13f01f480cabb067f38ffcac15bddf2196fb954b5b241d1ccd81b9420d9dd0ccf9dfaeaa5d3e732c985e55a427835cf7529e37329549bbb6dbc588b007623908f065f34d80e994744430cdc540c69d5d6f1", 0x53, 0x4}, {&(0x7f0000000640)="42e6aca06783e8973145e4129ca0fe4265a43d0667660ec09d17c2cd01628674c3e92b7d215333dfc0c818911cc4b4742f93df1331a90fd73d43e0ab4b0fbc0f8ed1eb3f93bea9ac9cb99f40b0c9f5a0301135ffaa65054511cf25884012ecfdf4c0d90fcd037f8db65994694ad501f8678f81123bec526f134510a97671d3201418854b758757935f7a964d2268ec4cf8f164", 0x93, 0x8001}], 0x11, &(0x7f00000007c0)={[{'GPL\x00'}, {'\x00'}, {'GPL\x00'}], [{@fsname={'fsname', 0x3d, 'GPL\x00'}}, {@hash}, {@dont_appraise}, {@smackfshat={'smackfshat', 0x3d, 'GPL\x00'}}, {@subj_role}, {@subj_type}, {@appraise_type}, {@defcontext={'defcontext', 0x3d, 'sysadm_u'}}, {@fowner_lt}, {@permit_directio}]}) ioctl$F2FS_IOC_MOVE_RANGE(r1, 0xc020f509, &(0x7f0000000880)={r5, 0x2, 0x3f, 0x3}) msgrcv(r4, &(0x7f0000000200)={0x0, ""/193}, 0xc9, 0x1, 0x3000) [ 215.592177] tmpfs: No value for mount option ' [ 215.592177] ' [ 215.626976] loop4: p2 < > p3 p4 [ 215.638935] loop4: partition table partially beyond EOD, truncated 05:17:24 executing program 3: syz_mount_image$ntfs(&(0x7f0000000100), &(0x7f00000000c0)='./file0\x00', 0x0, 0x0, &(0x7f0000001540), 0x0, &(0x7f0000000140)=ANY=[@ANYBLOB='uid=']) r0 = socket$inet_udplite(0x2, 0x2, 0x88) getsockopt$sock_cred(r0, 0x1, 0x11, &(0x7f0000000240)={0x0, 0x0}, &(0x7f0000000280)=0x5) setuid(r1) quotactl(0x100000000, &(0x7f0000000000)='./file0\x00', r1, &(0x7f0000000180)="39289840e2828feb73e87cef67d345aa59b4663c2e9e3b6ac0db674628471a77ea69b1528516b8a20a35ccaf10e7193f2680cd23d4b109b089efff712ac1ad74adbebf003348773eca9824e5b52a32c623c3975712fa911f9c6542ab55f34325ef28720ccea93525fccf453bce6401f0db120240cc60c654f9d4b08e1c33982cd18b6e741309b40eada74a8bb779650cb19be7c61f12ed904e7b377a37b50f268ccccbc301f57f3ee7eae06b8e4b7a6362cb5b9d57015cc1c83eecbeeb3a71e0f91c6e645e8a0eb99ae75c32fa78ea755bb10fe721859c3d4056601311ea9f2facb53bbb77cdd3da169423491df9478c4251623d7b5b3dc7ca14fcd9") [ 215.740362] tmpfs: No value for mount option ' [ 215.740362] ' [ 215.775114] VFS: Can't find a Minix filesystem V1 | V2 | V3 on device loop0. 05:17:24 executing program 5: ioctl$EXT4_IOC_MOVE_EXT(0xffffffffffffffff, 0xc028660f, 0x0) perf_event_open(&(0x7f0000000280)={0x2, 0x80, 0xde, 0x3, 0xfd, 0x4f, 0x0, 0x1aa, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x2, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x2, 0x4, @perf_bp={&(0x7f00000000c0), 0xb}, 0x10000, 0xff, 0x0, 0x1, 0x49cd, 0x0, 0x31, 0x0, 0x9, 0x0, 0xffbfffd}, 0x0, 0xb, 0xffffffffffffffff, 0x2) ioctl$sock_inet6_tcp_SIOCATMARK(0xffffffffffffffff, 0x8905, &(0x7f0000000080)) openat$cgroup_procs(0xffffffffffffffff, &(0x7f0000000140)='cgroup.procs\x00', 0x2, 0x0) perf_event_open(&(0x7f0000000700)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xff7fffffffffffff, 0xffffffffffffffff, 0x0) syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000100)='./file1\x00', 0x80000, 0x4, &(0x7f0000000200)=[{&(0x7f0000000c00)="200000003600000019000010600100000ff68f01000000000000000004000000000002000020000020000000ddf4655fddf4655f0100ffff53ef010001000000ddf46500000000000000000001000000000000000b0000000001000008000000d24200001203", 0x66, 0x400}, {&(0x7f0000010100)="0000000000000000000000026856d49a00cc4371bd6a7c893f280045010040", 0x1f, 0x4e0}, {&(0x7f0000010400)="030000000400000005", 0x9, 0x800}, {&(0x7f0000010e00)="ed41000000040000ddf4655fddf4655fddf4655f000000000000040020", 0x1d, 0x1500}], 0x81, &(0x7f0000000cc0)=ANY=[@ANYBLOB="ab"]) r0 = socket(0x0, 0x6, 0x9) sendmsg$nl_route_sched(r0, &(0x7f0000000440)={&(0x7f0000000180)={0x10, 0x0, 0x0, 0x4000000}, 0xc, &(0x7f00000001c0)={&(0x7f0000000480)=@gettaction={0x168, 0x32, 0x0, 0x70bd27, 0x25dfdbfb, {}, [@action_gd=@TCA_ACT_TAB={0x64, 0x1, [{0x14, 0xc, 0x0, 0x0, @TCA_ACT_KIND={0xd, 0x1, 'connmark\x00'}}, {0xc, 0x12, 0x0, 0x0, @TCA_ACT_KIND={0x8, 0x1, 'ipt\x00'}}, {0xc, 0x12, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0x5}}, {0x10, 0x17, 0x0, 0x0, @TCA_ACT_KIND={0x9, 0x1, 'vlan\x00'}}, {0xc, 0x17, 0x0, 0x0, @TCA_ACT_KIND={0x8, 0x1, 'bpf\x00'}}, {0xc, 0x11, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0x1000}}, {0xc, 0x14, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0x3ff}}]}, @action_dump_flags=@TCA_ROOT_TIME_DELTA={0x8, 0x4, 0x100}, @action_gd=@TCA_ACT_TAB={0x7c, 0x1, [{0xc, 0x1b, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0xffffffff}}, {0x10, 0x1b, 0x0, 0x0, @TCA_ACT_KIND={0xb, 0x1, 'police\x00'}}, {0xc, 0x19, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0x23f}}, {0x14, 0x20, 0x0, 0x0, @TCA_ACT_KIND={0xd, 0x1, 'connmark\x00'}}, {0x10, 0xa, 0x0, 0x0, @TCA_ACT_KIND={0xa, 0x1, 'pedit\x00'}}, {0x10, 0x11, 0x0, 0x0, @TCA_ACT_KIND={0x9, 0x1, 'csum\x00'}}, {0x10, 0xf, 0x0, 0x0, @TCA_ACT_KIND={0xb, 0x1, 'sample\x00'}}, {0xc, 0x19, 0x0, 0x0, @TCA_ACT_INDEX={0x8, 0x3, 0x198}}]}, @action_dump_flags=@TCA_ROOT_TIME_DELTA={0x8, 0x4, 0x8}, @action_gd=@TCA_ACT_TAB={0x48, 0x1, [{0x10, 0x18, 0x0, 0x0, @TCA_ACT_KIND={0x9, 0x1, 'gact\x00'}}, {0x14, 0x1, 0x0, 0x0, @TCA_ACT_KIND={0xd, 0x1, 'connmark\x00'}}, {0x10, 0x11, 0x0, 0x0, @TCA_ACT_KIND={0xb, 0x1, 'sample\x00'}}, {0x10, 0x18, 0x0, 0x0, @TCA_ACT_KIND={0xb, 0x1, 'sample\x00'}}]}, @action_gd=@TCA_ACT_TAB={0x14, 0x1, [{0x10, 0x1a, 0x0, 0x0, @TCA_ACT_KIND={0x9, 0x1, 'csum\x00'}}]}, @action_dump_flags=@TCA_ROOT_TIME_DELTA={0x8}]}, 0x168}, 0x1, 0x0, 0x0, 0x4080}, 0x80) [ 215.842977] loop4: p3 start 225 is beyond EOD, truncated [ 215.865695] loop4: p4 size 3657465856 extends beyond EOD, truncated [ 215.894028] ntfs: (device loop3): parse_options(): The uid option requires an argument. 05:17:24 executing program 3: mkdirat(0xffffffffffffff9c, &(0x7f0000000240)='./file0\x00', 0x0) mkdirat$cgroup_root(0xffffffffffffff9c, &(0x7f0000000000)='./cgroup.cpu/syz1\x00', 0x1ff) mount$fuse(0x20000000, &(0x7f00000004c0)='./file0\x00', 0x0, 0xfa04, 0x0) chdir(&(0x7f0000000240)='./file0\x00') perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x51c1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = socket$inet6(0xa, 0x400000000001, 0x0) close(r0) r1 = open(&(0x7f0000000080)='./bus\x00', 0x141042, 0x0) r2 = getpid() sched_setscheduler(r2, 0x5, &(0x7f00000001c0)) sendmsg$kcm(0xffffffffffffffff, 0x0, 0x0) ftruncate(r0, 0x200002) ioctl$sock_kcm_SIOCKCMCLONE(r1, 0x89e2, &(0x7f0000000040)={r0}) r4 = openat$cachefiles(0xffffffffffffff9c, &(0x7f00000000c0), 0x8000, 0x0) sendfile(r3, r4, &(0x7f0000000180)=0x7, 0x401) sendfile(r0, r1, 0x0, 0x80001d00c0d0) open(0x0, 0x2c040, 0x131) mount$fuse(0x0, &(0x7f00000020c0)='./file0\x00', 0x0, 0x0, &(0x7f0000000280)=ANY=[@ANYBLOB="74f8c92db108243733282af44b2c8f8867ce7f674115f00e2bb61cd00cdb0f6aacd09ac19e22087b94f47dc69f788080d7f6a768264c10f7e45d4110a0f37a7386081c806939e81c1e6a2eb72fa8032c74bc5bcd4d34cd1a196b28c8ddc8e6d1d85435f11b276ca5", @ANYRESDEC=0x0, @ANYBLOB="59851991a563aaa8466e48a40d7d66b5feff07000000000000950ea4670d40f5f08f87a18322712c6b7712a0da4a242ff6a226d7b0f273811b6b6700"/69]) creat(&(0x7f0000000240)='./bus\x00', 0x0) [ 216.110132] EXT4-fs (loop5): Unrecognized mount option "«" or missing value [ 216.195905] EXT4-fs (loop5): Unrecognized mount option "«" or missing value 05:17:25 executing program 5: syz_read_part_table(0x0, 0x2, &(0x7f00000015c0)=[{0x0, 0x0, 0x8001}, {&(0x7f00000002c0)="2287166b38d8fac087003963aeb5221863bcb3e192b107621b0296bb270a7838dfb239a9efdb496f78e483d1d017f670b8cb0f4eb73e596decc791993fa9b146a4f7a7d461b6be6a145cc04b746fe3bb5e9afe2a3432bef53ee69b544dea5faef21dfbb9b9a3690386e278318d1c1094061a68f790f2caca9b6188d7f17aa9a2cc571deb1e6c13336763050c3b5d0fcae5d060f518de0ef33e8a8556982852221e739447314075d7c2b12dd9c33d410459d67b90cacda05fb57ceb45a7851854c206da54eeef6421b5b68e3cc795cc764e1d52c6b6c8a0af15aa5673d04e5baef7d1fcaf238557c8ec6fffbf854542e6ebea13e69c1dd668de0616f0f887c08df228755dcd778bd6b20d6d9373610f2ba1df8a6eeacf429a30d29aba351027f6223a33433abe91a5ed1742dd51db7f1f9c9d4b6c41e1b5ffc2b0546346dbd7ee9ad377ace1572094ed1197596c704b54ccbc0501d190db9181e05e9b5989214273411c652a53ac5e90e8882ab254611f6f268bccffe50226311af0550670d33d3ffb1eebf93d6229f2f721a7959da9800215cb8ee457c90d652477bb03de290347050d66166015d31fd18592187afff1e4c808a2bf8cc32c37515912848999ce667505", 0x1c3, 0x8}]) syz_read_part_table(0x100, 0xaaaaaaaaaaaaab1, &(0x7f00000001c0)=[{&(0x7f0000000080)="e2f04a84375a7cfc724cd7946fdf4094942777e2d063cd2efdc28134591b500bb83a10bc4c04422d239c747c35b19aa2bcb34990b39d61c0ce7f20b49cd775b3767d8b60921d76b8e0572fdeffb71d3c5a", 0x51, 0xec}, {&(0x7f0000000240)="a8577b543a929155e913fae65a50cd73eb9b0b0c2360ca0c36ac53dbb0abff4b4b98de3e021ab131e7addbfbced60a61c3cf79e5eaddace52b9ef5a21ed532cb4390b817ca0f7e08", 0x48, 0x40000000000003}, {&(0x7f00000004c0)="0bb657ee638ef07a1029c102c2dc934a025a388c8a0106ebacfb54de3bd2c2c97bc4c9e3fff52d60b343ff852daca985aa273e9f05ec10961144a1b737d05383c305d9ea9123d2eaa54c774b38be4ff1ee007c3fe522fac9666cb56f04ea7f2fa84d8269249387df89667ab037ba49f28cc8b392e9feb7d22e9aa8dc3536dddd6109dfb1ec19f7269299c05d81f59ba49512ec62f4801ba5c8736d54bf7105", 0x9f, 0xfdb}]) [ 216.296435] loop4: p2 < > p3 p4 [ 216.315077] loop4: p3 size 1912633224 extends beyond EOD, truncated [ 216.344866] loop4: p4 size 3657465856 extends beyond EOD, truncated 05:17:25 executing program 4: mkdirat(0xffffffffffffff9c, &(0x7f0000002040)='./file0\x00', 0x0) r0 = openat$fuse(0xffffffffffffff9c, &(0x7f0000002080), 0x42, 0x0) mount$fuse(0x0, &(0x7f00000020c0)='./file0\x00', &(0x7f0000002100), 0x0, &(0x7f0000000000)=ANY=[@ANYBLOB='fd=', @ANYRESHEX=r0, @ANYBLOB=',rootmode=00000000000000000040000,user_id=', @ANYRESDEC=0x0, @ANYBLOB="2c67726f75705f69ffff", @ANYRESDEC=0x0, @ANYBLOB="71bdb02cfa"]) read$FUSE(r0, &(0x7f00000021c0)={0x2020, 0x0, 0x0}, 0x2020) write$FUSE_INIT(r0, &(0x7f00000066c0)={0x50, 0x0, r1}, 0x50) syz_fuse_handle_req(r0, &(0x7f0000004300)="1827dacb7cd53e01b4852de2d748e21fa033071acb841f449efc23d452101807ae5c485596338a6d31388444ae8ade7b60a85a37d3db29ef19ae4c4d4db9c2c82c7908debb2e2b5ebef336aad77bef942d064955079af4e914f372cec8ed0440f6ee0bded3c565283bdb75124011227712d5f01e8c1eb86cf69205a8b5b374edee58ebaf09d62191cf41190260c30a719bbc9bc29be0d60c678791de6b236c9b5a057247c281937c2b2ae747c858532113e0a1e7af49298ef54f15572301d3c907b02529bc470beab8f9208cf92b17a9df99ceff90a1e384d6bda3fe823d8eff0e2229a43c31781935de69466b1082c0f88d3716f234e1d6e17e1360f6621e686d661af20eaf08cc97c261590ac3291667a87bbf66f86d9005f034ea5517b2187b6dfecebc1cb8fc4dab511a2890a68ed185483c548168803f353520cc6f820d1349ac985e12a3ff6e8a78b29ed97213962fca3ba7d04d1ab4dbcfe93a88831f784ed278d079eb3e2e69d3161600fc7b0dae825b510a59c14315fc6ca0ce68dafd088f02a92ae0ab3f15ca1a863b640e8e4a89407a8b8d752892e1f8b0e793d430c3ec46cbe2b6a4bdad728c34e734864aeac2b6b2eb51c3a2f9e6773c5834166511086dc35847cfa17974889795ed305353d41c9399bb95936a3c1be1099f21795cfc04d9699929eca65a0edcae5d4e564404e5292dc15f40d78d94be9e8dca92983bc71729ab30a70455bbfd5a98d97cab9778d9b7b69fb20019e7e7c7bc17c84da1dab53a187a116ac229e00312c95b1074afff18a8771a4ab47be2205745836dc3cc1ce531fe697e9a734698fb2343b331ad9f13214d1d7d511dc646fb8b3b70fb4611e6d102a0e2bda6311ca824537f699efdefbd8a3a523e26272f07abd75504188edc788af9c75aabf77f4ac883573f63ded319fa5a8b6317d4490391879629446fa5ea4c695f3db9739f7bc1da7a19f3e1c0ccca98307b3a7a38272b7455c8957b17138c9e170c27895fcf47eb5530948b7cc43d61a621293b0c83dc893f02def2b42a8bd7ad6c9cdfeb7a3bde141e98e5af7500b07d85c6314949b754c88cc666bdaaec89271f56ec11bfa0aa337feb1140b8a07fbd5c79bdd0239f8aa1d454c0e5a16e99d38d1212ff709bb1964c317c98bfef37b56944666f0320ec85b5b1e07731de5584901f8c65e14fd2ba83b500fdbb137c7cdf91d66400688a5da6405ca7e0b8107ed65be0ef5c6234b62f613e7e76d6f3d5cc12bde4342391524e25bab6ec0a358c6c66b7cdbdd9301f91589af65cb7c02fe8271a798c5e122fef9e7581d28884d33d01f0475c9ac052d2d014bdc09e2738487742f7bff40facf2e96dcdfefa336c46923b77b334daf7b01a9fd5d957a29b83adf6f23acc507a58dabe6b2804532bc1a865a01b1126127f7c6a8029531db8a51d8472c0abffca5be97b9b5433ad220ab9ad65cf94a1167f3fb2b8804ce66f9f5cae212724b2b3a04343580f5919f446f40eaa0177f25ebe68ee7c7a35d9d5ef6e1cb220eaf8ad9b269b15c2ab9692c345f3c3bd5965f06adfdfa2d672b5e3184ebe192f73e70e829adfac2e6318d238dceb6e3d7d1422d57ff7124793b92966bd229c0725b0d591e59c57f98841b5ffad16d0ae903406014d3e632d0654e9084f870e124046f3ebae3ecbf5c5365aa32ebf169ccf1243dc8fb296cef006d5f00447ecd2980abb98e3b6e6bf6181e5df7994ea1c1273784af0d92a57394c71926dc143228a8ade103ff61860d21ffd467b2c41bbbd2490dd36add865828fb64396f16831a3a74f57ee2254cc93b25b7219bc00339a2518be3caa4765ed63295c84f1d59144e96aacfb57c6441f64f29729bb7d68127ae2472bbf089570003b1e820191878ab6f53db01c180751e34672cf5a96edfefe164580d6101672281b59f58f3c7b1222f2b6d19c8a8e5f9ad539045f7dbadaa767f993da974dae20744bf5ad0e0ec71ee97696659981e067463c78bd9337b8bcfc070e7e5b47303eaaf9651c19f19a15eab8e2c47041828be50994b5695ee5fbc9a9ecacf9de714215eb7992c07f262db8843937934fdf6fdd31d0f3a44f074f3a1dd6622dbdb3364df79d5ec90ead64c29e05a6c5358cc6b9d8493b7e1c53a91c37aa3653cf2002072461f4b99fcdec142e53b87f61ea55cdb834dd4e03f2f57a206cabe2f3f3cbfad3b4117bf4434718022b09a8419959a9bb97fba50a6b3b9a844cd1301de7bae89f8d1bf549b88dd2bd0697e70ce89cc2e383221ca2ae9d3671a730466c250a8963f6411a42ecc85a00c01b2b43c39432d5065a5fd11c29a23169891cd674cf3a31e82587a26c8d48aa3debeaf067a26669599fae850126dd516512e0cf5ab556b5582add7d2f665723a2244007ddc302f0ec29da73578a80c998849be2f766a334c7ade4dd46f37d648899da5cf7437af2d6e8d03d934903387c4c7e260909d59b546dfac9ffdce11fb92e5bb6ff6836fa0e6d0c5942b4660fdd68d3cc8a76ce0960584dbf634695ca75752b19067ba535e4779189b111c9a3e0ea877067c046d10021b0e60eae8d5dd7536b4474d8ab74679e2d8e68bc9208db5561e28d0bec177cda1e2f944a4cd97b6432033ce40063cbced6b36e486b096adffd699c9fdf58d5ec54bf4afdf52493fbfcd91e807da31ff675b567058697aa088118a6ecf1b7c7dceba3ba87d59d882fce3b3b676763ed658e991c4fd5746946815af0a2c1e96aeb27383cf6638d6d7e1932b3a028250fee18db7c46acd7fab33ab22ff91cf78029a4ed96494151652213fb7dcca0a8944568bf84aded113e20e6897d6b8f6f9fe5f6975c7cbf999d15ce5f8d50454d58e7a5b285fce4ef9d14758cf4a9619b17275fa66f2c6c48d44da95657708062bec9b633ba2df082766f549c5c1b661fc8a5f7b8b6699503da733a66df44f116c4a470b73648cb64bf04101e7bc1d048d230addbf22a5b98aea08beda847e33552faf771d9b181f610ce34530543096257856ea3a08276bec1ea40e7bf6957143623ef47b5c41e61d076eef0a5195431b49beab9fd7f07b1a153491a7250a889b26ce657df550b226fb94cb5f52306f47ee3af4627ef0cdc0c50536af7b386440b878ed5d672670abdb3ea3e3c3c031e67293104a4d6476cf325f6fe4762ce2351dffac116387baadb82f987cab7fe88ce1be7d44ccd572bfd29114d2ce4d5e90f4d6bf7be39ce25ab7de52815e4059d783564d518dd208714de1c524ff69a4ec5f29bb631eff605cc6f30a0bcfba44810a3a6fc263891791b51cb4be0d60d3d0798e38b01b9a21150589a436fb4df4584bf6e7094176884921bbb0f87b1bcdfb6df8aef8f58393800816c15647650448da0ba5bb76f7bf76c3be83aceab79eedae80e1fb46a2557a9485aa7a8053a5835e609fdf54222f5b43cba63c9508dbbd0e22953768f88e2070236d7255f682464d09c7ba12b2e8787a1bc889af686d2c355961d8f92f877bb09baef09d70b5b306047d8d3cb97fb06ba8d09bfbae02314dddf98092b6ef275743e9deb391995003d83b549ecd604daa9bd34ef311aeced5db504242241c0717f8302efedcd3fd43686a7ee21c73ba3c5af98c93d09158c9011e11bc4b51a3a4e904c4b6ced1a786adf310073405c27df6aae6d5da4398d78622ba9144ad09902da49b77046ad22fd303f07c1533f271eb82794b402382d2971f46c7907069907a7afb9e94dd4071685f91cfca10d86aad7c385e4d90f0d44d37588a8f1f267c1d8445634ca4194d1a0c5894a6d00cae3af3aec991cfefda59e3f46c0a6e2fac55b35259a9960ec7dbd1c7dd128368393f0de1e0994ba1f5b41762c22213f56bbf4c2cca458dd5731f9379f0651ba61fbf17a5861eb417e20a7fc9df12c6771f5ab322213ec95beff96dc1811dd0f45be8fb1ed93c2cc01e694620b550e45bd265fb357f52699cf9ca3ddf331fe4d11c5e97bb57631d9c7620b5c19562c85ef8e04ecd5cd5b713fbd94b6b76331a83f304cd8ae1a903ffa722cf5697b1e1bde206735656ce57254744daff8013f47f9aa4f062d8c5956fa8df5ee79d6e6ffbc0c47cd0c99517a6d92fe8ad18c001be4b55af7a6533712c6a2ccb7e813016e7cb74a94bf2a2ce9b3b440faae19210d43320cb81a6472d1da775ca27f2b5bbe5964271eefccdfa0bd6b163357af4539fdb5d5e2e7e1795040776d4d75b70928b8efa954556f4d225bd9b6f9e5a71a8e7a3ef5c36d459233c66650ada1c55dfa02bca3997f93b92028881d9c3ec0e7e1a42c587482b0cfbc77e8520c6ca0f3e5127c96b41056b7279d9e62358e39dc95e779affaaaddc8e9ee66ba336feca8b957ccb4f352c0d162390e3bde27b15132407c97c3a6b5f1704e1e559ee12655a71d7dce3711c8af907d7d2875e2407ff8c59c5457678058d3d00a7971d239c1b1c67dac3ff3fbcc2d8c8035e31040118ac46ba5110a16aedd0b7f731a4f86a63a697501a664946eaf7da6d3cc2a296f294ee765b8f26363ba6116e0ea0ef8eabb0f1e7cc429611194cf0bb66463d26a82dd118cbbd3f1040dca2f5f82ac5eb5df41a4658fcb34b68066c5708a4a16c48fd290b32e392e7f5b662f4e3fa2d79a814f52824cf737872604672bdaf80fc527deb1f690339c92b6c6c6c8635de5a2e1a7ff617d0f1c11bc3a3504d0de94d77678025ab5bea511d783df148e58b0793251db3b7b9e03bb201be89d5939c0a60ab548460d543d015082e00ad9d05418c327ebafbad7924aaf70e5fa6eb0be359b65ac2fbbcad495b17712e033cbf1853d1e2450ac4c8d19287074e76ca3d087d376b0f861b525d4949098dd4e3a3cc50118c8587adf6587ed9aa0352b7d812fe66bb64eb0c0f4d46822aa9c3d4848454d49b61cca24d7d6b82fafc5d8eb4e40e3665f24a95182b70b22c5f9303a49d1278f25de9855246c729fc8ba300fad799a949b9b0ce303477d22337d599d4c8441461d25725965183210a729fc59c4e5ddb45c0b9db06a09619e6009aa0653cd1e8b06d0e55c133d5022dcf91f12a21e9f977de2485f886c5133a8837987e7bc90662156b0250cc76cb03ad9fa36733ef371479ea9c1313682866b963f1f96bba8c658e2c6a10e5e29d8a07d4999b735bdef7f60326aa64fc198c3f2670fa4a44717fc613f1282fc324fd9476e6da7866cb6ce1efa8a1577088f2aa757584b8ade9f2ba34a2287870da2cc7704008b6e057eaf8bfe2fd0d6d60cf03e1751d2284c6439ee6079708451e64b1f7e7dc8400ae99e0d834a7daba6c3a8219812adff0760129e18a41eb0448c57a909714cd395933436e9ae040277f213e30ab7b6e7e3109642ffa051b3c423f6ffa7830c75d229acd617d6bc1f7948f09238f5437ff4fb302034fec1fed96c55c46c7d70d6ab3018c1a3d76120077f815fa67ec8815f44fd0cae7d1509d217a432ce904c778f201a508fdea4672e9cff797bd1d0f58d46f39396e148573ae9b2468e4ee5bd9a5abce8166333c524f0a104da2e3c99ddbc51fc6f4e7c628af79c93d0fbe61b1c4a72b11fe423597f126467a01ee6dad848f24abdfe453592f02c84e017fe553f27e639f88824d70aeeaca54758184f95f12d696291798046bb075fefd6876e8ef893f5b9340e21fc63c67feb6f03055f2f394a591164a61b1aab14c468998175b75974543e79b241dc69a6e346374dec5eebae154e36f29d17273e608ce69d539a5e4702f474bad66fbf3348f0c859bf884576faeeac754e290ec97e863526e55420da72b6b6cd209e6685ffb64e9865d00eb017c843d3c0cf3ab26f53f76316fbe009f0b2c4932b0694fecf1a148dbead458ca9f5f6d678d6c6fbd23fb6aea9e951914300eaaaf69bf35d4ce11c0349a02aa14529a083e701eac0177d4ddb305a9f9a5cf8bacd96327a161bb8b877813ea022d62bac8f0ab9eb5e9d145dda4b1fe79c0bee34c8bbfe866ba376d3a71b9809adda06e64eafaa6cf53fff8ed63e15525fd409e13b1809ae6e6e937acf858a59d2073b304171d5ab35ec92f66fbb2d4e34d46e886c3546c1026d0ff27821a15aa397dbc686540d546ea66fb43dcb9beaeadde6250cfe8e563f9033b432018c88bec07279c6a0228f3eb11031d3435d95c9c1789a5338f74aa6db2c853c87f8f2397f9067fa59774770f64b8ae42b9a07f85f1bcabbc6d3b3456a253bdb73ad3de0aa416589b722053c81db90e7b66a835d636615701e6869fef016bfaba9da0a869005ffc3174b605fdabdb8c7346262ce78a64aa7036960913edfffad202d664d1771018de43b6548a6672f48979b8e30017a93da2c093266306e09eb203fb37d7d54466fb26d4414ba88346d02d8811f100dcb0a3e50ae46247b986b928f12c1ad506c6b33b49d7e6955ae9619f73c79b72a95b053d53c4c54d36dceb8ae780b321aa41b5d61caa21a6c65329f08da522bbbb3d07501b39cc6bfbe4a2ef8054d7c57666bc805ed451517a1432b958141f3ce94752a67a17aadb41590037da8efdb251eb56de30b0e0e75adfbf4e06d4777f843a8d7c31e2ab62d98764217491d46960d67d3ee1213d150c28e75d1f440d41ffc3cf876554e2d4a354f70fce17e4c0fdc64992c32e785263ca4ffcab57d3d46d220627ed05f1628551e9843137996bc7a0b773e1ccfe5364216a8003757ffdc052d93793a3463baf4eef5dd283826f8510bb1f20505a6e61cb3d571d0f77e67ff3c0aa5ca91f6d68c7e0d2d79c649b091b30b2911c5c47157c9c531296eba681e039eaecab83722cc2fd5b91913a463ba9f693e34da60b1adb8ee9f4a83fa67e25f19e4cd6e19ed1381cba8b5b4591109637ae1f7f29b5495fc5f8057da565d937e7577735bd98fe626ce8568897d240f054ad69c8e0ca424d1be51b17d5e639253fb2fe6791e01edcf9c4f8404233d7f98b52c31c4996b6b63112d0126036ca20cf52a2da2478683c41bfd8fb5b34de59d5e87b5075e5e1d78ad06c6a2f6e662145be3d30d140b62c49df203350ea4412c97aaeec7aaa00d81b89f3b7295607840de2a8386f52012b5c4e6e0e1986565bc4f99b6bc10f3a2ab59783a8b9f3c696f741af0f51b6592c68ddff861fc7d2b16876b05a54eae9ec0e170fbf26d9358941c6cba50a5c41e77f72c7f41e0bbf6023f04f7701f676a64cb63ea1a8d373ee6a99ba56449699ccdf8a11dc7d840d695cd5ef987f74e5b16594cc8c6c2251c47b429281b6e34c0288c7242052ac3c9c63213f6ddb08726001e0afe1fb312d463db8722f1617972dc7f365de498027ef0b5c6d100e583348cd777a2afbfd60ef59969c8f88358b6995c177a7d7e69d86b11e36f42bae8c9af599d3f828447c31004000163bb74ef20f656f6a1c8159bd0f867f2e283c10656a40a397b2e514c19efb5d5a5f54316509801bd8208a2c84b2ef13e54d7b8af8787b826b50095a15e33a5e8e306454312a83af7869b7ba0039ca601751b580a9190435d35a8ce9d8e9558ca1bcea3cc3604f4e991aee79fd0d2393b9f87e8dac7782e837e1de5e88a7c79385a2b14556041f49c1113df43efd8aea14c4b651d713fc9989b2fd77ce13a98efef5e83cc6843d313117753d82870c5efec8cc6fd855ab6e0fc6d48c66874fdcb2d007db7fbb9371da3836eb23da1106283a20e32617bcaba574b7b6298d48334eaeef905ff348c2bfbc1c83a88d6915b644d1854161ab4f1d1db12e74de2853e48d1a10f9835c226bca6944d0de6a18e0e07df45ad72a7d354045a6997ffdee010e37091a3a5280e5db8aeea0245217a6f1160a6287d9a28c0eeabaebe755b9485da5b7ccb85166ed902e63200e5e8ac464124bef0196eddee6cfe90fce770b416817e1ca78494786bdaeafa3538841f74bbdb2585d63f667ef227287efa56c030c0999e9ead590f1ce383a138233235494ecec0aed97c803b4d7c4fb80ac9a3bcb1dd2bab51382a94195bee034c3f3d3d9efc44add83ec580a5cfe8f5942b1694b0ab3ef4b2d9f7c0b8634b056c6b6eeb946be1825fa452abdbc1545cd94774abed3fdc2b0399929298221030f6cd0a2b38490f5e4bfd53ee20de10eeb2ffacca980d40e0885cb91c94a4d81a61d863efd0f7a12da233e1dacf7af728950892ef887abcc5e4d08c6b57834a1e5dd1dfc69418fc681b47d8cd34c6a3846b0e1afdc7c7f9033ff817a72ac617c0a1e59e4e6ea40bd668c499f221c5f63700e74b68ba3045b4460f0fa60308cf8964d95237d888d5c1b1be0fa7bd2703eaeb0d2914b8d22cbd8693c16f21bb72566f38aa97e86f212557d40e10b285e1d4de0b153c8f91e168e9d0031bb7ee7fec5f0c3fbf15bc6fbceeae6dd363b7e9835b175b0be16a3348a2c2d07468449fbb2fcfca9e7d8b72b623355715a6a1edc87ea4c699ffeacb2277fbb5658a1eb12d0a7a93bf100ab11cf49b35c16a14044ac8e5bd69af05b252325f0eca41f90681b4a1ec399096939a96685926655a0c4d172d06646c87f35b65c0d7654882b79838f78c35febbdb378f9f28d7e6ba1c1fa191bbcdbf991731f546439a966e4f7a15c77367161bde14b731c9f2b91114fa46e02e70f07d3c40988e8140866ed3dcd98ef5524700deb75c1a6414016da0ce6845e936a8692b7beac01bc855a72a490c667c3b755ffaaa57af54af1bd07ae7b203be85f3653aa63cc5ae10f6e585c7bd8a5257604e82fad6c7be6f1a47eb665c1422c03d3263f351671a48bd5eed22077b8c16e706f009880941c29b90c29a11ef008a371b29200f32523b9847d911fab4ee1468bf98a49ff73703e2d9d7bbf6ae37459c3cb502541f304e1d5918518a06225b65f3b38b91f8e0b49a29ef9aacca369ce5cf8b45738e29118ab06078b885189acf4d0a5200b86cb2269dde90dfada27975dbe6ded12232c0faf7ea12ecacbdf416cff8632e48346478a75c0279c1920b7556fc6670704d5d97912c75d3a9cffe6891abdf747a6850ba7d9668e56c7e7ecc03c5c388e886bc984c8bfd9f470b7e4ea4d146c3c28e4f8ff82b9558266343036e6239a26f567f7633911ccc51522c29ff3ca36ad5b8cfd6ec1c86ae08f30d87a503c909e66dc278e9d14f3fae4bfa4813f315b1610ed76fc149d92f319044e813c3769d4978637e0ee732d3bb86e9fa584181f41d4304c07a1cb71d10f07da649288275a213eff161c536c7366d4c010cf9a4b1c2f2940607dc7468e51204c6983c554d616d48f93ae51e6a7769b3285785ae7bcba3cfb27879df1d7f1f18849a70814eb51df6d1d8cbe80b736cb38326f7db7a06e49cd4fe41b3f7a9156cfac9222ac23d13765e7f2910a365fb23a208f192cfca97b2b8a3de44a2d90d3c865bec109f4bdfb1d37216cf5f71a27c39a83b5562b0c06d76b46b2d8f5b15cb1765d6c78d065d24bedf72405dcb8e795fe183196a6b620f918a2dd7fdfac142aa653fd431ec153e3daac8f615a45b3a0d665d5fe36efb6e2f18b8399429e4f363748eddd5cd2a637e9a0a553fac6d05a3e2bd1b26f2f99433f8f59a3691417a4f35ff7d46a22e39e94641d942706850cb2843ff4a34122e37dcc8224ae9f6ab7f64ff4a0bcb0aaff2f429e4f0f5fcf90ab6a2c45e8f2408d9bbd4f60d6b01a0cf527895e1cd063b178b8973930b9488d81d3f0f7985b900d0a894c29642b809ef39294bfaaa5401f5ed50cbb91a047b60ad54b323a2f2ada04d19d6dbda02e0f22d4d6520f9db2263181c97c9bb74dd8a90adedc80bfd064eb103f67d02ea17571f870c779470bb6460c658da4c502b9a10c8050fc26ad5cc1ae1eb02f0d703d05b48f48ab8c9f9a1bd000181ccf929d45544b44e9a3cd0bcd412ad639323283ed229e5486a2a93babb165880a0a7329834bb51a0631cba5caa30637ca3f07074051c608b7c7170c8c415c2eb88bd6a798bd86953ff71052506ccf0e2357deff6cef24de5b7f68a17082c08d096e43fbe727ab0ab1aa27a703ccd58168039e50dce2d400ed7f2a217c1eea7b29455fbf910d36db324d1c6b53343a78484883ad100a0b5b28c74ab6296df5bf8048fb916e8ddda0ded3f5b08d262b9b1cb1ecb149c02a21490ebebe8856c844d448d2a3878dcc930c3c88d9addf73917e9d3f878fb12fba3e602cfde199a0e69eab56e3d4ffa01135b3145baa613be01f0b94af5bd3b8b432339c954f52b8551fd13790bc1ee18be226b819d8001a3da8e097f84c166e4002e4c1043d3a3721f05105cd17a278b9509d7a04826e8a5b4956bbf976ffb4857fd88da99cfea8d2e0a1c4f52f71f87cbee8c02fbf59b12bdaccb67d0b95f0a56693eafafeefce1953d708b56532ed5bbe12626a3d041c031b48a47b34c504f7dd57e21147b920c058385ddc8cbea5332086c269b0d5c2439f30fa431f88d1a10e25eba0df70d8617ecd5546314ffeae9c4baab872ab82a45eeaf0e1e1533e8a6189c324f31b652aeadc52981b66161313999c5a7bd7c79ef4ee55c7cb00ebd9637ffe01924508a44ab72ab16b70b8b815ce7d27772db315122f4a5a7679af5ac685c26320a71cdd8066b19f749705e2e35d1d9166ecb066053dd05a759270e119944cf99b918cb5e4e6c931031ae2eeffe349ac246c92174091c687c58879e1f05c43b010f7ec3f204c106cf60740b0bc2d355f57bbaec7d060dedab9aebaa4094e72ebffbf61cdfb7d69fbd146daea59339fa83c19c5f75b866af5e7f387740e675e1e2ba29c261d9e7237c6e9ef1b39a8fdacb44de0eaff5f4f9e3e42b75d0a37834eab0cf47acf65e882f0962e01982e783c0dae7efbc95dccb235562e5a2e04fd2b4b43388c0292e6e8198c6df0348920d6e1c8acdd2e892d3f7aef7703824dbb08695642f0e444ade6c4f1ec1e267feb5135cccd50fcde643acb66dbd18f507496957ced435e0db0a8e8441a8e2ebc365f995c32399f7d180b6faeb85ee1921b95f82f3194bed7d157e842257d2da26dfac90f32fb53147e48e232d5115f1cd12b45c55330b29775ab776599afa504b7fe114cd7fb3ab4eb6c30becb82f448b284b20010bea918019af99b2a9ccab1585aec19fd1abe8365a6023f96dddf1a37cce2734bb6585143729850bcd811787bd07cb5fdd57cc987f9278b7f5ef3c7529a9b6d20d18cc4446f1036cf7635da6732986c38df4785e2e428f14b84957319772bdbb7d2d2d20321e522b1ec6c807f3a3f575643d4b71e1bbd1e843b5816aa68900298f5058c65a9fe1022978a44a77bde2b99e221de97cd7fa6a2ea440220bac20e3e4c1e4224958aca15681d3a18f74218114c3e5eefa1fc16de8c07f1d1297b0e772d05f205337175c1dbe88dfc876dcfce367304afac68c41b98ed2ba3f04fd1b37db27dd5d9c9aafaeadfcc44585908ea655ffce1fc2516b060256777e8953e2a6861ec4460034691aed001ea2971627615fc7972773d6a8c343117bae3fc68cfd1f187c478c0f52e86b118c65c39848a8c582ed908fb1242ad3455288cc858e52e119d368e00783c2b8c2916ba564a3501326baefe1dcadac8b4b8b666f20a3a245ca171b43af", 0x2000, &(0x7f0000006d00)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f0000006780)={0x90}, 0x0, 0x0, 0x0, 0x0}) perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) openat$dir(0xffffffffffffff9c, &(0x7f0000002000)='./file0/file0\x00', 0x2c0, 0x0) read$FUSE(r0, 0x0, 0x0) write$FUSE_INTERRUPT(0xffffffffffffffff, 0x0, 0x0) r2 = socket$bt_bnep(0x1f, 0x3, 0x4) ioctl$F2FS_IOC_GARBAGE_COLLECT(r2, 0x4004f506, &(0x7f0000000080)) 05:17:25 executing program 2: r0 = perf_event_open(&(0x7f00000003c0)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) mkdir(&(0x7f0000000000)='./file0\x00', 0x0) mount(0x0, 0x0, &(0x7f0000000940)='tmpfs\x00', 0x0, 0x0) chdir(&(0x7f0000000380)='./file0\x00') mkdir(&(0x7f0000000400)='./file1\x00', 0x0) mkdir(&(0x7f0000000580)='./bus\x00', 0x0) mkdir(&(0x7f0000000180)='./file0\x00', 0x0) mount(0x0, &(0x7f0000000480)='./file0\x00', &(0x7f0000000000)='configfs\x00', 0x0, 0x0) recvmsg$unix(0xffffffffffffffff, &(0x7f00000004c0)={0x0, 0x0, &(0x7f0000000300)=[{0x0}], 0x1, &(0x7f0000000640)=ANY=[@ANYBLOB, @ANYRES32=0x0, @ANYRES32=0x0, @ANYRES32=0x0, @ANYBLOB="0000000024000000000000000100000001000000", @ANYRES32, @ANYRES32, @ANYRES32, @ANYRES32, @ANYRES32, @ANYBLOB="000000001c000000000000000100000002000000", @ANYRES32=0x0, @ANYRES32=0x0, @ANYRES32=0x0, @ANYBLOB="000000001c0000000000000001000000020000", @ANYRES32=0x0, @ANYRES32=0x0, @ANYRES32=0x0, @ANYBLOB, @ANYRES32=0x0, @ANYRES32=0x0, @ANYBLOB="20b8a7a4f55c90a2dce7add92c7fbfe2879882c6442d28b32cd76e8624e2f80f3291a573098d6d55f0dc90a9fa7e5427aeb5524dc841630d6e1fd53f63"], 0xa8}, 0x20) mount$overlay(0x0, &(0x7f0000000200)='./file0\x00', &(0x7f00000000c0), 0x0, &(0x7f0000000240)=ANY=[@ANYBLOB='lowerdir=.:file0']) creat(&(0x7f0000000280)='./bus/file0\x00', 0x0) newfstatat(0xffffffffffffff9c, &(0x7f00000007c0)='./file0\x00', &(0x7f0000000ac0), 0x0) rename(&(0x7f00000001c0)='./file1\x00', 0x0) mount$overlay(0x0, &(0x7f0000000040)='./bus\x00', &(0x7f0000000080), 0x0, &(0x7f0000000340)=ANY=[@ANYBLOB='upperdir=./bus,workdir=./file1,lowerdir=./file0']) mount$overlay(0x0, &(0x7f0000000140)='./file1\x00', &(0x7f00000002c0), 0x0, 0x0) fstat(r0, &(0x7f00000005c0)) open(&(0x7f0000000800)='./file1\x00', 0x40840, 0x111) chdir(&(0x7f0000000540)='./bus\x00') rename(&(0x7f0000000100)='./bus/file0\x00', &(0x7f0000000440)='./file0\x00') 05:17:25 executing program 0: sendmsg$IPCTNL_MSG_TIMEOUT_GET(0xffffffffffffffff, &(0x7f00000012c0)={&(0x7f0000000040)={0x10, 0x0, 0x0, 0x2}, 0xc, &(0x7f0000001280)={&(0x7f00000001c0)=ANY=[@ANYBLOB="280000000108010240000000000000000c0000030900010073797a31000000000600024008060000"], 0x28}, 0x1, 0x0, 0x0, 0x44000}, 0x4) setsockopt$inet_tcp_TCP_CONGESTION(0xffffffffffffffff, 0x6, 0xd, &(0x7f0000000000)='dctcp\x00', 0x6) r0 = signalfd4(0xffffffffffffffff, &(0x7f0000001340)={[0x2]}, 0x8, 0x800) getsockopt$inet_tcp_TCP_REPAIR_WINDOW(0xffffffffffffffff, 0x6, 0x1d, &(0x7f0000001380), 0x0) syz_mount_image$ext4(&(0x7f0000000000)='ext4\x00', &(0x7f0000000100)='./file0\x00', 0x200000, 0x7, &(0x7f0000000200)=[{&(0x7f0000010000)="200000000002000019000000900100000f000000000000000200000006000000000008000080000020000000dbf4655fdbf4655f0100ffff53ef010001000000daf4655f000000000000000001000000000000000b0000000004000008000000d2c200001203", 0x66, 0x400}, {&(0x7f0000010100)="00000000000000000000000082e36724c6f34caa846ed2e527703378010040", 0x1f, 0x4e0}, {&(0x7f0000000080)="03", 0x1, 0x640}, {&(0x7f0000010400)="02000000030000000400000019000f000300040000000000000000000f002e69", 0x20, 0x1000}, {&(0x7f0000012600)="ed41000000100000daf4655fdbf4655fdbf4655f0000000000000400800000", 0x1f, 0x4400}, {&(0x7f0000012800)="8081000000180000daf4655fdaf4655fdaf4655f00000000000001008000000010000800000000000af301000400000000000000000000000200000030", 0x3d, 0x4800}, {&(0x7f0000013900)="111fc0d901000000803a0900803a09000000000006", 0x15, 0x30000}], 0x0, &(0x7f00000001c0)=ANY=[]) perf_event_open(&(0x7f0000000100)={0x0, 0x70}, 0x0, 0x0, 0xffffffffffffffff, 0x0) socket$inet6(0xa, 0x0, 0x94) getsockopt$inet_tcp_TCP_REPAIR_WINDOW(0xffffffffffffffff, 0x6, 0x1d, &(0x7f00000016c0), &(0x7f0000001700)=0x14) lsetxattr$security_capability(&(0x7f00000003c0)='./file0\x00', &(0x7f0000000400), 0x0, 0x0, 0x0) sendmsg$nl_route(0xffffffffffffffff, 0x0, 0x400c051) fsync(0xffffffffffffffff) r1 = socket$inet6_icmp_raw(0xa, 0x3, 0x3a) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f0000000000)={'macvlan0\x00', 0x0}) sendmsg$nl_route(0xffffffffffffffff, &(0x7f0000000280)={0x0, 0x0, &(0x7f0000001140)={&(0x7f0000000040)=@newlink={0x4c, 0x10, 0x503, 0x0, 0x0, {}, [@IFLA_LINKINFO={0x24, 0x12, 0x0, 0x1, @macvlan={{0xc}, {0x14, 0x2, 0x0, 0x1, [@IFLA_MACVLAN_MODE={0x8, 0x1, 0x10}, @IFLA_MACVLAN_MACADDR_MODE={0x8, 0x3, 0x3}]}}}, @IFLA_LINK={0x8, 0x5, r2}]}, 0x4c}}, 0x0) sendmsg$BATADV_CMD_GET_TRANSTABLE_GLOBAL(r0, &(0x7f00000014c0)={&(0x7f0000001300)={0x10, 0x0, 0x0, 0x4000}, 0xc, &(0x7f0000001480)={&(0x7f0000001400)={0x64, 0x0, 0x100, 0x70bd2d, 0x25dfdbfd, {}, [@BATADV_ATTR_GW_BANDWIDTH_UP={0x8, 0x32, 0xffffff80}, @BATADV_ATTR_ISOLATION_MASK={0x8, 0x2c, 0x7c}, @BATADV_ATTR_HARD_IFINDEX={0x8}, @BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED={0x5, 0x2e, 0x1}, @BATADV_ATTR_ISOLATION_MARK={0x8, 0x2b, 0x200}, @BATADV_ATTR_MESH_IFINDEX={0x8, 0x3, r2}, @BATADV_ATTR_AP_ISOLATION_ENABLED={0x5, 0x2a, 0x1}, @BATADV_ATTR_BRIDGE_LOOP_AVOIDANCE_ENABLED={0x5, 0x2e, 0x1}, @BATADV_ATTR_BONDING_ENABLED={0x5, 0x2d, 0x1}, @BATADV_ATTR_ELP_INTERVAL={0x8, 0x3a, 0x8}]}, 0x64}, 0x1, 0x0, 0x0, 0x40000}, 0x4c010) perf_event_open(&(0x7f0000000700)={0x1, 0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x50d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5}, 0x0, 0xff7fffffffffffff, 0xffffffffffffffff, 0x0) getresuid(&(0x7f0000000340)=0x0, &(0x7f0000000380), &(0x7f00000013c0)) mount$fuse(0x0, &(0x7f00000000c0)='./file0\x00', &(0x7f0000000280), 0x0, &(0x7f0000001500)=ANY=[@ANYBLOB, @ANYRESHEX, @ANYBLOB='$xootmode=000000140000,user_id=\x00\x00\x00\x00\x00\x00\x00\x00\x00', @ANYRESDEC=0xee00, @ANYBLOB=',blksize=0x0000000000000400,allow_other,blksize=0x000000000000', @ANYRESDEC=r3, @ANYBLOB=',\x00']) umount2(&(0x7f0000000180)='./file0\x00', 0x0) sendmsg$nl_route_sched(0xffffffffffffffff, &(0x7f0000000300)={0x0, 0x0, &(0x7f00000002c0)={&(0x7f00000003c0)=@newtaction={0xe98, 0x30, 0x871a15abc695fa3d, 0x0, 0x0, {}, [{0xe84, 0x1, [@m_pedit={0xe80, 0x1, 0x0, 0x0, {{0xa}, {0xe54, 0x2, 0x0, 0x1, [@TCA_PEDIT_PARMS={0xe50, 0x2, {{{}, 0x97, 0x0, [{}, {}]}, [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0, 0x0, 0x0, 0xffffff7f}, {}, {0x2}, {}, {}, {}, {}, {}, {}, {}, {0x0, 0x0, 0x0, 0xfffffffe}, {}, {}, {}, {}, {}, {}, {}, {0xffffffff}, {}, {}, {}, {0x2}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0, 0x3}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0, 0x0, 0xdf, 0x800000}, {0x0, 0x0, 0x0, 0x0, 0x0, 0xfffffffd}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0, 0x0, 0x0, 0xa9}, {0x0, 0x0, 0x0, 0x0, 0x0, 0x115}, {}, {}, {}, {}, {}, {0x0, 0x1000}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0, 0x0, 0x5cb}, {}, {}, {}, {}, {0x0, 0x5}, {}, {}, {}, {}, {}, {0x0, 0xfffffffc}, {0x0, 0x3}, {}, {}, {}, {0x0, 0x0, 0x0, 0x0, 0x0, 0x40}, {}, {}, {0x0, 0x0, 0x400}, {}, {}, {}, {}, {}, {0x0, 0x0, 0x0, 0x0, 0x0, 0x8000}, {}, {}, {}, {}, {}, {0x0, 0x0, 0x6}, {}, {}, {}, {}, {}, {}, {0x0, 0x0, 0x0, 0xfffeffff}], [{}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x4}, {}, {}, {}, {}, {}, {}, {0x2}, {}, {}, {}, {}, {}, {0x5}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x0, 0x1}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x4}, {}, {}, {}, {}, {}, {0x0, 0x1}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {0x2}]}}]}, {0x4}, {0xc}, {0xc}}}]}]}, 0xe98}}, 0x0) 05:17:25 executing program 4: clone(0x2000000002000100, 0x0, 0xfffffffffffffffe, 0x0, 0xffffffffffffffff) r0 = perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c43, 0x8420, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}, 0x0, 0x0, 0x0, 0x2}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) unshare(0x40000000) ioctl$PERF_EVENT_IOC_PERIOD(r0, 0x40082404, &(0x7f0000000000)) unshare(0x4000280) mmap(&(0x7f0000000000/0xb36000)=nil, 0xb36000, 0xb635773f06ebbeee, 0x8031, 0xffffffffffffffff, 0x0) fanotify_init(0x0, 0x0) readv(0xffffffffffffffff, 0x0, 0x0) ppoll(0x0, 0x0, 0x0, &(0x7f00000000c0), 0x8) madvise(&(0x7f0000000000/0x600000)=nil, 0x600003, 0x9) r1 = bpf$ITER_CREATE(0x21, &(0x7f0000000080), 0x8) perf_event_open(&(0x7f0000000180)={0x0, 0x80, 0x0, 0x2, 0x1, 0x7d, 0x0, 0x100000001, 0x650, 0x7, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x2, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x3, 0x1, @perf_config_ext={0x4, 0x1}, 0x10000, 0x0, 0x36, 0x4, 0x2, 0xa90, 0x2, 0x0, 0x25, 0x0, 0x577c}, 0x0, 0x9, r1, 0x3) preadv(0xffffffffffffffff, &(0x7f0000000280), 0x1, 0x0, 0x0) ppoll(&(0x7f0000000040)=[{0xffffffffffffffff, 0x900}, {0xffffffffffffffff, 0x100a4}], 0x2, 0x0, 0x0, 0x0) ioctl$DRM_IOCTL_RM_MAP(r1, 0x4028641b, &(0x7f0000000200)={0x0, 0x0, 0x0, 0x0, &(0x7f0000ff6000/0xa000)=nil}) sync_file_range(0xffffffffffffffff, 0xb46a, 0xfe9, 0x1) unshare(0x10000) clone(0x1f8a1c00, &(0x7f0000000240)="8b516c93d77c41e13284b501c89a93d8004b23ce6ec97678c8f95f4ccdc5bcd9260ce09ac5f8f8d84c2c962e6afe49306eef544381a17a360059e33a636d1bcae6abfd0765a827d61b2c9ac9506ed2c75c7b58969c6305c7135346bfe81e84910069fc8891b3f309e665d18bbc42b7223e173488c6c07188e906f5f1e29973e77c56a0f05be41b013e22928a806bd0f088e54c6e12ffe6a6a472fa6c49b858c00f53c7b41b45bef07dbe613df434ef6650415dd429ebe1e390e66e5988e4f70db6be39d4ed8aa54d50c0f477e87a21aa444a78eaf670205cc16c385ed61dc2edb85f5e91f0cf116861bc93d40fb459cf29a21f13", &(0x7f0000000400), &(0x7f0000000380), &(0x7f00000003c0)="0c8c8f335a186f14f99ad79c11fd240bb9e1d2c58f909b1ea8dbbbd8605c122164e6bd51d643b0d1900b3e85b9440154666a68a48acc99577344db") ioctl$LOOP_CHANGE_FD(0xffffffffffffffff, 0x4c06, r0) [ 216.826928] EXT4-fs (loop0): Unrecognized mount option "(" or missing value [ 216.896580] overlayfs: fs on './file0' does not support file handles, falling back to index=off,nfs_export=off. [ 216.957194] overlayfs: missing 'lowerdir' [ 217.044676] IPVS: ftp: loaded support on port[0] = 21 [ 217.123642] EXT4-fs (loop0): Unrecognized mount option "(" or missing value 05:17:26 executing program 5: sendmsg(0xffffffffffffffff, &(0x7f0000000080)={0x0, 0x0, &(0x7f00000002c0), 0x0, 0x0, 0x0, 0x20000001}, 0x0) socketpair(0x1, 0x3, 0x0, &(0x7f00000004c0)={0xffffffffffffffff, 0xffffffffffffffff}) perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfffffffffffffffd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) perf_event_open(0x0, 0x0, 0x1, 0xffffffffffffffff, 0x0) perf_event_open$cgroup(&(0x7f0000001dc0)={0x4, 0x80, 0x3, 0xef, 0x0, 0x2, 0x0, 0xff, 0x0, 0x2, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x3, 0x4, @perf_bp={&(0x7f0000001d40), 0x4}, 0x2020, 0x6, 0x5522132f, 0x0, 0x0, 0x2, 0x101, 0x0, 0x3f25, 0x0, 0x7}, 0xffffffffffffffff, 0x400009, 0xffffffffffffffff, 0xa) perf_event_open(&(0x7f0000001cc0)={0x2, 0x80, 0x1, 0x3, 0xf9, 0x1, 0x0, 0x0, 0x5808, 0x8, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x40, 0x1, @perf_bp={&(0x7f0000001c80), 0xd}, 0x90, 0x195d, 0x4, 0x0, 0x8, 0x7, 0x7, 0x0, 0x3}, 0x0, 0x2, 0xffffffffffffffff, 0xa) bpf$BPF_PROG_TEST_RUN(0xa, 0x0, 0x0) ioctl$PERF_EVENT_IOC_SET_FILTER(r0, 0x89f2, &(0x7f0000000080)='ip6tnl0\x00') r1 = socket$kcm(0x2, 0x5, 0x0) setsockopt$sock_attach_bpf(0xffffffffffffffff, 0x84, 0xa, 0x0, 0x2f) recvmsg$kcm(r1, &(0x7f0000000840)={&(0x7f0000001e40)=@pppol2tpin6={0x18, 0x1, {0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0, {0xa, 0x0, 0x0, @empty}}}, 0x80, &(0x7f0000001b00)=[{0x0}, {&(0x7f0000012540)=""/102400, 0x19000}, {0x0}, {&(0x7f0000000780)=""/180, 0xb4}, {&(0x7f0000002080)=""/206, 0xce}, {&(0x7f0000001a00)=""/196, 0xc4}], 0x6, &(0x7f0000001940)=""/11, 0xb}, 0x40010100) socketpair(0x1, 0x1, 0x0, &(0x7f0000000740)={0xffffffffffffffff, 0xffffffffffffffff}) sendmsg$kcm(r2, &(0x7f00000006c0)={&(0x7f0000000180)=@llc={0x1a, 0x30c, 0x1, 0x8, 0x60, 0x83, @link_local={0x1, 0x80, 0xc2, 0x0, 0x0, 0xe}}, 0x80, &(0x7f00000005c0)=[{0x0}, {&(0x7f0000000500)}, {&(0x7f0000001b80)="ca9e516185d83bb4a97857c3c4fd115aa2b85f0abed1c80143f2e9ee6d1c541f2affb6d7df35846756c9a8ef9ba04fa9ec83fe65eba843159bbe671a9b0a1414ad8845e64381629936967eee2fc21592c1fa6937f7e3fa5f08f7d3aee3b8285f73ab8e500f11ae4538492fc86c55f168cc297ad56fdbee55ff82be46772c38b903cfe74cc4cb96546d78b099faa622780211270cbebf", 0x96}, {&(0x7f00000000c0)="3b3cd197780e02c2e3310c105406d141b599f92c2575a533b488e1695b90e99f28aaf9", 0x23}, {&(0x7f0000000280)="c32ff6532df80ca3b0653264584f0a3f3cad918cec4deccc76471a936ee97ef4f391186532bb32fd465d1d446fa0db2571c4a0becf9c392186d482", 0x3b}], 0x5}, 0x4814) sendmsg$kcm(0xffffffffffffffff, &(0x7f00000003c0)={&(0x7f0000000000)=@l2tp6={0xa, 0x0, 0x7d0, @private0={0xfc, 0x0, '\x00', 0x1}, 0xffffffff}, 0x80, &(0x7f0000000380)=[{0x0}, {&(0x7f0000000340)="549d37034adf02362d9d10f93bd281851f3d8147e4e128db747d46173bff151ea26947adfa76ca", 0x27}, {0xfffffffffffffffe}], 0x3, &(0x7f0000001f80)=ANY=[@ANYBLOB="c8001f03000000002bdc79d0d60000b72567281c9d7cbe38aaf50300000000000000011bc9d1badc9bd3281569cedd8893d15eedf103afdd4c2fced8363ad0f6c0f2b64eff4d2fa7cae9e09207e140edfcea20209d5fed1415f66861df3b976aee2a4949303497b30bcca8c4d44a93180a3008561947cbab4b85baa31296c599f9b4bb6442557084ee74c4b640ae7c2246db8009578a0c225be846c9100000", @ANYRESDEC, @ANYRESDEC=r1], 0xc8}, 0x0) perf_event_open(&(0x7f00000002c0)={0x0, 0x80, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, @perf_bp={0x0}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10001, 0x0, 0x1}, 0x0, 0x0, 0xffffffffffffffff, 0x0) bpf$PROG_LOAD(0x5, &(0x7f00000124c0)={0x0, 0x0, 0x0, &(0x7f0000000480)='syzkaller\x00', 0x9, 0x0, 0x0, 0x41000, 0x0, '\x00', 0x0, 0x1d, 0xffffffffffffffff, 0x8, &(0x7f0000012440), 0x8, 0x10, 0x0}, 0x78) socket$kcm(0x29, 0x5, 0x0) ioctl$PERF_EVENT_IOC_SET_FILTER(r3, 0x89f1, &(0x7f0000000080)='ip6tnl0\x00') 05:17:26 executing program 0: perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext={0x1}, 0x0, 0x3, 0x0, 0x0, 0x400000000000000}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = openat$nvram(0xffffffffffffff9c, &(0x7f0000000100), 0x220280, 0x0) perf_event_open(&(0x7f0000000180)={0x3, 0x80, 0x2, 0x0, 0xe6, 0x4c, 0x0, 0x0, 0xe0, 0xb, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x7, 0x4, @perf_config_ext={0x7f, 0x301}, 0x10008, 0x3fa, 0x0, 0x1, 0x7fff, 0x1, 0x0, 0x0, 0x5, 0x0, 0xcbb}, 0xffffffffffffffff, 0xa, r0, 0x9) r1 = socket$inet6(0xa, 0x400000000001, 0x0) tkill(0x0, 0x40) ptrace$setregs(0xffffffffffffffff, 0x0, 0x0, 0x0) perf_event_open(0x0, 0x0, 0x0, 0xffffffffffffffff, 0x0) close(r1) r2 = socket$inet6_sctp(0xa, 0x801, 0x84) sched_getparam(0xffffffffffffffff, &(0x7f0000000040)) setsockopt$inet_sctp_SCTP_SOCKOPT_BINDX_ADD(r2, 0x84, 0x64, &(0x7f00000000c0)=[@in6={0xa, 0x4e23, 0x0, @loopback}, @in6={0xa, 0x4e22, 0x0, @private0}], 0x38) connect$inet6(r2, &(0x7f0000000080)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) r3 = open(&(0x7f0000000080)='./bus\x00', 0x141042, 0x0) r4 = openat$ptmx(0xffffffffffffff9c, &(0x7f0000000000), 0x180000, 0x0) ioctl$TIOCGPGRP(r3, 0x540f, &(0x7f0000000140)=0x0) ptrace$setregs(0xf, r5, 0x1, &(0x7f0000000240)="9d9fc0ad66a2c3965bf59e8a0e815345c8b07bcf9c2392d1b2afcc9acdcfe506528f6e3ce0e9a4d0f9836b5e50852f4e37cd4d5cc410c498dcee713e1880b315484cfedc593a9a89ad988309a592fb2cfa66972690e3c980749feb75e2b9b07549dbd07391f89a23d0da9d4bb93eddd6ac16e88201a95a96b2be10bdaaa943ad309e6bfa018ed7ab21f6266366818b25b23ffe95aceb7d72ce006c15dad7c32dd1c327bfc5b4e8f497180e7f9b18d62dd263d282a4a00b4600fbcf05019ac7889e262db181ea13783ae2a4224dc2c88cdb488ac48c9e890e0efd129786e4e2e5ec0d07684c13a5a6ba96") dup2(r4, r3) setsockopt$inet_sctp6_SCTP_MAXSEG(r1, 0x84, 0xd, &(0x7f0000000200)=@assoc_value={0x0, 0x800}, 0x8) ftruncate(r3, 0x200002) sendfile(r1, r3, 0x0, 0x80001d00c0d0) 05:17:26 executing program 3: perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = socket$inet6(0xa, 0x6, 0x0) bind$inet6(r0, &(0x7f0000000040)={0xa, 0x4e20, 0x0, @rand_addr, 0x10001}, 0x1c) r1 = socket$inet_dccp(0x2, 0x6, 0x0) listen(r0, 0x6) setsockopt(r1, 0x10d, 0x800000000d, &(0x7f00001c9fff)="03", 0x1) r2 = socket$inet6_dccp(0xa, 0x6, 0x0) bind$inet6(r2, &(0x7f0000000080)={0xa, 0x4e23, 0x0, @private2={0xfc, 0x2, '\x00', 0x1}}, 0x1c) ioctl$ifreq_SIOCGIFINDEX_batadv_hard(0xffffffffffffffff, 0x8933, 0x0) sendmsg$nl_route(0xffffffffffffffff, &(0x7f00000000c0)={0x0, 0x0, &(0x7f0000000080)={&(0x7f00000001c0)=ANY=[@ANYBLOB="4000000018000100000000000002000009ffde0000000005d45a7d813741eacfada00a45d2a7000000000014001680100008800c", @ANYBLOB="17eb4b19552e38ce1100caa64467eb065b42b2a0440075ed64207cb511dfc6e14ab21ff1a15e7d35beed409be5c60ce1f7e9f2202d54d3afd8e2f0a58c51a17acefba2b70ee59d95cda8c5534320b41ecfac9d3d87f887bd5f9890655e57f1038bb6fd648388dcb5feed860a244366de4eb12fa66561acc38e525ac2cd9aff3511ae8dd9506d963525ec82ba0adf574e3edff9f3ff045822c2fce1e91166f45c2dbd26ddede24d9390556f3aa6e00bd72935082c231ea133937f357c4448be7804c5e8"], 0x40}}, 0x0) ioctl$sock_ipv6_tunnel_SIOCDEL6RD(0xffffffffffffffff, 0x89fa, &(0x7f0000000140)={'syztnl1\x00', 0x0}) getpid() connect$inet(r1, &(0x7f0000e5c000)={0x2, 0x4e20, @empty}, 0x10) sendmmsg(r1, &(0x7f0000000ac0)=[{{0x0, 0x5d, &(0x7f0000000180)=[{&(0x7f0000000880)='T', 0x1}], 0x1}}], 0x503, 0x0) fchown(r2, 0x0, 0x0) [ 217.558924] overlayfs: 'file0' not a directory [ 217.566774] overlayfs: filesystem on './bus' not supported as upperdir [ 217.574509] overlayfs: missing 'lowerdir' 05:17:26 executing program 2: perf_event_open(&(0x7f0000000080)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x317d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) openat$cgroup_ro(0xffffffffffffffff, &(0x7f00000001c0)='memory.swap.current\x00', 0x0, 0x0) r0 = perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0x0, 0xffffffffffffffff, 0x0) mmap(&(0x7f0000ffc000/0x3000)=nil, 0x3000, 0x0, 0x11, r0, 0x0) r1 = perf_event_open(&(0x7f0000000140)={0x1, 0x80, 0x5, 0x0, 0x0, 0x0, 0x0, 0x1, 0x2145e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext, 0x0, 0x7ff}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r2 = perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0, 0xc}, 0x1240}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) mmap(&(0x7f0000ffd000/0x3000)=nil, 0x3000, 0x0, 0x11, r2, 0x0) r3 = open(&(0x7f0000000280)='./file0\x00', 0x4040, 0x124) perf_event_open$cgroup(&(0x7f0000000200)={0x4, 0x80, 0x1, 0x20, 0x4, 0xb5, 0x0, 0x0, 0x11000, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, @perf_bp={&(0x7f0000000000), 0xd}, 0x200, 0x6, 0x5, 0x6, 0x6, 0x3ff, 0x1, 0x0, 0x20, 0x0, 0x3}, 0xffffffffffffffff, 0x3, r3, 0x3) ioctl$PERF_EVENT_IOC_SET_OUTPUT(r1, 0x2405, r2) r4 = socket$inet(0x2, 0x4000000000000001, 0x0) bind$inet(r4, &(0x7f0000000040)={0x2, 0x4e23, @multicast1}, 0x10) sendto$inet(r4, 0x0, 0x10b, 0x200007fe, &(0x7f0000000100)={0x2, 0x10004e23, @dev={0xac, 0x14, 0x14, 0xa}}, 0x10) r5 = socket$inet6_udplite(0xa, 0x2, 0x88) sendmmsg$inet6(r5, &(0x7f0000000300)=[{{&(0x7f0000000000)={0xa, 0x4e23, 0x0, @remote}, 0x1c, 0x0}}, {{&(0x7f0000000040)={0xa, 0x4e22, 0x0, @mcast1}, 0x1c, 0x0, 0x0, &(0x7f0000000380)=[@hoplimit_2292={{0x14, 0x29, 0x3b}}], 0x18}}], 0x2, 0x0) fsetxattr$security_evm(r5, &(0x7f00000002c0), &(0x7f0000000300)=@ng={0x4, 0x9, 'k'}, 0x3, 0x2) sendto$inet(r4, &(0x7f0000d7cfcb), 0xffffffffffffffef, 0x0, 0x0, 0x53) 05:17:26 executing program 0: perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x3, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={&(0x7f00000003c0)}}, 0x0, 0x0, 0xffffffffffffffff, 0x0) creat(&(0x7f00000006c0)='./bus\x00', 0x0) fcntl$lock(0xffffffffffffffff, 0x0, 0x0) r0 = syz_open_dev$audion(&(0x7f0000000200), 0xfffffffffffffff9, 0x508401) ioctl$INCFS_IOC_CREATE_FILE(r0, 0xc058671e, &(0x7f0000000340)={{}, {0x289}, 0x10, 0x0, 0x0, &(0x7f0000000280)='./file1\x00', 0x0, &(0x7f0000000400)="20f9240e8c0d125369a1d7ccd94f66795b5e76e5d00b343c3dd257eb22be1235b020110f3a7d9975138f6b7dc831db10d2f8847d3e7575cc6330a3573e691ef6c57d5ab6cc698196860162001f755b40f8261754b15d4639c0b42e39c1b971309129a441f78724dae39f49a4a88ce326af72d9d889d11cd27b9e82d7ee6865337f67ae30df81ac86829c23b57ed873ae8159a306ceb5fb9c006edd74fd371ce7e67952f2f82a6c50f5367925bf3061722a4bfc6b5598add8c97cd03b6e98a528b12a02767f9051d32f1d4060", 0xcc, 0x0, &(0x7f0000000500)={0x2, 0x123, {0x0, 0xc, 0x2a, "afcb2c2a53c2715a80188c21d99629b95a0cbfd1e47df28ed6b0072d360e650ce967c7201fbe58588b32", 0xec, "31a57e49051adebcc3e5ff8b27ec8f5628fe5b74fe16336414d4103d3986ea267ff4b5cf5ece6be4e5d090f5c9fc27a272210e5cf3693f801f57cb5aeb947d4f5c359b4af531f5ae4d939b2c9334e03cc300448ed3b0c096caaca653b6d2e0d8c3882fafa9ee5bd711b1cd1ed057ecb6ba3a4256f2cb633c4cf5039b12ce09b83e8d2c8d9b56fd4711061038f3c4518ce13d559a648c3f9e8f762cad989a635cb8eb6617cd5de45c7d88040af132d236ddbec9d42b6398f5f3b1e0df4af7fc9b35359294e95eed3b925ea5532c3819d846f77060b136d4558dc5be8bcc4755e4a6e3d6ac71559ed8340beaf4"}, 0x2, "b95c"}, 0x131}) socket(0x10, 0x3, 0x0) r1 = socket$packet(0x11, 0x2, 0x300) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f0000000080)={'syz_tun\x00', 0x0}) sendmsg$nl_route_sched(0xffffffffffffffff, &(0x7f00000007c0)={0x0, 0x0, &(0x7f0000000780)={&(0x7f0000000b40)=ANY=[@ANYBLOB="8002000024000b0f000000000000000000000000ea5d92bca09641d2e21d73e6d23d6ef6ffa5e0500c7cde68ab4a40bed3589e02fa462e002cc4fe66eb0b21fc1ecd3e82ebe6fc2dc4058ee404d60be6011107e6fbc8f8b693247405a47acd66fddb1411ca549589c6a83c82916f8fd866c04a4573472e407297c929ca89ed5b025c8475a76eb0efa5a86e57edb63166cb1a6251684de647cc6b3a0e8d466cc99e1d0fd11aecc68db59dfc23", @ANYRES32=r2, @ANYBLOB="00000000ffffffff000000000a00010063686f6b6500000050020200140001000500000005000000ffff0000190f040514000100010001000900000004000000051415050800030003000000140001000800000009000000e1ffffff12180e05040102007a9a42e22a06fc5dc7021ab484f282b1701b8c7f05c5973e19f72cf67854c043675b755d2a4737e2514dc68e14aca2cfb0ec60db87360a2467ab9969fcf5bbe9723ada01b31fe72c1d8c21347b57a007d8b34f92dde7402961e373752f3ae0966bf4f3636d6b7f41f1e8360f565e75fa7165812c6ed9a6c709a8c0ccb04e5e71af9964089371bdce03810c4d19d69618c589b91ee513732e4d4226ccaa16cf283585706f13dbcbb766aeb9acc895d7685351f603893aeadfd6a708fb8fbf0072203ce6d33f22450f79d58127ac2f0569a4f7b94d7f7550fb7506b3d527935c7b21b66ec61f9067f1316dd90fb50ded078100495c58eccfe2b3e8d63918fe5d2e040102008bb19dd03c6ec364a9522214ef8e3f6712ad8dd616ed5ac8814d728a4c4c1cb36324dbc5d867b5882d4b6922d92b511d18694b06db4870108e1f6a8eedf7e3056f13c291a00b67e3a1a016529ab2addbe41eb733c0c2070a072e75e536afcc38b960256bf5e35d9a05db5507b5ec565071664c2377cca29a8c98f2e7cb0d7807954c553484a3ab073494bfbf120c8f5c353119822c615e60677b6e73872f6492d5cf6b0d2f91b264baf7d75e7fb119afd69374e75b2f007696e69276309d46144e0708c92f9dc236512bed21b46aacfbac9d354de459b3f11634a5d45d1645774173074737ef41411261d48ae61717808a00fc3eb468576d064b7d6afdb5516b"], 0x280}}, 0x0) ioctl$PERF_EVENT_IOC_SET_FILTER(r0, 0x40082406, &(0x7f0000000240)=']!\x00') bind$bt_l2cap(0xffffffffffffffff, &(0x7f0000000300)={0x1f, 0x1, @none}, 0xe) perf_event_open(&(0x7f0000000380)={0x3, 0x80, 0x4, 0x15, 0x6, 0x0, 0x0, 0x800, 0x8c60, 0x8, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x3, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x2, 0x2, @perf_bp={&(0x7f0000000300), 0x8}, 0x10200, 0x7, 0x1, 0x0, 0x4d, 0xfffffc01, 0x6, 0x0, 0x0, 0x0, 0x9}, 0xffffffffffffffff, 0xffffffffffffffff, 0xffffffffffffffff, 0x9) ftruncate(0xffffffffffffffff, 0x208200) r3 = syz_mount_image$iso9660(&(0x7f0000000000), &(0x7f0000000100)='./file0\x00', 0x0, 0x3, &(0x7f0000001500)=[{&(0x7f0000010000)="01434430303101004c494e55582020202020202020202020202020202020202020202020202020204344524f4d2020202020202020202020202020002020202020202020202020200000000000000000bf000000000000bf000000000000000000000000000000000000000000000000000000000000000001000001010000010008080018000000000000181400000000000000000000160000000022001c", 0x9f, 0x8000}, {&(0x7f0000010600)="0243443030310100004c0049004e0055005800200020002000200020002000200020002000200020004300440052004f004d002000200020002000200020002000200020002000200000000000000000bf000000000000bf252f", 0x5a, 0x8800}, {&(0x7f0000011100)="88001c0000000000001c00080000000008007809140b2a3a0802000001000001010053500701beef005252050181505824016d4100000000416d03000000000000030000000000000000000000000000000054461a010e7809140b2a3a087809140b2a3a087809140b2a3a0843451c0120000000000000200000000000000000ed000000000000ed66001c0000000000001c00080000000008007809140b2a3a080200000100000101015252050181505824016d4100000000416d02000000000000020000000000000000000000000000000054461a010e7809140b2a3a087809140b2a3a087809140b2a3a08008c00210000000000002164000000000000647809140b2a3a08000000010000010a46494c452e434f4c3b310041410e0254455854756e6978000052520501894e4d0e010066696c652e636f6c64505824016d8100000000816d01000000000000010000000000000000000000000000000054461a010e7809140b2a3a087809140b2a3a087809140b2a3a080074001d0000000000001d00080000000008007809140b2a3a08020000010000010546494c4530", 0x1a0, 0xe000}], 0x0, &(0x7f00000001c0)=ANY=[@ANYBLOB="636a65636b3d7200000000002ef2b7"]) mremap(&(0x7f0000d20000/0x2000)=nil, 0x2000, 0x1000, 0x0, &(0x7f0000ffc000/0x1000)=nil) faccessat(r3, &(0x7f00000000c0)='./file0\x00', 0x0) creat(&(0x7f0000000180)='./bus\x00', 0x4) setsockopt$SO_RDS_MSG_RXPATH_LATENCY(0xffffffffffffffff, 0x114, 0xa, &(0x7f00000002c0), 0x1) pipe(&(0x7f0000000040)={0xffffffffffffffff, 0xffffffffffffffff}) ioctl$FS_IOC_GETFSLABEL(r4, 0x81009431, &(0x7f0000000700)) 05:17:26 executing program 5: setsockopt$inet_tcp_int(0xffffffffffffffff, 0x6, 0x10000000013, 0x0, 0x0) perf_event_open(&(0x7f0000000040)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x509, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext={0x0, 0xffffffffffff8000}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) openat(0xffffffffffffff9c, 0x0, 0x0, 0x0) sendmsg(0xffffffffffffffff, &(0x7f0000000040)={0x0, 0x0, &(0x7f0000000080)=[{&(0x7f0000000140)="240000001a0007041dfffd946f6105000a0000e8fe020801000a080008001d000400ff7e280000001100ffffba16a0aa1c0900000000000012000000000000eff24d8238cfa47e23f7efbf54", 0x4c}], 0x1}, 0x0) r0 = socket$kcm(0x29, 0x5, 0x0) recvmsg$kcm(r0, &(0x7f0000001500)={&(0x7f0000001540)=@nfc, 0x80, &(0x7f0000001400)=[{&(0x7f00000000c0)=""/8, 0x8}, {&(0x7f0000000280)=""/173, 0xad}, {&(0x7f0000000340)=""/187, 0xbb}, {&(0x7f0000001680)=""/4088, 0xff8}], 0x4, &(0x7f00000015c0)=""/160, 0xa0}, 0x40000000) connect$inet(0xffffffffffffffff, 0x0, 0x0) setsockopt$inet_tcp_TCP_REPAIR_WINDOW(0xffffffffffffffff, 0x6, 0x1d, 0x0, 0x0) splice(0xffffffffffffffff, 0x0, 0xffffffffffffffff, 0x0, 0x0, 0x0) openat(0xffffffffffffff9c, 0x0, 0x0, 0x0) preadv(0xffffffffffffffff, 0x0, 0x0, 0xd9f, 0x0) bind$inet(0xffffffffffffffff, &(0x7f0000000000)={0x2, 0x4e24, @private}, 0x10) perf_event_open(0x0, 0x0, 0x0, 0xffffffffffffffff, 0x0) ioctl$PERF_EVENT_IOC_MODIFY_ATTRIBUTES(0xffffffffffffffff, 0x4008240b, &(0x7f0000000200)={0x0, 0x80, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0xfffffffa, 0x1, @perf_bp={0x0, 0x3}, 0x0, 0x9d16, 0x0, 0x0, 0x9, 0x8, 0x9, 0x0, 0x8, 0x0, 0x100000000}) ioprio_get$pid(0x0, 0x0) [ 217.853207] audit: type=1800 audit(1632806246.662:17): pid=11636 uid=0 auid=4294967295 ses=4294967295 subj==unconfined op=collect_data cause=failed(directio) comm="syz-executor.2" name="file0" dev="sda1" ino=14104 res=0 05:17:26 executing program 0: perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x81, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) pipe(&(0x7f0000000080)={0xffffffffffffffff, 0xffffffffffffffff}) vmsplice(r1, &(0x7f00000000c0)=[{&(0x7f0000000180)="77690addcfbe1fbb66ec", 0xff3b}], 0x1, 0x1) close(r1) r2 = socket$inet6(0xa, 0x3, 0x8) setsockopt$inet6_buf(r2, 0x29, 0x39, &(0x7f0000e86000)="0022040000ffffebfffffffeffffffff144e0000ff000207835eebf116b208feefaf234b4ff8b4cc4c39bdc8451792b903f4b7d8c8cf2153622652328c19ef68234f905557c4070000008735e9ab2f77c62e0a5cdd2cf9984c070400000000000003ff23353d8b2fc6a3ae1ebfcb49004a3ccd3560ae01010000079c60ed7449b842f3e253be8a62b37f820fe75a9ea937ea4e2540019ccbd9f6672837496d00ad7765abaac2ec0f91c88a1ea1ff6ee308c72febedcf00798d41991ac25bb6fce2220c25ea380c7e112ab358c3a6bd8a59c100000001b4e82cb03419544a3988bc226a85abe6eb60cd7cf8d103d38c31c7c86d16c4d86cbe4ab390c092d077ce70590fbbd4f8bf4d6ab1cea6dbe9d4a54c17aac0db6e3845", 0x118) connect$inet6(r2, &(0x7f0000000040)={0xa, 0x0, 0x0, @remote, 0x4}, 0x1c) perf_event_open(&(0x7f0000000240)={0x0, 0x80, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext={0x2, 0x31}, 0x0, 0x0, 0x0, 0x9, 0xfffffffffffffe00, 0x0, 0xfffd}, 0x0, 0xf, 0xffffffffffffffff, 0x1) setsockopt$inet6_IPV6_RTHDRDSTOPTS(r1, 0x29, 0x37, &(0x7f0000000440)=ANY=[@ANYBLOB="51a858640000000000000000b7a330e8fa073cbe346c8aeb8ea3b9f4e802dfc1f1650541b6716a705550f4af913850101c0fea670642f14142bf4d3af9732ed0110be477d8aa0ca00beec26f1263af08bc07318a28a8302754a57e7cbb744ecd6c94986ace9fcb8b0d"], 0x8) r3 = socket$inet6_udplite(0xa, 0x2, 0x88) sendmmsg$inet6(r3, &(0x7f0000000300)=[{{&(0x7f0000000000)={0xa, 0x4e23, 0x0, @remote}, 0x1c, 0x0}}, {{&(0x7f0000000040)={0xa, 0x4e22, 0x0, @mcast1}, 0x1c, 0x0, 0x0, &(0x7f00000001c0)=ANY=[@ANYBLOB="1400000000000000290000ffffa841000000000000a5c0d24759a0410000000000"], 0x18}}], 0x2, 0x0) ioctl$sock_inet6_SIOCSIFADDR(r0, 0x8916, &(0x7f0000000140)={@rand_addr=' \x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02', 0x61}) r4 = gettid() perf_event_open(&(0x7f00000003c0)={0x1, 0x80, 0x7, 0x0, 0x1, 0x4, 0x0, 0x7f, 0x6004, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x2d9, 0x2, @perf_bp={&(0x7f0000000100), 0x4}, 0x1, 0x1, 0x7fffffff, 0x0, 0x5, 0x80a1, 0xbc1c, 0x0, 0x8, 0x0, 0x3f}, r4, 0xa, r1, 0x2) getsockopt$inet6_IPV6_XFRM_POLICY(r3, 0x29, 0x23, &(0x7f00000002c0)={{{@in, @in=@local}}, {{@in=@dev}, 0x0, @in6=@ipv4={""/10, ""/2, @loopback}}}, &(0x7f0000000000)=0xe8) splice(r0, 0x0, r1, 0x0, 0x7fffffff, 0x0) [ 218.008576] IPVS: ftp: loaded support on port[0] = 21 05:17:27 executing program 0: recvmsg(0xffffffffffffffff, &(0x7f0000000700)={0x0, 0x0, &(0x7f0000000bc0)=[{&(0x7f0000000780)=""/231, 0xe7}, {&(0x7f0000000880)=""/211, 0xd3}, {&(0x7f00000006c0)=""/31, 0x1f}, {&(0x7f0000000980)=""/73, 0x49}, {&(0x7f0000000a00)=""/226, 0xe2}, {&(0x7f0000000b00)=""/130, 0x82}], 0x6}, 0x2) sendmsg(0xffffffffffffffff, &(0x7f0000000080)={0x0, 0x0, &(0x7f00000002c0), 0x0, 0x0, 0x0, 0x20000001}, 0x0) socketpair(0x1, 0x3, 0x0, &(0x7f00000004c0)={0xffffffffffffffff, 0xffffffffffffffff}) perf_event_open(&(0x7f0000000100)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c43, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfffffffffffffffd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) ioctl$PERF_EVENT_IOC_SET_FILTER(r0, 0x89f2, &(0x7f0000000080)='ip6tnl0\x00') sendmsg$sock(0xffffffffffffffff, &(0x7f0000000340)={0x0, 0x0, 0x0, 0x0, &(0x7f0000000240)=[@mark={{0x14, 0x1, 0x24, 0x5}}, @timestamping={{0x14, 0x1, 0x25, 0x2}}, @timestamping={{0x14}}, @txtime={{0x18}}, @mark={{0x14}}, @timestamping={{0x14, 0x1, 0x25, 0x5}}, @txtime={{0x18, 0x1, 0x3d, 0x81}}, @txtime={{0x18}}], 0xc0}, 0x4080) socketpair(0x1, 0x1, 0x0, &(0x7f0000000740)={0xffffffffffffffff, 0xffffffffffffffff}) socket$kcm(0x29, 0x0, 0x0) bpf$BPF_BTF_GET_FD_BY_ID(0x13, &(0x7f0000000040), 0x4) bpf$PROG_LOAD(0x5, &(0x7f0000000300)={0x1c, 0x0, 0x0, &(0x7f00000001c0)='GPL\x00', 0xfffffffd, 0x18, &(0x7f0000000240)=""/24, 0x41000, 0x1, '\x00', 0x0, 0x20, 0xffffffffffffffff, 0x8, &(0x7f0000000280)={0x0, 0x3}, 0x8, 0x10, &(0x7f00000002c0), 0x10}, 0x78) openat$cgroup_ro(0xffffffffffffffff, &(0x7f0000000200)='cpuacct.usage_all\x00', 0x0, 0x0) openat$cgroup_ro(0xffffffffffffffff, &(0x7f0000000180)='cgroup.stat\x00', 0x0, 0x0) ioctl$PERF_EVENT_IOC_PERIOD(0xffffffffffffffff, 0xc0185879, &(0x7f0000000080)) bpf$BPF_BTF_GET_NEXT_ID(0x17, &(0x7f0000000500)={0x80000001, 0x0}, 0x8) r3 = bpf$OBJ_GET_PROG(0x7, &(0x7f0000000580)={&(0x7f0000000540)='./file0\x00', 0x0, 0x18}, 0x10) bpf$PROG_LOAD(0x5, &(0x7f00000005c0)={0xf, 0x4, &(0x7f0000000d80)=ANY=[@ANYBLOB="05340900019bba95759ab77aa60000000223ff01b80400008500000065000000e5b376ea86f3b33cb8ac59da823dac3409000000a518c2e2edbb731b1718eef793c5d7f809550607e4b045ca5ac6d85eba57c5271083b07b581ac35b22612cd537577c84fe11121856d8a1ae2562fa4d0f831731e120954a312f000dcd07138751ca73726c162bfda7ca58d5ce1960bb9ffb68c5910b47acb5a458a244ba724cb8c42ab6d8b6dd3fae7e03f303714212eace18aebf1d1f910d3d6d9c2ac63232c9478115bf2f8d00f9ac292ee46d7fcc75a2188f968272ef6d3abc92e2d6fbd6ffa95c8b9162b5343c6b0828035072d622c46834d2ea3efc109d89c0332e918a5a4a5304f9d0b7ae1de67f8bcb"], &(0x7f0000000380)='GPL\x00', 0x5, 0x7e, &(0x7f00000003c0)=""/126, 0x41000, 0x8, '\x00', 0x0, 0x25, 0xffffffffffffffff, 0x8, &(0x7f0000000440)={0xa, 0x2}, 0x8, 0x10, &(0x7f0000000480)={0x5, 0x10, 0x7fff, 0x9}, 0x10, r2, r3}, 0x78) perf_event_open(&(0x7f0000000000)={0x0, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, @perf_bp={0x0, 0x8}, 0x2c09, 0x0, 0x0, 0x0, 0x0, 0xfffffffe, 0x2, 0x0, 0x10001}, 0x0, 0x0, 0xffffffffffffffff, 0x0) gettid() sendmsg$kcm(0xffffffffffffffff, 0x0, 0x0) ioctl$PERF_EVENT_IOC_SET_FILTER(r1, 0x89f1, &(0x7f0000000080)='ip6tnl0\x00') 05:17:27 executing program 3: perf_event_open(&(0x7f000001d000)={0x1, 0x63, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) pipe(0x0) bpf$PROG_LOAD(0x5, &(0x7f0000000240)={0x1, 0x4, &(0x7f0000000040)=@framed={{0xffffffb7, 0x5, 0x0, 0x0, 0x0, 0x61, 0x10, 0x18}, [@ldst={0x4, 0x2, 0x6, 0x0, 0x5, 0x0, 0x10}]}, &(0x7f00000002c0)='GPL\x00', 0x5, 0xbc, &(0x7f0000000300)=""/188, 0x0, 0x0, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, &(0x7f0000000000), 0x8, 0x10, &(0x7f0000000080)={0x0, 0x9, 0x1}, 0x10}, 0x78) [ 218.701971] audit: type=1800 audit(1632806247.502:18): pid=11679 uid=0 auid=4294967295 ses=4294967295 subj==unconfined op=collect_data cause=failed(directio) comm="syz-executor.2" name="file0" dev="sda1" ino=14104 res=0 05:17:27 executing program 5: r0 = perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) perf_event_open(&(0x7f0000000340)={0x5, 0x80, 0x9, 0x45, 0x7, 0x4, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x2, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x26f, 0x0, @perf_bp={&(0x7f0000000300), 0x1}, 0x1002, 0x0, 0x0, 0x0, 0x7, 0x18000000, 0x100, 0x0, 0x80000000}, 0x0, 0x6, 0xffffffffffffffff, 0x0) perf_event_open(&(0x7f0000000140)={0x0, 0x80, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, @perf_bp={0x0, 0x5}, 0x40000, 0x0, 0x6, 0x0, 0x100, 0x28c}, 0xffffffffffffffff, 0x0, r0, 0x0) perf_event_open(&(0x7f00000000c0)={0x0, 0x80, 0x8, 0x23, 0x0, 0x0, 0x0, 0x0, 0x400, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, @perf_bp, 0x0, 0x18fc, 0x0, 0x0, 0x0, 0x5, 0x32}, 0x0, 0xffffffffffffffff, r0, 0x1) r1 = socket$inet(0x2, 0x4000000805, 0x0) r2 = socket$inet_sctp(0x2, 0x5, 0x84) r3 = dup3(r1, r2, 0x0) sendmsg$nl_route(r3, &(0x7f00000002c0)={&(0x7f0000000040), 0xc, &(0x7f0000000240)={&(0x7f0000000200)=@ipmr_delroute={0x2c, 0x19, 0x100, 0x70bd25, 0x25dfdbff, {0x80, 0x20, 0x0, 0x1, 0xfc, 0x0, 0x0, 0x0, 0x1800}, [@RTA_PRIORITY={0x8}, @RTA_PRIORITY={0x8, 0x6, 0x3}]}, 0x2c}}, 0x200000c0) setsockopt$inet_sctp_SCTP_SOCKOPT_BINDX_ADD(r2, 0x84, 0x64, &(0x7f0000d6cff0)=[@in={0x2, 0x4e20, @loopback}], 0x10) sendto$inet(r3, &(0x7f0000fa3fff)='\t', 0x1, 0x0, &(0x7f00006f7000)={0x2, 0x0, @dev}, 0x10) sendto$inet(r2, &(0x7f00003cef9f)='7', 0xfffa, 0x0, &(0x7f0000618000)={0x2, 0x4e20, @loopback}, 0x10) getsockopt$inet_sctp_SCTP_GET_ASSOC_ID_LIST(r3, 0x84, 0x1d, &(0x7f0000000280)=ANY=[@ANYBLOB="801b0000", @ANYRES32=0x0, @ANYRES32=0x0], &(0x7f0000000080)=0xc) getsockopt$inet_sctp6_SCTP_SOCKOPT_PEELOFF(r3, 0x84, 0x66, &(0x7f000059aff8)={r4}, &(0x7f000034f000)=0x2059b000) getsockopt$IP_SET_OP_GET_FNAME(r3, 0x1, 0x53, 0x0, &(0x7f0000000440)) socket(0x27, 0x4, 0xa27) r5 = openat$dsp(0xffffffffffffff9c, &(0x7f00000001c0), 0x8000, 0x0) ioctl$SOUND_MIXER_READ_VOLUME(r5, 0x80044d1d, &(0x7f00000003c0)) write$FUSE_INTERRUPT(0xffffffffffffffff, &(0x7f0000000480)={0x10, 0xfffffffffffffffe}, 0x10) fremovexattr(0xffffffffffffffff, 0x0) fallocate(0xffffffffffffffff, 0x20, 0x6e79bac2, 0x9) 05:17:27 executing program 3: r0 = socket$nl_netfilter(0x10, 0x3, 0xc) sendmsg$IPCTNL_MSG_CT_NEW(r0, &(0x7f0000000000)={0x0, 0x0, &(0x7f0000000040)={&(0x7f00000000c0)=ANY=[@ANYBLOB="ac00000000010104000000000000000002000000240001801400018008000100e000000108000200000000000c0002800500010000000000240002801400018008000100ac14140008000200ac1e000002000280050001000000000008f306400000000048000e8014000180080001000000000008000200ac1e000127000280050001000003400000f6ff0c000280050001000000000006000340000000000600034000000000"], 0xac}}, 0x0) [ 219.006907] netlink: 80 bytes leftover after parsing attributes in process `syz-executor.3'. [ 219.070387] netlink: 12 bytes leftover after parsing attributes in process `syz-executor.3'. 05:17:28 executing program 4: r0 = perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}, 0x0, 0xfc, 0x0, 0x8}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) lseek(0xffffffffffffffff, 0x8, 0x0) perf_event_open(&(0x7f00000001c0)={0x1, 0x80, 0x1, 0x81, 0x6, 0x7f, 0x0, 0x40d, 0xb3c, 0x5, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x4, 0x1, @perf_config_ext={0x2, 0x5666}, 0x1, 0x7ff, 0x7, 0x7, 0x4, 0x3, 0x93a, 0x0, 0xfff, 0x0, 0x7}, 0xffffffffffffffff, 0x1, r0, 0x8) r1 = socket$inet6(0xa, 0x400000000001, 0x0) syz_open_dev$usbfs(0x0, 0x0, 0x68901) r2 = accept$inet6(r1, &(0x7f0000005880)={0xa, 0x0, 0x0, @private2}, &(0x7f00000058c0)=0x1c) getsockopt$inet6_buf(r2, 0x29, 0x0, &(0x7f0000005900)=""/13, &(0x7f0000005940)=0xd) r3 = socket$inet6_sctp(0xa, 0x801, 0x84) setsockopt$inet_sctp_SCTP_SOCKOPT_BINDX_ADD(r3, 0x84, 0x64, &(0x7f0000cf6fe4)=[@in6={0xa, 0x4e23, 0x0, @loopback}], 0x1c) dup3(r3, r1, 0x0) ioctl$sock_SIOCGPGRP(r3, 0x8904, &(0x7f00000000c0)) connect$inet6(r3, &(0x7f0000000080)={0xa, 0x4e23, 0x0, @loopback}, 0x1c) r4 = open(&(0x7f0000000040)='./bus\x00', 0x141042, 0x0) setsockopt$inet_sctp6_SCTP_DEFAULT_SEND_PARAM(r1, 0x84, 0xa, &(0x7f0000000180)={0x0, 0x0, 0x0, 0x0, 0x0, 0x8}, 0x20) ioctl$F2FS_IOC_ABORT_VOLATILE_WRITE(r1, 0xf505, 0x0) ftruncate(r4, 0x200004) r5 = openat$vcs(0xffffff9c, &(0x7f0000000280), 0x10000, 0x0) bind$vsock_stream(r5, &(0x7f00000002c0)={0x28, 0x0, 0x0, @hyper}, 0x10) getsockopt$inet_sctp6_SCTP_EVENTS(r5, 0x84, 0xb, &(0x7f0000000000), &(0x7f0000000100)=0xe) sendfile(r1, r4, 0x0, 0x80001d00c0d0) 05:17:28 executing program 0: perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) recvmmsg$unix(0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0) perf_event_open(&(0x7f0000000340)={0x3, 0x80, 0xff, 0xea, 0x5, 0x9, 0x0, 0x10001, 0x4f331, 0xc, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x5, 0x1, @perf_bp={&(0x7f0000000300), 0xa}, 0x0, 0xffffffffffff0000, 0x5, 0x0, 0xfffffffffffffffe, 0x503f700, 0x9, 0x0, 0x2, 0x0, 0x45}, 0x0, 0x5, 0xffffffffffffffff, 0x5) prlimit64(0x0, 0xe, &(0x7f0000000040)={0x8, 0x8d}, 0x0) sched_setattr(0x0, &(0x7f0000000240)={0x38, 0x2, 0x0, 0x0, 0x2}, 0x0) perf_event_open(&(0x7f0000000140)={0x3, 0x80, 0x0, 0x1f, 0x1f, 0x1, 0x0, 0x1, 0x10000, 0x3, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x98c, 0x1, @perf_bp={&(0x7f0000000100), 0xc}, 0x220, 0x5000, 0xffffffff, 0x3, 0xfff, 0x5, 0x200, 0x0, 0x7, 0x0, 0x401}, 0x0, 0x1, 0xffffffffffffffff, 0x3) sched_setattr(0x0, &(0x7f0000000080)={0x38, 0x2, 0x0, 0x0, 0x3}, 0x0) syz_mount_image$msdos(&(0x7f00000002c0), &(0x7f00000003c0)='./file1\x00', 0xffffffff, 0x1, &(0x7f0000000080)=[{&(0x7f00000000c0)="0400050900000000666174000404090a020002740ef801", 0x17}], 0x0, &(0x7f00000004c0)=ANY=[]) chdir(&(0x7f0000000000)='./file1\x00') r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000980)='cgroup.controllers\x00', 0x275a, 0x0) r1 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, 0x0, 0x0) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000540)={&(0x7f0000000040)='devlink_health_report\x00'}, 0x10) ioctl$LOOP_CHANGE_FD(0xffffffffffffffff, 0x4c06, r1) r2 = signalfd(r1, &(0x7f0000000500)={[0x7]}, 0x8) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000540)={&(0x7f0000000040)='devlink_health_report\x00', r2}, 0x10) perf_event_open(&(0x7f0000000540)={0x0, 0x80, 0x4, 0x8, 0x22, 0x81, 0x0, 0x2, 0x80, 0x4, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x2, 0x4, @perf_bp={&(0x7f0000000500)}, 0x2090, 0x108, 0x1, 0x8, 0x400, 0x1, 0x7ff, 0x0, 0x100, 0x0, 0xbd1}, 0x0, 0xa, r2, 0x5) r3 = openat$vcs(0xffffff9c, &(0x7f0000000280), 0x10000, 0x0) bind$vsock_stream(r3, &(0x7f00000002c0)={0x28, 0x0, 0x0, @hyper}, 0x10) bpf$MAP_UPDATE_ELEM(0x2, &(0x7f0000000200)={r0, &(0x7f0000000400)="22f64a2894abef3eb5d27928189704e1f83cf31812c64cee05ddfd76e568d7c91b16ff998eb92cf0efba470fe03011d144a229db5812f3cdca882eff4230a6437e7314d01d6b310457e55805ebeaf7a3473c0e5421e74f5c226c18cd8a304015cd37d787790585771fc5d82d34c2e452820ddd309aa1698f4ea3e5cd39b248654503f145c98679c67a2f734dcd3e657bec1df529609618f151c43ce02b8f123b378531dbf2d20b6b87f2ef93da15975c62dfc5663b1038932cfd69683f5a6bf7180802c37f1c692c96104f872fc3e8919bd397728ca5e6affa27ff1df00127448bd4eddcfa187d07139f1f9f3ebbd24bc6d3d9161477a1e1d68d7f032d", &(0x7f00000001c0)=@udp=r3}, 0x20) write$binfmt_script(r0, &(0x7f0000000200)=ANY=[], 0x208e24b) 05:17:28 executing program 5: r0 = perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) perf_event_open(&(0x7f0000000340)={0x5, 0x80, 0x9, 0x45, 0x7, 0x4, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x2, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x26f, 0x0, @perf_bp={&(0x7f0000000300), 0x1}, 0x1002, 0x0, 0x0, 0x0, 0x7, 0x18000000, 0x100, 0x0, 0x80000000}, 0x0, 0x6, 0xffffffffffffffff, 0x0) perf_event_open(&(0x7f0000000140)={0x0, 0x80, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, @perf_bp={0x0, 0x5}, 0x40000, 0x0, 0x6, 0x0, 0x100, 0x28c}, 0xffffffffffffffff, 0x0, r0, 0x0) perf_event_open(&(0x7f00000000c0)={0x0, 0x80, 0x8, 0x23, 0x0, 0x0, 0x0, 0x0, 0x400, 0x8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, @perf_bp, 0x0, 0x18fc, 0x0, 0x0, 0x0, 0x5, 0x32}, 0x0, 0xffffffffffffffff, r0, 0x1) r1 = socket$inet(0x2, 0x4000000805, 0x0) r2 = socket$inet_sctp(0x2, 0x5, 0x84) r3 = dup3(r1, r2, 0x0) sendmsg$nl_route(r3, &(0x7f00000002c0)={&(0x7f0000000040), 0xc, &(0x7f0000000240)={&(0x7f0000000200)=@ipmr_delroute={0x2c, 0x19, 0x100, 0x70bd25, 0x25dfdbff, {0x80, 0x20, 0x0, 0x1, 0xfc, 0x0, 0x0, 0x0, 0x1800}, [@RTA_PRIORITY={0x8}, @RTA_PRIORITY={0x8, 0x6, 0x3}]}, 0x2c}}, 0x200000c0) setsockopt$inet_sctp_SCTP_SOCKOPT_BINDX_ADD(r2, 0x84, 0x64, &(0x7f0000d6cff0)=[@in={0x2, 0x4e20, @loopback}], 0x10) sendto$inet(r3, &(0x7f0000fa3fff)='\t', 0x1, 0x0, &(0x7f00006f7000)={0x2, 0x0, @dev}, 0x10) sendto$inet(r2, &(0x7f00003cef9f)='7', 0xfffa, 0x0, &(0x7f0000618000)={0x2, 0x4e20, @loopback}, 0x10) getsockopt$inet_sctp_SCTP_GET_ASSOC_ID_LIST(r3, 0x84, 0x1d, &(0x7f0000000280)=ANY=[@ANYBLOB="801b0000", @ANYRES32=0x0, @ANYRES32=0x0], &(0x7f0000000080)=0xc) getsockopt$inet_sctp6_SCTP_SOCKOPT_PEELOFF(r3, 0x84, 0x66, &(0x7f000059aff8)={r4}, &(0x7f000034f000)=0x2059b000) getsockopt$IP_SET_OP_GET_FNAME(r3, 0x1, 0x53, 0x0, &(0x7f0000000440)) socket(0x27, 0x4, 0xa27) r5 = openat$dsp(0xffffffffffffff9c, &(0x7f00000001c0), 0x8000, 0x0) ioctl$SOUND_MIXER_READ_VOLUME(r5, 0x80044d1d, &(0x7f00000003c0)) write$FUSE_INTERRUPT(0xffffffffffffffff, &(0x7f0000000480)={0x10, 0xfffffffffffffffe}, 0x10) fremovexattr(0xffffffffffffffff, 0x0) fallocate(0xffffffffffffffff, 0x20, 0x6e79bac2, 0x9) 05:17:28 executing program 2: r0 = openat$fuse(0xffffffffffffff9c, &(0x7f0000000140), 0x42, 0x0) r1 = openat(0xffffffffffffff9c, &(0x7f000000c380)='./file0\x00', 0x40, 0x0) mount$fuse(0x0, &(0x7f00000001c0)='./file0\x00', &(0x7f0000002100), 0x0, &(0x7f00000005c0)=ANY=[@ANYBLOB='fd=', @ANYRESHEX=r0, @ANYBLOB=',rootmode=00000000000000000100000,user_id=', @ANYRESDEC=0x0, @ANYBLOB="2c67726f3630d03e643dd1ab4f6873fcd2ebc2c92f753923b79a90790869be1a25e86867845d4c1ae3210f52348de3f1389276cf9066b1dba538140f22713b1392fdfd4bb7c16b62202bf571bc4b044a8692c8aad8ccc49bb3aa928e4ec3722c116aaaa53dfbb7dce869b2a7b03058c027962cb4955e5ffff97bf470bdbfb88486d12e2f4ad560572649361065eca997198fabf214583475199d97539e988277bfdb59695986c8f7007b7bf0001af9b662493cedbb09d7d5715a74827495ca60842e5062652abba1ef4a624954f001cb2f62a9a2d1293add2545ad3176fe6f1d83d721e63938a05aa6110015c89551e9407091c6557324146eff3d7c1cabbd56da66ff83205cc5a173567a8eff22e9fd480601958271ad07bd689a93ec7a5d7c6c7f5e463ce775488fbae1afaeed6a4a0000", @ANYRESDEC=0x0, @ANYBLOB=',\x00']) lstat(&(0x7f0000000140)='./file0\x00', &(0x7f0000000200)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) keyctl$chown(0x4, 0x0, r2, r3) getsockopt$inet_IP_XFRM_POLICY(r1, 0x0, 0x11, &(0x7f0000000ec0)={{{@in6=@empty, @in6, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}, {{@in=@multicast1}, 0x0, @in6=@dev}}, &(0x7f0000000fc0)=0xe8) getsockopt$inet_IP_XFRM_POLICY(r1, 0x0, 0x11, &(0x7f0000001000)={{{@in6=@private1, @in6=@private0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}}, {{@in=@multicast1}, 0x0, @in=@multicast1}}, &(0x7f0000001600)=0xe8) lstat(&(0x7f0000000140)='./file0\x00', &(0x7f0000000dc0)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) keyctl$chown(0x4, 0x0, r6, r7) syz_fuse_handle_req(0xffffffffffffffff, &(0x7f0000010400)="ae949a3acd9562b074c223d526cb6247a952b683a8e097b993cd5056da5256816eb6ec551463b82636d12de0befa9485a9c34b749bc0693a58cd5a07c7e24b90799d933a6ace282fbc894054f8c46c0031935826431df938d10303926f08c84bf70a6c4340d32693b9dea45e31131c9081ec9f8ec4a589fbcc21f704c64f995d6742ae5c2064c68912ac0e3cc9a455d30c28fe1f5ba14e642e25b662bd5ba3b8ece386b30737afa7840c67682f7d86d8b4f0a9cfe6c34886691c0354b37a0110a6a220f8c903f9d652dc89d0406d6b7c318b0fc44ea667d125c75ceb7c1687f5bd76e34ff86baeaa37f165f1e5da7521ddf6cde88d0c7604e93bfd095183e98fc1848b38fa02e510854399cc77718701e04566dacaefcf1dc1ba8e3febfd068cb4ca14b1a6939777a3bba548be16ce10d88a26a7ba55ab9d7c0e04714a501434e28bef9788792583f774d7030d0b792717db3a3bad0e482d98b5a7539a0aa6589a54b84cb5bf3448459e880b8e751f155cc895e1e138c4737a9eb121b94e4236cbb4f78d31240a0158da3691c138f2fb15dc0122c99ab6824c9c6b29b31aad29d5ad02bc2b2ea1f85adb7991bb921364dfea4d2de21014d73cc334bd7b72eed6a1c2b9f52e44eef01e08f748ea26d8823cafe4b0555a4d34fe0bb295479dd8e7e5c16e7ed8e7ec8abec6c2aa7970c20c98415677520c5052c858734de1c5d01264f81c38123029c24e83fc06aed68ab388a4b194c7831a28274772e5472026d4446cab8c3374c45b56ae337a0270c02154649016559a8b230e067f536bbf083f7559e6872ff5f8300f77123d8faafbcd6f3bbe48018121a7abaac37176c9fd28bcb21608d110bebcf0bc8bce1efd514fab50d7612c4c79c71596f4625ee5f68ecc491ea9459a5efb45a87f701b4ed3ecf91628924d9b5f62ceb2e2fd740cc96b99a8166cf0f1c9720b8cf164ee1f1adfbd2ed446d9256773fc5e6de99984dd0a6f4c2d8d0008a4ceb5e12265d0970270c341517e9ab740ba11160cbd98838440c4ea0b04141be460e10c477b3a9d71e40fe4e0ca20274c1bb075297f061c29aff01ef55dae01b3d55e2fc0a3cb689e84030dc803fc5bb693de52d7b080b0e73056a89d7a98c05a6c04b118b252b29d575f5431fa339a46e923b29ab09189667e9838b488810345c31474f8642ee0e1e63542417394a6fae16b0c8163c07939bd51fb73b84be792a7eb44773be3fdcbde6e228ce0f8a02e7f777efb76cb2589051abf027df4c4c41c83badfb3792cf6ce18f2f0d8fef037db094919c9c13082b677e9aeb10c731e57d6a6b6f009ee34e047d4e4c47a381f6228b3e08c6f9478b433767a89060e6dac118469fc5eb99939d3042e0ec6c57c1e6d6702dbb413cdce24bace83a2a4b9999548a8cdf58a7f991cc50cd59fcb9e30fd4d36fb95e8c6469212a00cf8c120a6f72a06e411198108993d4cd76ec3d9ef9893ec3b16ba3f3f47bd03f747eb4bd59cd59bc2d7593223e03b58f2d5e5f55878b6475f4f2a9a8218ced20ae2202504b0e55d13205495ffbfeeaf0794d2560d1b88c2d92afff345df527b54a4be684865681230394a2dc262028f3b3c650fbaef5d29bf5b09d10f4a1aafc055bcfc842dabf9fee78c47de6aaad5571780e7d323030e4a73826b6b28ff7a20cef72146521b87a974bcfdf2f13531b0332e1bca029a172cb90716f1935dddb5d439f5101eb381ff89c0e324040bd7a7d680d6824306e6c7e155476582f1ae73a824c0c2c6edd81e2a88ffc7e44c4d1c1e0107874b77461cdabff619423331fcc6683da9bdefb2241bafc7837467597a3160341c0464139f68ef24f054c7ca4ce012918fd0baf9bcd3192a0280983b9eaf88a55ceba89333465b9af60dec406d0eb946d765c03281fcc00faa67f998f2322e3cd67ad965632f4903851db44c5d0948a7b53cdc2b8e42c883f652a75578af5b52479b3d1893e0217b836aff7d27fc96d1146c070f7b71f96131637c14e25b9ba62037c85b8a874d0adf161f33575b5d44fb481b683d2a5469a1ae69730fc6c8d98d53d47f4722ae7a4fed65ee7c97c5d5060e79d5fb2a84e585131f3ed55602b96d8f1a2a4d2413c6fee40688cc6b9b9d5a3d22ba60f4d7235f5872caad64e000ca0ce0b7994fad3e76b092fe5a8f3d59dd2d02674f0b0f9f3dee26f7ac35e6ca665d9d7b21b89464fbf9eff15f889e0d46a16e6171590228f7f582d590125d31fef7d395aecfa1e74fbd4f1bde4368213ba4937688bec6f4b6bc19c1df39acea44249bbbc869c307a1bc070691b452d5330080be777db0519dc2698cba20e3373f48291742488108cab4569e9d64fa30ee1d36fff0ed13445cbec3f2530df2ef4acab3675fa60c7c7aff3686f60381a0570595db7bdf1d4ccacdc626c729b16a60830af5923c1d9948f429be17cd2f113ef56504b9924f70dc527ca02ae1a780c46338393105fb94309fc3e093925387e718881811d96cf130a8ba5ea04d526ec05d4b6c2de260434c5fd29298a4852752e6938a2b564c9f2face1433188aa075b77452f20572200329acbdbcce62af6e919de9d04e29cb86806d196c7df5e20504c883543c6a067abe8a3f67eb5d31ff8ebd0f1c036cf68cc9c0b6b3ae04aef6db2eab05148b4df37e9ed1688487656a733d7bfd77831467c09168137f1e86fda9813202766a1a1a6648db66ccdb27208f942e5ea5b73848863f0f44d260a571c96b06a454b87095148ff31010d54c9540afd356320b5b6e3749829b9253f571a306af80ac4e2a26a7f19232f10d166a73caf98375bc014ecf04aa26d721f77ac7c0ef9e5da0ed3dbdccfa49dc0b3bceccb72b4ab2a662cf7acb3a63b2f3873bfaf7313a05fe44b0850dc11b9fd924eb6dbc68996814b02f1b6d2e159617e127a2766daacd9d19b8c959a5edbf65db116d54d4059a53ca71452d8a131ce9f978504432bc218a89a9c6f8f9e01637db85e7207e82a1bea00bf1eb2505a5fb59d2bd9a269406d7546195f9a65fa7739271d6f1a3abb60e7f1ce5de09a4c6e12ddb345aef8786bdc2d406bfa760ad5ff2f1048fa8579298e989628391dc8c9ffb06adb8ff0b58b43c241d87fce37b64745fcaf0d39280b403dc56b0ade6aadf798eeefc6c59f27275773ea7a29dd0bfa73579befe175bb167f65d40bd444134710afd053f1e1b8638ac8428ee80667a30d94e37bfee6f81e6a929fcf23b18faffe86a032d25ab7a6e12c2e33aaa9bcd08f78548aeff2bdacaf18ce76a33b6a67f2d1c1d158c5b41a94f61b74eaaf8872bd08e02b1f6dfc49aeed0935c440827721144e0e7e4655396c46d7326c34855686b00e1d55052e0ad94356ce2fec54d13d16a9de34cb8a5e375f92b04bf5df860884be63cec08d0ca5f2fba2cbeda57f949f629f3a91dd611a8b9a39ac807765fcf691e2b3db142445331201c25668f64f7c997e3d4b19903a81391fb8d29be8f89c3acd502685f40f5e4c43b9ae81a5b5f7e7605f81dceb7727b3829226e1049fccc5ae9d3dd06ea4618a6cb11bc67ad40b6abb1648175cbce3f28b78a1f785500af1b63e4d543cecedb936dc0e10bfbfa4454dc1496e0170b291d0d0300658030884d596f2106d8955c457ecd0e913ebc0e34d95b4d560172e32f2a6b30cd00f2e805a08b385c8078441bde15ccfff1f3916d910f97bd0258abdadd285f43f63ed8703b9a9ac813119fa7d6e9b6cf815352321bdb4e97912291f68872d7ea28819dc3375b5178c4fed32740aac73f2002fea9910a79229993a8d597dc24a56956aeca3f9e0ce84756d643b6a7b200eea003abda5cc83afc1b5c3b10325d32154c18382a859361a5058338a7917873914d13fa40ebd9ccb0d6ef8b23e31e7a9c22411211bc069ceb9d4084ece0139beb7e47bbe27091afeae0f5b0076871af58b1d05ef343fd6b0f2e51d105442a0a8f02b9ae16cca90167ec46d876e935655bb6fb27e76cd8aacc7dbbd6f3b7e279e46f3ce4975be1a68e174cfee35f8ca5c6b86afc5c350ca55c6eb3a0637b9fb1c80df82723bc1171091491329c44900dc9403b515c00918e562c45ae05f6235f2c60320595e704f8eae5f4da5272a6cfc7169c013147a609892e1a0c3a3f19570734aea35f829d0ab836a611c23921f31fbe15a0a060df14017a270519900396c6be4786be94e193bcb4da0d070f0d2a6bff81d8fc2d3d65df31783f39d57f71038fea0b74d33b76d7ae3097e7f599d8fbed2340d649bca41bd0810c49fe3b07c4825c44cb3f921845a530db5cf456635b549c72e993b2e5f32c1111d56df7d6a71249c423b4ed011312b05d5e2f02a98442af9ea08f1be9f74cb072636ef380b4da2cf110053b801d37a5d4f961c82c66b0ca26c87452cbec96be1810afb739f67d641c50ddaad8739b977b3a72e3f4b277195c1bf90fe03fe4a80ef38d508bf81d951765f2f0b8898f4942a1065ba39fa4ad9b74c6fded9e373b73a75113e57bd55b755c7eadb77c7c4d44677afc2a49ff4a5f3e97ef2d82fc4284379f2923e6a12bb6b0382dd17cbd44f42d78d3f9d5af2e7321496d04a55c6cb0e6cdde8e8dce31adb43ac4de98613800a201bf97f291531156d65bf075bac57132bf34c9ebfa96c45b5f6c5637b4a628d86ea3a45e735c8bd2c827e97f1be8f7830ef545136ef066cfa1debef14f57214422901d22bf4a7449b7269216965b67eed6a293f6a84ce07a8a4bccc0d6d7d46571e98fb305fc4ebd2692172d6dbc92c50cfdb39abe6cac976a244dbce256b570825f1febd6dc67605e48a9f6d56c9cbf548d72f77c152018b4fa67cc86bd2ef828e2bc42e3457c744e9dbd2645664d0a83804012cc9944e7566d7c04eb362ec32406da9dd6d1a7aa6923fa16302cb0c0073cc42832266e1b5008f832242eded8c79cf26421f277c751b6840db25b5aea40c7f05a07a4c45a363247eaaa26bf338d8da59529cf62f56a444dfca27d623fbb58c6cca144a2a3e3e104272bcc97aa54a24477f1ab37352a737dc05eb9cfb8ec057a62a5fa0b20b46bd49e4918e006903961349547ec940d07ade0797e8106c393a39d0ccacf47753e0e30472e336d78afae8129f9232a372e67ad51e311d2a079ae121f4ac78e4f4ee7bc6e4909871b705908272156405a501769ce042c237868f622359b001c5d5f5bbcb722cacbb20e11c5971ac5bf24aee1b48cf9108dfbb9a7967fe46581afdeaaf4dc2a5faec2aff6f0dce361c94a125a12c2f346ce8a5e0d5801f332854531a785adbb5733b3fbff3b319e42671b3048dcea23226c2953951ff939686ab80a40134704fc6145f457a4f7a3198b4823d08f161dde104772f97ae09f2bd19311c0ca49f6d4ed2be592c616f0834a8311640079bff426d38898f593b86b6f530be02b1542e7389cd5db1991191b448dc90120fb0a0fadd51eb72f6642fc2768eba01f187a1082c65b9644e02e11959375a3b8f5b850f2a2329b9917ee4482969d561c537acb807654d8116e9b2d9fb628be03a565dc187c5083b8089df0f81f095166b0ff584ec3858bb57ca9e4c742ef65f2081f11916e55f4ba0277954ffaf16fc88c616e92678b7cad82ce918c13c6fc18a16eef6cac864aa56d898adbed87cf4c697863d92d9a49d424695380ddff288cf23a6aabb126f36b5061a70751730ccf9a092b5b5ee596885575bda70875208579840f8ff19617243e4c8a7ff8c428bbb534e0f2271210d04c983985058d3800e6fab6ec19f01dd4fc850bd3538b43882f5888cbc3c5ecbae81b7fbd25e7199276703d38009d3fe2ce55735186d5a3bb57ba3d8d3b7ab3d0fec938567bb6d8428c8aa9dbeb9d28379992c20576a7acdf859d62b594f6ba9d344f237ef6045db4d62333a785e0b77e1b69cbe1fb9ac7072c856c6c51dd95290ff5320e0fbcf9cad541f61be2771298703bf159f5511fad104b7c9a411cd71ea325a1cc6e52aeb1ab9e340f1c159d8bf84a4ce0cb0b836a51bae5fadcf59e61d6b3c9d52bf4e19d4085abdc3213bc7f7f3485a0e039abefbfbcf62ca9d2ec8a861610dba6432789c8aa971714f67c166cbaf76d75a36a0cafd932d23fe886e407a005c48242e6ebaf0c036b50247a12c38f2d7ec6ad12e5bc3e2e6ae8093b5f633eec27039c583dbb51b4b21f58d5d5e4408627b7660a50a772d1833c58322785e7e0cb755754c9d925da750034e594602aaacb784c7122496177d5c18e533f381cdd5516eaa8168f89c4364e2dec5e45afbe867ae63f6307cd6bc07d610a489736ae49ab0ccbc2012c33317b090cfb6bfc1c9ae9afdc1244f5d4bc6778bc02b681d194dfa91a1565713e1eccdca5ef0cf7a84859c47f023c772eba53f436fc2715ea0309890f28d02dd3625b60bd970fc7bbd8ee7d5ba29ca8d47f51bdd9392953fbc890462bb3fec15e6472ae8cef021b661bdd161bb3eb274cfe9281940ed50e371b2461bc1b6b8f35df587a8df47d927be35c519f406412d520f5aa08ae7c17000b6def2a152026e9ef81db748bb11a363daa105be246d6ad0397b5e12b5ba1e78e9ce7fb73e4a702d319437c70641057e98f9e131a0eca27f1971105323c99bfa058b04d582cf04d81d5df535fb443e020d06a62d76f185587fc2ad8c469b55cd46d8488a5e334f56c5dad53c8ae0a88351f4eb8137c3ea97ebc2ed9fbc4a4529841c1f2589cfed1b0499fb045958897583c7c889fa2c836d3058769ea3e2066ae5cb7795525601eb49b0b724265e2f7d59dc0802bbe3c9a253fe089bd8c31d5bb95d84830e482b4c6e6745649752aadf119bff34c0f7b5b9f7159bd3014b3d7d47e8bd7c7522f265914201d8c4921ef0216b7dc1dd6518a12c4e6dc64a8376797e83dfedfd61fff1744b22977d2f1c7e03519ded9c2264393b27e65faa1d1f5ec80c19a149cddedb1fa03cc4de6430f5d2206e49b4d277932bba037841069d4ea3c6689c216022588160123c8c15a18764d7b95f9965b5b259b012ec68ea06af3cd38a81e2913ca74e0c200cd14efed044a67e52028c4c821c49fd4e9a08ed5fd8c7408814946a3b9a391c34a166f7fdad4c2e43bca04d4933eaccee86272edbe32e483082966fe74f0f1d5af89eca6e1848c2a711291309c15a5540989143c92d259828147f17e053e3cdbf5b9a8dcbf6b61ea8d36b94f2c3f92770cdb46bf8daa33c558cd4d9a287c2748ba37ccfc3198ed8e043e70d98a5d4b2c44a23324f88b15e0ac4ba9b3d583728dec2c5410461543d08b88ba8f50d51dfb42cbdeca683660ddcdab208ac6324f5d680617edd2f29c85854be9dc70439e02915c2d5e33ceee12401a82f6d1ad4994a5269c5d314bcbb6edd4fb332b321ebfafefc16586657780b620803aed010f9cefe0c4ee0504192aeef4d617522ac1fd5c6f0c6e89fc35ebd9d72b97d165411048fa0868559baf8e175b71484acaa8d3ffd3d60fd88b222b013c0796aa7291fc833c4293be18a5bbe2107efeeaafd9c63f64e6c104761d220db607fd9e39797df21411495be19a7d0ecff1602a34083890aa1c411e716dba877c086998bbffe80c8572aefbfa22d378210410afafd61176da9e6b48f91232b3744d257485cf9d8227aa08b2c91b419ee8d5def3b60d301a1e021fa62e5d74c51e3d7165d52b67606d79cfe41839bcdd48f6c00c2fff8f722bedec5c5eda63d7a46242e0a0612a5bb33b2f64ebab0be8a194a5cbc889ae4cec8e24356f3aab9cfdd40287ed5b968291b7b1aaa0345152dc6413fd5b670a3eb1d6a16ed6ae3db7bcd2981165f71fd39f7e699080d0d138f1405e53819cd520b2dee2a4cc1561a42971095e4bfe719559fc4c5d44212bb16c873d21aba1688b33a74650f6b0c3e4f5eae3efbca096db2f41fb0b7c6b3d5ac27e39b22e1e532e70ea1ed5cffa2bc65573ab13cc07425f0019e715d165a9849c40aba8458ae85a8f6320d1d07d3afcef1f7901918575ab63818fffc513935544a4d94b19d9c916a6543cdb1c4bac899066db0d309202e9c2eab18b1808dabb7e5d59b1084c2832a72cf77a17dd928a2ae32f3c3368b9b73f282f8549dcde92487dfc902bcca5cc8ee823ba8acc474792557a294e4665da90fcd449794fb624478d34e7a5d8ae52615c1ff81b7e01fc73673a563cb8df10469fb9940b5c2379919952dbaf78886bf0fda2288ea320fbbbe821fb9d1641fbbd00003e608303369f5cac3b7cfb9e5166bf82a1d4c4d74c3197743e313881494011bc4a7a11afb8bb1d3d1eb1ba0d05e79ddbe741583504765a5faef33e574d26e94faa754e0177379dbe65bcaff726251fe272380c76d58c32fb2e4a421e149d132139879c6f5b7bde0a28db67c4ea822485f60cf711495d323312b487cbed27efb02e65995a6c7b00811f056932acf6040922f8d29056b3e7f615a0f058bda55618e19ceb55b38e3b82df0244ef84559a6118977c8052df6de2725fb95edd7697aaecc5cc6b301d614920367e6073dcb0a30296fe04c451c8e30a030d391bcc21303821c85b4af333635a45cc2afb0e32fc087e6f33d7ebd479f34cd9c44ba720628dd38a8bc29051b3ea754b532e89e1456f690c10011aa1e48987038e3019286a22d62627b3a05584cfa54b77432fe17082e8a7d96c8b433ea305c18dac74413e5cb812813654c4add14bd86f1a1c198e1bcfd6f22ae830fc0a642e355122616d269363bdd36cc954a6cfb2cd41bbe37417fa4b7155366fcdc6d97242e42c7d3002513a41e3c796f4513117a64cd736b57018815fbfd016145d1657c832b6ed29ea8892572ca76f903b90894ad820d627f96ec7d834c3074d245487f04305d59a363c3ac1d4f7b8b90c5c28cff531b362b7386245fb96f86e79c23968236e9e3bbb1b71a97321bb79eb563b4fe038c39b5815b452763e127fa6c2ff736a133db835e55cf17c55d87495cff2a65333dadaed5a2ad21e280a8af230eb25f42b6e2acebf2f30678e5f998a622565ef9c392075a0d812ab1adaabc188746bcde2d9858bef1c216af5ee2ede1b9e3d8e9a2679cd0fe91e4d2e76c04af78dc42c2a2c47fe9ed31d9187947c78f6028fac10a51331fb7aafff6ad10795ef50fc1d53682dfe39a9f42c72638e7f70d6882a81f854815a964eb83e2735f79f9854cd3616e12ace2a08975d9e8bd0fd1d8dfd42a96f61e70f77e35f928dda8daeade7fb520faf95ce135412dd20288c196282779bdb972d4d742f072adb6d842805f7e4e1d1d84092dec0fc280773e2f4d65e2777b1248dabd86d6b27c12adbaef8f53651a538336b77d0b1b0e171eba283c8f484565fb275afd0ea484ac45f2ec01ceadec7a0a9b55aef8f713ab160915f02a4ce60c1ccc3f3922071599c979b312210dc61423dfc2305ee8e34e18db37f69f0ded203eb12f40d4f6fd16bb7efe9e4befca44d578bbbaeaed25145965abc4e1d6f9bb10abee438436c1df38c8442a8c47ad7e968132e4054ffa0ace156942c0ed3fb16a603068f7fa11684410e830c6bb0551ca3ebcc938cec0881c00ea270e6c432b101b044e0c85998ffff327eb06ebfc002c5a4d2d4acb4494d8d4ae069cb7f7a09fb072349c3d093f99acefd9effa79e3cd17f314bc60b8c0c853a74ed3e9a51ea69a042bee700852ddbbb279d4b415249c6d4d87fccfb6361a4168729cb6e4b14001b904ad7fee53609ebf599ae9eca828a844a97999344a6ed1f1401c05d95f012ffa0f1e7edeafceac8b4cd90e0897c437647254d9a5cafd7e78b79e5bc247706807251185e24f7e1011d9297a914c750ec9f49d5b405a16e5e431dbf99ea0e6829a9d3a929c48220bc4ed7bc483e4ad03b167287dcf68028e273ded1e4e078c17ace392af0b139214d1476f5945fea22c77dfc6d9e8f22228e8d2d22e57d5505b228eb1a5d36f01f943acc9d3ec2d1841f41dc8534c29ef28ede8f5571f1cb7d65943db5b45a289e896833d1e96da3a3ef3395bd425004d022f98f975428f8c310377f630bf32b94da07bb041fc520146237904d72d1723b69a86a36aab339493eb838125ac5e10051fe727bdb1dd0d2236fb3180817714f6c6e7d258a25f7d00eb351c26500d8def31708e39235e692e1b0ad19ef61dde1c126dc35521507281bd3a24d1ec5285ec0ecc1cb9ae457e27e61341209c010aa64da1226ee08c73cf0cd7992208854c02e6b2dfc773a83b3b3193944d3db35138fbef3a61d09fb0ec3cd36e3d1799e2b6a1494bb33372e74f480acc75fe24eeca0a71555d7983b0d26c4cd5c4f0a37020c634c19d722c4e0b150c7bd6b92cd4acbd2483c28efcd8078479538a3385f233527a30a2d6b59eeabb5f93d66613b7f32a56707ccf003b6aa6ea346c3d69113633f653ffc70dcd49fb3c45b6b8dc33a375aee7f36c0c6e059530fe9d662d0b4ba1a071a06ad78ee2c1364fc5b98533bf0bbc9f1f5e508e8056d2393ac01b2404d0b6e24c3b6f767014a795d4e61860343d04593458caf86d590a7bd9f1d3d89096e722d87abebec009ba09db080694ed5faa83006aef46382c94923073fd9fca00e78a0e170934b7798571ce6c76573e4302b8b82774d8364a4f1173fc0c60dd84d5fd43f994d6145f91ad130814175a6d40a40dfba4dbee75598faec57d34ffa334ece6a9ee9279c709a7161e06885452a12d603d58afe9a84f9e181fdc37999a39e806a73b00896eacf623f23513197140997faa62cc4ace4d0e9fe9f927893b9aafb67b722cb24a6cc41c5f5f91fa080524abd51768efd7ace11926b9d576503f81d420854e63225d844bc75656f83497f790bd22aee7269c919567436ec94248da35fa998f82bab2a75e3b0e1d539cc92b25dbc8a17ae70bd755079f6600afed46568759111be75de1a8f1148a72163952ce0c0e51aa448bdfb63a180bb4d5876834de78117d335d1413a788f465b1d3402c6d940920ec95acc1dbfa6688aed13bdc1690a2f4401ced0890da28724b482a1f936c16944e836399668e01252689f9535379ccc101b6792cafcf2381a0c6a3cc721cbe9e51602cb09b6b096e073169a0097994e07c3d9cdbcb71143388d59ab9a557283d5cdcea0dbcd4ebb563bcf3ccf191b214549ac30dc3d7c332fa90f8293a2b4499fe2030b4c0d080572ecaa396d823237dfb53839b45fb66939bd3020fd0f88cd3dc76e7b7d0b98aa973643acd455b0c6947b972f8a81f369820b3c5aa363504356dee1fe4c84c445149f0c8f332a9119cb62dc290313a43dcaf97e0b363f55fa64ce6fb48d6fc602b1388dabda59af112e09351993b6dd7177074a6c7856df968506c98d42ecc8dc41b931f7b9ce4041ec7826a92da3c2ea38d080694a60ffefbfebcf6dfdb696abe5a6e21a4dd522c204e585f6ba0fa7c60d0aa8a64439ab2f85694e7ed294e9924692ad4bad5a7d43724c22e9927f2aa4c71c0ea9014e1afdf2f8eb099e72b4e99088618944e7c6c87cf0aeff321d32e59f508caef70cd80276ee448888af8d76766e676a118cca50ba3a6364ebb4824d3f95b2ae1ef880dcccc996ba3777d9401cc84daa94bd181fa7fd29ada", 0x2000, &(0x7f0000001740)={&(0x7f0000000200)={0x50, 0x0, 0x6, {0x7, 0x22, 0x80000000, 0x1082001, 0x3, 0x4, 0x9, 0x64}}, &(0x7f0000000180)={0x18, 0x0, 0x4, {0x2}}, &(0x7f0000000280)={0x18, 0x0, 0xb13, {0x10001}}, &(0x7f00000002c0)={0x18, 0x16d50bdd25cc9cf2, 0x0, {0x2}}, &(0x7f0000000300)={0x18, 0x0, 0x7, {0x2}}, &(0x7f0000000340)={0x28, 0x0, 0x10000, {{0x10000, 0x8077, 0x1}}}, &(0x7f0000000380)={0x60, 0x0, 0x9, {{0x8, 0x10002, 0x0, 0xcbe, 0xfffffffffffffff9, 0xe6, 0x8, 0x3ff}}}, &(0x7f0000000440)={0x18, 0xfffffffffffffff5, 0x2, {0x6}}, &(0x7f0000000480)={0x12, 0x0, 0x3f, {'!\x00'}}, &(0x7f0000000500)={0x20, 0x0, 0x7, {0x0, 0x5}}, &(0x7f0000000540)={0x78, 0xffffffffffffffda, 0x8, {0x10000, 0x0, 0x0, {0x6, 0x6, 0x50, 0x8, 0x100000001, 0x20, 0xffff, 0x3, 0x5, 0x2000, 0x1, 0x0, 0x0, 0x9, 0x3}}}, &(0x7f0000000800)={0x90, 0x0, 0xb3, {0x4, 0x3, 0x7, 0x181c000000000000, 0x1f, 0x3, {0x0, 0x7, 0x6, 0x1f, 0x4, 0x4c248475, 0x6, 0x2179, 0x100, 0x8000, 0x9, 0x0, 0x0, 0x378}}}, &(0x7f00000008c0)={0x70, 0xfffffffffffffff5, 0x6, [{0x3, 0x9, 0x1, 0x7fff, '\\'}, {0x1, 0x80000001, 0x1, 0x200, 'U'}, {0x0, 0x5, 0x8, 0x1, '+%-7\x19)$%'}]}, &(0x7f0000000940)={0x478, 0xffffffffffffffda, 0x5e, [{{0x6, 0x2, 0x1, 0x81, 0x1, 0x9, {0x0, 0x7, 0xa1e, 0x6, 0x988, 0x4, 0x8, 0x101, 0x4, 0x0, 0x6a, 0x0, 0x0, 0xffff63c0, 0x1}}, {0x1, 0x7fffffff, 0x7, 0x81, 'user_id'}}, {{0x4, 0x3, 0x60471328, 0x2b, 0x7, 0x6, {0x6, 0x4, 0x8, 0x80000001, 0x6, 0x6, 0x80000001, 0x4, 0x8, 0x4000, 0x6b, 0x0, 0x0, 0x0, 0x80000001}}, {0x6, 0x400, 0x6, 0xfb9c, '#):-:('}}, {{0x4, 0x0, 0xfffffffffffffff9, 0x8001, 0x7, 0xfffffff9, {0x6, 0x5, 0x7, 0x3, 0x359, 0x40, 0xfc7, 0x8, 0x4, 0x6000, 0xbc8f, 0x0, 0xee01, 0x9, 0x80}}, {0x5, 0x8001, 0x2, 0x1, '(%'}}, {{0x0, 0x1, 0xfffffffffffffc00, 0xcd, 0x8001, 0x5, {0x6, 0x8, 0x6, 0xbb, 0x1, 0x3, 0x0, 0x3ff, 0x1, 0xc000, 0x1, 0x0, 0x0, 0xb2, 0x800}}, {0x2, 0x3, 0xc, 0xe3, '\x05ootmoi\xa3\xc4\xe7de'}}, {{0x2, 0x1, 0xa26, 0x20, 0x51d3, 0x7ff, {0x6, 0x6, 0x0, 0x1, 0x200, 0x1, 0x7, 0x8, 0x1, 0xa000, 0x200, 0x0, 0x0, 0x3, 0xa58}}, {0x1, 0x1, 0x8, 0x317, '^],%-]&.'}}, {{0x1, 0x1, 0x9, 0x7, 0xfffffc60, 0x2, {0x1, 0x81, 0x7fff, 0x4, 0x2, 0x7, 0x4, 0x5, 0x3, 0x2000, 0x3, 0x0, r3, 0x80000000}}, {0x4, 0x8, 0x5, 0x1, '}[%!%'}}, {{0x1, 0x1, 0x8, 0x102, 0xdc, 0x9, {0x6, 0x8, 0x2, 0xa7, 0x5, 0x24, 0x7, 0x1a8d, 0x10001, 0x6000, 0xfff, r4, 0xee00, 0x9, 0x6}}, {0x2, 0x1, 0x8, 0x3, 'group_id'}}]}, &(0x7f0000001640)={0xa0, 0x0, 0x1f, {{0x2, 0x1, 0x1, 0x9, 0x9, 0x400, {0x1, 0x13, 0xffff, 0x1, 0x10000, 0x3, 0x5, 0x7fff, 0x2, 0xc000, 0xf4a3, r5, r7, 0x25aa, 0x3}}, {0x0, 0x17}}}, &(0x7f0000001700)={0x20, 0x0, 0x100000001, {0x7, 0x4, 0x2cd7}}}) read$FUSE(r0, &(0x7f000000c3c0)={0x2020, 0x0, 0x0}, 0x2020) r9 = perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x8, 0x0, 0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0x0, 0xffffffffffffffff, 0x0) write$FUSE_INIT(r0, &(0x7f0000000040)={0x50, 0x0, r8, {0x7, 0x1f, 0xffffffff}}, 0x50) mmap(&(0x7f0000003000/0x4000)=nil, 0x4000, 0x2000002, 0x4110, r9, 0x46e76000) syz_fuse_handle_req(r0, &(0x7f00000042c0)="0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000", 0x2000, &(0x7f00000062c0)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f0000006340)={0x20}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) syz_fuse_handle_req(r0, &(0x7f000000e400)="4984d306b482d325619e5f16d7e650c5e28ff3c4cf56aa10ffd282b652deb2886ccbacbe8e69110371e859fe758441ee3c0be4d12ade1a02094db51a5fe520932189f1d1ae6b0142c3db4ce2f2fad63fda0f26f40f5dc714d5516af5e06e28b5188d20ec2dd5f10f5e1831af490694b8e166fddc69c01c149ea69dea858ed6819844b068c4ff6ac3f90a4c070135afd49dad72136c8e6b6f2b8ca4340398a01976749f4d4653d73e16d14dc34316ef0bd71ae8050d02a5541bf2bdbd55616d767052d4ce4bf6a955ae62a27cedb8800cc176f7ac903758272edbcbd6bbece747ebb495f396aa923f6407c5f6641e3429d3706aa9ee861764b1b4a2216a2cce244128296c29233058c2d621f37378386b5a58e4a06da595b21b95947970143d3fe6369a419479b5018840bf9de6a56e854783fa5f6704ad11808e1f1ba234a708d12b6c71199892b7c4c5af2a93bb522d4b77ca818a62d3a2fa5f6ef16e2a8b6863cc3d562125f2bd273b8ec5f1fb21b8c7ee7e2d3319d0a73410eb25b6dbb6e15694c87b1ce34df2c4d31c173f70bc651a99d006909c615c23f6dd17723f0cd8498e4d81ccddfca90ade67c20a5187aa8f09c85953a2537aaf93c1a069f9e3a4dfee9dccf2f135be921a630ab3d1cfbaea7dcfacb6d484cab8b7bafc257a4054a14d1d9999be056686be56e8960e31a578fd549667fc20b9bed86b8fea2fd219f4fa36197e1e9f81f5f9f57285df20b194623a68fde2ea88ecf24adc4f21b966b407cc7bdc6ac2c66f2ad74324a65a435ba4ee52fd283e86211836959664839aa2196c098ed1824af725d77b343d06e827c0a1a121a948603e7c8ba2c810e59cb21e7e7e035e883441597545d8bef06df757910cadcc36f190a9f1e1a4a4838e8374ad0d97441d418f8d0e60aaf7caf3ed3b66f35a37e5563f7aed7cfd6003deee0b6a7f7192de24376fd9cf11497ee6e76f835cde94f2d2fa75d348303207a038b0f6f52f45b2b293e0430ba7fdb1c40adcca068c0e05d3653004e999895267ff9ae593ab21987ed405bebb31d44ede0214618a28052d31f22bf259803728a81a174b9aea3f3b378a0b9cafa5da3aa934ddff431b2472ba74b2b64ad4f25590036831855ea73798eb8f6f3794cf2e7bddabb45cb33492f0a13a0193300cee46f7f19885fd9067a28ee70e9bb4ca8d570a0dc25b90a63533fe994742a703624810502ccac451010b37606ffe1b007b3ff497bfeb239810a3c9d5d2e55a16fdd6a39198268562cdbf325047d7861229cb127ed4151145569ed0aea9b09552009c1e5aac7f8ceceeaa1cefa480374f8e4e55b88df5e14434d883a56147fa9cb1e1b324c5a482d151190d893ac54352ebcf8fb7de2a0fffece6c27e05f9e75ddf0859d358e7e9d901c9a78247445955ee6c00d0a076300c7dbb75b21c31fa3eac986c4f952e6725af370f5aeefdab08e2b8b2e2719e3d3db9eacb4bac05a9897e1a97d1a9f23551e304d4d8bd691ba4ad3f0ed215e85ae371f04fa58b94b2d524cfc9fa454d1bb89a19aff72398a262b266444b8700811d49267bfa77f9cb86e481514026407930272a2cf40ccc21c7b4f6aa4ab92aadafd9eefd813dbe20d4662f46c0129b56e65e7fcea119f78cb559597b92e4964ec3e9efd769e6dd3b0aadcce47e8862e7948f4dc3a72addee9c3a275cc0fbcd28d44d2d26a7916c901ceb406dd336905369797631f9eb3906ea09a83845307370b9c3e2c2ff6adf6ac7e06e433cc4756f2d417c74d0dfaff0b251cd43c0c6b21ecf30414394fe44a55d33dd786b5012080f31b52b4e812d7a78259407f0ac74c259f7a9ade3a21e30b2a81a68a8d8a0e3efef4cca0e5753035a4e88f761d736013a254935d9c156f36d0caddaf366c109f26146f60e60bd6801b426e42b856e5248e98d44a151a3cfca0acc7d8fe6713fbd55d43217a91cd30530185f51844165ecea9cdde33ee1bf7758b75fdbd018d1e547c47e6db9d18e4f5043dbfa1dc5cfe8d700bacf344a037afb504b1418e226b56677d7e6049aa7c962b7d9a6da18081dc88ee60be9d1e050e54a78898ac01e2ae0848d95a6ac6c0c5ce0d72cbf5a28630d424c04de455004c1ad3ad06bb6d53e78f63209d6f1f29392f2ec1752d6bac5cb112b1d817501f14e7028ef3f539f0c794c30e814369433ac8995056032573de7b55a8d967cca2b5ad9b8cd942f4614720433e7a9e5711b8137d146d2e8a0d0d6b1cbd0073fb1e362a75b4f48c1100204cccb7c1e1bace2da0d7e7b6a96ce86aed7f812405afb159920757959ed930180f9e7329ffcacb182bcafee2e24aff9a72020de1d52a6511fc7e90843b99349f1bf749a4d5a866db7668a74c32bfb43d6976909016ba7b21e193e2048387e6a0186f8dd68d6acb5e03f9cd314990070dce1714edfd0218c4bb3f8ffe754482f48f582f3d70a999546909532b3386ff819dd05ca54c781d33ca2a1eac8164187e3dbe365fb6bfba95e3d401f66b979bf2e4f5f18e612fb9f6076717579396a4a128fb855fb6f113c19ab3023bd6828ed3aa0f4c254a5538074195dcc96b49bd0b419ae46c79c67d4d4931ee94005e80af735039ec713ad518ac57495bc4215e14c4a82aa80f8f102b1a6682202669140444860cac1c379e0bf5279ce8e73a5ff3bda257a40bad320a9a01022ee1c468aab2ddd8951cfaf55cceb64888f11149f46722e773220adf4da1629c13e44f4b892269936f141c7921b915af036cd1d5d89cca6cac76a6c5bd80244c48e9a8168f74628498137a0b6815ece8245545755440ef91b6bb3d651a4aa057d414c4033cc25d8c0d59781f24da56c664a851eb7bc974bbe9ce316d117179dbeb097fe18889eab18b0ffe5f6faa95158018d6fdf36053664b38edb5e57391c4b8d815632d8f99aa226dcc0f7869134bbe4db930871c8359a6fc1b1af604b461d27bf17a813001e8d8c17a128810f64899f16446000293eda8fb9a73f4377ddc76c7607e0f37768031f82e93f73d995a776a2730a8c7430740055f725695558d900e5b18db49667bcf60be62df9626ea5513531b98fdf15866fc2eb308d9d3137702fe2ea51114235b6e304109c366671824e47f8845ea3b7529d23a29f990dc5860453cc3481dfe625c280057c4e7c9eb1229c0161df78c7462ee92373314cfda7f44dfe7664ec166e1105f6198eb24836d59632f340c0261b5b043859d71a309145c8f44e26a14d2a449634eb5538e5f72e02009f807c13ee5cb4c636967c66f201fe4bc1a8531534d41a27124f39039fd6b19f275aed72adc07106871cc4e8f354d3ade677928a61f094ed5202360e336846fb84f76619f887c1ff65c22ecb4319d572b05f4125ed8b5907b6b4ec5600d6c01a6faccc637331be02eba3fc52109e8faeaa8037851a53d66b3fc622ee8d9cb665a762dd2f595ddfbbc1184cafab393f28ef927ddd9a1c1375f60233ed7a85112e35d3bcc32da8e6b5b6045969d8148f8b41e528647bcb7de3f518679b382c048fa65afb20a1f8e32aa68d706abaf7ac482f3e69c997f583b50ed8b9dc0ebb949470a4dc1e371b05df0c424ff18d2a8d28588c76b267e2ed1fcab4c750fdafa352c0f4f068b7969f6e373019c67f7896fa46c7cafd4a8f1336240519c2ba4957425abac3bfc90a26bed117cc7b50e00a7dc5001bc2092eb3beacf3820e6d120b904431362f6e77c2ab04efc0e7a63281cf992f0f1619de7dbba9b61b3058b3f90c78e6c4f4b3c9e9b041d2ff7ad8570999130a4ef33f332945941f5fe12ea3a70176e01ba646cb0337b786e34aada545ca65c5f06946fa8661ca25a1ecc5f09a40512d6d0c97415c56edd3c99f64816604a59dd7dc4517e8598e4caccf0c4c1e1c00715928ba72f1e6384df26880e9bab9260e17f22b8726dd8d1533c19fecb13b2745c5d88c83261152400f290bf1a5e5a5b3da93023b2ba11673b3d240d4231287fc44c94f8a858db9d7794e55517bd8d39fdb162b389c1cbdb4cecbe81c7af8d9bf8f102c33b386677102c0b70848cda747d131d0ce003f4c845f0350e612fdbe8527361d0e670c95c623145436065ab6e67e617304acae013cd4b816a932204f1542fe72cda5b352261d0d3256febab4cbfcf8c9cdf0fb007bd69f508af631f3007cfbb4b13ab0615808533602508e79096b7c97dbb95539ed9517b2f4a0c9c1cbdfe8f008faeb23f9f0e5059b624a9f93535a98f049120bd92aca76259cd5b172014a0e0319d3fd8b9fbc6d9cfac99c37f6737c91dd31ad5b3c8004374e611c033d704f0a42e8f5d9c4defbdf14a0cea4225ff59ff91c13862e8aaf1d1fdab96276083be8f0e2a66fdd8ce6d06064f7af60bf94cd6e7aa62172b17b59e02232cfbf7c0e0e6243a92e1f89c29564aa3742892706b0e9c15e214d117b4b9cb9728466084dd6ae0d829c76ed2dde0f6a8935378e190b2e32c05d1720c3f788c74fa74f36f71373e4de1b035430aca379e81a138d8d8604cab86be8d75789995975788bc503ef8cc112cdf6267f5b08bb320fc3862a676fe6a3e4667565419395c0af38d9f45987bd44fad43c4933c33af9d1e2f8c66ec3a3a23e294998fea7da306388062481a18be50b5302217fbeafe0ff65417e3749adf25c6cce60159d70a9b8de3d3f80c894b791a5e9264a01b3270c6c846bd56b0d0d96c589ce951f66ce3bb1baa152f6e6f0dd25930b1522c578903ebc1f23427e2e523ee9d805ec61d551d81b3285b4a7c79889f39a351207314ac1eb0335ecef58dcf0bf7574d18ceffc1b15aa2cc13b026e4b59022130416d4c1768437978c481356eb6c151f19666cdfe87199e98e8093aab6c713fd05b672abd7b6f942f3098ade6ec70aba57c39772b3fc1410c6b3bbb2c9fdfa05741a047aa5b94032fd94572d1470d9158c6415945e094917305adc7f8bbab6b9c497c3f10acdda00889fa18b2ebe57c54134f3bd054c66b2216c9bf4c5ca097b95ca62d5c51d4147da206bbaaa48d18b1b2b05cfb19f2b8e7aa06fbafa2d0b1a3177915347518f8d502824ca858dec614c37f07f45d8c65c18f06fe7ccb2531e0bffa219649aaea6402c01aa79cb8a7ebd3377adb4cbf38f63f0ace0fac85d3ce8899ccc555ac0fb7610204198e2be9972e0a6fba11f5461de1c91cbbeb9e8a149f30125b11b5a449d5c230f8fa7721fbe9a4e3545351345b1e335ec2558622b5e845c78d935487183e097ceb27c55262022b27a7cc8ad1d7d95eb737a982d555dcbec29f31efaa026b8d89cca7ea7b59c9c5064ff7324211b175bc5fff261cfce1fc79e75febc3c33462c4e7bcb33332ebf1cc7508c05084e6a4fe6de39888f53c2d62c95edbca35db82b297a4e53af02fd531f35f4161d6906ffde22aff95d4e3c173e22580629e8b8f6c7014e4644763c6b2ee28cea0b61afc5789f18ca1010d956100bbcc500864ce304714cacd0c10238228bbcb4c764a0d131dc81c7757cbd39dbb598408e6e99c769c70c122437841770a05d575a46ef3a8ee3fd92d9dbf3a77f325e661542b788ea68a81bdf1e3dbe2cdfd63ac8a39b2e7c3041099e6747ae29f747693b38a7171479b5a73838a3a1ee3bf19082ee0d79370865cd859934cec12ab0276c130b64e76ac1d536145d9d9d84a5db1e605d9d8e3cec81bbdc616dd6e9371aa0692e7e473215017b263affa0100fe84abcd6e0e3159fb838f9916ae47e49def811c948bebdd8e3d042fb358a28a9fe8367196ae5176443d7b9076808d8763713a1c024044efbb585b153c075477b7f4674c5288271c8080aec4a2d75eccc9d629b133ae426e6de0b5504865b6c627ee67d2231a8ce8ab8329b33e7fd4fdd049ee7c05b8b8aae1cd2a0728ceb6ad116bb3ece44b196d226539bd8d75ec23fdab7727bb9c00cc06edf01cc62fd5808aa8f05a29f45acbbc617deb05722c78e8c8ae4a5459847cacfb6d1eee552f5fad6dd3bd58801dcc6e29fc1d57007390cfd06a30e5f0219b6ff406640207fd07f120578a4c713a143732f3925835ea8eeea686a835d2d25befc40561aa6a30bfc7ccc839f0aa3af9430500f82b3d8d568716c2b44a5a35f6ab5d86bac1bd7bd1b675c9dfd3cb346eb3e41ac2f253899134a153c3fb62563cf19d074196c677bfc97423b0d8623f6b0bb839588f23673f3a7b29ca103945da50b36c9f9018e01e1c4dbdceb0a091daf6631ce2b312c391905dc9e984babf72229cb3ffe431df165ea6d95e79e8e2b83fb5b0ec7b0af4370fb0f743595560fed169c8006f7c9ebbc3b4c5737e448d8c6d07fa867ec6eaa1d1930cbf8a71082498c872a06e2e2df8c45e12bc5e7122a0f303c740bbaaafb36893576f34f4f1dfefb2a23d9462054905733e5ed8d32ffac80cb341dcf62de469454bcf19f2fcbbd22816ce7525324e3a78e0398ff9d6e2f4d6397f444adfa7537b573aab3845956dc7903a170efca65eb6f79947bae092ce05f1d3a7d3687d4777a57f2e4a7852c11529f39cca9de7421aa62d9bdf301f58af641d1e0559e869cf070a954b838f82be1be952902465c3e64998d84193415ee04d834ed8fd7e0e9d6a52599c7d2018fa93d03b559c627ac6ce5f97d63103af9e2c297f72b8438899c3db9ebed79e109bcaecf3cf81ab2c77fc49cb8171e17f7f2e6bd8ce486792ed65f822c1b2fb6c225843eb348c118f386530da165ab4a7c27bb020422bfd41b2da1875171b036d1e0bef0f7257c11f1c803cbb4d611344296f2fb2818502f47c9afafad99f36e8b9297a70b177b88c5aa075c473beb81c4f131b41a19d1a16e9c33493147582de62f428d573aa8c152739afbbc904b4be69e5e73a8a9ecc77c9e7dc8969565086d569f3daa4db5a9e9f01f2f1695eaf85b4a7822887598b8ec9c2dc006d3a20e35d110e884fc421b53208f8b5cf45c79582b74727e0e6ac7c869a93f20e383e9ee49a0e41c9aab3f3d87d3e1d8e0a310432bd8523c4e7d104cd89cac2ee1223a0b6dfc2eff73181b8ab499b3dde29e3574af359105a0fbc2755410d83115cc294eb1ebf83b9ec65b550bb1698b49ca85f89050c55afc61d6e5921eaeb99897c505bc160e2ff598aa41a10540058d05bb81d0a86fa03aa6771165fda911c4b337d0d2adfac513c49b7b9f0193f88650d3de23fa7405a53484b98192be7cc9757818ff081496f9a627829a621a5b5b46986a6a3b0d28427121f6d976da4aca8f46660a6794a3fd3a43fb528bfb0b9641e5c3a1646ea078844a0e96e1ae5ed2431d79b831da85ad694046e0252d5d6502ff71ddd555967f7189c0c6cb430fa64b28f25bdce56248745627320e24dd3a1074390b741e1a947f22b9957ac8896e1cb462e255950c1ac2aecabfb25a9f20d6ad205d4fec749e09b51bfb6dee7c16eaca2733446ea34bfd3a270ed1a4f1652baa2e16f6c978037fb0320a214b216d4b4a3f25a4062f21140e43db9b9c01c9c381b7d8541d29a43e12467f6af13d8f7e0f6830afe567cafd6df6e5f2b5b03fdcab2ab7803adf5b9cf361cb212dbf184d23096252bdccd6be380b1c9f34141813f19fd3f10c4756cdb1453411c39c1b921879296b2222a45472ea0a953bb06c0ed1dd69059fbcf42c820dab022994fef4cd885b486f761c0149e405f328da3a64181eab7c5be4674ed7dc7a395674b592f91ec45b3c903f30c3fd6bc277d35af221b740df859f4f0fe0f4950aa4ca32327ddad8492e6bc04e5912d8b4815e7456680eeb04de1a94c3af3af88fb93e313f1c8e3145c4e8c6a95ce5ab76bae2d88032e5aba5b27d0e03b593d03e0298754f19e3df0b03642342bd3815ec0a3bc47d9e660787d0549c3160e6e077ba7d23f3deffb407538041cfb8d6e03348e3cbb4e2be9dd1a596538d62c207ce33cb7c592b6d16bfbbc995a6e1ff1334bc6779ae35b36a27bdaa3ebda3ca29bb48dcbbed29adb5e22101e0010f525a84274091c723f911891b5cd92b75d8e7a3b6f07393dfa47b53daa3819fa8210f4efaafe5c2d2e172df5e14aa90badb86b47ff25fa28d0716c013458a8ed1624e9494b1bb4e0d6349c1837f1161379d74360d425291683c1ee57382d9830b437090063b0c27f62f3f36e9a6e01a4cf004870363a191d02040b59a8b73d51a9f6015dd2e4120a0ea6396dc445a507a23a0ee86612df1729ec28107fae1543af7a1f51b3ca8f9881567fd15a7e3460c42b2de75684878e070cb9c83fb273afc10993b16eb43d1242c3fa07be18a06dba434ceaf5fce85ec16030c74f1839da461a3bcbf98e726874263e027cf4955e8ec206e5619b2c3dd6b576046debe3cf17f65b5bd02903d94f1f1c31bc53ff2478ecd4bb1a6cea12f5498f6f0d64a37126bdb9d53e6dd2ece9724a623263074f173423d0e12ed08dc3544209c24c2d2abd76acad888164142510823177a034bc415841230a053d3b726de6bf437d3844b4232afe67941346ec141ae9277bf5b90a655aa25053fd9b05167aebd05a839fe42f33d614dd7c9a08bac9ca9f1da4bb194d8b69a82b13a4f654590271b852e5dd5f628b1d1535fb8c36e4820570ad258d00246cf5d6f26c4605e9658e5e64c58d507443cf9cea087cb85a9b728bec675f4904269481a606f55620489429ae6ec872aefb177d0017b87cbc57983054931749fa64534e7f11a564d67444b11f69dfed83a9a1a974139d4f337c4d3002f23e1f71022e1067f3d58f945535d94f8c927b2062f7d6ba15fcd264e8d5453ad092a2a0f58d040088bd546e07fc8cd227414a7fea477b122cc366cf1dacae276acc592a39784753ffef8332924f77b12ae1e99ab62c26777dcd8bfe9c8cd53595d22e5e9a06a0d20d8ea251c521407577caff5404a1ad812cb2330b5b3679663157507633fb0e054c0c74bbfd23470abbdf0396d7845d0cead8936d91f387cbcbbc21c037b1462bb8bd7a8e1caf9ea0625c9601871db756545f3a7383d48f0233c6d5c1aa7ee8b9ed0c87110252afdd965d61a7d70aa78cb4ac2fc4e58d3a3151a9d65b140df7952903e18c3b05ae73040d379aae2fe2e60167243530f37811e4950dd5da2d29377c1f5717722ec1e0c4fbd1d0e0b76c22a9b7cf97536ed64709cfdf66155fe0347c762c9ab3010e1f80eacd6e9a84ff6c74aefb57ebfb92ea60ea482fe18574b9e9e23a6a3c09907e3f6027b5fb637c20a31e0cb4efe64e9c2a16b6a4b52216396dc65cfa0b0130475c538c049d07d88cbb80d9058328288f8cacedcf3533713a4481f53dcea863a323a803fdfeb460232b5d8ea5339e57034c132126a0dcc2987e57bf52b00f2bcc7feee62027ccc48d18ccd863b597a557aac7b63951db1a535c6ad92543dd572ee763f9abd588fa83c1a7d652b01ff66af6e3e9ca50021e4b83090531359ddf1f0fb00c62782a42f32260e76392abb3d3000531a38f85214e2d065089c48e573e9e350951a4771831b43479f289fe1b283f0d00f865625d721800d8172c7c1c440f7c7eda7e935ff8edf9328332e356a137cae532c1e8041112d885709b9c1bfcca4e6df1d18afa87563815b6b86d0b82bc5ed22ae30bca6ff632b361eac835db2fa536199c8bdd2c36402b45d0503b00d9fff48291a20761490fefe00110fa50d1d62cd717b0469efdaa5012e97ccfce707cd33d7645085f12af9021f5aa5081e535aed753c7543f6509555cdf8644c19eae4d8026c79ed21cbb1e9d85f50c1d21aa1bbbdafe5c47058f76355bbd44898637d92ca7e48d478f3662d375f72ab14af979c04ead0f082416779625bc68abdb30704313bf56fbb19cee0412304c15309706b9c047db75ae677ad45d53918b0474f7b4cf8d30053e3c457c4539dbb286a1b5d7030cee121e47c4bda566ae6eede6d893e8762989fbce866e89e0575baf6e649461a3cf0578360eb56314ad0091d724481ffac276a7ae4f88e57a4ecf7e8e2fb2e1502d7426c5c907cfc0103fab0e0c4b787dc05aa362dade47de70bceba76d8e07910f7c104566dadc94fb5b3a19060d5d8b6a2f8037158d1b7afb0f2e9732cea0f266ab7d1f637f0844477a979cda63f96901c105c204615d0fcea1152bb2ea88fe545952f5c0a1c6ae8598c90f7951ef4c39a1c8fbcd44ddbf6168318a34d8e10707b8a51ddc9672ccfb76c56b201a9d10458d60e46928a55188e89ac251980fd84d6ec88900a49bb887f6dde6d15894db9a38e0888cbeb2b58278eefe20cc3cc910f2ad148ef69b3ca3d2956f6b05da2258711c2478f95a8586bd1ffa4851bd2a694beae331181a3db35860e012f41983f2fc0cc9bfd244bb534c369a28c8bf382c77ab20a1d98601a38edd7f8794143fc24574ffddf584ec0520bc2ae98adfd875ad53d5e60dc29d80a787d1d92f770ba2215495b50276f890c5aaa80bd7985712c06796eecefb27fdb76d00c215da6a615cdd31814e483d1f7620ceb577eed69637023107d4b19910a7a009ad448c90609e6941d6c2b2c1fe576ff5e6910236ea364b190eb7c1ad8dd1e504c7aa1ee9661a67353ed140c24ee1ac734273e2f24fab97b64048afea122796e742775fadab692ae6278599a8d5a9a1f8a2ab57f022a0c856bde87cf63e09afc72ac7b1c9119f2810e803edc6eeeecc0f30bab3e92b7d8793bb9eb5c33161ee903d5c1114261ae7d8e744486653e3ef6799d23bf5f9a064869e1d26d54658c02d4ef855f03e6ab3f19de61262b3292f92578aa10252e08c38bc835c325bf30694bdd1000862717bd94370ed19f92f16eb653bd346111b57634b191724f9219dcef12bd15aceba6fb71ed4484af67c469db3a46507de8822a738500f597dcb852c1a2ef5ae303a9adc0f4eb32256fc4f0e98b4d69b0c70e3d01cb357ad1d39707502441c6c656b6e61a62a31bdbcbc6917d2689c8495e43acbb54615883ce67d87d73cdde3b3556e9b179d587d8b285249d2ca76b407fe5fea87ee331f419eb81b4992f89091eb9b959b9aa8dd5e7093e39f0cceb982b6bc04a65ad0e93db35aec2acdcaf9778b61f1bb60ef3eabcb233f284d355e83eea4e77c83fcd05d30cac0bf2dadd62ed928f04450d3a94d3456e0fa8ac166e2eb7f41e73922b63549989a9832adfa746e0505321708e2ef7aed4fe57bfc6a534c55adf15eada171591028e07ebec5431de5173690d46b702fbcc697b063fed279da1091a5d5ebd8d3fbcd32c7e3284d5388ff9dbc3d157939f56fb6f9076b5c840f81ead2ec34caddcd293e0fc079bd610598d392abe773c7e27b4c9a9b2f2dcd015d2fa2512f752abd2b2dadd2fee17316bb1afd8434ff5db433ffc613741bb6867670c83768252c31ff8d5f5bd652714035ad39af3276b0949fac4bc8e2c7dd04aa4c5d4736af43745b8ebdf535d4eaebfbd5e71c1ecaea279d5f0cbf1aa50e41a2396b4b026542b366b687fbe0c8add4cb6c162cd27afe296d6c161ed076f630e6d9c04711b2fdfc81a8ab54d3050afb6745d5ff10a50159c8554c1cd878fc02c0a3e8da3a44dd0a2bacf78f22853a253cf13ac4018561c1a9fb1b74b866a7a384355c651bc3315c0abeeda0a168", 0x2000, &(0x7f0000001100)={0x0, 0x0, 0x0, 0x0, &(0x7f00000004c0)={0x18, 0xfffffffffffffffe}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) r10 = openat(0xffffffffffffff9c, &(0x7f000000c380)='./file0\x00', 0x0, 0x0) syz_fuse_handle_req(r0, &(0x7f0000006380)="f7709f77945ec10b4eecea480cce6641402373da5e6d7f24014f7acee96be0135b59ce90b463223252169e036a4daf3dae250a1e6de526211d43d9512ae526730f553268794994fd54868ec480d09862b687b463a8fc5058903593b9bb4d50879635cbf67a9e7d1110fa0e8ef89dbd2abdae33183737b8c0b907f5cc74ad6ab0383f8240e091417d2816317f40abb64224f616136f93d932f2223ef42fa3c3155d53075d3eb1db73beb32bc364e3fc246d3dcaca2dc91a634815412bae915cdb1a6da7884559403b545235541ddac97d7b1ea8135539ebcfac1edfa2fee8cf78bb46da7644a8f9e42ae06ca7a188b83fa537b0962a10411b67fc4d7dfe9e95cce2aef82e75f4680b8ff9976b6569523b72a86bd3a8c96f30e85812fe33a610c2be0a3c1063e2ee864c6e8bbf331f2768accfea78700a7321e4af2db46fd162457e439369da2217992b77502b9b958df27bc086369963793854d7f8b00c537de3216898b8f2c1dd925049eef1ab57bb6f63b2d88850b49b3c54d71f545afafa16bd2d06ae501344987623890fdf9ac04b179d2131070a34cf143697b6642bf5da67437aaf5e78e7e6be85e44ad7b265d78d2baf92ee5ccb0a452eb32fb3fdd1a41abf3a68086acd20458af55c086f77c30bbbce4c19542f92ab1e68393ffa58b140586b49761aacdf6aeb7682561f01e0869f503c4a161fd405046d3e6523bd4071c09b7516e4e784f4d11706f1c2eb170e735e563c43317a5a9afad28511163cdb63660beb699f7b8a7eaf57d48517974ffa766fe8deab0cfb11562b9c281bce2493d08c40a259e0325c52124e303064c6fbae2826355e531543863030fef484621a381a945b6ec7253e20047e7294bd069442f72672e6dfe1ca17d75d8c6b16c931438cec72e6ee53f3db89a10a38a93cc84c7393773461db5074b4f5060dd0a04a069a7a9b078856a3fa1786fc8dab621ba622acafd0781b523ea097283afb0c59222a316c6ddc0554bcaccc70288e524ed7719fc02a86283b57690a7320af028efbaedd5bd158a9dc9ea8e4f53c7da7566cdbdd4f4d9f01a9dfa6251a355e338efc8eee258add8731c7d22161482b7e3c8bc83f30482f9935fcc5974d9d0685b5fba3b07d7f85cc8fef18ac4e8e915b8476bb44d7384c996921ae40a4fdd2dd2a70ba17e1c2d6ec67b8f7b45568c105d52afa9c82bdc1dc7fd951b1e4fc1212bf29231d8e41ed4dacafec9a823a672dceeee0e4048b5620373c53ab8f3553c842a5a6d914f8334d6d8a4af785f418e6b4aab3965f94ca9d80a74a5a034fb6edd0322696aa1060d82c7b104983f8889026819ffdf3d45c604e53066b03dfae13fad499e3894120c10944eaf752989daee4e172decca9c2b324a817a7c787e6bc59fc2884e358a1a9b14b3704cabe374d23c002b8112be68f409302d3dad0a4c02105cb54c4350c24e6f3b7588bf1c28ae321eaebb930cf0c3b607acff20663eab8a593320c518eba8f9205350f11a9c1530115f7e00f2aa335c92e1305ffcfeac7cdecd6f1b6a33710ec77ce428484712d66bad137b6c8da5aa51d1b7196d981a14a40df8406b292f385cb149cfc0a86701566674e089b88487f34fdb0bf16ca94d9da4a837f15d5cf8f11d9c226844d3eb18d848420f344a3992772125319abb641ea56f03fc626f092f67a8b6716b29cf8585cf5fe25a35f5dab0e3e075ba3c84116fb6cbbf99a8153d179ffc1e64356f1fa0bca6823ebd8e1a176636962cff271cee5c5bafcb68fad4921e070c4ae08cd8fa0b94534f11e66403d129a5e8253bd3a9dc09a8189895819ff618532bf6743b17a243d515e63868bdf9287fd1bad0d525759953624c8e82debf88159b2c22945535d9379c911f89c7856be1438bd02df70c939b80741ddad245082a72556a2ab3c2390b84c17b6119103a0b8126dbc55e05b153ef9a12cc67f649c14160c698a7127b39fe88fb91d19b2a381c08114c6e3e6d3d42b77602c838c421a9a414f1eb182d0197ff67dcfb5d79404afbdf9c96f475a0d5afc9a4d7cdad458eed6b1de6c13b11c46004243db779e7ad6dbbf15e69ee34bd2524cf72e49a5352992a9251a86c3dc30d7d5fe61ae538928e8fdca0e04fdb5917523d8266b7b4f1679a5082e798f587c5ed9084c70965e94e12f643ab0191e606c2eb0c3359a2b8504f3bb2e721cfbcfdd90c31cde10992c9400273bbc45fe5ba34d7ede773036e2fd1fec1f001c495accdf8ff572de3eb2aeebad29acfe3d2b1448fd67368d0c37f8bfbbf09bafc8f99a44b187f4f443c82b21f66f722fb59f40ce0f9d83c52b9b3358a80e102b21795a1cfcb986c787ccbb9f9c96c2b66d2f7a94ef2c2a5b65d5c2970ba6f3107609f4a67432835c2ce1682d260f6826072a6b6d4b113a5b06311677ca01260f3567ff1ab6be13b455f93916906273c5430fcccb57e0d78224ebec422763ee3a6b94528749a7ee5f70c9036cf3a99a9c98abc0e8aec18733a0c7da76814f2ff741582a9d96eb798426065764fcf86e40b6490f545494b48749fa8d398c5938d6bc7dbe183deecb913ef4c61aef27ea6bb77c23af09c3dec453f01d8e0cf1a3df30d73d44c4e147d9ff2853cb05b1d9fcd2d80815016f65368c477f3e8b676ee1ef5b9154850f02951060f5335d7b8b1c395151b443130d27b4aa0cdd9c1badc38e1825cbaea22480e1d8a986b001a4464fea618707f43bdf7949f500f3f9293b7f7f28170d45eb3e9422d7a107d5dfab18b8e7a2cbc4b42a818384136a49a021721fe07dff4fb2f26e74ee6b5725166409d794c69a1a5b27cb6263c387b81612add3c9e9e509845843a6ffb2250d37c365e3f57f0ad6e908fab119211e7679b41c8e298f9e85558be25ec0a4e6c9aa3d523ef3771971bfd272fcb736d10fa98a87b78c532fcc322f5e24baa21f2a3c84a90ec9b546869400bad19dec3575ebc69c8e512210b81667ed3cede89d10ee5871a6fb166b2f5c96f079cd5bf97f41327930b210627106c4cb6d77e3793b808c425b8a4118bbaa2d1a1454b162cf9886ec17e215d12223a65348ab33185861ab1f3166a4a925d25a63def895a5b01deea11bcaf17c79d27a922834a32aa0f8676793c7257e44d3f7768de19292a385a7a4b3fc992abfb9f8f3ada57b83dc7955c0b2edef1a8214dd8ea2cc9679685137dd63f3918020e2e2f38602005a4a6e84422867b9160f65e92e053d0b58191eadcd5a8a69b18e3216ea63df3f31869c81de88fc75a1d9e15cbdf8d68ba50cd8dfa55259aa362c2615ccab13489844d5ed995383e334074f561a4a67e1060e64a818fc96135d34e604cabe3d9195cf1283725c7700e397ecb72fc8b36f38cd0830b19b439101e4b3839c48ddc95367bff87b888407a517f94fbe58a7033db1123c0a0074c730e34ce821e12f43d84d3b4f0310c6ecd8afe7779671d7b825bb3892825c762b86f0ffd182b6aafd477fadf0c7a931cb61e2b05fc11267bf0a9882e7c2f8e84d3480d9e4576cc03f0e1dbfbef9f66840ad37e76da3ff8a419730a0076de67e9b913f03f5b637287d981eafa1223feafb86bcff5b2ce987f6fa8386ee036a3f75fe014ef90b05a744e038c43766b5fd552e66b9b4996f774988d2a70fa0bf05fbc453cc4fd0ab642db1bc71e1b63919f3c49254f177306f9b00af5782c0633d68ecb85f93fc1afd8dee3dd1ca8b0d7ba0ea463de0b6e3e05c080f832e129cec16853923cf15f06d9a38e20a5a6fa5125d03c1b72680547eafd9fdf246af08dcb4d4d746577478fbc72d7a36bb4bd3b5ba4dc5e407babfcd64b8c413d7dd5433d6a4ee17d5b4835a74c81414a9397d73e15ae387f04a5012a37c88b226207aba933d68a67bcd38f5e0fb8b24c4434c3a0109deaef4f9ab1d230ea6a4acd6db0c3962d0de3bb64e33a29af8dcbf39d48a27c1649a66d4aecdce2db60c50bcec31677559369184608db197f2ebed81ca8fbeb9d2f8c486ec9839e765df69ea634f2815e75eac613febfa26012767c28eae207ed9315bf19c42de9602f44f45a9cb9913a67548787a30c9e56f3399ab281c537751a28d98392655a60ceb9f2515772d2f1d5d2843952312e2a59061b60f128def6795e0c8eb7b12a710c1afacc84f498a29d683d1949c17f3aeeb8b9a32eb10bb242d61a2db5902d592224fb8e1e713ef33caaec6f8516333ca4886345555166e91a6469d67f39241d144c6457c0f74c60e662439281a660b3c802eafa5825fab36b764d4753b33920dc72ec4b7136be556c7d0d528eef67049f5a7bd9cc7e4e94a4874ad8d06595ed38a5f1cafff1018c1351d1d7eab144edba6d4f9eeb7924a25b9f7a3eb20984919d9ade66a18c33f92b65031472ca657a724d86053a3fc60fc5502acec81822bc609954e402a406081cfe7931a1adbfc45a3168e30a451561302a131ff702b4d6c5d3603ea9d1b54c64aad93407e078d6b435154236ba594e8d2f798bbdface489b43120bc0bd7e1bcb6658c2c192ccf18f278e9c5bb14dbdf1a4eb3412f9dc64a31abefd79bd7c91bb7297c9f694840a75cae5d3482d15a2d148092a6545972b7f95a23206bda509260bb370a012b744c2bb46b57da12367d35e778b7d7f463fd8230368b5a5636f28e2cddd03c69adc9c913027a726130c95d818fa38ca7ba8421d3fcf0736cd3001ffcf80701cf6d737cc3dd8f905af39fb2806d2f22289d0001c74eb482f4faf0a1863099cc1b236edd1cfa206b21a2ed86affb4e6a3a4dfb54fab46c8c06cd3e370b50e08e1b7a08864269d867eba5fae8a49560e9479209966002c09719ab8ca58702bfb0071d3859df0193a956ed4d8ad19a2c79656c6dd42eb5a44b808df394333683b605ad0cf176bfcfdc89b01317a802cf0ab02fc3673822b55fcfba512792c9e40a150cfae4dcd40b2b12296ba95063a2f50f552b4682c4d461b1efb7555816b5b836ff0319af6935ae5b41e67329a7b21da93c36fcd87cbba1653c0d00077b14cfcba24f891d62219c157b6354300837d211fbcf1881f5e98d6195fb782479e106c072020b56285107e2fd7947bc64ec9a43a0b239c140ec0456685ac3eba988952e641d2eb16cd0132d2bb25576fc6bcd5e29eb9da2d40e8b50776abe5cd7ea45da8442a311977c51755015b3e4995739edef0567a3f169e980addb1705224175372339de904eb952e13f648449722258fa21f7e53f4a1956e8e9a39dbb18c6d2d10d9146358158a0ab7ce3f54120b705e1ccb7a13fb7e9103d0b80faaac31cab07f6d2d9f668c707b5e3bdf259923a1057816a31e8c771267fd974193d90e1a9837a987d9ba52f7af599c1aeed13f6619cc0b334396b750c9017f84cff56c0dfecc12faee59e37cf7d44575bb448abb19616d4fa79f4fdf96631328dd0d0717f12b9587d76b577bbe78eaa7b0acace3b79776b5d2e77942c57745e347ec766170e90cc66a5191bff3ad49d423ba2817cf92be74e653cc6274a20bade324638d57a27f2fea01d4670bc1ad5ec4d006492ff5fa616a0010be824766f12acec9b26a7606cc8453382c3dd1f5f5c85354569123824002c44d0ae4cd2e1ebb4e33e3d7b69fe14e05fb53af9d66f53990a830120cd618cfaa10e5f6deab4ef4522afd380ea52f90b181fd5b538f424900aac643d118c33dbb6ffe0b2428844f51943412d8fda4a327b71c814cd6345b3690a4716f04fc7323ff1af08e82ef5e571c9fb0fa9b22af40948febda32ea14ecf61700eb02967d09bfd078ace6cea259952c0be90fab1ce841f1022d2da82f173c580d43effdb424b1729aa9fe40292c082043a7c901bc76426ef6e3de788db31e50f54458ca4e360bb803b48d5a4be50724c1f48b504b086d9dca3ae74eae76a1849d14a4074f389aba805b793f9662f072405026afc3ef108ede69dbd2c769886dfc75a9a2e093137d92b38e34a050eca73cd3067d56dfd58fedaff2857e720b09d676607a1e8eeeb06b26494cc2b844f5e856271732477f384af839e98889d5c9cc28651f6eb74029f839150f947d180e48776ef1c829509e12016c6d1b717713e6325751a944cd259b1b86b1f5e793cdb55a73784498be09c2cebdd70159c77abc7c64af2e2de1a860a3e9dd8646b7a6866e1891fcf97a2b3ea47c0c57c5fa9a94129c2e27940ab9fe996eb1813d21d48fb6dbc9b8071c50dc26b4ed21588211fc5edb1ca873c70b606678ae7de9c10d2d083f372421a3038c592a38aec69020862f4432ef9ae7f400ed53b44bb58e92b022ac8b62a6b459337af339dc3346a809b715f9974d21e606244d23cf4dcb0956f93c14047243172adc97a1fed868bc49fb57ecc123425a21e94dd5b9d1ff52bc45965a7be2f5ea8218750e2cc8f174fbd2c7811742f5f17fa1f954b8423c403fd2e4e96296e37e0bfe2edd52e8c3b921dac771c61524455b401017ab5f655eca76139557a4a87cc30210b052ae17a5ca8b634322657ea4d87e0da2392c470f8951ac0560a01b4d0befe632ee311d0b87af31465d6cf7854f5738cb5debfa1d7381c74f45eea08c06d4ddc9e811d1a33394a35efdb7121cdf5f1603343df8431c87718a5d4cf3b2e593508d8b63f0d1e82f9ebc40d4022ba06327cc8233f29c0995da512b318bfa212e9582cb880d9bd6a02050a014294ef321bb2c65e4638a4fd2c8c27fd9ac28c9e49cdae6dd9eb05dafb38a4a003a56dba826e386f5fd3ab0d54b92f53ec11c850927fc4c5b669c67505ce59306ad86460b480b711d4b31c512829b7037d1c45b5b84c0be40a038b5e975c57c860476318a22df2e4f90009c38481e519b9511e54dc59e89a6593bc53ae03224466513930c5ed3689793f00be192a58a919db9ad1267962c0ee60327ee710accb0da037610ef8aaff63f6582f691096fbdfb1996abc4443cd4ffe04fcad3608413044b978d86d3a18bdf86fdb70cf7e7bbb0e4db9d36176d0ba8a4cf81369fa84ee55466df70e6d4431a873000c19bb5caff30c01c7f7f928cde86bea5c401e525fb8a938fd016bffd5c9d52b279e867bc64f575b80eec74e7f66fe92aef613636e50c8f32831ab4b7eabbc89ce6d7bbfd03b6b005e0c5ba27268369f5083b2ded32c1f9e8cd73a1daee26cf03dbbf9c476fd0f14935244eb7b544f8db1c19d8a21de7e8a88f540e8949f721f20d7a47cfad3f52d93c11a796fbe9fbe415194193e5c70b33237f70790905816b856c252a30e72c081a8bac6a1c9fd2c372b9f870831d6ba6671fd8684f25e60cc7e3a1a02ed5f1a4fe426373bf61404a68571e93f35659b6c37f939233ca6663603b053c8fc74da84dd971b9319a1260fa2f5d66609962e93f7f33a40b22066b86a74fb38bf1444d025f27f14e922661471ef8ad503e97f8e7dd6b9c9a420885e519e085a1f26f7149b82881908021f601679f79c944549bcb431a7d2b12f75aa54cae39f9caafefc01e7eb589d2eb574937abbe18b419d7d27309acb330293456337cb9d753e08f7b890bbf76c4d6ef548bc3b5965302bc65ab08a2420527c1ad8be374cae7cc858376219d39a7a6d58c478a721678e789bcc317a4d1acbf47870a4802a07ac0332f7fdad7156065de511862c2a076e264138b98e7abd1a2555ef2e1ca44ee68f06725508891051f6bd24479a616606024841c8203744b999868b9f2b3b5e8a42f454d25fcddf8f5569594716a4022c3ac8ba67115b93d8bb50684b0fb100dabca7f6b7e29b723007776435829c6f21223d7a2556766d198c76ab6cce3b6e6da5c4d14a26b7cda1cebe6792ce4c1498fe644fb4408189e472efde923506ea4d18aa3284ec311fa942dfa5d8b939e509a10c69461993cc9d3ace2fef29afee8d0894764ffd82371d5ed363b5968447ad3c0962b86584cc97740d7bc3838ab1c1b0198ea830f122b200722d3c2c8815a2a5f90382e1c58f2348dbd38449e28c67ed85f66ea3e383b91c782a4e77ad4aa538db6d15ab90dd464318ded6fd293a1b0279852335e3c94bcce6f37950fb23d96f84465aeaa8fc2f71ce61a1416e579399c363bb37ded602fbea1ba5de87ab12bc7aeb5c62f026f648ab2babea2517c3ade2828109da58c010e6efef544088ba412ea57d3cd4fad3fd85b17e386ffc8a700664b2604c8a71c011e894ac03a109d9ddbe0b6d625d33d7d16fba5bcbc1ee1cdcfc6a475a23aff414e5b4f83e9d18e10f9e6dc49e518561ad53a110794d2ad9c7fee95a03b632b2acbebac42c996e1b856b2f18a2a3bf7cb0726c10b6aa3ec2d78bebd26e86ecf78b87736017cffa7d654b357be120985c553d11dbc932139ea6e1efdb7ef34598db568e66d42429e414b5903ad6e616ff7faff6ecedec529cf16b280c18dd4c3c8cd5192f625965e15c29104855364565a4a52ac5ff78eb31a6e7602e84226a87364708c2a9fdcf2f66f5dd0951aacb7b6c8f9bd0e534ae44b47799cdb8f683db5a3258d6f1943e04e59b11fbc6f57d16ff150c94a22717c1b483ad064c25f09022cc4ce09e76fed2b2ce84e9a50623f84cb013d00b8ee3fd2eaf1ed84df2b29d3119865f5df8fbb6d7440ec6da33deff5c60f466f91959c0d7c7800937cf59fdc6e2d53e809a6f6754ed545fc71c42a95d198df6329a3f32ecd091e7e643727ee34241b9244ea9a2118ccc6d5b52f8dbd61dbc7a4b65e8a4b0e937669a8a6377022df74ac0d2d42008edfa83a71c2e14c8cb7f3e54612cbe5b64b31371f445ea6235467b339b285bffaad0acd9af5159b84f58a3e0230a7e6f055a016a0737b893e0d1b2dba11de53529c825bea86a455bba90eb4f10ea5425d498c18c0bc643a5bb07491a8b6d89b1c92329aaff3a9cb9302f81100d97b78a09d1f5c512c26409796608b77c969c070f6e55037c97bef2c30ebb373110c2356e0663c0a7010d13f18f9b7b1d4a5de88b110efe433a5dc9dd03ac7621a6de39584de91e9b43c5ef4cb435eeb45b8865540355030acddeaf451a453a0b0a76cb064ea1e939dc5491f2c591973c741cf1f73ef4451a1b43ed9d9e0c7b126b869e7cd326900a470dc08a15fb176346f7431dadd6b820ec10cba33d7097ebac9c1ff147fe39d9cedad2828facd8c37cb22a8b7d55b63170f55ccf45fc25715d00e7eb7c3f32c5a7dce02bb07073daa170caa4813b2102648cf6a5bc9ae5ef3fc4c6240447190340469cea21650f79f5ff0ab60e6fa8a30a45f29ca7f4356c275ef4dad63b07f73cc672d26091db75eff3e19b51272b0b786609333f6580a3ad3c83673df3776d04cd05fa86b7b8066076b71377580d8b226d9daec174cf2a62ffd48259ca04821e949021b3f540b5268c794a5314de9cb143dafce0575c06750f0c125b507bf39bf0abfc25b9bc39ddbc4450f0f3a70c312905a5c2d11f7b39a3cb0fd08be6f8b74c5d74fdfb0477c942caac42ae596e0aa36db5f10e1571231ebfc327e5a6111eb2f2a0e1be0b0752018973500f1b7c832cf36078c24717f66983bb72649829af53389e89694bce146f8cb358d7922ba07dfa9da6fbd65b7f5159010b1bc6847967b9eeef7c6db90f48b1c1a7ab63481809111b2876c73c375064bdca8064ee8d6d7b3817db8f5dc82709c586afea5850f415ca7641b5e6f45ff93b9dbc2f62c40c47dbe61a069d88e3664c8dfc9be2b35f8896e6d5c8a35b864b50d50364d3cec828a4f7dcff3cb314c9f7ab03c93e1fd8c5bfa2c303d76cb0954b401927a000babc400497d3f3a37c1f7a685ecc12b28db4b9b75debccfb132a4bb3b19ba91a441a94403eef6ad8222edd1dcecf215580296020731cab55029a189561499d34faef21eadfc370f98872c2192aef73f0cdf80de61cc9157d1e08d7153a49f7d1151fb9f110febc34e760c1afb87eb36c9df1d6aa047cb655b3ec5fdae8e2d93861070f98bd5f1c53c26f07d7c43cb295440af75e87671a552e39f9bfe1853222eb8ba0c8013944ee61dbe21281b1d4e3ea3dc0353d4ded5db0128504b97491353120c63bea1c5656be047a77bebe93efbab10375cb0946624e076a93a6ffdc284f4aa9fcf54ebda3653d5abf7da76f19c165d0982d48279ba8ee9f33b2fb060491aa26517e39f2cb4d4ce7726b249f070aeefca6843a813026e45c6ddfccd1e0b8883a7170644c43b227a2a3c03cbd17b8f3dc0910685169ada487a72251eeb6e6a1dd5661294337cf4cee2d74fdfbe00ff6d07847e63880059bcd12951e8b649cca1dc6a355a7d2c26ef8cabd467b21d6bbe28b108b385ffff7304d96b03500c912efd2af7c45f81f5f2f0e3357ec7da616f81ead2f823a128696ec7dd65a6587e5ecb56a8fba1bdea28909da5e085e164b046310182fad711d4e46abaa61281c88c729810c615ce9636b5c96e4150e2fcec6c111469ba8b0c010963d4338fba8a8a080e384198e1410af15f7ee18e5396b721fc331860e072207da236b35dd94fa7dab288a114ea46e754f1d0b4bfa1a5b216706652e52c489e9a3a1cee8ab4fe5d416ac22c2649673715909c27f31684f6e103913bfd28e02fca507940b86405cebb8084d1c6532a5508b716070c67ba544a1593895f4cc1a8d075415feb69d50fb674c3a89b59f80032cdfa8d1181856817bb16f50bafd0e21aa656661bf3b6bfc207a7a645a8edc15ff1cb706b6292a3263ef5ad1479338f59058d08ce76dc801d8e11e280badd5a0c0dcf1c6285d95cc087e7f0dd823b6b7c353d22f1e7ed03c1461cc4c170e33cd06c45f17fe1af233cca638611449493d533f701d77163f6784202d995e17b797d4d2f0d87d05a00728e8fdda47c70ecf919a2a110371da3474580720e8eae934888cf84f1f1a5530baf815e7c16129732ec4af417c1be0970b845dbced563f00a86135bda35c525aa020f285116b00071858e6eacf7b124b635ff7b62410e8c27a4c76adcdec10f5180130e8c554d2d8038677650171a2f6c3da4c04e340b48df92cf41d08a499f680a2cd6ab099fcede2f8b1888aa052c7f2dffdb203e19fb1e2e6237e19b218740c89cce311ff168437500a6eec570780938c3291a19482656a8d53b19bde3d4148bf1a9f2ea67ae835df675662f27b5b6f5e2652d0471c81740acef306d9605b4ca09a2c4c0f3f8063b6fa5fe01109c5e348eb318074785771ab2cedc48d0f5e15b3a368ace5aea415aa2d566063f25571b7a218b9e95117aaf0a389284e763e448c88b49205392fe032ed206ca8e27fb1c65a72d125cc860913dabe714be1a2a85120066cad66d53dec9a30664bfdd33e25398199211b15fe0770cb243bee320e95e506be4617c3e5e6825342c769bc1da3127f8d34c922f60ed2727f5d9209fc28099ec86c29572fc7159f6ced79b0a2a2653100230a55f7a578e2f1d90f6301069ed04106de45b976f2aabe769ed17d59a53116b74fa2f598c0d1e9919ca8d9cc21265ebc218ab9808b094eebd9a48d8349cf3faeaaa7c8ddb07f6eb874f70cdfafe050de69c6e7da6c8d2f71d581d6c604f4bb29243e9d1bbcb0890b436cb43d1a33c4b96a08af4137135a8c8fe74034dcaf1581856f800771", 0x2000, &(0x7f0000000780)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f00000000c0)={0x78, 0x0, 0x0, {0x0, 0x0, 0x0, {0x0, 0x400800000000, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8000}}}, 0x0, 0x0, 0x0, 0x0, 0x0}) read$FUSE(r10, &(0x7f0000008380)={0x2020}, 0x2000a3a0) syz_fuse_handle_req(r0, &(0x7f0000002140)="a3da40fb9115269c1bd40741f294d9534922a11754657d4d635eac835a0d88ac7474c9a48d25a7cdb5f47a5d630889f7e06288a234c5ced5ad3a994e6cb1b61fa033e810efd572f374910885c33187ec9c8f55f8f570abc171bbdee91545a400914b9d9effb0fc45da786e03924c610df051bb4a4cb02a0936e2309d76508629cafb9b36a44d21f8257a921c96fd5815cbc5be120050366f8b3cd1eb83093e980d48158d18c700ae006ee0c21cb190123e8c666194ca7445dc5e1e0fcc6a029337c9447d3f14f80308a81edf8991088a93b9bb997b0580c556ccb2b26c157e2a28dc9394185a5972a00323bfde90a00bf4e6b32e9ce8369d0ef7beb539545ec0e58b63f3d088dad7701132b18c88cc903a0f224e76dc349221a2bcc35bf14e88baf475003a48c18907464e99550d82f07aa3d8016375f6e40f4ffba3cb861e08e1bf99517f1a6a1777659aae97649e3ff0622cb23d9d28b19a3720dad903913af761b03ebbd5f5a966aa628f416620a0de2676650e3d1b21d3b7cd95b5cc1d766b2b2ea8e3d4d029cd147f73351bf67f713fa089752a833d86271616ad53d803fba2a55128e5e8992b92a4569663782cbe21fff5973c2a85f40d187814e30e0750c8990909f6b2d45e01d1a5ba2b46972d96344f97d4e4cb52e9966ac54c5e57a18382192eb101da007bba6cbff372509db34f72374af6160412d6115f54620fd33191a27f69ac2edea7eba17d82a297c03a4bd1229f7dd1c68378d6a669c608b5bbfcfbb4ad2b19311cf9989d362ffe995dd1514ae00a7bc8aa24fede6e09843372b6139e535af584794fae1abf814a1479d47de8f6b44afc752b57bfc2284119305dbdc8643a4385a179126eb256db5c987805a338225907132dbc9cc9139415a8ca038bb50ad1164d14319d3ec4fed8f3cd626db2a97e636763eb24eb3b96b25a4f905fe81ef8cf8fadd947353f7492509b9bc2d3a75a54097cba9c3b6309775cc0fea5948104fe6210abc576f1fe590b13e5b93300e8b68e9f47f641541093c8cdd89cb9cc0946e4062c681d612a1d5f95836964208d16d1673e75fe8c8098b240683937f9f685e5d4f2c3ef67a09c3a92266df3ae888dfdb7b70c8016da6004b78ae51ba28579e4630167aef459c270547701357282e6e4ce66ad1c6158da2cf2eaaba353ab7eeb6a038e7f7afe6be7a153fbd4f069ec422f8903788066d5786ca505c3cd245c2f27b8e08c5363513c7fd399fdf65ce54264d404bd3b10cfd299b34d65c2299f56ad83c91eb98e37eeaa2d78819a1a2011f0e0b7bc47a6bd72454d7cd7c921e3fe15fb50c22b2bf9df0d8d2d8799b92fef6986dcd96f36d5438f5670b77d0d04b799bd20bddb422fedc2ce3cc0b554bcccf8c577e2ec5c2987b3f7ba8a5ccdfd3501d463ecc1c650335242031ff753315cfbb38040205cccc3b1be6852fd4c20bb28fda2ed2a4aa298a7d8a464bdee039d5ee9d6d1f7b76835439b1c1fc70d8a5ea272e35218437095544f5fc9e6f46f104f284dc50695dc448a8328020f72fda1508e5a206cfe0b2a9e2935a2ba57bd55fdc958f08f4e2ffd8920bca803ce10d8e4ac0ba50f41a021498f44829494a8d405cd22a694081f4d373480c5172878dfda020b33bbd46ea123e39357e08ad4c4548bf2d3a2ed00ee014880d3771e9470c00b9f39065b2092ef2e433022c6970f56d5bd7804445c569dd5f268cb1f5ba902d83933b5cbcf4e48338f93108421327335863451f1ebf9f04d844692cba2d1fd95043ce0c550f7e921a96308c034602126c09e837420a0c3b12b2118c6e2de3643e8bfb4b2ad685e749210ad52569c75c43805f6a1a662964c6c2668bc511448235fc7d050c37c1bfcce1d087e9c29a598b33763ab0c3d6df0082bd32cd9753cb745afef24f572c7f4e74990264464dfc68de6a004b14c92d8612e993f3d9147c0b8bf902b88c223f7146a3190ccc890f02d227f704558ac2faae7080e790bd66d7b1600567974c53869f247fd0c4745881e6c8c9601608bcf87e6025f753ec7e30a6cd20ed4a241fc1d703c6361c3f9c38320a0dcd38c37f5f111557ef6bec8376110dc5580db2a36d2e8c4b162c07d06957543859d6802969851bcb0dbceb63d5440c289df952669cf1e60b3dd93b1b5524be39d37964466f87384ecbe495b71e8ebca7d532d2df139c5da48b64c64131d57f68af53cbecf2b0f1eb209ef5a96821448258f6931d20d227b258849d9c0054b24fad87773d5872bea05b49dfe098575fdb3df5e807010007e0489d429bcf7660cbce8a7313046e495b0e16d6281b3b730429c5924373c1e1d9ddd9b7a1d91af76f961cb5e4016dc78bbee6e3a73434565f00599a70bf991db771ec834243382acdd9b04f7ee3b7865459e5dd6a0a88a6a97c09f89c172423ebfb4720720d399ba020b5ec2fea4213f4c3b45700568936141fe1d1b7c7786a6fd53fc8beadef619fba3b80fabfce9113d903dc2883a504ab126c14c96ee79db91742f59a811f72dc378e0dda73c463df4239d9e51ef58a6032f26c488961a3a1cfc151e19eaec3026d3f003205905e436f1b8259e46d223c6d93e6f4e623c943fe57c25e1cad306331f7fb6b619a0ee1df685dfddfde51074f1c2981d398feb1e66d6c4bfa809e91e53a310ac9228c661e3bf18117cac19b925471bc341f436ec4c57329b87aa59d7a433a5905da5da6eb126bedae4620039757cc82d5d1f5a14e59407eeaaa6f0712e728ab037ccbdb5ed5b8079d423a6a25063f8de38cb9faaaa7e236486498f1be35377eaef0b817c51fb32c0df64c442c42e55d769d6b10b15cb369d27e804a799ab4cc66380951f0829690700de4c936f68f0799d44e71d85d6c5e0f4c6e74b12b291d47df1d851d03c126414e3050265b9ddfb1878aa9eb81d6122718f357a90671bb699eb9930dac44c802ac642b102fe27d6081eb646f66ebfba138a57c12fdbd507a01fec6f0d9bba79218c5de5c946e886d47953cbb1a73b3129e183480a36289090be7caa68c247adab72863c4c819449716d707dae48d3356972370ef5e31647d35fa640dba6edb4b0d0d0e940d606b3b3d8ca62b78be7c425095cd8b0e9524f5848250fb2e49d8c63a85acfcfafe39ab1b6d1478a161877e0e0e08e4981943fc3ce7b81180c00d71cb78c2c74088ab4090ca85f17cc19c46f565e250e226f6cb3e191a07a4f3e79e28cd8094141b646573ff7b3e83d4e9c89adbbe89767572cf20389857a5b766e6b5f5ea7eb9b730316bbb18dc3d75ce6fdcfe5106028b8811c57c5e5e32822c9b6d3d03398ace3933d3fe9ec2c66ae2a7643c2e56912a924c0195b4783b8f7f90b5d3c7e837b71c3807bb0619f6743cb704f4fd6c5a6ed25cc126e766950f92a89d0e4b36fcfbfbfabcada79bf86db3299dc995a2d4fa1ee4e56a36136d3e619078c39104d64327984689e8bbc0088b788b604ef68f78c1f53a1f6c0e89668e5a9367d4e9b49068bdf43668be576a445964cc7ad73e05b75c37717b507a2289424f99905d56545d533fabac8d84aa88881768e315f1a99e859e47b5a85d6a6fe267090d4a2d74fcc8b0ef57735813de920d3fe067ccbf2ee1315f4e50f68b722bf304f0c4b90468ff791ae33049ec0fdb7fa7b42fb6386630f97370289f6973c4ac211aa3fb6ff2157cd63dab11ac64ab2ba7a6adfe5724713d25ff216966daf08c2d7324d5a8b4768a737e01d4999ecc0f2a84e30144feeb559cd809eb2cb58ae7651b48fa3a1069d77b12694ca736bb9bf4a741a8a8559aa44fab53d0b0705f8dc8d9c585525aa0c059d99d0f58efaa45f4e68eb226cd29871d8ac26777aa944e69bcd35517d6199a76da86823c891c62d7f8885c3d9974a5ceecf4d2d2350b81c88132f0729cde233f5c6fddad791075b088fe9ecac1934d93a956fc5fe5858525fcf0766ce4cc1244632e56d9acc07834941bdf427a814b01ea75cd20ea0927aa3ceb55f66a3a4e45c7efb27e097029fbf988ddfcf095d7312c6400475dcb44327f04a85179070b8f74fcfa2ba0793a8e820cdae22b302e96edd2af093a9d78ac4bbab962bc9860b85472f6432f75cc4ab6e99a4877d4af12db23c94b7044c1f9994eaa41866aa66e69058fb99c9279486b2dd4725bd5e635c944fb694293e8af3e320fe1ec2999430271bec357d48bbc1f7af0179e6c3674c2152c8ef9958e0ddd1e35ce6ed4e49d278136a42eaf993bc617423764a73071dd6f8614d5261aae0ee574482856124d5ad56285fbd2c5176b663d0f6782386952b9ae4f4df1e406b55f41b653081d365f796f77d870f5c41c7c7938622edb8e52fc94d52440385d1e48ac38006ec7b3c031d0118a4ec592816ae11d5291bbc9a632023bc04909ca595fdd3b50304173ceb10e98cf7524375860be46e7174ec127d2575a0e178237c8bf81d7badc1f761a35f67d9b37cd59140879e843ede7bf095b0e686f228acd0f6ffdf347e0ff9253150fc916fffc76195f7710728fee2696f87f037e38c393fc668dc687d8bc13d0eae150047e4b9f4d2c893453294f88646bd889b3e4020ed0f523b48e18dfb486a6aecb4b08b012f0de5334b9c461bca712adfc3f1604a484c04152914c1242eb1a16ccd0711ac1ffb78dd9d2dc95cda12b85d2e5899baeecf0b897b027dc11f662128de983e6ca8577860edfea159808b6e10a1c16daa2a771944f41fc95b604e5291df1871820d57a7645acb63da4a8a314151d0c1756d571ed8deb85d1083973df8b5c460982c8e81aaedeadd3eacabb00f42e549b1127cedda302f95ba1ef7eac041a864c1653a7f1fc58f5edf9ebe766d086c2d1fa447a0ee4128233bf9ecbc907d8892e7445ed6cfe991f222bf6636c5d846b326b8ac1a0e0178e0f531381142f8cb8c745a0c748a8f6b66f99f67fe42bed8d2a8759f68f45dcc3d1a40b5abf07ff802eb8e87b3d9b993d3baad84ff22f100cf259519b1fe99f5022cac236cc3a8ea85e7fd259429d388771eb97e6836960b91048f40f9979f36c1fa84f5ffeeda77135ab29dd1846f3e6acae2722e10c136791b3d8cb45f4d3c4774d193f6b1fa9a55290c9e9b908f6827e73158b0a0e341c35270649b2ae9bcf03887a0b390fe7d22382cd0281450023ef33c1d7b32d8d305ccee20a9e7da6ebd423642a32e9651418a79da0f73fc1ee77beae8453d04452d36a6effe0026b10b9ae3bcbf8e11f5c65536525975175de5bd9e1a1079950e25377d42328bd2eda82e0dd04fc2bc2a8928adc390897f7564f27257aeb22370ee09ff5229ef385162c89dfecfd8f53bad63e9fc3eec333c472eaff09c31e3a8a4d3e18e66e858c88cf8ebfe809092f0c830ba8c8ab92697d76c9c3313a4a73424c4ae6502fca65f49b52c6893697d7ac485d758d33fc9342f4841417d9a2c1a97016905d81a65fc3ab2354d5ee3c14c37a82923c0fffb945812e5fc72b9a25be59d7511b3c5a4518c5699d3c47da8f5eee24de9423958b219ca4b40fee1e9983711073759a316cec35e595d455aca1640ae23678197e57cc83dcda55244ef04fc6c02921e0493c67948c93d7a255576c73a8d4d5359cc898c552514fd115fd36a33ad542b372d756e6855dc13c53df6a651c5ffed1f75af2c55dabedf92a706dc9ca49b9dc0b9153083ea5d17f05a883254437f71ef7f96310187136cd744235b52ab89ea7f155677411b6c8119ba758fe931b85d50794bea4c5f21c359d6461780ddd59a8c32078c09a5ad750c6f34a97ed123f092680d59e91d2baa52414f233a253f4c310c074e6ffdec32fd932f0525881ddf91ad39b6e73634704fe49072ccc2db2259f5fec1043551c01ba42843e2c3093a874d1c7046d402095a8839f97e234780e17019ad9dbf4a2ed858fdf2eaaed8bbc9e28199a5d0886e069143327d3bd7c7cfd42df19ad1c4564ddf442d080a9d23ae6cbbadaba179dd5e6619c8379f29783c15bcc213f6d8a5fc8e820b9603d5687b3a6b68aa85d10feb9943c295726fe6c88d33f162987dec76e3e9915576b40f9adfa0901a6c2f9a1b3587bed843428097a18a3115bd47a27ecc0a7991a504fe02ddfa14165b2be51727dfad0d2c63432f3d2279f71cafe48084606ec5436d5e1a0197f9ff605460997d5e3da9d0fb1228e4cad6f6e8ec03a08defb30c36632c806d5336fe60991d15a53702e7b4ef05385a3a31a2e5b7c50240acc12d594d9548f1cc6b5d3849f56850c8edf148c606e1e697d19cae686b87d54dbfd1d6f7874a159f61eedf3de55bf2effe5cef87f221c51c33cef32f6c2f53c9ec5ba1fbd6c2632c3fd696447ef9a9c4e2a319be62c800f912467e66f6855355fc1620e163d0ef2f860d53f4b98f94c69312ce5d787f4afdc9c208ca2bd901d9f1e5fdf307cc445671bf08ebc1db7adf5593e895b8a36058e95957e654f092fcc24c26979b4c212de0562abb580151373e26e6d03c2c774b6369f26ff1230dce31730c1982b9df697754b6fc418c8760fc1360e12e1730311ae45d7744bb21afb2812942ea92be16cb5e0954c348c4e8425e9521e341d6e494516be2b3d88a3521349f113f7f83448691c4a9119b48582c9e02f3d9c7507ed6100bae55659cfa47bf1538596eee4080eec759baadd7f887e41023289351640f5fdb113a788af815877ace18a05a7c046a02637e50bfc696ae36c354ccc12430752857602222eda7a6ad5445afe4703fe74888c17fbf4dd31f5ea1c3d3ea9ccc465882cd128c87b042eb89265a00e3a39a4b76d1bc1d34562cbcc4c2dbf935f042845e39a120a8e860310b43255f0d038ad33545bb0a5a3462759ed4b109e340d62ed0b7e7845ccd41fc4f4b7698e0f5e83b015a8a66d064a3e3f3e110ecd0cc10d1a272247618b672c8707b0db8c04c8713f7937a43e087f5c3a9da8b1def2b89a5abd390523e7ae7639424c03cebfaf07d50fadbb738434d97e2407ca1fd3ca340a82a95fcb71d700b610eda5e497d36646b47d2c3daa318ba28603d39c53669dbcbfa489d8a05be483ca395e7876370f9f926e0b08ddfc976800673db8c1eea21c766bffd81f3effccc0c45982c8168be1ebfb0eb10deef6db3362c46b60dee4fb41096cd7e1eaa17e5ebd9734c8bab833eddbf018be39fc9deabec7634b196c9b7a525860a90f82793872607390c87870258e265034b021e93d3441e715482f0c9bb991006715544d96fc4e08ff194cbe85f4bad186f9c9f74ce967462a2fdb366db5c6358b56196eabf25665d90d4fb937ded04cbac9e078113db65a11aa36e68e82577052cae8d5ef6fbb8fd465644fead24c7916560b7a0c19c0b9f55ed5f6e7408aae9ac4f661a9b20e61951f29f8135b1f6f8cb7e5239793e0c792ddaaea9266981755bcc5aa4ba1e54042340bd9f13bf31dfe99ae02b7e7a7a7cd9ce52acd1b116d2c17fdab5ff89b7621ee3943263ae172a1ff5e3d5935cc36f3d8d1613835baa32cff327c622246cc7a5d5470a62e78f55632fce3f793d3e83ac66bcbdb768b816125e6ee27e06687b9eb4fa480865eb1cb9c7bb7c5f484b37ae34dee7247acf0ca9f8576443b8b45d589d0bb1497ae6e426cff707ac5a61acd54a1698faecd35e5a5a25c6cfcf7918fcee748523f990ba84722559c5b95b57a0143334349e95ed2bddaa4ba672e9692cedd9b324f280ab68a24d610fffdff9d47526fbe5328195d361af0317597c018890efbaf8dad80e8c8f42472a88f1b329229512a6abcaac6a93eecd4732ff580141d241236a49096b1e763430d70e808ec9ec912f66fdacc64c2f05ecba66756d561f4d8889e9591f59621b31a087f4055e8cbec85f66359b2b57f1b0f2a641a5a2f85ee546354e4b891b87045beaa33080a04252ff719414ab6b72d560c4a1f3a560e39e67f598e088de745559938765bf7c600705e7df0bb593c8c2f875cca06c539e97108aaefc17ac8d908a6ec24ba7511c4716f8058e3db5e3e020a6ec585888f458fb77b7fe2438d1b245032bafc5a61aaaa90320b2ac05ac7fccf268de28168c1799a1e1f04a717e8fc5e33dec1cb7944c35f8f101ac7bbd26ef8fd18ea05d8647934af03172d57e998bbb1fff3bf7cb165b328d702379016d91e6818825b613ffab77764b721502a9acd41afc6faaba669a6f76b8f87d6d30e9d555d6d2c799b5f7f7620c7eedf0a2f85abb63cdc49355327296a88574fe3c18bad8e7a5e0c170be5731b4ed65d030bc6cd41c534c1fc767bc911aa52dd6a658600de3ee1fb40184df5b2ff5d7e9ec50dd9e7046523194b439b717bb3dddfe0dbbb16af9f2df0f1f3006d5ee8b26258667b35ab780d6fa424359a223ddcfb2fd52139893b2b303d76b5b345c7d2e201ea3535315163f5d111289156c07b7d71ac0a1e0a90eae7f96c5bce76e2965f5ca04a19dbd0f3b07e6a64bd947aeb53644223cdaf8cd000e33191ec1f8b42817879c641ba43857721af1a54b5738a44d13a4b80e73c01ac4a615b700967c3ebbc9e88796bc5aeab19598a353f6bdbb7492160008d523ceace646d819055a8d6c10e2a9cafdceaccc378dcac3bc8104491ef9e24b5287bc6e2d41fe25ebcd9e862dcbe4fb7cb7876c3b6bc2c5a3bbac032f156e15ee956f89117127b091da5eaeb5d8eed7cf7f4f1afe30a6a85efac3a453c54af48f93daba7e0e591179d76f7e8602c10ff6b8ba3f7554cb322ce03b19cbc70d565215651d30908ee3beabe12a9ca0829338d604b3756b7f07a0ce538fe5c097f8b4f8b5a752a9f312f3e15d106ba226615c0915b46675d1727a37eb5d6b97a40df05ca74b9195a26286d43e3fa4076ee42b1515160738a85c76db9448be74f4bda4999153ead1f0ca8429eaea513f537eb48d6bc4c8c7c8640643fc0bad31c7afad487284537688edc4744d8158cf031cbf6a7004a5d8478494c2817dfbe27049278316401628bf3d993a1a90053ef81e421e9d18a1bbb1219eed3a306cae540ab18fb732e3b1b734daa56459d74a11ddc0a8fb0af98829202dfe0b47830aaec19e69354712613d24954e9cbbfe0e2817b823e90d2c14b7de85771388385fea66f0b8287897a708b898fd10f8869fe361a272ddcdd9c1ab34119451398baa8371b3edd78992d09a74de8abba36d8330de4be58c6ae10ac0ae50d1e06bcc1c0c1f533b1934e46d4bbffda15c71c51ef15b8dc756e98eeb37c64055873c92b89f0296df18ec82636d05d9a5fcb3ec11c809d4e3f6a26673e75dd23c0105abf31ffc8c620d028a84af368d6b38c60f4ece84bee84f592b9f50d09b7aab92a494a9fceac078a31ec4994038bdd9081960fe15827ff63032bc7317753e882e34bd4d6bde5de2442d59bc479edda80319f44510659c414ccb8605adf2961af770d752e7018f55e250d1a12e7bba6b1c292dd4ac8f4b356cd4dd24f9a59997bbb5e15a7b9e7591174e2b39a2ac24fe40541c5a661d772464e4596dac744500400ef4b5d2f612fcef3e01723d0f6f4307127a8152f10308d6b93878f86fa22e0e69b777c07226a00b783a1b3a85bf4f666d8d2b03d70d7a8f89afa0779f39bb2739d3744471f3e4877a1ccff671218023dc154cd8d89b938e58016b0dd42d35e174840a7c01898b494c5a86da3e2f4d6ca7d1547b06a11774785bf7296d78c9a45eb45cbee06533e1eecd02d6a5dab950991278d511ffd680dcc720101bcd05977d0e1ea2ae14d3e0022286f8406029da6d873b01f94a21ab0cf5bdc28a9ae85534e0a3f258d72095c25473ca22401772c673f412517193fbba985636f1fc3766fe9a77fc30a58b4b94941abe34c02a9cfaadff9d993c8d32d2ff4cd88fe6546befa8260cf6d5aa07159b8e4751d89fd78a20d2757bf21cf57767219f3b1bb6c612c03b1fbb264a1a37f65d0e460b5d2d1d92cf30e35b33cc1f3019a0b2994888c557f31cbc0086113692683974b03241c61d3417b74fc0be492651e08bc35b0cce608600c5b024265ff27649978fd0a265a46255618ef46c540d08d6ac1f9b1988b4f1a8b71fd6fbe2c31af4cbc9ea8fc2500fea86374fc2cd2694422c2c164c0839150fb529ec59e449ccfab51881f2a94518f286a5b73a54e97f58344165d4cd8d84c764064cac2fbb2c4a2dc361f7a4036461daa8304b3412240e44ced3bb07706fdfd2ca14b2bf54d88ff3cb0551c7fcaffa7c26d6bd0708ab90fcbdee5f5a4719defa7c81bb8c8e47eab538ea6d5f34b88ba83821768e1a4981de6cd00fafdd07d304d1d46cc719969d5aa637e0f4e66dcb6bf1931ff85cf002a7dec7120f780d6ea6757281f859d2c5c5b0d99ca520be1194e0646b6ba33edc7e75f040357cef2a29b33effbfbb63604fceca6d864fb37703cd86de5ed7ebe5ebc69e3a5add65d47c01996da66f478e96fb8609a7b4b8c8b632ae5fab833aba2d86f12462379581de6abec9df9c1c0564ac50f3615511eeaa48b8445a4f57a027eaf9f576b3c11a7c11ee0394dac4be8881ae0da621098b697b7ac50726e59ac3f767bfab01c145c70e891f1936e9cae9fe1e6cce804680dea94bf179e064f45cf9638260e59f5e0e5007d9e08e01ebf125975ce7964813281c278db14951d1859d8e1f4d02261163c9cde4cb01e56cc2f6de9683a4ef594498cc8f041e4f889a920d367b6be39d71f63c28b3131b24c2d27bc1c00e15a7aa33a74581443162ac191bc844cb2db5e73fe87a06faeb90b51e4d7b6007f16b1c45a9b667e15a9f7b0694dc2ec26f6f9e4ee8bed4bce532f149f4bccc290e4830afceb99dbf10fa27de844c619bd074c93c44e5f113bcaf6a60c8b841964e4cd09f2907ef307ca7c9c0b91e53e755d69ecf6e1737d199ef30f88d5e9ad90923a9717d42119db170dd239b36c198c9c0aa3f775d88221bb064ae862a10bbec477d16d05645ad7915f6ff4a27a6e48ffbaacb022f3a45da190cdeeb0cc778d82504c68a5bc25fe7352d57fa65ea6b5ead1975c95748dd947f94e6953222b26401b9931501f7f010293a95b2e507f383c123594a8be3ddad42539fe3d5332b6560c347b444305ea318e2b131d509daed10232bef33d4c82fe69a96877afdfc57d6ed08b57694507bc9fc852dfc5868dbf53cf1b271cffd7fb546b2e788c39b8eda60316ee11bc5be8d11b85c0434da97b4bda231c6127085d5aa017a296c1fad65542da8af892fef3b255aa0fe3431c178000f9ee9c25390cc75942d3f6e065f58a425adcdef23b685b6cf32e73cffae852542de23b2592b476c632d42eb79607ff2599f22e0c3dd493755d2e861a53dcbb23be0aff362b3ddc246f2ab7cb7d23a4463105d7f92e6020405d362c089925536f2ca1e36871d6fb7dc64a186f3f6c728943ad07e2e785876fca64134e4f82b0f42b32e37e0baf927590281664e74626a6e4ac36b47d10a3bb62143bbd28974b0ca2094d2314a953d790e186b52ed162d4bb9a07d2599b58428b5d47d230dbba0baed817879bc3dc0da1cb1a147c11f8e0880b78f1e85194754e962f4a739ffd19d5921f436ea81608c7a1d12498242e865e8b20b43d231efc5ca", 0x2000, &(0x7f0000001a80)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, &(0x7f0000000400)={0x20010, 0x0, 0x0, {'+[$&/$*\x00'}}, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) 05:17:28 executing program 3: fcntl$dupfd(0xffffffffffffffff, 0x0, 0xffffffffffffffff) recvmsg$unix(0xffffffffffffffff, 0x0, 0x0) r0 = perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x41c1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) chdir(&(0x7f0000000040)='./file0\x00') ioctl$BTRFS_IOC_GET_SUBVOL_INFO(0xffffffffffffffff, 0x81f8943c, &(0x7f000005a700)) r1 = perf_event_open$cgroup(0x0, 0xffffffffffffffff, 0x6, 0xffffffffffffffff, 0x4) ioctl$BTRFS_IOC_GET_SUBVOL_INFO(0xffffffffffffffff, 0x81f8943c, &(0x7f000005a700)={0x0}) ioctl$BTRFS_IOC_GET_SUBVOL_ROOTREF(r1, 0xd000943d, 0x0) r3 = openat$tun(0xffffffffffffff9c, &(0x7f0000000000), 0x101000, 0x0) ioctl$BTRFS_IOC_GET_SUBVOL_INFO(r0, 0x81f8943c, &(0x7f0000000080)={0x0, ""/256, 0x0, 0x0}) ioctl$BTRFS_IOC_INO_LOOKUP_USER(r3, 0xd000943e, &(0x7f0000000280)={r4, r2, "b9e3790f8db440db9bd47c4afb1fdc615f3b9f53ae96ba22f9ef75bb830c95c5fdb5f9a37749f621b04054535884d13e9a1c00fe1ce6ce976794c91cca0c6c6d3075a99df78c5d3989e3badd072e453b788320574e474b1e56b0c47750ce3a5e782e66b93742d9820b2a8ef8c0177da03d49f35c0df94f70df7308420b311e9043e5a339ef5d4d1d91a14392966a4c20023bd65ab611b1e7c057daa0139854226af85e27e281352dc9c6baaca8f2f7085a459ebd9a92dd56ab594f6f2dd634eb54f82adea82887a2763f8ad57048b0354c63a379a4da7de271e7aed988d131f603cfb38bacb03228dc139906cca45e5d03993e3cca5e2ad0e55944e46b464229", "c79576b1f9e819be6de810792a22c30a173c681c13cb740c4b5bfbea82a5c627a5aef1495b66f9656220a3894ad7dc7bdbee2a69e8c30ebe8a1145c46c246029e1f606d9efc4bb6878f5acfd12fa8117236cf22e15486e8150aaaff4997e98373e27fae5898529114b70d78c9af60893c5102945659ca20b44f6249a057cf248e0e3181e92d7bec2b971b1967f3d0773f593b12be71cc7b3f2206fbbb9b63761c3dd711c903f0e96ba990698587a8dba5a08cb939c2125f477d385e0d956edd5f32dd539be628382847859fa538d878caa13256dd061ef444fbde6a1a59c5e74a7855ee5d5bf9a96319d3b9556bf1c0dceb49a850853011a08dc63d25ace9714a2247fe2ac6f62139a06eb3456e50876ff2dfa421092851e5eb3a64a3cf3515b4ee80070567129c15822200b62d034b9ca256f40ad9791c0fa627254537a20367972480415a6302f3cb54f71edf2ea92c40f68532fda4dad93292b50b7f57391a4d7adcecae9c5b97c70871153d51eebe6d5e11dde78fbe49458059d8a4ff0ac0b0f074af5a5f0f663c8c76334227cf064c7b2af8527a0db8cc6de1fc6f5e6a46a82f0ebb5cbd7a5bb2165aa333dd78eaf0b288f72410386e689d4651086e147f29ce24e9fc6b01eb48e50261d23494ae2ec7c4519326ac58db596ea3e3830c07b076043ff72a582dab90a06a3e073b92bb93646a52d993baac9f15e004e1d43ef50e9c74fcf0daec2fbd46b2c9f6c55ae3401d58e05bed141713bd7884f0fe71f28b49db8501d5b8ea663db969f96ca002865e3e13e1f03492954160e3283c0667b57971dc030988c9ec1d057ecb95c01d79d18e96eeb159b83f878e81fceb2283ac0623b4899bb96a3a355727a008bcd0df4c0993ef61014785a09b61afcc39ad71e3d83d8dd5d0438e14f7466cbcb9a3578ef0d03647b07a98d3387954b5ee76ba1a174418f19d139c4f019480c09115db10533244c274f6b15fe28cb7415b6aaf0b1159b524ff7be156e5c191aa7571be247ea42d1f414d92956a20f6b2a2efb0b0e1cd8f424373f4c162845ab26542d33485fc72697a24975c4bddb4236969cd5c785b4c354d4b16149d98d09784cbbe386e875c3858148dcadc119756082836ec0381188424a9b6c8e6410dbb9fb459585fea8946c1875480978f5143d505e0d3ba37cd550a085beaad62b3f5174000060eb1fda3975ef701c9eef005b8080ba4a884b82851b87b74f5ef096cddf227cd1f5c166f76e3cede048c3d64e74ce7e4b31c2ff4e323583bddaead3c6e90917cbd41598d8c0778c34ca949d453de2398d963d33a030571a7a2672280f6e4fbed07cc2ee2342fc897be68ddab1e1be2b7beff8ddc997d67c68d347b75aea98c7cf2a1080e7a7fc5b9fbd4cc525b65f66d8eddb3835bddb3d5e781f00d0f1e1ab9036bcb381eb155e130b0eea16a94518e814376ce1b807f4a801946af141be2c4708883baadda91672d0bbd4fc152f09834c98937814d26ef9d10a64574dfec987f2a3d716f8e085aac695d156c15c8895f8a42a6f26237cece9ebae40f786a4b3693db77f1a92e3bff9f36e2fa15dc74f2ff8cd9d34495b9cbc0b44af9082564950461dc3f6565e409e6ed8b5f594c03521121cf59ed118837fdf8ed777d9b1608951c64978874b92ef5daa394241a1358b05ae25768247e42184f19e1ddbfb22fc8152ce2429cf039af42550492eb2f919157d84c6e652fcf6e618a8bfd67fc4b9e509f141f2e03382d00a513208d54ba7086e851f894cd00689175f5b2e4f73db515640de4b0fc4f4c47ee73b93831fd1c6d584bbb005785b1718fb745a4b4c0c615ebc4ccd061d7476aa209c327042e35bd83268f317728beb622c17f777f4c51e8da7513d2811093c349253580ce560e7c80e5544f6aeef72bc2683f5a5e85c1e3bccb99be739c72c2245ddcc4e2a682c918c307cdcbc4c026cbbea85e3b0c4f27e4fe511f71cb6316bc633ff428e5ad889675e62e5c3507928d3fa8b1abfddb67e356be7da9179941cde35851554dc5ea267ce373122bd2faf1e3942a18c54653e2315e79ee6d322df721fd725836d7e066e55dc782ef430c20473c6ffa7ba800debc1b3c69ac0cd358c763d21b187b9343b26c4afba1e5697f45a49d4aa6040e02efdacbe1665a3ce554294bbe5b10ff28797f9c636371cd3ec37f963ffe2c0e91881452cec0536c9f9ba9fd53b44ea2af692c936da642bd094b864029a526442802fc492d5bf5010198c7ecf64d0fd544b838f9ca1310a0c2674fee843a11369b423b45802bcda89656b9bdeb91fc9fff3d4ad43e8ce321d6404091456b2a4d76e3547eeac7821fe81eaf4083049586a9222540ac8271b89b9c5fc87353131ee8148e40dac5822d0ea2f832012630825a458e7d3c47d28d41365da397e9194debcf9b2f62a162c5e517c0092d0852203736c70845af118d270f4752075ca8b42fdc4b41c179ccce5b89933fb21b9d776acbdd937467a4ea4ac66289dab024e02acc372569f18c88fd935fc7f60af0f6557b14590e09a5742eb303db7b76603dd16b167fc602a5c6d1d1ae9f37d145f44affed34122d21ede88d03a648f214ddb6be973fcb9ab6f7d029d8dafa9a2c0ea62097b95985ed6b06c47dbf1abb6263e329792549065aff148b9f71eba0977982464292cb419d4d6fdbfb7e8eb1b7e854cc1dbcbb75e7952ba96744bf7b18bd63f614cb97a98da4e167961e8ce4fd7ffbcd04a6614045caedc11d2e2e71dfa3f44c63f92fc1e144853dfd46b7d309ed5df403f219af19f6db1e0b304a1ab23210e39d56f422d82e748d660b057c30372e984648d3b8c5dde056f37047b4d53f2a160aa776d90c49fe043b3f3d9d7380ce193986bb1db962dda327c7d790aa4b5d1e3f49413cec8e7c81cd688d3c6ee327b3e4f2c63027ac961c355c124366d7133f32995f190ed61e1e41a91aefd224b0663c56e01f007ab54c5f1ebec4855890230992e1a0f4263d84c713710ea83efe80ec892fa3c2c2bf20003c1a2baa9aed52c5ec88bad399b29421df6007af28f1a69901531eae2ce909d94f22cd546751815f7b62fe32f0d0b1e980f9e5cf30b0504f42279cba9f4da9448c6b8cca322834c6ceb971e118322dafa1584fb86ae63f81f414fd6a879b4efbd8e8b472f92aa8c8328f0cd0e0372bbf409b746829256552882e7642c04d13cdf91f9af2e96943d8f2cb5561516a302f66d36ad3cd53a866d56cf8f60aece6464c556e2fddd64c8675de8d9afaa93b46bfa0e0ee861af83d91faa3f2c1964c9aea70ef6c9629febc3aa1e7bd4eabed7e3cb8cb0786a36e70f4132bd76a5fa14df3c4a8573ce08e09b0ce85094b4117c629ded3a4b024d75863847e39f1c98d4cbd2e71f50daa12d9ea82d527f185c30b7bb27a698c05f3c29bef3e81a57b612359a0b60bfa28eeeabb3e850c86b9ecb0223137ab0b25f8c12b1619e6132ab98cd42b25f47551580998d804f7b153bb586f47cdf0ad5ba16a0fd5146105a3c19f8b41efb93ab128d24d35b23ada5386cd7a9a90acc7c5385583b87691fc89ae707ecbb431cc2f4a30fa21ac1b2437d3225ade0d0afeb67dea4a4311104f12875e5dd8a30ed819c7a196a75e4d8b48ea3d0e2f5f5b7dc1da4e9024e8747618b46b90da6322ff79a84f21c4d2d2675f0c479056a1268b2e70379fe367b5ada59f5db5f19dfa21acae15f7dd1f65d57e9ae08b91383915462a14b4ce77f7d6ee68df9dca792f01ce541099a060fcb67386f5d9f98d652cb19f05902aba71be1dbb2f2dcf29418ccb389d21a4fe14afb3bd0a3e4982dabc505545caca3effb1d3090b6ee6c6904b3e2f8ba2dc1a402397f1dd0dd2c354f2f64dd1394caad7b6e153f7629af268edf0218df2baa8ae2399c5a10f92f118bae15a3a256bd3ef23e42cd5f047ef07fe5914b3c871fb6772ae733f6a649af4e22c7e8c5886ec3b58cd7c6f8de7a83f33237d3ca3cc3439427cc228b69d811de5079bbbb68411d5d8da44c315b2925876169a1cdd9cf5d8bba1d7f50715328c4854dc307d9807931f7b1d05673b599a8fcf077302e544c92fedd5062110c55b4dda038372f0d32a52bbb4d735e9b1161f61dc9fe3326972a1023528808eb8ff39f9fbf61b4d933282f30e7166b966138f1b7dc9b777d8092d9b8bf7d7e8c6bff4fb3c3ca04d8c68644101b0dee690bfcb3a5a06045fd38a30d9a922da429b76b51286930011060c09a0d4befb8fd7c10f05c028640e64ac5d89ecdfa9ed047e6ed1c2bd7d214c5e1984cd2f51b59eeb31a9cc0578aa686a9900945f1727f2fa3de71a4fd9d2680e922c3b476a905900463a3617646d8e9d8f1425eba75be8459ae48d7d11b82d39dd140c5d7aa656cbdf1dd9d8e168ceec396f97bf5db65f6a1dbe7c1dc5443ee2626a1246c0bb470ebb8295d66229b33bcae2ad77e3644648410db941b623f593eba74c22ded41f9d65157b9a2ad13e5e633ce8b2f695352ed7e9b06cb4cbb6df8b557dd5f2e3a1a878e2492dbaee200a819f4aaed817dfe131ff530dad1f3d85beccf941e975d2f85ca3013409cfb351e6ff318d42072fb605e55f1ed48c57aa68a9b946fd43719d3519332033710dbc7f9096beb878e4f4829e1b60432e8022ba18a90aaed33e8139a77ef4627b45ec01d69f0b68d4904b3b96ef86dfa7aa2a3d920c0335ddc84e286d72bd1be4128b9683f9492a3de55bf6941b6f540f45457ee31b888699b4c645bc628037ba5640d3a2c50bf06bbf01ad29480f44c547e2c0664588073cbe5db33272348fc0bba190d5a98cab5ba0392b2a0efe6d4e651bf947422b6f8b93897bce4a5d0dea5d4800addff2b05fe204a500c1222e3ca71738b7f00e7598edbb4572069e09aaa47271535a84eb357fea0d4522c6b5c2814f85ae94a1ea21a26fb0396265e2f1e86d6383c32a52bed120c260268424dcea061d9bd66777031d3f27d28532413dfef8bc9dc249d5a642bb87310f5e7dd6b390bf8e120d681e8c741ff067c2e82b27adce460080f37583238c75d41f41eed3aa3d13876df209946b8595acf3e6a321eaf3e6c4d645c1547d50aef082ce21e02c2c7b32f4d8f20ee451c6bc7f6dc8aba2cf6bc2c5758b1813a80879dfb174087fd5a0c216c18f46f0bb693eb0b9ad2fd0f354b55cbffa26ec44cd725c16f7cf4dcddc1d141d046bf6635141635bebdbf4301f22f97747c13e6e093b5c153b243a5c0d0b4a99072bc1128ee9a29afd18e076c0675db4d4f30b79c18fdbd2389d06ec93aa2b3032343b7c931b84e078fe4c22231678163079f37d697b2889e885c404bfb6a1fe724c46363e0a4155533b5d43065edd0cbc31f528e84f3a0e080d8a5e3a63c52d774ebbadd06eca3c9de135200a3"}) 05:17:28 executing program 3: r0 = getpid() sched_setscheduler(r0, 0x5, &(0x7f0000000380)) r1 = perf_event_open(&(0x7f00000003c0)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1ff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext, 0x0, 0x0, 0x13708679}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r2 = openat$kvm(0xffffffffffffff9c, &(0x7f0000000200), 0x0, 0x0) r3 = ioctl$KVM_CREATE_VM(r2, 0xae01, 0x0) ioctl$KVM_SET_USER_MEMORY_REGION(r3, 0x4020ae46, &(0x7f0000000400)={0x10200, 0x0, 0x0, 0x2000, &(0x7f0000000000/0x2000)=nil}) ioctl$KVM_CREATE_VCPU(r3, 0xae41, 0x2) r4 = perf_event_open(&(0x7f0000000080)={0x3, 0x80, 0x8, 0x1f, 0x4, 0x70, 0x0, 0xa85a, 0x4000, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x3, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1f, 0x2, @perf_bp={&(0x7f0000000340), 0x9}, 0x8004, 0x7fff, 0xff, 0x9, 0x200, 0xb55, 0x8, 0x0, 0x0, 0x0, 0x3}, 0x0, 0x10, r1, 0x0) r5 = ioctl$KVM_CREATE_VCPU(r3, 0xae41, 0x0) syz_kvm_setup_cpu$x86(r3, r4, &(0x7f0000005000/0x18000)=nil, &(0x7f00000002c0)=[@text32={0x20, &(0x7f0000000240)="660f515703f236dd3966baf80cb898fdf38eef66bafc0cb09eee672ef3900fc7bf67500000b9800000c00f3235000800000f30b9024d564b0f320f06c4c12e5d410f0f0138", 0x45}], 0x1, 0x8, &(0x7f0000000300)=[@dstype3={0x7, 0x7}, @cr0={0x0, 0xc0010000}], 0x2) syz_kvm_setup_cpu$x86(0xffffffffffffffff, r5, &(0x7f0000000000/0x18000)=nil, &(0x7f0000000040)=[@text64={0x40, &(0x7f0000000100)="c4c235aa1066ba2100b000ee440f070f3235002f0400d4d4910091b8010000000f01d9b90e020000b805000000ba00800000b9800000c00f3235010000000f30420f38c9ee420f928e00000000c48181c6080066baa000ecb0e3ee", 0x5b}], 0x1, 0x0, 0x0, 0x0) fcntl$setownex(0xffffffffffffffff, 0xf, &(0x7f0000000000)) open(0x0, 0x0, 0x0) r6 = socket(0x22, 0x2, 0x3) r7 = syz_open_dev$sg(&(0x7f0000000080), 0x0, 0x0) ioctl$SG_GET_PACK_ID(r7, 0x5382, 0xfffffffffffffffe) bind$isdn_base(r6, &(0x7f0000000140), 0x6) getsockopt$inet6_tcp_TCP_ZEROCOPY_RECEIVE(r6, 0x6, 0x23, &(0x7f0000000180)={&(0x7f0000001000/0x1000)=nil, 0x1000}, &(0x7f00000001c0)=0x10) ioctl$KVM_RUN(r5, 0xae80, 0x0) ioctl$KVM_NMI(r5, 0xae9a) 05:17:29 executing program 5: mkdirat(0xffffffffffffff9c, &(0x7f0000000000)='./file0\x00', 0x0) r0 = open(&(0x7f0000000180)='.\x00', 0x0, 0x0) mkdirat(r0, &(0x7f0000000200)='\x13\x13w\xc5\xfc5\xd4\x14T\xd5\xd4\x1d)\xad\x1a`)Y\x81F\xe6\xbe\x16nA\xad\r\xbd@T\x03<\x9f3\xbb\xda\x82$\xa2\xf3\xd7r\xe7cnH\xb3<\xbfp\x83r\xe8\xf1\xb9\x93>\xc5\x12wC\xbe\"\x06 \x9e\xf0-\xf9\xcb\xf2\xf6\xe8\x80\xd38/\x00', 0x0) ioctl$FS_IOC_SETFLAGS(r0, 0x40086602, &(0x7f00000001c0)=0x20000008) r1 = open(&(0x7f0000000100)='.\x00', 0x0, 0x0) r2 = open(&(0x7f0000000300)='.\x00', 0x0, 0x0) renameat2(r1, &(0x7f0000000140)='./file0\x00', r2, &(0x7f0000000280)='\x13\x13w\xc5\xfc5\xd4\x14T\xd5\xd4\x1d)\xad\x1a`)Y\x81F\xe6\xbe\x16nA\xad\r\xbd@T\x03<\x9f3\xbb\xda\x82$\xa2\xf3\xd7r\xe7cnH\xb3<\xbfp\x83r\xe8\xf1\xb9\x93>\xc5\x12wC\xbe\"\x06 \x9e\xf0-\xf9\xcb\xf2\xf6\xe8\x80\xd38/\x00', 0x2) ioctl$F2FS_IOC_MOVE_RANGE(r1, 0xc020f509, &(0x7f0000000040)={r1, 0x67e2, 0x200, 0xbb}) accept$unix(r0, &(0x7f0000000080), &(0x7f0000000440)=0x6e) ioctl$SNDRV_PCM_IOCTL_HW_PARAMS_OLD(r3, 0xc1004111, &(0x7f0000000340)={0xffff0001, [0x80, 0x5, 0x3], [{0x7fffffff, 0x5, 0x0, 0x0, 0x1}, {0x7ff, 0x4, 0x0, 0x1, 0x1}, {0x101, 0x2, 0x0, 0x0, 0x1}, {0x180, 0x10000, 0x0, 0x1, 0x1, 0x1}, {0x7, 0x3, 0x0, 0x1, 0x1, 0x1}, {0x4, 0xffffffff, 0x0, 0x0, 0x1, 0x1}, {0xff, 0x5, 0x1, 0x0, 0x1}, {0x0, 0x3d, 0x1, 0x0, 0x1}, {0x6, 0xfffffffd, 0x0, 0x1, 0x1, 0x1}, {0x0, 0x6, 0x0, 0x0, 0x1}, {0x9, 0x6, 0x0, 0x1, 0x0, 0x1}, {0x7fffffff, 0x6b48, 0x0, 0x0, 0x1}], 0x46}) [ 220.472917] audit: type=1800 audit(1632806249.272:19): pid=11714 uid=0 auid=4294967295 ses=4294967295 subj==unconfined op=collect_data cause=failed comm="syz-executor.0" name="cgroup.controllers" dev="loop0" ino=8 res=0 05:17:29 executing program 5: sendmsg$kcm(0xffffffffffffffff, &(0x7f0000000480)={&(0x7f0000000080)=@ll={0x11, 0x0, 0x0, 0x1, 0x3, 0x6, @local}, 0x80, 0x0}, 0x0) r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000440)='cpuacct.usage_percpu\x00', 0x26e1, 0x0) sendmsg$kcm(0xffffffffffffffff, 0x0, 0x0) perf_event_open(&(0x7f0000000240)={0x1, 0x80, 0x0, 0x0, 0x0, 0x8, 0x0, 0x1fd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}, 0x0, 0x0, 0x0, 0x0, 0x8}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) ioctl$PERF_EVENT_IOC_PERIOD(r0, 0xc0185879, &(0x7f0000000080)) sendmsg$kcm(0xffffffffffffffff, 0x0, 0x0) r1 = getpid() sched_setattr(r1, &(0x7f0000000240)={0x38, 0x2, 0x0, 0x0, 0x2}, 0x0) r2 = openat$vcs(0xffffffffffffff9c, &(0x7f0000000000), 0x20000, 0x0) recvmsg(r2, &(0x7f0000000400)={&(0x7f0000000100)=@tipc=@id, 0x80, &(0x7f00000014c0)=[{&(0x7f00000004c0)=""/4096, 0x1000}, {&(0x7f0000000180)=""/128, 0x80}, {&(0x7f00000002c0)=""/149, 0x95}, {&(0x7f0000000040)=""/35, 0x23}, {&(0x7f0000000380)=""/111, 0x6f}], 0x5, &(0x7f0000000200)=""/35, 0x23}, 0xcc2d000132fdc2aa) perf_event_open(0x0, r1, 0xfffffffffffffffe, r2, 0xa) ioctl$SIOCSIFHWADDR(0xffffffffffffffff, 0x8914, 0x0) openat$cgroup_ro(0xffffffffffffffff, 0x0, 0x0, 0x0) socket$kcm(0x29, 0x0, 0x0) ioctl$PERF_EVENT_IOC_PERIOD(r0, 0x40082404, &(0x7f0000001540)=0x3f) 05:17:29 executing program 0: perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x5, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) recvmmsg$unix(0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0) perf_event_open(&(0x7f0000000340)={0x3, 0x80, 0xff, 0xea, 0x5, 0x9, 0x0, 0x10001, 0x4f331, 0xc, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x0, 0x5, 0x1, @perf_bp={&(0x7f0000000300), 0xa}, 0x0, 0xffffffffffff0000, 0x5, 0x0, 0xfffffffffffffffe, 0x503f700, 0x9, 0x0, 0x2, 0x0, 0x45}, 0x0, 0x5, 0xffffffffffffffff, 0x5) prlimit64(0x0, 0xe, &(0x7f0000000040)={0x8, 0x8d}, 0x0) sched_setattr(0x0, &(0x7f0000000240)={0x38, 0x2, 0x0, 0x0, 0x2}, 0x0) perf_event_open(&(0x7f0000000140)={0x3, 0x80, 0x0, 0x1f, 0x1f, 0x1, 0x0, 0x1, 0x10000, 0x3, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x98c, 0x1, @perf_bp={&(0x7f0000000100), 0xc}, 0x220, 0x5000, 0xffffffff, 0x3, 0xfff, 0x5, 0x200, 0x0, 0x7, 0x0, 0x401}, 0x0, 0x1, 0xffffffffffffffff, 0x3) sched_setattr(0x0, &(0x7f0000000080)={0x38, 0x2, 0x0, 0x0, 0x3}, 0x0) syz_mount_image$msdos(&(0x7f00000002c0), &(0x7f00000003c0)='./file1\x00', 0xffffffff, 0x1, &(0x7f0000000080)=[{&(0x7f00000000c0)="0400050900000000666174000404090a020002740ef801", 0x17}], 0x0, &(0x7f00000004c0)=ANY=[]) chdir(&(0x7f0000000000)='./file1\x00') r0 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000980)='cgroup.controllers\x00', 0x275a, 0x0) r1 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, 0x0, 0x0) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000540)={&(0x7f0000000040)='devlink_health_report\x00'}, 0x10) ioctl$LOOP_CHANGE_FD(0xffffffffffffffff, 0x4c06, r1) r2 = signalfd(r1, &(0x7f0000000500)={[0x7]}, 0x8) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000540)={&(0x7f0000000040)='devlink_health_report\x00', r2}, 0x10) perf_event_open(&(0x7f0000000540)={0x0, 0x80, 0x4, 0x8, 0x22, 0x81, 0x0, 0x2, 0x80, 0x4, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x0, 0x1, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x0, 0x2, 0x4, @perf_bp={&(0x7f0000000500)}, 0x2090, 0x108, 0x1, 0x8, 0x400, 0x1, 0x7ff, 0x0, 0x100, 0x0, 0xbd1}, 0x0, 0xa, r2, 0x5) r3 = openat$vcs(0xffffff9c, &(0x7f0000000280), 0x10000, 0x0) bind$vsock_stream(r3, &(0x7f00000002c0)={0x28, 0x0, 0x0, @hyper}, 0x10) bpf$MAP_UPDATE_ELEM(0x2, &(0x7f0000000200)={r0, &(0x7f0000000400)="22f64a2894abef3eb5d27928189704e1f83cf31812c64cee05ddfd76e568d7c91b16ff998eb92cf0efba470fe03011d144a229db5812f3cdca882eff4230a6437e7314d01d6b310457e55805ebeaf7a3473c0e5421e74f5c226c18cd8a304015cd37d787790585771fc5d82d34c2e452820ddd309aa1698f4ea3e5cd39b248654503f145c98679c67a2f734dcd3e657bec1df529609618f151c43ce02b8f123b378531dbf2d20b6b87f2ef93da15975c62dfc5663b1038932cfd69683f5a6bf7180802c37f1c692c96104f872fc3e8919bd397728ca5e6affa27ff1df00127448bd4eddcfa187d07139f1f9f3ebbd24bc6d3d9161477a1e1d68d7f032d", &(0x7f00000001c0)=@udp=r3}, 0x20) write$binfmt_script(r0, &(0x7f0000000200)=ANY=[], 0x208e24b) 05:17:29 executing program 4: r0 = socket$nl_route(0x10, 0x3, 0x0) sendmsg$nl_route_sched(r0, &(0x7f0000002ac0)={0x0, 0x0, &(0x7f0000001780)={&(0x7f0000002800)=@deltaction={0x14, 0x31, 0x1, 0x4}, 0x14}}, 0xb2391004ce77b05d) 05:17:29 executing program 5: perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x24ac, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x4, @perf_config_ext={0x200}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = socket$inet6(0xa, 0x400000000001, 0x0) bind$inet6(r0, &(0x7f0000fa0fe4)={0xa, 0x4e24, 0x3, @initdev={0xfe, 0x88, '\x00', 0x1, 0x0}}, 0x1c) sendto$inet6(r0, 0x0, 0x0, 0x20000008, &(0x7f0000000280)={0xa, 0x4e20, 0x0, @loopback}, 0x1c) sendmsg$NL80211_CMD_SET_QOS_MAP(0xffffffffffffffff, 0x0, 0x0) sendmsg$NL80211_CMD_AUTHENTICATE(0xffffffffffffffff, 0x0, 0x0) r1 = open(&(0x7f0000000100)='./bus\x00', 0x1e3942, 0x30) setsockopt$SO_TIMESTAMPING(r0, 0x1, 0x25, &(0x7f0000000300)=0x80000001fe, 0x4) setsockopt$netlink_NETLINK_CAP_ACK(0xffffffffffffffff, 0x10e, 0xa, 0x0, 0x0) r2 = add_key(&(0x7f0000000080)='.dead\x00', &(0x7f00000000c0)={'syz', 0x0}, &(0x7f0000000200)="8c06d42277061ab12625", 0xa, 0x0) r3 = add_key(0x0, &(0x7f0000000040)={'syz', 0x2}, &(0x7f0000000540), 0x0, 0xfffffffffffffffa) keyctl$search(0xa, r3, 0x0, 0x0, r2) sendmsg$NL80211_CMD_DEL_PMKSA(0xffffffffffffffff, &(0x7f00000001c0)={0x0, 0x0, 0x0}, 0x0) stat(0x0, 0x0) setresuid(0xee01, 0x0, 0x0) syz_open_dev$ptys(0xc, 0x3, 0x1) sendmmsg$unix(0xffffffffffffffff, 0x0, 0x0, 0x0) ftruncate(r1, 0x7ff) sendfile(r0, r1, 0x0, 0x8400ffffffff) 05:17:30 executing program 4: r0 = openat$uinput(0xffffffffffffff9c, &(0x7f0000000040), 0x2, 0x0) write$uinput_user_dev(r0, &(0x7f0000000400)={'syz1\x00'}, 0x45c) ioctl$UI_SET_EVBIT(r0, 0x40045564, 0x2) ioctl$UI_SET_RELBIT(r0, 0x40045566, 0x8) ioctl$UI_SET_EVBIT(r0, 0x40045564, 0x1) ioctl$UI_DEV_SETUP(r0, 0x405c5503, &(0x7f0000000140)={{0x8, 0x0, 0x4, 0x8}, 'syz0\x00', 0x2c}) r1 = openat$cgroup_root(0xffffffffffffff9c, &(0x7f0000000000), 0x200002, 0x0) r2 = openat$cgroup_ro(r1, &(0x7f0000000000)='cgroup.controllers\x00', 0x275a, 0x0) preadv(r2, &(0x7f00000012c0), 0x1000000000000147, 0x0, 0x0) ioctl$UI_SET_ABSBIT(r2, 0x40045567, 0x3) ioctl$UI_DEV_SETUP(r0, 0x405c5503, &(0x7f0000000080)={{0xfffc, 0x9, 0x7ff, 0x3}, 'syz0\x00', 0x4f}) ioctl$UI_DEV_SETUP(r0, 0x5501, 0x0) syz_open_dev$mouse(&(0x7f0000000100), 0x1, 0x0) ioctl$UI_DEV_DESTROY(r0, 0x5502) [ 221.342756] nf_conntrack: default automatic helper assignment has been turned off for security reasons and CT-based firewall rule not found. Use the iptables CT target to attach helpers instead. [ 221.482728] input: syz0 as /devices/virtual/input/input5 [ 221.581338] input: syz0 as /devices/virtual/input/input6 05:17:30 executing program 5: r0 = socket$inet(0x2, 0x4000000000000001, 0x0) setsockopt$inet_tcp_int(r0, 0x6, 0x80000000000002, &(0x7f00000000c0)=0x2000000000000074, 0x25d) bind$inet(r0, &(0x7f0000000280)={0x2, 0x4e23, @multicast1}, 0x10) sendto$inet(r0, 0x0, 0x0, 0x200007fd, &(0x7f0000e68000)={0x2, 0x4e23, @local}, 0x10) write$binfmt_elf64(r0, &(0x7f0000000b00)=ANY=[], 0x478) r1 = socket$nl_route(0x10, 0x3, 0x0) setsockopt$inet_tcp_TCP_CONGESTION(r0, 0x6, 0xd, &(0x7f0000000040)='scalable\x00', 0x9) ioctl$sock_SIOCGIFINDEX(r1, 0x8933, &(0x7f00000000c0)={'ipvlan0\x00', 0x0}) getsockopt$bt_hci(r1, 0x0, 0x2, &(0x7f0000000180)=""/124, &(0x7f0000000100)=0x7c) sendmsg$nl_route(r1, &(0x7f0000000080)={0x0, 0x0, &(0x7f0000000140)={&(0x7f0000000000)=@newlink={0x3c, 0x10, 0x401, 0x0, 0x0, {0x0, 0x0, 0x0, 0x0, 0x3}, [@IFLA_LINKINFO={0x14, 0x12, 0x0, 0x1, @ipvlan={{0xb}, {0x4}}}, @IFLA_LINK={0x8, 0x5, r2}]}, 0x3c}}, 0x0) sendto$inet(r0, &(0x7f0000000000)="ac", 0x1, 0x0, 0x0, 0x0) 05:17:30 executing program 3: r0 = gettid() perf_event_open(&(0x7f0000000500)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x8, 0x13004, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xfffffffffffffffd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}, 0x10}, r0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r1 = openat$rtc(0xffffffffffffff9c, &(0x7f0000000140), 0x0, 0x0) ioctl$RTC_UIE_ON(r1, 0x7003) ioctl$RTC_WKALM_SET(r1, 0x4028700f, &(0x7f0000000080)={0x1, 0x0, {0x0, 0x0, 0xa, 0x19, 0x0, 0x90e, 0x0, 0xea, 0x1}}) r2 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, 0x0, 0x0) r3 = signalfd(r2, &(0x7f0000000500)={[0x7]}, 0x8) bpf$BPF_RAW_TRACEPOINT_OPEN(0x11, &(0x7f0000000540)={&(0x7f0000000040)='devlink_health_report\x00', r3}, 0x10) ioctl$RTC_UIE_OFF(r3, 0x7004) ioctl$RTC_SET_TIME(0xffffffffffffffff, 0x4024700a, &(0x7f0000000000)={0x17, 0x0, 0x11, 0x0, 0x0, 0x4, 0x10006}) ioctl$RTC_UIE_OFF(0xffffffffffffffff, 0x7004) [ 221.678206] ------------[ cut here ]------------ [ 221.684298] WARNING: CPU: 0 PID: 11796 at drivers/net/ipvlan/ipvlan_main.c:65 ipvlan_unregister_nf_hook.cold+0x11/0x18 [ 221.695142] Kernel panic - not syncing: panic_on_warn set ... [ 221.695142] [ 221.702514] CPU: 0 PID: 11796 Comm: syz-executor.5 Not tainted 4.19.208-syzkaller #0 [ 221.710423] Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 [ 221.719785] Call Trace: [ 221.722399] dump_stack+0x1fc/0x2ef [ 221.726042] panic+0x26a/0x50e [ 221.729251] ? __warn_printk+0xf3/0xf3 [ 221.733156] ? ipvlan_unregister_nf_hook.cold+0x11/0x18 [ 221.738542] ? __probe_kernel_read+0x130/0x1b0 [ 221.743132] ? __warn.cold+0x5/0x5a [ 221.746775] ? ipvlan_unregister_nf_hook.cold+0x11/0x18 [ 221.752146] __warn.cold+0x20/0x5a [ 221.755692] ? io_schedule_timeout+0x140/0x140 [ 221.760283] ? ipvlan_unregister_nf_hook.cold+0x11/0x18 [ 221.765656] report_bug+0x262/0x2b0 [ 221.769292] do_error_trap+0x1d7/0x310 [ 221.773191] ? math_error+0x310/0x310 [ 221.777006] ? __irq_work_queue_local+0x101/0x160 [ 221.781860] ? irq_work_queue+0x29/0x80 [ 221.785841] ? error_entry+0x72/0xd0 [ 221.789558] ? trace_hardirqs_off_caller+0x6e/0x210 [ 221.794583] ? trace_hardirqs_off_thunk+0x1a/0x1c [ 221.799435] invalid_op+0x14/0x20 [ 221.802902] RIP: 0010:ipvlan_unregister_nf_hook.cold+0x11/0x18 [ 221.808877] Code: c6 08 0f b7 f6 e8 85 d1 f2 ff e9 35 d7 42 fc 4c 89 e7 e8 1d 95 97 f9 eb d6 e8 46 bb 61 f9 48 c7 c7 00 8e da 88 e8 65 d1 f2 ff <0f> 0b e9 96 02 43 fc e8 2e bb 61 f9 48 c7 c7 c0 ab da 88 e8 4d d1 05:17:30 executing program 0: perf_event_open(&(0x7f0000000080)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x317d, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r0 = perf_event_open(&(0x7f000025c000)={0x400000001, 0x80, 0x2005, 0x0, 0x0, 0x0, 0x0, 0x1, 0x8c1b1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xbfffffffffffffff, 0xffffffffffffffff, 0x0) r1 = getpid() sched_setattr(r1, &(0x7f0000000240)={0x38, 0x2, 0x0, 0x0, 0x2}, 0x0) perf_event_open(&(0x7f0000000140)={0x5, 0x80, 0xa0, 0x9, 0x3, 0x0, 0x0, 0x5, 0x2500, 0x1a, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x0, 0x0, 0x1, 0x0, 0x1, 0x0, 0x0, 0x0, 0x1, 0x1, 0x1, 0x1, 0x0, 0x0, 0x0, 0x7ff, 0x1, @perf_bp={&(0x7f0000000000), 0x5}, 0x4040, 0x401, 0x7fff, 0x6, 0xc5a, 0x8, 0x6, 0x0, 0xffffffff, 0x0, 0x4}, r1, 0x1, r0, 0xb) perf_event_open(&(0x7f000001d000)={0x1, 0x80, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_bp={0x0}}, 0x0, 0xffffffffffffffff, 0xffffffffffffffff, 0x0) r2 = gettid() ptrace$setopts(0xffffffffffffffff, r2, 0x0, 0x0) tkill(r2, 0x12) perf_event_open(0x0, r2, 0x8, 0xffffffffffffffff, 0x0) getpid() bind$inet(0xffffffffffffffff, &(0x7f0000000040)={0x2, 0x4e23, @multicast1}, 0x10) sendto$inet(0xffffffffffffffff, 0x0, 0x10b, 0x200007fe, &(0x7f0000000100)={0x2, 0x10004e23, @dev={0xac, 0x14, 0x14, 0xa}}, 0x10) sendto$inet(0xffffffffffffffff, &(0x7f0000d7cfcb), 0xffffffffffffffef, 0x58f7, 0x0, 0x53) [ 221.827782] RSP: 0018:ffff888038ea6ff8 EFLAGS: 00010286 [ 221.833156] RAX: 0000000000000024 RBX: 0000000000000000 RCX: 0000000000000000 [ 221.840436] RDX: 000000000001b283 RSI: ffffffff814dfe11 RDI: ffffed10071d4df1 [ 221.847718] RBP: ffff88809d104180 R08: 0000000000000024 R09: 0000000000000000 [ 221.854996] R10: 0000000000000005 R11: 0000000000000000 R12: ffff8880a89f5980 [ 221.862275] R13: ffff8880a1990dc0 R14: 0000000000000000 R15: 0000000000000001 [ 221.869569] ? vprintk_func+0x81/0x180 [ 221.873470] ? ipvlan_unregister_nf_hook.cold+0x11/0x18 [ 221.878849] ipvlan_set_port_mode+0x53a/0x650 [ 221.883378] ipvlan_link_new+0x68d/0xc40 [ 221.887457] ? ipvlan_add_addr+0x320/0x320 [ 221.891703] rtnl_newlink+0x1030/0x15c0 [ 221.895861] ? rtnl_getlink+0x620/0x620 [ 221.899861] ? loopback_xmit+0x322/0x710 [ 221.903933] ? mark_held_locks+0xf0/0xf0 [ 221.908012] ? unwind_next_frame+0xeee/0x1400 [ 221.912524] ? __save_stack_trace+0x72/0x190 [ 221.916959] ? deref_stack_reg+0x134/0x1d0 [ 221.921197] ? get_reg+0x176/0x1f0 [ 221.924754] ? __read_once_size_nocheck.constprop.0+0x10/0x10 [ 221.930647] ? deref_stack_reg+0x1d0/0x1d0 [ 221.934898] ? is_bpf_text_address+0xd5/0x1b0 [ 221.939418] ? lock_downgrade+0x720/0x720 [ 221.943572] ? lock_acquire+0x170/0x3c0 [ 221.948027] ? __bpf_address_lookup+0x330/0x330 [ 221.952716] ? check_preemption_disabled+0x41/0x280 [ 221.957894] ? is_bpf_text_address+0xfc/0x1b0 [ 221.962403] ? kernel_text_address+0xbd/0xf0 [ 221.966823] ? __kernel_text_address+0x9/0x30 [ 221.971346] ? unwind_get_return_address+0x51/0x90 [ 221.976390] ? entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 221.981761] ? __save_stack_trace+0xaf/0x190 [ 221.986193] ? __lock_acquire+0x6de/0x3ff0 [ 221.990447] ? __kasan_slab_free+0x186/0x1f0 [ 221.994868] ? kmem_cache_free+0x7f/0x260 [ 221.999032] ? kfree_skbmem+0xc1/0x140 [ 222.002930] ? consume_skb+0x120/0x3d0 [ 222.006825] ? mark_held_locks+0xf0/0xf0 [ 222.010888] ? netlink_deliver_tap+0x8fb/0xb00 [ 222.015472] ? netlink_unicast+0x545/0x690 [ 222.019715] ? netlink_sendmsg+0x6bb/0xc40 [ 222.023959] ? sock_sendmsg+0xc3/0x120 [ 222.027847] ? ___sys_sendmsg+0x7bb/0x8e0 [ 222.031998] ? __x64_sys_sendmsg+0x132/0x220 [ 222.036407] ? do_syscall_64+0xf9/0x620 [ 222.040384] ? entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 222.045783] ? mutex_trylock+0x1a0/0x1a0 [ 222.049855] ? check_preemption_disabled+0x41/0x280 [ 222.054882] ? rtnetlink_rcv_msg+0x3a0/0xb80 [ 222.059359] ? rtnl_getlink+0x620/0x620 [ 222.063341] rtnetlink_rcv_msg+0x453/0xb80 [ 222.067582] ? rtnl_calcit.isra.0+0x430/0x430 [ 222.072085] ? memcpy+0x35/0x50 [ 222.075379] ? netdev_pick_tx+0x2f0/0x2f0 [ 222.079964] ? __copy_skb_header+0x414/0x500 [ 222.084382] ? kfree_skbmem+0x140/0x140 [ 222.088386] netlink_rcv_skb+0x160/0x440 [ 222.092543] ? rtnl_calcit.isra.0+0x430/0x430 [ 222.097048] ? netlink_ack+0xae0/0xae0 [ 222.100955] netlink_unicast+0x4d5/0x690 [ 222.105023] ? netlink_sendskb+0x110/0x110 [ 222.109305] ? _copy_from_iter_full+0x229/0x7c0 [ 222.113984] ? __phys_addr_symbol+0x2c/0x70 [ 222.118311] ? __check_object_size+0x17b/0x3e0 [ 222.122908] netlink_sendmsg+0x6bb/0xc40 [ 222.127121] ? aa_af_perm+0x230/0x230 [ 222.130936] ? nlmsg_notify+0x1f0/0x1f0 [ 222.134915] ? kernel_recvmsg+0x220/0x220 [ 222.139088] ? nlmsg_notify+0x1f0/0x1f0 [ 222.143088] sock_sendmsg+0xc3/0x120 [ 222.146903] ___sys_sendmsg+0x7bb/0x8e0 [ 222.150890] ? copy_msghdr_from_user+0x440/0x440 [ 222.155650] ? __fget+0x32f/0x510 [ 222.159114] ? lock_downgrade+0x720/0x720 [ 222.163275] ? check_preemption_disabled+0x41/0x280 [ 222.168306] ? check_preemption_disabled+0x41/0x280 [ 222.173340] ? __fget+0x356/0x510 [ 222.176805] ? do_dup2+0x450/0x450 [ 222.180371] ? aa_af_perm+0x230/0x230 [ 222.184180] ? __fdget+0x1d0/0x230 [ 222.187737] __x64_sys_sendmsg+0x132/0x220 [ 222.191986] ? __sys_sendmsg+0x1b0/0x1b0 [ 222.196058] ? __se_sys_futex+0x298/0x3b0 [ 222.200238] ? entry_SYSCALL_64_after_hwframe+0x3e/0xbe [ 222.205625] ? trace_hardirqs_off_caller+0x6e/0x210 [ 222.210701] ? do_syscall_64+0x21/0x620 [ 222.214796] do_syscall_64+0xf9/0x620 [ 222.218613] entry_SYSCALL_64_after_hwframe+0x49/0xbe [ 222.223898] RIP: 0033:0x7f66fbb1b709 [ 222.227620] Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 [ 222.246712] RSP: 002b:00007f66f9092188 EFLAGS: 00000246 ORIG_RAX: 000000000000002e [ 222.254436] RAX: ffffffffffffffda RBX: 00007f66fbc1ff60 RCX: 00007f66fbb1b709 [ 222.261721] RDX: 0000000000000000 RSI: 0000000020000080 RDI: 0000000000000004 [ 222.268995] RBP: 00007f66fbb75cb4 R08: 0000000000000000 R09: 0000000000000000 [ 222.276273] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 [ 222.284941] R13: 00007ffdbc3ec6cf R14: 00007f66f9092300 R15: 0000000000022000 [ 222.292750] Kernel Offset: disabled [ 222.296391] Rebooting in 86400 seconds..