673698623639218485185540795980156081194109736152060929820922960783292673637701062729568847429324654451737574279418923352527519952023669792448891989393923352571567246547478503977758144536294738046688138676146068473878217341634002271154987139631483232133583316859691669282555919931862543901930729492277810495747736075879480457440241642564075283029681749885035923001947350007356738342631293326857354816047172593342928234939832071173551638849548677835341328318916636459883289337708231559568209264086047628827056361749468848369393505922751769644840552084783587744598605133315112530788385453485183392843591956919706613679645245495821592219069978745718187495879019856490498416892368320609344740037733053418669156921107211544186609057749366264887971273327609272762665952380265086124755278365195284623412320364668093723809320562465606415636903437010953170614113584850916864743637585289788033858951597075073892634914114731964482609821445129380197292278226972888143859437656894658827649874325063947271939286208631297050456277104988422938220554658277657167653167836229623834100330548386641689971947493809545274568322725541661630854061171876834005956358646796378332058316312919267354701765708912949918489959974058074533803722827837313093999818680424562343267128172209027654421758951693511988892735641823968404406447492966734886648216514660971538862137176871577909302469659571510816124321322351444212084234311252374253974916783229428452361433543722457044788426664390874148786850317891812322048247025938780745681841190846376838985792546386352807679457629430833558258379123947676331963722566379699444414568508125616337831623100762407269349243487071945373411758981248727723842234921817853329983184871216212132708743460299183330992970074831978112948046825223890657374644979494952233808592353664288779616492027225439919550522201440828456992771321035941188864205040643850111922282715873999971743193228807059410372411557947642376928902239855103523738193187355454667212630588768873720690913514454051669962122294189968214108260093147699631467439167921612671545694448117355793931988961944457703731952479309375945080937239934365142224623937904271665632181372333240571892836683302628118788369545748666940579958488453576904171219187803262614110959961147868154811957958982571856814333513586754248855771514522674117936116258140341019665532079733887339655274750320921749615951741522153883686784122617907081689796305781866577897126304351896815977122344918204504519812886602494618357257617757673936089433377333704715306337647199996824746804492289162863211685157173381371836436400212932899518859654171997764042663176923874777940593597956263856679645256974673057749292770856785829374685833966433034339788145548393455755470474502300360373511006571090042464475440798609437910967459411585846272933775756833807931963451171342540419723242529305780552597665681156377467351055833586235875380823272241185689340454004073762555848107765777368775650868899936512388636408311417534481352684475456655920518664703999343647438030856054233474176473642633309422532215774672492734494810371347008991576645898671288021141280637438956928146543658559942445327672841756942166952053746035507319620211887816454821439767275728947363404275256707956675102639510056919188755969417635464488585857954934561573143155332778480533250552128835236938844942842598641336919525721529055081637355819233920587265674558646454746087055296188789460776965956832926522988788650119021552478200955999687978778555365376744073628765096924326230756633651389791668820420266222199709362831544924853378872685323903597252714719675261901078291860889723238077590507976574827793242015139549111241608837118407497841129122281701606855689646442817096177350294319231891936123786056931338556711605850828235761397994261223295651639925368060409331816953467439584553451372957770298894848845422182023585811181629103610673881796070497003817466491243443885862330782350744016671312132587104421763360378520557564626038364691162112518602582331294166470973674655785313164380537818657721871718273491328760816664104846514139659937311266835275563423734500843668413979230781328092103988208049891723726979559332241483148421947096409779250698318498671378573610559247479308476287498277844018648064510747544100518414536340664217779017431357019586833127159574744049235626672847245428315459328165548279989038349097883403946139825045060471651129718227192677344355373456591683951704914225414470588763587590981602986474563873616192355484545084308652357598736949477222638708734952456773891926875711205305871249435479600192361200846710509693218965416479772014528795589313762660236533720733494250657774053293611775248485759484848698895477512004398578367178647270857267933940723796125341628919329905983331712105661481187567649839961851655098991036675258521298107506819432620601265928942936396566017866559600057427476426337265264939071299626803491896258205955519768272156310191992705149254342028120680439569424384984711283722433523367662388988146157786835928993468211163207328314152607746688428075238086786427787248624385205702710623314621311128862415364714783597434197990557437097293139583702386066899305497999076776818433807344818981141304483953889167187045045183823802987912473223119539266306281962127816835529877406926788113774717772235354771736946712506449483452323475768678094341533260322792728638789053303172707569754660382183154636185468536693845826323926308456764527190780601956955251378945438054113924126157138946521626373351016194426918028393263361614517483386531682727156526155008124886562265585091098156282971258201918507664492292021843957046045765713155429501604642481439118894164334770919856007162326112205599996161962885550709246202373074238171917275761354790433977363602144489332935731206474590027123744738488958469954074145218573375172100213559511212372769260530747794382972853506711173576172035710073278623284415769609444023876925172