d3.min.js 203 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167
  1. !
  2. function() {
  3. function n(n, t) {
  4. return t > n ? -1 : n > t ? 1 : n >= t ? 0 : 0 / 0
  5. }
  6. function t(n) {
  7. return null != n && !isNaN(n)
  8. }
  9. function r(n) {
  10. return {
  11. left: function(t, r, e, u) {
  12. for (arguments.length < 3 && (e = 0), arguments.length < 4 && (u = t.length); u > e;) {
  13. var i = e + u >>> 1;
  14. n(t[i], r) < 0 ? e = i + 1 : u = i
  15. }
  16. return e
  17. },
  18. right: function(t, r, e, u) {
  19. for (arguments.length < 3 && (e = 0), arguments.length < 4 && (u = t.length); u > e;) {
  20. var i = e + u >>> 1;
  21. n(t[i], r) > 0 ? u = i : e = i + 1
  22. }
  23. return e
  24. }
  25. }
  26. }
  27. function e(n) {
  28. return n.length
  29. }
  30. function u(n) {
  31. for (var t = 1; n * t % 1;) t *= 10;
  32. return t
  33. }
  34. function i(n, t) {
  35. try {
  36. for (var r in t) Object.defineProperty(n.prototype, r, {
  37. value: t[r],
  38. enumerable: !1
  39. })
  40. } catch (e) {
  41. n.prototype = t
  42. }
  43. }
  44. function o() {}
  45. function a(n) {
  46. return _a + n in this
  47. }
  48. function c(n) {
  49. return n = _a + n, n in this && delete this[n]
  50. }
  51. function l() {
  52. var n = [];
  53. return this.forEach(function(t) {
  54. n.push(t)
  55. }), n
  56. }
  57. function s() {
  58. var n = 0;
  59. for (var t in this) t.charCodeAt(0) === ba && ++n;
  60. return n
  61. }
  62. function f() {
  63. for (var n in this) if (n.charCodeAt(0) === ba) return !1;
  64. return !0
  65. }
  66. function h() {}
  67. function g(n, t, r) {
  68. return function() {
  69. var e = r.apply(t, arguments);
  70. return e === t ? n : e
  71. }
  72. }
  73. function p(n, t) {
  74. if (t in n) return t;
  75. t = t.charAt(0).toUpperCase() + t.substring(1);
  76. for (var r = 0, e = wa.length; e > r; ++r) {
  77. var u = wa[r] + t;
  78. if (u in n) return u
  79. }
  80. }
  81. function v() {}
  82. function d() {}
  83. function m(n) {
  84. function t() {
  85. for (var t, e = r, u = -1, i = e.length; ++u < i;)(t = e[u].on) && t.apply(this, arguments);
  86. return n
  87. }
  88. var r = [],
  89. e = new o;
  90. return t.on = function(t, u) {
  91. var i, o = e.get(t);
  92. return arguments.length < 2 ? o && o.on : (o && (o.on = null, r = r.slice(0, i = r.indexOf(o)).concat(r.slice(i + 1)), e.remove(t)), u && r.push(e.set(t, {
  93. on: u
  94. })), n)
  95. }, t
  96. }
  97. function y() {
  98. oa.event.preventDefault()
  99. }
  100. function x() {
  101. for (var n, t = oa.event; n = t.sourceEvent;) t = n;
  102. return t
  103. }
  104. function M(n) {
  105. for (var t = new d, r = 0, e = arguments.length; ++r < e;) t[arguments[r]] = m(t);
  106. return t.of = function(r, e) {
  107. return function(u) {
  108. try {
  109. var i = u.sourceEvent = oa.event;
  110. u.target = n, oa.event = u, t[u.type].apply(r, e)
  111. } finally {
  112. oa.event = i
  113. }
  114. }
  115. }, t
  116. }
  117. function _(n) {
  118. return ka(n, La), n
  119. }
  120. function b(n) {
  121. return "function" == typeof n ? n : function() {
  122. return Ea(n, this)
  123. }
  124. }
  125. function w(n) {
  126. return "function" == typeof n ? n : function() {
  127. return Na(n, this)
  128. }
  129. }
  130. function S(n, t) {
  131. function r() {
  132. this.removeAttribute(n)
  133. }
  134. function e() {
  135. this.removeAttributeNS(n.space, n.local)
  136. }
  137. function u() {
  138. this.setAttribute(n, t)
  139. }
  140. function i() {
  141. this.setAttributeNS(n.space, n.local, t)
  142. }
  143. function o() {
  144. var r = t.apply(this, arguments);
  145. null == r ? this.removeAttribute(n) : this.setAttribute(n, r)
  146. }
  147. function a() {
  148. var r = t.apply(this, arguments);
  149. null == r ? this.removeAttributeNS(n.space, n.local) : this.setAttributeNS(n.space, n.local, r)
  150. }
  151. return n = oa.ns.qualify(n), null == t ? n.local ? e : r : "function" == typeof t ? n.local ? a : o : n.local ? i : u
  152. }
  153. function k(n) {
  154. return n.trim().replace(/\s+/g, " ")
  155. }
  156. function E(n) {
  157. return new RegExp("(?:^|\\s+)" + oa.requote(n) + "(?:\\s+|$)", "g")
  158. }
  159. function N(n) {
  160. return n.trim().split(/^|\s+/)
  161. }
  162. function A(n, t) {
  163. function r() {
  164. for (var r = -1; ++r < u;) n[r](this, t)
  165. }
  166. function e() {
  167. for (var r = -1, e = t.apply(this, arguments); ++r < u;) n[r](this, e)
  168. }
  169. n = N(n).map(C);
  170. var u = n.length;
  171. return "function" == typeof t ? e : r
  172. }
  173. function C(n) {
  174. var t = E(n);
  175. return function(r, e) {
  176. if (u = r.classList) return e ? u.add(n) : u.remove(n);
  177. var u = r.getAttribute("class") || "";
  178. e ? (t.lastIndex = 0, t.test(u) || r.setAttribute("class", k(u + " " + n))) : r.setAttribute("class", k(u.replace(t, " ")))
  179. }
  180. }
  181. function L(n, t, r) {
  182. function e() {
  183. this.style.removeProperty(n)
  184. }
  185. function u() {
  186. this.style.setProperty(n, t, r)
  187. }
  188. function i() {
  189. var e = t.apply(this, arguments);
  190. null == e ? this.style.removeProperty(n) : this.style.setProperty(n, e, r)
  191. }
  192. return null == t ? e : "function" == typeof t ? i : u
  193. }
  194. function q(n, t) {
  195. function r() {
  196. delete this[n]
  197. }
  198. function e() {
  199. this[n] = t
  200. }
  201. function u() {
  202. var r = t.apply(this, arguments);
  203. null == r ? delete this[n] : this[n] = r
  204. }
  205. return null == t ? r : "function" == typeof t ? u : e
  206. }
  207. function T(n) {
  208. return "function" == typeof n ? n : (n = oa.ns.qualify(n)).local ?
  209. function() {
  210. return this.ownerDocument.createElementNS(n.space, n.local)
  211. } : function() {
  212. return this.ownerDocument.createElementNS(this.namespaceURI, n)
  213. }
  214. }
  215. function z(n) {
  216. return {
  217. __data__: n
  218. }
  219. }
  220. function R(n) {
  221. return function() {
  222. return Ca(this, n)
  223. }
  224. }
  225. function D(t) {
  226. return arguments.length || (t = n), function(n, r) {
  227. return n && r ? t(n.__data__, r.__data__) : !n - !r
  228. }
  229. }
  230. function P(n, t) {
  231. for (var r = 0, e = n.length; e > r; r++) for (var u, i = n[r], o = 0, a = i.length; a > o; o++)(u = i[o]) && t(u, o, r);
  232. return n
  233. }
  234. function U(n) {
  235. return ka(n, Ta), n
  236. }
  237. function j(n) {
  238. var t, r;
  239. return function(e, u, i) {
  240. var o, a = n[i].update,
  241. c = a.length;
  242. for (i != r && (r = i, t = 0), u >= t && (t = u + 1); !(o = a[t]) && ++t < c;);
  243. return o
  244. }
  245. }
  246. function H() {
  247. var n = this.__transition__;
  248. n && ++n.active
  249. }
  250. function F(n, t, r) {
  251. function e() {
  252. var t = this[o];
  253. t && (this.removeEventListener(n, t, t.$), delete this[o])
  254. }
  255. function u() {
  256. var u = c(t, ca(arguments));
  257. e.call(this), this.addEventListener(n, this[o] = u, u.$ = r), u._ = t
  258. }
  259. function i() {
  260. var t, r = new RegExp("^__on([^.]+)" + oa.requote(n) + "$");
  261. for (var e in this) if (t = e.match(r)) {
  262. var u = this[e];
  263. this.removeEventListener(t[1], u, u.$), delete this[e]
  264. }
  265. }
  266. var o = "__on" + n,
  267. a = n.indexOf("."),
  268. c = O;
  269. a > 0 && (n = n.substring(0, a));
  270. var l = Ra.get(n);
  271. return l && (n = l, c = I), a ? t ? u : e : t ? v : i
  272. }
  273. function O(n, t) {
  274. return function(r) {
  275. var e = oa.event;
  276. oa.event = r, t[0] = this.__data__;
  277. try {
  278. n.apply(this, t)
  279. } finally {
  280. oa.event = e
  281. }
  282. }
  283. }
  284. function I(n, t) {
  285. var r = O(n, t);
  286. return function(n) {
  287. var t = this,
  288. e = n.relatedTarget;
  289. e && (e === t || 8 & e.compareDocumentPosition(t)) || r.call(t, n)
  290. }
  291. }
  292. function Y() {
  293. var n = ".dragsuppress-" + ++Pa,
  294. t = "click" + n,
  295. r = oa.select(fa).on("touchmove" + n, y).on("dragstart" + n, y).on("selectstart" + n, y);
  296. if (Da) {
  297. var e = sa.style,
  298. u = e[Da];
  299. e[Da] = "none"
  300. }
  301. return function(i) {
  302. function o() {
  303. r.on(t, null)
  304. }
  305. r.on(n, null), Da && (e[Da] = u), i && (r.on(t, function() {
  306. y(), o()
  307. }, !0), setTimeout(o, 0))
  308. }
  309. }
  310. function Z(n, t) {
  311. t.changedTouches && (t = t.changedTouches[0]);
  312. var r = n.ownerSVGElement || n;
  313. if (r.createSVGPoint) {
  314. var e = r.createSVGPoint();
  315. return e.x = t.clientX, e.y = t.clientY, e = e.matrixTransform(n.getScreenCTM().inverse()), [e.x, e.y]
  316. }
  317. var u = n.getBoundingClientRect();
  318. return [t.clientX - u.left - n.clientLeft, t.clientY - u.top - n.clientTop]
  319. }
  320. function V() {
  321. return oa.event.changedTouches[0].identifier
  322. }
  323. function $() {
  324. return oa.event.target
  325. }
  326. function X() {
  327. return fa
  328. }
  329. function B(n) {
  330. return n > 0 ? 1 : 0 > n ? -1 : 0
  331. }
  332. function J(n, t, r) {
  333. return (t[0] - n[0]) * (r[1] - n[1]) - (t[1] - n[1]) * (r[0] - n[0])
  334. }
  335. function W(n) {
  336. return n > 1 ? 0 : -1 > n ? Ua : Math.acos(n)
  337. }
  338. function G(n) {
  339. return n > 1 ? Ha : -1 > n ? -Ha : Math.asin(n)
  340. }
  341. function K(n) {
  342. return ((n = Math.exp(n)) - 1 / n) / 2
  343. }
  344. function Q(n) {
  345. return ((n = Math.exp(n)) + 1 / n) / 2
  346. }
  347. function nt(n) {
  348. return ((n = Math.exp(2 * n)) - 1) / (n + 1)
  349. }
  350. function tt(n) {
  351. return (n = Math.sin(n / 2)) * n
  352. }
  353. function rt() {}
  354. function et(n, t, r) {
  355. return new ut(n, t, r)
  356. }
  357. function ut(n, t, r) {
  358. this.h = n, this.s = t, this.l = r
  359. }
  360. function it(n, t, r) {
  361. function e(n) {
  362. return n > 360 ? n -= 360 : 0 > n && (n += 360), 60 > n ? i + (o - i) * n / 60 : 180 > n ? o : 240 > n ? i + (o - i) * (240 - n) / 60 : i
  363. }
  364. function u(n) {
  365. return Math.round(255 * e(n))
  366. }
  367. var i, o;
  368. return n = isNaN(n) ? 0 : (n %= 360) < 0 ? n + 360 : n, t = isNaN(t) ? 0 : 0 > t ? 0 : t > 1 ? 1 : t, r = 0 > r ? 0 : r > 1 ? 1 : r, o = .5 >= r ? r * (1 + t) : r + t - r * t, i = 2 * r - o, yt(u(n + 120), u(n), u(n - 120))
  369. }
  370. function ot(n, t, r) {
  371. return new at(n, t, r)
  372. }
  373. function at(n, t, r) {
  374. this.h = n, this.c = t, this.l = r
  375. }
  376. function ct(n, t, r) {
  377. return isNaN(n) && (n = 0), isNaN(t) && (t = 0), lt(r, Math.cos(n *= Ia) * t, Math.sin(n) * t)
  378. }
  379. function lt(n, t, r) {
  380. return new st(n, t, r)
  381. }
  382. function st(n, t, r) {
  383. this.l = n, this.a = t, this.b = r
  384. }
  385. function ft(n, t, r) {
  386. var e = (n + 16) / 116,
  387. u = e + t / 500,
  388. i = e - r / 200;
  389. return u = gt(u) * Qa, e = gt(e) * nc, i = gt(i) * tc, yt(vt(3.2404542 * u - 1.5371385 * e - .4985314 * i), vt(-.969266 * u + 1.8760108 * e + .041556 * i), vt(.0556434 * u - .2040259 * e + 1.0572252 * i))
  390. }
  391. function ht(n, t, r) {
  392. return n > 0 ? ot(Math.atan2(r, t) * Ya, Math.sqrt(t * t + r * r), n) : ot(0 / 0, 0 / 0, n)
  393. }
  394. function gt(n) {
  395. return n > .206893034 ? n * n * n : (n - 4 / 29) / 7.787037
  396. }
  397. function pt(n) {
  398. return n > .008856 ? Math.pow(n, 1 / 3) : 7.787037 * n + 4 / 29
  399. }
  400. function vt(n) {
  401. return Math.round(255 * (.00304 >= n ? 12.92 * n : 1.055 * Math.pow(n, 1 / 2.4) - .055))
  402. }
  403. function dt(n) {
  404. return yt(n >> 16, 255 & n >> 8, 255 & n)
  405. }
  406. function mt(n) {
  407. return dt(n) + ""
  408. }
  409. function yt(n, t, r) {
  410. return new xt(n, t, r)
  411. }
  412. function xt(n, t, r) {
  413. this.r = n, this.g = t, this.b = r
  414. }
  415. function Mt(n) {
  416. return 16 > n ? "0" + Math.max(0, n).toString(16) : Math.min(255, n).toString(16)
  417. }
  418. function _t(n, t, r) {
  419. var e, u, i, o = 0,
  420. a = 0,
  421. c = 0;
  422. if (e = /([a-z]+)\((.*)\)/i.exec(n)) switch (u = e[2].split(","), e[1]) {
  423. case "hsl":
  424. return r(parseFloat(u[0]), parseFloat(u[1]) / 100, parseFloat(u[2]) / 100);
  425. case "rgb":
  426. return t(kt(u[0]), kt(u[1]), kt(u[2]))
  427. }
  428. return (i = uc.get(n)) ? t(i.r, i.g, i.b) : (null == n || "#" !== n.charAt(0) || isNaN(i = parseInt(n.substring(1), 16)) || (4 === n.length ? (o = (3840 & i) >> 4, o = o >> 4 | o, a = 240 & i, a = a >> 4 | a, c = 15 & i, c = c << 4 | c) : 7 === n.length && (o = (16711680 & i) >> 16, a = (65280 & i) >> 8, c = 255 & i)), t(o, a, c))
  429. }
  430. function bt(n, t, r) {
  431. var e, u, i = Math.min(n /= 255, t /= 255, r /= 255),
  432. o = Math.max(n, t, r),
  433. a = o - i,
  434. c = (o + i) / 2;
  435. return a ? (u = .5 > c ? a / (o + i) : a / (2 - o - i), e = n == o ? (t - r) / a + (r > t ? 6 : 0) : t == o ? (r - n) / a + 2 : (n - t) / a + 4, e *= 60) : (e = 0 / 0, u = c > 0 && 1 > c ? 0 : e), et(e, u, c)
  436. }
  437. function wt(n, t, r) {
  438. n = St(n), t = St(t), r = St(r);
  439. var e = pt((.4124564 * n + .3575761 * t + .1804375 * r) / Qa),
  440. u = pt((.2126729 * n + .7151522 * t + .072175 * r) / nc),
  441. i = pt((.0193339 * n + .119192 * t + .9503041 * r) / tc);
  442. return lt(116 * u - 16, 500 * (e - u), 200 * (u - i))
  443. }
  444. function St(n) {
  445. return (n /= 255) <= .04045 ? n / 12.92 : Math.pow((n + .055) / 1.055, 2.4)
  446. }
  447. function kt(n) {
  448. var t = parseFloat(n);
  449. return "%" === n.charAt(n.length - 1) ? Math.round(2.55 * t) : t
  450. }
  451. function Et(n) {
  452. return "function" == typeof n ? n : function() {
  453. return n
  454. }
  455. }
  456. function Nt(n) {
  457. return n
  458. }
  459. function At(n) {
  460. return function(t, r, e) {
  461. return 2 === arguments.length && "function" == typeof r && (e = r, r = null), Ct(t, r, n, e)
  462. }
  463. }
  464. function Ct(n, t, r, e) {
  465. function u() {
  466. var n, t = c.status;
  467. if (!t && c.responseText || t >= 200 && 300 > t || 304 === t) {
  468. try {
  469. n = r.call(i, c)
  470. } catch (e) {
  471. return o.error.call(i, e), void 0
  472. }
  473. o.load.call(i, n)
  474. } else o.error.call(i, c)
  475. }
  476. var i = {},
  477. o = oa.dispatch("beforesend", "progress", "load", "error"),
  478. a = {},
  479. c = new XMLHttpRequest,
  480. l = null;
  481. return !fa.XDomainRequest || "withCredentials" in c || !/^(http(s)?:)?\/\//.test(n) || (c = new XDomainRequest), "onload" in c ? c.onload = c.onerror = u : c.onreadystatechange = function() {
  482. c.readyState > 3 && u()
  483. }, c.onprogress = function(n) {
  484. var t = oa.event;
  485. oa.event = n;
  486. try {
  487. o.progress.call(i, c)
  488. } finally {
  489. oa.event = t
  490. }
  491. }, i.header = function(n, t) {
  492. return n = (n + "").toLowerCase(), arguments.length < 2 ? a[n] : (null == t ? delete a[n] : a[n] = t + "", i)
  493. }, i.mimeType = function(n) {
  494. return arguments.length ? (t = null == n ? null : n + "", i) : t
  495. }, i.responseType = function(n) {
  496. return arguments.length ? (l = n, i) : l
  497. }, i.response = function(n) {
  498. return r = n, i
  499. }, ["get", "post"].forEach(function(n) {
  500. i[n] = function() {
  501. return i.send.apply(i, [n].concat(ca(arguments)))
  502. }
  503. }), i.send = function(r, e, u) {
  504. if (2 === arguments.length && "function" == typeof e && (u = e, e = null), c.open(r, n, !0), null == t || "accept" in a || (a.accept = t + ",*/*"), c.setRequestHeader) for (var s in a) c.setRequestHeader(s, a[s]);
  505. return null != t && c.overrideMimeType && c.overrideMimeType(t), null != l && (c.responseType = l), null != u && i.on("error", u).on("load", function(n) {
  506. u(null, n)
  507. }), o.beforesend.call(i, c), c.send(null == e ? null : e), i
  508. }, i.abort = function() {
  509. return c.abort(), i
  510. }, oa.rebind(i, o, "on"), null == e ? i : i.get(Lt(e))
  511. }
  512. function Lt(n) {
  513. return 1 === n.length ?
  514. function(t, r) {
  515. n(null == t ? r : null)
  516. } : n
  517. }
  518. function qt() {
  519. var n = Tt(),
  520. t = zt() - n;
  521. t > 24 ? (isFinite(t) && (clearTimeout(cc), cc = setTimeout(qt, t)), ac = 0) : (ac = 1, sc(qt))
  522. }
  523. function Tt() {
  524. var n = Date.now();
  525. for (lc = ic; lc;) n >= lc.t && (lc.f = lc.c(n - lc.t)), lc = lc.n;
  526. return n
  527. }
  528. function zt() {
  529. for (var n, t = ic, r = 1 / 0; t;) t.f ? t = n ? n.n = t.n : ic = t.n : (t.t < r && (r = t.t), t = (n = t).n);
  530. return oc = n, r
  531. }
  532. function Rt(n, t) {
  533. return t - (n ? Math.ceil(Math.log(n) / Math.LN10) : 1)
  534. }
  535. function Dt(n, t) {
  536. var r = Math.pow(10, 3 * Ma(8 - t));
  537. return {
  538. scale: t > 8 ?
  539. function(n) {
  540. return n / r
  541. } : function(n) {
  542. return n * r
  543. },
  544. symbol: n
  545. }
  546. }
  547. function Pt(n) {
  548. var t = n.decimal,
  549. r = n.thousands,
  550. e = n.grouping,
  551. u = n.currency,
  552. i = e ?
  553. function(n) {
  554. for (var t = n.length, u = [], i = 0, o = e[0]; t > 0 && o > 0;) u.push(n.substring(t -= o, t + o)), o = e[i = (i + 1) % e.length];
  555. return u.reverse().join(r)
  556. } : Nt;
  557. return function(n) {
  558. var r = hc.exec(n),
  559. e = r[1] || " ",
  560. o = r[2] || ">",
  561. a = r[3] || "",
  562. c = r[4] || "",
  563. l = r[5],
  564. s = +r[6],
  565. f = r[7],
  566. h = r[8],
  567. g = r[9],
  568. p = 1,
  569. v = "",
  570. d = "",
  571. m = !1;
  572. switch (h && (h = +h.substring(1)), (l || "0" === e && "=" === o) && (l = e = "0", o = "=", f && (s -= Math.floor((s - 1) / 4))), g) {
  573. case "n":
  574. f = !0, g = "g";
  575. break;
  576. case "%":
  577. p = 100, d = "%", g = "f";
  578. break;
  579. case "p":
  580. p = 100, d = "%", g = "r";
  581. break;
  582. case "b":
  583. case "o":
  584. case "x":
  585. case "X":
  586. "#" === c && (v = "0" + g.toLowerCase());
  587. case "c":
  588. case "d":
  589. m = !0, h = 0;
  590. break;
  591. case "s":
  592. p = -1, g = "r"
  593. }
  594. "$" === c && (v = u[0], d = u[1]), "r" != g || h || (g = "g"), null != h && ("g" == g ? h = Math.max(1, Math.min(21, h)) : ("e" == g || "f" == g) && (h = Math.max(0, Math.min(20, h)))), g = gc.get(g) || Ut;
  595. var y = l && f;
  596. return function(n) {
  597. var r = d;
  598. if (m && n % 1) return "";
  599. var u = 0 > n || 0 === n && 0 > 1 / n ? (n = -n, "-") : a;
  600. if (0 > p) {
  601. var c = oa.formatPrefix(n, h);
  602. n = c.scale(n), r = c.symbol + d
  603. } else n *= p;
  604. n = g(n, h);
  605. var x = n.lastIndexOf("."),
  606. M = 0 > x ? n : n.substring(0, x),
  607. _ = 0 > x ? "" : t + n.substring(x + 1);
  608. !l && f && (M = i(M));
  609. var b = v.length + M.length + _.length + (y ? 0 : u.length),
  610. w = s > b ? new Array(b = s - b + 1).join(e) : "";
  611. return y && (M = i(w + M)), u += v, n = M + _, ("<" === o ? u + n + w : ">" === o ? w + u + n : "^" === o ? w.substring(0, b >>= 1) + u + n + w.substring(b) : u + (y ? n : w + n)) + r
  612. }
  613. }
  614. }
  615. function Ut(n) {
  616. return n + ""
  617. }
  618. function jt() {
  619. this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0])
  620. }
  621. function Ht(n, t, r) {
  622. function e(t) {
  623. var r = n(t),
  624. e = i(r, 1);
  625. return e - t > t - r ? r : e
  626. }
  627. function u(r) {
  628. return t(r = n(new vc(r - 1)), 1), r
  629. }
  630. function i(n, r) {
  631. return t(n = new vc(+n), r), n
  632. }
  633. function o(n, e, i) {
  634. var o = u(n),
  635. a = [];
  636. if (i > 1) for (; e > o;) r(o) % i || a.push(new Date(+o)), t(o, 1);
  637. else for (; e > o;) a.push(new Date(+o)), t(o, 1);
  638. return a
  639. }
  640. function a(n, t, r) {
  641. try {
  642. vc = jt;
  643. var e = new jt;
  644. return e._ = n, o(e, t, r)
  645. } finally {
  646. vc = Date
  647. }
  648. }
  649. n.floor = n, n.round = e, n.ceil = u, n.offset = i, n.range = o;
  650. var c = n.utc = Ft(n);
  651. return c.floor = c, c.round = Ft(e), c.ceil = Ft(u), c.offset = Ft(i), c.range = a, n
  652. }
  653. function Ft(n) {
  654. return function(t, r) {
  655. try {
  656. vc = jt;
  657. var e = new jt;
  658. return e._ = t, n(e, r)._
  659. } finally {
  660. vc = Date
  661. }
  662. }
  663. }
  664. function Ot(n) {
  665. function t(n) {
  666. function t(t) {
  667. for (var r, u, i, o = [], a = -1, c = 0; ++a < e;) 37 === n.charCodeAt(a) && (o.push(n.substring(c, a)), null != (u = mc[r = n.charAt(++a)]) && (r = n.charAt(++a)), (i = A[r]) && (r = i(t, null == u ? "e" === r ? " " : "0" : u)), o.push(r), c = a + 1);
  668. return o.push(n.substring(c, a)), o.join("")
  669. }
  670. var e = n.length;
  671. return t.parse = function(t) {
  672. var e = {
  673. y: 1900,
  674. m: 0,
  675. d: 1,
  676. H: 0,
  677. M: 0,
  678. S: 0,
  679. L: 0,
  680. Z: null
  681. },
  682. u = r(e, n, t, 0);
  683. if (u != t.length) return null;
  684. "p" in e && (e.H = e.H % 12 + 12 * e.p);
  685. var i = null != e.Z && vc !== jt,
  686. o = new(i ? jt : vc);
  687. return "j" in e ? o.setFullYear(e.y, 0, e.j) : "w" in e && ("W" in e || "U" in e) ? (o.setFullYear(e.y, 0, 1), o.setFullYear(e.y, 0, "W" in e ? (e.w + 6) % 7 + 7 * e.W - (o.getDay() + 5) % 7 : e.w + 7 * e.U - (o.getDay() + 6) % 7)) : o.setFullYear(e.y, e.m, e.d), o.setHours(e.H + Math.floor(e.Z / 100), e.M + e.Z % 100, e.S, e.L), i ? o._ : o
  688. }, t.toString = function() {
  689. return n
  690. }, t
  691. }
  692. function r(n, t, r, e) {
  693. for (var u, i, o, a = 0, c = t.length, l = r.length; c > a;) {
  694. if (e >= l) return -1;
  695. if (u = t.charCodeAt(a++), 37 === u) {
  696. if (o = t.charAt(a++), i = C[o in mc ? t.charAt(a++) : o], !i || (e = i(n, r, e)) < 0) return -1
  697. } else if (u != r.charCodeAt(e++)) return -1
  698. }
  699. return e
  700. }
  701. function e(n, t, r) {
  702. b.lastIndex = 0;
  703. var e = b.exec(t.substring(r));
  704. return e ? (n.w = w.get(e[0].toLowerCase()), r + e[0].length) : -1
  705. }
  706. function u(n, t, r) {
  707. M.lastIndex = 0;
  708. var e = M.exec(t.substring(r));
  709. return e ? (n.w = _.get(e[0].toLowerCase()), r + e[0].length) : -1
  710. }
  711. function i(n, t, r) {
  712. E.lastIndex = 0;
  713. var e = E.exec(t.substring(r));
  714. return e ? (n.m = N.get(e[0].toLowerCase()), r + e[0].length) : -1
  715. }
  716. function o(n, t, r) {
  717. S.lastIndex = 0;
  718. var e = S.exec(t.substring(r));
  719. return e ? (n.m = k.get(e[0].toLowerCase()), r + e[0].length) : -1
  720. }
  721. function a(n, t, e) {
  722. return r(n, A.c.toString(), t, e)
  723. }
  724. function c(n, t, e) {
  725. return r(n, A.x.toString(), t, e)
  726. }
  727. function l(n, t, e) {
  728. return r(n, A.X.toString(), t, e)
  729. }
  730. function s(n, t, r) {
  731. var e = x.get(t.substring(r, r += 2).toLowerCase());
  732. return null == e ? -1 : (n.p = e, r)
  733. }
  734. var f = n.dateTime,
  735. h = n.date,
  736. g = n.time,
  737. p = n.periods,
  738. v = n.days,
  739. d = n.shortDays,
  740. m = n.months,
  741. y = n.shortMonths;
  742. t.utc = function(n) {
  743. function r(n) {
  744. try {
  745. vc = jt;
  746. var t = new vc;
  747. return t._ = n, e(t)
  748. } finally {
  749. vc = Date
  750. }
  751. }
  752. var e = t(n);
  753. return r.parse = function(n) {
  754. try {
  755. vc = jt;
  756. var t = e.parse(n);
  757. return t && t._
  758. } finally {
  759. vc = Date
  760. }
  761. }, r.toString = e.toString, r
  762. }, t.multi = t.utc.multi = ar;
  763. var x = oa.map(),
  764. M = Yt(v),
  765. _ = Zt(v),
  766. b = Yt(d),
  767. w = Zt(d),
  768. S = Yt(m),
  769. k = Zt(m),
  770. E = Yt(y),
  771. N = Zt(y);
  772. p.forEach(function(n, t) {
  773. x.set(n.toLowerCase(), t)
  774. });
  775. var A = {
  776. a: function(n) {
  777. return d[n.getDay()]
  778. },
  779. A: function(n) {
  780. return v[n.getDay()]
  781. },
  782. b: function(n) {
  783. return y[n.getMonth()]
  784. },
  785. B: function(n) {
  786. return m[n.getMonth()]
  787. },
  788. c: t(f),
  789. d: function(n, t) {
  790. return It(n.getDate(), t, 2)
  791. },
  792. e: function(n, t) {
  793. return It(n.getDate(), t, 2)
  794. },
  795. H: function(n, t) {
  796. return It(n.getHours(), t, 2)
  797. },
  798. I: function(n, t) {
  799. return It(n.getHours() % 12 || 12, t, 2)
  800. },
  801. j: function(n, t) {
  802. return It(1 + pc.dayOfYear(n), t, 3)
  803. },
  804. L: function(n, t) {
  805. return It(n.getMilliseconds(), t, 3)
  806. },
  807. m: function(n, t) {
  808. return It(n.getMonth() + 1, t, 2)
  809. },
  810. M: function(n, t) {
  811. return It(n.getMinutes(), t, 2)
  812. },
  813. p: function(n) {
  814. return p[+(n.getHours() >= 12)]
  815. },
  816. S: function(n, t) {
  817. return It(n.getSeconds(), t, 2)
  818. },
  819. U: function(n, t) {
  820. return It(pc.sundayOfYear(n), t, 2)
  821. },
  822. w: function(n) {
  823. return n.getDay()
  824. },
  825. W: function(n, t) {
  826. return It(pc.mondayOfYear(n), t, 2)
  827. },
  828. x: t(h),
  829. X: t(g),
  830. y: function(n, t) {
  831. return It(n.getFullYear() % 100, t, 2)
  832. },
  833. Y: function(n, t) {
  834. return It(n.getFullYear() % 1e4, t, 4)
  835. },
  836. Z: ir,
  837. "%": function() {
  838. return "%"
  839. }
  840. },
  841. C = {
  842. a: e,
  843. A: u,
  844. b: i,
  845. B: o,
  846. c: a,
  847. d: Qt,
  848. e: Qt,
  849. H: tr,
  850. I: tr,
  851. j: nr,
  852. L: ur,
  853. m: Kt,
  854. M: rr,
  855. p: s,
  856. S: er,
  857. U: $t,
  858. w: Vt,
  859. W: Xt,
  860. x: c,
  861. X: l,
  862. y: Jt,
  863. Y: Bt,
  864. Z: Wt,
  865. "%": or
  866. };
  867. return t
  868. }
  869. function It(n, t, r) {
  870. var e = 0 > n ? "-" : "",
  871. u = (e ? -n : n) + "",
  872. i = u.length;
  873. return e + (r > i ? new Array(r - i + 1).join(t) + u : u)
  874. }
  875. function Yt(n) {
  876. return new RegExp("^(?:" + n.map(oa.requote).join("|") + ")", "i")
  877. }
  878. function Zt(n) {
  879. for (var t = new o, r = -1, e = n.length; ++r < e;) t.set(n[r].toLowerCase(), r);
  880. return t
  881. }
  882. function Vt(n, t, r) {
  883. yc.lastIndex = 0;
  884. var e = yc.exec(t.substring(r, r + 1));
  885. return e ? (n.w = +e[0], r + e[0].length) : -1
  886. }
  887. function $t(n, t, r) {
  888. yc.lastIndex = 0;
  889. var e = yc.exec(t.substring(r));
  890. return e ? (n.U = +e[0], r + e[0].length) : -1
  891. }
  892. function Xt(n, t, r) {
  893. yc.lastIndex = 0;
  894. var e = yc.exec(t.substring(r));
  895. return e ? (n.W = +e[0], r + e[0].length) : -1
  896. }
  897. function Bt(n, t, r) {
  898. yc.lastIndex = 0;
  899. var e = yc.exec(t.substring(r, r + 4));
  900. return e ? (n.y = +e[0], r + e[0].length) : -1
  901. }
  902. function Jt(n, t, r) {
  903. yc.lastIndex = 0;
  904. var e = yc.exec(t.substring(r, r + 2));
  905. return e ? (n.y = Gt(+e[0]), r + e[0].length) : -1
  906. }
  907. function Wt(n, t, r) {
  908. return /^[+-]\d{4}$/.test(t = t.substring(r, r + 5)) ? (n.Z = +t, r + 5) : -1
  909. }
  910. function Gt(n) {
  911. return n + (n > 68 ? 1900 : 2e3)
  912. }
  913. function Kt(n, t, r) {
  914. yc.lastIndex = 0;
  915. var e = yc.exec(t.substring(r, r + 2));
  916. return e ? (n.m = e[0] - 1, r + e[0].length) : -1
  917. }
  918. function Qt(n, t, r) {
  919. yc.lastIndex = 0;
  920. var e = yc.exec(t.substring(r, r + 2));
  921. return e ? (n.d = +e[0], r + e[0].length) : -1
  922. }
  923. function nr(n, t, r) {
  924. yc.lastIndex = 0;
  925. var e = yc.exec(t.substring(r, r + 3));
  926. return e ? (n.j = +e[0], r + e[0].length) : -1
  927. }
  928. function tr(n, t, r) {
  929. yc.lastIndex = 0;
  930. var e = yc.exec(t.substring(r, r + 2));
  931. return e ? (n.H = +e[0], r + e[0].length) : -1
  932. }
  933. function rr(n, t, r) {
  934. yc.lastIndex = 0;
  935. var e = yc.exec(t.substring(r, r + 2));
  936. return e ? (n.M = +e[0], r + e[0].length) : -1
  937. }
  938. function er(n, t, r) {
  939. yc.lastIndex = 0;
  940. var e = yc.exec(t.substring(r, r + 2));
  941. return e ? (n.S = +e[0], r + e[0].length) : -1
  942. }
  943. function ur(n, t, r) {
  944. yc.lastIndex = 0;
  945. var e = yc.exec(t.substring(r, r + 3));
  946. return e ? (n.L = +e[0], r + e[0].length) : -1
  947. }
  948. function ir(n) {
  949. var t = n.getTimezoneOffset(),
  950. r = t > 0 ? "-" : "+",
  951. e = ~~ (Ma(t) / 60),
  952. u = Ma(t) % 60;
  953. return r + It(e, "0", 2) + It(u, "0", 2)
  954. }
  955. function or(n, t, r) {
  956. xc.lastIndex = 0;
  957. var e = xc.exec(t.substring(r, r + 1));
  958. return e ? r + e[0].length : -1
  959. }
  960. function ar(n) {
  961. for (var t = n.length, r = -1; ++r < t;) n[r][0] = this(n[r][0]);
  962. return function(t) {
  963. for (var r = 0, e = n[r]; !e[1](t);) e = n[++r];
  964. return e[0](t)
  965. }
  966. }
  967. function cr() {}
  968. function lr(n, t, r) {
  969. var e = r.s = n + t,
  970. u = e - n,
  971. i = e - u;
  972. r.t = n - i + (t - u)
  973. }
  974. function sr(n, t) {
  975. n && wc.hasOwnProperty(n.type) && wc[n.type](n, t)
  976. }
  977. function fr(n, t, r) {
  978. var e, u = -1,
  979. i = n.length - r;
  980. for (t.lineStart(); ++u < i;) e = n[u], t.point(e[0], e[1], e[2]);
  981. t.lineEnd()
  982. }
  983. function hr(n, t) {
  984. var r = -1,
  985. e = n.length;
  986. for (t.polygonStart(); ++r < e;) fr(n[r], t, 1);
  987. t.polygonEnd()
  988. }
  989. function gr() {
  990. function n(n, t) {
  991. n *= Ia, t = t * Ia / 2 + Ua / 4;
  992. var r = n - e,
  993. o = r >= 0 ? 1 : -1,
  994. a = o * r,
  995. c = Math.cos(t),
  996. l = Math.sin(t),
  997. s = i * l,
  998. f = u * c + s * Math.cos(a),
  999. h = s * o * Math.sin(a);
  1000. kc.add(Math.atan2(h, f)), e = n, u = c, i = l
  1001. }
  1002. var t, r, e, u, i;
  1003. Ec.point = function(o, a) {
  1004. Ec.point = n, e = (t = o) * Ia, u = Math.cos(a = (r = a) * Ia / 2 + Ua / 4), i = Math.sin(a)
  1005. }, Ec.lineEnd = function() {
  1006. n(t, r)
  1007. }
  1008. }
  1009. function pr(n) {
  1010. var t = n[0],
  1011. r = n[1],
  1012. e = Math.cos(r);
  1013. return [e * Math.cos(t), e * Math.sin(t), Math.sin(r)]
  1014. }
  1015. function vr(n, t) {
  1016. return n[0] * t[0] + n[1] * t[1] + n[2] * t[2]
  1017. }
  1018. function dr(n, t) {
  1019. return [n[1] * t[2] - n[2] * t[1], n[2] * t[0] - n[0] * t[2], n[0] * t[1] - n[1] * t[0]]
  1020. }
  1021. function mr(n, t) {
  1022. n[0] += t[0], n[1] += t[1], n[2] += t[2]
  1023. }
  1024. function yr(n, t) {
  1025. return [n[0] * t, n[1] * t, n[2] * t]
  1026. }
  1027. function xr(n) {
  1028. var t = Math.sqrt(vr(n, n));
  1029. n[0] /= t, n[1] /= t, n[2] /= t
  1030. }
  1031. function Mr(n, t) {
  1032. var r = t[0] - n[0],
  1033. e = t[1] - n[1],
  1034. u = t[2] - n[2];
  1035. return Oa * Oa > r * r + e * e + u * u
  1036. }
  1037. function _r(n) {
  1038. return [Math.atan2(n[1], n[0]), G(n[2])]
  1039. }
  1040. function br(n, t) {
  1041. return Ma(n[1] - t[1]) < Fa && (Ma(Ma(n[1]) - Ua / 2) < Fa || wr(n[0], t[0]) < Fa)
  1042. }
  1043. function wr(n, t) {
  1044. var r = Ma(t - n);
  1045. return r > Ua ? 2 * Ua - r : r
  1046. }
  1047. function Sr(n, t) {
  1048. n *= Ia;
  1049. var r = Math.cos(t *= Ia);
  1050. kr(r * Math.cos(n), r * Math.sin(n), Math.sin(t))
  1051. }
  1052. function kr(n, t, r) {
  1053. ++Nc, Cc += (n - Cc) / Nc, Lc += (t - Lc) / Nc, qc += (r - qc) / Nc
  1054. }
  1055. function Er() {
  1056. function n(n, u) {
  1057. n *= Ia;
  1058. var i = Math.cos(u *= Ia),
  1059. o = i * Math.cos(n),
  1060. a = i * Math.sin(n),
  1061. c = Math.sin(u),
  1062. l = Math.atan2(Math.sqrt((l = r * c - e * a) * l + (l = e * o - t * c) * l + (l = t * a - r * o) * l), t * o + r * a + e * c);
  1063. Ac += l, Tc += l * (t + (t = o)), zc += l * (r + (r = a)), Rc += l * (e + (e = c)), kr(t, r, e)
  1064. }
  1065. var t, r, e;
  1066. jc.point = function(u, i) {
  1067. u *= Ia;
  1068. var o = Math.cos(i *= Ia);
  1069. t = o * Math.cos(u), r = o * Math.sin(u), e = Math.sin(i), jc.point = n, kr(t, r, e)
  1070. }
  1071. }
  1072. function Nr() {
  1073. jc.point = Sr
  1074. }
  1075. function Ar() {
  1076. function n(n, t) {
  1077. n *= Ia;
  1078. var r = Math.cos(t *= Ia),
  1079. o = r * Math.cos(n),
  1080. a = r * Math.sin(n),
  1081. c = Math.sin(t),
  1082. l = u * c - i * a,
  1083. s = i * o - e * c,
  1084. f = e * a - u * o,
  1085. h = Math.sqrt(l * l + s * s + f * f),
  1086. g = e * o + u * a + i * c,
  1087. p = h && -W(g) / h,
  1088. v = Math.atan2(h, g);
  1089. Dc += p * l, Pc += p * s, Uc += p * f, Ac += v, Tc += v * (e + (e = o)), zc += v * (u + (u = a)), Rc += v * (i + (i = c)), kr(e, u, i)
  1090. }
  1091. var t, r, e, u, i;
  1092. jc.point = function(o, a) {
  1093. t = o, r = a, jc.point = n, o *= Ia;
  1094. var c = Math.cos(a *= Ia);
  1095. e = c * Math.cos(o), u = c * Math.sin(o), i = Math.sin(a), kr(e, u, i)
  1096. }, jc.lineEnd = function() {
  1097. n(t, r), jc.lineEnd = Nr, jc.point = Sr
  1098. }
  1099. }
  1100. function Cr() {
  1101. return !0
  1102. }
  1103. function Lr(n, t, r, e, u) {
  1104. var i = [],
  1105. o = [];
  1106. if (n.forEach(function(n) {
  1107. if (!((t = n.length - 1) <= 0)) {
  1108. var t, r = n[0],
  1109. e = n[t];
  1110. if (Ma(e[0] - r[0]) < Fa && Ma(e[1] - r[1]) < Fa) {
  1111. u.lineStart();
  1112. for (var a = 0; t > a; ++a) u.point((r = n[a])[0], r[1]);
  1113. return u.lineEnd(), void 0
  1114. }
  1115. var c = new Tr(r, n, null, !0),
  1116. l = new Tr(r, null, c, !1);
  1117. c.o = l, i.push(c), o.push(l), c = new Tr(e, n, null, !1), l = new Tr(e, null, c, !0), c.o = l, i.push(c), o.push(l)
  1118. }
  1119. }), o.sort(t), qr(i), qr(o), i.length) {
  1120. for (var a = 0, c = r, l = o.length; l > a; ++a) o[a].e = c = !c;
  1121. for (var s, f, h = i[0];;) {
  1122. for (var g = h, p = !0; g.v;) if ((g = g.n) === h) return;
  1123. s = g.z, u.lineStart();
  1124. do {
  1125. if (g.v = g.o.v = !0, g.e) {
  1126. if (p) for (var a = 0, l = s.length; l > a; ++a) u.point((f = s[a])[0], f[1]);
  1127. else e(g.x, g.n.x, 1, u);
  1128. g = g.n
  1129. } else {
  1130. if (p) {
  1131. s = g.p.z;
  1132. for (var a = s.length - 1; a >= 0; --a) u.point((f = s[a])[0], f[1])
  1133. } else e(g.x, g.p.x, -1, u);
  1134. g = g.p
  1135. }
  1136. g = g.o, s = g.z, p = !p
  1137. } while (!g.v);
  1138. u.lineEnd()
  1139. }
  1140. }
  1141. }
  1142. function qr(n) {
  1143. if (t = n.length) {
  1144. for (var t, r, e = 0, u = n[0]; ++e < t;) u.n = r = n[e], r.p = u, u = r;
  1145. u.n = r = n[0], r.p = u
  1146. }
  1147. }
  1148. function Tr(n, t, r, e) {
  1149. this.x = n, this.z = t, this.o = r, this.e = e, this.v = !1, this.n = this.p = null
  1150. }
  1151. function zr(n, t, r, e, u) {
  1152. return function(i, o) {
  1153. function a(t, r) {
  1154. var e = i(t, r);
  1155. n(t = e[0], r = e[1]) && o.point(t, r)
  1156. }
  1157. function c(n, t) {
  1158. var r = i(n, t);
  1159. m.point(r[0], r[1])
  1160. }
  1161. function l() {
  1162. x.point = c, m.lineStart()
  1163. }
  1164. function s() {
  1165. x.point = a, m.lineEnd()
  1166. }
  1167. function f(n, t, r) {
  1168. d.push([n, t]);
  1169. var e = i(n, t);
  1170. _.point(e[0], e[1], r)
  1171. }
  1172. function h() {
  1173. _.lineStart(), d = []
  1174. }
  1175. function g() {
  1176. f(d[0][0], d[0][1], !0), _.lineEnd();
  1177. var n, t = _.clean(),
  1178. r = M.buffer(),
  1179. e = r.length;
  1180. if (d.pop(), v.push(d), d = null, e) {
  1181. if (1 & t) {
  1182. n = r[0];
  1183. var u, e = n.length - 1,
  1184. i = -1;
  1185. for (o.lineStart(); ++i < e;) o.point((u = n[i])[0], u[1]);
  1186. return o.lineEnd(), void 0
  1187. }
  1188. e > 1 && 2 & t && r.push(r.pop().concat(r.shift())), p.push(r.filter(Rr))
  1189. }
  1190. }
  1191. var p, v, d, m = t(o),
  1192. y = i.invert(e[0], e[1]),
  1193. x = {
  1194. point: a,
  1195. lineStart: l,
  1196. lineEnd: s,
  1197. polygonStart: function() {
  1198. x.point = f, x.lineStart = h, x.lineEnd = g, p = [], v = [], o.polygonStart()
  1199. },
  1200. polygonEnd: function() {
  1201. x.point = a, x.lineStart = l, x.lineEnd = s, p = oa.merge(p);
  1202. var n = Ur(y, v);
  1203. p.length ? Lr(p, u, n, r, o) : n && (o.lineStart(), r(null, null, 1, o), o.lineEnd()), o.polygonEnd(), p = v = null
  1204. },
  1205. sphere: function() {
  1206. o.polygonStart(), o.lineStart(), r(null, null, 1, o), o.lineEnd(), o.polygonEnd()
  1207. }
  1208. },
  1209. M = Dr(),
  1210. _ = t(M);
  1211. return x
  1212. }
  1213. }
  1214. function Rr(n) {
  1215. return n.length > 1
  1216. }
  1217. function Dr() {
  1218. var n, t = [];
  1219. return {
  1220. lineStart: function() {
  1221. t.push(n = [])
  1222. },
  1223. point: function(t, r, e, u) {
  1224. var i = [t, r];
  1225. arguments.length > 2 && (i.index = e, i.t = u), n.push(i)
  1226. },
  1227. lineEnd: v,
  1228. buffer: function() {
  1229. var r = t;
  1230. return t = [], n = null, r
  1231. },
  1232. rejoin: function() {
  1233. t.length > 1 && t.push(t.pop().concat(t.shift()))
  1234. }
  1235. }
  1236. }
  1237. function Pr(n, t) {
  1238. return ((n = n.x)[0] < 0 ? n[1] - Ha - Fa : Ha - n[1]) - ((t = t.x)[0] < 0 ? t[1] - Ha - Fa : Ha - t[1])
  1239. }
  1240. function Ur(n, t) {
  1241. var r = n[0],
  1242. e = n[1],
  1243. u = [Math.sin(r), -Math.cos(r), 0],
  1244. i = 0,
  1245. o = 0;
  1246. kc.reset();
  1247. for (var a = 0, c = t.length; c > a; ++a) {
  1248. var l = t[a],
  1249. s = l.length;
  1250. if (s) for (var f = l[0], h = f[0], g = f[1] / 2 + Ua / 4, p = Math.sin(g), v = Math.cos(g), d = 1;;) {
  1251. d === s && (d = 0), n = l[d];
  1252. var m = n[0],
  1253. y = n[1] / 2 + Ua / 4,
  1254. x = Math.sin(y),
  1255. M = Math.cos(y),
  1256. _ = m - h,
  1257. b = _ >= 0 ? 1 : -1,
  1258. w = b * _,
  1259. S = w > Ua,
  1260. k = p * x;
  1261. if (kc.add(Math.atan2(k * b * Math.sin(w), v * M + k * Math.cos(w))), i += S ? _ + b * ja : _, S ^ h >= r ^ m >= r) {
  1262. var E = dr(pr(f), pr(n));
  1263. xr(E);
  1264. var N = dr(u, E);
  1265. xr(N);
  1266. var A = (S ^ _ >= 0 ? -1 : 1) * G(N[2]);
  1267. (e > A || e === A && (E[0] || E[1])) && (o += S ^ _ >= 0 ? 1 : -1)
  1268. }
  1269. if (!d++) break;
  1270. h = m, p = x, v = M, f = n
  1271. }
  1272. }
  1273. return (-Fa > i || Fa > i && 0 > kc) ^ 1 & o
  1274. }
  1275. function jr(n) {
  1276. var t, r = 0 / 0,
  1277. e = 0 / 0,
  1278. u = 0 / 0;
  1279. return {
  1280. lineStart: function() {
  1281. n.lineStart(), t = 1
  1282. },
  1283. point: function(i, o) {
  1284. var a = i > 0 ? Ua - Fa : -Ua,
  1285. c = Ma(i - r);
  1286. Ma(c - Ua) < Fa ? (n.point(r, e = (e + o) / 2 > 0 ? Ha : -Ha), n.point(u, e), n.lineEnd(), n.lineStart(), n.point(a, e), n.point(i, e), t = 0) : u !== a && c >= Ua && (Ma(r - u) < Fa && (r -= u * Fa), Ma(i - a) < Fa && (i -= a * Fa), e = Hr(r, e, i, o), n.point(u, e), n.lineEnd(), n.lineStart(), n.point(a, e), t = 0), n.point(r = i, e = o), u = a
  1287. },
  1288. lineEnd: function() {
  1289. n.lineEnd(), r = e = 0 / 0
  1290. },
  1291. clean: function() {
  1292. return 2 - t
  1293. }
  1294. }
  1295. }
  1296. function Hr(n, t, r, e) {
  1297. var u, i, o = Math.sin(n - r);
  1298. return Ma(o) > Fa ? Math.atan((Math.sin(t) * (i = Math.cos(e)) * Math.sin(r) - Math.sin(e) * (u = Math.cos(t)) * Math.sin(n)) / (u * i * o)) : (t + e) / 2
  1299. }
  1300. function Fr(n, t, r, e) {
  1301. var u;
  1302. if (null == n) u = r * Ha, e.point(-Ua, u), e.point(0, u), e.point(Ua - Fa, u), e.point(Ua - Fa, 0), e.point(Ua - Fa, -u), e.point(0, -u), e.point(-Ua, -u), e.point(-Ua, 0), e.point(-Ua, u);
  1303. else if (Ma(n[0] - t[0]) > Fa) {
  1304. var i = -Ua,
  1305. o = Ua - Fa,
  1306. a = (n[0] < t[0] ? 1 : -1) * Ua;
  1307. t[0] < n[0] && (i = Ua - Fa, o = -Ua), u = r * a / 2, e.point(i, u), e.point(0, u), e.point(o, u)
  1308. } else e.point(t[0], t[1])
  1309. }
  1310. function Or(n) {
  1311. return Ma(Ma(n) - Ua) > Fa
  1312. }
  1313. function Ir(n) {
  1314. function t(n, t) {
  1315. return Math.cos(n) * Math.cos(t) > i
  1316. }
  1317. function r(n) {
  1318. var r, i, c, l, s;
  1319. return {
  1320. lineStart: function() {
  1321. l = c = !1, s = 1
  1322. },
  1323. point: function(f, h) {
  1324. var g, p = [f, h],
  1325. v = t(f, h),
  1326. d = o ? v ? 0 : u(f, h) : v ? u(f + (0 > f ? Ua : -Ua), h) : 0;
  1327. if (!r && (l = c = v) && n.lineStart(), v !== c && (g = e(r, p), (br(r, g) || br(p, g)) && (p[0] += Fa, p[1] += Fa, v = t(p[0], p[1]))), v !== c) s = 0, v ? (n.lineStart(), g = e(p, r), n.point(g[0], g[1])) : (g = e(r, p), n.point(g[0], g[1]), n.lineEnd()), r = g;
  1328. else if (a && r && o ^ v) {
  1329. var m;
  1330. d & i || !(m = e(p, r, !0)) || (s = 0, o ? (n.lineStart(), n.point(m[0][0], m[0][1]), n.point(m[1][0], m[1][1]), n.lineEnd()) : (n.point(m[1][0], m[1][1]), n.lineEnd(), n.lineStart(), n.point(m[0][0], m[0][1])))
  1331. }!v || r && br(r, p) || n.point(p[0], p[1]), r = p, c = v, i = d
  1332. },
  1333. lineEnd: function() {
  1334. c && n.lineEnd(), r = null
  1335. },
  1336. clean: function() {
  1337. return s | (l && c) << 1
  1338. }
  1339. }
  1340. }
  1341. function e(n, t, r) {
  1342. var e = pr(n),
  1343. u = pr(t),
  1344. o = [1, 0, 0],
  1345. a = dr(e, u),
  1346. c = vr(a, a),
  1347. l = a[0],
  1348. s = c - l * l;
  1349. if (!s) return !r && n;
  1350. var f = i * c / s,
  1351. h = -i * l / s,
  1352. g = dr(o, a),
  1353. p = yr(o, f),
  1354. v = yr(a, h);
  1355. mr(p, v);
  1356. var d = g,
  1357. m = vr(p, d),
  1358. y = vr(d, d),
  1359. x = m * m - y * (vr(p, p) - 1);
  1360. if (!(0 > x)) {
  1361. var M = Math.sqrt(x),
  1362. _ = yr(d, (-m - M) / y);
  1363. if (mr(_, p), _ = _r(_), !r) return _;
  1364. var b, w = n[0],
  1365. S = t[0],
  1366. k = n[1],
  1367. E = t[1];
  1368. w > S && (b = w, w = S, S = b);
  1369. var N = S - w,
  1370. A = Ma(N - Ua) < Fa,
  1371. C = A || Fa > N;
  1372. if (!A && k > E && (b = k, k = E, E = b), C ? A ? k + E > 0 ^ _[1] < (Ma(_[0] - w) < Fa ? k : E) : k <= _[1] && _[1] <= E : N > Ua ^ (w <= _[0] && _[0] <= S)) {
  1373. var L = yr(d, (-m + M) / y);
  1374. return mr(L, p), [_, _r(L)]
  1375. }
  1376. }
  1377. }
  1378. function u(t, r) {
  1379. var e = o ? n : Ua - n,
  1380. u = 0;
  1381. return -e > t ? u |= 1 : t > e && (u |= 2), -e > r ? u |= 4 : r > e && (u |= 8), u
  1382. }
  1383. var i = Math.cos(n),
  1384. o = i > 0,
  1385. a = Ma(i) > Fa,
  1386. c = be(n, 6 * Ia);
  1387. return zr(t, r, c, o ? [0, -n] : [-Ua, n - Ua], Pr)
  1388. }
  1389. function Yr(n, t, r, e) {
  1390. return function(u) {
  1391. var i, o = u.a,
  1392. a = u.b,
  1393. c = o.x,
  1394. l = o.y,
  1395. s = a.x,
  1396. f = a.y,
  1397. h = 0,
  1398. g = 1,
  1399. p = s - c,
  1400. v = f - l;
  1401. if (i = n - c, p || !(i > 0)) {
  1402. if (i /= p, 0 > p) {
  1403. if (h > i) return;
  1404. g > i && (g = i)
  1405. } else if (p > 0) {
  1406. if (i > g) return;
  1407. i > h && (h = i)
  1408. }
  1409. if (i = r - c, p || !(0 > i)) {
  1410. if (i /= p, 0 > p) {
  1411. if (i > g) return;
  1412. i > h && (h = i)
  1413. } else if (p > 0) {
  1414. if (h > i) return;
  1415. g > i && (g = i)
  1416. }
  1417. if (i = t - l, v || !(i > 0)) {
  1418. if (i /= v, 0 > v) {
  1419. if (h > i) return;
  1420. g > i && (g = i)
  1421. } else if (v > 0) {
  1422. if (i > g) return;
  1423. i > h && (h = i)
  1424. }
  1425. if (i = e - l, v || !(0 > i)) {
  1426. if (i /= v, 0 > v) {
  1427. if (i > g) return;
  1428. i > h && (h = i)
  1429. } else if (v > 0) {
  1430. if (h > i) return;
  1431. g > i && (g = i)
  1432. }
  1433. return h > 0 && (u.a = {
  1434. x: c + h * p,
  1435. y: l + h * v
  1436. }), 1 > g && (u.b = {
  1437. x: c + g * p,
  1438. y: l + g * v
  1439. }), u
  1440. }
  1441. }
  1442. }
  1443. }
  1444. }
  1445. }
  1446. function Zr(n, t, r, e) {
  1447. function u(e, u) {
  1448. return Ma(e[0] - n) < Fa ? u > 0 ? 0 : 3 : Ma(e[0] - r) < Fa ? u > 0 ? 2 : 1 : Ma(e[1] - t) < Fa ? u > 0 ? 1 : 0 : u > 0 ? 3 : 2
  1449. }
  1450. function i(n, t) {
  1451. return o(n.x, t.x)
  1452. }
  1453. function o(n, t) {
  1454. var r = u(n, 1),
  1455. e = u(t, 1);
  1456. return r !== e ? r - e : 0 === r ? t[1] - n[1] : 1 === r ? n[0] - t[0] : 2 === r ? n[1] - t[1] : t[0] - n[0]
  1457. }
  1458. return function(a) {
  1459. function c(n) {
  1460. for (var t = 0, r = d.length, e = n[1], u = 0; r > u; ++u) for (var i, o = 1, a = d[u], c = a.length, l = a[0]; c > o; ++o) i = a[o], l[1] <= e ? i[1] > e && J(l, i, n) > 0 && ++t : i[1] <= e && J(l, i, n) < 0 && --t, l = i;
  1461. return 0 !== t
  1462. }
  1463. function l(i, a, c, l) {
  1464. var s = 0,
  1465. f = 0;
  1466. if (null == i || (s = u(i, c)) !== (f = u(a, c)) || o(i, a) < 0 ^ c > 0) {
  1467. do l.point(0 === s || 3 === s ? n : r, s > 1 ? e : t);
  1468. while ((s = (s + c + 4) % 4) !== f)
  1469. } else l.point(a[0], a[1])
  1470. }
  1471. function s(u, i) {
  1472. return u >= n && r >= u && i >= t && e >= i
  1473. }
  1474. function f(n, t) {
  1475. s(n, t) && a.point(n, t)
  1476. }
  1477. function h() {
  1478. C.point = p, d && d.push(m = []), S = !0, w = !1, _ = b = 0 / 0
  1479. }
  1480. function g() {
  1481. v && (p(y, x), M && w && N.rejoin(), v.push(N.buffer())), C.point = f, w && a.lineEnd()
  1482. }
  1483. function p(n, t) {
  1484. n = Math.max(-Fc, Math.min(Fc, n)), t = Math.max(-Fc, Math.min(Fc, t));
  1485. var r = s(n, t);
  1486. if (d && m.push([n, t]), S) y = n, x = t, M = r, S = !1, r && (a.lineStart(), a.point(n, t));
  1487. else if (r && w) a.point(n, t);
  1488. else {
  1489. var e = {
  1490. a: {
  1491. x: _,
  1492. y: b
  1493. },
  1494. b: {
  1495. x: n,
  1496. y: t
  1497. }
  1498. };
  1499. A(e) ? (w || (a.lineStart(), a.point(e.a.x, e.a.y)), a.point(e.b.x, e.b.y), r || a.lineEnd(), k = !1) : r && (a.lineStart(), a.point(n, t), k = !1)
  1500. }
  1501. _ = n, b = t, w = r
  1502. }
  1503. var v, d, m, y, x, M, _, b, w, S, k, E = a,
  1504. N = Dr(),
  1505. A = Yr(n, t, r, e),
  1506. C = {
  1507. point: f,
  1508. lineStart: h,
  1509. lineEnd: g,
  1510. polygonStart: function() {
  1511. a = N, v = [], d = [], k = !0
  1512. },
  1513. polygonEnd: function() {
  1514. a = E, v = oa.merge(v);
  1515. var t = c([n, e]),
  1516. r = k && t,
  1517. u = v.length;
  1518. (r || u) && (a.polygonStart(), r && (a.lineStart(), l(null, null, 1, a), a.lineEnd()), u && Lr(v, i, t, l, a), a.polygonEnd()), v = d = m = null
  1519. }
  1520. };
  1521. return C
  1522. }
  1523. }
  1524. function Vr(n, t) {
  1525. this.from = n, this.to = t, this.normal = dr(n, t), this.fromNormal = dr(this.normal, n), this.toNormal = dr(this.normal, t)
  1526. }
  1527. function $r(n, t) {
  1528. var r = dr(n.normal, t.normal);
  1529. xr(r);
  1530. var e = vr(r, n.fromNormal),
  1531. u = vr(r, n.toNormal),
  1532. i = vr(r, t.fromNormal),
  1533. o = vr(r, t.toNormal);
  1534. return e > -Oa && Oa > u && i > -Oa && Oa > o ? r : Oa > e && u > -Oa && Oa > i && o > -Oa ? (r[0] = -r[0], r[1] = -r[1], r[2] = -r[2], r) : void 0
  1535. }
  1536. function Xr(n, t) {
  1537. var r = vr(n, t.fromNormal),
  1538. e = vr(n, t.toNormal);
  1539. return n = vr(n, t.normal), Math.abs(n) < Oa && (r > -Oa && Oa > e || Oa > r && e > -Oa)
  1540. }
  1541. function Br(n) {
  1542. function t(t, r) {
  1543. return Ur([t, r], n)
  1544. }
  1545. function r(n) {
  1546. var r, e, i, o, a, c;
  1547. return {
  1548. lineStart: function() {
  1549. r = null, c = 1
  1550. },
  1551. point: function(l, s, f) {
  1552. f && (l = e, s = i);
  1553. var h = pr([l, s]),
  1554. g = a;
  1555. if (r) {
  1556. for (var p = new Vr(r, h), v = [], d = 0, m = 100; d < u.length && m > 0; ++d) {
  1557. var y = u[d],
  1558. x = $r(p, y);
  1559. if (x) {
  1560. if (x === Oc || Mr(x, r) || Mr(x, h) || Mr(x, y.from) || Mr(x, y.to)) {
  1561. var M = 1e-4;
  1562. l = (l + 3 * Ua + (Math.random() < .5 ? M : -M)) % (2 * Ua) - Ua, s = Math.min(Ua / 2 - 1e-4, Math.max(1e-4 - Ua / 2, s + (Math.random() < .5 ? M : -M))), p = new Vr(r, h = pr([l, s])), d = -1, --m, v.length = 0;
  1563. continue
  1564. }
  1565. var _ = _r(x);
  1566. x.distance = Wr(r, x), x.index = d, x.t = Wr(y.from, x), x[0] = _[0], x[1] = _[1], x.pop(), v.push(x)
  1567. }
  1568. }
  1569. if (v.length) {
  1570. c = 0, v.sort(function(n, t) {
  1571. return n.distance - t.distance
  1572. });
  1573. for (var d = 0; d < v.length; ++d) {
  1574. var x = v[d];
  1575. (g = !g) ? (n.lineStart(), n.point(x[0], x[1], x.index, x.t)) : (n.point(x[0], x[1], x.index, x.t), n.lineEnd())
  1576. }
  1577. }
  1578. g && n.point(l, s)
  1579. } else {
  1580. for (var d = 0, m = 100; d < u.length && m > 0; ++d) {
  1581. var y = u[d];
  1582. if (Xr(h, y)) {
  1583. var M = 1e-4;
  1584. l = (l + 3 * Ua + (Math.random() < .5 ? M : -M)) % (2 * Ua) - Ua, s = Math.min(Ua / 2 - 1e-4, Math.max(1e-4 - Ua / 2, s + (Math.random() < .5 ? M : -M))), h = pr([l, s]), d = -1, --m
  1585. }
  1586. }(o = g = t(e = l, i = s)) && (n.lineStart(), n.point(l, s))
  1587. }
  1588. r = h, a = g
  1589. },
  1590. lineEnd: function() {
  1591. a && n.lineEnd()
  1592. },
  1593. clean: function() {
  1594. return c | (o && a) << 1
  1595. }
  1596. }
  1597. }
  1598. function e(t, r, e, i) {
  1599. if (null == t) {
  1600. var o = n.length;
  1601. n.forEach(function(n, t) {
  1602. n.forEach(function(n) {
  1603. i.point(n[0], n[1])
  1604. }), o - 1 > t && (i.lineEnd(), i.lineStart())
  1605. })
  1606. } else if (t.index !== r.index && null != t.index && null != r.index) for (var a = t.index; a !== r.index; a = (a + e + u.length) % u.length) {
  1607. var c = u[a],
  1608. l = _r(e > 0 ? c.to : c.from);
  1609. i.point(l[0], l[1])
  1610. }
  1611. }
  1612. var u = [];
  1613. return n = n.map(function(n) {
  1614. var t;
  1615. return n = n.map(function(n, r) {
  1616. var e = pr(n = [n[0] * Ia, n[1] * Ia]);
  1617. return r && u.push(new Vr(t, e)), t = e, n
  1618. }), n.pop(), n
  1619. }), zr(t, r, e, n[0][0], Jr)
  1620. }
  1621. function Jr(n, t) {
  1622. return n = n.x, t = t.x, n.index - t.index || n.t - t.t
  1623. }
  1624. function Wr(n, t) {
  1625. var r = dr(n, t);
  1626. return Math.atan2(Math.sqrt(vr(r, r)), vr(n, t))
  1627. }
  1628. function Gr(n, t) {
  1629. function r(r, e) {
  1630. return r = n(r, e), t(r[0], r[1])
  1631. }
  1632. return n.invert && t.invert && (r.invert = function(r, e) {
  1633. return r = t.invert(r, e), r && n.invert(r[0], r[1])
  1634. }), r
  1635. }
  1636. function Kr(n) {
  1637. var t = 0,
  1638. r = Ua / 3,
  1639. e = pe(n),
  1640. u = e(t, r);
  1641. return u.parallels = function(n) {
  1642. return arguments.length ? e(t = n[0] * Ua / 180, r = n[1] * Ua / 180) : [180 * (t / Ua), 180 * (r / Ua)]
  1643. }, u
  1644. }
  1645. function Qr(n, t) {
  1646. function r(n, t) {
  1647. var r = Math.sqrt(i - 2 * u * Math.sin(t)) / u;
  1648. return [r * Math.sin(n *= u), o - r * Math.cos(n)]
  1649. }
  1650. var e = Math.sin(n),
  1651. u = (e + Math.sin(t)) / 2,
  1652. i = 1 + e * (2 * u - e),
  1653. o = Math.sqrt(i) / u;
  1654. return r.invert = function(n, t) {
  1655. var r = o - t;
  1656. return [Math.atan2(n, r) / u, G((i - (n * n + r * r) * u * u) / (2 * u))]
  1657. }, r
  1658. }
  1659. function ne() {
  1660. function n(n, t) {
  1661. Yc += u * n - e * t, e = n, u = t
  1662. }
  1663. var t, r, e, u;
  1664. Bc.point = function(i, o) {
  1665. Bc.point = n, t = e = i, r = u = o
  1666. }, Bc.lineEnd = function() {
  1667. n(t, r)
  1668. }
  1669. }
  1670. function te(n, t) {
  1671. Zc > n && (Zc = n), n > $c && ($c = n), Vc > t && (Vc = t), t > Xc && (Xc = t)
  1672. }
  1673. function re() {
  1674. function n(n, t) {
  1675. o.push("M", n, ",", t, i)
  1676. }
  1677. function t(n, t) {
  1678. o.push("M", n, ",", t), a.point = r
  1679. }
  1680. function r(n, t) {
  1681. o.push("L", n, ",", t)
  1682. }
  1683. function e() {
  1684. a.point = n
  1685. }
  1686. function u() {
  1687. o.push("Z")
  1688. }
  1689. var i = ee(4.5),
  1690. o = [],
  1691. a = {
  1692. point: n,
  1693. lineStart: function() {
  1694. a.point = t
  1695. },
  1696. lineEnd: e,
  1697. polygonStart: function() {
  1698. a.lineEnd = u
  1699. },
  1700. polygonEnd: function() {
  1701. a.lineEnd = e, a.point = n
  1702. },
  1703. pointRadius: function(n) {
  1704. return i = ee(n), a
  1705. },
  1706. result: function() {
  1707. if (o.length) {
  1708. var n = o.join("");
  1709. return o = [], n
  1710. }
  1711. }
  1712. };
  1713. return a
  1714. }
  1715. function ee(n) {
  1716. return "m0," + n + "a" + n + "," + n + " 0 1,1 0," + -2 * n + "a" + n + "," + n + " 0 1,1 0," + 2 * n + "z"
  1717. }
  1718. function ue(n, t) {
  1719. Cc += n, Lc += t, ++qc
  1720. }
  1721. function ie() {
  1722. function n(n, e) {
  1723. var u = n - t,
  1724. i = e - r,
  1725. o = Math.sqrt(u * u + i * i);
  1726. Tc += o * (t + n) / 2, zc += o * (r + e) / 2, Rc += o, ue(t = n, r = e)
  1727. }
  1728. var t, r;
  1729. Wc.point = function(e, u) {
  1730. Wc.point = n, ue(t = e, r = u)
  1731. }
  1732. }
  1733. function oe() {
  1734. Wc.point = ue
  1735. }
  1736. function ae() {
  1737. function n(n, t) {
  1738. var r = n - e,
  1739. i = t - u,
  1740. o = Math.sqrt(r * r + i * i);
  1741. Tc += o * (e + n) / 2, zc += o * (u + t) / 2, Rc += o, o = u * n - e * t, Dc += o * (e + n), Pc += o * (u + t), Uc += 3 * o, ue(e = n, u = t)
  1742. }
  1743. var t, r, e, u;
  1744. Wc.point = function(i, o) {
  1745. Wc.point = n, ue(t = e = i, r = u = o)
  1746. }, Wc.lineEnd = function() {
  1747. n(t, r)
  1748. }
  1749. }
  1750. function ce(n) {
  1751. function t(t, r) {
  1752. n.moveTo(t, r), n.arc(t, r, o, 0, ja)
  1753. }
  1754. function r(t, r) {
  1755. n.moveTo(t, r), a.point = e
  1756. }
  1757. function e(t, r) {
  1758. n.lineTo(t, r)
  1759. }
  1760. function u() {
  1761. a.point = t
  1762. }
  1763. function i() {
  1764. n.closePath()
  1765. }
  1766. var o = 4.5,
  1767. a = {
  1768. point: t,
  1769. lineStart: function() {
  1770. a.point = r
  1771. },
  1772. lineEnd: u,
  1773. polygonStart: function() {
  1774. a.lineEnd = i
  1775. },
  1776. polygonEnd: function() {
  1777. a.lineEnd = u, a.point = t
  1778. },
  1779. pointRadius: function(n) {
  1780. return o = n, a
  1781. },
  1782. result: v
  1783. };
  1784. return a
  1785. }
  1786. function le(n) {
  1787. function t(n) {
  1788. return (a ? e : r)(n)
  1789. }
  1790. function r(t) {
  1791. return he(t, function(r, e) {
  1792. r = n(r, e), t.point(r[0], r[1])
  1793. })
  1794. }
  1795. function e(t) {
  1796. function r(r, e) {
  1797. r = n(r, e), t.point(r[0], r[1])
  1798. }
  1799. function e() {
  1800. x = 0 / 0, S.point = i, t.lineStart()
  1801. }
  1802. function i(r, e) {
  1803. var i = pr([r, e]),
  1804. o = n(r, e);
  1805. u(x, M, y, _, b, w, x = o[0], M = o[1], y = r, _ = i[0], b = i[1], w = i[2], a, t), t.point(x, M)
  1806. }
  1807. function o() {
  1808. S.point = r, t.lineEnd()
  1809. }
  1810. function c() {
  1811. e(), S.point = l, S.lineEnd = s
  1812. }
  1813. function l(n, t) {
  1814. i(f = n, h = t), g = x, p = M, v = _, d = b, m = w, S.point = i
  1815. }
  1816. function s() {
  1817. u(x, M, y, _, b, w, g, p, f, v, d, m, a, t), S.lineEnd = o, o()
  1818. }
  1819. var f, h, g, p, v, d, m, y, x, M, _, b, w, S = {
  1820. point: r,
  1821. lineStart: e,
  1822. lineEnd: o,
  1823. polygonStart: function() {
  1824. t.polygonStart(), S.lineStart = c
  1825. },
  1826. polygonEnd: function() {
  1827. t.polygonEnd(), S.lineStart = e
  1828. }
  1829. };
  1830. return S
  1831. }
  1832. function u(t, r, e, a, c, l, s, f, h, g, p, v, d, m) {
  1833. var y = s - t,
  1834. x = f - r,
  1835. M = y * y + x * x;
  1836. if (M > 4 * i && d--) {
  1837. var _ = a + g,
  1838. b = c + p,
  1839. w = l + v,
  1840. S = Math.sqrt(_ * _ + b * b + w * w),
  1841. k = Math.asin(w /= S),
  1842. E = Ma(Ma(w) - 1) < Fa || Ma(e - h) < Fa ? (e + h) / 2 : Math.atan2(b, _),
  1843. N = n(E, k),
  1844. A = N[0],
  1845. C = N[1],
  1846. L = A - t,
  1847. q = C - r,
  1848. T = x * L - y * q;
  1849. (T * T / M > i || Ma((y * L + x * q) / M - .5) > .3 || o > a * g + c * p + l * v) && (u(t, r, e, a, c, l, A, C, E, _ /= S, b /= S, w, d, m), m.point(A, C), u(A, C, E, _, b, w, s, f, h, g, p, v, d, m))
  1850. }
  1851. }
  1852. var i = .5,
  1853. o = Math.cos(30 * Ia),
  1854. a = 16;
  1855. return t.precision = function(n) {
  1856. return arguments.length ? (a = (i = n * n) > 0 && 16, t) : Math.sqrt(i)
  1857. }, t
  1858. }
  1859. function se(n) {
  1860. var t = le(function(t, r) {
  1861. return n([t * Ya, r * Ya])
  1862. });
  1863. return function(n) {
  1864. return ve(t(n))
  1865. }
  1866. }
  1867. function fe(n) {
  1868. this.stream = n
  1869. }
  1870. function he(n, t) {
  1871. return {
  1872. point: t,
  1873. sphere: function() {
  1874. n.sphere()
  1875. },
  1876. lineStart: function() {
  1877. n.lineStart()
  1878. },
  1879. lineEnd: function() {
  1880. n.lineEnd()
  1881. },
  1882. polygonStart: function() {
  1883. n.polygonStart()
  1884. },
  1885. polygonEnd: function() {
  1886. n.polygonEnd()
  1887. }
  1888. }
  1889. }
  1890. function ge(n) {
  1891. return pe(function() {
  1892. return n
  1893. })()
  1894. }
  1895. function pe(n) {
  1896. function t(n) {
  1897. return n = a(n[0] * Ia, n[1] * Ia), [n[0] * h + c, l - n[1] * h]
  1898. }
  1899. function r(n) {
  1900. return n = a.invert((n[0] - c) / h, (l - n[1]) / h), n && [n[0] * Ya, n[1] * Ya]
  1901. }
  1902. function e() {
  1903. a = Gr(o = ye(m, y, x), i);
  1904. var n = i(v, d);
  1905. return c = g - n[0] * h, l = p + n[1] * h, u()
  1906. }
  1907. function u() {
  1908. return s && (s.valid = !1, s = null), t
  1909. }
  1910. var i, o, a, c, l, s, f = le(function(n, t) {
  1911. return n = i(n, t), [n[0] * h + c, l - n[1] * h]
  1912. }),
  1913. h = 150,
  1914. g = 480,
  1915. p = 250,
  1916. v = 0,
  1917. d = 0,
  1918. m = 0,
  1919. y = 0,
  1920. x = 0,
  1921. M = Hc,
  1922. _ = Nt,
  1923. b = null,
  1924. w = null,
  1925. S = null;
  1926. return t.stream = function(n) {
  1927. return s && (s.valid = !1), s = ve(M(o, f(_(n)))), s.valid = !0, s
  1928. }, t.clipAngle = function(n) {
  1929. return arguments.length ? (M = null == n ? (b = n, Hc) : Ir((b = +n) * Ia), u()) : b
  1930. }, t.clipExtent = function(n) {
  1931. return arguments.length ? (S = n, _ = n ? Zr(n[0][0], n[0][1], n[1][0], n[1][1]) : Nt, u()) : S
  1932. }, t.scale = function(n) {
  1933. return arguments.length ? (h = +n, e()) : h
  1934. }, t.translate = function(n) {
  1935. return arguments.length ? (g = +n[0], p = +n[1], e()) : [g, p]
  1936. }, t.center = function(n) {
  1937. return arguments.length ? (v = n[0] % 360 * Ia, d = n[1] % 360 * Ia, e()) : [v * Ya, d * Ya]
  1938. }, t.rotate = function(n) {
  1939. return arguments.length ? (m = n[0] % 360 * Ia, y = n[1] % 360 * Ia, x = n.length > 2 ? n[2] % 360 * Ia : 0, e()) : [m * Ya, y * Ya, x * Ya]
  1940. }, oa.rebind(t, f, "precision"), t.clipPolygon = function(n) {
  1941. return arguments.length ? (b = null, w = n, M = null == n ? Hc : Br(n), e()) : w
  1942. }, function() {
  1943. return i = n.apply(this, arguments), t.invert = i.invert && r, e()
  1944. }
  1945. }
  1946. function ve(n) {
  1947. return he(n, function(t, r) {
  1948. n.point(t * Ia, r * Ia)
  1949. })
  1950. }
  1951. function de(n, t) {
  1952. return [n, t]
  1953. }
  1954. function me(n, t) {
  1955. return [n > Ua ? n - ja : -Ua > n ? n + ja : n, t]
  1956. }
  1957. function ye(n, t, r) {
  1958. return n ? t || r ? Gr(Me(n), _e(t, r)) : Me(n) : t || r ? _e(t, r) : me
  1959. }
  1960. function xe(n) {
  1961. return function(t, r) {
  1962. return t += n, [t > Ua ? t - ja : -Ua > t ? t + ja : t, r]
  1963. }
  1964. }
  1965. function Me(n) {
  1966. var t = xe(n);
  1967. return t.invert = xe(-n), t
  1968. }
  1969. function _e(n, t) {
  1970. function r(n, t) {
  1971. var r = Math.cos(t),
  1972. a = Math.cos(n) * r,
  1973. c = Math.sin(n) * r,
  1974. l = Math.sin(t),
  1975. s = l * e + a * u;
  1976. return [Math.atan2(c * i - s * o, a * e - l * u), G(s * i + c * o)]
  1977. }
  1978. var e = Math.cos(n),
  1979. u = Math.sin(n),
  1980. i = Math.cos(t),
  1981. o = Math.sin(t);
  1982. return r.invert = function(n, t) {
  1983. var r = Math.cos(t),
  1984. a = Math.cos(n) * r,
  1985. c = Math.sin(n) * r,
  1986. l = Math.sin(t),
  1987. s = l * i - c * o;
  1988. return [Math.atan2(c * i + l * o, a * e + s * u), G(s * e - a * u)]
  1989. }, r
  1990. }
  1991. function be(n, t) {
  1992. var r = Math.cos(n),
  1993. e = Math.sin(n);
  1994. return function(u, i, o, a) {
  1995. var c = o * t;
  1996. null != u ? (u = we(r, u), i = we(r, i), (o > 0 ? i > u : u > i) && (u += o * ja)) : (u = n + o * ja, i = n - .5 * c);
  1997. for (var l, s = u; o > 0 ? s > i : i > s; s -= c) a.point((l = _r([r, -e * Math.cos(s), -e * Math.sin(s)]))[0], l[1])
  1998. }
  1999. }
  2000. function we(n, t) {
  2001. var r = pr(t);
  2002. r[0] -= n, xr(r);
  2003. var e = W(-r[1]);
  2004. return ((-r[2] < 0 ? -e : e) + 2 * Math.PI - Fa) % (2 * Math.PI)
  2005. }
  2006. function Se(n, t, r) {
  2007. var e = oa.range(n, t - Fa, r).concat(t);
  2008. return function(n) {
  2009. return e.map(function(t) {
  2010. return [n, t]
  2011. })
  2012. }
  2013. }
  2014. function ke(n, t, r) {
  2015. var e = oa.range(n, t - Fa, r).concat(t);
  2016. return function(n) {
  2017. return e.map(function(t) {
  2018. return [t, n]
  2019. })
  2020. }
  2021. }
  2022. function Ee(n) {
  2023. return n.source
  2024. }
  2025. function Ne(n) {
  2026. return n.target
  2027. }
  2028. function Ae(n, t, r, e) {
  2029. var u = Math.cos(t),
  2030. i = Math.sin(t),
  2031. o = Math.cos(e),
  2032. a = Math.sin(e),
  2033. c = u * Math.cos(n),
  2034. l = u * Math.sin(n),
  2035. s = o * Math.cos(r),
  2036. f = o * Math.sin(r),
  2037. h = 2 * Math.asin(Math.sqrt(tt(e - t) + u * o * tt(r - n))),
  2038. g = 1 / Math.sin(h),
  2039. p = h ?
  2040. function(n) {
  2041. var t = Math.sin(n *= h) * g,
  2042. r = Math.sin(h - n) * g,
  2043. e = r * c + t * s,
  2044. u = r * l + t * f,
  2045. o = r * i + t * a;
  2046. return [Math.atan2(u, e) * Ya, Math.atan2(o, Math.sqrt(e * e + u * u)) * Ya]
  2047. } : function() {
  2048. return [n * Ya, t * Ya]
  2049. };
  2050. return p.distance = h, p
  2051. }
  2052. function Ce() {
  2053. function n(n, u) {
  2054. var i = Math.sin(u *= Ia),
  2055. o = Math.cos(u),
  2056. a = Ma((n *= Ia) - t),
  2057. c = Math.cos(a);
  2058. Gc += Math.atan2(Math.sqrt((a = o * Math.sin(a)) * a + (a = e * i - r * o * c) * a), r * i + e * o * c), t = n, r = i, e = o
  2059. }
  2060. var t, r, e;
  2061. Kc.point = function(u, i) {
  2062. t = u * Ia, r = Math.sin(i *= Ia), e = Math.cos(i), Kc.point = n
  2063. }, Kc.lineEnd = function() {
  2064. Kc.point = Kc.lineEnd = v
  2065. }
  2066. }
  2067. function Le(n, t) {
  2068. function r(t, r) {
  2069. var e = Math.cos(t),
  2070. u = Math.cos(r),
  2071. i = n(e * u);
  2072. return [i * u * Math.sin(t), i * Math.sin(r)]
  2073. }
  2074. return r.invert = function(n, r) {
  2075. var e = Math.sqrt(n * n + r * r),
  2076. u = t(e),
  2077. i = Math.sin(u),
  2078. o = Math.cos(u);
  2079. return [Math.atan2(n * i, e * o), Math.asin(e && r * i / e)]
  2080. }, r
  2081. }
  2082. function qe(n, t) {
  2083. function r(n, t) {
  2084. o > 0 ? -Ha + Fa > t && (t = -Ha + Fa) : t > Ha - Fa && (t = Ha - Fa);
  2085. var r = o / Math.pow(u(t), i);
  2086. return [r * Math.sin(i * n), o - r * Math.cos(i * n)]
  2087. }
  2088. var e = Math.cos(n),
  2089. u = function(n) {
  2090. return Math.tan(Ua / 4 + n / 2)
  2091. },
  2092. i = n === t ? Math.sin(n) : Math.log(e / Math.cos(t)) / Math.log(u(t) / u(n)),
  2093. o = e * Math.pow(u(n), i) / i;
  2094. return i ? (r.invert = function(n, t) {
  2095. var r = o - t,
  2096. e = B(i) * Math.sqrt(n * n + r * r);
  2097. return [Math.atan2(n, r) / i, 2 * Math.atan(Math.pow(o / e, 1 / i)) - Ha]
  2098. }, r) : ze
  2099. }
  2100. function Te(n, t) {
  2101. function r(n, t) {
  2102. var r = i - t;
  2103. return [r * Math.sin(u * n), i - r * Math.cos(u * n)]
  2104. }
  2105. var e = Math.cos(n),
  2106. u = n === t ? Math.sin(n) : (e - Math.cos(t)) / (t - n),
  2107. i = e / u + n;
  2108. return Ma(u) < Fa ? de : (r.invert = function(n, t) {
  2109. var r = i - t;
  2110. return [Math.atan2(n, r) / u, i - B(u) * Math.sqrt(n * n + r * r)]
  2111. }, r)
  2112. }
  2113. function ze(n, t) {
  2114. return [n, Math.log(Math.tan(Ua / 4 + t / 2))]
  2115. }
  2116. function Re(n) {
  2117. var t, r = ge(n),
  2118. e = r.scale,
  2119. u = r.translate,
  2120. i = r.clipExtent;
  2121. return r.scale = function() {
  2122. var n = e.apply(r, arguments);
  2123. return n === r ? t ? r.clipExtent(null) : r : n
  2124. }, r.translate = function() {
  2125. var n = u.apply(r, arguments);
  2126. return n === r ? t ? r.clipExtent(null) : r : n
  2127. }, r.clipExtent = function(n) {
  2128. var o = i.apply(r, arguments);
  2129. if (o === r) {
  2130. if (t = null == n) {
  2131. var a = Ua * e(),
  2132. c = u();
  2133. i([
  2134. [c[0] - a, c[1] - a],
  2135. [c[0] + a, c[1] + a]
  2136. ])
  2137. }
  2138. } else t && (o = null);
  2139. return o
  2140. }, r.clipExtent(null)
  2141. }
  2142. function De(n, t) {
  2143. return [Math.log(Math.tan(Ua / 4 + t / 2)), -n]
  2144. }
  2145. function Pe(n) {
  2146. return n[0]
  2147. }
  2148. function Ue(n) {
  2149. return n[1]
  2150. }
  2151. function je(n) {
  2152. for (var t = n.length, r = [0, 1], e = 2, u = 2; t > u; u++) {
  2153. for (; e > 1 && J(n[r[e - 2]], n[r[e - 1]], n[u]) <= 0;)--e;
  2154. r[e++] = u
  2155. }
  2156. return r.slice(0, e)
  2157. }
  2158. function He(n, t) {
  2159. return n[0] - t[0] || n[1] - t[1]
  2160. }
  2161. function Fe(n, t, r) {
  2162. return (r[0] - t[0]) * (n[1] - t[1]) < (r[1] - t[1]) * (n[0] - t[0])
  2163. }
  2164. function Oe(n, t, r, e) {
  2165. var u = n[0],
  2166. i = r[0],
  2167. o = t[0] - u,
  2168. a = e[0] - i,
  2169. c = n[1],
  2170. l = r[1],
  2171. s = t[1] - c,
  2172. f = e[1] - l,
  2173. h = (a * (c - l) - f * (u - i)) / (f * o - a * s);
  2174. return [u + h * o, c + h * s]
  2175. }
  2176. function Ie(n) {
  2177. var t = n[0],
  2178. r = n[n.length - 1];
  2179. return !(t[0] - r[0] || t[1] - r[1])
  2180. }
  2181. function Ye() {
  2182. su(this), this.edge = this.site = this.circle = null
  2183. }
  2184. function Ze(n) {
  2185. var t = sl.pop() || new Ye;
  2186. return t.site = n, t
  2187. }
  2188. function Ve(n) {
  2189. tu(n), al.remove(n), sl.push(n), su(n)
  2190. }
  2191. function $e(n) {
  2192. var t = n.circle,
  2193. r = t.x,
  2194. e = t.cy,
  2195. u = {
  2196. x: r,
  2197. y: e
  2198. },
  2199. i = n.P,
  2200. o = n.N,
  2201. a = [n];
  2202. Ve(n);
  2203. for (var c = i; c.circle && Ma(r - c.circle.x) < Fa && Ma(e - c.circle.cy) < Fa;) i = c.P, a.unshift(c), Ve(c), c = i;
  2204. a.unshift(c), tu(c);
  2205. for (var l = o; l.circle && Ma(r - l.circle.x) < Fa && Ma(e - l.circle.cy) < Fa;) o = l.N, a.push(l), Ve(l), l = o;
  2206. a.push(l), tu(l);
  2207. var s, f = a.length;
  2208. for (s = 1; f > s; ++s) l = a[s], c = a[s - 1], au(l.edge, c.site, l.site, u);
  2209. c = a[0], l = a[f - 1], l.edge = iu(c.site, l.site, null, u), nu(c), nu(l)
  2210. }
  2211. function Xe(n) {
  2212. for (var t, r, e, u, i = n.x, o = n.y, a = al._; a;) if (e = Be(a, o) - i, e > Fa) a = a.L;
  2213. else {
  2214. if (u = i - Je(a, o), !(u > Fa)) {
  2215. e > -Fa ? (t = a.P, r = a) : u > -Fa ? (t = a, r = a.N) : t = r = a;
  2216. break
  2217. }
  2218. if (!a.R) {
  2219. t = a;
  2220. break
  2221. }
  2222. a = a.R
  2223. }
  2224. var c = Ze(n);
  2225. if (al.insert(t, c), t || r) {
  2226. if (t === r) return tu(t), r = Ze(t.site), al.insert(c, r), c.edge = r.edge = iu(t.site, c.site), nu(t), nu(r), void 0;
  2227. if (!r) return c.edge = iu(t.site, c.site), void 0;
  2228. tu(t), tu(r);
  2229. var l = t.site,
  2230. s = l.x,
  2231. f = l.y,
  2232. h = n.x - s,
  2233. g = n.y - f,
  2234. p = r.site,
  2235. v = p.x - s,
  2236. d = p.y - f,
  2237. m = 2 * (h * d - g * v),
  2238. y = h * h + g * g,
  2239. x = v * v + d * d,
  2240. M = {
  2241. x: (d * y - g * x) / m + s,
  2242. y: (h * x - v * y) / m + f
  2243. };
  2244. au(r.edge, l, p, M), c.edge = iu(l, n, null, M), r.edge = iu(n, p, null, M), nu(t), nu(r)
  2245. }
  2246. }
  2247. function Be(n, t) {
  2248. var r = n.site,
  2249. e = r.x,
  2250. u = r.y,
  2251. i = u - t;
  2252. if (!i) return e;
  2253. var o = n.P;
  2254. if (!o) return -1 / 0;
  2255. r = o.site;
  2256. var a = r.x,
  2257. c = r.y,
  2258. l = c - t;
  2259. if (!l) return a;
  2260. var s = a - e,
  2261. f = 1 / i - 1 / l,
  2262. h = s / l;
  2263. return f ? (-h + Math.sqrt(h * h - 2 * f * (s * s / (-2 * l) - c + l / 2 + u - i / 2))) / f + e : (e + a) / 2
  2264. }
  2265. function Je(n, t) {
  2266. var r = n.N;
  2267. if (r) return Be(r, t);
  2268. var e = n.site;
  2269. return e.y === t ? e.x : 1 / 0
  2270. }
  2271. function We(n) {
  2272. this.site = n, this.edges = []
  2273. }
  2274. function Ge(n) {
  2275. for (var t, r, e, u, i, o, a, c, l, s, f = n[0][0], h = n[1][0], g = n[0][1], p = n[1][1], v = ol, d = v.length; d--;) if (i = v[d], i && i.prepare()) for (a = i.edges, c = a.length, o = 0; c > o;) s = a[o].end(), e = s.x, u = s.y, l = a[++o % c].start(), t = l.x, r = l.y, (Ma(e - t) > Fa || Ma(u - r) > Fa) && (a.splice(o, 0, new cu(ou(i.site, s, Ma(e - f) < Fa && p - u > Fa ? {
  2276. x: f,
  2277. y: Ma(t - f) < Fa ? r : p
  2278. } : Ma(u - p) < Fa && h - e > Fa ? {
  2279. x: Ma(r - p) < Fa ? t : h,
  2280. y: p
  2281. } : Ma(e - h) < Fa && u - g > Fa ? {
  2282. x: h,
  2283. y: Ma(t - h) < Fa ? r : g
  2284. } : Ma(u - g) < Fa && e - f > Fa ? {
  2285. x: Ma(r - g) < Fa ? t : f,
  2286. y: g
  2287. } : null), i.site, null)), ++c)
  2288. }
  2289. function Ke(n, t) {
  2290. return t.angle - n.angle
  2291. }
  2292. function Qe() {
  2293. su(this), this.x = this.y = this.arc = this.site = this.cy = null
  2294. }
  2295. function nu(n) {
  2296. var t = n.P,
  2297. r = n.N;
  2298. if (t && r) {
  2299. var e = t.site,
  2300. u = n.site,
  2301. i = r.site;
  2302. if (e !== i) {
  2303. var o = u.x,
  2304. a = u.y,
  2305. c = e.x - o,
  2306. l = e.y - a,
  2307. s = i.x - o,
  2308. f = i.y - a,
  2309. h = 2 * (c * f - l * s);
  2310. if (!(h >= -Oa)) {
  2311. var g = c * c + l * l,
  2312. p = s * s + f * f,
  2313. v = (f * g - l * p) / h,
  2314. d = (c * p - s * g) / h,
  2315. f = d + a,
  2316. m = fl.pop() || new Qe;
  2317. m.arc = n, m.site = u, m.x = v + o, m.y = f + Math.sqrt(v * v + d * d), m.cy = f, n.circle = m;
  2318. for (var y = null, x = ll._; x;) if (m.y < x.y || m.y === x.y && m.x <= x.x) {
  2319. if (!x.L) {
  2320. y = x.P;
  2321. break
  2322. }
  2323. x = x.L
  2324. } else {
  2325. if (!x.R) {
  2326. y = x;
  2327. break
  2328. }
  2329. x = x.R
  2330. }
  2331. ll.insert(y, m), y || (cl = m)
  2332. }
  2333. }
  2334. }
  2335. }
  2336. function tu(n) {
  2337. var t = n.circle;
  2338. t && (t.P || (cl = t.N), ll.remove(t), fl.push(t), su(t), n.circle = null)
  2339. }
  2340. function ru(n) {
  2341. for (var t, r = il, e = Yr(n[0][0], n[0][1], n[1][0], n[1][1]), u = r.length; u--;) t = r[u], (!eu(t, n) || !e(t) || Ma(t.a.x - t.b.x) < Fa && Ma(t.a.y - t.b.y) < Fa) && (t.a = t.b = null, r.splice(u, 1))
  2342. }
  2343. function eu(n, t) {
  2344. var r = n.b;
  2345. if (r) return !0;
  2346. var e, u, i = n.a,
  2347. o = t[0][0],
  2348. a = t[1][0],
  2349. c = t[0][1],
  2350. l = t[1][1],
  2351. s = n.l,
  2352. f = n.r,
  2353. h = s.x,
  2354. g = s.y,
  2355. p = f.x,
  2356. v = f.y,
  2357. d = (h + p) / 2,
  2358. m = (g + v) / 2;
  2359. if (v === g) {
  2360. if (o > d || d >= a) return;
  2361. if (h > p) {
  2362. if (i) {
  2363. if (i.y >= l) return
  2364. } else i = {
  2365. x: d,
  2366. y: c
  2367. };
  2368. r = {
  2369. x: d,
  2370. y: l
  2371. }
  2372. } else {
  2373. if (i) {
  2374. if (i.y < c) return
  2375. } else i = {
  2376. x: d,
  2377. y: l
  2378. };
  2379. r = {
  2380. x: d,
  2381. y: c
  2382. }
  2383. }
  2384. } else if (e = (h - p) / (v - g), u = m - e * d, -1 > e || e > 1) if (h > p) {
  2385. if (i) {
  2386. if (i.y >= l) return
  2387. } else i = {
  2388. x: (c - u) / e,
  2389. y: c
  2390. };
  2391. r = {
  2392. x: (l - u) / e,
  2393. y: l
  2394. }
  2395. } else {
  2396. if (i) {
  2397. if (i.y < c) return
  2398. } else i = {
  2399. x: (l - u) / e,
  2400. y: l
  2401. };
  2402. r = {
  2403. x: (c - u) / e,
  2404. y: c
  2405. }
  2406. } else if (v > g) {
  2407. if (i) {
  2408. if (i.x >= a) return
  2409. } else i = {
  2410. x: o,
  2411. y: e * o + u
  2412. };
  2413. r = {
  2414. x: a,
  2415. y: e * a + u
  2416. }
  2417. } else {
  2418. if (i) {
  2419. if (i.x < o) return
  2420. } else i = {
  2421. x: a,
  2422. y: e * a + u
  2423. };
  2424. r = {
  2425. x: o,
  2426. y: e * o + u
  2427. }
  2428. }
  2429. return n.a = i, n.b = r, !0
  2430. }
  2431. function uu(n, t) {
  2432. this.l = n, this.r = t, this.a = this.b = null
  2433. }
  2434. function iu(n, t, r, e) {
  2435. var u = new uu(n, t);
  2436. return il.push(u), r && au(u, n, t, r), e && au(u, t, n, e), ol[n.i].edges.push(new cu(u, n, t)), ol[t.i].edges.push(new cu(u, t, n)), u
  2437. }
  2438. function ou(n, t, r) {
  2439. var e = new uu(n, null);
  2440. return e.a = t, e.b = r, il.push(e), e
  2441. }
  2442. function au(n, t, r, e) {
  2443. n.a || n.b ? n.l === r ? n.b = e : n.a = e : (n.a = e, n.l = t, n.r = r)
  2444. }
  2445. function cu(n, t, r) {
  2446. var e = n.a,
  2447. u = n.b;
  2448. this.edge = n, this.site = t, this.angle = r ? Math.atan2(r.y - t.y, r.x - t.x) : n.l === t ? Math.atan2(u.x - e.x, e.y - u.y) : Math.atan2(e.x - u.x, u.y - e.y)
  2449. }
  2450. function lu() {
  2451. this._ = null
  2452. }
  2453. function su(n) {
  2454. n.U = n.C = n.L = n.R = n.P = n.N = null
  2455. }
  2456. function fu(n, t) {
  2457. var r = t,
  2458. e = t.R,
  2459. u = r.U;
  2460. u ? u.L === r ? u.L = e : u.R = e : n._ = e, e.U = u, r.U = e, r.R = e.L, r.R && (r.R.U = r), e.L = r
  2461. }
  2462. function hu(n, t) {
  2463. var r = t,
  2464. e = t.L,
  2465. u = r.U;
  2466. u ? u.L === r ? u.L = e : u.R = e : n._ = e, e.U = u, r.U = e, r.L = e.R, r.L && (r.L.U = r), e.R = r
  2467. }
  2468. function gu(n) {
  2469. for (; n.L;) n = n.L;
  2470. return n
  2471. }
  2472. function pu(n, t) {
  2473. var r, e, u, i = n.sort(vu).pop();
  2474. for (il = [], ol = new Array(n.length), al = new lu, ll = new lu;;) if (u = cl, i && (!u || i.y < u.y || i.y === u.y && i.x < u.x))(i.x !== r || i.y !== e) && (ol[i.i] = new We(i), Xe(i), r = i.x, e = i.y), i = n.pop();
  2475. else {
  2476. if (!u) break;
  2477. $e(u.arc)
  2478. }
  2479. t && (ru(t), Ge(t));
  2480. var o = {
  2481. cells: ol,
  2482. edges: il
  2483. };
  2484. return al = ll = il = ol = null, o
  2485. }
  2486. function vu(n, t) {
  2487. return t.y - n.y || t.x - n.x
  2488. }
  2489. function du(n, t, r) {
  2490. return (n.x - r.x) * (t.y - n.y) - (n.x - t.x) * (r.y - n.y)
  2491. }
  2492. function mu(n) {
  2493. return n.x
  2494. }
  2495. function yu(n) {
  2496. return n.y
  2497. }
  2498. function xu() {
  2499. return {
  2500. leaf: !0,
  2501. nodes: [],
  2502. point: null,
  2503. x: null,
  2504. y: null
  2505. }
  2506. }
  2507. function Mu(n, t, r, e, u, i) {
  2508. if (!n(t, r, e, u, i)) {
  2509. var o = .5 * (r + u),
  2510. a = .5 * (e + i),
  2511. c = t.nodes;
  2512. c[0] && Mu(n, c[0], r, e, o, a), c[1] && Mu(n, c[1], o, e, u, a), c[2] && Mu(n, c[2], r, a, o, i), c[3] && Mu(n, c[3], o, a, u, i)
  2513. }
  2514. }
  2515. function _u(n, t) {
  2516. n = oa.rgb(n), t = oa.rgb(t);
  2517. var r = n.r,
  2518. e = n.g,
  2519. u = n.b,
  2520. i = t.r - r,
  2521. o = t.g - e,
  2522. a = t.b - u;
  2523. return function(n) {
  2524. return "#" + Mt(Math.round(r + i * n)) + Mt(Math.round(e + o * n)) + Mt(Math.round(u + a * n))
  2525. }
  2526. }
  2527. function bu(n, t) {
  2528. var r, e = {},
  2529. u = {};
  2530. for (r in n) r in t ? e[r] = ku(n[r], t[r]) : u[r] = n[r];
  2531. for (r in t) r in n || (u[r] = t[r]);
  2532. return function(n) {
  2533. for (r in e) u[r] = e[r](n);
  2534. return u
  2535. }
  2536. }
  2537. function wu(n, t) {
  2538. return t -= n = +n, function(r) {
  2539. return n + t * r
  2540. }
  2541. }
  2542. function Su(n, t) {
  2543. var r, e, u, i, o, a = 0,
  2544. c = 0,
  2545. l = [],
  2546. s = [];
  2547. for (n += "", t += "", gl.lastIndex = 0, e = 0; r = gl.exec(t); ++e) r.index && l.push(t.substring(a, c = r.index)), s.push({
  2548. i: l.length,
  2549. x: r[0]
  2550. }), l.push(null), a = gl.lastIndex;
  2551. for (a < t.length && l.push(t.substring(a)), e = 0, i = s.length;
  2552. (r = gl.exec(n)) && i > e; ++e) if (o = s[e], o.x == r[0]) {
  2553. if (o.i) if (null == l[o.i + 1]) for (l[o.i - 1] += o.x, l.splice(o.i, 1), u = e + 1; i > u; ++u) s[u].i--;
  2554. else for (l[o.i - 1] += o.x + l[o.i + 1], l.splice(o.i, 2), u = e + 1; i > u; ++u) s[u].i -= 2;
  2555. else if (null == l[o.i + 1]) l[o.i] = o.x;
  2556. else for (l[o.i] = o.x + l[o.i + 1], l.splice(o.i + 1, 1), u = e + 1; i > u; ++u) s[u].i--;
  2557. s.splice(e, 1), i--, e--
  2558. } else o.x = wu(parseFloat(r[0]), parseFloat(o.x));
  2559. for (; i > e;) o = s.pop(), null == l[o.i + 1] ? l[o.i] = o.x : (l[o.i] = o.x + l[o.i + 1], l.splice(o.i + 1, 1)), i--;
  2560. return 1 === l.length ? null == l[0] ? (o = s[0].x, function(n) {
  2561. return o(n) + ""
  2562. }) : function() {
  2563. return t
  2564. } : function(n) {
  2565. for (e = 0; i > e; ++e) l[(o = s[e]).i] = o.x(n);
  2566. return l.join("")
  2567. }
  2568. }
  2569. function ku(n, t) {
  2570. for (var r, e = oa.interpolators.length; --e >= 0 && !(r = oa.interpolators[e](n, t)););
  2571. return r
  2572. }
  2573. function Eu(n, t) {
  2574. var r, e = [],
  2575. u = [],
  2576. i = n.length,
  2577. o = t.length,
  2578. a = Math.min(n.length, t.length);
  2579. for (r = 0; a > r; ++r) e.push(ku(n[r], t[r]));
  2580. for (; i > r; ++r) u[r] = n[r];
  2581. for (; o > r; ++r) u[r] = t[r];
  2582. return function(n) {
  2583. for (r = 0; a > r; ++r) u[r] = e[r](n);
  2584. return u
  2585. }
  2586. }
  2587. function Nu(n) {
  2588. return function(t) {
  2589. return 0 >= t ? 0 : t >= 1 ? 1 : n(t)
  2590. }
  2591. }
  2592. function Au(n) {
  2593. return function(t) {
  2594. return 1 - n(1 - t)
  2595. }
  2596. }
  2597. function Cu(n) {
  2598. return function(t) {
  2599. return .5 * (.5 > t ? n(2 * t) : 2 - n(2 - 2 * t))
  2600. }
  2601. }
  2602. function Lu(n) {
  2603. return n * n
  2604. }
  2605. function qu(n) {
  2606. return n * n * n
  2607. }
  2608. function Tu(n) {
  2609. if (0 >= n) return 0;
  2610. if (n >= 1) return 1;
  2611. var t = n * n,
  2612. r = t * n;
  2613. return 4 * (.5 > n ? r : 3 * (n - t) + r - .75)
  2614. }
  2615. function zu(n) {
  2616. return function(t) {
  2617. return Math.pow(t, n)
  2618. }
  2619. }
  2620. function Ru(n) {
  2621. return 1 - Math.cos(n * Ha)
  2622. }
  2623. function Du(n) {
  2624. return Math.pow(2, 10 * (n - 1))
  2625. }
  2626. function Pu(n) {
  2627. return 1 - Math.sqrt(1 - n * n)
  2628. }
  2629. function Uu(n, t) {
  2630. var r;
  2631. return arguments.length < 2 && (t = .45), arguments.length ? r = t / ja * Math.asin(1 / n) : (n = 1, r = t / 4), function(e) {
  2632. return 1 + n * Math.pow(2, -10 * e) * Math.sin((e - r) * ja / t)
  2633. }
  2634. }
  2635. function ju(n) {
  2636. return n || (n = 1.70158), function(t) {
  2637. return t * t * ((n + 1) * t - n)
  2638. }
  2639. }
  2640. function Hu(n) {
  2641. return 1 / 2.75 > n ? 7.5625 * n * n : 2 / 2.75 > n ? 7.5625 * (n -= 1.5 / 2.75) * n + .75 : 2.5 / 2.75 > n ? 7.5625 * (n -= 2.25 / 2.75) * n + .9375 : 7.5625 * (n -= 2.625 / 2.75) * n + .984375
  2642. }
  2643. function Fu(n, t) {
  2644. n = oa.hcl(n), t = oa.hcl(t);
  2645. var r = n.h,
  2646. e = n.c,
  2647. u = n.l,
  2648. i = t.h - r,
  2649. o = t.c - e,
  2650. a = t.l - u;
  2651. return isNaN(o) && (o = 0, e = isNaN(e) ? t.c : e), isNaN(i) ? (i = 0, r = isNaN(r) ? t.h : r) : i > 180 ? i -= 360 : -180 > i && (i += 360), function(n) {
  2652. return ct(r + i * n, e + o * n, u + a * n) + ""
  2653. }
  2654. }
  2655. function Ou(n, t) {
  2656. n = oa.hsl(n), t = oa.hsl(t);
  2657. var r = n.h,
  2658. e = n.s,
  2659. u = n.l,
  2660. i = t.h - r,
  2661. o = t.s - e,
  2662. a = t.l - u;
  2663. return isNaN(o) && (o = 0, e = isNaN(e) ? t.s : e), isNaN(i) ? (i = 0, r = isNaN(r) ? t.h : r) : i > 180 ? i -= 360 : -180 > i && (i += 360), function(n) {
  2664. return it(r + i * n, e + o * n, u + a * n) + ""
  2665. }
  2666. }
  2667. function Iu(n, t) {
  2668. n = oa.lab(n), t = oa.lab(t);
  2669. var r = n.l,
  2670. e = n.a,
  2671. u = n.b,
  2672. i = t.l - r,
  2673. o = t.a - e,
  2674. a = t.b - u;
  2675. return function(n) {
  2676. return ft(r + i * n, e + o * n, u + a * n) + ""
  2677. }
  2678. }
  2679. function Yu(n, t) {
  2680. return t -= n, function(r) {
  2681. return Math.round(n + t * r)
  2682. }
  2683. }
  2684. function Zu(n) {
  2685. var t = [n.a, n.b],
  2686. r = [n.c, n.d],
  2687. e = $u(t),
  2688. u = Vu(t, r),
  2689. i = $u(Xu(r, t, -u)) || 0;
  2690. t[0] * r[1] < r[0] * t[1] && (t[0] *= -1, t[1] *= -1, e *= -1, u *= -1), this.rotate = (e ? Math.atan2(t[1], t[0]) : Math.atan2(-r[0], r[1])) * Ya, this.translate = [n.e, n.f], this.scale = [e, i], this.skew = i ? Math.atan2(u, i) * Ya : 0
  2691. }
  2692. function Vu(n, t) {
  2693. return n[0] * t[0] + n[1] * t[1]
  2694. }
  2695. function $u(n) {
  2696. var t = Math.sqrt(Vu(n, n));
  2697. return t && (n[0] /= t, n[1] /= t), t
  2698. }
  2699. function Xu(n, t, r) {
  2700. return n[0] += r * t[0], n[1] += r * t[1], n
  2701. }
  2702. function Bu(n, t) {
  2703. var r, e = [],
  2704. u = [],
  2705. i = oa.transform(n),
  2706. o = oa.transform(t),
  2707. a = i.translate,
  2708. c = o.translate,
  2709. l = i.rotate,
  2710. s = o.rotate,
  2711. f = i.skew,
  2712. h = o.skew,
  2713. g = i.scale,
  2714. p = o.scale;
  2715. return a[0] != c[0] || a[1] != c[1] ? (e.push("translate(", null, ",", null, ")"), u.push({
  2716. i: 1,
  2717. x: wu(a[0], c[0])
  2718. }, {
  2719. i: 3,
  2720. x: wu(a[1], c[1])
  2721. })) : c[0] || c[1] ? e.push("translate(" + c + ")") : e.push(""), l != s ? (l - s > 180 ? s += 360 : s - l > 180 && (l += 360), u.push({
  2722. i: e.push(e.pop() + "rotate(", null, ")") - 2,
  2723. x: wu(l, s)
  2724. })) : s && e.push(e.pop() + "rotate(" + s + ")"), f != h ? u.push({
  2725. i: e.push(e.pop() + "skewX(", null, ")") - 2,
  2726. x: wu(f, h)
  2727. }) : h && e.push(e.pop() + "skewX(" + h + ")"), g[0] != p[0] || g[1] != p[1] ? (r = e.push(e.pop() + "scale(", null, ",", null, ")"), u.push({
  2728. i: r - 4,
  2729. x: wu(g[0], p[0])
  2730. }, {
  2731. i: r - 2,
  2732. x: wu(g[1], p[1])
  2733. })) : (1 != p[0] || 1 != p[1]) && e.push(e.pop() + "scale(" + p + ")"), r = u.length, function(n) {
  2734. for (var t, i = -1; ++i < r;) e[(t = u[i]).i] = t.x(n);
  2735. return e.join("")
  2736. }
  2737. }
  2738. function Ju(n, t) {
  2739. return t = t - (n = +n) ? 1 / (t - n) : 0, function(r) {
  2740. return (r - n) * t
  2741. }
  2742. }
  2743. function Wu(n, t) {
  2744. return t = t - (n = +n) ? 1 / (t - n) : 0, function(r) {
  2745. return Math.max(0, Math.min(1, (r - n) * t))
  2746. }
  2747. }
  2748. function Gu(n) {
  2749. for (var t = n.source, r = n.target, e = Qu(t, r), u = [t]; t !== e;) t = t.parent, u.push(t);
  2750. for (var i = u.length; r !== e;) u.splice(i, 0, r), r = r.parent;
  2751. return u
  2752. }
  2753. function Ku(n) {
  2754. for (var t = [], r = n.parent; null != r;) t.push(n), n = r, r = r.parent;
  2755. return t.push(n), t
  2756. }
  2757. function Qu(n, t) {
  2758. if (n === t) return n;
  2759. for (var r = Ku(n), e = Ku(t), u = r.pop(), i = e.pop(), o = null; u === i;) o = u, u = r.pop(), i = e.pop();
  2760. return o
  2761. }
  2762. function ni(n) {
  2763. n.fixed |= 2
  2764. }
  2765. function ti(n) {
  2766. n.fixed &= -7
  2767. }
  2768. function ri(n) {
  2769. n.fixed |= 4, n.px = n.x, n.py = n.y
  2770. }
  2771. function ei(n) {
  2772. n.fixed &= -5
  2773. }
  2774. function ui(n, t, r) {
  2775. var e = 0,
  2776. u = 0;
  2777. if (n.charge = 0, !n.leaf) for (var i, o = n.nodes, a = o.length, c = -1; ++c < a;) i = o[c], null != i && (ui(i, t, r), n.charge += i.charge, e += i.charge * i.cx, u += i.charge * i.cy);
  2778. if (n.point) {
  2779. n.leaf || (n.point.x += Math.random() - .5, n.point.y += Math.random() - .5);
  2780. var l = t * r[n.point.index];
  2781. n.charge += n.pointCharge = l, e += l * n.point.x, u += l * n.point.y
  2782. }
  2783. n.cx = e / n.charge, n.cy = u / n.charge
  2784. }
  2785. function ii(n, t) {
  2786. return oa.rebind(n, t, "sort", "children", "value"), n.nodes = n, n.links = li, n
  2787. }
  2788. function oi(n) {
  2789. return n.children
  2790. }
  2791. function ai(n) {
  2792. return n.value
  2793. }
  2794. function ci(n, t) {
  2795. return t.value - n.value
  2796. }
  2797. function li(n) {
  2798. return oa.merge(n.map(function(n) {
  2799. return (n.children || []).map(function(t) {
  2800. return {
  2801. source: n,
  2802. target: t
  2803. }
  2804. })
  2805. }))
  2806. }
  2807. function si(n) {
  2808. return n.x
  2809. }
  2810. function fi(n) {
  2811. return n.y
  2812. }
  2813. function hi(n, t, r) {
  2814. n.y0 = t, n.y = r
  2815. }
  2816. function gi(n) {
  2817. return oa.range(n.length)
  2818. }
  2819. function pi(n) {
  2820. for (var t = -1, r = n[0].length, e = []; ++t < r;) e[t] = 0;
  2821. return e
  2822. }
  2823. function vi(n) {
  2824. for (var t, r = 1, e = 0, u = n[0][1], i = n.length; i > r; ++r)(t = n[r][1]) > u && (e = r, u = t);
  2825. return e
  2826. }
  2827. function di(n) {
  2828. return n.reduce(mi, 0)
  2829. }
  2830. function mi(n, t) {
  2831. return n + t[1]
  2832. }
  2833. function yi(n, t) {
  2834. return xi(n, Math.ceil(Math.log(t.length) / Math.LN2 + 1))
  2835. }
  2836. function xi(n, t) {
  2837. for (var r = -1, e = +n[0], u = (n[1] - e) / t, i = []; ++r <= t;) i[r] = u * r + e;
  2838. return i
  2839. }
  2840. function Mi(n) {
  2841. return [oa.min(n), oa.max(n)]
  2842. }
  2843. function _i(n, t) {
  2844. return n.parent == t.parent ? 1 : 2
  2845. }
  2846. function bi(n) {
  2847. var t = n.children;
  2848. return t && t.length ? t[0] : n._tree.thread
  2849. }
  2850. function wi(n) {
  2851. var t, r = n.children;
  2852. return r && (t = r.length) ? r[t - 1] : n._tree.thread
  2853. }
  2854. function Si(n, t) {
  2855. var r = n.children;
  2856. if (r && (u = r.length)) for (var e, u, i = -1; ++i < u;) t(e = Si(r[i], t), n) > 0 && (n = e);
  2857. return n
  2858. }
  2859. function ki(n, t) {
  2860. return n.x - t.x
  2861. }
  2862. function Ei(n, t) {
  2863. return t.x - n.x
  2864. }
  2865. function Ni(n, t) {
  2866. return n.depth - t.depth
  2867. }
  2868. function Ai(n, t) {
  2869. function r(n, e) {
  2870. var u = n.children;
  2871. if (u && (o = u.length)) for (var i, o, a = null, c = -1; ++c < o;) i = u[c], r(i, a), a = i;
  2872. t(n, e)
  2873. }
  2874. r(n, null)
  2875. }
  2876. function Ci(n) {
  2877. for (var t, r = 0, e = 0, u = n.children, i = u.length; --i >= 0;) t = u[i]._tree, t.prelim += r, t.mod += r, r += t.shift + (e += t.change)
  2878. }
  2879. function Li(n, t, r) {
  2880. n = n._tree, t = t._tree;
  2881. var e = r / (t.number - n.number);
  2882. n.change += e, t.change -= e, t.shift += r, t.prelim += r, t.mod += r
  2883. }
  2884. function qi(n, t, r) {
  2885. return n._tree.ancestor.parent == t.parent ? n._tree.ancestor : r
  2886. }
  2887. function Ti(n, t) {
  2888. return n.value - t.value
  2889. }
  2890. function zi(n, t) {
  2891. var r = n._pack_next;
  2892. n._pack_next = t, t._pack_prev = n, t._pack_next = r, r._pack_prev = t
  2893. }
  2894. function Ri(n, t) {
  2895. n._pack_next = t, t._pack_prev = n
  2896. }
  2897. function Di(n, t) {
  2898. var r = t.x - n.x,
  2899. e = t.y - n.y,
  2900. u = n.r + t.r;
  2901. return .999 * u * u > r * r + e * e
  2902. }
  2903. function Pi(n) {
  2904. function t(n) {
  2905. s = Math.min(n.x - n.r, s), f = Math.max(n.x + n.r, f), h = Math.min(n.y - n.r, h), g = Math.max(n.y + n.r, g)
  2906. }
  2907. if ((r = n.children) && (l = r.length)) {
  2908. var r, e, u, i, o, a, c, l, s = 1 / 0,
  2909. f = -1 / 0,
  2910. h = 1 / 0,
  2911. g = -1 / 0;
  2912. if (r.forEach(Ui), e = r[0], e.x = -e.r, e.y = 0, t(e), l > 1 && (u = r[1], u.x = u.r, u.y = 0, t(u), l > 2)) for (i = r[2], Fi(e, u, i), t(i), zi(e, i), e._pack_prev = i, zi(i, u), u = e._pack_next, o = 3; l > o; o++) {
  2913. Fi(e, u, i = r[o]);
  2914. var p = 0,
  2915. v = 1,
  2916. d = 1;
  2917. for (a = u._pack_next; a !== u; a = a._pack_next, v++) if (Di(a, i)) {
  2918. p = 1;
  2919. break
  2920. }
  2921. if (1 == p) for (c = e._pack_prev; c !== a._pack_prev && !Di(c, i); c = c._pack_prev, d++);
  2922. p ? (d > v || v == d && u.r < e.r ? Ri(e, u = a) : Ri(e = c, u), o--) : (zi(e, i), u = i, t(i))
  2923. }
  2924. var m = (s + f) / 2,
  2925. y = (h + g) / 2,
  2926. x = 0;
  2927. for (o = 0; l > o; o++) i = r[o], i.x -= m, i.y -= y, x = Math.max(x, i.r + Math.sqrt(i.x * i.x + i.y * i.y));
  2928. n.r = x, r.forEach(ji)
  2929. }
  2930. }
  2931. function Ui(n) {
  2932. n._pack_next = n._pack_prev = n
  2933. }
  2934. function ji(n) {
  2935. delete n._pack_next, delete n._pack_prev
  2936. }
  2937. function Hi(n, t, r, e) {
  2938. var u = n.children;
  2939. if (n.x = t += e * n.x, n.y = r += e * n.y, n.r *= e, u) for (var i = -1, o = u.length; ++i < o;) Hi(u[i], t, r, e)
  2940. }
  2941. function Fi(n, t, r) {
  2942. var e = n.r + r.r,
  2943. u = t.x - n.x,
  2944. i = t.y - n.y;
  2945. if (e && (u || i)) {
  2946. var o = t.r + r.r,
  2947. a = u * u + i * i;
  2948. o *= o, e *= e;
  2949. var c = .5 + (e - o) / (2 * a),
  2950. l = Math.sqrt(Math.max(0, 2 * o * (e + a) - (e -= a) * e - o * o)) / (2 * a);
  2951. r.x = n.x + c * u + l * i, r.y = n.y + c * i - l * u
  2952. } else r.x = n.x + e, r.y = n.y
  2953. }
  2954. function Oi(n) {
  2955. return 1 + oa.max(n, function(n) {
  2956. return n.y
  2957. })
  2958. }
  2959. function Ii(n) {
  2960. return n.reduce(function(n, t) {
  2961. return n + t.x
  2962. }, 0) / n.length
  2963. }
  2964. function Yi(n) {
  2965. var t = n.children;
  2966. return t && t.length ? Yi(t[0]) : n
  2967. }
  2968. function Zi(n) {
  2969. var t, r = n.children;
  2970. return r && (t = r.length) ? Zi(r[t - 1]) : n
  2971. }
  2972. function Vi(n) {
  2973. return {
  2974. x: n.x,
  2975. y: n.y,
  2976. dx: n.dx,
  2977. dy: n.dy
  2978. }
  2979. }
  2980. function $i(n, t) {
  2981. var r = n.x + t[3],
  2982. e = n.y + t[0],
  2983. u = n.dx - t[1] - t[3],
  2984. i = n.dy - t[0] - t[2];
  2985. return 0 > u && (r += u / 2, u = 0), 0 > i && (e += i / 2, i = 0), {
  2986. x: r,
  2987. y: e,
  2988. dx: u,
  2989. dy: i
  2990. }
  2991. }
  2992. function Xi(n) {
  2993. var t = n[0],
  2994. r = n[n.length - 1];
  2995. return r > t ? [t, r] : [r, t]
  2996. }
  2997. function Bi(n) {
  2998. return n.rangeExtent ? n.rangeExtent() : Xi(n.range())
  2999. }
  3000. function Ji(n, t, r, e) {
  3001. var u = r(n[0], n[1]),
  3002. i = e(t[0], t[1]);
  3003. return function(n) {
  3004. return i(u(n))
  3005. }
  3006. }
  3007. function Wi(n, t) {
  3008. var r, e = 0,
  3009. u = n.length - 1,
  3010. i = n[e],
  3011. o = n[u];
  3012. return i > o && (r = e, e = u, u = r, r = i, i = o, o = r), n[e] = t.floor(i), n[u] = t.ceil(o), n
  3013. }
  3014. function Gi(n) {
  3015. return n ? {
  3016. floor: function(t) {
  3017. return Math.floor(t / n) * n
  3018. },
  3019. ceil: function(t) {
  3020. return Math.ceil(t / n) * n
  3021. }
  3022. } : Sl
  3023. }
  3024. function Ki(n, t, r, e) {
  3025. var u = [],
  3026. i = [],
  3027. o = 0,
  3028. a = Math.min(n.length, t.length) - 1;
  3029. for (n[a] < n[0] && (n = n.slice().reverse(), t = t.slice().reverse()); ++o <= a;) u.push(r(n[o - 1], n[o])), i.push(e(t[o - 1], t[o]));
  3030. return function(t) {
  3031. var r = oa.bisect(n, t, 1, a) - 1;
  3032. return i[r](u[r](t))
  3033. }
  3034. }
  3035. function Qi(n, t, r, e) {
  3036. function u() {
  3037. var u = Math.min(n.length, t.length) > 2 ? Ki : Ji,
  3038. c = e ? Wu : Ju;
  3039. return o = u(n, t, c, r), a = u(t, n, c, ku), i
  3040. }
  3041. function i(n) {
  3042. return o(n)
  3043. }
  3044. var o, a;
  3045. return i.invert = function(n) {
  3046. return a(n)
  3047. }, i.domain = function(t) {
  3048. return arguments.length ? (n = t.map(Number), u()) : n
  3049. }, i.range = function(n) {
  3050. return arguments.length ? (t = n, u()) : t
  3051. }, i.rangeRound = function(n) {
  3052. return i.range(n).interpolate(Yu)
  3053. }, i.clamp = function(n) {
  3054. return arguments.length ? (e = n, u()) : e
  3055. }, i.interpolate = function(n) {
  3056. return arguments.length ? (r = n, u()) : r
  3057. }, i.ticks = function(t) {
  3058. return eo(n, t)
  3059. }, i.tickFormat = function(t, r) {
  3060. return uo(n, t, r)
  3061. }, i.nice = function(t) {
  3062. return to(n, t), u()
  3063. }, i.copy = function() {
  3064. return Qi(n, t, r, e)
  3065. }, u()
  3066. }
  3067. function no(n, t) {
  3068. return oa.rebind(n, t, "range", "rangeRound", "interpolate", "clamp")
  3069. }
  3070. function to(n, t) {
  3071. return Wi(n, Gi(ro(n, t)[2]))
  3072. }
  3073. function ro(n, t) {
  3074. null == t && (t = 10);
  3075. var r = Xi(n),
  3076. e = r[1] - r[0],
  3077. u = Math.pow(10, Math.floor(Math.log(e / t) / Math.LN10)),
  3078. i = t / e * u;
  3079. return .15 >= i ? u *= 10 : .35 >= i ? u *= 5 : .75 >= i && (u *= 2), r[0] = Math.ceil(r[0] / u) * u, r[1] = Math.floor(r[1] / u) * u + .5 * u, r[2] = u, r
  3080. }
  3081. function eo(n, t) {
  3082. return oa.range.apply(oa, ro(n, t))
  3083. }
  3084. function uo(n, t, r) {
  3085. var e = ro(n, t);
  3086. if (r) {
  3087. var u = hc.exec(r);
  3088. if (u.shift(), "s" === u[8]) {
  3089. var i = oa.formatPrefix(Math.max(Ma(e[0]), Ma(e[1])));
  3090. return u[7] || (u[7] = "." + io(i.scale(e[2]))), u[8] = "f", r = oa.format(u.join("")), function(n) {
  3091. return r(i.scale(n)) + i.symbol
  3092. }
  3093. }
  3094. u[7] || (u[7] = "." + oo(u[8], e)), r = u.join("")
  3095. } else r = ",." + io(e[2]) + "f";
  3096. return oa.format(r)
  3097. }
  3098. function io(n) {
  3099. return -Math.floor(Math.log(n) / Math.LN10 + .01)
  3100. }
  3101. function oo(n, t) {
  3102. var r = io(t[2]);
  3103. return n in kl ? Math.abs(r - io(Math.max(Ma(t[0]), Ma(t[1])))) + +("e" !== n) : r - 2 * ("%" === n)
  3104. }
  3105. function ao(n, t, r, e) {
  3106. function u(n) {
  3107. return (r ? Math.log(0 > n ? 0 : n) : -Math.log(n > 0 ? 0 : -n)) / Math.log(t)
  3108. }
  3109. function i(n) {
  3110. return r ? Math.pow(t, n) : -Math.pow(t, -n)
  3111. }
  3112. function o(t) {
  3113. return n(u(t))
  3114. }
  3115. return o.invert = function(t) {
  3116. return i(n.invert(t))
  3117. }, o.domain = function(t) {
  3118. return arguments.length ? (r = t[0] >= 0, n.domain((e = t.map(Number)).map(u)), o) : e
  3119. }, o.base = function(r) {
  3120. return arguments.length ? (t = +r, n.domain(e.map(u)), o) : t
  3121. }, o.nice = function() {
  3122. var t = Wi(e.map(u), r ? Math : Nl);
  3123. return n.domain(t), e = t.map(i), o
  3124. }, o.ticks = function() {
  3125. var n = Xi(e),
  3126. o = [],
  3127. a = n[0],
  3128. c = n[1],
  3129. l = Math.floor(u(a)),
  3130. s = Math.ceil(u(c)),
  3131. f = t % 1 ? 2 : t;
  3132. if (isFinite(s - l)) {
  3133. if (r) {
  3134. for (; s > l; l++) for (var h = 1; f > h; h++) o.push(i(l) * h);
  3135. o.push(i(l))
  3136. } else for (o.push(i(l)); l++ < s;) for (var h = f - 1; h > 0; h--) o.push(i(l) * h);
  3137. for (l = 0; o[l] < a; l++);
  3138. for (s = o.length; o[s - 1] > c; s--);
  3139. o = o.slice(l, s)
  3140. }
  3141. return o
  3142. }, o.tickFormat = function(n, t) {
  3143. if (!arguments.length) return El;
  3144. arguments.length < 2 ? t = El : "function" != typeof t && (t = oa.format(t));
  3145. var e, a = Math.max(.1, n / o.ticks().length),
  3146. c = r ? (e = 1e-12, Math.ceil) : (e = -1e-12, Math.floor);
  3147. return function(n) {
  3148. return n / i(c(u(n) + e)) <= a ? t(n) : ""
  3149. }
  3150. }, o.copy = function() {
  3151. return ao(n.copy(), t, r, e)
  3152. }, no(o, n)
  3153. }
  3154. function co(n, t, r) {
  3155. function e(t) {
  3156. return n(u(t))
  3157. }
  3158. var u = lo(t),
  3159. i = lo(1 / t);
  3160. return e.invert = function(t) {
  3161. return i(n.invert(t))
  3162. }, e.domain = function(t) {
  3163. return arguments.length ? (n.domain((r = t.map(Number)).map(u)), e) : r
  3164. }, e.ticks = function(n) {
  3165. return eo(r, n)
  3166. }, e.tickFormat = function(n, t) {
  3167. return uo(r, n, t)
  3168. }, e.nice = function(n) {
  3169. return e.domain(to(r, n))
  3170. }, e.exponent = function(o) {
  3171. return arguments.length ? (u = lo(t = o), i = lo(1 / t), n.domain(r.map(u)), e) : t
  3172. }, e.copy = function() {
  3173. return co(n.copy(), t, r)
  3174. }, no(e, n)
  3175. }
  3176. function lo(n) {
  3177. return function(t) {
  3178. return 0 > t ? -Math.pow(-t, n) : Math.pow(t, n)
  3179. }
  3180. }
  3181. function so(n, t) {
  3182. function r(r) {
  3183. return i[((u.get(r) || ("range" === t.t ? u.set(r, n.push(r)) : 0 / 0)) - 1) % i.length]
  3184. }
  3185. function e(t, r) {
  3186. return oa.range(n.length).map(function(n) {
  3187. return t + r * n
  3188. })
  3189. }
  3190. var u, i, a;
  3191. return r.domain = function(e) {
  3192. if (!arguments.length) return n;
  3193. n = [], u = new o;
  3194. for (var i, a = -1, c = e.length; ++a < c;) u.has(i = e[a]) || u.set(i, n.push(i));
  3195. return r[t.t].apply(r, t.a)
  3196. }, r.range = function(n) {
  3197. return arguments.length ? (i = n, a = 0, t = {
  3198. t: "range",
  3199. a: arguments
  3200. }, r) : i
  3201. }, r.rangePoints = function(u, o) {
  3202. arguments.length < 2 && (o = 0);
  3203. var c = u[0],
  3204. l = u[1],
  3205. s = (l - c) / (Math.max(1, n.length - 1) + o);
  3206. return i = e(n.length < 2 ? (c + l) / 2 : c + s * o / 2, s), a = 0, t = {
  3207. t: "rangePoints",
  3208. a: arguments
  3209. }, r
  3210. }, r.rangeBands = function(u, o, c) {
  3211. arguments.length < 2 && (o = 0), arguments.length < 3 && (c = o);
  3212. var l = u[1] < u[0],
  3213. s = u[l - 0],
  3214. f = u[1 - l],
  3215. h = (f - s) / (n.length - o + 2 * c);
  3216. return i = e(s + h * c, h), l && i.reverse(), a = h * (1 - o), t = {
  3217. t: "rangeBands",
  3218. a: arguments
  3219. }, r
  3220. }, r.rangeRoundBands = function(u, o, c) {
  3221. arguments.length < 2 && (o = 0), arguments.length < 3 && (c = o);
  3222. var l = u[1] < u[0],
  3223. s = u[l - 0],
  3224. f = u[1 - l],
  3225. h = Math.floor((f - s) / (n.length - o + 2 * c)),
  3226. g = f - s - (n.length - o) * h;
  3227. return i = e(s + Math.round(g / 2), h), l && i.reverse(), a = Math.round(h * (1 - o)), t = {
  3228. t: "rangeRoundBands",
  3229. a: arguments
  3230. }, r
  3231. }, r.rangeBand = function() {
  3232. return a
  3233. }, r.rangeExtent = function() {
  3234. return Xi(t.a[0])
  3235. }, r.copy = function() {
  3236. return so(n, t)
  3237. }, r.domain(n)
  3238. }
  3239. function fo(t, r) {
  3240. function e() {
  3241. var n = 0,
  3242. e = r.length;
  3243. for (i = []; ++n < e;) i[n - 1] = oa.quantile(t, n / e);
  3244. return u
  3245. }
  3246. function u(n) {
  3247. return isNaN(n = +n) ? void 0 : r[oa.bisect(i, n)]
  3248. }
  3249. var i;
  3250. return u.domain = function(r) {
  3251. return arguments.length ? (t = r.filter(function(n) {
  3252. return !isNaN(n)
  3253. }).sort(n), e()) : t
  3254. }, u.range = function(n) {
  3255. return arguments.length ? (r = n, e()) : r
  3256. }, u.quantiles = function() {
  3257. return i
  3258. }, u.invertExtent = function(n) {
  3259. return n = r.indexOf(n), 0 > n ? [0 / 0, 0 / 0] : [n > 0 ? i[n - 1] : t[0], n < i.length ? i[n] : t[t.length - 1]]
  3260. }, u.copy = function() {
  3261. return fo(t, r)
  3262. }, e()
  3263. }
  3264. function ho(n, t, r) {
  3265. function e(t) {
  3266. return r[Math.max(0, Math.min(o, Math.floor(i * (t - n))))]
  3267. }
  3268. function u() {
  3269. return i = r.length / (t - n), o = r.length - 1, e
  3270. }
  3271. var i, o;
  3272. return e.domain = function(r) {
  3273. return arguments.length ? (n = +r[0], t = +r[r.length - 1], u()) : [n, t]
  3274. }, e.range = function(n) {
  3275. return arguments.length ? (r = n, u()) : r
  3276. }, e.invertExtent = function(t) {
  3277. return t = r.indexOf(t), t = 0 > t ? 0 / 0 : t / i + n, [t, t + 1 / i]
  3278. }, e.copy = function() {
  3279. return ho(n, t, r)
  3280. }, u()
  3281. }
  3282. function go(n, t) {
  3283. function r(r) {
  3284. return r >= r ? t[oa.bisect(n, r)] : void 0
  3285. }
  3286. return r.domain = function(t) {
  3287. return arguments.length ? (n = t, r) : n
  3288. }, r.range = function(n) {
  3289. return arguments.length ? (t = n, r) : t
  3290. }, r.invertExtent = function(r) {
  3291. return r = t.indexOf(r), [n[r - 1], n[r]]
  3292. }, r.copy = function() {
  3293. return go(n, t)
  3294. }, r
  3295. }
  3296. function po(n) {
  3297. function t(n) {
  3298. return +n
  3299. }
  3300. return t.invert = t, t.domain = t.range = function(r) {
  3301. return arguments.length ? (n = r.map(t), t) : n
  3302. }, t.ticks = function(t) {
  3303. return eo(n, t)
  3304. }, t.tickFormat = function(t, r) {
  3305. return uo(n, t, r)
  3306. }, t.copy = function() {
  3307. return po(n)
  3308. }, t
  3309. }
  3310. function vo(n) {
  3311. return n.innerRadius
  3312. }
  3313. function mo(n) {
  3314. return n.outerRadius
  3315. }
  3316. function yo(n) {
  3317. return n.startAngle
  3318. }
  3319. function xo(n) {
  3320. return n.endAngle
  3321. }
  3322. function Mo(n) {
  3323. function t(t) {
  3324. function o() {
  3325. l.push("M", i(n(s), a))
  3326. }
  3327. for (var c, l = [], s = [], f = -1, h = t.length, g = Et(r), p = Et(e); ++f < h;) u.call(this, c = t[f], f) ? s.push([+g.call(this, c, f), +p.call(this, c, f)]) : s.length && (o(), s = []);
  3328. return s.length && o(), l.length ? l.join("") : null
  3329. }
  3330. var r = Pe,
  3331. e = Ue,
  3332. u = Cr,
  3333. i = _o,
  3334. o = i.key,
  3335. a = .7;
  3336. return t.x = function(n) {
  3337. return arguments.length ? (r = n, t) : r
  3338. }, t.y = function(n) {
  3339. return arguments.length ? (e = n, t) : e
  3340. }, t.defined = function(n) {
  3341. return arguments.length ? (u = n, t) : u
  3342. }, t.interpolate = function(n) {
  3343. return arguments.length ? (o = "function" == typeof n ? i = n : (i = Rl.get(n) || _o).key, t) : o
  3344. }, t.tension = function(n) {
  3345. return arguments.length ? (a = n, t) : a
  3346. }, t
  3347. }
  3348. function _o(n) {
  3349. return n.join("L")
  3350. }
  3351. function bo(n) {
  3352. return _o(n) + "Z"
  3353. }
  3354. function wo(n) {
  3355. for (var t = 0, r = n.length, e = n[0], u = [e[0], ",", e[1]]; ++t < r;) u.push("H", (e[0] + (e = n[t])[0]) / 2, "V", e[1]);
  3356. return r > 1 && u.push("H", e[0]), u.join("")
  3357. }
  3358. function So(n) {
  3359. for (var t = 0, r = n.length, e = n[0], u = [e[0], ",", e[1]]; ++t < r;) u.push("V", (e = n[t])[1], "H", e[0]);
  3360. return u.join("")
  3361. }
  3362. function ko(n) {
  3363. for (var t = 0, r = n.length, e = n[0], u = [e[0], ",", e[1]]; ++t < r;) u.push("H", (e = n[t])[0], "V", e[1]);
  3364. return u.join("")
  3365. }
  3366. function Eo(n, t) {
  3367. return n.length < 4 ? _o(n) : n[1] + Co(n.slice(1, n.length - 1), Lo(n, t))
  3368. }
  3369. function No(n, t) {
  3370. return n.length < 3 ? _o(n) : n[0] + Co((n.push(n[0]), n), Lo([n[n.length - 2]].concat(n, [n[1]]), t))
  3371. }
  3372. function Ao(n, t) {
  3373. return n.length < 3 ? _o(n) : n[0] + Co(n, Lo(n, t))
  3374. }
  3375. function Co(n, t) {
  3376. if (t.length < 1 || n.length != t.length && n.length != t.length + 2) return _o(n);
  3377. var r = n.length != t.length,
  3378. e = "",
  3379. u = n[0],
  3380. i = n[1],
  3381. o = t[0],
  3382. a = o,
  3383. c = 1;
  3384. if (r && (e += "Q" + (i[0] - 2 * o[0] / 3) + "," + (i[1] - 2 * o[1] / 3) + "," + i[0] + "," + i[1], u = n[1], c = 2), t.length > 1) {
  3385. a = t[1], i = n[c], c++, e += "C" + (u[0] + o[0]) + "," + (u[1] + o[1]) + "," + (i[0] - a[0]) + "," + (i[1] - a[1]) + "," + i[0] + "," + i[1];
  3386. for (var l = 2; l < t.length; l++, c++) i = n[c], a = t[l], e += "S" + (i[0] - a[0]) + "," + (i[1] - a[1]) + "," + i[0] + "," + i[1]
  3387. }
  3388. if (r) {
  3389. var s = n[c];
  3390. e += "Q" + (i[0] + 2 * a[0] / 3) + "," + (i[1] + 2 * a[1] / 3) + "," + s[0] + "," + s[1]
  3391. }
  3392. return e
  3393. }
  3394. function Lo(n, t) {
  3395. for (var r, e = [], u = (1 - t) / 2, i = n[0], o = n[1], a = 1, c = n.length; ++a < c;) r = i, i = o, o = n[a], e.push([u * (o[0] - r[0]), u * (o[1] - r[1])]);
  3396. return e
  3397. }
  3398. function qo(n) {
  3399. if (n.length < 3) return _o(n);
  3400. var t = 1,
  3401. r = n.length,
  3402. e = n[0],
  3403. u = e[0],
  3404. i = e[1],
  3405. o = [u, u, u, (e = n[1])[0]],
  3406. a = [i, i, i, e[1]],
  3407. c = [u, ",", i, "L", Do(Ul, o), ",", Do(Ul, a)];
  3408. for (n.push(n[r - 1]); ++t <= r;) e = n[t], o.shift(), o.push(e[0]), a.shift(), a.push(e[1]), Po(c, o, a);
  3409. return n.pop(), c.push("L", e), c.join("")
  3410. }
  3411. function To(n) {
  3412. if (n.length < 4) return _o(n);
  3413. for (var t, r = [], e = -1, u = n.length, i = [0], o = [0]; ++e < 3;) t = n[e], i.push(t[0]), o.push(t[1]);
  3414. for (r.push(Do(Ul, i) + "," + Do(Ul, o)), --e; ++e < u;) t = n[e], i.shift(), i.push(t[0]), o.shift(), o.push(t[1]), Po(r, i, o);
  3415. return r.join("")
  3416. }
  3417. function zo(n) {
  3418. for (var t, r, e = -1, u = n.length, i = u + 4, o = [], a = []; ++e < 4;) r = n[e % u], o.push(r[0]), a.push(r[1]);
  3419. for (t = [Do(Ul, o), ",", Do(Ul, a)], --e; ++e < i;) r = n[e % u], o.shift(), o.push(r[0]), a.shift(), a.push(r[1]), Po(t, o, a);
  3420. return t.join("")
  3421. }
  3422. function Ro(n, t) {
  3423. var r = n.length - 1;
  3424. if (r) for (var e, u, i = n[0][0], o = n[0][1], a = n[r][0] - i, c = n[r][1] - o, l = -1; ++l <= r;) e = n[l], u = l / r, e[0] = t * e[0] + (1 - t) * (i + u * a), e[1] = t * e[1] + (1 - t) * (o + u * c);
  3425. return qo(n)
  3426. }
  3427. function Do(n, t) {
  3428. return n[0] * t[0] + n[1] * t[1] + n[2] * t[2] + n[3] * t[3]
  3429. }
  3430. function Po(n, t, r) {
  3431. n.push("C", Do(Dl, t), ",", Do(Dl, r), ",", Do(Pl, t), ",", Do(Pl, r), ",", Do(Ul, t), ",", Do(Ul, r))
  3432. }
  3433. function Uo(n, t) {
  3434. return (t[1] - n[1]) / (t[0] - n[0])
  3435. }
  3436. function jo(n) {
  3437. for (var t = 0, r = n.length - 1, e = [], u = n[0], i = n[1], o = e[0] = Uo(u, i); ++t < r;) e[t] = (o + (o = Uo(u = i, i = n[t + 1]))) / 2;
  3438. return e[t] = o, e
  3439. }
  3440. function Ho(n) {
  3441. for (var t, r, e, u, i = [], o = jo(n), a = -1, c = n.length - 1; ++a < c;) t = Uo(n[a], n[a + 1]), Ma(t) < Fa ? o[a] = o[a + 1] = 0 : (r = o[a] / t, e = o[a + 1] / t, u = r * r + e * e, u > 9 && (u = 3 * t / Math.sqrt(u), o[a] = u * r, o[a + 1] = u * e));
  3442. for (a = -1; ++a <= c;) u = (n[Math.min(c, a + 1)][0] - n[Math.max(0, a - 1)][0]) / (6 * (1 + o[a] * o[a])), i.push([u || 0, o[a] * u || 0]);
  3443. return i
  3444. }
  3445. function Fo(n) {
  3446. return n.length < 3 ? _o(n) : n[0] + Co(n, Ho(n))
  3447. }
  3448. function Oo(n) {
  3449. for (var t, r, e, u = -1, i = n.length; ++u < i;) t = n[u], r = t[0], e = t[1] + Tl, t[0] = r * Math.cos(e), t[1] = r * Math.sin(e);
  3450. return n
  3451. }
  3452. function Io(n) {
  3453. function t(t) {
  3454. function c() {
  3455. v.push("M", a(n(m), f), s, l(n(d.reverse()), f), "Z")
  3456. }
  3457. for (var h, g, p, v = [], d = [], m = [], y = -1, x = t.length, M = Et(r), _ = Et(u), b = r === e ?
  3458. function() {
  3459. return g
  3460. } : Et(e), w = u === i ?
  3461. function() {
  3462. return p
  3463. } : Et(i); ++y < x;) o.call(this, h = t[y], y) ? (d.push([g = +M.call(this, h, y), p = +_.call(this, h, y)]), m.push([+b.call(this, h, y), +w.call(this, h, y)])) : d.length && (c(), d = [], m = []);
  3464. return d.length && c(), v.length ? v.join("") : null
  3465. }
  3466. var r = Pe,
  3467. e = Pe,
  3468. u = 0,
  3469. i = Ue,
  3470. o = Cr,
  3471. a = _o,
  3472. c = a.key,
  3473. l = a,
  3474. s = "L",
  3475. f = .7;
  3476. return t.x = function(n) {
  3477. return arguments.length ? (r = e = n, t) : e
  3478. }, t.x0 = function(n) {
  3479. return arguments.length ? (r = n, t) : r
  3480. }, t.x1 = function(n) {
  3481. return arguments.length ? (e = n, t) : e
  3482. }, t.y = function(n) {
  3483. return arguments.length ? (u = i = n, t) : i
  3484. }, t.y0 = function(n) {
  3485. return arguments.length ? (u = n, t) : u
  3486. }, t.y1 = function(n) {
  3487. return arguments.length ? (i = n, t) : i
  3488. }, t.defined = function(n) {
  3489. return arguments.length ? (o = n, t) : o
  3490. }, t.interpolate = function(n) {
  3491. return arguments.length ? (c = "function" == typeof n ? a = n : (a = Rl.get(n) || _o).key, l = a.reverse || a, s = a.closed ? "M" : "L", t) : c
  3492. }, t.tension = function(n) {
  3493. return arguments.length ? (f = n, t) : f
  3494. }, t
  3495. }
  3496. function Yo(n) {
  3497. return n.radius
  3498. }
  3499. function Zo(n) {
  3500. return [n.x, n.y]
  3501. }
  3502. function Vo(n) {
  3503. return function() {
  3504. var t = n.apply(this, arguments),
  3505. r = t[0],
  3506. e = t[1] + Tl;
  3507. return [r * Math.cos(e), r * Math.sin(e)]
  3508. }
  3509. }
  3510. function $o() {
  3511. return 64
  3512. }
  3513. function Xo() {
  3514. return "circle"
  3515. }
  3516. function Bo(n) {
  3517. var t = Math.sqrt(n / Ua);
  3518. return "M0," + t + "A" + t + "," + t + " 0 1,1 0," + -t + "A" + t + "," + t + " 0 1,1 0," + t + "Z"
  3519. }
  3520. function Jo(n, t) {
  3521. return ka(n, Yl), n.id = t, n
  3522. }
  3523. function Wo(n, t, r, e) {
  3524. var u = n.id;
  3525. return P(n, "function" == typeof r ?
  3526. function(n, i, o) {
  3527. n.__transition__[u].tween.set(t, e(r.call(n, n.__data__, i, o)))
  3528. } : (r = e(r), function(n) {
  3529. n.__transition__[u].tween.set(t, r)
  3530. }))
  3531. }
  3532. function Go(n) {
  3533. return null == n && (n = ""), function() {
  3534. this.textContent = n
  3535. }
  3536. }
  3537. function Ko(n, t, r, e) {
  3538. var u = n.__transition__ || (n.__transition__ = {
  3539. active: 0,
  3540. count: 0
  3541. }),
  3542. i = u[r];
  3543. if (!i) {
  3544. var a = e.time;
  3545. i = u[r] = {
  3546. tween: new o,
  3547. time: a,
  3548. ease: e.ease,
  3549. delay: e.delay,
  3550. duration: e.duration
  3551. }, ++u.count, oa.timer(function(e) {
  3552. function o(e) {
  3553. return u.active > r ? l() : (u.active = r, i.event && i.event.start.call(n, s, t), i.tween.forEach(function(r, e) {
  3554. (e = e.call(n, s, t)) && v.push(e)
  3555. }), oa.timer(function() {
  3556. return p.c = c(e || 1) ? Cr : c, 1
  3557. }, 0, a), void 0)
  3558. }
  3559. function c(e) {
  3560. if (u.active !== r) return l();
  3561. for (var o = e / g, a = f(o), c = v.length; c > 0;) v[--c].call(n, a);
  3562. return o >= 1 ? (i.event && i.event.end.call(n, s, t), l()) : void 0
  3563. }
  3564. function l() {
  3565. return --u.count ? delete u[r] : delete n.__transition__, 1
  3566. }
  3567. var s = n.__data__,
  3568. f = i.ease,
  3569. h = i.delay,
  3570. g = i.duration,
  3571. p = lc,
  3572. v = [];
  3573. return p.t = h + a, e >= h ? o(e - h) : (p.c = o, void 0)
  3574. }, 0, a)
  3575. }
  3576. }
  3577. function Qo(n, t) {
  3578. n.attr("transform", function(n) {
  3579. return "translate(" + t(n) + ",0)"
  3580. })
  3581. }
  3582. function na(n, t) {
  3583. n.attr("transform", function(n) {
  3584. return "translate(0," + t(n) + ")"
  3585. })
  3586. }
  3587. function ta(n) {
  3588. return n.toISOString()
  3589. }
  3590. function ra(n, t, r) {
  3591. function e(t) {
  3592. return n(t)
  3593. }
  3594. function u(n, r) {
  3595. var e = n[1] - n[0],
  3596. u = e / r,
  3597. i = oa.bisect(Kl, u);
  3598. return i == Kl.length ? [t.year, ro(n.map(function(n) {
  3599. return n / 31536e6
  3600. }), r)[2]] : i ? t[u / Kl[i - 1] < Kl[i] / u ? i - 1 : i] : [ts, ro(n, r)[2]]
  3601. }
  3602. return e.invert = function(t) {
  3603. return ea(n.invert(t))
  3604. }, e.domain = function(t) {
  3605. return arguments.length ? (n.domain(t), e) : n.domain().map(ea)
  3606. }, e.nice = function(n, t) {
  3607. function r(r) {
  3608. return !isNaN(r) && !n.range(r, ea(+r + 1), t).length
  3609. }
  3610. var i = e.domain(),
  3611. o = Xi(i),
  3612. a = null == n ? u(o, 10) : "number" == typeof n && u(o, n);
  3613. return a && (n = a[0], t = a[1]), e.domain(Wi(i, t > 1 ? {
  3614. floor: function(t) {
  3615. for (; r(t = n.floor(t));) t = ea(t - 1);
  3616. return t
  3617. },
  3618. ceil: function(t) {
  3619. for (; r(t = n.ceil(t));) t = ea(+t + 1);
  3620. return t
  3621. }
  3622. } : n))
  3623. }, e.ticks = function(n, t) {
  3624. var r = Xi(e.domain()),
  3625. i = null == n ? u(r, 10) : "number" == typeof n ? u(r, n) : !n.range && [{
  3626. range: n
  3627. },
  3628. t];
  3629. return i && (n = i[0], t = i[1]), n.range(r[0], ea(+r[1] + 1), 1 > t ? 1 : t)
  3630. }, e.tickFormat = function() {
  3631. return r
  3632. }, e.copy = function() {
  3633. return ra(n.copy(), t, r)
  3634. }, no(e, n)
  3635. }
  3636. function ea(n) {
  3637. return new Date(n)
  3638. }
  3639. function ua(n) {
  3640. return JSON.parse(n.responseText)
  3641. }
  3642. function ia(n) {
  3643. var t = la.createRange();
  3644. return t.selectNode(la.body), t.createContextualFragment(n.responseText)
  3645. }
  3646. var oa = {
  3647. version: "3.4.4"
  3648. };
  3649. Date.now || (Date.now = function() {
  3650. return +new Date
  3651. });
  3652. var aa = [].slice,
  3653. ca = function(n) {
  3654. return aa.call(n)
  3655. },
  3656. la = document,
  3657. sa = la.documentElement,
  3658. fa = window;
  3659. try {
  3660. ca(sa.childNodes)[0].nodeType
  3661. } catch (ha) {
  3662. ca = function(n) {
  3663. for (var t = n.length, r = new Array(t); t--;) r[t] = n[t];
  3664. return r
  3665. }
  3666. }
  3667. try {
  3668. la.createElement("div").style.setProperty("opacity", 0, "")
  3669. } catch (ga) {
  3670. var pa = fa.Element.prototype,
  3671. va = pa.setAttribute,
  3672. da = pa.setAttributeNS,
  3673. ma = fa.CSSStyleDeclaration.prototype,
  3674. ya = ma.setProperty;
  3675. pa.setAttribute = function(n, t) {
  3676. va.call(this, n, t + "")
  3677. }, pa.setAttributeNS = function(n, t, r) {
  3678. da.call(this, n, t, r + "")
  3679. }, ma.setProperty = function(n, t, r) {
  3680. ya.call(this, n, t + "", r)
  3681. }
  3682. }
  3683. oa.ascending = n, oa.descending = function(n, t) {
  3684. return n > t ? -1 : t > n ? 1 : t >= n ? 0 : 0 / 0
  3685. }, oa.min = function(n, t) {
  3686. var r, e, u = -1,
  3687. i = n.length;
  3688. if (1 === arguments.length) {
  3689. for (; ++u < i && !(null != (r = n[u]) && r >= r);) r = void 0;
  3690. for (; ++u < i;) null != (e = n[u]) && r > e && (r = e)
  3691. } else {
  3692. for (; ++u < i && !(null != (r = t.call(n, n[u], u)) && r >= r);) r = void 0;
  3693. for (; ++u < i;) null != (e = t.call(n, n[u], u)) && r > e && (r = e)
  3694. }
  3695. return r
  3696. }, oa.max = function(n, t) {
  3697. var r, e, u = -1,
  3698. i = n.length;
  3699. if (1 === arguments.length) {
  3700. for (; ++u < i && !(null != (r = n[u]) && r >= r);) r = void 0;
  3701. for (; ++u < i;) null != (e = n[u]) && e > r && (r = e)
  3702. } else {
  3703. for (; ++u < i && !(null != (r = t.call(n, n[u], u)) && r >= r);) r = void 0;
  3704. for (; ++u < i;) null != (e = t.call(n, n[u], u)) && e > r && (r = e)
  3705. }
  3706. return r
  3707. }, oa.extent = function(n, t) {
  3708. var r, e, u, i = -1,
  3709. o = n.length;
  3710. if (1 === arguments.length) {
  3711. for (; ++i < o && !(null != (r = u = n[i]) && r >= r);) r = u = void 0;
  3712. for (; ++i < o;) null != (e = n[i]) && (r > e && (r = e), e > u && (u = e))
  3713. } else {
  3714. for (; ++i < o && !(null != (r = u = t.call(n, n[i], i)) && r >= r);) r = void 0;
  3715. for (; ++i < o;) null != (e = t.call(n, n[i], i)) && (r > e && (r = e), e > u && (u = e))
  3716. }
  3717. return [r, u]
  3718. }, oa.sum = function(n, t) {
  3719. var r, e = 0,
  3720. u = n.length,
  3721. i = -1;
  3722. if (1 === arguments.length) for (; ++i < u;) isNaN(r = +n[i]) || (e += r);
  3723. else for (; ++i < u;) isNaN(r = +t.call(n, n[i], i)) || (e += r);
  3724. return e
  3725. }, oa.mean = function(n, r) {
  3726. var e, u = n.length,
  3727. i = 0,
  3728. o = -1,
  3729. a = 0;
  3730. if (1 === arguments.length) for (; ++o < u;) t(e = n[o]) && (i += (e - i) / ++a);
  3731. else for (; ++o < u;) t(e = r.call(n, n[o], o)) && (i += (e - i) / ++a);
  3732. return a ? i : void 0
  3733. }, oa.quantile = function(n, t) {
  3734. var r = (n.length - 1) * t + 1,
  3735. e = Math.floor(r),
  3736. u = +n[e - 1],
  3737. i = r - e;
  3738. return i ? u + i * (n[e] - u) : u
  3739. }, oa.median = function(r, e) {
  3740. return arguments.length > 1 && (r = r.map(e)), r = r.filter(t), r.length ? oa.quantile(r.sort(n), .5) : void 0
  3741. };
  3742. var xa = r(n);
  3743. oa.bisectLeft = xa.left, oa.bisect = oa.bisectRight = xa.right, oa.bisector = function(t) {
  3744. return r(1 === t.length ?
  3745. function(r, e) {
  3746. return n(t(r), e)
  3747. } : t)
  3748. }, oa.shuffle = function(n) {
  3749. for (var t, r, e = n.length; e;) r = 0 | Math.random() * e--, t = n[e], n[e] = n[r], n[r] = t;
  3750. return n
  3751. }, oa.permute = function(n, t) {
  3752. for (var r = t.length, e = new Array(r); r--;) e[r] = n[t[r]];
  3753. return e
  3754. }, oa.pairs = function(n) {
  3755. for (var t, r = 0, e = n.length - 1, u = n[0], i = new Array(0 > e ? 0 : e); e > r;) i[r] = [t = u, u = n[++r]];
  3756. return i
  3757. }, oa.zip = function() {
  3758. if (!(u = arguments.length)) return [];
  3759. for (var n = -1, t = oa.min(arguments, e), r = new Array(t); ++n < t;) for (var u, i = -1, o = r[n] = new Array(u); ++i < u;) o[i] = arguments[i][n];
  3760. return r
  3761. }, oa.transpose = function(n) {
  3762. return oa.zip.apply(oa, n)
  3763. }, oa.keys = function(n) {
  3764. var t = [];
  3765. for (var r in n) t.push(r);
  3766. return t
  3767. }, oa.values = function(n) {
  3768. var t = [];
  3769. for (var r in n) t.push(n[r]);
  3770. return t
  3771. }, oa.entries = function(n) {
  3772. var t = [];
  3773. for (var r in n) t.push({
  3774. key: r,
  3775. value: n[r]
  3776. });
  3777. return t
  3778. }, oa.merge = function(n) {
  3779. for (var t, r, e, u = n.length, i = -1, o = 0; ++i < u;) o += n[i].length;
  3780. for (r = new Array(o); --u >= 0;) for (e = n[u], t = e.length; --t >= 0;) r[--o] = e[t];
  3781. return r
  3782. };
  3783. var Ma = Math.abs;
  3784. oa.range = function(n, t, r) {
  3785. if (arguments.length < 3 && (r = 1, arguments.length < 2 && (t = n, n = 0)), 1 / 0 === (t - n) / r) throw new Error("infinite range");
  3786. var e, i = [],
  3787. o = u(Ma(r)),
  3788. a = -1;
  3789. if (n *= o, t *= o, r *= o, 0 > r) for (;
  3790. (e = n + r * ++a) > t;) i.push(e / o);
  3791. else for (;
  3792. (e = n + r * ++a) < t;) i.push(e / o);
  3793. return i
  3794. }, oa.map = function(n) {
  3795. var t = new o;
  3796. if (n instanceof o) n.forEach(function(n, r) {
  3797. t.set(n, r)
  3798. });
  3799. else for (var r in n) t.set(r, n[r]);
  3800. return t
  3801. }, i(o, {
  3802. has: a,
  3803. get: function(n) {
  3804. return this[_a + n]
  3805. },
  3806. set: function(n, t) {
  3807. return this[_a + n] = t
  3808. },
  3809. remove: c,
  3810. keys: l,
  3811. values: function() {
  3812. var n = [];
  3813. return this.forEach(function(t, r) {
  3814. n.push(r)
  3815. }), n
  3816. },
  3817. entries: function() {
  3818. var n = [];
  3819. return this.forEach(function(t, r) {
  3820. n.push({
  3821. key: t,
  3822. value: r
  3823. })
  3824. }), n
  3825. },
  3826. size: s,
  3827. empty: f,
  3828. forEach: function(n) {
  3829. for (var t in this) t.charCodeAt(0) === ba && n.call(this, t.substring(1), this[t])
  3830. }
  3831. });
  3832. var _a = "\x00",
  3833. ba = _a.charCodeAt(0);
  3834. oa.nest = function() {
  3835. function n(t, a, c) {
  3836. if (c >= i.length) return e ? e.call(u, a) : r ? a.sort(r) : a;
  3837. for (var l, s, f, h, g = -1, p = a.length, v = i[c++], d = new o; ++g < p;)(h = d.get(l = v(s = a[g]))) ? h.push(s) : d.set(l, [s]);
  3838. return t ? (s = t(), f = function(r, e) {
  3839. s.set(r, n(t, e, c))
  3840. }) : (s = {}, f = function(r, e) {
  3841. s[r] = n(t, e, c)
  3842. }), d.forEach(f), s
  3843. }
  3844. function t(n, r) {
  3845. if (r >= i.length) return n;
  3846. var e = [],
  3847. u = a[r++];
  3848. return n.forEach(function(n, u) {
  3849. e.push({
  3850. key: n,
  3851. values: t(u, r)
  3852. })
  3853. }), u ? e.sort(function(n, t) {
  3854. return u(n.key, t.key)
  3855. }) : e
  3856. }
  3857. var r, e, u = {},
  3858. i = [],
  3859. a = [];
  3860. return u.map = function(t, r) {
  3861. return n(r, t, 0)
  3862. }, u.entries = function(r) {
  3863. return t(n(oa.map, r, 0), 0)
  3864. }, u.key = function(n) {
  3865. return i.push(n), u
  3866. }, u.sortKeys = function(n) {
  3867. return a[i.length - 1] = n, u
  3868. }, u.sortValues = function(n) {
  3869. return r = n, u
  3870. }, u.rollup = function(n) {
  3871. return e = n, u
  3872. }, u
  3873. }, oa.set = function(n) {
  3874. var t = new h;
  3875. if (n) for (var r = 0, e = n.length; e > r; ++r) t.add(n[r]);
  3876. return t
  3877. }, i(h, {
  3878. has: a,
  3879. add: function(n) {
  3880. return this[_a + n] = !0, n
  3881. },
  3882. remove: function(n) {
  3883. return n = _a + n, n in this && delete this[n]
  3884. },
  3885. values: l,
  3886. size: s,
  3887. empty: f,
  3888. forEach: function(n) {
  3889. for (var t in this) t.charCodeAt(0) === ba && n.call(this, t.substring(1))
  3890. }
  3891. }), oa.behavior = {}, oa.rebind = function(n, t) {
  3892. for (var r, e = 1, u = arguments.length; ++e < u;) n[r = arguments[e]] = g(n, t, t[r]);
  3893. return n
  3894. };
  3895. var wa = ["webkit", "ms", "moz", "Moz", "o", "O"];
  3896. oa.dispatch = function() {
  3897. for (var n = new d, t = -1, r = arguments.length; ++t < r;) n[arguments[t]] = m(n);
  3898. return n
  3899. }, d.prototype.on = function(n, t) {
  3900. var r = n.indexOf("."),
  3901. e = "";
  3902. if (r >= 0 && (e = n.substring(r + 1), n = n.substring(0, r)), n) return arguments.length < 2 ? this[n].on(e) : this[n].on(e, t);
  3903. if (2 === arguments.length) {
  3904. if (null == t) for (n in this) this.hasOwnProperty(n) && this[n].on(e, null);
  3905. return this
  3906. }
  3907. }, oa.event = null, oa.requote = function(n) {
  3908. return n.replace(Sa, "\\$&")
  3909. };
  3910. var Sa = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g,
  3911. ka = {}.__proto__ ?
  3912. function(n, t) {
  3913. n.__proto__ = t
  3914. } : function(n, t) {
  3915. for (var r in t) n[r] = t[r]
  3916. }, Ea = function(n, t) {
  3917. return t.querySelector(n)
  3918. }, Na = function(n, t) {
  3919. return t.querySelectorAll(n)
  3920. }, Aa = sa[p(sa, "matchesSelector")], Ca = function(n, t) {
  3921. return Aa.call(n, t)
  3922. };
  3923. "function" == typeof Sizzle && (Ea = function(n, t) {
  3924. return Sizzle(n, t)[0] || null
  3925. }, Na = Sizzle, Ca = Sizzle.matchesSelector), oa.selection = function() {
  3926. return za
  3927. };
  3928. var La = oa.selection.prototype = [];
  3929. La.select = function(n) {
  3930. var t, r, e, u, i = [];
  3931. n = b(n);
  3932. for (var o = -1, a = this.length; ++o < a;) {
  3933. i.push(t = []), t.parentNode = (e = this[o]).parentNode;
  3934. for (var c = -1, l = e.length; ++c < l;)(u = e[c]) ? (t.push(r = n.call(u, u.__data__, c, o)), r && "__data__" in u && (r.__data__ = u.__data__)) : t.push(null)
  3935. }
  3936. return _(i)
  3937. }, La.selectAll = function(n) {
  3938. var t, r, e = [];
  3939. n = w(n);
  3940. for (var u = -1, i = this.length; ++u < i;) for (var o = this[u], a = -1, c = o.length; ++a < c;)(r = o[a]) && (e.push(t = ca(n.call(r, r.__data__, a, u))), t.parentNode = r);
  3941. return _(e)
  3942. };
  3943. var qa = {
  3944. svg: "http://www.w3.org/2000/svg",
  3945. xhtml: "http://www.w3.org/1999/xhtml",
  3946. xlink: "http://www.w3.org/1999/xlink",
  3947. xml: "http://www.w3.org/XML/1998/namespace",
  3948. xmlns: "http://www.w3.org/2000/xmlns/"
  3949. };
  3950. oa.ns = {
  3951. prefix: qa,
  3952. qualify: function(n) {
  3953. var t = n.indexOf(":"),
  3954. r = n;
  3955. return t >= 0 && (r = n.substring(0, t), n = n.substring(t + 1)), qa.hasOwnProperty(r) ? {
  3956. space: qa[r],
  3957. local: n
  3958. } : n
  3959. }
  3960. }, La.attr = function(n, t) {
  3961. if (arguments.length < 2) {
  3962. if ("string" == typeof n) {
  3963. var r = this.node();
  3964. return n = oa.ns.qualify(n), n.local ? r.getAttributeNS(n.space, n.local) : r.getAttribute(n)
  3965. }
  3966. for (t in n) this.each(S(t, n[t]));
  3967. return this
  3968. }
  3969. return this.each(S(n, t))
  3970. }, La.classed = function(n, t) {
  3971. if (arguments.length < 2) {
  3972. if ("string" == typeof n) {
  3973. var r = this.node(),
  3974. e = (n = N(n)).length,
  3975. u = -1;
  3976. if (t = r.classList) {
  3977. for (; ++u < e;) if (!t.contains(n[u])) return !1
  3978. } else for (t = r.getAttribute("class"); ++u < e;) if (!E(n[u]).test(t)) return !1;
  3979. return !0
  3980. }
  3981. for (t in n) this.each(A(t, n[t]));
  3982. return this
  3983. }
  3984. return this.each(A(n, t))
  3985. }, La.style = function(n, t, r) {
  3986. var e = arguments.length;
  3987. if (3 > e) {
  3988. if ("string" != typeof n) {
  3989. 2 > e && (t = "");
  3990. for (r in n) this.each(L(r, n[r], t));
  3991. return this
  3992. }
  3993. if (2 > e) return fa.getComputedStyle(this.node(), null).getPropertyValue(n);
  3994. r = ""
  3995. }
  3996. return this.each(L(n, t, r))
  3997. }, La.property = function(n, t) {
  3998. if (arguments.length < 2) {
  3999. if ("string" == typeof n) return this.node()[n];
  4000. for (t in n) this.each(q(t, n[t]));
  4001. return this
  4002. }
  4003. return this.each(q(n, t))
  4004. }, La.text = function(n) {
  4005. return arguments.length ? this.each("function" == typeof n ?
  4006. function() {
  4007. var t = n.apply(this, arguments);
  4008. this.textContent = null == t ? "" : t
  4009. } : null == n ?
  4010. function() {
  4011. this.textContent = ""
  4012. } : function() {
  4013. this.textContent = n
  4014. }) : this.node().textContent
  4015. }, La.html = function(n) {
  4016. return arguments.length ? this.each("function" == typeof n ?
  4017. function() {
  4018. var t = n.apply(this, arguments);
  4019. this.innerHTML = null == t ? "" : t
  4020. } : null == n ?
  4021. function() {
  4022. this.innerHTML = ""
  4023. } : function() {
  4024. this.innerHTML = n
  4025. }) : this.node().innerHTML
  4026. }, La.append = function(n) {
  4027. return n = T(n), this.select(function() {
  4028. return this.appendChild(n.apply(this, arguments))
  4029. })
  4030. }, La.insert = function(n, t) {
  4031. return n = T(n), t = b(t), this.select(function() {
  4032. return this.insertBefore(n.apply(this, arguments), t.apply(this, arguments) || null)
  4033. })
  4034. }, La.remove = function() {
  4035. return this.each(function() {
  4036. var n = this.parentNode;
  4037. n && n.removeChild(this)
  4038. })
  4039. }, La.data = function(n, t) {
  4040. function r(n, r) {
  4041. var e, u, i, a = n.length,
  4042. f = r.length,
  4043. h = Math.min(a, f),
  4044. g = new Array(f),
  4045. p = new Array(f),
  4046. v = new Array(a);
  4047. if (t) {
  4048. var d, m = new o,
  4049. y = new o,
  4050. x = [];
  4051. for (e = -1; ++e < a;) d = t.call(u = n[e], u.__data__, e), m.has(d) ? v[e] = u : m.set(d, u), x.push(d);
  4052. for (e = -1; ++e < f;) d = t.call(r, i = r[e], e), (u = m.get(d)) ? (g[e] = u, u.__data__ = i) : y.has(d) || (p[e] = z(i)), y.set(d, i), m.remove(d);
  4053. for (e = -1; ++e < a;) m.has(x[e]) && (v[e] = n[e])
  4054. } else {
  4055. for (e = -1; ++e < h;) u = n[e], i = r[e], u ? (u.__data__ = i, g[e] = u) : p[e] = z(i);
  4056. for (; f > e; ++e) p[e] = z(r[e]);
  4057. for (; a > e; ++e) v[e] = n[e]
  4058. }
  4059. p.update = g, p.parentNode = g.parentNode = v.parentNode = n.parentNode, c.push(p), l.push(g), s.push(v)
  4060. }
  4061. var e, u, i = -1,
  4062. a = this.length;
  4063. if (!arguments.length) {
  4064. for (n = new Array(a = (e = this[0]).length); ++i < a;)(u = e[i]) && (n[i] = u.__data__);
  4065. return n
  4066. }
  4067. var c = U([]),
  4068. l = _([]),
  4069. s = _([]);
  4070. if ("function" == typeof n) for (; ++i < a;) r(e = this[i], n.call(e, e.parentNode.__data__, i));
  4071. else for (; ++i < a;) r(e = this[i], n);
  4072. return l.enter = function() {
  4073. return c
  4074. }, l.exit = function() {
  4075. return s
  4076. }, l
  4077. }, La.datum = function(n) {
  4078. return arguments.length ? this.property("__data__", n) : this.property("__data__")
  4079. }, La.filter = function(n) {
  4080. var t, r, e, u = [];
  4081. "function" != typeof n && (n = R(n));
  4082. for (var i = 0, o = this.length; o > i; i++) {
  4083. u.push(t = []), t.parentNode = (r = this[i]).parentNode;
  4084. for (var a = 0, c = r.length; c > a; a++)(e = r[a]) && n.call(e, e.__data__, a, i) && t.push(e)
  4085. }
  4086. return _(u)
  4087. }, La.order = function() {
  4088. for (var n = -1, t = this.length; ++n < t;) for (var r, e = this[n], u = e.length - 1, i = e[u]; --u >= 0;)(r = e[u]) && (i && i !== r.nextSibling && i.parentNode.insertBefore(r, i), i = r);
  4089. return this
  4090. }, La.sort = function(n) {
  4091. n = D.apply(this, arguments);
  4092. for (var t = -1, r = this.length; ++t < r;) this[t].sort(n);
  4093. return this.order()
  4094. }, La.each = function(n) {
  4095. return P(this, function(t, r, e) {
  4096. n.call(t, t.__data__, r, e)
  4097. })
  4098. }, La.call = function(n) {
  4099. var t = ca(arguments);
  4100. return n.apply(t[0] = this, t), this
  4101. }, La.empty = function() {
  4102. return !this.node()
  4103. }, La.node = function() {
  4104. for (var n = 0, t = this.length; t > n; n++) for (var r = this[n], e = 0, u = r.length; u > e; e++) {
  4105. var i = r[e];
  4106. if (i) return i
  4107. }
  4108. return null
  4109. }, La.size = function() {
  4110. var n = 0;
  4111. return this.each(function() {
  4112. ++n
  4113. }), n
  4114. };
  4115. var Ta = [];
  4116. oa.selection.enter = U, oa.selection.enter.prototype = Ta, Ta.append = La.append, Ta.empty = La.empty, Ta.node = La.node, Ta.call = La.call, Ta.size = La.size, Ta.select = function(n) {
  4117. for (var t, r, e, u, i, o = [], a = -1, c = this.length; ++a < c;) {
  4118. e = (u = this[a]).update, o.push(t = []), t.parentNode = u.parentNode;
  4119. for (var l = -1, s = u.length; ++l < s;)(i = u[l]) ? (t.push(e[l] = r = n.call(u.parentNode, i.__data__, l, a)), r.__data__ = i.__data__) : t.push(null)
  4120. }
  4121. return _(o)
  4122. }, Ta.insert = function(n, t) {
  4123. return arguments.length < 2 && (t = j(this)), La.insert.call(this, n, t)
  4124. }, La.transition = function() {
  4125. for (var n, t, r = Hl || ++Zl, e = [], u = Fl || {
  4126. time: Date.now(),
  4127. ease: Tu,
  4128. delay: 0,
  4129. duration: 250
  4130. }, i = -1, o = this.length; ++i < o;) {
  4131. e.push(n = []);
  4132. for (var a = this[i], c = -1, l = a.length; ++c < l;)(t = a[c]) && Ko(t, c, r, u), n.push(t)
  4133. }
  4134. return Jo(e, r)
  4135. }, La.interrupt = function() {
  4136. return this.each(H)
  4137. }, oa.select = function(n) {
  4138. var t = ["string" == typeof n ? Ea(n, la) : n];
  4139. return t.parentNode = sa, _([t])
  4140. }, oa.selectAll = function(n) {
  4141. var t = ca("string" == typeof n ? Na(n, la) : n);
  4142. return t.parentNode = sa, _([t])
  4143. };
  4144. var za = oa.select(sa);
  4145. La.on = function(n, t, r) {
  4146. var e = arguments.length;
  4147. if (3 > e) {
  4148. if ("string" != typeof n) {
  4149. 2 > e && (t = !1);
  4150. for (r in n) this.each(F(r, n[r], t));
  4151. return this
  4152. }
  4153. if (2 > e) return (e = this.node()["__on" + n]) && e._;
  4154. r = !1
  4155. }
  4156. return this.each(F(n, t, r))
  4157. };
  4158. var Ra = oa.map({
  4159. mouseenter: "mouseover",
  4160. mouseleave: "mouseout"
  4161. });
  4162. Ra.forEach(function(n) {
  4163. "on" + n in la && Ra.remove(n)
  4164. });
  4165. var Da = "onselectstart" in la ? null : p(sa.style, "userSelect"),
  4166. Pa = 0;
  4167. oa.mouse = function(n) {
  4168. return Z(n, x())
  4169. }, oa.touches = function(n, t) {
  4170. return arguments.length < 2 && (t = x().touches), t ? ca(t).map(function(t) {
  4171. var r = Z(n, t);
  4172. return r.identifier = t.identifier, r
  4173. }) : []
  4174. }, oa.behavior.drag = function() {
  4175. function n() {
  4176. this.on("mousedown.drag", u).on("touchstart.drag", i)
  4177. }
  4178. function t(n, t, u, i, o) {
  4179. return function() {
  4180. function a() {
  4181. var n, r, e = t(h, v);
  4182. e && (n = e[0] - x[0], r = e[1] - x[1], p |= n | r, x = e, g({
  4183. type: "drag",
  4184. x: e[0] + l[0],
  4185. y: e[1] + l[1],
  4186. dx: n,
  4187. dy: r
  4188. }))
  4189. }
  4190. function c() {
  4191. t(h, v) && (m.on(i + d, null).on(o + d, null), y(p && oa.event.target === f), g({
  4192. type: "dragend"
  4193. }))
  4194. }
  4195. var l, s = this,
  4196. f = oa.event.target,
  4197. h = s.parentNode,
  4198. g = r.of(s, arguments),
  4199. p = 0,
  4200. v = n(),
  4201. d = ".drag" + (null == v ? "" : "-" + v),
  4202. m = oa.select(u()).on(i + d, a).on(o + d, c),
  4203. y = Y(),
  4204. x = t(h, v);
  4205. e ? (l = e.apply(s, arguments), l = [l.x - x[0], l.y - x[1]]) : l = [0, 0], g({
  4206. type: "dragstart"
  4207. })
  4208. }
  4209. }
  4210. var r = M(n, "drag", "dragstart", "dragend"),
  4211. e = null,
  4212. u = t(v, oa.mouse, X, "mousemove", "mouseup"),
  4213. i = t(V, oa.touch, $, "touchmove", "touchend");
  4214. return n.origin = function(t) {
  4215. return arguments.length ? (e = t, n) : e
  4216. }, oa.rebind(n, r, "on")
  4217. };
  4218. var Ua = Math.PI,
  4219. ja = 2 * Ua,
  4220. Ha = Ua / 2,
  4221. Fa = 1e-6,
  4222. Oa = Fa * Fa,
  4223. Ia = Ua / 180,
  4224. Ya = 180 / Ua,
  4225. Za = Math.SQRT2,
  4226. Va = 2,
  4227. $a = 4;
  4228. oa.interpolateZoom = function(n, t) {
  4229. function r(n) {
  4230. var t = n * y;
  4231. if (m) {
  4232. var r = Q(v),
  4233. o = i / (Va * h) * (r * nt(Za * t + v) - K(v));
  4234. return [e + o * l, u + o * s, i * r / Q(Za * t + v)]
  4235. }
  4236. return [e + n * l, u + n * s, i * Math.exp(Za * t)]
  4237. }
  4238. var e = n[0],
  4239. u = n[1],
  4240. i = n[2],
  4241. o = t[0],
  4242. a = t[1],
  4243. c = t[2],
  4244. l = o - e,
  4245. s = a - u,
  4246. f = l * l + s * s,
  4247. h = Math.sqrt(f),
  4248. g = (c * c - i * i + $a * f) / (2 * i * Va * h),
  4249. p = (c * c - i * i - $a * f) / (2 * c * Va * h),
  4250. v = Math.log(Math.sqrt(g * g + 1) - g),
  4251. d = Math.log(Math.sqrt(p * p + 1) - p),
  4252. m = d - v,
  4253. y = (m || Math.log(c / i)) / Za;
  4254. return r.duration = 1e3 * y, r
  4255. }, oa.behavior.zoom = function() {
  4256. function n(n) {
  4257. n.on(N, l).on(Ja + ".zoom", f).on(A, h).on("dblclick.zoom", g).on(L, s)
  4258. }
  4259. function t(n) {
  4260. return [(n[0] - S.x) / S.k, (n[1] - S.y) / S.k]
  4261. }
  4262. function r(n) {
  4263. return [n[0] * S.k + S.x, n[1] * S.k + S.y]
  4264. }
  4265. function e(n) {
  4266. S.k = Math.max(E[0], Math.min(E[1], n))
  4267. }
  4268. function u(n, t) {
  4269. t = r(t), S.x += n[0] - t[0], S.y += n[1] - t[1]
  4270. }
  4271. function i() {
  4272. _ && _.domain(x.range().map(function(n) {
  4273. return (n - S.x) / S.k
  4274. }).map(x.invert)), w && w.domain(b.range().map(function(n) {
  4275. return (n - S.y) / S.k
  4276. }).map(b.invert))
  4277. }
  4278. function o(n) {
  4279. n({
  4280. type: "zoomstart"
  4281. })
  4282. }
  4283. function a(n) {
  4284. i(), n({
  4285. type: "zoom",
  4286. scale: S.k,
  4287. translate: [S.x, S.y]
  4288. })
  4289. }
  4290. function c(n) {
  4291. n({
  4292. type: "zoomend"
  4293. })
  4294. }
  4295. function l() {
  4296. function n() {
  4297. s = 1, u(oa.mouse(e), g), a(l)
  4298. }
  4299. function r() {
  4300. f.on(A, fa === e ? h : null).on(C, null), p(s && oa.event.target === i), c(l)
  4301. }
  4302. var e = this,
  4303. i = oa.event.target,
  4304. l = q.of(e, arguments),
  4305. s = 0,
  4306. f = oa.select(fa).on(A, n).on(C, r),
  4307. g = t(oa.mouse(e)),
  4308. p = Y();
  4309. H.call(e), o(l)
  4310. }
  4311. function s() {
  4312. function n() {
  4313. var n = oa.touches(g);
  4314. return h = S.k, n.forEach(function(n) {
  4315. n.identifier in v && (v[n.identifier] = t(n))
  4316. }), n
  4317. }
  4318. function r() {
  4319. for (var t = oa.event.changedTouches, r = 0, i = t.length; i > r; ++r) v[t[r].identifier] = null;
  4320. var o = n(),
  4321. c = Date.now();
  4322. if (1 === o.length) {
  4323. if (500 > c - m) {
  4324. var l = o[0],
  4325. s = v[l.identifier];
  4326. e(2 * S.k), u(l, s), y(), a(p)
  4327. }
  4328. m = c
  4329. } else if (o.length > 1) {
  4330. var l = o[0],
  4331. f = o[1],
  4332. h = l[0] - f[0],
  4333. g = l[1] - f[1];
  4334. d = h * h + g * g
  4335. }
  4336. }
  4337. function i() {
  4338. for (var n, t, r, i, o = oa.touches(g), c = 0, l = o.length; l > c; ++c, i = null) if (r = o[c], i = v[r.identifier]) {
  4339. if (t) break;
  4340. n = r, t = i
  4341. }
  4342. if (i) {
  4343. var s = (s = r[0] - n[0]) * s + (s = r[1] - n[1]) * s,
  4344. f = d && Math.sqrt(s / d);
  4345. n = [(n[0] + r[0]) / 2, (n[1] + r[1]) / 2], t = [(t[0] + i[0]) / 2, (t[1] + i[1]) / 2], e(f * h)
  4346. }
  4347. m = null, u(n, t), a(p)
  4348. }
  4349. function f() {
  4350. if (oa.event.touches.length) {
  4351. for (var t = oa.event.changedTouches, r = 0, e = t.length; e > r; ++r) delete v[t[r].identifier];
  4352. for (var u in v) return void n()
  4353. }
  4354. b.on(x, null), w.on(N, l).on(L, s), k(), c(p)
  4355. }
  4356. var h, g = this,
  4357. p = q.of(g, arguments),
  4358. v = {},
  4359. d = 0,
  4360. x = ".zoom-" + oa.event.changedTouches[0].identifier,
  4361. M = "touchmove" + x,
  4362. _ = "touchend" + x,
  4363. b = oa.select(oa.event.target).on(M, i).on(_, f),
  4364. w = oa.select(g).on(N, null).on(L, r),
  4365. k = Y();
  4366. H.call(g), r(), o(p)
  4367. }
  4368. function f() {
  4369. var n = q.of(this, arguments);
  4370. d ? clearTimeout(d) : (H.call(this), o(n)), d = setTimeout(function() {
  4371. d = null, c(n)
  4372. }, 50), y();
  4373. var r = v || oa.mouse(this);
  4374. p || (p = t(r)), e(Math.pow(2, .002 * Xa()) * S.k), u(r, p), a(n)
  4375. }
  4376. function h() {
  4377. p = null
  4378. }
  4379. function g() {
  4380. var n = q.of(this, arguments),
  4381. r = oa.mouse(this),
  4382. i = t(r),
  4383. l = Math.log(S.k) / Math.LN2;
  4384. o(n), e(Math.pow(2, oa.event.shiftKey ? Math.ceil(l) - 1 : Math.floor(l) + 1)), u(r, i), a(n), c(n)
  4385. }
  4386. var p, v, d, m, x, _, b, w, S = {
  4387. x: 0,
  4388. y: 0,
  4389. k: 1
  4390. },
  4391. k = [960, 500],
  4392. E = Ba,
  4393. N = "mousedown.zoom",
  4394. A = "mousemove.zoom",
  4395. C = "mouseup.zoom",
  4396. L = "touchstart.zoom",
  4397. q = M(n, "zoomstart", "zoom", "zoomend");
  4398. return n.event = function(n) {
  4399. n.each(function() {
  4400. var n = q.of(this, arguments),
  4401. t = S;
  4402. Hl ? oa.select(this).transition().each("start.zoom", function() {
  4403. S = this.__chart__ || {
  4404. x: 0,
  4405. y: 0,
  4406. k: 1
  4407. }, o(n)
  4408. }).tween("zoom:zoom", function() {
  4409. var r = k[0],
  4410. e = k[1],
  4411. u = r / 2,
  4412. i = e / 2,
  4413. o = oa.interpolateZoom([(u - S.x) / S.k, (i - S.y) / S.k, r / S.k], [(u - t.x) / t.k, (i - t.y) / t.k, r / t.k]);
  4414. return function(t) {
  4415. var e = o(t),
  4416. c = r / e[2];
  4417. this.__chart__ = S = {
  4418. x: u - e[0] * c,
  4419. y: i - e[1] * c,
  4420. k: c
  4421. }, a(n)
  4422. }
  4423. }).each("end.zoom", function() {
  4424. c(n)
  4425. }) : (this.__chart__ = S, o(n), a(n), c(n))
  4426. })
  4427. }, n.translate = function(t) {
  4428. return arguments.length ? (S = {
  4429. x: +t[0],
  4430. y: +t[1],
  4431. k: S.k
  4432. }, i(), n) : [S.x, S.y]
  4433. }, n.scale = function(t) {
  4434. return arguments.length ? (S = {
  4435. x: S.x,
  4436. y: S.y,
  4437. k: +t
  4438. }, i(), n) : S.k
  4439. }, n.scaleExtent = function(t) {
  4440. return arguments.length ? (E = null == t ? Ba : [+t[0], +t[1]], n) : E
  4441. }, n.center = function(t) {
  4442. return arguments.length ? (v = t && [+t[0], +t[1]], n) : v
  4443. }, n.size = function(t) {
  4444. return arguments.length ? (k = t && [+t[0], +t[1]], n) : k
  4445. }, n.x = function(t) {
  4446. return arguments.length ? (_ = t, x = t.copy(), S = {
  4447. x: 0,
  4448. y: 0,
  4449. k: 1
  4450. }, n) : _
  4451. }, n.y = function(t) {
  4452. return arguments.length ? (w = t, b = t.copy(), S = {
  4453. x: 0,
  4454. y: 0,
  4455. k: 1
  4456. }, n) : w
  4457. }, oa.rebind(n, q, "on")
  4458. };
  4459. var Xa, Ba = [0, 1 / 0],
  4460. Ja = "onwheel" in la ? (Xa = function() {
  4461. return -oa.event.deltaY * (oa.event.deltaMode ? 120 : 1)
  4462. }, "wheel") : "onmousewheel" in la ? (Xa = function() {
  4463. return oa.event.wheelDelta
  4464. }, "mousewheel") : (Xa = function() {
  4465. return -oa.event.detail
  4466. }, "MozMousePixelScroll");
  4467. rt.prototype.toString = function() {
  4468. return this.rgb() + ""
  4469. }, oa.hsl = function(n, t, r) {
  4470. return 1 === arguments.length ? n instanceof ut ? et(n.h, n.s, n.l) : _t("" + n, bt, et) : et(+n, +t, +r)
  4471. };
  4472. var Wa = ut.prototype = new rt;
  4473. Wa.brighter = function(n) {
  4474. return n = Math.pow(.7, arguments.length ? n : 1), et(this.h, this.s, this.l / n)
  4475. }, Wa.darker = function(n) {
  4476. return n = Math.pow(.7, arguments.length ? n : 1), et(this.h, this.s, n * this.l)
  4477. }, Wa.rgb = function() {
  4478. return it(this.h, this.s, this.l)
  4479. }, oa.hcl = function(n, t, r) {
  4480. return 1 === arguments.length ? n instanceof at ? ot(n.h, n.c, n.l) : n instanceof st ? ht(n.l, n.a, n.b) : ht((n = wt((n = oa.rgb(n)).r, n.g, n.b)).l, n.a, n.b) : ot(+n, +t, +r)
  4481. };
  4482. var Ga = at.prototype = new rt;
  4483. Ga.brighter = function(n) {
  4484. return ot(this.h, this.c, Math.min(100, this.l + Ka * (arguments.length ? n : 1)))
  4485. }, Ga.darker = function(n) {
  4486. return ot(this.h, this.c, Math.max(0, this.l - Ka * (arguments.length ? n : 1)))
  4487. }, Ga.rgb = function() {
  4488. return ct(this.h, this.c, this.l).rgb()
  4489. }, oa.lab = function(n, t, r) {
  4490. return 1 === arguments.length ? n instanceof st ? lt(n.l, n.a, n.b) : n instanceof at ? ct(n.l, n.c, n.h) : wt((n = oa.rgb(n)).r, n.g, n.b) : lt(+n, +t, +r)
  4491. };
  4492. var Ka = 18,
  4493. Qa = .95047,
  4494. nc = 1,
  4495. tc = 1.08883,
  4496. rc = st.prototype = new rt;
  4497. rc.brighter = function(n) {
  4498. return lt(Math.min(100, this.l + Ka * (arguments.length ? n : 1)), this.a, this.b)
  4499. }, rc.darker = function(n) {
  4500. return lt(Math.max(0, this.l - Ka * (arguments.length ? n : 1)), this.a, this.b)
  4501. }, rc.rgb = function() {
  4502. return ft(this.l, this.a, this.b)
  4503. }, oa.rgb = function(n, t, r) {
  4504. return 1 === arguments.length ? n instanceof xt ? yt(n.r, n.g, n.b) : _t("" + n, yt, it) : yt(~~n, ~~t, ~~r)
  4505. };
  4506. var ec = xt.prototype = new rt;
  4507. ec.brighter = function(n) {
  4508. n = Math.pow(.7, arguments.length ? n : 1);
  4509. var t = this.r,
  4510. r = this.g,
  4511. e = this.b,
  4512. u = 30;
  4513. return t || r || e ? (t && u > t && (t = u), r && u > r && (r = u), e && u > e && (e = u), yt(Math.min(255, ~~ (t / n)), Math.min(255, ~~ (r / n)), Math.min(255, ~~ (e / n)))) : yt(u, u, u)
  4514. }, ec.darker = function(n) {
  4515. return n = Math.pow(.7, arguments.length ? n : 1), yt(~~ (n * this.r), ~~ (n * this.g), ~~ (n * this.b))
  4516. }, ec.hsl = function() {
  4517. return bt(this.r, this.g, this.b)
  4518. }, ec.toString = function() {
  4519. return "#" + Mt(this.r) + Mt(this.g) + Mt(this.b)
  4520. };
  4521. var uc = oa.map({
  4522. aliceblue: 15792383,
  4523. antiquewhite: 16444375,
  4524. aqua: 65535,
  4525. aquamarine: 8388564,
  4526. azure: 15794175,
  4527. beige: 16119260,
  4528. bisque: 16770244,
  4529. black: 0,
  4530. blanchedalmond: 16772045,
  4531. blue: 255,
  4532. blueviolet: 9055202,
  4533. brown: 10824234,
  4534. burlywood: 14596231,
  4535. cadetblue: 6266528,
  4536. chartreuse: 8388352,
  4537. chocolate: 13789470,
  4538. coral: 16744272,
  4539. cornflowerblue: 6591981,
  4540. cornsilk: 16775388,
  4541. crimson: 14423100,
  4542. cyan: 65535,
  4543. darkblue: 139,
  4544. darkcyan: 35723,
  4545. darkgoldenrod: 12092939,
  4546. darkgray: 11119017,
  4547. darkgreen: 25600,
  4548. darkgrey: 11119017,
  4549. darkkhaki: 12433259,
  4550. darkmagenta: 9109643,
  4551. darkolivegreen: 5597999,
  4552. darkorange: 16747520,
  4553. darkorchid: 10040012,
  4554. darkred: 9109504,
  4555. darksalmon: 15308410,
  4556. darkseagreen: 9419919,
  4557. darkslateblue: 4734347,
  4558. darkslategray: 3100495,
  4559. darkslategrey: 3100495,
  4560. darkturquoise: 52945,
  4561. darkviolet: 9699539,
  4562. deeppink: 16716947,
  4563. deepskyblue: 49151,
  4564. dimgray: 6908265,
  4565. dimgrey: 6908265,
  4566. dodgerblue: 2003199,
  4567. firebrick: 11674146,
  4568. floralwhite: 16775920,
  4569. forestgreen: 2263842,
  4570. fuchsia: 16711935,
  4571. gainsboro: 14474460,
  4572. ghostwhite: 16316671,
  4573. gold: 16766720,
  4574. goldenrod: 14329120,
  4575. gray: 8421504,
  4576. green: 32768,
  4577. greenyellow: 11403055,
  4578. grey: 8421504,
  4579. honeydew: 15794160,
  4580. hotpink: 16738740,
  4581. indianred: 13458524,
  4582. indigo: 4915330,
  4583. ivory: 16777200,
  4584. khaki: 15787660,
  4585. lavender: 15132410,
  4586. lavenderblush: 16773365,
  4587. lawngreen: 8190976,
  4588. lemonchiffon: 16775885,
  4589. lightblue: 11393254,
  4590. lightcoral: 15761536,
  4591. lightcyan: 14745599,
  4592. lightgoldenrodyellow: 16448210,
  4593. lightgray: 13882323,
  4594. lightgreen: 9498256,
  4595. lightgrey: 13882323,
  4596. lightpink: 16758465,
  4597. lightsalmon: 16752762,
  4598. lightseagreen: 2142890,
  4599. lightskyblue: 8900346,
  4600. lightslategray: 7833753,
  4601. lightslategrey: 7833753,
  4602. lightsteelblue: 11584734,
  4603. lightyellow: 16777184,
  4604. lime: 65280,
  4605. limegreen: 3329330,
  4606. linen: 16445670,
  4607. magenta: 16711935,
  4608. maroon: 8388608,
  4609. mediumaquamarine: 6737322,
  4610. mediumblue: 205,
  4611. mediumorchid: 12211667,
  4612. mediumpurple: 9662683,
  4613. mediumseagreen: 3978097,
  4614. mediumslateblue: 8087790,
  4615. mediumspringgreen: 64154,
  4616. mediumturquoise: 4772300,
  4617. mediumvioletred: 13047173,
  4618. midnightblue: 1644912,
  4619. mintcream: 16121850,
  4620. mistyrose: 16770273,
  4621. moccasin: 16770229,
  4622. navajowhite: 16768685,
  4623. navy: 128,
  4624. oldlace: 16643558,
  4625. olive: 8421376,
  4626. olivedrab: 7048739,
  4627. orange: 16753920,
  4628. orangered: 16729344,
  4629. orchid: 14315734,
  4630. palegoldenrod: 15657130,
  4631. palegreen: 10025880,
  4632. paleturquoise: 11529966,
  4633. palevioletred: 14381203,
  4634. papayawhip: 16773077,
  4635. peachpuff: 16767673,
  4636. peru: 13468991,
  4637. pink: 16761035,
  4638. plum: 14524637,
  4639. powderblue: 11591910,
  4640. purple: 8388736,
  4641. red: 16711680,
  4642. rosybrown: 12357519,
  4643. royalblue: 4286945,
  4644. saddlebrown: 9127187,
  4645. salmon: 16416882,
  4646. sandybrown: 16032864,
  4647. seagreen: 3050327,
  4648. seashell: 16774638,
  4649. sienna: 10506797,
  4650. silver: 12632256,
  4651. skyblue: 8900331,
  4652. slateblue: 6970061,
  4653. slategray: 7372944,
  4654. slategrey: 7372944,
  4655. snow: 16775930,
  4656. springgreen: 65407,
  4657. steelblue: 4620980,
  4658. tan: 13808780,
  4659. teal: 32896,
  4660. thistle: 14204888,
  4661. tomato: 16737095,
  4662. turquoise: 4251856,
  4663. violet: 15631086,
  4664. wheat: 16113331,
  4665. white: 16777215,
  4666. whitesmoke: 16119285,
  4667. yellow: 16776960,
  4668. yellowgreen: 10145074
  4669. });
  4670. uc.forEach(function(n, t) {
  4671. uc.set(n, dt(t))
  4672. }), oa.functor = Et, oa.xhr = At(Nt), oa.dsv = function(n, t) {
  4673. function r(n, r, i) {
  4674. arguments.length < 3 && (i = r, r = null);
  4675. var o = Ct(n, t, null == r ? e : u(r), i);
  4676. return o.row = function(n) {
  4677. return arguments.length ? o.response(null == (r = n) ? e : u(n)) : r
  4678. }, o
  4679. }
  4680. function e(n) {
  4681. return r.parse(n.responseText)
  4682. }
  4683. function u(n) {
  4684. return function(t) {
  4685. return r.parse(t.responseText, n)
  4686. }
  4687. }
  4688. function i(t) {
  4689. return t.map(o).join(n)
  4690. }
  4691. function o(n) {
  4692. return a.test(n) ? '"' + n.replace(/\"/g, '""') + '"' : n
  4693. }
  4694. var a = new RegExp('["' + n + "\n]"),
  4695. c = n.charCodeAt(0);
  4696. return r.parse = function(n, t) {
  4697. var e;
  4698. return r.parseRows(n, function(n, r) {
  4699. if (e) return e(n, r - 1);
  4700. var u = new Function("d", "return {" + n.map(function(n, t) {
  4701. return JSON.stringify(n) + ": d[" + t + "]"
  4702. }).join(",") + "}");
  4703. e = t ?
  4704. function(n, r) {
  4705. return t(u(n), r)
  4706. } : u
  4707. })
  4708. }, r.parseRows = function(n, t) {
  4709. function r() {
  4710. if (s >= l) return o;
  4711. if (u) return u = !1, i;
  4712. var t = s;
  4713. if (34 === n.charCodeAt(t)) {
  4714. for (var r = t; r++ < l;) if (34 === n.charCodeAt(r)) {
  4715. if (34 !== n.charCodeAt(r + 1)) break;
  4716. ++r
  4717. }
  4718. s = r + 2;
  4719. var e = n.charCodeAt(r + 1);
  4720. return 13 === e ? (u = !0, 10 === n.charCodeAt(r + 2) && ++s) : 10 === e && (u = !0), n.substring(t + 1, r).replace(/""/g, '"')
  4721. }
  4722. for (; l > s;) {
  4723. var e = n.charCodeAt(s++),
  4724. a = 1;
  4725. if (10 === e) u = !0;
  4726. else if (13 === e) u = !0, 10 === n.charCodeAt(s) && (++s, ++a);
  4727. else if (e !== c) continue;
  4728. return n.substring(t, s - a)
  4729. }
  4730. return n.substring(t)
  4731. }
  4732. for (var e, u, i = {}, o = {}, a = [], l = n.length, s = 0, f = 0;
  4733. (e = r()) !== o;) {
  4734. for (var h = []; e !== i && e !== o;) h.push(e), e = r();
  4735. (!t || (h = t(h, f++))) && a.push(h)
  4736. }
  4737. return a
  4738. }, r.format = function(t) {
  4739. if (Array.isArray(t[0])) return r.formatRows(t);
  4740. var e = new h,
  4741. u = [];
  4742. return t.forEach(function(n) {
  4743. for (var t in n) e.has(t) || u.push(e.add(t))
  4744. }), [u.map(o).join(n)].concat(t.map(function(t) {
  4745. return u.map(function(n) {
  4746. return o(t[n])
  4747. }).join(n)
  4748. })).join("\n")
  4749. }, r.formatRows = function(n) {
  4750. return n.map(i).join("\n")
  4751. }, r
  4752. }, oa.csv = oa.dsv(",", "text/csv"), oa.tsv = oa.dsv(" ", "text/tab-separated-values"), oa.touch = function(n, t, r) {
  4753. if (arguments.length < 3 && (r = t, t = x().changedTouches), t) for (var e, u = 0, i = t.length; i > u; ++u) if ((e = t[u]).identifier === r) return Z(n, e)
  4754. };
  4755. var ic, oc, ac, cc, lc, sc = fa[p(fa, "requestAnimationFrame")] ||
  4756. function(n) {
  4757. setTimeout(n, 17)
  4758. };
  4759. oa.timer = function(n, t, r) {
  4760. var e = arguments.length;
  4761. 2 > e && (t = 0), 3 > e && (r = Date.now());
  4762. var u = r + t,
  4763. i = {
  4764. c: n,
  4765. t: u,
  4766. f: !1,
  4767. n: null
  4768. };
  4769. oc ? oc.n = i : ic = i, oc = i, ac || (cc = clearTimeout(cc), ac = 1, sc(qt))
  4770. }, oa.timer.flush = function() {
  4771. Tt(), zt()
  4772. }, oa.round = function(n, t) {
  4773. return t ? Math.round(n * (t = Math.pow(10, t))) / t : Math.round(n)
  4774. };
  4775. var fc = ["y", "z", "a", "f", "p", "n", "\xb5", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"].map(Dt);
  4776. oa.formatPrefix = function(n, t) {
  4777. var r = 0;
  4778. return n && (0 > n && (n *= -1), t && (n = oa.round(n, Rt(n, t))), r = 1 + Math.floor(1e-12 + Math.log(n) / Math.LN10), r = Math.max(-24, Math.min(24, 3 * Math.floor((r - 1) / 3)))), fc[8 + r / 3]
  4779. };
  4780. var hc = /(?:([^{])?([<>=^]))?([+\- ])?([$#])?(0)?(\d+)?(,)?(\.-?\d+)?([a-z%])?/i,
  4781. gc = oa.map({
  4782. b: function(n) {
  4783. return n.toString(2)
  4784. },
  4785. c: function(n) {
  4786. return String.fromCharCode(n)
  4787. },
  4788. o: function(n) {
  4789. return n.toString(8)
  4790. },
  4791. x: function(n) {
  4792. return n.toString(16)
  4793. },
  4794. X: function(n) {
  4795. return n.toString(16).toUpperCase()
  4796. },
  4797. g: function(n, t) {
  4798. return n.toPrecision(t)
  4799. },
  4800. e: function(n, t) {
  4801. return n.toExponential(t)
  4802. },
  4803. f: function(n, t) {
  4804. return n.toFixed(t)
  4805. },
  4806. r: function(n, t) {
  4807. return (n = oa.round(n, Rt(n, t))).toFixed(Math.max(0, Math.min(20, Rt(n * (1 + 1e-15), t))))
  4808. }
  4809. }),
  4810. pc = oa.time = {},
  4811. vc = Date;
  4812. jt.prototype = {
  4813. getDate: function() {
  4814. return this._.getUTCDate()
  4815. },
  4816. getDay: function() {
  4817. return this._.getUTCDay()
  4818. },
  4819. getFullYear: function() {
  4820. return this._.getUTCFullYear()
  4821. },
  4822. getHours: function() {
  4823. return this._.getUTCHours()
  4824. },
  4825. getMilliseconds: function() {
  4826. return this._.getUTCMilliseconds()
  4827. },
  4828. getMinutes: function() {
  4829. return this._.getUTCMinutes()
  4830. },
  4831. getMonth: function() {
  4832. return this._.getUTCMonth()
  4833. },
  4834. getSeconds: function() {
  4835. return this._.getUTCSeconds()
  4836. },
  4837. getTime: function() {
  4838. return this._.getTime()
  4839. },
  4840. getTimezoneOffset: function() {
  4841. return 0
  4842. },
  4843. valueOf: function() {
  4844. return this._.valueOf()
  4845. },
  4846. setDate: function() {
  4847. dc.setUTCDate.apply(this._, arguments)
  4848. },
  4849. setDay: function() {
  4850. dc.setUTCDay.apply(this._, arguments)
  4851. },
  4852. setFullYear: function() {
  4853. dc.setUTCFullYear.apply(this._, arguments)
  4854. },
  4855. setHours: function() {
  4856. dc.setUTCHours.apply(this._, arguments)
  4857. },
  4858. setMilliseconds: function() {
  4859. dc.setUTCMilliseconds.apply(this._, arguments)
  4860. },
  4861. setMinutes: function() {
  4862. dc.setUTCMinutes.apply(this._, arguments)
  4863. },
  4864. setMonth: function() {
  4865. dc.setUTCMonth.apply(this._, arguments)
  4866. },
  4867. setSeconds: function() {
  4868. dc.setUTCSeconds.apply(this._, arguments)
  4869. },
  4870. setTime: function() {
  4871. dc.setTime.apply(this._, arguments)
  4872. }
  4873. };
  4874. var dc = Date.prototype;
  4875. pc.year = Ht(function(n) {
  4876. return n = pc.day(n), n.setMonth(0, 1), n
  4877. }, function(n, t) {
  4878. n.setFullYear(n.getFullYear() + t)
  4879. }, function(n) {
  4880. return n.getFullYear()
  4881. }), pc.years = pc.year.range, pc.years.utc = pc.year.utc.range, pc.day = Ht(function(n) {
  4882. var t = new vc(2e3, 0);
  4883. return t.setFullYear(n.getFullYear(), n.getMonth(), n.getDate()), t
  4884. }, function(n, t) {
  4885. n.setDate(n.getDate() + t)
  4886. }, function(n) {
  4887. return n.getDate() - 1
  4888. }), pc.days = pc.day.range, pc.days.utc = pc.day.utc.range, pc.dayOfYear = function(n) {
  4889. var t = pc.year(n);
  4890. return Math.floor((n - t - 6e4 * (n.getTimezoneOffset() - t.getTimezoneOffset())) / 864e5)
  4891. }, ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"].forEach(function(n, t) {
  4892. t = 7 - t;
  4893. var r = pc[n] = Ht(function(n) {
  4894. return (n = pc.day(n)).setDate(n.getDate() - (n.getDay() + t) % 7), n
  4895. }, function(n, t) {
  4896. n.setDate(n.getDate() + 7 * Math.floor(t))
  4897. }, function(n) {
  4898. var r = pc.year(n).getDay();
  4899. return Math.floor((pc.dayOfYear(n) + (r + t) % 7) / 7) - (r !== t)
  4900. });
  4901. pc[n + "s"] = r.range, pc[n + "s"].utc = r.utc.range, pc[n + "OfYear"] = function(n) {
  4902. var r = pc.year(n).getDay();
  4903. return Math.floor((pc.dayOfYear(n) + (r + t) % 7) / 7)
  4904. }
  4905. }), pc.week = pc.sunday, pc.weeks = pc.sunday.range, pc.weeks.utc = pc.sunday.utc.range, pc.weekOfYear = pc.sundayOfYear;
  4906. var mc = {
  4907. "-": "",
  4908. _: " ",
  4909. 0: "0"
  4910. },
  4911. yc = /^\s*\d+/,
  4912. xc = /^%/;
  4913. oa.locale = function(n) {
  4914. return {
  4915. numberFormat: Pt(n),
  4916. timeFormat: Ot(n)
  4917. }
  4918. };
  4919. var Mc = oa.locale({
  4920. decimal: ".",
  4921. thousands: ",",
  4922. grouping: [3],
  4923. currency: ["$", ""],
  4924. dateTime: "%a %b %e %X %Y",
  4925. date: "%m/%d/%Y",
  4926. time: "%H:%M:%S",
  4927. periods: ["AM", "PM"],
  4928. days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"],
  4929. shortDays: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"],
  4930. months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
  4931. shortMonths: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
  4932. });
  4933. oa.format = Mc.numberFormat, oa.geo = {}, cr.prototype = {
  4934. s: 0,
  4935. t: 0,
  4936. add: function(n) {
  4937. lr(n, this.t, _c), lr(_c.s, this.s, this), this.s ? this.t += _c.t : this.s = _c.t
  4938. },
  4939. reset: function() {
  4940. this.s = this.t = 0
  4941. },
  4942. valueOf: function() {
  4943. return this.s
  4944. }
  4945. };
  4946. var _c = new cr;
  4947. oa.geo.stream = function(n, t) {
  4948. n && bc.hasOwnProperty(n.type) ? bc[n.type](n, t) : sr(n, t)
  4949. };
  4950. var bc = {
  4951. Feature: function(n, t) {
  4952. sr(n.geometry, t)
  4953. },
  4954. FeatureCollection: function(n, t) {
  4955. for (var r = n.features, e = -1, u = r.length; ++e < u;) sr(r[e].geometry, t)
  4956. }
  4957. },
  4958. wc = {
  4959. Sphere: function(n, t) {
  4960. t.sphere()
  4961. },
  4962. Point: function(n, t) {
  4963. n = n.coordinates, t.point(n[0], n[1], n[2])
  4964. },
  4965. MultiPoint: function(n, t) {
  4966. for (var r = n.coordinates, e = -1, u = r.length; ++e < u;) n = r[e], t.point(n[0], n[1], n[2])
  4967. },
  4968. LineString: function(n, t) {
  4969. fr(n.coordinates, t, 0)
  4970. },
  4971. MultiLineString: function(n, t) {
  4972. for (var r = n.coordinates, e = -1, u = r.length; ++e < u;) fr(r[e], t, 0)
  4973. },
  4974. Polygon: function(n, t) {
  4975. hr(n.coordinates, t)
  4976. },
  4977. MultiPolygon: function(n, t) {
  4978. for (var r = n.coordinates, e = -1, u = r.length; ++e < u;) hr(r[e], t)
  4979. },
  4980. GeometryCollection: function(n, t) {
  4981. for (var r = n.geometries, e = -1, u = r.length; ++e < u;) sr(r[e], t)
  4982. }
  4983. };
  4984. oa.geo.area = function(n) {
  4985. return Sc = 0, oa.geo.stream(n, Ec), Sc
  4986. };
  4987. var Sc, kc = new cr,
  4988. Ec = {
  4989. sphere: function() {
  4990. Sc += 4 * Ua
  4991. },
  4992. point: v,
  4993. lineStart: v,
  4994. lineEnd: v,
  4995. polygonStart: function() {
  4996. kc.reset(), Ec.lineStart = gr
  4997. },
  4998. polygonEnd: function() {
  4999. var n = 2 * kc;
  5000. Sc += 0 > n ? 4 * Ua + n : n, Ec.lineStart = Ec.lineEnd = Ec.point = v
  5001. }
  5002. };
  5003. oa.geo.bounds = function() {
  5004. function n(n, t) {
  5005. x.push(M = [s = n, h = n]), f > t && (f = t), t > g && (g = t)
  5006. }
  5007. function t(t, r) {
  5008. var e = pr([t * Ia, r * Ia]);
  5009. if (m) {
  5010. var u = dr(m, e),
  5011. i = [u[1], -u[0], 0],
  5012. o = dr(i, u);
  5013. xr(o), o = _r(o);
  5014. var c = t - p,
  5015. l = c > 0 ? 1 : -1,
  5016. v = o[0] * Ya * l,
  5017. d = Ma(c) > 180;
  5018. if (d ^ (v > l * p && l * t > v)) {
  5019. var y = o[1] * Ya;
  5020. y > g && (g = y)
  5021. } else if (v = (v + 360) % 360 - 180, d ^ (v > l * p && l * t > v)) {
  5022. var y = -o[1] * Ya;
  5023. f > y && (f = y)
  5024. } else f > r && (f = r), r > g && (g = r);
  5025. d ? p > t ? a(s, t) > a(s, h) && (h = t) : a(t, h) > a(s, h) && (s = t) : h >= s ? (s > t && (s = t), t > h && (h = t)) : t > p ? a(s, t) > a(s, h) && (h = t) : a(t, h) > a(s, h) && (s = t)
  5026. } else n(t, r);
  5027. m = e, p = t
  5028. }
  5029. function r() {
  5030. _.point = t
  5031. }
  5032. function e() {
  5033. M[0] = s, M[1] = h, _.point = n, m = null
  5034. }
  5035. function u(n, r) {
  5036. if (m) {
  5037. var e = n - p;
  5038. y += Ma(e) > 180 ? e + (e > 0 ? 360 : -360) : e
  5039. } else v = n, d = r;
  5040. Ec.point(n, r), t(n, r)
  5041. }
  5042. function i() {
  5043. Ec.lineStart()
  5044. }
  5045. function o() {
  5046. u(v, d), Ec.lineEnd(), Ma(y) > Fa && (s = -(h = 180)), M[0] = s, M[1] = h, m = null
  5047. }
  5048. function a(n, t) {
  5049. return (t -= n) < 0 ? t + 360 : t
  5050. }
  5051. function c(n, t) {
  5052. return n[0] - t[0]
  5053. }
  5054. function l(n, t) {
  5055. return t[0] <= t[1] ? t[0] <= n && n <= t[1] : n < t[0] || t[1] < n
  5056. }
  5057. var s, f, h, g, p, v, d, m, y, x, M, _ = {
  5058. point: n,
  5059. lineStart: r,
  5060. lineEnd: e,
  5061. polygonStart: function() {
  5062. _.point = u, _.lineStart = i, _.lineEnd = o, y = 0, Ec.polygonStart()
  5063. },
  5064. polygonEnd: function() {
  5065. Ec.polygonEnd(), _.point = n, _.lineStart = r, _.lineEnd = e, 0 > kc ? (s = -(h = 180), f = -(g = 90)) : y > Fa ? g = 90 : -Fa > y && (f = -90), M[0] = s, M[1] = h
  5066. }
  5067. };
  5068. return function(n) {
  5069. g = h = -(s = f = 1 / 0), x = [], oa.geo.stream(n, _);
  5070. var t = x.length;
  5071. if (t) {
  5072. x.sort(c);
  5073. for (var r, e = 1, u = x[0], i = [u]; t > e; ++e) r = x[e], l(r[0], u) || l(r[1], u) ? (a(u[0], r[1]) > a(u[0], u[1]) && (u[1] = r[1]), a(r[0], u[1]) > a(u[0], u[1]) && (u[0] = r[0])) : i.push(u = r);
  5074. for (var o, r, p = -1 / 0, t = i.length - 1, e = 0, u = i[t]; t >= e; u = r, ++e) r = i[e], (o = a(u[1], r[0])) > p && (p = o, s = r[0], h = u[1])
  5075. }
  5076. return x = M = null, 1 / 0 === s || 1 / 0 === f ? [
  5077. [0 / 0, 0 / 0],
  5078. [0 / 0, 0 / 0]
  5079. ] : [
  5080. [s, f],
  5081. [h, g]
  5082. ]
  5083. }
  5084. }(), oa.geo.centroid = function(n) {
  5085. Nc = Ac = Cc = Lc = qc = Tc = zc = Rc = Dc = Pc = Uc = 0, oa.geo.stream(n, jc);
  5086. var t = Dc,
  5087. r = Pc,
  5088. e = Uc,
  5089. u = t * t + r * r + e * e;
  5090. return Oa > u && (t = Tc, r = zc, e = Rc, Fa > Ac && (t = Cc, r = Lc, e = qc), u = t * t + r * r + e * e, Oa > u) ? [0 / 0, 0 / 0] : [Math.atan2(r, t) * Ya, G(e / Math.sqrt(u)) * Ya]
  5091. };
  5092. var Nc, Ac, Cc, Lc, qc, Tc, zc, Rc, Dc, Pc, Uc, jc = {
  5093. sphere: v,
  5094. point: Sr,
  5095. lineStart: Er,
  5096. lineEnd: Nr,
  5097. polygonStart: function() {
  5098. jc.lineStart = Ar
  5099. },
  5100. polygonEnd: function() {
  5101. jc.lineStart = Er
  5102. }
  5103. };
  5104. oa.geo.pointInPolygon = Ur;
  5105. var Hc = zr(Or, jr, Fr, [-Ua, -Ua / 2], Pr),
  5106. Fc = 1e9;
  5107. oa.geo.clipExtent = function() {
  5108. var n, t, r, e, u, i, o = {
  5109. stream: function(n) {
  5110. return u && (u.valid = !1), u = i(n), u.valid = !0, u
  5111. },
  5112. extent: function(a) {
  5113. return arguments.length ? (i = Zr(n = +a[0][0], t = +a[0][1], r = +a[1][0], e = +a[1][1]), u && (u.valid = !1, u = null), o) : [
  5114. [n, t],
  5115. [r, e]
  5116. ]
  5117. }
  5118. };
  5119. return o.extent([
  5120. [0, 0],
  5121. [960, 500]
  5122. ])
  5123. }, oa.geo.distance = function(n, t) {
  5124. var r, e = (t[0] - n[0]) * Ia,
  5125. u = n[1] * Ia,
  5126. i = t[1] * Ia,
  5127. o = Math.sin(e),
  5128. a = Math.cos(e),
  5129. c = Math.sin(u),
  5130. l = Math.cos(u),
  5131. s = Math.sin(i),
  5132. f = Math.cos(i);
  5133. return Math.atan2(Math.sqrt((r = f * o) * r + (r = l * s - c * f * a) * r), c * s + l * f * a)
  5134. };
  5135. var Oc = {};
  5136. (oa.geo.conicEqualArea = function() {
  5137. return Kr(Qr)
  5138. }).raw = Qr, oa.geo.albers = function() {
  5139. return oa.geo.conicEqualArea().rotate([96, 0]).center([-.6, 38.7]).parallels([29.5, 45.5]).scale(1070)
  5140. }, oa.geo.albersUsa = function() {
  5141. function n(n) {
  5142. var i = n[0],
  5143. o = n[1];
  5144. return t = null, r(i, o), t || (e(i, o), t) || u(i, o), t
  5145. }
  5146. var t, r, e, u, i = oa.geo.albers(),
  5147. o = oa.geo.conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]),
  5148. a = oa.geo.conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]),
  5149. c = {
  5150. point: function(n, r) {
  5151. t = [n, r]
  5152. }
  5153. };
  5154. return n.invert = function(n) {
  5155. var t = i.scale(),
  5156. r = i.translate(),
  5157. e = (n[0] - r[0]) / t,
  5158. u = (n[1] - r[1]) / t;
  5159. return (u >= .12 && .234 > u && e >= -.425 && -.214 > e ? o : u >= .166 && .234 > u && e >= -.214 && -.115 > e ? a : i).invert(n)
  5160. }, n.stream = function(n) {
  5161. var t = i.stream(n),
  5162. r = o.stream(n),
  5163. e = a.stream(n);
  5164. return {
  5165. point: function(n, u) {
  5166. t.point(n, u), r.point(n, u), e.point(n, u)
  5167. },
  5168. sphere: function() {
  5169. t.sphere(), r.sphere(), e.sphere()
  5170. },
  5171. lineStart: function() {
  5172. t.lineStart(), r.lineStart(), e.lineStart()
  5173. },
  5174. lineEnd: function() {
  5175. t.lineEnd(), r.lineEnd(), e.lineEnd()
  5176. },
  5177. polygonStart: function() {
  5178. t.polygonStart(), r.polygonStart(), e.polygonStart()
  5179. },
  5180. polygonEnd: function() {
  5181. t.polygonEnd(), r.polygonEnd(), e.polygonEnd()
  5182. }
  5183. }
  5184. }, n.precision = function(t) {
  5185. return arguments.length ? (i.precision(t), o.precision(t), a.precision(t), n) : i.precision()
  5186. }, n.scale = function(t) {
  5187. return arguments.length ? (i.scale(t), o.scale(.35 * t), a.scale(t), n.translate(i.translate())) : i.scale()
  5188. }, n.translate = function(t) {
  5189. if (!arguments.length) return i.translate();
  5190. var l = i.scale(),
  5191. s = +t[0],
  5192. f = +t[1];
  5193. return r = i.translate(t).clipExtent([
  5194. [s - .455 * l, f - .238 * l],
  5195. [s + .455 * l, f + .238 * l]
  5196. ]).stream(c).point, e = o.translate([s - .307 * l, f + .201 * l]).clipExtent([
  5197. [s - .425 * l + Fa, f + .12 * l + Fa],
  5198. [s - .214 * l - Fa, f + .234 * l - Fa]
  5199. ]).stream(c).point, u = a.translate([s - .205 * l, f + .212 * l]).clipExtent([
  5200. [s - .214 * l + Fa, f + .166 * l + Fa],
  5201. [s - .115 * l - Fa, f + .234 * l - Fa]
  5202. ]).stream(c).point, n
  5203. }, n.scale(1070)
  5204. };
  5205. var Ic, Yc, Zc, Vc, $c, Xc, Bc = {
  5206. point: v,
  5207. lineStart: v,
  5208. lineEnd: v,
  5209. polygonStart: function() {
  5210. Yc = 0, Bc.lineStart = ne
  5211. },
  5212. polygonEnd: function() {
  5213. Bc.lineStart = Bc.lineEnd = Bc.point = v, Ic += Ma(Yc / 2)
  5214. }
  5215. },
  5216. Jc = {
  5217. point: te,
  5218. lineStart: v,
  5219. lineEnd: v,
  5220. polygonStart: v,
  5221. polygonEnd: v
  5222. },
  5223. Wc = {
  5224. point: ue,
  5225. lineStart: ie,
  5226. lineEnd: oe,
  5227. polygonStart: function() {
  5228. Wc.lineStart = ae
  5229. },
  5230. polygonEnd: function() {
  5231. Wc.point = ue, Wc.lineStart = ie, Wc.lineEnd = oe
  5232. }
  5233. };
  5234. oa.geo.path = function() {
  5235. function n(n) {
  5236. return n && ("function" == typeof a && i.pointRadius(+a.apply(this, arguments)), o && o.valid || (o = u(i)), oa.geo.stream(n, o)), i.result()
  5237. }
  5238. function t() {
  5239. return o = null, n
  5240. }
  5241. var r, e, u, i, o, a = 4.5;
  5242. return n.area = function(n) {
  5243. return Ic = 0, oa.geo.stream(n, u(Bc)), Ic
  5244. }, n.centroid = function(n) {
  5245. return Cc = Lc = qc = Tc = zc = Rc = Dc = Pc = Uc = 0, oa.geo.stream(n, u(Wc)), Uc ? [Dc / Uc, Pc / Uc] : Rc ? [Tc / Rc, zc / Rc] : qc ? [Cc / qc, Lc / qc] : [0 / 0, 0 / 0]
  5246. }, n.bounds = function(n) {
  5247. return $c = Xc = -(Zc = Vc = 1 / 0), oa.geo.stream(n, u(Jc)), [
  5248. [Zc, Vc],
  5249. [$c, Xc]
  5250. ]
  5251. }, n.projection = function(n) {
  5252. return arguments.length ? (u = (r = n) ? n.stream || se(n) : Nt, t()) : r
  5253. }, n.context = function(n) {
  5254. return arguments.length ? (i = null == (e = n) ? new re : new ce(n), "function" != typeof a && i.pointRadius(a), t()) : e
  5255. }, n.pointRadius = function(t) {
  5256. return arguments.length ? (a = "function" == typeof t ? t : (i.pointRadius(+t), +t), n) : a
  5257. }, n.projection(oa.geo.albersUsa()).context(null)
  5258. }, oa.geo.transform = function(n) {
  5259. return {
  5260. stream: function(t) {
  5261. var r = new fe(t);
  5262. for (var e in n) r[e] = n[e];
  5263. return r
  5264. }
  5265. }
  5266. }, fe.prototype = {
  5267. point: function(n, t) {
  5268. this.stream.point(n, t)
  5269. },
  5270. sphere: function() {
  5271. this.stream.sphere()
  5272. },
  5273. lineStart: function() {
  5274. this.stream.lineStart()
  5275. },
  5276. lineEnd: function() {
  5277. this.stream.lineEnd()
  5278. },
  5279. polygonStart: function() {
  5280. this.stream.polygonStart()
  5281. },
  5282. polygonEnd: function() {
  5283. this.stream.polygonEnd()
  5284. }
  5285. }, oa.geo.projection = ge, oa.geo.projectionMutator = pe, (oa.geo.equirectangular = function() {
  5286. return ge(de)
  5287. }).raw = de.invert = de, oa.geo.rotation = function(n) {
  5288. function t(t) {
  5289. return t = n(t[0] * Ia, t[1] * Ia), t[0] *= Ya, t[1] *= Ya, t
  5290. }
  5291. return n = ye(n[0] % 360 * Ia, n[1] * Ia, n.length > 2 ? n[2] * Ia : 0), t.invert = function(t) {
  5292. return t = n.invert(t[0] * Ia, t[1] * Ia), t[0] *= Ya, t[1] *= Ya, t
  5293. }, t
  5294. }, me.invert = de, oa.geo.circle = function() {
  5295. function n() {
  5296. var n = "function" == typeof e ? e.apply(this, arguments) : e,
  5297. t = ye(-n[0] * Ia, -n[1] * Ia, 0).invert,
  5298. u = [];
  5299. return r(null, null, 1, {
  5300. point: function(n, r) {
  5301. u.push(n = t(n, r)), n[0] *= Ya, n[1] *= Ya
  5302. }
  5303. }), {
  5304. type: "Polygon",
  5305. coordinates: [u]
  5306. }
  5307. }
  5308. var t, r, e = [0, 0],
  5309. u = 6;
  5310. return n.origin = function(t) {
  5311. return arguments.length ? (e = t, n) : e
  5312. }, n.angle = function(e) {
  5313. return arguments.length ? (r = be((t = +e) * Ia, u * Ia), n) : t
  5314. }, n.precision = function(e) {
  5315. return arguments.length ? (r = be(t * Ia, (u = +e) * Ia), n) : u
  5316. }, n.angle(90)
  5317. }, oa.geo.graticule = function() {
  5318. function n() {
  5319. return {
  5320. type: "MultiLineString",
  5321. coordinates: t()
  5322. }
  5323. }
  5324. function t() {
  5325. return oa.range(Math.ceil(i / d) * d, u, d).map(h).concat(oa.range(Math.ceil(l / m) * m, c, m).map(g)).concat(oa.range(Math.ceil(e / p) * p, r, p).filter(function(n) {
  5326. return Ma(n % d) > Fa
  5327. }).map(s)).concat(oa.range(Math.ceil(a / v) * v, o, v).filter(function(n) {
  5328. return Ma(n % m) > Fa
  5329. }).map(f))
  5330. }
  5331. var r, e, u, i, o, a, c, l, s, f, h, g, p = 10,
  5332. v = p,
  5333. d = 90,
  5334. m = 360,
  5335. y = 2.5;
  5336. return n.lines = function() {
  5337. return t().map(function(n) {
  5338. return {
  5339. type: "LineString",
  5340. coordinates: n
  5341. }
  5342. })
  5343. }, n.outline = function() {
  5344. return {
  5345. type: "Polygon",
  5346. coordinates: [h(i).concat(g(c).slice(1), h(u).reverse().slice(1), g(l).reverse().slice(1))]
  5347. }
  5348. }, n.extent = function(t) {
  5349. return arguments.length ? n.majorExtent(t).minorExtent(t) : n.minorExtent()
  5350. }, n.majorExtent = function(t) {
  5351. return arguments.length ? (i = +t[0][0], u = +t[1][0], l = +t[0][1], c = +t[1][1], i > u && (t = i, i = u, u = t), l > c && (t = l, l = c, c = t), n.precision(y)) : [
  5352. [i, l],
  5353. [u, c]
  5354. ]
  5355. }, n.minorExtent = function(t) {
  5356. return arguments.length ? (e = +t[0][0], r = +t[1][0], a = +t[0][1], o = +t[1][1], e > r && (t = e, e = r, r = t), a > o && (t = a, a = o, o = t), n.precision(y)) : [
  5357. [e, a],
  5358. [r, o]
  5359. ]
  5360. }, n.step = function(t) {
  5361. return arguments.length ? n.majorStep(t).minorStep(t) : n.minorStep()
  5362. }, n.majorStep = function(t) {
  5363. return arguments.length ? (d = +t[0], m = +t[1], n) : [d, m]
  5364. }, n.minorStep = function(t) {
  5365. return arguments.length ? (p = +t[0], v = +t[1], n) : [p, v]
  5366. }, n.precision = function(t) {
  5367. return arguments.length ? (y = +t, s = Se(a, o, 90), f = ke(e, r, y), h = Se(l, c, 90), g = ke(i, u, y), n) : y
  5368. }, n.majorExtent([
  5369. [-180, -90 + Fa],
  5370. [180, 90 - Fa]
  5371. ]).minorExtent([
  5372. [-180, -80 - Fa],
  5373. [180, 80 + Fa]
  5374. ])
  5375. }, oa.geo.greatArc = function() {
  5376. function n() {
  5377. return {
  5378. type: "LineString",
  5379. coordinates: [t || e.apply(this, arguments), r || u.apply(this, arguments)]
  5380. }
  5381. }
  5382. var t, r, e = Ee,
  5383. u = Ne;
  5384. return n.distance = function() {
  5385. return oa.geo.distance(t || e.apply(this, arguments), r || u.apply(this, arguments))
  5386. }, n.source = function(r) {
  5387. return arguments.length ? (e = r, t = "function" == typeof r ? null : r, n) : e
  5388. }, n.target = function(t) {
  5389. return arguments.length ? (u = t, r = "function" == typeof t ? null : t, n) : u
  5390. }, n.precision = function() {
  5391. return arguments.length ? n : 0
  5392. }, n
  5393. }, oa.geo.interpolate = function(n, t) {
  5394. return Ae(n[0] * Ia, n[1] * Ia, t[0] * Ia, t[1] * Ia)
  5395. }, oa.geo.length = function(n) {
  5396. return Gc = 0, oa.geo.stream(n, Kc), Gc
  5397. };
  5398. var Gc, Kc = {
  5399. sphere: v,
  5400. point: v,
  5401. lineStart: Ce,
  5402. lineEnd: v,
  5403. polygonStart: v,
  5404. polygonEnd: v
  5405. },
  5406. Qc = Le(function(n) {
  5407. return Math.sqrt(2 / (1 + n))
  5408. }, function(n) {
  5409. return 2 * Math.asin(n / 2)
  5410. });
  5411. (oa.geo.azimuthalEqualArea = function() {
  5412. return ge(Qc)
  5413. }).raw = Qc;
  5414. var nl = Le(function(n) {
  5415. var t = Math.acos(n);
  5416. return t && t / Math.sin(t)
  5417. }, Nt);
  5418. (oa.geo.azimuthalEquidistant = function() {
  5419. return ge(nl)
  5420. }).raw = nl, (oa.geo.conicConformal = function() {
  5421. return Kr(qe)
  5422. }).raw = qe, (oa.geo.conicEquidistant = function() {
  5423. return Kr(Te)
  5424. }).raw = Te;
  5425. var tl = Le(function(n) {
  5426. return 1 / n
  5427. }, Math.atan);
  5428. (oa.geo.gnomonic = function() {
  5429. return ge(tl)
  5430. }).raw = tl, ze.invert = function(n, t) {
  5431. return [n, 2 * Math.atan(Math.exp(t)) - Ha]
  5432. }, (oa.geo.mercator = function() {
  5433. return Re(ze)
  5434. }).raw = ze;
  5435. var rl = Le(function() {
  5436. return 1
  5437. }, Math.asin);
  5438. (oa.geo.orthographic = function() {
  5439. return ge(rl)
  5440. }).raw = rl;
  5441. var el = Le(function(n) {
  5442. return 1 / (1 + n)
  5443. }, function(n) {
  5444. return 2 * Math.atan(n)
  5445. });
  5446. (oa.geo.stereographic = function() {
  5447. return ge(el)
  5448. }).raw = el, De.invert = function(n, t) {
  5449. return [-t, 2 * Math.atan(Math.exp(n)) - Ha]
  5450. }, (oa.geo.transverseMercator = function() {
  5451. var n = Re(De),
  5452. t = n.center,
  5453. r = n.rotate;
  5454. return n.center = function(n) {
  5455. return n ? t([-n[1], n[0]]) : (n = t(), [-n[1], n[0]])
  5456. }, n.rotate = function(n) {
  5457. return n ? r([n[0], n[1], n.length > 2 ? n[2] + 90 : 90]) : (n = r(), [n[0], n[1], n[2] - 90])
  5458. }, n.rotate([0, 0])
  5459. }).raw = De, oa.geom = {}, oa.geom.hull = function(n) {
  5460. function t(n) {
  5461. if (n.length < 3) return [];
  5462. var t, u = Et(r),
  5463. i = Et(e),
  5464. o = n.length,
  5465. a = [],
  5466. c = [];
  5467. for (t = 0; o > t; t++) a.push([+u.call(this, n[t], t), +i.call(this, n[t], t), t]);
  5468. for (a.sort(He), t = 0; o > t; t++) c.push([a[t][0], -a[t][1]]);
  5469. var l = je(a),
  5470. s = je(c),
  5471. f = s[0] === l[0],
  5472. h = s[s.length - 1] === l[l.length - 1],
  5473. g = [];
  5474. for (t = l.length - 1; t >= 0; --t) g.push(n[a[l[t]][2]]);
  5475. for (t = +f; t < s.length - h; ++t) g.push(n[a[s[t]][2]]);
  5476. return g
  5477. }
  5478. var r = Pe,
  5479. e = Ue;
  5480. return arguments.length ? t(n) : (t.x = function(n) {
  5481. return arguments.length ? (r = n, t) : r
  5482. }, t.y = function(n) {
  5483. return arguments.length ? (e = n, t) : e
  5484. }, t)
  5485. }, oa.geom.polygon = function(n) {
  5486. return ka(n, ul), n
  5487. };
  5488. var ul = oa.geom.polygon.prototype = [];
  5489. ul.area = function() {
  5490. for (var n, t = -1, r = this.length, e = this[r - 1], u = 0; ++t < r;) n = e, e = this[t], u += n[1] * e[0] - n[0] * e[1];
  5491. return .5 * u
  5492. }, ul.centroid = function(n) {
  5493. var t, r, e = -1,
  5494. u = this.length,
  5495. i = 0,
  5496. o = 0,
  5497. a = this[u - 1];
  5498. for (arguments.length || (n = -1 / (6 * this.area())); ++e < u;) t = a, a = this[e], r = t[0] * a[1] - a[0] * t[1], i += (t[0] + a[0]) * r, o += (t[1] + a[1]) * r;
  5499. return [i * n, o * n]
  5500. }, ul.clip = function(n) {
  5501. for (var t, r, e, u, i, o, a = Ie(n), c = -1, l = this.length - Ie(this), s = this[l - 1]; ++c < l;) {
  5502. for (t = n.slice(), n.length = 0, u = this[c], i = t[(e = t.length - a) - 1], r = -1; ++r < e;) o = t[r], Fe(o, s, u) ? (Fe(i, s, u) || n.push(Oe(i, o, s, u)), n.push(o)) : Fe(i, s, u) && n.push(Oe(i, o, s, u)), i = o;
  5503. a && n.push(n[0]), s = u
  5504. }
  5505. return n
  5506. };
  5507. var il, ol, al, cl, ll, sl = [],
  5508. fl = [];
  5509. We.prototype.prepare = function() {
  5510. for (var n, t = this.edges, r = t.length; r--;) n = t[r].edge, n.b && n.a || t.splice(r, 1);
  5511. return t.sort(Ke), t.length
  5512. }, cu.prototype = {
  5513. start: function() {
  5514. return this.edge.l === this.site ? this.edge.a : this.edge.b
  5515. },
  5516. end: function() {
  5517. return this.edge.l === this.site ? this.edge.b : this.edge.a
  5518. }
  5519. }, lu.prototype = {
  5520. insert: function(n, t) {
  5521. var r, e, u;
  5522. if (n) {
  5523. if (t.P = n, t.N = n.N, n.N && (n.N.P = t), n.N = t, n.R) {
  5524. for (n = n.R; n.L;) n = n.L;
  5525. n.L = t
  5526. } else n.R = t;
  5527. r = n
  5528. } else this._ ? (n = gu(this._), t.P = null, t.N = n, n.P = n.L = t, r = n) : (t.P = t.N = null, this._ = t, r = null);
  5529. for (t.L = t.R = null, t.U = r, t.C = !0, n = t; r && r.C;) e = r.U, r === e.L ? (u = e.R, u && u.C ? (r.C = u.C = !1, e.C = !0, n = e) : (n === r.R && (fu(this, r), n = r, r = n.U), r.C = !1, e.C = !0, hu(this, e))) : (u = e.L, u && u.C ? (r.C = u.C = !1, e.C = !0, n = e) : (n === r.L && (hu(this, r), n = r, r = n.U), r.C = !1, e.C = !0, fu(this, e))), r = n.U;
  5530. this._.C = !1
  5531. },
  5532. remove: function(n) {
  5533. n.N && (n.N.P = n.P), n.P && (n.P.N = n.N), n.N = n.P = null;
  5534. var t, r, e, u = n.U,
  5535. i = n.L,
  5536. o = n.R;
  5537. if (r = i ? o ? gu(o) : i : o, u ? u.L === n ? u.L = r : u.R = r : this._ = r, i && o ? (e = r.C, r.C = n.C, r.L = i, i.U = r, r !== o ? (u = r.U, r.U = n.U, n = r.R, u.L = n, r.R = o, o.U = r) : (r.U = u, u = r, n = r.R)) : (e = n.C, n = r), n && (n.U = u), !e) {
  5538. if (n && n.C) return n.C = !1, void 0;
  5539. do {
  5540. if (n === this._) break;
  5541. if (n === u.L) {
  5542. if (t = u.R, t.C && (t.C = !1, u.C = !0, fu(this, u), t = u.R), t.L && t.L.C || t.R && t.R.C) {
  5543. t.R && t.R.C || (t.L.C = !1, t.C = !0, hu(this, t), t = u.R), t.C = u.C, u.C = t.R.C = !1, fu(this, u), n = this._;
  5544. break
  5545. }
  5546. } else if (t = u.L, t.C && (t.C = !1, u.C = !0, hu(this, u), t = u.L), t.L && t.L.C || t.R && t.R.C) {
  5547. t.L && t.L.C || (t.R.C = !1, t.C = !0, fu(this, t), t = u.L), t.C = u.C, u.C = t.L.C = !1, hu(this, u), n = this._;
  5548. break
  5549. }
  5550. t.C = !0, n = u, u = u.U
  5551. } while (!n.C);
  5552. n && (n.C = !1)
  5553. }
  5554. }
  5555. }, oa.geom.voronoi = function(n) {
  5556. function t(n) {
  5557. var t = new Array(n.length),
  5558. e = a[0][0],
  5559. u = a[0][1],
  5560. i = a[1][0],
  5561. o = a[1][1];
  5562. return pu(r(n), a).cells.forEach(function(r, a) {
  5563. var c = r.edges,
  5564. l = r.site,
  5565. s = t[a] = c.length ? c.map(function(n) {
  5566. var t = n.start();
  5567. return [t.x, t.y]
  5568. }) : l.x >= e && l.x <= i && l.y >= u && l.y <= o ? [
  5569. [e, o],
  5570. [i, o],
  5571. [i, u],
  5572. [e, u]
  5573. ] : [];
  5574. s.point = n[a]
  5575. }), t
  5576. }
  5577. function r(n) {
  5578. return n.map(function(n, t) {
  5579. return {
  5580. x: Math.round(i(n, t) / Fa) * Fa,
  5581. y: Math.round(o(n, t) / Fa) * Fa,
  5582. i: t
  5583. }
  5584. })
  5585. }
  5586. var e = Pe,
  5587. u = Ue,
  5588. i = e,
  5589. o = u,
  5590. a = hl;
  5591. return n ? t(n) : (t.links = function(n) {
  5592. return pu(r(n)).edges.filter(function(n) {
  5593. return n.l && n.r
  5594. }).map(function(t) {
  5595. return {
  5596. source: n[t.l.i],
  5597. target: n[t.r.i]
  5598. }
  5599. })
  5600. }, t.triangles = function(n) {
  5601. var t = [];
  5602. return pu(r(n)).cells.forEach(function(r, e) {
  5603. for (var u, i, o = r.site, a = r.edges.sort(Ke), c = -1, l = a.length, s = a[l - 1].edge, f = s.l === o ? s.r : s.l; ++c < l;) u = s, i = f, s = a[c].edge, f = s.l === o ? s.r : s.l, e < i.i && e < f.i && du(o, i, f) < 0 && t.push([n[e], n[i.i], n[f.i]])
  5604. }), t
  5605. }, t.x = function(n) {
  5606. return arguments.length ? (i = Et(e = n), t) : e
  5607. }, t.y = function(n) {
  5608. return arguments.length ? (o = Et(u = n), t) : u
  5609. }, t.clipExtent = function(n) {
  5610. return arguments.length ? (a = null == n ? hl : n, t) : a === hl ? null : a
  5611. }, t.size = function(n) {
  5612. return arguments.length ? t.clipExtent(n && [
  5613. [0, 0], n]) : a === hl ? null : a && a[1]
  5614. }, t)
  5615. };
  5616. var hl = [
  5617. [-1e6, -1e6],
  5618. [1e6, 1e6]
  5619. ];
  5620. oa.geom.delaunay = function(n) {
  5621. return oa.geom.voronoi().triangles(n)
  5622. }, oa.geom.quadtree = function(n, t, r, e, u) {
  5623. function i(n) {
  5624. function i(n, t, r, e, u, i, o, a) {
  5625. if (!isNaN(r) && !isNaN(e)) if (n.leaf) {
  5626. var c = n.x,
  5627. s = n.y;
  5628. if (null != c) if (Ma(c - r) + Ma(s - e) < .01) l(n, t, r, e, u, i, o, a);
  5629. else {
  5630. var f = n.point;
  5631. n.x = n.y = n.point = null, l(n, f, c, s, u, i, o, a), l(n, t, r, e, u, i, o, a)
  5632. } else n.x = r, n.y = e, n.point = t
  5633. } else l(n, t, r, e, u, i, o, a)
  5634. }
  5635. function l(n, t, r, e, u, o, a, c) {
  5636. var l = .5 * (u + a),
  5637. s = .5 * (o + c),
  5638. f = r >= l,
  5639. h = e >= s,
  5640. g = (h << 1) + f;
  5641. n.leaf = !1, n = n.nodes[g] || (n.nodes[g] = xu()), f ? u = l : a = l, h ? o = s : c = s, i(n, t, r, e, u, o, a, c)
  5642. }
  5643. var s, f, h, g, p, v, d, m, y, x = Et(a),
  5644. M = Et(c);
  5645. if (null != t) v = t, d = r, m = e, y = u;
  5646. else if (m = y = -(v = d = 1 / 0), f = [], h = [], p = n.length, o) for (g = 0; p > g; ++g) s = n[g], s.x < v && (v = s.x), s.y < d && (d = s.y), s.x > m && (m = s.x), s.y > y && (y = s.y), f.push(s.x), h.push(s.y);
  5647. else for (g = 0; p > g; ++g) {
  5648. var _ = +x(s = n[g], g),
  5649. b = +M(s, g);
  5650. v > _ && (v = _), d > b && (d = b), _ > m && (m = _), b > y && (y = b), f.push(_), h.push(b)
  5651. }
  5652. var w = m - v,
  5653. S = y - d;
  5654. w > S ? y = d + w : m = v + S;
  5655. var k = xu();
  5656. if (k.add = function(n) {
  5657. i(k, n, +x(n, ++g), +M(n, g), v, d, m, y)
  5658. }, k.visit = function(n) {
  5659. Mu(n, k, v, d, m, y)
  5660. }, g = -1, null == t) {
  5661. for (; ++g < p;) i(k, n[g], f[g], h[g], v, d, m, y);
  5662. --g
  5663. } else n.forEach(k.add);
  5664. return f = h = n = s = null, k
  5665. }
  5666. var o, a = Pe,
  5667. c = Ue;
  5668. return (o = arguments.length) ? (a = mu, c = yu, 3 === o && (u = r, e = t, r = t = 0), i(n)) : (i.x = function(n) {
  5669. return arguments.length ? (a = n, i) : a
  5670. }, i.y = function(n) {
  5671. return arguments.length ? (c = n, i) : c
  5672. }, i.extent = function(n) {
  5673. return arguments.length ? (null == n ? t = r = e = u = null : (t = +n[0][0], r = +n[0][1], e = +n[1][0], u = +n[1][1]), i) : null == t ? null : [
  5674. [t, r],
  5675. [e, u]
  5676. ]
  5677. }, i.size = function(n) {
  5678. return arguments.length ? (null == n ? t = r = e = u = null : (t = r = 0, e = +n[0], u = +n[1]), i) : null == t ? null : [e - t, u - r]
  5679. }, i)
  5680. }, oa.interpolateRgb = _u, oa.interpolateObject = bu, oa.interpolateNumber = wu, oa.interpolateString = Su;
  5681. var gl = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;
  5682. oa.interpolate = ku, oa.interpolators = [function(n, t) {
  5683. var r = typeof t;
  5684. return ("string" === r ? uc.has(t) || /^(#|rgb\(|hsl\()/.test(t) ? _u : Su : t instanceof rt ? _u : Array.isArray(t) ? Eu : "object" === r && isNaN(t) ? bu : wu)(n, t)
  5685. }], oa.interpolateArray = Eu;
  5686. var pl = function() {
  5687. return Nt
  5688. },
  5689. vl = oa.map({
  5690. linear: pl,
  5691. poly: zu,
  5692. quad: function() {
  5693. return Lu
  5694. },
  5695. cubic: function() {
  5696. return qu
  5697. },
  5698. sin: function() {
  5699. return Ru
  5700. },
  5701. exp: function() {
  5702. return Du
  5703. },
  5704. circle: function() {
  5705. return Pu
  5706. },
  5707. elastic: Uu,
  5708. back: ju,
  5709. bounce: function() {
  5710. return Hu
  5711. }
  5712. }),
  5713. dl = oa.map({
  5714. "in": Nt,
  5715. out: Au,
  5716. "in-out": Cu,
  5717. "out-in": function(n) {
  5718. return Cu(Au(n))
  5719. }
  5720. });
  5721. oa.ease = function(n) {
  5722. var t = n.indexOf("-"),
  5723. r = t >= 0 ? n.substring(0, t) : n,
  5724. e = t >= 0 ? n.substring(t + 1) : "in";
  5725. return r = vl.get(r) || pl, e = dl.get(e) || Nt, Nu(e(r.apply(null, aa.call(arguments, 1))))
  5726. }, oa.interpolateHcl = Fu, oa.interpolateHsl = Ou, oa.interpolateLab = Iu, oa.interpolateRound = Yu, oa.transform = function(n) {
  5727. var t = la.createElementNS(oa.ns.prefix.svg, "g");
  5728. return (oa.transform = function(n) {
  5729. if (null != n) {
  5730. t.setAttribute("transform", n);
  5731. var r = t.transform.baseVal.consolidate()
  5732. }
  5733. return new Zu(r ? r.matrix : ml)
  5734. })(n)
  5735. }, Zu.prototype.toString = function() {
  5736. return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")"
  5737. };
  5738. var ml = {
  5739. a: 1,
  5740. b: 0,
  5741. c: 0,
  5742. d: 1,
  5743. e: 0,
  5744. f: 0
  5745. };
  5746. oa.interpolateTransform = Bu, oa.layout = {}, oa.layout.bundle = function() {
  5747. return function(n) {
  5748. for (var t = [], r = -1, e = n.length; ++r < e;) t.push(Gu(n[r]));
  5749. return t
  5750. }
  5751. }, oa.layout.chord = function() {
  5752. function n() {
  5753. var n, l, f, h, g, p = {},
  5754. v = [],
  5755. d = oa.range(i),
  5756. m = [];
  5757. for (r = [], e = [], n = 0, h = -1; ++h < i;) {
  5758. for (l = 0, g = -1; ++g < i;) l += u[h][g];
  5759. v.push(l), m.push(oa.range(i)), n += l
  5760. }
  5761. for (o && d.sort(function(n, t) {
  5762. return o(v[n], v[t])
  5763. }), a && m.forEach(function(n, t) {
  5764. n.sort(function(n, r) {
  5765. return a(u[t][n], u[t][r])
  5766. })
  5767. }), n = (ja - s * i) / n, l = 0, h = -1; ++h < i;) {
  5768. for (f = l, g = -1; ++g < i;) {
  5769. var y = d[h],
  5770. x = m[y][g],
  5771. M = u[y][x],
  5772. _ = l,
  5773. b = l += M * n;
  5774. p[y + "-" + x] = {
  5775. index: y,
  5776. subindex: x,
  5777. startAngle: _,
  5778. endAngle: b,
  5779. value: M
  5780. }
  5781. }
  5782. e[y] = {
  5783. index: y,
  5784. startAngle: f,
  5785. endAngle: l,
  5786. value: (l - f) / n
  5787. }, l += s
  5788. }
  5789. for (h = -1; ++h < i;) for (g = h - 1; ++g < i;) {
  5790. var w = p[h + "-" + g],
  5791. S = p[g + "-" + h];
  5792. (w.value || S.value) && r.push(w.value < S.value ? {
  5793. source: S,
  5794. target: w
  5795. } : {
  5796. source: w,
  5797. target: S
  5798. })
  5799. }
  5800. c && t()
  5801. }
  5802. function t() {
  5803. r.sort(function(n, t) {
  5804. return c((n.source.value + n.target.value) / 2, (t.source.value + t.target.value) / 2)
  5805. })
  5806. }
  5807. var r, e, u, i, o, a, c, l = {},
  5808. s = 0;
  5809. return l.matrix = function(n) {
  5810. return arguments.length ? (i = (u = n) && u.length, r = e = null, l) : u
  5811. }, l.padding = function(n) {
  5812. return arguments.length ? (s = n, r = e = null, l) : s
  5813. }, l.sortGroups = function(n) {
  5814. return arguments.length ? (o = n, r = e = null, l) : o
  5815. }, l.sortSubgroups = function(n) {
  5816. return arguments.length ? (a = n, r = null, l) : a
  5817. }, l.sortChords = function(n) {
  5818. return arguments.length ? (c = n, r && t(), l) : c
  5819. }, l.chords = function() {
  5820. return r || n(), r
  5821. }, l.groups = function() {
  5822. return e || n(), e
  5823. }, l
  5824. }, oa.layout.force = function() {
  5825. function n(n) {
  5826. return function(t, r, e, u) {
  5827. if (t.point !== n) {
  5828. var i = t.cx - n.x,
  5829. o = t.cy - n.y,
  5830. a = u - r,
  5831. c = i * i + o * o;
  5832. if (c > a * a / d) {
  5833. if (p > c) {
  5834. var l = t.charge / c;
  5835. n.px -= i * l, n.py -= o * l
  5836. }
  5837. return !0
  5838. }
  5839. if (t.point && c && p > c) {
  5840. var l = t.pointCharge / c;
  5841. n.px -= i * l, n.py -= o * l
  5842. }
  5843. }
  5844. return !t.charge
  5845. }
  5846. }
  5847. function t(n) {
  5848. n.px = oa.event.x, n.py = oa.event.y, a.resume()
  5849. }
  5850. var r, e, u, i, o, a = {},
  5851. c = oa.dispatch("start", "tick", "end"),
  5852. l = [1, 1],
  5853. s = .9,
  5854. f = yl,
  5855. h = xl,
  5856. g = -30,
  5857. p = Ml,
  5858. v = .1,
  5859. d = .64,
  5860. m = [],
  5861. y = [];
  5862. return a.tick = function() {
  5863. if ((e *= .99) < .005) return c.end({
  5864. type: "end",
  5865. alpha: e = 0
  5866. }), !0;
  5867. var t, r, a, f, h, p, d, x, M, _ = m.length,
  5868. b = y.length;
  5869. for (r = 0; b > r; ++r) a = y[r], f = a.source, h = a.target, x = h.x - f.x, M = h.y - f.y, (p = x * x + M * M) && (p = e * i[r] * ((p = Math.sqrt(p)) - u[r]) / p, x *= p, M *= p, h.x -= x * (d = f.weight / (h.weight + f.weight)), h.y -= M * d, f.x += x * (d = 1 - d), f.y += M * d);
  5870. if ((d = e * v) && (x = l[0] / 2, M = l[1] / 2, r = -1, d)) for (; ++r < _;) a = m[r], a.x += (x - a.x) * d, a.y += (M - a.y) * d;
  5871. if (g) for (ui(t = oa.geom.quadtree(m), e, o), r = -1; ++r < _;)(a = m[r]).fixed || t.visit(n(a));
  5872. for (r = -1; ++r < _;) a = m[r], a.fixed ? (a.x = a.px, a.y = a.py) : (a.x -= (a.px - (a.px = a.x)) * s, a.y -= (a.py - (a.py = a.y)) * s);
  5873. c.tick({
  5874. type: "tick",
  5875. alpha: e
  5876. })
  5877. }, a.nodes = function(n) {
  5878. return arguments.length ? (m = n, a) : m
  5879. }, a.links = function(n) {
  5880. return arguments.length ? (y = n, a) : y
  5881. }, a.size = function(n) {
  5882. return arguments.length ? (l = n, a) : l
  5883. }, a.linkDistance = function(n) {
  5884. return arguments.length ? (f = "function" == typeof n ? n : +n, a) : f
  5885. }, a.distance = a.linkDistance, a.linkStrength = function(n) {
  5886. return arguments.length ? (h = "function" == typeof n ? n : +n, a) : h
  5887. }, a.friction = function(n) {
  5888. return arguments.length ? (s = +n, a) : s
  5889. }, a.charge = function(n) {
  5890. return arguments.length ? (g = "function" == typeof n ? n : +n, a) : g
  5891. }, a.chargeDistance = function(n) {
  5892. return arguments.length ? (p = n * n, a) : Math.sqrt(p)
  5893. }, a.gravity = function(n) {
  5894. return arguments.length ? (v = +n, a) : v
  5895. }, a.theta = function(n) {
  5896. return arguments.length ? (d = n * n, a) : Math.sqrt(d)
  5897. }, a.alpha = function(n) {
  5898. return arguments.length ? (n = +n, e ? e = n > 0 ? n : 0 : n > 0 && (c.start({
  5899. type: "start",
  5900. alpha: e = n
  5901. }), oa.timer(a.tick)), a) : e
  5902. }, a.start = function() {
  5903. function n(n, e) {
  5904. if (!r) {
  5905. for (r = new Array(c), a = 0; c > a; ++a) r[a] = [];
  5906. for (a = 0; l > a; ++a) {
  5907. var u = y[a];
  5908. r[u.source.index].push(u.target), r[u.target.index].push(u.source)
  5909. }
  5910. }
  5911. for (var i, o = r[t], a = -1, l = o.length; ++a < l;) if (!isNaN(i = o[a][n])) return i;
  5912. return Math.random() * e
  5913. }
  5914. var t, r, e, c = m.length,
  5915. s = y.length,
  5916. p = l[0],
  5917. v = l[1];
  5918. for (t = 0; c > t; ++t)(e = m[t]).index = t, e.weight = 0;
  5919. for (t = 0; s > t; ++t) e = y[t], "number" == typeof e.source && (e.source = m[e.source]), "number" == typeof e.target && (e.target = m[e.target]), ++e.source.weight, ++e.target.weight;
  5920. for (t = 0; c > t; ++t) e = m[t], isNaN(e.x) && (e.x = n("x", p)), isNaN(e.y) && (e.y = n("y", v)), isNaN(e.px) && (e.px = e.x), isNaN(e.py) && (e.py = e.y);
  5921. if (u = [], "function" == typeof f) for (t = 0; s > t; ++t) u[t] = +f.call(this, y[t], t);
  5922. else for (t = 0; s > t; ++t) u[t] = f;
  5923. if (i = [], "function" == typeof h) for (t = 0; s > t; ++t) i[t] = +h.call(this, y[t], t);
  5924. else for (t = 0; s > t; ++t) i[t] = h;
  5925. if (o = [], "function" == typeof g) for (t = 0; c > t; ++t) o[t] = +g.call(this, m[t], t);
  5926. else for (t = 0; c > t; ++t) o[t] = g;
  5927. return a.resume()
  5928. }, a.resume = function() {
  5929. return a.alpha(.1)
  5930. }, a.stop = function() {
  5931. return a.alpha(0)
  5932. }, a.drag = function() {
  5933. return r || (r = oa.behavior.drag().origin(Nt).on("dragstart.force", ni).on("drag.force", t).on("dragend.force", ti)), arguments.length ? (this.on("mouseover.force", ri).on("mouseout.force", ei).call(r), void 0) : r
  5934. }, oa.rebind(a, c, "on")
  5935. };
  5936. var yl = 20,
  5937. xl = 1,
  5938. Ml = 1 / 0;
  5939. oa.layout.hierarchy = function() {
  5940. function n(t, o, a) {
  5941. var c = u.call(r, t, o);
  5942. if (t.depth = o, a.push(t), c && (l = c.length)) {
  5943. for (var l, s, f = -1, h = t.children = new Array(l), g = 0, p = o + 1; ++f < l;) s = h[f] = n(c[f], p, a), s.parent = t, g += s.value;
  5944. e && h.sort(e), i && (t.value = g)
  5945. } else delete t.children, i && (t.value = +i.call(r, t, o) || 0);
  5946. return t
  5947. }
  5948. function t(n, e) {
  5949. var u = n.children,
  5950. o = 0;
  5951. if (u && (a = u.length)) for (var a, c = -1, l = e + 1; ++c < a;) o += t(u[c], l);
  5952. else i && (o = +i.call(r, n, e) || 0);
  5953. return i && (n.value = o), o
  5954. }
  5955. function r(t) {
  5956. var r = [];
  5957. return n(t, 0, r), r
  5958. }
  5959. var e = ci,
  5960. u = oi,
  5961. i = ai;
  5962. return r.sort = function(n) {
  5963. return arguments.length ? (e = n, r) : e
  5964. }, r.children = function(n) {
  5965. return arguments.length ? (u = n, r) : u
  5966. }, r.value = function(n) {
  5967. return arguments.length ? (i = n, r) : i
  5968. }, r.revalue = function(n) {
  5969. return t(n, 0), n
  5970. }, r
  5971. }, oa.layout.partition = function() {
  5972. function n(t, r, e, u) {
  5973. var i = t.children;
  5974. if (t.x = r, t.y = t.depth * u, t.dx = e, t.dy = u, i && (o = i.length)) {
  5975. var o, a, c, l = -1;
  5976. for (e = t.value ? e / t.value : 0; ++l < o;) n(a = i[l], r, c = a.value * e, u), r += c
  5977. }
  5978. }
  5979. function t(n) {
  5980. var r = n.children,
  5981. e = 0;
  5982. if (r && (u = r.length)) for (var u, i = -1; ++i < u;) e = Math.max(e, t(r[i]));
  5983. return 1 + e
  5984. }
  5985. function r(r, i) {
  5986. var o = e.call(this, r, i);
  5987. return n(o[0], 0, u[0], u[1] / t(o[0])), o
  5988. }
  5989. var e = oa.layout.hierarchy(),
  5990. u = [1, 1];
  5991. return r.size = function(n) {
  5992. return arguments.length ? (u = n, r) : u
  5993. }, ii(r, e)
  5994. }, oa.layout.pie = function() {
  5995. function n(i) {
  5996. var o = i.map(function(r, e) {
  5997. return +t.call(n, r, e)
  5998. }),
  5999. a = +("function" == typeof e ? e.apply(this, arguments) : e),
  6000. c = (("function" == typeof u ? u.apply(this, arguments) : u) - a) / oa.sum(o),
  6001. l = oa.range(i.length);
  6002. null != r && l.sort(r === _l ?
  6003. function(n, t) {
  6004. return o[t] - o[n]
  6005. } : function(n, t) {
  6006. return r(i[n], i[t])
  6007. });
  6008. var s = [];
  6009. return l.forEach(function(n) {
  6010. var t;
  6011. s[n] = {
  6012. data: i[n],
  6013. value: t = o[n],
  6014. startAngle: a,
  6015. endAngle: a += t * c
  6016. }
  6017. }), s
  6018. }
  6019. var t = Number,
  6020. r = _l,
  6021. e = 0,
  6022. u = ja;
  6023. return n.value = function(r) {
  6024. return arguments.length ? (t = r, n) : t
  6025. }, n.sort = function(t) {
  6026. return arguments.length ? (r = t, n) : r
  6027. }, n.startAngle = function(t) {
  6028. return arguments.length ? (e = t, n) : e
  6029. }, n.endAngle = function(t) {
  6030. return arguments.length ? (u = t, n) : u
  6031. }, n
  6032. };
  6033. var _l = {};
  6034. oa.layout.stack = function() {
  6035. function n(a, c) {
  6036. var l = a.map(function(r, e) {
  6037. return t.call(n, r, e)
  6038. }),
  6039. s = l.map(function(t) {
  6040. return t.map(function(t, r) {
  6041. return [i.call(n, t, r), o.call(n, t, r)]
  6042. })
  6043. }),
  6044. f = r.call(n, s, c);
  6045. l = oa.permute(l, f), s = oa.permute(s, f);
  6046. var h, g, p, v = e.call(n, s, c),
  6047. d = l.length,
  6048. m = l[0].length;
  6049. for (g = 0; m > g; ++g) for (u.call(n, l[0][g], p = v[g], s[0][g][1]), h = 1; d > h; ++h) u.call(n, l[h][g], p += s[h - 1][g][1], s[h][g][1]);
  6050. return a
  6051. }
  6052. var t = Nt,
  6053. r = gi,
  6054. e = pi,
  6055. u = hi,
  6056. i = si,
  6057. o = fi;
  6058. return n.values = function(r) {
  6059. return arguments.length ? (t = r, n) : t
  6060. }, n.order = function(t) {
  6061. return arguments.length ? (r = "function" == typeof t ? t : bl.get(t) || gi, n) : r
  6062. }, n.offset = function(t) {
  6063. return arguments.length ? (e = "function" == typeof t ? t : wl.get(t) || pi, n) : e
  6064. }, n.x = function(t) {
  6065. return arguments.length ? (i = t, n) : i
  6066. }, n.y = function(t) {
  6067. return arguments.length ? (o = t, n) : o
  6068. }, n.out = function(t) {
  6069. return arguments.length ? (u = t, n) : u
  6070. }, n
  6071. };
  6072. var bl = oa.map({
  6073. "inside-out": function(n) {
  6074. var t, r, e = n.length,
  6075. u = n.map(vi),
  6076. i = n.map(di),
  6077. o = oa.range(e).sort(function(n, t) {
  6078. return u[n] - u[t]
  6079. }),
  6080. a = 0,
  6081. c = 0,
  6082. l = [],
  6083. s = [];
  6084. for (t = 0; e > t; ++t) r = o[t], c > a ? (a += i[r], l.push(r)) : (c += i[r], s.push(r));
  6085. return s.reverse().concat(l)
  6086. },
  6087. reverse: function(n) {
  6088. return oa.range(n.length).reverse()
  6089. },
  6090. "default": gi
  6091. }),
  6092. wl = oa.map({
  6093. silhouette: function(n) {
  6094. var t, r, e, u = n.length,
  6095. i = n[0].length,
  6096. o = [],
  6097. a = 0,
  6098. c = [];
  6099. for (r = 0; i > r; ++r) {
  6100. for (t = 0, e = 0; u > t; t++) e += n[t][r][1];
  6101. e > a && (a = e), o.push(e)
  6102. }
  6103. for (r = 0; i > r; ++r) c[r] = (a - o[r]) / 2;
  6104. return c
  6105. },
  6106. wiggle: function(n) {
  6107. var t, r, e, u, i, o, a, c, l, s = n.length,
  6108. f = n[0],
  6109. h = f.length,
  6110. g = [];
  6111. for (g[0] = c = l = 0, r = 1; h > r; ++r) {
  6112. for (t = 0, u = 0; s > t; ++t) u += n[t][r][1];
  6113. for (t = 0, i = 0, a = f[r][0] - f[r - 1][0]; s > t; ++t) {
  6114. for (e = 0, o = (n[t][r][1] - n[t][r - 1][1]) / (2 * a); t > e; ++e) o += (n[e][r][1] - n[e][r - 1][1]) / a;
  6115. i += o * n[t][r][1]
  6116. }
  6117. g[r] = c -= u ? i / u * a : 0, l > c && (l = c)
  6118. }
  6119. for (r = 0; h > r; ++r) g[r] -= l;
  6120. return g
  6121. },
  6122. expand: function(n) {
  6123. var t, r, e, u = n.length,
  6124. i = n[0].length,
  6125. o = 1 / u,
  6126. a = [];
  6127. for (r = 0; i > r; ++r) {
  6128. for (t = 0, e = 0; u > t; t++) e += n[t][r][1];
  6129. if (e) for (t = 0; u > t; t++) n[t][r][1] /= e;
  6130. else for (t = 0; u > t; t++) n[t][r][1] = o
  6131. }
  6132. for (r = 0; i > r; ++r) a[r] = 0;
  6133. return a
  6134. },
  6135. zero: pi
  6136. });
  6137. oa.layout.histogram = function() {
  6138. function n(n, i) {
  6139. for (var o, a, c = [], l = n.map(r, this), s = e.call(this, l, i), f = u.call(this, s, l, i), i = -1, h = l.length, g = f.length - 1, p = t ? 1 : 1 / h; ++i < g;) o = c[i] = [], o.dx = f[i + 1] - (o.x = f[i]), o.y = 0;
  6140. if (g > 0) for (i = -1; ++i < h;) a = l[i], a >= s[0] && a <= s[1] && (o = c[oa.bisect(f, a, 1, g) - 1], o.y += p, o.push(n[i]));
  6141. return c
  6142. }
  6143. var t = !0,
  6144. r = Number,
  6145. e = Mi,
  6146. u = yi;
  6147. return n.value = function(t) {
  6148. return arguments.length ? (r = t, n) : r
  6149. }, n.range = function(t) {
  6150. return arguments.length ? (e = Et(t), n) : e
  6151. }, n.bins = function(t) {
  6152. return arguments.length ? (u = "number" == typeof t ?
  6153. function(n) {
  6154. return xi(n, t)
  6155. } : Et(t), n) : u
  6156. }, n.frequency = function(r) {
  6157. return arguments.length ? (t = !! r, n) : t
  6158. }, n
  6159. }, oa.layout.tree = function() {
  6160. function n(n, i) {
  6161. function o(n, t) {
  6162. var e = n.children,
  6163. u = n._tree;
  6164. if (e && (i = e.length)) {
  6165. for (var i, a, l, s = e[0], f = s, h = -1; ++h < i;) l = e[h], o(l, a), f = c(l, a, f), a = l;
  6166. Ci(n);
  6167. var g = .5 * (s._tree.prelim + l._tree.prelim);
  6168. t ? (u.prelim = t._tree.prelim + r(n, t), u.mod = u.prelim - g) : u.prelim = g
  6169. } else t && (u.prelim = t._tree.prelim + r(n, t))
  6170. }
  6171. function a(n, t) {
  6172. n.x = n._tree.prelim + t;
  6173. var r = n.children;
  6174. if (r && (e = r.length)) {
  6175. var e, u = -1;
  6176. for (t += n._tree.mod; ++u < e;) a(r[u], t)
  6177. }
  6178. }
  6179. function c(n, t, e) {
  6180. if (t) {
  6181. for (var u, i = n, o = n, a = t, c = n.parent.children[0], l = i._tree.mod, s = o._tree.mod, f = a._tree.mod, h = c._tree.mod; a = wi(a), i = bi(i), a && i;) c = bi(c), o = wi(o), o._tree.ancestor = n, u = a._tree.prelim + f - i._tree.prelim - l + r(a, i), u > 0 && (Li(qi(a, n, e), n, u), l += u, s += u), f += a._tree.mod, l += i._tree.mod, h += c._tree.mod, s += o._tree.mod;
  6182. a && !wi(o) && (o._tree.thread = a, o._tree.mod += f - s), i && !bi(c) && (c._tree.thread = i, c._tree.mod += l - h, e = n)
  6183. }
  6184. return e
  6185. }
  6186. var l = t.call(this, n, i),
  6187. s = l[0];
  6188. Ai(s, function(n, t) {
  6189. n._tree = {
  6190. ancestor: n,
  6191. prelim: 0,
  6192. mod: 0,
  6193. change: 0,
  6194. shift: 0,
  6195. number: t ? t._tree.number + 1 : 0
  6196. }
  6197. }), o(s), a(s, -s._tree.prelim);
  6198. var f = Si(s, Ei),
  6199. h = Si(s, ki),
  6200. g = Si(s, Ni),
  6201. p = f.x - r(f, h) / 2,
  6202. v = h.x + r(h, f) / 2,
  6203. d = g.depth || 1;
  6204. return Ai(s, u ?
  6205. function(n) {
  6206. n.x *= e[0], n.y = n.depth * e[1], delete n._tree
  6207. } : function(n) {
  6208. n.x = (n.x - p) / (v - p) * e[0], n.y = n.depth / d * e[1], delete n._tree
  6209. }), l
  6210. }
  6211. var t = oa.layout.hierarchy().sort(null).value(null),
  6212. r = _i,
  6213. e = [1, 1],
  6214. u = !1;
  6215. return n.separation = function(t) {
  6216. return arguments.length ? (r = t, n) : r
  6217. }, n.size = function(t) {
  6218. return arguments.length ? (u = null == (e = t), n) : u ? null : e
  6219. }, n.nodeSize = function(t) {
  6220. return arguments.length ? (u = null != (e = t), n) : u ? e : null
  6221. }, ii(n, t)
  6222. }, oa.layout.pack = function() {
  6223. function n(n, i) {
  6224. var o = r.call(this, n, i),
  6225. a = o[0],
  6226. c = u[0],
  6227. l = u[1],
  6228. s = null == t ? Math.sqrt : "function" == typeof t ? t : function() {
  6229. return t
  6230. };
  6231. if (a.x = a.y = 0, Ai(a, function(n) {
  6232. n.r = +s(n.value)
  6233. }), Ai(a, Pi), e) {
  6234. var f = e * (t ? 1 : Math.max(2 * a.r / c, 2 * a.r / l)) / 2;
  6235. Ai(a, function(n) {
  6236. n.r += f
  6237. }), Ai(a, Pi), Ai(a, function(n) {
  6238. n.r -= f
  6239. })
  6240. }
  6241. return Hi(a, c / 2, l / 2, t ? 1 : 1 / Math.max(2 * a.r / c, 2 * a.r / l)), o
  6242. }
  6243. var t, r = oa.layout.hierarchy().sort(Ti),
  6244. e = 0,
  6245. u = [1, 1];
  6246. return n.size = function(t) {
  6247. return arguments.length ? (u = t, n) : u
  6248. }, n.radius = function(r) {
  6249. return arguments.length ? (t = null == r || "function" == typeof r ? r : +r, n) : t
  6250. }, n.padding = function(t) {
  6251. return arguments.length ? (e = +t, n) : e
  6252. }, ii(n, r)
  6253. }, oa.layout.cluster = function() {
  6254. function n(n, i) {
  6255. var o, a = t.call(this, n, i),
  6256. c = a[0],
  6257. l = 0;
  6258. Ai(c, function(n) {
  6259. var t = n.children;
  6260. t && t.length ? (n.x = Ii(t), n.y = Oi(t)) : (n.x = o ? l += r(n, o) : 0, n.y = 0, o = n)
  6261. });
  6262. var s = Yi(c),
  6263. f = Zi(c),
  6264. h = s.x - r(s, f) / 2,
  6265. g = f.x + r(f, s) / 2;
  6266. return Ai(c, u ?
  6267. function(n) {
  6268. n.x = (n.x - c.x) * e[0], n.y = (c.y - n.y) * e[1]
  6269. } : function(n) {
  6270. n.x = (n.x - h) / (g - h) * e[0], n.y = (1 - (c.y ? n.y / c.y : 1)) * e[1]
  6271. }), a
  6272. }
  6273. var t = oa.layout.hierarchy().sort(null).value(null),
  6274. r = _i,
  6275. e = [1, 1],
  6276. u = !1;
  6277. return n.separation = function(t) {
  6278. return arguments.length ? (r = t, n) : r
  6279. }, n.size = function(t) {
  6280. return arguments.length ? (u = null == (e = t), n) : u ? null : e
  6281. }, n.nodeSize = function(t) {
  6282. return arguments.length ? (u = null != (e = t), n) : u ? e : null
  6283. }, ii(n, t)
  6284. }, oa.layout.treemap = function() {
  6285. function n(n, t) {
  6286. for (var r, e, u = -1, i = n.length; ++u < i;) e = (r = n[u]).value * (0 > t ? 0 : t), r.area = isNaN(e) || 0 >= e ? 0 : e
  6287. }
  6288. function t(r) {
  6289. var i = r.children;
  6290. if (i && i.length) {
  6291. var o, a, c, l = f(r),
  6292. s = [],
  6293. h = i.slice(),
  6294. p = 1 / 0,
  6295. v = "slice" === g ? l.dx : "dice" === g ? l.dy : "slice-dice" === g ? 1 & r.depth ? l.dy : l.dx : Math.min(l.dx, l.dy);
  6296. for (n(h, l.dx * l.dy / r.value), s.area = 0;
  6297. (c = h.length) > 0;) s.push(o = h[c - 1]), s.area += o.area, "squarify" !== g || (a = e(s, v)) <= p ? (h.pop(), p = a) : (s.area -= s.pop().area, u(s, v, l, !1), v = Math.min(l.dx, l.dy), s.length = s.area = 0, p = 1 / 0);
  6298. s.length && (u(s, v, l, !0), s.length = s.area = 0), i.forEach(t)
  6299. }
  6300. }
  6301. function r(t) {
  6302. var e = t.children;
  6303. if (e && e.length) {
  6304. var i, o = f(t),
  6305. a = e.slice(),
  6306. c = [];
  6307. for (n(a, o.dx * o.dy / t.value), c.area = 0; i = a.pop();) c.push(i), c.area += i.area, null != i.z && (u(c, i.z ? o.dx : o.dy, o, !a.length), c.length = c.area = 0);
  6308. e.forEach(r)
  6309. }
  6310. }
  6311. function e(n, t) {
  6312. for (var r, e = n.area, u = 0, i = 1 / 0, o = -1, a = n.length; ++o < a;)(r = n[o].area) && (i > r && (i = r), r > u && (u = r));
  6313. return e *= e, t *= t, e ? Math.max(t * u * p / e, e / (t * i * p)) : 1 / 0
  6314. }
  6315. function u(n, t, r, e) {
  6316. var u, i = -1,
  6317. o = n.length,
  6318. a = r.x,
  6319. l = r.y,
  6320. s = t ? c(n.area / t) : 0;
  6321. if (t == r.dx) {
  6322. for ((e || s > r.dy) && (s = r.dy); ++i < o;) u = n[i], u.x = a, u.y = l, u.dy = s, a += u.dx = Math.min(r.x + r.dx - a, s ? c(u.area / s) : 0);
  6323. u.z = !0, u.dx += r.x + r.dx - a, r.y += s, r.dy -= s
  6324. } else {
  6325. for ((e || s > r.dx) && (s = r.dx); ++i < o;) u = n[i], u.x = a, u.y = l, u.dx = s, l += u.dy = Math.min(r.y + r.dy - l, s ? c(u.area / s) : 0);
  6326. u.z = !1, u.dy += r.y + r.dy - l, r.x += s, r.dx -= s
  6327. }
  6328. }
  6329. function i(e) {
  6330. var u = o || a(e),
  6331. i = u[0];
  6332. return i.x = 0, i.y = 0, i.dx = l[0], i.dy = l[1], o && a.revalue(i), n([i], i.dx * i.dy / i.value), (o ? r : t)(i), h && (o = u), u
  6333. }
  6334. var o, a = oa.layout.hierarchy(),
  6335. c = Math.round,
  6336. l = [1, 1],
  6337. s = null,
  6338. f = Vi,
  6339. h = !1,
  6340. g = "squarify",
  6341. p = .5 * (1 + Math.sqrt(5));
  6342. return i.size = function(n) {
  6343. return arguments.length ? (l = n, i) : l
  6344. }, i.padding = function(n) {
  6345. function t(t) {
  6346. var r = n.call(i, t, t.depth);
  6347. return null == r ? Vi(t) : $i(t, "number" == typeof r ? [r, r, r, r] : r)
  6348. }
  6349. function r(t) {
  6350. return $i(t, n)
  6351. }
  6352. if (!arguments.length) return s;
  6353. var e;
  6354. return f = null == (s = n) ? Vi : "function" == (e = typeof n) ? t : "number" === e ? (n = [n, n, n, n], r) : r, i
  6355. }, i.round = function(n) {
  6356. return arguments.length ? (c = n ? Math.round : Number, i) : c != Number
  6357. }, i.sticky = function(n) {
  6358. return arguments.length ? (h = n, o = null, i) : h
  6359. }, i.ratio = function(n) {
  6360. return arguments.length ? (p = n, i) : p
  6361. }, i.mode = function(n) {
  6362. return arguments.length ? (g = n + "", i) : g
  6363. }, ii(i, a)
  6364. }, oa.random = {
  6365. normal: function(n, t) {
  6366. var r = arguments.length;
  6367. return 2 > r && (t = 1), 1 > r && (n = 0), function() {
  6368. var r, e, u;
  6369. do r = 2 * Math.random() - 1, e = 2 * Math.random() - 1, u = r * r + e * e;
  6370. while (!u || u > 1);
  6371. return n + t * r * Math.sqrt(-2 * Math.log(u) / u)
  6372. }
  6373. },
  6374. logNormal: function() {
  6375. var n = oa.random.normal.apply(oa, arguments);
  6376. return function() {
  6377. return Math.exp(n())
  6378. }
  6379. },
  6380. bates: function(n) {
  6381. var t = oa.random.irwinHall(n);
  6382. return function() {
  6383. return t() / n
  6384. }
  6385. },
  6386. irwinHall: function(n) {
  6387. return function() {
  6388. for (var t = 0, r = 0; n > r; r++) t += Math.random();
  6389. return t
  6390. }
  6391. }
  6392. }, oa.scale = {};
  6393. var Sl = {
  6394. floor: Nt,
  6395. ceil: Nt
  6396. };
  6397. oa.scale.linear = function() {
  6398. return Qi([0, 1], [0, 1], ku, !1)
  6399. };
  6400. var kl = {
  6401. s: 1,
  6402. g: 1,
  6403. p: 1,
  6404. r: 1,
  6405. e: 1
  6406. };
  6407. oa.scale.log = function() {
  6408. return ao(oa.scale.linear().domain([0, 1]), 10, !0, [1, 10])
  6409. };
  6410. var El = oa.format(".0e"),
  6411. Nl = {
  6412. floor: function(n) {
  6413. return -Math.ceil(-n)
  6414. },
  6415. ceil: function(n) {
  6416. return -Math.floor(-n)
  6417. }
  6418. };
  6419. oa.scale.pow = function() {
  6420. return co(oa.scale.linear(), 1, [0, 1])
  6421. }, oa.scale.sqrt = function() {
  6422. return oa.scale.pow().exponent(.5)
  6423. }, oa.scale.ordinal = function() {
  6424. return so([], {
  6425. t: "range",
  6426. a: [
  6427. []
  6428. ]
  6429. })
  6430. }, oa.scale.category10 = function() {
  6431. return oa.scale.ordinal().range(Al)
  6432. }, oa.scale.category20 = function() {
  6433. return oa.scale.ordinal().range(Cl)
  6434. }, oa.scale.category20b = function() {
  6435. return oa.scale.ordinal().range(Ll)
  6436. }, oa.scale.category20c = function() {
  6437. return oa.scale.ordinal().range(ql)
  6438. };
  6439. var Al = [2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175].map(mt),
  6440. Cl = [2062260, 11454440, 16744206, 16759672, 2924588, 10018698, 14034728, 16750742, 9725885, 12955861, 9197131, 12885140, 14907330, 16234194, 8355711, 13092807, 12369186, 14408589, 1556175, 10410725].map(mt),
  6441. Ll = [3750777, 5395619, 7040719, 10264286, 6519097, 9216594, 11915115, 13556636, 9202993, 12426809, 15186514, 15190932, 8666169, 11356490, 14049643, 15177372, 8077683, 10834324, 13528509, 14589654].map(mt),
  6442. ql = [3244733, 7057110, 10406625, 13032431, 15095053, 16616764, 16625259, 16634018, 3253076, 7652470, 10607003, 13101504, 7695281, 10394312, 12369372, 14342891, 6513507, 9868950, 12434877, 14277081].map(mt);
  6443. oa.scale.quantile = function() {
  6444. return fo([], [])
  6445. }, oa.scale.quantize = function() {
  6446. return ho(0, 1, [0, 1])
  6447. }, oa.scale.threshold = function() {
  6448. return go([.5], [0, 1])
  6449. }, oa.scale.identity = function() {
  6450. return po([0, 1])
  6451. }, oa.svg = {}, oa.svg.arc = function() {
  6452. function n() {
  6453. var n = t.apply(this, arguments),
  6454. i = r.apply(this, arguments),
  6455. o = e.apply(this, arguments) + Tl,
  6456. a = u.apply(this, arguments) + Tl,
  6457. c = (o > a && (c = o, o = a, a = c), a - o),
  6458. l = Ua > c ? "0" : "1",
  6459. s = Math.cos(o),
  6460. f = Math.sin(o),
  6461. h = Math.cos(a),
  6462. g = Math.sin(a);
  6463. return c >= zl ? n ? "M0," + i + "A" + i + "," + i + " 0 1,1 0," + -i + "A" + i + "," + i + " 0 1,1 0," + i + "M0," + n + "A" + n + "," + n + " 0 1,0 0," + -n + "A" + n + "," + n + " 0 1,0 0," + n + "Z" : "M0," + i + "A" + i + "," + i + " 0 1,1 0," + -i + "A" + i + "," + i + " 0 1,1 0," + i + "Z" : n ? "M" + i * s + "," + i * f + "A" + i + "," + i + " 0 " + l + ",1 " + i * h + "," + i * g + "L" + n * h + "," + n * g + "A" + n + "," + n + " 0 " + l + ",0 " + n * s + "," + n * f + "Z" : "M" + i * s + "," + i * f + "A" + i + "," + i + " 0 " + l + ",1 " + i * h + "," + i * g + "L0,0" + "Z"
  6464. }
  6465. var t = vo,
  6466. r = mo,
  6467. e = yo,
  6468. u = xo;
  6469. return n.innerRadius = function(r) {
  6470. return arguments.length ? (t = Et(r), n) : t
  6471. }, n.outerRadius = function(t) {
  6472. return arguments.length ? (r = Et(t), n) : r
  6473. }, n.startAngle = function(t) {
  6474. return arguments.length ? (e = Et(t), n) : e
  6475. }, n.endAngle = function(t) {
  6476. return arguments.length ? (u = Et(t), n) : u
  6477. }, n.centroid = function() {
  6478. var n = (t.apply(this, arguments) + r.apply(this, arguments)) / 2,
  6479. i = (e.apply(this, arguments) + u.apply(this, arguments)) / 2 + Tl;
  6480. return [Math.cos(i) * n, Math.sin(i) * n]
  6481. }, n
  6482. };
  6483. var Tl = -Ha,
  6484. zl = ja - Fa;
  6485. oa.svg.line = function() {
  6486. return Mo(Nt)
  6487. };
  6488. var Rl = oa.map({
  6489. linear: _o,
  6490. "linear-closed": bo,
  6491. step: wo,
  6492. "step-before": So,
  6493. "step-after": ko,
  6494. basis: qo,
  6495. "basis-open": To,
  6496. "basis-closed": zo,
  6497. bundle: Ro,
  6498. cardinal: Ao,
  6499. "cardinal-open": Eo,
  6500. "cardinal-closed": No,
  6501. monotone: Fo
  6502. });
  6503. Rl.forEach(function(n, t) {
  6504. t.key = n, t.closed = /-closed$/.test(n)
  6505. });
  6506. var Dl = [0, 2 / 3, 1 / 3, 0],
  6507. Pl = [0, 1 / 3, 2 / 3, 0],
  6508. Ul = [0, 1 / 6, 2 / 3, 1 / 6];
  6509. oa.svg.line.radial = function() {
  6510. var n = Mo(Oo);
  6511. return n.radius = n.x, delete n.x, n.angle = n.y, delete n.y, n
  6512. }, So.reverse = ko, ko.reverse = So, oa.svg.area = function() {
  6513. return Io(Nt)
  6514. }, oa.svg.area.radial = function() {
  6515. var n = Io(Oo);
  6516. return n.radius = n.x, delete n.x, n.innerRadius = n.x0, delete n.x0, n.outerRadius = n.x1, delete n.x1, n.angle = n.y, delete n.y, n.startAngle = n.y0, delete n.y0, n.endAngle = n.y1, delete n.y1, n
  6517. }, oa.svg.chord = function() {
  6518. function n(n, a) {
  6519. var c = t(this, i, n, a),
  6520. l = t(this, o, n, a);
  6521. return "M" + c.p0 + e(c.r, c.p1, c.a1 - c.a0) + (r(c, l) ? u(c.r, c.p1, c.r, c.p0) : u(c.r, c.p1, l.r, l.p0) + e(l.r, l.p1, l.a1 - l.a0) + u(l.r, l.p1, c.r, c.p0)) + "Z"
  6522. }
  6523. function t(n, t, r, e) {
  6524. var u = t.call(n, r, e),
  6525. i = a.call(n, u, e),
  6526. o = c.call(n, u, e) + Tl,
  6527. s = l.call(n, u, e) + Tl;
  6528. return {
  6529. r: i,
  6530. a0: o,
  6531. a1: s,
  6532. p0: [i * Math.cos(o), i * Math.sin(o)],
  6533. p1: [i * Math.cos(s), i * Math.sin(s)]
  6534. }
  6535. }
  6536. function r(n, t) {
  6537. return n.a0 == t.a0 && n.a1 == t.a1
  6538. }
  6539. function e(n, t, r) {
  6540. return "A" + n + "," + n + " 0 " + +(r > Ua) + ",1 " + t
  6541. }
  6542. function u(n, t, r, e) {
  6543. return "Q 0,0 " + e
  6544. }
  6545. var i = Ee,
  6546. o = Ne,
  6547. a = Yo,
  6548. c = yo,
  6549. l = xo;
  6550. return n.radius = function(t) {
  6551. return arguments.length ? (a = Et(t), n) : a
  6552. }, n.source = function(t) {
  6553. return arguments.length ? (i = Et(t), n) : i
  6554. }, n.target = function(t) {
  6555. return arguments.length ? (o = Et(t), n) : o
  6556. }, n.startAngle = function(t) {
  6557. return arguments.length ? (c = Et(t), n) : c
  6558. }, n.endAngle = function(t) {
  6559. return arguments.length ? (l = Et(t), n) : l
  6560. }, n
  6561. }, oa.svg.diagonal = function() {
  6562. function n(n, u) {
  6563. var i = t.call(this, n, u),
  6564. o = r.call(this, n, u),
  6565. a = (i.y + o.y) / 2,
  6566. c = [i,
  6567. {
  6568. x: i.x,
  6569. y: a
  6570. }, {
  6571. x: o.x,
  6572. y: a
  6573. },
  6574. o];
  6575. return c = c.map(e), "M" + c[0] + "C" + c[1] + " " + c[2] + " " + c[3]
  6576. }
  6577. var t = Ee,
  6578. r = Ne,
  6579. e = Zo;
  6580. return n.source = function(r) {
  6581. return arguments.length ? (t = Et(r), n) : t
  6582. }, n.target = function(t) {
  6583. return arguments.length ? (r = Et(t), n) : r
  6584. }, n.projection = function(t) {
  6585. return arguments.length ? (e = t, n) : e
  6586. }, n
  6587. }, oa.svg.diagonal.radial = function() {
  6588. var n = oa.svg.diagonal(),
  6589. t = Zo,
  6590. r = n.projection;
  6591. return n.projection = function(n) {
  6592. return arguments.length ? r(Vo(t = n)) : t
  6593. }, n
  6594. }, oa.svg.symbol = function() {
  6595. function n(n, e) {
  6596. return (jl.get(t.call(this, n, e)) || Bo)(r.call(this, n, e))
  6597. }
  6598. var t = Xo,
  6599. r = $o;
  6600. return n.type = function(r) {
  6601. return arguments.length ? (t = Et(r), n) : t
  6602. }, n.size = function(t) {
  6603. return arguments.length ? (r = Et(t), n) : r
  6604. }, n
  6605. };
  6606. var jl = oa.map({
  6607. circle: Bo,
  6608. cross: function(n) {
  6609. var t = Math.sqrt(n / 5) / 2;
  6610. return "M" + -3 * t + "," + -t + "H" + -t + "V" + -3 * t + "H" + t + "V" + -t + "H" + 3 * t + "V" + t + "H" + t + "V" + 3 * t + "H" + -t + "V" + t + "H" + -3 * t + "Z"
  6611. },
  6612. diamond: function(n) {
  6613. var t = Math.sqrt(n / (2 * Il)),
  6614. r = t * Il;
  6615. return "M0," + -t + "L" + r + ",0" + " 0," + t + " " + -r + ",0" + "Z"
  6616. },
  6617. square: function(n) {
  6618. var t = Math.sqrt(n) / 2;
  6619. return "M" + -t + "," + -t + "L" + t + "," + -t + " " + t + "," + t + " " + -t + "," + t + "Z"
  6620. },
  6621. "triangle-down": function(n) {
  6622. var t = Math.sqrt(n / Ol),
  6623. r = t * Ol / 2;
  6624. return "M0," + r + "L" + t + "," + -r + " " + -t + "," + -r + "Z"
  6625. },
  6626. "triangle-up": function(n) {
  6627. var t = Math.sqrt(n / Ol),
  6628. r = t * Ol / 2;
  6629. return "M0," + -r + "L" + t + "," + r + " " + -t + "," + r + "Z"
  6630. }
  6631. });
  6632. oa.svg.symbolTypes = jl.keys();
  6633. var Hl, Fl, Ol = Math.sqrt(3),
  6634. Il = Math.tan(30 * Ia),
  6635. Yl = [],
  6636. Zl = 0;
  6637. Yl.call = La.call, Yl.empty = La.empty, Yl.node = La.node, Yl.size = La.size, oa.transition = function(n) {
  6638. return arguments.length ? Hl ? n.transition() : n : za.transition()
  6639. }, oa.transition.prototype = Yl, Yl.select = function(n) {
  6640. var t, r, e, u = this.id,
  6641. i = [];
  6642. n = b(n);
  6643. for (var o = -1, a = this.length; ++o < a;) {
  6644. i.push(t = []);
  6645. for (var c = this[o], l = -1, s = c.length; ++l < s;)(e = c[l]) && (r = n.call(e, e.__data__, l, o)) ? ("__data__" in e && (r.__data__ = e.__data__), Ko(r, l, u, e.__transition__[u]), t.push(r)) : t.push(null)
  6646. }
  6647. return Jo(i, u)
  6648. }, Yl.selectAll = function(n) {
  6649. var t, r, e, u, i, o = this.id,
  6650. a = [];
  6651. n = w(n);
  6652. for (var c = -1, l = this.length; ++c < l;) for (var s = this[c], f = -1, h = s.length; ++f < h;) if (e = s[f]) {
  6653. i = e.__transition__[o], r = n.call(e, e.__data__, f, c), a.push(t = []);
  6654. for (var g = -1, p = r.length; ++g < p;)(u = r[g]) && Ko(u, g, o, i), t.push(u)
  6655. }
  6656. return Jo(a, o)
  6657. }, Yl.filter = function(n) {
  6658. var t, r, e, u = [];
  6659. "function" != typeof n && (n = R(n));
  6660. for (var i = 0, o = this.length; o > i; i++) {
  6661. u.push(t = []);
  6662. for (var r = this[i], a = 0, c = r.length; c > a; a++)(e = r[a]) && n.call(e, e.__data__, a, i) && t.push(e)
  6663. }
  6664. return Jo(u, this.id)
  6665. }, Yl.tween = function(n, t) {
  6666. var r = this.id;
  6667. return arguments.length < 2 ? this.node().__transition__[r].tween.get(n) : P(this, null == t ?
  6668. function(t) {
  6669. t.__transition__[r].tween.remove(n)
  6670. } : function(e) {
  6671. e.__transition__[r].tween.set(n, t)
  6672. })
  6673. }, Yl.attr = function(n, t) {
  6674. function r() {
  6675. this.removeAttribute(a)
  6676. }
  6677. function e() {
  6678. this.removeAttributeNS(a.space, a.local)
  6679. }
  6680. function u(n) {
  6681. return null == n ? r : (n += "", function() {
  6682. var t, r = this.getAttribute(a);
  6683. return r !== n && (t = o(r, n), function(n) {
  6684. this.setAttribute(a, t(n))
  6685. })
  6686. })
  6687. }
  6688. function i(n) {
  6689. return null == n ? e : (n += "", function() {
  6690. var t, r = this.getAttributeNS(a.space, a.local);
  6691. return r !== n && (t = o(r, n), function(n) {
  6692. this.setAttributeNS(a.space, a.local, t(n))
  6693. })
  6694. })
  6695. }
  6696. if (arguments.length < 2) {
  6697. for (t in n) this.attr(t, n[t]);
  6698. return this
  6699. }
  6700. var o = "transform" == n ? Bu : ku,
  6701. a = oa.ns.qualify(n);
  6702. return Wo(this, "attr." + n, t, a.local ? i : u)
  6703. }, Yl.attrTween = function(n, t) {
  6704. function r(n, r) {
  6705. var e = t.call(this, n, r, this.getAttribute(u));
  6706. return e &&
  6707. function(n) {
  6708. this.setAttribute(u, e(n))
  6709. }
  6710. }
  6711. function e(n, r) {
  6712. var e = t.call(this, n, r, this.getAttributeNS(u.space, u.local));
  6713. return e &&
  6714. function(n) {
  6715. this.setAttributeNS(u.space, u.local, e(n))
  6716. }
  6717. }
  6718. var u = oa.ns.qualify(n);
  6719. return this.tween("attr." + n, u.local ? e : r)
  6720. }, Yl.style = function(n, t, r) {
  6721. function e() {
  6722. this.style.removeProperty(n)
  6723. }
  6724. function u(t) {
  6725. return null == t ? e : (t += "", function() {
  6726. var e, u = fa.getComputedStyle(this, null).getPropertyValue(n);
  6727. return u !== t && (e = ku(u, t), function(t) {
  6728. this.style.setProperty(n, e(t), r)
  6729. })
  6730. })
  6731. }
  6732. var i = arguments.length;
  6733. if (3 > i) {
  6734. if ("string" != typeof n) {
  6735. 2 > i && (t = "");
  6736. for (r in n) this.style(r, n[r], t);
  6737. return this
  6738. }
  6739. r = ""
  6740. }
  6741. return Wo(this, "style." + n, t, u)
  6742. }, Yl.styleTween = function(n, t, r) {
  6743. function e(e, u) {
  6744. var i = t.call(this, e, u, fa.getComputedStyle(this, null).getPropertyValue(n));
  6745. return i &&
  6746. function(t) {
  6747. this.style.setProperty(n, i(t), r)
  6748. }
  6749. }
  6750. return arguments.length < 3 && (r = ""), this.tween("style." + n, e)
  6751. }, Yl.text = function(n) {
  6752. return Wo(this, "text", n, Go)
  6753. }, Yl.remove = function() {
  6754. return this.each("end.transition", function() {
  6755. var n;
  6756. this.__transition__.count < 2 && (n = this.parentNode) && n.removeChild(this)
  6757. })
  6758. }, Yl.ease = function(n) {
  6759. var t = this.id;
  6760. return arguments.length < 1 ? this.node().__transition__[t].ease : ("function" != typeof n && (n = oa.ease.apply(oa, arguments)), P(this, function(r) {
  6761. r.__transition__[t].ease = n
  6762. }))
  6763. }, Yl.delay = function(n) {
  6764. var t = this.id;
  6765. return arguments.length < 1 ? this.node().__transition__[t].delay : P(this, "function" == typeof n ?
  6766. function(r, e, u) {
  6767. r.__transition__[t].delay = +n.call(r, r.__data__, e, u)
  6768. } : (n = +n, function(r) {
  6769. r.__transition__[t].delay = n
  6770. }))
  6771. }, Yl.duration = function(n) {
  6772. var t = this.id;
  6773. return arguments.length < 1 ? this.node().__transition__[t].duration : P(this, "function" == typeof n ?
  6774. function(r, e, u) {
  6775. r.__transition__[t].duration = Math.max(1, n.call(r, r.__data__, e, u))
  6776. } : (n = Math.max(1, n), function(r) {
  6777. r.__transition__[t].duration = n
  6778. }))
  6779. }, Yl.each = function(n, t) {
  6780. var r = this.id;
  6781. if (arguments.length < 2) {
  6782. var e = Fl,
  6783. u = Hl;
  6784. Hl = r, P(this, function(t, e, u) {
  6785. Fl = t.__transition__[r], n.call(t, t.__data__, e, u)
  6786. }), Fl = e, Hl = u
  6787. } else P(this, function(e) {
  6788. var u = e.__transition__[r];
  6789. (u.event || (u.event = oa.dispatch("start", "end"))).on(n, t)
  6790. });
  6791. return this
  6792. }, Yl.transition = function() {
  6793. for (var n, t, r, e, u = this.id, i = ++Zl, o = [], a = 0, c = this.length; c > a; a++) {
  6794. o.push(n = []);
  6795. for (var t = this[a], l = 0, s = t.length; s > l; l++)(r = t[l]) && (e = Object.create(r.__transition__[u]), e.delay += e.duration, Ko(r, l, i, e)), n.push(r)
  6796. }
  6797. return Jo(o, i)
  6798. }, oa.svg.axis = function() {
  6799. function n(n) {
  6800. n.each(function() {
  6801. var n, l = oa.select(this),
  6802. s = this.__chart__ || r,
  6803. f = this.__chart__ = r.copy(),
  6804. h = null == c ? f.ticks ? f.ticks.apply(f, a) : f.domain() : c,
  6805. g = null == t ? f.tickFormat ? f.tickFormat.apply(f, a) : Nt : t,
  6806. p = l.selectAll(".tick").data(h, f),
  6807. v = p.enter().insert("g", ".domain").attr("class", "tick").style("opacity", Fa),
  6808. d = oa.transition(p.exit()).style("opacity", Fa).remove(),
  6809. m = oa.transition(p.order()).style("opacity", 1),
  6810. y = Bi(f),
  6811. x = l.selectAll(".domain").data([0]),
  6812. M = (x.enter().append("path").attr("class", "domain"), oa.transition(x));
  6813. v.append("line"), v.append("text");
  6814. var _ = v.select("line"),
  6815. b = m.select("line"),
  6816. w = p.select("text").text(g),
  6817. S = v.select("text"),
  6818. k = m.select("text");
  6819. switch (e) {
  6820. case "bottom":
  6821. n = Qo, _.attr("y2", u), S.attr("y", Math.max(u, 0) + o), b.attr("x2", 0).attr("y2", u), k.attr("x", 0).attr("y", Math.max(u, 0) + o), w.attr("dy", ".71em").style("text-anchor", "middle"), M.attr("d", "M" + y[0] + "," + i + "V0H" + y[1] + "V" + i);
  6822. break;
  6823. case "top":
  6824. n = Qo, _.attr("y2", -u), S.attr("y", -(Math.max(u, 0) + o)), b.attr("x2", 0).attr("y2", -u), k.attr("x", 0).attr("y", -(Math.max(u, 0) + o)), w.attr("dy", "0em").style("text-anchor", "middle"), M.attr("d", "M" + y[0] + "," + -i + "V0H" + y[1] + "V" + -i);
  6825. break;
  6826. case "left":
  6827. n = na, _.attr("x2", -u), S.attr("x", -(Math.max(u, 0) + o)), b.attr("x2", -u).attr("y2", 0), k.attr("x", -(Math.max(u, 0) + o)).attr("y", 0), w.attr("dy", ".32em").style("text-anchor", "end"), M.attr("d", "M" + -i + "," + y[0] + "H0V" + y[1] + "H" + -i);
  6828. break;
  6829. case "right":
  6830. n = na, _.attr("x2", u), S.attr("x", Math.max(u, 0) + o), b.attr("x2", u).attr("y2", 0), k.attr("x", Math.max(u, 0) + o).attr("y", 0), w.attr("dy", ".32em").style("text-anchor", "start"), M.attr("d", "M" + i + "," + y[0] + "H0V" + y[1] + "H" + i)
  6831. }
  6832. if (f.rangeBand) {
  6833. var E = f,
  6834. N = E.rangeBand() / 2;
  6835. s = f = function(n) {
  6836. return E(n) + N
  6837. }
  6838. } else s.rangeBand ? s = f : d.call(n, f);
  6839. v.call(n, s), m.call(n, f)
  6840. })
  6841. }
  6842. var t, r = oa.scale.linear(),
  6843. e = Vl,
  6844. u = 6,
  6845. i = 6,
  6846. o = 3,
  6847. a = [10],
  6848. c = null;
  6849. return n.scale = function(t) {
  6850. return arguments.length ? (r = t, n) : r
  6851. }, n.orient = function(t) {
  6852. return arguments.length ? (e = t in $l ? t + "" : Vl, n) : e
  6853. }, n.ticks = function() {
  6854. return arguments.length ? (a = arguments, n) : a
  6855. }, n.tickValues = function(t) {
  6856. return arguments.length ? (c = t, n) : c
  6857. }, n.tickFormat = function(r) {
  6858. return arguments.length ? (t = r, n) : t
  6859. }, n.tickSize = function(t) {
  6860. var r = arguments.length;
  6861. return r ? (u = +t, i = +arguments[r - 1], n) : u
  6862. }, n.innerTickSize = function(t) {
  6863. return arguments.length ? (u = +t, n) : u
  6864. }, n.outerTickSize = function(t) {
  6865. return arguments.length ? (i = +t, n) : i
  6866. }, n.tickPadding = function(t) {
  6867. return arguments.length ? (o = +t, n) : o
  6868. }, n.tickSubdivide = function() {
  6869. return arguments.length && n
  6870. }, n
  6871. };
  6872. var Vl = "bottom",
  6873. $l = {
  6874. top: 1,
  6875. right: 1,
  6876. bottom: 1,
  6877. left: 1
  6878. };
  6879. oa.svg.brush = function() {
  6880. function n(i) {
  6881. i.each(function() {
  6882. var i = oa.select(this).style("pointer-events", "all").style("-webkit-tap-highlight-color", "rgba(0,0,0,0)").on("mousedown.brush", u).on("touchstart.brush", u),
  6883. o = i.selectAll(".background").data([0]);
  6884. o.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair"), i.selectAll(".extent").data([0]).enter().append("rect").attr("class", "extent").style("cursor", "move");
  6885. var a = i.selectAll(".resize").data(p, Nt);
  6886. a.exit().remove(), a.enter().append("g").attr("class", function(n) {
  6887. return "resize " + n
  6888. }).style("cursor", function(n) {
  6889. return Xl[n]
  6890. }).append("rect").attr("x", function(n) {
  6891. return /[ew]$/.test(n) ? -3 : null
  6892. }).attr("y", function(n) {
  6893. return /^[ns]/.test(n) ? -3 : null
  6894. }).attr("width", 6).attr("height", 6).style("visibility", "hidden"), a.style("display", n.empty() ? "none" : null);
  6895. var s, f = oa.transition(i),
  6896. h = oa.transition(o);
  6897. c && (s = Bi(c), h.attr("x", s[0]).attr("width", s[1] - s[0]), r(f)), l && (s = Bi(l), h.attr("y", s[0]).attr("height", s[1] - s[0]), e(f)), t(f)
  6898. })
  6899. }
  6900. function t(n) {
  6901. n.selectAll(".resize").attr("transform", function(n) {
  6902. return "translate(" + s[+/e$/.test(n)] + "," + f[+/^s/.test(n)] + ")"
  6903. })
  6904. }
  6905. function r(n) {
  6906. n.select(".extent").attr("x", s[0]), n.selectAll(".extent,.n>rect,.s>rect").attr("width", s[1] - s[0])
  6907. }
  6908. function e(n) {
  6909. n.select(".extent").attr("y", f[0]), n.selectAll(".extent,.e>rect,.w>rect").attr("height", f[1] - f[0])
  6910. }
  6911. function u() {
  6912. function u() {
  6913. 32 == oa.event.keyCode && (A || (x = null, L[0] -= s[1], L[1] -= f[1], A = 2), y())
  6914. }
  6915. function p() {
  6916. 32 == oa.event.keyCode && 2 == A && (L[0] += s[1], L[1] += f[1], A = 0, y())
  6917. }
  6918. function v() {
  6919. var n = oa.mouse(_),
  6920. u = !1;
  6921. M && (n[0] += M[0], n[1] += M[1]), A || (oa.event.altKey ? (x || (x = [(s[0] + s[1]) / 2, (f[0] + f[1]) / 2]), L[0] = s[+(n[0] < x[0])], L[1] = f[+(n[1] < x[1])]) : x = null), E && d(n, c, 0) && (r(S), u = !0), N && d(n, l, 1) && (e(S), u = !0), u && (t(S), w({
  6922. type: "brush",
  6923. mode: A ? "move" : "resize"
  6924. }))
  6925. }
  6926. function d(n, t, r) {
  6927. var e, u, a = Bi(t),
  6928. c = a[0],
  6929. l = a[1],
  6930. p = L[r],
  6931. v = r ? f : s,
  6932. d = v[1] - v[0];
  6933. return A && (c -= p, l -= d + p), e = (r ? g : h) ? Math.max(c, Math.min(l, n[r])) : n[r], A ? u = (e += p) + d : (x && (p = Math.max(c, Math.min(l, 2 * x[r] - e))), e > p ? (u = e, e = p) : u = p), v[0] != e || v[1] != u ? (r ? o = null : i = null, v[0] = e, v[1] = u, !0) : void 0
  6934. }
  6935. function m() {
  6936. v(), S.style("pointer-events", "all").selectAll(".resize").style("display", n.empty() ? "none" : null), oa.select("body").style("cursor", null), q.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null), C(), w({
  6937. type: "brushend"
  6938. })
  6939. }
  6940. var x, M, _ = this,
  6941. b = oa.select(oa.event.target),
  6942. w = a.of(_, arguments),
  6943. S = oa.select(_),
  6944. k = b.datum(),
  6945. E = !/^(n|s)$/.test(k) && c,
  6946. N = !/^(e|w)$/.test(k) && l,
  6947. A = b.classed("extent"),
  6948. C = Y(),
  6949. L = oa.mouse(_),
  6950. q = oa.select(fa).on("keydown.brush", u).on("keyup.brush", p);
  6951. if (oa.event.changedTouches ? q.on("touchmove.brush", v).on("touchend.brush", m) : q.on("mousemove.brush", v).on("mouseup.brush", m), S.interrupt().selectAll("*").interrupt(), A) L[0] = s[0] - L[0], L[1] = f[0] - L[1];
  6952. else if (k) {
  6953. var T = +/w$/.test(k),
  6954. z = +/^n/.test(k);
  6955. M = [s[1 - T] - L[0], f[1 - z] - L[1]], L[0] = s[T], L[1] = f[z]
  6956. } else oa.event.altKey && (x = L.slice());
  6957. S.style("pointer-events", "none").selectAll(".resize").style("display", null), oa.select("body").style("cursor", b.style("cursor")), w({
  6958. type: "brushstart"
  6959. }), v()
  6960. }
  6961. var i, o, a = M(n, "brushstart", "brush", "brushend"),
  6962. c = null,
  6963. l = null,
  6964. s = [0, 0],
  6965. f = [0, 0],
  6966. h = !0,
  6967. g = !0,
  6968. p = Bl[0];
  6969. return n.event = function(n) {
  6970. n.each(function() {
  6971. var n = a.of(this, arguments),
  6972. t = {
  6973. x: s,
  6974. y: f,
  6975. i: i,
  6976. j: o
  6977. },
  6978. r = this.__chart__ || t;
  6979. this.__chart__ = t, Hl ? oa.select(this).transition().each("start.brush", function() {
  6980. i = r.i, o = r.j, s = r.x, f = r.y, n({
  6981. type: "brushstart"
  6982. })
  6983. }).tween("brush:brush", function() {
  6984. var r = Eu(s, t.x),
  6985. e = Eu(f, t.y);
  6986. return i = o = null, function(u) {
  6987. s = t.x = r(u), f = t.y = e(u), n({
  6988. type: "brush",
  6989. mode: "resize"
  6990. })
  6991. }
  6992. }).each("end.brush", function() {
  6993. i = t.i, o = t.j, n({
  6994. type: "brush",
  6995. mode: "resize"
  6996. }), n({
  6997. type: "brushend"
  6998. })
  6999. }) : (n({
  7000. type: "brushstart"
  7001. }), n({
  7002. type: "brush",
  7003. mode: "resize"
  7004. }), n({
  7005. type: "brushend"
  7006. }))
  7007. })
  7008. }, n.x = function(t) {
  7009. return arguments.length ? (c = t, p = Bl[!c << 1 | !l], n) : c
  7010. }, n.y = function(t) {
  7011. return arguments.length ? (l = t, p = Bl[!c << 1 | !l], n) : l
  7012. }, n.clamp = function(t) {
  7013. return arguments.length ? (c && l ? (h = !! t[0], g = !! t[1]) : c ? h = !! t : l && (g = !! t), n) : c && l ? [h, g] : c ? h : l ? g : null
  7014. }, n.extent = function(t) {
  7015. var r, e, u, a, h;
  7016. return arguments.length ? (c && (r = t[0], e = t[1], l && (r = r[0], e = e[0]), i = [r, e], c.invert && (r = c(r), e = c(e)), r > e && (h = r, r = e, e = h), (r != s[0] || e != s[1]) && (s = [r, e])), l && (u = t[0], a = t[1], c && (u = u[1], a = a[1]), o = [u, a], l.invert && (u = l(u), a = l(a)), u > a && (h = u, u = a, a = h), (u != f[0] || a != f[1]) && (f = [u, a])), n) : (c && (i ? (r = i[0], e = i[1]) : (r = s[0], e = s[1], c.invert && (r = c.invert(r), e = c.invert(e)), r > e && (h = r, r = e, e = h))), l && (o ? (u = o[0], a = o[1]) : (u = f[0], a = f[1], l.invert && (u = l.invert(u), a = l.invert(a)), u > a && (h = u, u = a, a = h))), c && l ? [
  7017. [r, u],
  7018. [e, a]
  7019. ] : c ? [r, e] : l && [u, a])
  7020. }, n.clear = function() {
  7021. return n.empty() || (s = [0, 0], f = [0, 0], i = o = null), n
  7022. }, n.empty = function() {
  7023. return !!c && s[0] == s[1] || !! l && f[0] == f[1]
  7024. }, oa.rebind(n, a, "on")
  7025. };
  7026. var Xl = {
  7027. n: "ns-resize",
  7028. e: "ew-resize",
  7029. s: "ns-resize",
  7030. w: "ew-resize",
  7031. nw: "nwse-resize",
  7032. ne: "nesw-resize",
  7033. se: "nwse-resize",
  7034. sw: "nesw-resize"
  7035. },
  7036. Bl = [
  7037. ["n", "e", "s", "w", "nw", "ne", "se", "sw"],
  7038. ["e", "w"],
  7039. ["n", "s"],
  7040. []
  7041. ],
  7042. Jl = pc.format = Mc.timeFormat,
  7043. Wl = Jl.utc,
  7044. Gl = Wl("%Y-%m-%dT%H:%M:%S.%LZ");
  7045. Jl.iso = Date.prototype.toISOString && +new Date("2000-01-01T00:00:00.000Z") ? ta : Gl, ta.parse = function(n) {
  7046. var t = new Date(n);
  7047. return isNaN(t) ? null : t
  7048. }, ta.toString = Gl.toString, pc.second = Ht(function(n) {
  7049. return new vc(1e3 * Math.floor(n / 1e3))
  7050. }, function(n, t) {
  7051. n.setTime(n.getTime() + 1e3 * Math.floor(t))
  7052. }, function(n) {
  7053. return n.getSeconds()
  7054. }), pc.seconds = pc.second.range, pc.seconds.utc = pc.second.utc.range, pc.minute = Ht(function(n) {
  7055. return new vc(6e4 * Math.floor(n / 6e4))
  7056. }, function(n, t) {
  7057. n.setTime(n.getTime() + 6e4 * Math.floor(t))
  7058. }, function(n) {
  7059. return n.getMinutes()
  7060. }), pc.minutes = pc.minute.range, pc.minutes.utc = pc.minute.utc.range, pc.hour = Ht(function(n) {
  7061. var t = n.getTimezoneOffset() / 60;
  7062. return new vc(36e5 * (Math.floor(n / 36e5 - t) + t))
  7063. }, function(n, t) {
  7064. n.setTime(n.getTime() + 36e5 * Math.floor(t))
  7065. }, function(n) {
  7066. return n.getHours()
  7067. }), pc.hours = pc.hour.range, pc.hours.utc = pc.hour.utc.range, pc.month = Ht(function(n) {
  7068. return n = pc.day(n), n.setDate(1), n
  7069. }, function(n, t) {
  7070. n.setMonth(n.getMonth() + t)
  7071. }, function(n) {
  7072. return n.getMonth()
  7073. }), pc.months = pc.month.range, pc.months.utc = pc.month.utc.range;
  7074. var Kl = [1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6],
  7075. Ql = [
  7076. [pc.second, 1],
  7077. [pc.second, 5],
  7078. [pc.second, 15],
  7079. [pc.second, 30],
  7080. [pc.minute, 1],
  7081. [pc.minute, 5],
  7082. [pc.minute, 15],
  7083. [pc.minute, 30],
  7084. [pc.hour, 1],
  7085. [pc.hour, 3],
  7086. [pc.hour, 6],
  7087. [pc.hour, 12],
  7088. [pc.day, 1],
  7089. [pc.day, 2],
  7090. [pc.week, 1],
  7091. [pc.month, 1],
  7092. [pc.month, 3],
  7093. [pc.year, 1]
  7094. ],
  7095. ns = Jl.multi([
  7096. [".%L", function(n) {
  7097. return n.getMilliseconds()
  7098. }],
  7099. [":%S", function(n) {
  7100. return n.getSeconds()
  7101. }],
  7102. ["%I:%M", function(n) {
  7103. return n.getMinutes()
  7104. }],
  7105. ["%I %p", function(n) {
  7106. return n.getHours()
  7107. }],
  7108. ["%a %d", function(n) {
  7109. return n.getDay() && 1 != n.getDate()
  7110. }],
  7111. ["%b %d", function(n) {
  7112. return 1 != n.getDate()
  7113. }],
  7114. ["%B", function(n) {
  7115. return n.getMonth()
  7116. }],
  7117. ["%Y", Cr]
  7118. ]),
  7119. ts = {
  7120. range: function(n, t, r) {
  7121. return oa.range(Math.ceil(n / r) * r, +t, r).map(ea)
  7122. },
  7123. floor: Nt,
  7124. ceil: Nt
  7125. };
  7126. Ql.year = pc.year, pc.scale = function() {
  7127. return ra(oa.scale.linear(), Ql, ns)
  7128. };
  7129. var rs = Ql.map(function(n) {
  7130. return [n[0].utc, n[1]]
  7131. }),
  7132. es = Wl.multi([
  7133. [".%L", function(n) {
  7134. return n.getUTCMilliseconds()
  7135. }],
  7136. [":%S", function(n) {
  7137. return n.getUTCSeconds()
  7138. }],
  7139. ["%I:%M", function(n) {
  7140. return n.getUTCMinutes()
  7141. }],
  7142. ["%I %p", function(n) {
  7143. return n.getUTCHours()
  7144. }],
  7145. ["%a %d", function(n) {
  7146. return n.getUTCDay() && 1 != n.getUTCDate()
  7147. }],
  7148. ["%b %d", function(n) {
  7149. return 1 != n.getUTCDate()
  7150. }],
  7151. ["%B", function(n) {
  7152. return n.getUTCMonth()
  7153. }],
  7154. ["%Y", Cr]
  7155. ]);
  7156. rs.year = pc.year.utc, pc.scale.utc = function() {
  7157. return ra(oa.scale.linear(), rs, es)
  7158. }, oa.text = At(function(n) {
  7159. return n.responseText
  7160. }), oa.json = function(n, t) {
  7161. return Ct(n, "application/json", ua, t)
  7162. }, oa.html = function(n, t) {
  7163. return Ct(n, "text/html", ia, t)
  7164. }, oa.xml = At(function(n) {
  7165. return n.responseXML
  7166. }), "function" == typeof define && define.amd ? define(oa) : "object" == typeof module && module.exports ? module.exports = oa : this.d3 = oa
  7167. }();